From f00c837388ec8eabebfac9ac07010e0097fc6de5 Mon Sep 17 00:00:00 2001 From: jos Date: Wed, 23 May 2018 09:50:53 +0200 Subject: [PATCH] Released v5.16.0 --- HISTORY.md | 14 +- dist/jsoneditor-minimalist.js | 528 +++++++++++++++++++++++------ dist/jsoneditor-minimalist.map | 2 +- dist/jsoneditor-minimalist.min.js | 10 +- dist/jsoneditor.css | 29 +- dist/jsoneditor.js | 538 ++++++++++++++++++++++++------ dist/jsoneditor.map | 2 +- dist/jsoneditor.min.css | 2 +- dist/jsoneditor.min.js | 24 +- package-lock.json | 2 +- package.json | 2 +- src/js/Node.js | 2 +- 12 files changed, 904 insertions(+), 251 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 42f3ca1..273634c 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,14 +3,14 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.16.0 +## 2018-05-23, version 5.16.0 -- Better handling of large JSON documents: - - Only displays the first 100 items of large arrays, with buttons - "show more" and "show all" to render more items. - - Search results are now limited to max 1000 matches. - - Search does no longer expand the paths to all matches, instead - it only expands the path of the current search result. +- Better handling of JSON documents containing large arrays: + - Only displays the first 100 items of large arrays, + with buttons "show more" and "show all" to render more items. + - Search results are now limited to max 1000 matches, + and search does no longer expand the paths to all matches + but only expands the path of the current search result. - Fixed index numbers of Array items not being updated after sorting. diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index fdbeec3..4d3c5ac 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.15.0 - * @date 2018-05-02 + * @version 5.16.0 + * @date 2018-05-23 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(1); - var textmode = __webpack_require__(15); + var textmode = __webpack_require__(16); var util = __webpack_require__(4); /** @@ -504,9 +504,9 @@ return /******/ (function(modules) { // webpackBootstrap var ContextMenu = __webpack_require__(7); var TreePath = __webpack_require__(9); var Node = __webpack_require__(10); - var ModeSwitcher = __webpack_require__(13); + var ModeSwitcher = __webpack_require__(14); var util = __webpack_require__(4); - var autocomplete = __webpack_require__(14); + var autocomplete = __webpack_require__(15); var translate = __webpack_require__(8).translate; var setLanguages = __webpack_require__(8).setLanguages; var setLanguage = __webpack_require__(8).setLanguage; @@ -1627,6 +1627,7 @@ return /******/ (function(modules) { // webpackBootstrap var first = nodes[0]; nodes.forEach(function (node) { + node.expandPathToNode(); node.setSelected(true, node === first); }); @@ -3980,19 +3981,30 @@ return /******/ (function(modules) { // webpackBootstrap var value = this.dom.search.value; var text = (value.length > 0) ? value : undefined; - if (text != this.lastText || forceSearch) { + if (text !== this.lastText || forceSearch) { // only search again when changed this.lastText = text; this.results = this.editor.search(text); - this._setActiveResult(undefined); + 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) { + if (text !== undefined) { var resultCount = this.results.length; - switch (resultCount) { - case 0: this.dom.results.innerHTML = 'no results'; break; - case 1: this.dom.results.innerHTML = '1 result'; break; - default: this.dom.results.innerHTML = resultCount + ' results'; break; + 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 { @@ -4602,6 +4614,9 @@ return /******/ (function(modules) { // webpackBootstrap 'removeText': 'Remove', 'removeTitle': 'Remove selected fields (Ctrl+Del)', 'removeField': 'Remove this field (Ctrl+Del)', + 'showAll': 'show all', + 'showMore': 'show more', + 'showMoreStatus': 'displaying ${visibleChilds} of ${totalChilds} items.', 'sort': 'Sort', 'sortTitle': 'Sort the childs of this ', 'string': 'String', @@ -4651,6 +4666,12 @@ return /******/ (function(modules) { // webpackBootstrap 'removeText': 'Remover', 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', 'removeField': 'Remover este campo (Ctrl+Del)', + // TODO: correctly translate showAll + 'showAll': 'mostre tudo', + // TODO: correctly translate showMore + 'showMore': 'mostre mais', + // TODO: correctly translate showMoreStatus + 'showMoreStatus': 'exibindo ${visibleChilds} de ${totalChilds} itens.', 'sort': 'Organizar', 'sortTitle': 'Organizar os filhos deste ', 'string': 'Texto', @@ -4849,6 +4870,7 @@ return /******/ (function(modules) { // webpackBootstrap var naturalSort = __webpack_require__(11); var ContextMenu = __webpack_require__(7); var appendNodeFactory = __webpack_require__(12); + var showMoreNodeFactory = __webpack_require__(13); var util = __webpack_require__(4); var translate = __webpack_require__(8).translate; @@ -4885,6 +4907,15 @@ return /******/ (function(modules) { // webpackBootstrap // debounce interval for keyboard input in milliseconds Node.prototype.DEBOUNCE_INTERVAL = 150; + // search will stop iterating as soon as the max is reached + Node.prototype.MAX_SEARCH_RESULTS = 999; + + // number of visible childs rendered initially in large arrays/objects (with a "show more" button to show more) + Node.prototype.MAX_VISIBLE_CHILDS = 100; + + // default value for the max visible childs of large arrays + Node.prototype.visibleChilds = Node.prototype.MAX_VISIBLE_CHILDS; + /** * Determine whether the field and/or value of this node are editable * @private @@ -5036,12 +5067,21 @@ return /******/ (function(modules) { // webpackBootstrap * icon will set focus to the invalid child node. */ Node.prototype.setError = function (error, child) { - // ensure the dom exists - this.getDom(); - this.error = error; + this.errorChild = child; + + if (this.dom && this.dom.tr) { + this.updateError() + } + }; + + /** + * Render the error + */ + Node.prototype.updateError = function() { + var error = this.error; var tdError = this.dom.tdError; - if (error) { + if (error && this.dom && this.dom.tr && !tdError) { if (!tdError) { tdError = document.createElement('td'); this.dom.tdError = tdError; @@ -5077,6 +5117,7 @@ return /******/ (function(modules) { // webpackBootstrap // when clicking the error icon, expand all nodes towards the invalid // child node, and set focus to the child node + var child = this.errorChild; if (child) { button.onclick = function showInvalidNode() { child.findParents().forEach(function (parent) { @@ -5150,7 +5191,7 @@ return /******/ (function(modules) { // webpackBootstrap * 'array', 'object', or 'string' */ Node.prototype.setValue = function(value, type) { - var childValue, child; + var childValue, child, visible; // first clear all current childs (if any) var childs = this.childs; @@ -5186,7 +5227,8 @@ return /******/ (function(modules) { // webpackBootstrap child = new Node(this.editor, { value: childValue }); - this.appendChild(child); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible); } } this.value = ''; @@ -5194,6 +5236,7 @@ return /******/ (function(modules) { // webpackBootstrap else if (this.type == 'object') { // object this.childs = []; + i = 0; for (var childField in value) { if (value.hasOwnProperty(childField)) { childValue = value[childField]; @@ -5203,8 +5246,10 @@ return /******/ (function(modules) { // webpackBootstrap field: childField, value: childValue }); - this.appendChild(child); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible); } + i++; } } this.value = ''; @@ -5286,6 +5331,7 @@ return /******/ (function(modules) { // webpackBootstrap clone.value = this.value; clone.valueInnerText = this.valueInnerText; clone.expanded = this.expanded; + clone.visibleChilds = this.visibleChilds; if (this.childs) { // an object or array @@ -5373,40 +5419,67 @@ return /******/ (function(modules) { // webpackBootstrap var table = tr ? tr.parentNode : undefined; if (table) { // show row with append button - var append = this.getAppend(); - var nextTr = tr.nextSibling; - if (nextTr) { - table.insertBefore(append, nextTr); - } - else { - table.appendChild(append); + var append = this.getAppendDom(); + if (!append.parentNode) { + var nextTr = tr.nextSibling; + if (nextTr) { + table.insertBefore(append, nextTr); + } + else { + table.appendChild(append); + } } // show childs - this.childs.forEach(function (child) { - table.insertBefore(child.getDom(), append); + var iMax = Math.min(this.childs.length, this.visibleChilds); + var nextTr = this._getNextTr(); + for (var i = 0; i < iMax; i++) { + var child = this.childs[i]; + if (!child.getDom().parentNode) { + table.insertBefore(child.getDom(), nextTr); + } child.showChilds(); - }); + } + + // show "show more childs" if limited + var showMore = this.getShowMoreDom(); + var nextTr = this._getNextTr(); + if (!showMore.parentNode) { + table.insertBefore(showMore, nextTr); + } + this.showMore.updateDom(); // to update the counter + } + }; + + Node.prototype._getNextTr = function() { + if (this.showMore && this.showMore.getDom().parentNode) { + return this.showMore.getDom(); + } + + if (this.append && this.append.getDom().parentNode) { + return this.append.getDom(); } }; /** * Hide the node with all its childs + * @param {{resetVisibleChilds: boolean}} [options] */ - Node.prototype.hide = function() { + Node.prototype.hide = function(options) { var tr = this.dom.tr; var table = tr ? tr.parentNode : undefined; if (table) { table.removeChild(tr); } - this.hideChilds(); + this.hideChilds(options); }; /** * Recursively hide all childs + * @param {{resetVisibleChilds: boolean}} [options] */ - Node.prototype.hideChilds = function() { + Node.prototype.hideChilds = function(options) { var childs = this.childs; if (!childs) { return; @@ -5416,7 +5489,7 @@ return /******/ (function(modules) { // webpackBootstrap } // hide append row - var append = this.getAppend(); + var append = this.getAppendDom(); if (append.parentNode) { append.parentNode.removeChild(append); } @@ -5425,6 +5498,17 @@ return /******/ (function(modules) { // webpackBootstrap this.childs.forEach(function (child) { child.hide(); }); + + // hide "show more" row + var showMore = this.getShowMoreDom(); + if (showMore.parentNode) { + showMore.parentNode.removeChild(showMore); + } + + // reset max visible childs + if (!options || options.resetVisibleChilds) { + delete this.visibleChilds; + } }; @@ -5446,8 +5530,9 @@ return /******/ (function(modules) { // webpackBootstrap * Add a new child to the node. * Only applicable when Node value is of type array or object * @param {Node} node + * @param {boolean} [visible] If true, the child will be rendered */ - Node.prototype.appendChild = function(node) { + Node.prototype.appendChild = function(node, visible) { if (this._hasChilds()) { // adjust the link to the parent node.setParent(this); @@ -5457,16 +5542,18 @@ return /******/ (function(modules) { // webpackBootstrap } this.childs.push(node); - if (this.expanded) { + if (this.expanded && visible !== false) { // insert into the DOM, before the appendRow var newTr = node.getDom(); - var appendTr = this.getAppend(); + var appendTr = this.getAppendDom(); var table = appendTr ? appendTr.parentNode : undefined; if (appendTr && table) { table.insertBefore(newTr, appendTr); } node.showChilds(); + + this.visibleChilds++; } this.updateDom({'updateIndexes': true}); @@ -5497,7 +5584,14 @@ return /******/ (function(modules) { // webpackBootstrap } if (beforeNode instanceof AppendNode) { - this.appendChild(node); + // 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]; + this.insertBefore(node, lastVisibleNode); + } + else { + this.appendChild(node); + } } else { this.insertBefore(node, beforeNode); @@ -5538,6 +5632,8 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.insertBefore = function(node, beforeNode) { if (this._hasChilds()) { + this.visibleChilds++; + if (beforeNode == this.append) { // append to the child nodes @@ -5569,6 +5665,7 @@ return /******/ (function(modules) { // webpackBootstrap } node.showChilds(); + this.showChilds(); } this.updateDom({'updateIndexes': true}); @@ -5597,13 +5694,16 @@ return /******/ (function(modules) { // webpackBootstrap /** * Search in this node - * The node will be expanded when the text is found one of its childs, else - * it will be collapsed. Searches are case insensitive. + * Searches are case insensitive. * @param {String} text + * @param {Node[]} [results] Array where search results will be added + * used to count and limit the results whilst iterating * @return {Node[]} results Array with nodes containing the search text */ - Node.prototype.search = function(text) { - var results = []; + Node.prototype.search = function(text, results) { + if (!Array.isArray(results)) { + results = []; + } var index; var search = text ? text.toLowerCase() : undefined; @@ -5612,10 +5712,10 @@ return /******/ (function(modules) { // webpackBootstrap delete this.searchValue; // search in field - if (this.field != undefined) { + if (this.field !== undefined && results.length <= this.MAX_SEARCH_RESULTS) { var field = String(this.field).toLowerCase(); index = field.indexOf(search); - if (index != -1) { + if (index !== -1) { this.searchField = true; results.push({ 'node': this, @@ -5633,40 +5733,27 @@ return /******/ (function(modules) { // webpackBootstrap // search the nodes childs if (this.childs) { - var childResults = []; this.childs.forEach(function (child) { - childResults = childResults.concat(child.search(text)); + child.search(text, results); }); - results = results.concat(childResults); - } - - // update dom - if (search != undefined) { - var recurse = false; - if (childResults.length == 0) { - this.collapse(recurse); - } - else { - this.expand(recurse); - } } } else { // string, auto - if (this.value != undefined ) { + if (this.value !== undefined && results.length <= this.MAX_SEARCH_RESULTS) { var value = String(this.value).toLowerCase(); index = value.indexOf(search); - if (index != -1) { + if (index !== -1) { this.searchValue = true; results.push({ 'node': this, 'elem': 'value' }); } - } - // update dom - this._updateDomValue(); + // update dom + this._updateDomValue(); + } } return results; @@ -5678,21 +5765,34 @@ return /******/ (function(modules) { // webpackBootstrap * @param {function(boolean)} [callback] */ Node.prototype.scrollTo = function(callback) { - if (!this.dom.tr || !this.dom.tr.parentNode) { - // if the node is not visible, expand its parents - var parent = this.parent; - var recurse = false; - while (parent) { - parent.expand(recurse); - parent = parent.parent; - } - } + this.expandPathToNode(); if (this.dom.tr && this.dom.tr.parentNode) { this.editor.scrollTo(this.dom.tr.offsetTop, callback); } }; + /** + * if the node is not visible, expand its parents + */ + Node.prototype.expandPathToNode = function () { + var node = this; + var recurse = false; + while (node && node.parent) { + // expand visible childs of the parent if needed + var index = node.parent.type === 'array' + ? node.index + : node.parent.childs.indexOf(node); + while (node.parent.visibleChilds < index + 1) { + node.parent.visibleChilds += Node.prototype.MAX_VISIBLE_CHILDS; + } + + // expand the parent itself + node.parent.expand(recurse); + node = node.parent; + } + }; + // stores the element name currently having the focus Node.focusElement = undefined; @@ -5878,7 +5978,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this.childs) { var index = this.childs.indexOf(node); - if (index != -1) { + if (index !== -1) { + this.visibleChilds--; + node.hide(); // delete old search results @@ -5930,7 +6032,7 @@ return /******/ (function(modules) { // webpackBootstrap var table = this.dom.tr ? this.dom.tr.parentNode : undefined; var lastTr; if (this.expanded) { - lastTr = this.getAppend(); + lastTr = this.getAppendDom(); } else { lastTr = this.getDom(); @@ -5938,7 +6040,7 @@ return /******/ (function(modules) { // webpackBootstrap var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; // hide current field and all its childs - this.hide(); + this.hide({ resetVisibleChilds: false }); this.clearDom(); // adjust the field and the value @@ -6425,6 +6527,14 @@ return /******/ (function(modules) { // webpackBootstrap return dom.tr; }; + /** + * Test whether a Node is rendered and visible + * @returns {boolean} + */ + Node.prototype.isVisible = function () { + return this.dom && this.dom.tr && this.dom.tr.parentNode || false + }; + /** * DragStart event, fired on mousedown on the dragarea at the left side of a Node * @param {Node[] | Node} nodes @@ -6527,7 +6637,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - if (nodePrev) { + if (nodePrev && nodePrev.isVisible()) { // check if mouseY is really inside the found node trPrev = nodePrev.dom.tr; topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0; @@ -6558,16 +6668,17 @@ return /******/ (function(modules) { // webpackBootstrap util.getAbsoluteTop(trNext.nextSibling) : 0; heightNext = trNext ? (bottomNext - topFirst) : 0; - if (nodeNext.parent.childs.length == nodes.length && + if (nodeNext && + nodeNext.parent.childs.length == nodes.length && nodeNext.parent.childs[nodes.length - 1] == lastNode) { // We are about to remove the last child of this parent, // which will make the parents appendNode visible. topThis += 27; // TODO: dangerous to suppose the height of the appendNode a constant of 27 px. } - } - trNext = trNext.nextSibling; + trNext = trNext.nextSibling; + } } while (trNext && mouseY > topThis + heightNext); @@ -6579,7 +6690,7 @@ return /******/ (function(modules) { // webpackBootstrap var levelNext = nodeNext.getLevel(); // level to be // find the best fitting level (move upwards over the append nodes) - trPrev = nodeNext.dom.tr.previousSibling; + trPrev = nodeNext.dom.tr && nodeNext.dom.tr.previousSibling; while (levelNext < level && trPrev) { nodePrev = Node.getNodeFromTarget(trPrev); @@ -6611,8 +6722,13 @@ return /******/ (function(modules) { // webpackBootstrap trPrev = trPrev.previousSibling; } + if (nodeNext instanceof AppendNode && !nodeNext.isVisible() && + nodeNext.parent.showMore.isVisible()) { + nodeNext = nodeNext._nextNode(); + } + // move the node when its position is changed - if (trLast.nextSibling != nodeNext.dom.tr) { + if (nodeNext && nodeNext.dom.tr && trLast.nextSibling != nodeNext.dom.tr) { nodes.forEach(function (node) { nodeNext.parent.moveBefore(node, nodeNext); }); @@ -6775,6 +6891,10 @@ return /******/ (function(modules) { // webpackBootstrap this.append.setSelected(selected); } + if (this.showMore) { + this.showMore.setSelected(selected); + } + if (this.childs) { this.childs.forEach(function (child) { child.setSelected(selected); @@ -6879,8 +6999,8 @@ return /******/ (function(modules) { // webpackBootstrap this._updateDomIndexes(); } + // update childs recursively if (options && options.recurse === true) { - // recurse is true or undefined. update childs recursively if (this.childs) { this.childs.forEach(function (child) { child.updateDom(options); @@ -6888,10 +7008,20 @@ return /******/ (function(modules) { // webpackBootstrap } } + // update rendering of error + if (this.error) { + this.updateError() + } + // update row with append button if (this.append) { this.append.updateDom(); } + + // update "show more" text at the bottom of large arrays + if (this.showMore) { + this.showMore.updateDom(); + } }; /** @@ -7283,7 +7413,7 @@ return /******/ (function(modules) { // webpackBootstrap // focus // when clicked in whitespace left or right from the field or value, set focus var domTree = dom.tree; - if (target == domTree.parentNode && type == 'click' && !event.hasMoved) { + if (domTree && target == domTree.parentNode && type == 'click' && !event.hasMoved) { var left = (event.offsetX != undefined) ? (event.offsetX < (this.getLevel() + 1) * 24) : (event.pageX < util.getAbsoluteLeft(dom.tdSeparator));// for FF @@ -7423,7 +7553,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow left if (lastNode.expanded) { - var appendDom = lastNode.getAppend(); + var appendDom = lastNode.getAppendDom(); nextDom = appendDom ? appendDom.nextSibling : undefined; } else { @@ -7517,9 +7647,7 @@ return /******/ (function(modules) { // webpackBootstrap var prevDom = dom.previousSibling; if (prevDom) { prevNode = Node.getNodeFromTarget(prevDom); - if (prevNode && prevNode.parent && - (prevNode instanceof AppendNode) - && !prevNode.isVisible()) { + if (prevNode && prevNode.parent && !prevNode.isVisible()) { oldSelection = this.editor.getDomSelection(); oldBeforeNode = lastNode.nextSibling(); @@ -7571,6 +7699,16 @@ return /******/ (function(modules) { // webpackBootstrap else { nextNode = lastNode._nextNode(); } + + // when the next node is not visible, we've reached the "showMore" buttons + if (nextNode && !nextNode.isVisible()) { + nextNode = nextNode.parent.showMore; + } + + if (nextNode && nextNode instanceof AppendNode) { + nextNode = lastNode; + } + var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); @@ -7849,6 +7987,9 @@ return /******/ (function(modules) { // webpackBootstrap }); this.sortOrder = (order == 1) ? 'asc' : 'desc'; + // update the index numbering + this._updateDomIndexes(); + this.editor._onAction('sort', { node: this, oldChilds: oldChilds, @@ -7862,9 +8003,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Create a table row with an append button. - * @return {HTMLElement | undefined} buttonAppend or undefined when inapplicable + * @return {HTMLElement | undefined} tr with the AppendNode contents */ - Node.prototype.getAppend = function () { + Node.prototype.getAppendDom = function () { if (!this.append) { this.append = new AppendNode(this.editor); this.append.setParent(this); @@ -7872,6 +8013,17 @@ return /******/ (function(modules) { // webpackBootstrap return this.append.getDom(); }; + /** + * Create a table row with an showMore button and text + * @return {HTMLElement | undefined} tr with the AppendNode contents + */ + Node.prototype.getShowMoreDom = function () { + if (!this.showMore) { + this.showMore = new ShowMoreNode(this.editor, this); + } + return this.showMore.getDom(); + }; + /** * Find the node from an event target * @param {Node} target @@ -7938,7 +8090,7 @@ return /******/ (function(modules) { // webpackBootstrap prevDom = prevDom.previousSibling; prevNode = Node.getNodeFromTarget(prevDom); } - while (prevDom && (prevNode instanceof AppendNode && !prevNode.isVisible())); + while (prevDom && prevNode && (prevNode instanceof AppendNode && !prevNode.isVisible())); } return prevNode; }; @@ -7958,7 +8110,7 @@ return /******/ (function(modules) { // webpackBootstrap nextDom = nextDom.nextSibling; nextNode = Node.getNodeFromTarget(nextDom); } - while (nextDom && (nextNode instanceof AppendNode && !nextNode.isVisible())); + while (nextDom && nextNode && (nextNode instanceof AppendNode && !nextNode.isVisible())); } return nextNode; @@ -7991,7 +8143,7 @@ return /******/ (function(modules) { // webpackBootstrap if (dom && dom.parentNode) { var lastDom = dom.parentNode.lastChild; lastNode = Node.getNodeFromTarget(lastDom); - while (lastDom && (lastNode instanceof AppendNode && !lastNode.isVisible())) { + while (lastDom && lastNode && !lastNode.isVisible()) { lastDom = lastDom.previousSibling; lastNode = Node.getNodeFromTarget(lastDom); } @@ -8486,7 +8638,9 @@ return /******/ (function(modules) { // webpackBootstrap }; // 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); + var ShowMoreNode = showMoreNodeFactory(Node); module.exports = Node; @@ -8588,6 +8742,7 @@ return /******/ (function(modules) { // webpackBootstrap // a row for the append button var trAppend = document.createElement('tr'); + trAppend.className = 'jsoneditor-append'; trAppend.node = this; dom.tr = trAppend; @@ -8625,7 +8780,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Update the HTML dom of the Node */ - AppendNode.prototype.updateDom = function () { + AppendNode.prototype.updateDom = function(options) { var dom = this.dom; var tdAppend = dom.td; if (tdAppend) { @@ -8737,7 +8892,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Handle an event. The event is catched centrally by the editor + * Handle an event. The event is caught centrally by the editor * @param {Event} event */ AppendNode.prototype.onEvent = function (event) { @@ -8786,6 +8941,167 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; + var translate = __webpack_require__(8).translate; + + /** + * A factory function to create an ShowMoreNode, which depends on a Node + * @param {function} Node + */ + function showMoreNodeFactory(Node) { + /** + * @constructor ShowMoreNode + * @extends Node + * @param {TreeEditor} editor + * @param {Node} parent + * Create a new ShowMoreNode. This is a special node which is created + * for arrays or objects having more than 100 items + */ + function ShowMoreNode (editor, parent) { + /** @type {TreeEditor} */ + this.editor = editor; + this.parent = parent; + this.dom = {}; + } + + ShowMoreNode.prototype = new Node(); + + /** + * Return a table row with an append button. + * @return {Element} dom TR element + */ + ShowMoreNode.prototype.getDom = function () { + if (this.dom.tr) { + return this.dom.tr; + } + + this._updateEditability(); + + // display "show more" + if (!this.dom.tr) { + var me = this; + var parent = this.parent; + var showMoreButton = document.createElement('a'); + showMoreButton.appendChild(document.createTextNode(translate('showMore'))); + showMoreButton.href = '#'; + showMoreButton.onclick = function (event) { + // TODO: use callback instead of accessing a method of the parent + parent.visibleChilds = Math.floor(parent.visibleChilds / parent.MAX_VISIBLE_CHILDS + 1) * + parent.MAX_VISIBLE_CHILDS; + me.updateDom(); + parent.showChilds(); + + event.preventDefault(); + return false; + }; + + var showAllButton = document.createElement('a'); + showAllButton.appendChild(document.createTextNode(translate('showAll'))); + showAllButton.href = '#'; + showAllButton.onclick = function (event) { + // TODO: use callback instead of accessing a method of the parent + parent.visibleChilds = Infinity; + me.updateDom(); + parent.showChilds(); + + event.preventDefault(); + return false; + }; + + var moreContents = document.createElement('div'); + var moreText = document.createTextNode(this._getShowMoreText()); + moreContents.className = 'jsoneditor-show-more'; + moreContents.appendChild(moreText); + moreContents.appendChild(showMoreButton); + moreContents.appendChild(document.createTextNode('. ')); + moreContents.appendChild(showAllButton); + moreContents.appendChild(document.createTextNode('. ')); + + var tdContents = document.createElement('td'); + tdContents.appendChild(moreContents); + + var moreTr = document.createElement('tr'); + moreTr.appendChild(document.createElement('td')); + moreTr.appendChild(document.createElement('td')); + moreTr.appendChild(tdContents); + moreTr.className = 'jsoneditor-show-more'; + this.dom.tr = moreTr; + this.dom.moreContents = moreContents; + this.dom.moreText = moreText; + } + + this.updateDom(); + + return this.dom.tr; + }; + + /** + * Update the HTML dom of the Node + */ + ShowMoreNode.prototype.updateDom = function(options) { + if (this.isVisible()) { + // attach to the right child node (the first non-visible child) + this.dom.tr.node = this.parent.childs[this.parent.visibleChilds]; + + if (!this.dom.tr.parentNode) { + var nextTr = this.parent._getNextTr(); + if (nextTr) { + nextTr.parentNode.insertBefore(this.dom.tr, nextTr); + } + } + + // update the counts in the text + this.dom.moreText.nodeValue = this._getShowMoreText(); + + // update left margin + this.dom.moreContents.style.marginLeft = (this.getLevel() + 1) * 24 + 'px'; + } + else { + if (this.dom.tr && this.dom.tr.parentNode) { + this.dom.tr.parentNode.removeChild(this.dom.tr); + } + } + }; + + ShowMoreNode.prototype._getShowMoreText = function() { + return translate('showMoreStatus', { + visibleChilds: this.parent.visibleChilds, + totalChilds: this.parent.childs.length + }) + ' '; + }; + + /** + * Check whether the ShowMoreNode is currently visible. + * the ShowMoreNode is visible when it's parent has more childs than + * the current visibleChilds + * @return {boolean} isVisible + */ + ShowMoreNode.prototype.isVisible = function () { + return this.parent.expanded && this.parent.childs.length > this.parent.visibleChilds; + }; + + /** + * Handle an event. The event is caught centrally by the editor + * @param {Event} event + */ + ShowMoreNode.prototype.onEvent = function (event) { + var type = event.type; + if (type === 'keydown') { + this.onKeyDown(event); + } + }; + + return ShowMoreNode; + } + + module.exports = showMoreNodeFactory; + + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var ContextMenu = __webpack_require__(7); /** @@ -8902,7 +9218,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 14 */ +/* 15 */ /***/ function(module, exports) { 'use strict'; @@ -9289,13 +9605,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 15 */ +/* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(16); - var ModeSwitcher = __webpack_require__(13); + var ace = __webpack_require__(17); + var ModeSwitcher = __webpack_require__(14); var util = __webpack_require__(4); // create a mixin with the functions for text mode @@ -9365,7 +9681,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(20); + __webpack_require__(21); } catch (err) { console.error(err); @@ -10111,7 +10427,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 16 */ +/* 17 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -10125,8 +10441,8 @@ return /******/ (function(modules) { // webpackBootstrap ace = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"brace\""); e.code = 'MODULE_NOT_FOUND'; throw e; }())); // load required Ace plugins - __webpack_require__(17); - __webpack_require__(19); + __webpack_require__(18); + __webpack_require__(20); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -10138,7 +10454,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -10440,7 +10756,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(18), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(19), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -10463,14 +10779,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -10983,7 +11299,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 4f45505..9132925 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","translate","setLanguages","setLanguage","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","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","Array","first","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","anchor","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","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","_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","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","onTextSelectionChange","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_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","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","navigationBar","onSelectionChange","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","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","anchor","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","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","_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","removeText","removeTitle","removeField","showAll","showMore","showMoreStatus","sortTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","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","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_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","oldSortOrder","sortOrder","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","floor","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","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","on","_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","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index 13a6173..e45b270 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -24,10 +24,10 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.15.0 - * @date 2018-05-02 + * @version 5.16.0 + * @date 2018-05-23 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","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,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(15),a=n(4);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},f._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},f._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;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)}}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){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()},f.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},f.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},f.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},f.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._getNodeIntsncesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},f._getNodeIntsncesByRange=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},i.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){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&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!=this.lastText||e)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var i=this.results.length;switch(i){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=i+" results"}}else this.dom.results.innerHTML=""},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var r=n(4),s=n(8).translate;o.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.getDom(),this.error=e;var n=this.dom.tdError;if(e){n||(n=document.createElement("td"),this.dom.tdError=n,this.dom.tdValue.parentNode.appendChild(n));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.type="button",o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-dragarea",n.title=l("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=l("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),s=o.nextSibling(),l=n.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,l,d,h,u,p,m,f,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=a.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(l=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=l?l.nextSibling:void 0){f=a.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling}while(r&&w>p+y);if(u&&u.parent){var S=x-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var j=this._previousElement(p);j&&this.focus(this._getElementName(j)),v=!0}else if(g&&f&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,D=i.getNodeFromTarget(r),n&&n instanceof c&&1!=x.parent.childs.length&&D&&D.parent&&(s=this.editor.getDomSelection(),l=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),l=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!f){var T=this._nextElement(p);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&f&&y){k=w.getDom();var O=k.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getDomSelection(),l=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&y)n=this._nextNode(),n&&(h=this.editor.multiselection,h.start=h.start||this,h.end=n,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),n.focus("field")),v=!0;else if(g&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var D=n&&(n._nextNode()||n.parent.append);D&&D.parent&&(s=this.editor.getDomSelection(),l=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getDomSelection();i.blurNodes(e);var a=o.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getDomSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},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),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})},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],afterNode:this,parent:this.parent,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],parent:this.parent,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",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e instanceof c&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){n.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=n.parent.childs;if(n==c[c.length-1]){var d=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(d,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:d})}var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(h,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=a.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="button",i.className="jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="("+s("empty")+")",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var n=e.text;n&&(n.innerHTML="("+s("empty")+" "+this.parent.type+")");var i=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&i.appendChild(e.tdDrag),e.tdMenu&&i.appendChild(e.tdMenu),i.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&i.removeChild(e.tdDrag),e.tdMenu&&i.removeChild(e.tdMenu),i.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(4),r=n(7),s=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(16),o=n(13),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(20)}catch(e){console.error(e)}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 d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._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!==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 s=r.getInputSelection(o.textarea);s.startIndex!==s.endIndex&&(i=s.endIndex-s.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===s.end.row&&o.cursorInfo.column===s.end.column?(t=s.start.row,n=s.start.column):(t=s.end.row,n=s.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},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(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},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 n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),s=n.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:i}}},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 n=r.getIndexForPosition(this.textarea,e.row,e.column),i=r.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:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(17),n(19)}catch(e){}e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(18),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker", -e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","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,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(16),a=n(4);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},f._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},f._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;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)}}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){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()},f.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var n=this.getSelection();this._selectionChangedHandler(n.start,n.end)}}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},f.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},f.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=d.debounce(e,this.DEBOUNCE_INTERVAL))},f.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._getNodeIntsncesByRange(e,t);n.forEach(function(e){e.expandTo()}),this.select(n)},f._getNodeIntsncesByRange=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},i.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){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&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!==this.lastText||e){this.lastText=n,this.results=this.editor.search(n);var i=this.results[0]?this.results[0].node.MAX_SEARCH_RESULTS:1/0;if(this._setActiveResult(0,!1),void 0!==n){var o=this.results.length;this.dom.results.innerHTML=0===o?"no results":1===o?"1 result":o>i?i+"+ results":o+" results"}else this.dom.results.innerHTML=""}},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var r=n(4),s=n(8).translate;o.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.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||(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;tthis.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.moveTo=function(e,t){if(e.parent==this){this.childs.indexOf(e)0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:c("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=c("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=c("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],o=e[e.length-1],r=i.getNodeFromTarget(t.target),s=o.nextSibling(),a=n.editor,c=l.getAbsoluteTop(r.dom.tr)-l.getAbsoluteTop(n.dom.tr);a.mousemove||(a.mousemove=l.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),a.mouseup||(a.mouseup=l.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),a.highlighter.lock(),a.drag={oldCursor:document.body.style.cursor,oldSelection:a.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,a,c,h,u,p,m,f,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=l.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(a=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=a?a.nextSibling:void 0){f=l.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?l.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27),r=r.nextSibling)}while(r&&w>p+y);if(u&&u.parent){var S=x-b.drag.mouseX,N=Math.round(S/24/2),j=b.drag.level+N,T=u.getLevel();for(o=u.dom.tr&&u.dom.tr.previousSibling;T0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||l.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var N=this._previousElement(p);N&&this.focus(this._getElementName(N)),v=!0}else if(g&&f&&y){if(x.expanded){var j=x.getAppendDom();o=j?j.nextSibling:void 0}else{var T=x.getDom();o=T.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,D=i.getNodeFromTarget(r),n&&n instanceof d&&1!=x.parent.childs.length&&D&&D.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,c=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(c),t.focus("field")),v=!0):g&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!f){var k=this._nextElement(p);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&f&&y){T=w.getDom();var O=T.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&y)n=this._nextNode(),n&&(h=this.editor.multiselection,h.start=h.start||this,h.end=n,c=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(c),n.focus("field")),v=!0;else if(g&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode(),n&&!n.isVisible()&&(n=n.parent.showMore),n&&n instanceof d&&(n=x);var D=n&&(n._nextNode()||n.parent.append);D&&D.parent&&(s=this.editor.getDomSelection(),a=x.nextSibling(),b.forEach(function(e){D.parent.moveBefore(e,D)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:a,newBeforeNode:D,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getDomSelection();i.blurNodes(e);var a=o.getDomSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getDomSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getDomSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},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),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})},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],afterNode:this,parent:this.parent,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],parent:this.parent,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",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this._updateDomIndexes(),this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppendDom=function(){return this.append||(this.append=new d(this.editor),this.append.setParent(this)),this.append.getDom()},i.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new h(this.editor,this)),this.showMore.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof d&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e&&e instanceof d&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:c("autoType"),object:c("objectType"),array:c("arrayType"),string:c("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:c("type"),title:c("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:c("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:c("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:c("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:c("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:c("sort"),title:c("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:c("ascending"),className:"jsoneditor-sort-asc",title:c("ascendingTitle",{type:this.type}),click:function(){n.sort("asc")}},{text:c("descending"),className:"jsoneditor-sort-desc",title:c("descendingTitle",{type:this.type}),click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=n.parent.childs;if(n==l[l.length-1]){var d=[{text:c("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(d,!0),s.push({text:c("appendText"),title:c("appendTitle"),submenuTitle:c("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:d})}var h=[{text:c("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(h,!1),s.push({text:c("insert"),title:c("insertTitle"),submenuTitle:c("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:c("duplicateText"),title:c("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:c("removeText"),title:c("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=l.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return l.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.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.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(4),r=n(7),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){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(17),o=n(14),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(21)}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 d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._updateCursorInfo(),this._emitSelectionChange()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._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!==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 s=r.getInputSelection(o.textarea);s.startIndex!==s.endIndex&&(i=s.endIndex-s.startIndex),i&&o.cursorInfo&&o.cursorInfo.line===s.end.row&&o.cursorInfo.column===s.end.column?(t=s.start.row,n=s.start.column):(t=s.end.row,n=s.end.column),o.cursorInfo={line:t,column:n,count:i},o.options.statusBar&&e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,o.cursorInfo={line:t,column:n,count:i},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(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},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 n=this.aceEditor.getSelection(),i=this.aceEditor.getSelectedText(),o=n.getRange(),s=n.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:i}}},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 n=r.getIndexForPosition(this.textarea,e.row,e.column),i=r.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:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(18),n(20)}catch(e){}e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){ +var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(19),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var i=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");i.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,n){var o=i.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var n=e.target||e.srcElement,i=n.getAttribute("action");i&&t[i]?t[i]():t.$searchBarKb.commands[i]&&t.$searchBarKb.commands[i].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,n,i){var o=a.keyCodeToString(i),s=t.$searchBarKb.findKeyCommand(n,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){i.setCssClass(this.replaceOption,"checked",this.searchRange),i.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",i.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),i.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),i.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),r=!o&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),r=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(r-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(o))&&(n++,a=s.index,a<=r&&i++,!(n>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=o.length))););}this.searchCounter.textContent=i+" of "+(n>999?"999+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;i.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/dist/jsoneditor.css b/dist/jsoneditor.css index 6356483..3184f9f 100644 --- a/dist/jsoneditor.css +++ b/dist/jsoneditor.css @@ -50,11 +50,11 @@ div.jsoneditor-value { div.jsoneditor-readonly { min-width: 16px; - color: gray; + color: #808080; } div.jsoneditor-empty { - border-color: lightgray; + border-color: #d3d3d3; border-style: dashed; border-radius: 2px; } @@ -62,7 +62,7 @@ div.jsoneditor-empty { div.jsoneditor-field.jsoneditor-empty::after, div.jsoneditor-value.jsoneditor-empty::after { pointer-events: none; - color: lightgray; + color: #d3d3d3; font-size: 8pt; } @@ -94,7 +94,7 @@ a.jsoneditor-value.jsoneditor-url:focus { div.jsoneditor td.jsoneditor-separator { padding: 3px 0; vertical-align: top; - color: gray; + color: #808080; } div.jsoneditor-field[contenteditable=true]:focus, @@ -197,6 +197,27 @@ div.jsoneditor-tree button.jsoneditor-invisible { background: none; } +div.jsoneditor-tree div.jsoneditor-show-more { + display: inline-block; + padding: 3px 4px; + margin: 2px 0; + background-color: #e5e5e5; + border-radius: 3px; + color: #808080; + font-family: arial, sans-serif; + font-size: 10pt; +} + +div.jsoneditor-tree div.jsoneditor-show-more a { + display: inline-block; + color: #808080; +} + +div.jsoneditor-tree div.jsoneditor-show-more a:hover, +div.jsoneditor-tree div.jsoneditor-show-more a:focus { + color: #ee422e; +} + div.jsoneditor { color: #1A1A1A; border: 1px solid #3883fa; diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index 212126a..f775f1d 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.15.0 - * @date 2018-05-02 + * @version 5.16.0 + * @date 2018-05-23 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -94,7 +94,7 @@ return /******/ (function(modules) { // webpackBootstrap } var treemode = __webpack_require__(51); - var textmode = __webpack_require__(65); + var textmode = __webpack_require__(66); var util = __webpack_require__(54); /** @@ -8050,9 +8050,9 @@ return /******/ (function(modules) { // webpackBootstrap var ContextMenu = __webpack_require__(57); var TreePath = __webpack_require__(59); var Node = __webpack_require__(60); - var ModeSwitcher = __webpack_require__(63); + var ModeSwitcher = __webpack_require__(64); var util = __webpack_require__(54); - var autocomplete = __webpack_require__(64); + var autocomplete = __webpack_require__(65); var translate = __webpack_require__(58).translate; var setLanguages = __webpack_require__(58).setLanguages; var setLanguage = __webpack_require__(58).setLanguage; @@ -9173,6 +9173,7 @@ return /******/ (function(modules) { // webpackBootstrap var first = nodes[0]; nodes.forEach(function (node) { + node.expandPathToNode(); node.setSelected(true, node === first); }); @@ -11526,19 +11527,30 @@ return /******/ (function(modules) { // webpackBootstrap var value = this.dom.search.value; var text = (value.length > 0) ? value : undefined; - if (text != this.lastText || forceSearch) { + if (text !== this.lastText || forceSearch) { // only search again when changed this.lastText = text; this.results = this.editor.search(text); - this._setActiveResult(undefined); + 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) { + if (text !== undefined) { var resultCount = this.results.length; - switch (resultCount) { - case 0: this.dom.results.innerHTML = 'no results'; break; - case 1: this.dom.results.innerHTML = '1 result'; break; - default: this.dom.results.innerHTML = resultCount + ' results'; break; + 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 { @@ -12148,6 +12160,9 @@ return /******/ (function(modules) { // webpackBootstrap 'removeText': 'Remove', 'removeTitle': 'Remove selected fields (Ctrl+Del)', 'removeField': 'Remove this field (Ctrl+Del)', + 'showAll': 'show all', + 'showMore': 'show more', + 'showMoreStatus': 'displaying ${visibleChilds} of ${totalChilds} items.', 'sort': 'Sort', 'sortTitle': 'Sort the childs of this ', 'string': 'String', @@ -12197,6 +12212,12 @@ return /******/ (function(modules) { // webpackBootstrap 'removeText': 'Remover', 'removeTitle': 'Remover campos selecionados (Ctrl+Del)', 'removeField': 'Remover este campo (Ctrl+Del)', + // TODO: correctly translate showAll + 'showAll': 'mostre tudo', + // TODO: correctly translate showMore + 'showMore': 'mostre mais', + // TODO: correctly translate showMoreStatus + 'showMoreStatus': 'exibindo ${visibleChilds} de ${totalChilds} itens.', 'sort': 'Organizar', 'sortTitle': 'Organizar os filhos deste ', 'string': 'Texto', @@ -12395,6 +12416,7 @@ return /******/ (function(modules) { // webpackBootstrap var naturalSort = __webpack_require__(61); var ContextMenu = __webpack_require__(57); var appendNodeFactory = __webpack_require__(62); + var showMoreNodeFactory = __webpack_require__(63); var util = __webpack_require__(54); var translate = __webpack_require__(58).translate; @@ -12431,6 +12453,15 @@ return /******/ (function(modules) { // webpackBootstrap // debounce interval for keyboard input in milliseconds Node.prototype.DEBOUNCE_INTERVAL = 150; + // search will stop iterating as soon as the max is reached + Node.prototype.MAX_SEARCH_RESULTS = 999; + + // number of visible childs rendered initially in large arrays/objects (with a "show more" button to show more) + Node.prototype.MAX_VISIBLE_CHILDS = 100; + + // default value for the max visible childs of large arrays + Node.prototype.visibleChilds = Node.prototype.MAX_VISIBLE_CHILDS; + /** * Determine whether the field and/or value of this node are editable * @private @@ -12582,12 +12613,21 @@ return /******/ (function(modules) { // webpackBootstrap * icon will set focus to the invalid child node. */ Node.prototype.setError = function (error, child) { - // ensure the dom exists - this.getDom(); - this.error = error; + this.errorChild = child; + + if (this.dom && this.dom.tr) { + this.updateError() + } + }; + + /** + * Render the error + */ + Node.prototype.updateError = function() { + var error = this.error; var tdError = this.dom.tdError; - if (error) { + if (error && this.dom && this.dom.tr && !tdError) { if (!tdError) { tdError = document.createElement('td'); this.dom.tdError = tdError; @@ -12623,6 +12663,7 @@ return /******/ (function(modules) { // webpackBootstrap // when clicking the error icon, expand all nodes towards the invalid // child node, and set focus to the child node + var child = this.errorChild; if (child) { button.onclick = function showInvalidNode() { child.findParents().forEach(function (parent) { @@ -12696,7 +12737,7 @@ return /******/ (function(modules) { // webpackBootstrap * 'array', 'object', or 'string' */ Node.prototype.setValue = function(value, type) { - var childValue, child; + var childValue, child, visible; // first clear all current childs (if any) var childs = this.childs; @@ -12732,7 +12773,8 @@ return /******/ (function(modules) { // webpackBootstrap child = new Node(this.editor, { value: childValue }); - this.appendChild(child); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible); } } this.value = ''; @@ -12740,6 +12782,7 @@ return /******/ (function(modules) { // webpackBootstrap else if (this.type == 'object') { // object this.childs = []; + i = 0; for (var childField in value) { if (value.hasOwnProperty(childField)) { childValue = value[childField]; @@ -12749,8 +12792,10 @@ return /******/ (function(modules) { // webpackBootstrap field: childField, value: childValue }); - this.appendChild(child); + visible = i < this.MAX_VISIBLE_CHILDS; + this.appendChild(child, visible); } + i++; } } this.value = ''; @@ -12832,6 +12877,7 @@ return /******/ (function(modules) { // webpackBootstrap clone.value = this.value; clone.valueInnerText = this.valueInnerText; clone.expanded = this.expanded; + clone.visibleChilds = this.visibleChilds; if (this.childs) { // an object or array @@ -12919,40 +12965,67 @@ return /******/ (function(modules) { // webpackBootstrap var table = tr ? tr.parentNode : undefined; if (table) { // show row with append button - var append = this.getAppend(); - var nextTr = tr.nextSibling; - if (nextTr) { - table.insertBefore(append, nextTr); - } - else { - table.appendChild(append); + var append = this.getAppendDom(); + if (!append.parentNode) { + var nextTr = tr.nextSibling; + if (nextTr) { + table.insertBefore(append, nextTr); + } + else { + table.appendChild(append); + } } // show childs - this.childs.forEach(function (child) { - table.insertBefore(child.getDom(), append); + var iMax = Math.min(this.childs.length, this.visibleChilds); + var nextTr = this._getNextTr(); + for (var i = 0; i < iMax; i++) { + var child = this.childs[i]; + if (!child.getDom().parentNode) { + table.insertBefore(child.getDom(), nextTr); + } child.showChilds(); - }); + } + + // show "show more childs" if limited + var showMore = this.getShowMoreDom(); + var nextTr = this._getNextTr(); + if (!showMore.parentNode) { + table.insertBefore(showMore, nextTr); + } + this.showMore.updateDom(); // to update the counter + } + }; + + Node.prototype._getNextTr = function() { + if (this.showMore && this.showMore.getDom().parentNode) { + return this.showMore.getDom(); + } + + if (this.append && this.append.getDom().parentNode) { + return this.append.getDom(); } }; /** * Hide the node with all its childs + * @param {{resetVisibleChilds: boolean}} [options] */ - Node.prototype.hide = function() { + Node.prototype.hide = function(options) { var tr = this.dom.tr; var table = tr ? tr.parentNode : undefined; if (table) { table.removeChild(tr); } - this.hideChilds(); + this.hideChilds(options); }; /** * Recursively hide all childs + * @param {{resetVisibleChilds: boolean}} [options] */ - Node.prototype.hideChilds = function() { + Node.prototype.hideChilds = function(options) { var childs = this.childs; if (!childs) { return; @@ -12962,7 +13035,7 @@ return /******/ (function(modules) { // webpackBootstrap } // hide append row - var append = this.getAppend(); + var append = this.getAppendDom(); if (append.parentNode) { append.parentNode.removeChild(append); } @@ -12971,6 +13044,17 @@ return /******/ (function(modules) { // webpackBootstrap this.childs.forEach(function (child) { child.hide(); }); + + // hide "show more" row + var showMore = this.getShowMoreDom(); + if (showMore.parentNode) { + showMore.parentNode.removeChild(showMore); + } + + // reset max visible childs + if (!options || options.resetVisibleChilds) { + delete this.visibleChilds; + } }; @@ -12992,8 +13076,9 @@ return /******/ (function(modules) { // webpackBootstrap * Add a new child to the node. * Only applicable when Node value is of type array or object * @param {Node} node + * @param {boolean} [visible] If true, the child will be rendered */ - Node.prototype.appendChild = function(node) { + Node.prototype.appendChild = function(node, visible) { if (this._hasChilds()) { // adjust the link to the parent node.setParent(this); @@ -13003,16 +13088,18 @@ return /******/ (function(modules) { // webpackBootstrap } this.childs.push(node); - if (this.expanded) { + if (this.expanded && visible !== false) { // insert into the DOM, before the appendRow var newTr = node.getDom(); - var appendTr = this.getAppend(); + var appendTr = this.getAppendDom(); var table = appendTr ? appendTr.parentNode : undefined; if (appendTr && table) { table.insertBefore(newTr, appendTr); } node.showChilds(); + + this.visibleChilds++; } this.updateDom({'updateIndexes': true}); @@ -13043,7 +13130,14 @@ return /******/ (function(modules) { // webpackBootstrap } if (beforeNode instanceof AppendNode) { - this.appendChild(node); + // 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]; + this.insertBefore(node, lastVisibleNode); + } + else { + this.appendChild(node); + } } else { this.insertBefore(node, beforeNode); @@ -13084,6 +13178,8 @@ return /******/ (function(modules) { // webpackBootstrap */ Node.prototype.insertBefore = function(node, beforeNode) { if (this._hasChilds()) { + this.visibleChilds++; + if (beforeNode == this.append) { // append to the child nodes @@ -13115,6 +13211,7 @@ return /******/ (function(modules) { // webpackBootstrap } node.showChilds(); + this.showChilds(); } this.updateDom({'updateIndexes': true}); @@ -13143,13 +13240,16 @@ return /******/ (function(modules) { // webpackBootstrap /** * Search in this node - * The node will be expanded when the text is found one of its childs, else - * it will be collapsed. Searches are case insensitive. + * Searches are case insensitive. * @param {String} text + * @param {Node[]} [results] Array where search results will be added + * used to count and limit the results whilst iterating * @return {Node[]} results Array with nodes containing the search text */ - Node.prototype.search = function(text) { - var results = []; + Node.prototype.search = function(text, results) { + if (!Array.isArray(results)) { + results = []; + } var index; var search = text ? text.toLowerCase() : undefined; @@ -13158,10 +13258,10 @@ return /******/ (function(modules) { // webpackBootstrap delete this.searchValue; // search in field - if (this.field != undefined) { + if (this.field !== undefined && results.length <= this.MAX_SEARCH_RESULTS) { var field = String(this.field).toLowerCase(); index = field.indexOf(search); - if (index != -1) { + if (index !== -1) { this.searchField = true; results.push({ 'node': this, @@ -13179,40 +13279,27 @@ return /******/ (function(modules) { // webpackBootstrap // search the nodes childs if (this.childs) { - var childResults = []; this.childs.forEach(function (child) { - childResults = childResults.concat(child.search(text)); + child.search(text, results); }); - results = results.concat(childResults); - } - - // update dom - if (search != undefined) { - var recurse = false; - if (childResults.length == 0) { - this.collapse(recurse); - } - else { - this.expand(recurse); - } } } else { // string, auto - if (this.value != undefined ) { + if (this.value !== undefined && results.length <= this.MAX_SEARCH_RESULTS) { var value = String(this.value).toLowerCase(); index = value.indexOf(search); - if (index != -1) { + if (index !== -1) { this.searchValue = true; results.push({ 'node': this, 'elem': 'value' }); } - } - // update dom - this._updateDomValue(); + // update dom + this._updateDomValue(); + } } return results; @@ -13224,21 +13311,34 @@ return /******/ (function(modules) { // webpackBootstrap * @param {function(boolean)} [callback] */ Node.prototype.scrollTo = function(callback) { - if (!this.dom.tr || !this.dom.tr.parentNode) { - // if the node is not visible, expand its parents - var parent = this.parent; - var recurse = false; - while (parent) { - parent.expand(recurse); - parent = parent.parent; - } - } + this.expandPathToNode(); if (this.dom.tr && this.dom.tr.parentNode) { this.editor.scrollTo(this.dom.tr.offsetTop, callback); } }; + /** + * if the node is not visible, expand its parents + */ + Node.prototype.expandPathToNode = function () { + var node = this; + var recurse = false; + while (node && node.parent) { + // expand visible childs of the parent if needed + var index = node.parent.type === 'array' + ? node.index + : node.parent.childs.indexOf(node); + while (node.parent.visibleChilds < index + 1) { + node.parent.visibleChilds += Node.prototype.MAX_VISIBLE_CHILDS; + } + + // expand the parent itself + node.parent.expand(recurse); + node = node.parent; + } + }; + // stores the element name currently having the focus Node.focusElement = undefined; @@ -13424,7 +13524,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this.childs) { var index = this.childs.indexOf(node); - if (index != -1) { + if (index !== -1) { + this.visibleChilds--; + node.hide(); // delete old search results @@ -13476,7 +13578,7 @@ return /******/ (function(modules) { // webpackBootstrap var table = this.dom.tr ? this.dom.tr.parentNode : undefined; var lastTr; if (this.expanded) { - lastTr = this.getAppend(); + lastTr = this.getAppendDom(); } else { lastTr = this.getDom(); @@ -13484,7 +13586,7 @@ return /******/ (function(modules) { // webpackBootstrap var nextTr = (lastTr && lastTr.parentNode) ? lastTr.nextSibling : undefined; // hide current field and all its childs - this.hide(); + this.hide({ resetVisibleChilds: false }); this.clearDom(); // adjust the field and the value @@ -13971,6 +14073,14 @@ return /******/ (function(modules) { // webpackBootstrap return dom.tr; }; + /** + * Test whether a Node is rendered and visible + * @returns {boolean} + */ + Node.prototype.isVisible = function () { + return this.dom && this.dom.tr && this.dom.tr.parentNode || false + }; + /** * DragStart event, fired on mousedown on the dragarea at the left side of a Node * @param {Node[] | Node} nodes @@ -14073,7 +14183,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - if (nodePrev) { + if (nodePrev && nodePrev.isVisible()) { // check if mouseY is really inside the found node trPrev = nodePrev.dom.tr; topPrev = trPrev ? util.getAbsoluteTop(trPrev) : 0; @@ -14104,16 +14214,17 @@ return /******/ (function(modules) { // webpackBootstrap util.getAbsoluteTop(trNext.nextSibling) : 0; heightNext = trNext ? (bottomNext - topFirst) : 0; - if (nodeNext.parent.childs.length == nodes.length && + if (nodeNext && + nodeNext.parent.childs.length == nodes.length && nodeNext.parent.childs[nodes.length - 1] == lastNode) { // We are about to remove the last child of this parent, // which will make the parents appendNode visible. topThis += 27; // TODO: dangerous to suppose the height of the appendNode a constant of 27 px. } - } - trNext = trNext.nextSibling; + trNext = trNext.nextSibling; + } } while (trNext && mouseY > topThis + heightNext); @@ -14125,7 +14236,7 @@ return /******/ (function(modules) { // webpackBootstrap var levelNext = nodeNext.getLevel(); // level to be // find the best fitting level (move upwards over the append nodes) - trPrev = nodeNext.dom.tr.previousSibling; + trPrev = nodeNext.dom.tr && nodeNext.dom.tr.previousSibling; while (levelNext < level && trPrev) { nodePrev = Node.getNodeFromTarget(trPrev); @@ -14157,8 +14268,13 @@ return /******/ (function(modules) { // webpackBootstrap trPrev = trPrev.previousSibling; } + if (nodeNext instanceof AppendNode && !nodeNext.isVisible() && + nodeNext.parent.showMore.isVisible()) { + nodeNext = nodeNext._nextNode(); + } + // move the node when its position is changed - if (trLast.nextSibling != nodeNext.dom.tr) { + if (nodeNext && nodeNext.dom.tr && trLast.nextSibling != nodeNext.dom.tr) { nodes.forEach(function (node) { nodeNext.parent.moveBefore(node, nodeNext); }); @@ -14321,6 +14437,10 @@ return /******/ (function(modules) { // webpackBootstrap this.append.setSelected(selected); } + if (this.showMore) { + this.showMore.setSelected(selected); + } + if (this.childs) { this.childs.forEach(function (child) { child.setSelected(selected); @@ -14425,8 +14545,8 @@ return /******/ (function(modules) { // webpackBootstrap this._updateDomIndexes(); } + // update childs recursively if (options && options.recurse === true) { - // recurse is true or undefined. update childs recursively if (this.childs) { this.childs.forEach(function (child) { child.updateDom(options); @@ -14434,10 +14554,20 @@ return /******/ (function(modules) { // webpackBootstrap } } + // update rendering of error + if (this.error) { + this.updateError() + } + // update row with append button if (this.append) { this.append.updateDom(); } + + // update "show more" text at the bottom of large arrays + if (this.showMore) { + this.showMore.updateDom(); + } }; /** @@ -14829,7 +14959,7 @@ return /******/ (function(modules) { // webpackBootstrap // focus // when clicked in whitespace left or right from the field or value, set focus var domTree = dom.tree; - if (target == domTree.parentNode && type == 'click' && !event.hasMoved) { + if (domTree && target == domTree.parentNode && type == 'click' && !event.hasMoved) { var left = (event.offsetX != undefined) ? (event.offsetX < (this.getLevel() + 1) * 24) : (event.pageX < util.getAbsoluteLeft(dom.tdSeparator));// for FF @@ -14969,7 +15099,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (altKey && shiftKey && editable) { // Alt + Shift + Arrow left if (lastNode.expanded) { - var appendDom = lastNode.getAppend(); + var appendDom = lastNode.getAppendDom(); nextDom = appendDom ? appendDom.nextSibling : undefined; } else { @@ -15063,9 +15193,7 @@ return /******/ (function(modules) { // webpackBootstrap var prevDom = dom.previousSibling; if (prevDom) { prevNode = Node.getNodeFromTarget(prevDom); - if (prevNode && prevNode.parent && - (prevNode instanceof AppendNode) - && !prevNode.isVisible()) { + if (prevNode && prevNode.parent && !prevNode.isVisible()) { oldSelection = this.editor.getDomSelection(); oldBeforeNode = lastNode.nextSibling(); @@ -15117,6 +15245,16 @@ return /******/ (function(modules) { // webpackBootstrap else { nextNode = lastNode._nextNode(); } + + // when the next node is not visible, we've reached the "showMore" buttons + if (nextNode && !nextNode.isVisible()) { + nextNode = nextNode.parent.showMore; + } + + if (nextNode && nextNode instanceof AppendNode) { + nextNode = lastNode; + } + var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { oldSelection = this.editor.getDomSelection(); @@ -15395,6 +15533,9 @@ return /******/ (function(modules) { // webpackBootstrap }); this.sortOrder = (order == 1) ? 'asc' : 'desc'; + // update the index numbering + this._updateDomIndexes(); + this.editor._onAction('sort', { node: this, oldChilds: oldChilds, @@ -15408,9 +15549,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Create a table row with an append button. - * @return {HTMLElement | undefined} buttonAppend or undefined when inapplicable + * @return {HTMLElement | undefined} tr with the AppendNode contents */ - Node.prototype.getAppend = function () { + Node.prototype.getAppendDom = function () { if (!this.append) { this.append = new AppendNode(this.editor); this.append.setParent(this); @@ -15418,6 +15559,17 @@ return /******/ (function(modules) { // webpackBootstrap return this.append.getDom(); }; + /** + * Create a table row with an showMore button and text + * @return {HTMLElement | undefined} tr with the AppendNode contents + */ + Node.prototype.getShowMoreDom = function () { + if (!this.showMore) { + this.showMore = new ShowMoreNode(this.editor, this); + } + return this.showMore.getDom(); + }; + /** * Find the node from an event target * @param {Node} target @@ -15484,7 +15636,7 @@ return /******/ (function(modules) { // webpackBootstrap prevDom = prevDom.previousSibling; prevNode = Node.getNodeFromTarget(prevDom); } - while (prevDom && (prevNode instanceof AppendNode && !prevNode.isVisible())); + while (prevDom && prevNode && (prevNode instanceof AppendNode && !prevNode.isVisible())); } return prevNode; }; @@ -15504,7 +15656,7 @@ return /******/ (function(modules) { // webpackBootstrap nextDom = nextDom.nextSibling; nextNode = Node.getNodeFromTarget(nextDom); } - while (nextDom && (nextNode instanceof AppendNode && !nextNode.isVisible())); + while (nextDom && nextNode && (nextNode instanceof AppendNode && !nextNode.isVisible())); } return nextNode; @@ -15537,7 +15689,7 @@ return /******/ (function(modules) { // webpackBootstrap if (dom && dom.parentNode) { var lastDom = dom.parentNode.lastChild; lastNode = Node.getNodeFromTarget(lastDom); - while (lastDom && (lastNode instanceof AppendNode && !lastNode.isVisible())) { + while (lastDom && lastNode && !lastNode.isVisible()) { lastDom = lastDom.previousSibling; lastNode = Node.getNodeFromTarget(lastDom); } @@ -16032,7 +16184,9 @@ return /******/ (function(modules) { // webpackBootstrap }; // 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); + var ShowMoreNode = showMoreNodeFactory(Node); module.exports = Node; @@ -16134,6 +16288,7 @@ return /******/ (function(modules) { // webpackBootstrap // a row for the append button var trAppend = document.createElement('tr'); + trAppend.className = 'jsoneditor-append'; trAppend.node = this; dom.tr = trAppend; @@ -16171,7 +16326,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * Update the HTML dom of the Node */ - AppendNode.prototype.updateDom = function () { + AppendNode.prototype.updateDom = function(options) { var dom = this.dom; var tdAppend = dom.td; if (tdAppend) { @@ -16283,7 +16438,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Handle an event. The event is catched centrally by the editor + * Handle an event. The event is caught centrally by the editor * @param {Event} event */ AppendNode.prototype.onEvent = function (event) { @@ -16332,6 +16487,167 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; + var translate = __webpack_require__(58).translate; + + /** + * A factory function to create an ShowMoreNode, which depends on a Node + * @param {function} Node + */ + function showMoreNodeFactory(Node) { + /** + * @constructor ShowMoreNode + * @extends Node + * @param {TreeEditor} editor + * @param {Node} parent + * Create a new ShowMoreNode. This is a special node which is created + * for arrays or objects having more than 100 items + */ + function ShowMoreNode (editor, parent) { + /** @type {TreeEditor} */ + this.editor = editor; + this.parent = parent; + this.dom = {}; + } + + ShowMoreNode.prototype = new Node(); + + /** + * Return a table row with an append button. + * @return {Element} dom TR element + */ + ShowMoreNode.prototype.getDom = function () { + if (this.dom.tr) { + return this.dom.tr; + } + + this._updateEditability(); + + // display "show more" + if (!this.dom.tr) { + var me = this; + var parent = this.parent; + var showMoreButton = document.createElement('a'); + showMoreButton.appendChild(document.createTextNode(translate('showMore'))); + showMoreButton.href = '#'; + showMoreButton.onclick = function (event) { + // TODO: use callback instead of accessing a method of the parent + parent.visibleChilds = Math.floor(parent.visibleChilds / parent.MAX_VISIBLE_CHILDS + 1) * + parent.MAX_VISIBLE_CHILDS; + me.updateDom(); + parent.showChilds(); + + event.preventDefault(); + return false; + }; + + var showAllButton = document.createElement('a'); + showAllButton.appendChild(document.createTextNode(translate('showAll'))); + showAllButton.href = '#'; + showAllButton.onclick = function (event) { + // TODO: use callback instead of accessing a method of the parent + parent.visibleChilds = Infinity; + me.updateDom(); + parent.showChilds(); + + event.preventDefault(); + return false; + }; + + var moreContents = document.createElement('div'); + var moreText = document.createTextNode(this._getShowMoreText()); + moreContents.className = 'jsoneditor-show-more'; + moreContents.appendChild(moreText); + moreContents.appendChild(showMoreButton); + moreContents.appendChild(document.createTextNode('. ')); + moreContents.appendChild(showAllButton); + moreContents.appendChild(document.createTextNode('. ')); + + var tdContents = document.createElement('td'); + tdContents.appendChild(moreContents); + + var moreTr = document.createElement('tr'); + moreTr.appendChild(document.createElement('td')); + moreTr.appendChild(document.createElement('td')); + moreTr.appendChild(tdContents); + moreTr.className = 'jsoneditor-show-more'; + this.dom.tr = moreTr; + this.dom.moreContents = moreContents; + this.dom.moreText = moreText; + } + + this.updateDom(); + + return this.dom.tr; + }; + + /** + * Update the HTML dom of the Node + */ + ShowMoreNode.prototype.updateDom = function(options) { + if (this.isVisible()) { + // attach to the right child node (the first non-visible child) + this.dom.tr.node = this.parent.childs[this.parent.visibleChilds]; + + if (!this.dom.tr.parentNode) { + var nextTr = this.parent._getNextTr(); + if (nextTr) { + nextTr.parentNode.insertBefore(this.dom.tr, nextTr); + } + } + + // update the counts in the text + this.dom.moreText.nodeValue = this._getShowMoreText(); + + // update left margin + this.dom.moreContents.style.marginLeft = (this.getLevel() + 1) * 24 + 'px'; + } + else { + if (this.dom.tr && this.dom.tr.parentNode) { + this.dom.tr.parentNode.removeChild(this.dom.tr); + } + } + }; + + ShowMoreNode.prototype._getShowMoreText = function() { + return translate('showMoreStatus', { + visibleChilds: this.parent.visibleChilds, + totalChilds: this.parent.childs.length + }) + ' '; + }; + + /** + * Check whether the ShowMoreNode is currently visible. + * the ShowMoreNode is visible when it's parent has more childs than + * the current visibleChilds + * @return {boolean} isVisible + */ + ShowMoreNode.prototype.isVisible = function () { + return this.parent.expanded && this.parent.childs.length > this.parent.visibleChilds; + }; + + /** + * Handle an event. The event is caught centrally by the editor + * @param {Event} event + */ + ShowMoreNode.prototype.onEvent = function (event) { + var type = event.type; + if (type === 'keydown') { + this.onKeyDown(event); + } + }; + + return ShowMoreNode; + } + + module.exports = showMoreNodeFactory; + + +/***/ }, +/* 64 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var ContextMenu = __webpack_require__(57); /** @@ -16448,7 +16764,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 64 */ +/* 65 */ /***/ function(module, exports) { 'use strict'; @@ -16835,13 +17151,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = completely; /***/ }, -/* 65 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var ace = __webpack_require__(66); - var ModeSwitcher = __webpack_require__(63); + var ace = __webpack_require__(67); + var ModeSwitcher = __webpack_require__(64); var util = __webpack_require__(54); // create a mixin with the functions for text mode @@ -16911,7 +17227,7 @@ return /******/ (function(modules) { // webpackBootstrap this.theme = options.theme || DEFAULT_THEME; if (this.theme === DEFAULT_THEME && _ace) { try { - __webpack_require__(72); + __webpack_require__(73); } catch (err) { console.error(err); @@ -17657,7 +17973,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 66 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { var ace @@ -17668,11 +17984,11 @@ return /******/ (function(modules) { // webpackBootstrap else { try { // load brace - ace = __webpack_require__(67); + ace = __webpack_require__(68); // load required Ace plugins - __webpack_require__(69); - __webpack_require__(71); + __webpack_require__(70); + __webpack_require__(72); } catch (err) { // failed to load brace (can be minimalist bundle). @@ -17684,7 +18000,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 67 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { /* ***** BEGIN LICENSE BLOCK ***** @@ -21867,7 +22183,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!global || !global.document) return; - options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(68).packaged); + options.packaged = packaged || acequire.packaged || module.packaged || (global.define && __webpack_require__(69).packaged); var scriptOptions = {}; var scriptUrl = ""; @@ -37894,7 +38210,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.acequire = acequire; if (true) - exports.define = __webpack_require__(68); + exports.define = __webpack_require__(69); exports.edit = function(el) { if (typeof el == "string") { var _id = el; @@ -37961,14 +38277,14 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = window.ace.acequire("ace/ace"); /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports) { module.exports = function() { throw new Error("define cannot be used indirect"); }; /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(acequire, exports, module) { @@ -38270,7 +38586,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.createWorker = function(session) { - var worker = new WorkerClient(["ace"], __webpack_require__(70), "JsonWorker"); + var worker = new WorkerClient(["ace"], __webpack_require__(71), "JsonWorker"); worker.attachToDocument(session.getDocument()); worker.on("annotate", function(e) { @@ -38293,14 +38609,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 70 */ +/* 71 */ /***/ function(module, exports) { module.exports.id = 'ace/mode/json_worker'; module.exports.src = "\"no use strict\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\"\";testPath;){var alias=paths[testPath];if(\"string\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,\"/\")+(tail||alias.main||alias.name);if(alias===!1)return\"\";var i=testPath.lastIndexOf(\"/\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\"error\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return window.normalizeModule(parentId,chunks[0])+\"!\"+window.normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=(base?base+\"/\":\"\")+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\"unable to load \"+id);var path=resolveModuleId(id,window.acequire.tlns);return\".js\"!=path.slice(-3)&&(path+=\".js\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\"function\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\"require\",\"exports\",\"module\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\"require\":return req;case\"exports\":return module.exports;case\"module\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\"ace/lib/event_emitter\").EventEmitter,oop=window.acequire(\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\"Unknown command:\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\"ace/lib/es5-shim\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\"\";switch(delta.action){case\"insert\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\"remove\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){\"use strict\";var oop=acequire(\"./lib/oop\"),applyDelta=acequire(\"./apply_delta\").applyDelta,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(textOrLines){this.$lines=[\"\"],0===textOrLines.length?this.$lines=[\"\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\",this._signal(\"changeNewLineMode\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},this.$autoNewLine=\"\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\"changeNewLineMode\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\"\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(position,[\"\",\"\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\"insert\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\"\"]),column=0):(lines=[\"\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\"insert\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\"remove\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\"remove\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\"remove\",lines:[\"\",\"\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\"insert\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\"change\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\"\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\"insert\"==delta.action?\"remove\":\"insert\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){\"use strict\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\"object\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\"[object Object]\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\"insert\",start:data[i],lines:data[i+1]};else var d={action:\"remove\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\"ace/mode/json/json_parse\",[\"require\",\"exports\",\"module\"],function(){\"use strict\";var at,ch,text,value,escapee={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},error=function(m){throw{name:\"SyntaxError\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\"Expected '\"+c+\"' instead of '\"+ch+\"'\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\"\";for(\"-\"===ch&&(string=\"-\",next(\"-\"));ch>=\"0\"&&\"9\">=ch;)string+=ch,next();if(\".\"===ch)for(string+=\".\";next()&&ch>=\"0\"&&\"9\">=ch;)string+=ch;if(\"e\"===ch||\"E\"===ch)for(string+=ch,next(),(\"-\"===ch||\"+\"===ch)&&(string+=ch,next());ch>=\"0\"&&\"9\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\"Bad number\"),void 0):number},string=function(){var hex,i,uffff,string=\"\";if('\"'===ch)for(;next();){if('\"'===ch)return next(),string;if(\"\\\\\"===ch)if(next(),\"u\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\"string\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\"Bad string\")},white=function(){for(;ch&&\" \">=ch;)next()},word=function(){switch(ch){case\"t\":return next(\"t\"),next(\"r\"),next(\"u\"),next(\"e\"),!0;case\"f\":return next(\"f\"),next(\"a\"),next(\"l\"),next(\"s\"),next(\"e\"),!1;case\"n\":return next(\"n\"),next(\"u\"),next(\"l\"),next(\"l\"),null}error(\"Unexpected '\"+ch+\"'\")},array=function(){var array=[];if(\"[\"===ch){if(next(\"[\"),white(),\"]\"===ch)return next(\"]\"),array;for(;ch;){if(array.push(value()),white(),\"]\"===ch)return next(\"]\"),array;next(\",\"),white()}}error(\"Bad array\")},object=function(){var key,object={};if(\"{\"===ch){if(next(\"{\"),white(),\"}\"===ch)return next(\"}\"),object;for(;ch;){if(key=string(),white(),next(\":\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \"'+key+'\"'),object[key]=value(),white(),\"}\"===ch)return next(\"}\"),object;next(\",\"),white()}}error(\"Bad object\")};return value=function(){switch(white(),ch){case\"{\":return object();case\"[\":return array();case'\"':return string();case\"-\":return number();default:return ch>=\"0\"&&\"9\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\" \",result=value(),white(),ch&&error(\"Syntax error\"),\"function\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\"object\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\"\":result},\"\"):result}}),ace.define(\"ace/mode/json_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/json/json_parse\"],function(acequire,exports){\"use strict\";var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,parse=acequire(\"./json/json_parse\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\"error\"})}this.sender.emit(\"annotate\",errors)}}.call(JsonWorker.prototype)}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r   ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}});"; /***/ }, -/* 71 */ +/* 72 */ /***/ function(module, exports) { ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(acequire, exports, module) { @@ -38813,7 +39129,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 72 */ +/* 73 */ /***/ function(module, exports) { /* ***** BEGIN LICENSE BLOCK ***** diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index 9fa098e..7572d1c 100644 --- a/dist/jsoneditor.map +++ b/dist/jsoneditor.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","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","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","firstNode","isDescendantOf","direction","removeEventListener","clearStartAndEnd","selectionChanged","setSelected","_selectionChangedHandler","first","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","anchor","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","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","_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","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","popoverRect","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","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","on","_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","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","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","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","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","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","schemaRefs","ajv","allErrors","verbose","ref","removeSchema","addSchema","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","opts","_opts","copy","setLogger","_schemas","_refs","_fragments","_formats","formats","format","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","str","test","_cache","cache","Cache","_loadingSchemas","_compilations","RULES","rules","_getId","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","undefined","serialize","stableStringify","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","meta","addMetaSchema","addInitialSchemas","patternGroups","schemaKeyRef","v","getSchema","schemaObj","_addSchema","_compile","valid","$async","async","co","errors","_meta","key","_skipValidation","Array","resolve","normalizeId","checkUnique","skipValidation","throwOrLogError","$schema","defaultMeta","logger","currentUriFormat","uri","message","errorsText","self","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","res","baseId","compileSchema","SchemaObject","fragment","RegExp","_removeAllSchemas","del","cacheKey","schemas","regex","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","callValidate","_validate","result","apply","compiling","currentOpts","refs","refVal","schemaId","_get$Id","_get$IdOrId","$id","separator","dataVar","text","e","dataPath","slice","addFormat","$dataSchema","$data","metaSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","log","noop","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","compilation","localCompile","_schema","_root","isRoot","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","vars","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","equal","ucs2length","source","code","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","value","toQuotedString","valueStr","defaultsHash","rule","parentSchema","it","definition","macro","keyword","checkCompiling","cv","endCompiling","compIndex","splice","arr","statement","resolveSchema","refPath","_getFullPath","getFullPath","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","parts","split","part","unescapeFragment","PREVENT_SCOPE_CHANGE","$ref","limit","checkNoRef","countKeys","item","count","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","baseIds","","fullPaths","traverse","allKeys","sch","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","fullPath","escapeFragment","toHash","Url","slashes","auth","port","hostname","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","u","urlFormat","obj","isString","urlResolve","relative","urlResolveObject","resolveObject","arg","isNull","isNullOrUndefined","punycode","protocolPattern","portPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","rest","trim","proto","exec","lowerProto","toLowerCase","substr","match","hostEnd","hec","atSign","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","join","domainArray","newOut","s","encode","h","ae","esc","encodeURIComponent","escape","qm","charAt","rel","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","authInHost","last","hasTrailingSlash","up","isAbsolute","__WEBPACK_AMD_DEFINE_RESULT__","global","type","RangeError","map","array","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","out","basic","oldi","w","t","baseMinusT","inputLength","n","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeGlobal","nodeType","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","webpackPolyfill","deprecate","paths","children","hasOwnProperty","qs","sep","eq","maxKeys","len","kstr","vstr","x","idx","stringifyPrimitive","isFinite","ks","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","o","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","types","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","matches","varReplace","expr","cleanUpCode","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","lvl","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","pos","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","properties","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","validation","missingRef","missingSchema","errorSubclass","Subclass","constructor","cmp","cycles","f","node","aobj","bobj","seen","toJSON","seenIndex","sort","$keyword","$ruleType","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","implements","$ruleImplementsSomeKeyword","impl","$refKeywords","all","$es7","yieldAwait","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","$valid","$$outStack","createErrors","messages","__err","compositeRule","$top","rootId","dataPathArr","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","arr1","$type","$i","l1","$parentData","$parentDataProperty","v5","arr2","i2","l2","useDefaults","$schemaKeys","arr3","$propertyKey","i3","l3","$sch","default","$passData","arr4","l4","arr5","i5","l5","$code","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","then","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","results","promises","promise","displayName","val","wrap","createPromise","__generatorFunction__","date","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","HOSTNAME","NOT_URI_FRAGMENT","URI","Z_ANCHOR","URITEMPLATE","URL","UUID","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","ruleModules","ALL","KEYWORDS","TYPES","group","implKeywords","custom","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","every","$wasComposite","$isData","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$prop","$useData","$propertyPath","$missingProperty","$vSchema","$schemaValue","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","$additionalItems","$currErrSchemaPath","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opExpr","$opStr","unicode","multipleOfPrecision","$allErrorsOption","$regexp","$key","$dataProperties","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","$pgProperties","$pgPropertyKeys","i1","$pProperty","$pgProperty","$additionalProperty","$useDefaults","i4","$hasDefault","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","$invalidName","$propertySch","$loopRequired","keywordsJsonPointers","metaSchemaRef","callback","loadMetaSchemaOf","_compileAsync","removePromise","added","schemaPromise","loadSchema","_addRule","ruleGroup","rg","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","def_callRuleValidate","modifying","def_customError","description","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","Highlighter","History","SearchBox","ContextMenu","TreePath","Node","ModeSwitcher","autocomplete","translate","setLanguages","setLanguage","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","navigationBar","onSelectionChange","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setDomSelection","select","range","setSelectionOffset","getDomSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","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","anchor","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","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","_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","removeText","removeTitle","removeField","showAll","showMore","showMoreStatus","sortTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","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","appendTr","updateIndexes","trTemp","AppendNode","lastVisibleNode","moveTo","searchField","searchValue","_updateDomField","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","isVisible","lastNode","draggedNode","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_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","oldSortOrder","sortOrder","ShowMoreNode","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","showMoreButton","showAllButton","moreContents","moreText","_getShowMoreText","tdContents","moreTr","totalChilds","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","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","on","_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","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","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","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","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","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file diff --git a/dist/jsoneditor.min.css b/dist/jsoneditor.min.css index 5c44595..ef64daf 100644 --- a/dist/jsoneditor.min.css +++ b/dist/jsoneditor.min.css @@ -1 +1 @@ -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:gray}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:gray}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{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%;margin:0}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;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}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 -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 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 -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}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-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;font-size:10pt}div.jsoneditor-navigation-bar.nav-bar-empty:after{content:'Select a node ...';color:rgba(104,104,91,.56);position:absolute;margin-left:5px} \ No newline at end of file +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%;margin:0}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;opacity:.4}div.jsoneditor-contextmenu ul li button.jsoneditor-expand:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button.jsoneditor-expand:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:focus div.jsoneditor-expand,div.jsoneditor-contextmenu ul li button:hover div.jsoneditor-expand,div.jsoneditor-contextmenu ul li.jsoneditor-selected div.jsoneditor-expand{opacity:1}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 -24px}div.jsoneditor-contextmenu button.jsoneditor-remove:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-remove:hover>div.jsoneditor-icon{background-position:-24px 0}div.jsoneditor-contextmenu button.jsoneditor-append>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-append:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-append:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-insert>div.jsoneditor-icon{background-position:0 -24px}div.jsoneditor-contextmenu button.jsoneditor-insert:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-insert:hover>div.jsoneditor-icon{background-position:0 0}div.jsoneditor-contextmenu button.jsoneditor-duplicate>div.jsoneditor-icon{background-position:-48px -24px}div.jsoneditor-contextmenu button.jsoneditor-duplicate:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-duplicate:hover>div.jsoneditor-icon{background-position:-48px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-asc>div.jsoneditor-icon{background-position:-168px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-asc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-asc:hover>div.jsoneditor-icon{background-position:-168px 0}div.jsoneditor-contextmenu button.jsoneditor-sort-desc>div.jsoneditor-icon{background-position:-192px -24px}div.jsoneditor-contextmenu button.jsoneditor-sort-desc:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-sort-desc:hover>div.jsoneditor-icon{background-position:-192px 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 -24px}div.jsoneditor-contextmenu button.jsoneditor-type-string.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-string:hover>div.jsoneditor-icon{background-position:-144px 0}div.jsoneditor-contextmenu button.jsoneditor-type-auto>div.jsoneditor-icon{background-position:-120px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-auto.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-auto:hover>div.jsoneditor-icon{background-position:-120px 0}div.jsoneditor-contextmenu button.jsoneditor-type-object>div.jsoneditor-icon{background-position:-72px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-object.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-object:hover>div.jsoneditor-icon{background-position:-72px 0}div.jsoneditor-contextmenu button.jsoneditor-type-array>div.jsoneditor-icon{background-position:-96px -24px}div.jsoneditor-contextmenu button.jsoneditor-type-array.jsoneditor-selected>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:focus>div.jsoneditor-icon,div.jsoneditor-contextmenu button.jsoneditor-type-array:hover>div.jsoneditor-icon{background-position:-96px 0}div.jsoneditor-contextmenu button.jsoneditor-type-modes>div.jsoneditor-icon{background-image:none;width:6px}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-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;font-size:10pt}div.jsoneditor-navigation-bar.nav-bar-empty:after{content:'Select a node ...';color:rgba(104,104,91,.56);position:absolute;margin-left:5px} \ No newline at end of file diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index 4f65f30..06cb8a1 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -24,18 +24,18 @@ * Copyright (c) 2011-2017 Jos de Jong, http://jsoneditoronline.org * * @author Jos de Jong, - * @version 5.15.0 - * @date 2018-05-02 + * @version 5.16.0 + * @date 2018-05-23 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(51),s=i(65),a=i(54);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!u&&!f)for(;y--;y)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return u=u||i.host&&p.length,u&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}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*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,u,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=d(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,u=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,d,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,d=C;p=d<=o?E:d>=o+b?b:d-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(o,d)?Array.isArray(o[d])?o[d].push(u):o[d]=[o[d],u]:o[d]=u}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=u[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),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,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+u+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+u+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+u+" = false; "),o+=" } ",h&&(o+=" if ("+u+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,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 "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),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,w="data"+v,y=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+d+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+u+" "+y+"= "+A+" : "+u+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+u+" "+y+"= "+r+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+u+" "+y+"= "+g+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+" "+y+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+u+".length ":o+=" ucs2length("+u+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),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 w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+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: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+d+" = pgPropCount"+r+" <= "+we+"; ",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: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=u.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+d+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){u||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+d+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),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 k,b=-1,B=D.length-1;b 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>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},m._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,h.addEventListener(this.frame,"focus",e,!0),h.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title=u("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=u("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=u("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},m._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}}, -m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;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)}}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){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()},m.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var 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())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},m.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},m.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},m.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)},m._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?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){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,o,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&&(o=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),s=e.createTextRange(),s.collapse(!1),r.compareEndPoints("StartToEnd",s)>-1?a=l=o:(a=-r.moveStart("character",-o),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",s)>-1?l=o:(l=-r.moveEnd("character",-o),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 o=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+o}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&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=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: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.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),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var 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='
'+s(r.text)+"
";t.push(a)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(54),s=i(58).translate;r.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,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 f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=l("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title=l("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r.nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getDomSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,l,h,d,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}else{var F=e[e.length-1];if(l=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=l?l.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(u&&u.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=u.getLevel();for(r=u.dom.tr.previousSibling;D<$&&r;){d=n.getNodeFromTarget(r);if(e.some(function(e){return e===d||d.isDescendantOf(e)}));else{if(!(d instanceof c))break;var k=d.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}l.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),l=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getDomSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype.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?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=this.editor.options.schema?n._findSchema(this.editor.options.schema,this.getPath()):null,this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum -;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y),v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(C.expanded){var $=C.getAppend();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof c&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getDomSelection(),l=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),l=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getDomSelection(),l=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getDomSelection(),l=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,newSelection:this.editor.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,o=t.getIndex();r.highlighter.unhighlight();var s=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:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.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():r.select(a);var l=r.getDomSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.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){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof c&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){i.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=i.parent.childs;if(i==c[c.length-1]){var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(h,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:h})}var d=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(d,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:d}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(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.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="("+s("empty")+")",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new o(l,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57),s=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),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!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),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 o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var 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(66),r=i(63),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(72)}catch(e){console.error(e)}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 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=s.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 w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._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(){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()}},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=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.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}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=o.debounce(e,this.DEBOUNCE_INTERVAL))},s.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:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(67),i(69),i(71)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,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__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];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(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(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",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame), -t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),d()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,d(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?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)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,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"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0: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&&C.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=o.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="",w=!0;try{var y=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(u,"focus",function(e){y=!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 y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(u.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(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)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=o,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",b),n.addListener(u,"input",$),n.addListener(u,"cut",B),n.addListener(u,"copy",_),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:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=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=s.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 s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-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 o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.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,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"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(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function d(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&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 o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,d=!0,a;case E:return u=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,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,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var d=0;db&&i[d]0&&"ل"===s[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[d])&&(h[d-1]=h[d]=t.R_H,d++);s[s.length-1]===t.DOT&&(h[s.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 o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{ -for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;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 w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},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,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){u(r);var h=r.getSelectionRange(),d=o.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){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 w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){u(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){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 o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){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 o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){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 o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){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 o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),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),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,c=o.start,s=c.row-l.row,a=c.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new h(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=u+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),u-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=u+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=u-1&&e[w]!=t;w--);if(w>u){a(w);continue}for(w=u+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=c[h],o=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],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((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vC&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!d(i,s.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()}, -scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,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,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var 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(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){ -this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,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=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new 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),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return s.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var h=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0} -for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var 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=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,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(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var 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(s.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})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(68),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.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,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(70),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(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.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","onSelectionChange","onTextSelectionChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(51),s=i(66),a=i(54);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!u&&!f)for(;y--;y)p.unshift("..");!u||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return u=u||i.host&&p.length,u&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function d(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}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*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,u,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=d(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,u=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,d,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,d=C;p=d<=o?E:d>=o+b?b:d-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),d=decodeURIComponent(c),u=decodeURIComponent(h),i(o,d)?Array.isArray(o[d])?o[d].push(u):o[d]=[o[d],u]:o[d]=u}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=d.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=u[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),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,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(a||""),u="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+d+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+u+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+u+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+u+" = false; "),o+=" } ",h&&(o+=" if ("+u+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,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 "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=u?""+d:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=u?"' + "+d+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),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,w="data"+v,y=e.baseId;if(n+="var "+u+" = errors;var "+d+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+d+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+d+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+u+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+u+" "+y+"= "+A+" : "+u+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+u+" "+y+"= "+r+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+u+" "+y+"= "+g+" : "+u+" "+y+" "+r+" ) || "+u+" !== "+u+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+" "+y+" "+r+" || "+u+" !== "+u+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+u+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+u+".length ":o+=" ucs2length("+u+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,d=!e.opts.allErrors,u="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+u+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&d?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",d&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.$data&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",u&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+d+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),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 w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+d+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+d+") { ";var X=X||[];X.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var J=n;n=X.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+J+"]); ":n+=" validate.errors = ["+J+"]; return false; ":n+=" var err = "+J+"; 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,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d="errs__"+r,u=e.util.copy(e);u.level++;var f="valid"+u.level;if(e.util.schemaHasRules(s,e.RULES.all)){u.schema=s,u.schemaPath=a,u.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=u.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+d+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=u.compositeRule=!0;var x=e.validate(u);u.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=u.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){u||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+d+" = true; ",u&&(n+=" if (schema"+r+" === undefined) "+d+" = true; else if (!Array.isArray(schema"+r+")) "+d+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+d+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),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 k,b=-1,B=D.length-1;b 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>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},m._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,h.addEventListener(this.frame,"focus",e,!0),h.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title=u("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=u("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=u("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},m._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}}, +m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;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)}}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){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()},m.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];if(e.forEach(function(e){e.expandPathToNode(),e.setSelected(!0,e===t)}),this._selectionChangedHandler){var i=this.getSelection();this._selectionChangedHandler(i.start,i.end)}}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var 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())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},m.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},m.onSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=h.debounce(e,this.DEBOUNCE_INTERVAL))},m.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)},m._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?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){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,o,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&&(o=e.value.length,i=e.value.replace(/\r\n/g,"\n"),r=e.createTextRange(),r.moveToBookmark(n.getBookmark()),s=e.createTextRange(),s.collapse(!1),r.compareEndPoints("StartToEnd",s)>-1?a=l=o:(a=-r.moveStart("character",-o),a+=i.slice(0,a).split("\n").length-1,r.compareEndPoints("EndToEnd",s)>-1?l=o:(l=-r.moveEnd("character",-o),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 o=1==t?i:i+1;return r.slice(0,t-1).join("\n").length+o}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&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=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: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.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),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!==this.lastText||e){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 o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var 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='
'+s(r.text)+"
";t.push(a)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(54),s=i(58).translate;r.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,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 f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.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||(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:c("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=c("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=c("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.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],o=n.getNodeFromTarget(t.target),s=r.nextSibling(),a=i.editor,c=l.getAbsoluteTop(o.dom.tr)-l.getAbsoluteTop(i.dom.tr);a.mousemove||(a.mousemove=l.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),a.mouseup||(a.mouseup=l.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:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,a,c,d,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=l.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}else{var F=e[e.length-1];if(a=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=a?a.nextSibling:void 0){m=l.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?l.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u&&u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27),o=o.nextSibling)}while(o&&A>f+w);if(u&&u.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=u.getLevel();for(r=u.dom.tr&&u.dom.tr.previousSibling;D<$&&r;){d=n.getNodeFromTarget(r);if(e.some(function(e){return e===d||d.isDescendantOf(e)}));else{if(!(d instanceof h))break;var k=d.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}u instanceof h&&!u.isVisible()&&u.parent.showMore.isVisible()&&(u=u._nextNode()),u&&u.dom.tr&&a.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),a=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getDomSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:a};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(l.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(l.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?l.addClassName(this.dom.tr,"jsoneditor-highlight"):l.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?l.addClassName(this.dom.tr,"jsoneditor-selected"):l.removeClassName(this.dom.tr,"jsoneditor-selected"),t?l.addClassName(this.dom.tr,"jsoneditor-first"):l.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 o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",l.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",l.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),l.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,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||l.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y),v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(C.expanded){var $=C.getAppendDom();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof h&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getDomSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,c=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(c),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&!t.isVisible()&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getDomSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,c=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(c),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode(),i&&!i.isVisible()&&(i=i.parent.showMore),i&&i instanceof h&&(i=C);var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getDomSelection(),a=C.nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:a,newBeforeNode:_,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,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=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:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.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():r.select(a);var l=r.getDomSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getDomSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getDomSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.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){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this._updateDomIndexes(),this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppendDom=function(){return this.append||(this.append=new h(this.editor),this.append.setParent(this)),this.append.getDom()},n.prototype.getShowMoreDom=function(){return this.showMore||(this.showMore=new d(this.editor,this)),this.showMore.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype.nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof h&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e&&e instanceof h&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:c("autoType"),object:c("objectType"),array:c("arrayType"),string:c("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:c("type"),title:c("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:c("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:c("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:c("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:c("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:c("sort"),title:c("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:c("ascending"),className:"jsoneditor-sort-asc",title:c("ascendingTitle",{type:this.type}),click:function(){i.sort("asc")}},{text:c("descending"),className:"jsoneditor-sort-desc",title:c("descendingTitle",{type:this.type}),click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;if(i==l[l.length-1]){var h=[{text:c("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(h,!0),s.push({text:c("appendText"),title:c("appendTitle"),submenuTitle:c("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:h})}var d=[{text:c("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:c("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:c("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:c("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(d,!1),s.push({text:c("insert"),title:c("insertTitle"),submenuTitle:c("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:d}),this.editable.field&&(s.push({text:c("duplicateText"),title:c("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:c("removeText"),title:c("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=l.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return l.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(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"),o=document.createElement("div");return o.innerHTML="("+s("empty")+")",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(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 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:s("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new o(l,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57),s=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e){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 o=document.createElement("div"),s=document.createTextNode(this._getShowMoreText());o.className="jsoneditor-show-more",o.appendChild(s),o.appendChild(i),o.appendChild(document.createTextNode(". ")),o.appendChild(n),o.appendChild(document.createTextNode(". "));var a=document.createElement("td");a.appendChild(o);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=o,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 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){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",d),this.element.addEventListener("keydown",d,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),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!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),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 o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var 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(67),r=i(64),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(73)}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 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=s.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 w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this._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(){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()}},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=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},s.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}}},s.onTextSelectionChange=function(e){"function"==typeof e&&(this._selectionChangedHandler=o.debounce(e,this.DEBOUNCE_INTERVAL))},s.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: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(68),i(70),i(72)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,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__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];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(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){ +var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(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",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),d()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,d(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?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)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,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"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0: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&&C.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=o.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="",w=!0;try{var y=document.activeElement===u}catch(e){}n.addListener(u,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(u,"focus",function(e){y=!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 y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(u.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(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)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,u.value=o,u.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(u.value="",m=!0)};n.addCommandKeyListener(u,t.onCommandKey.bind(t)),n.addListener(u,"select",b),n.addListener(u,"input",$),n.addListener(u,"cut",B),n.addListener(u,"copy",_),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:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=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=s.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 s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-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 o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.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,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"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(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function d(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&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 o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,d=!0,a;case E:return u=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,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,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var d=0;db&&i[d]0&&"ل"===s[d-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[d])&&(h[d-1]=h[d]=t.R_H,d++);s[s.length-1]===t.DOT&&(h[s.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 o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){ +this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;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 w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},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,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){u(r);var h=r.getSelectionRange(),d=o.doc.getTextRange(h);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return f(h,d,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){u(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){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 w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){u(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){u(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){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 o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){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 o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){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 o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){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 o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;u(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){u(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),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),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,c=o.start,s=c.row-l.row,a=c.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new h(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=u+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),u-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=u+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=u-1&&e[w]!=t;w--);if(w>u){a(w);continue}for(w=u+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=c[h],o=this.$docRowCache[h],u=e>c[d-1];else var u=!d;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),u&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],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((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vC&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=a;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(d(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!d(i,s.column,e)){for(i+=1;i<=l;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var h=i.length,d=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,d)||void 0}}};else if(n)var d=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var d=a[h-1],c=a[h];if(r(t,d,t,d+c))return!0}};else var d=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart", +bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,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,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var 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(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")} +return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,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=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new 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),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return s.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var h=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var 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=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,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(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var 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(s.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})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(69),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.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,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){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(71),"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"),o=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString('\t.ace_search {\tbackground-color: #ddd;\tcolor: #666;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\toverflow: hidden;\tmargin: 0;\tpadding: 4px 6px 0 4px;\tposition: absolute;\ttop: 0;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tmargin: 0 20px 4px 0;\toverflow: hidden;\tline-height: 1.9;\t}\t.ace_replace_form {\tmargin-right: 0;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tborder-radius: 3px 0 0 3px;\tbackground-color: white;\tcolor: black;\tborder: 1px solid #cbcbcb;\tborder-right: 0 none;\tbox-sizing: border-box!important;\toutline: 0;\tpadding: 0;\tfont-size: inherit;\tmargin: 0;\tline-height: inherit;\tpadding: 0 6px;\tmin-width: 17em;\tvertical-align: top;\t}\t.ace_searchbtn {\tborder: 1px solid #cbcbcb;\tline-height: inherit;\tdisplay: inline-block;\tpadding: 0 6px;\tbackground: #fff;\tborder-right: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tmargin: 0;\tposition: relative;\tbox-sizing: content-box!important;\tcolor: #666;\t}\t.ace_searchbtn:last-child {\tborder-radius: 0 3px 3px 0;\tborder-right: 1px solid #cbcbcb;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn:hover {\tbackground-color: #eef1f6;\t}\t.ace_searchbtn.prev, .ace_searchbtn.next {\tpadding: 0px 0.7em\t}\t.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\tcontent: "";\tborder: solid 2px #888;\twidth: 0.5em;\theight: 0.5em;\tborder-width: 2px 0 0 2px;\tdisplay:inline-block;\ttransform: rotate(-45deg);\t}\t.ace_searchbtn.next:after {\tborder-width: 0 2px 2px 0 ;\t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfont: 16px/16px Arial;\tpadding: 0;\theight: 14px;\twidth: 14px;\ttop: 9px;\tright: 7px;\tposition: absolute;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\tbox-sizing: border-box!important;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\tclear: both;\t}\t.ace_search_counter {\tfloat: left;\tfont-family: arial;\tpadding: 0 8px;\t}',"ace_searchbox");var l=''.replace(/> +/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){n.setCssClass(this.replaceOption,"checked",this.searchRange),n.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.replaceBox.style.display=this.replaceOption.checked?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i,range:this.searchRange}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,i=0,n=0;if(t){var r=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),o=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(o-=e.session.doc.positionToIndex(this.searchRange.start));for(var s,a=t.lastIndex=0;(s=t.exec(r))&&(i++,a=s.index,a<=o&&n++,!(i>999))&&(s[0]||(t.lastIndex=a+=1,!(a>=r.length))););}this.searchCounter.textContent=n+" of "+(i>999?"999+":i)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: "dejavu sans mono", "droid sans mono", consolas, monaco, "lucida console", "courier new", courier, monospace, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6a5268b..40dffcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.15.0", + "version": "5.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6bd9f65..2a4a3f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.15.0", + "version": "5.16.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [ diff --git a/src/js/Node.js b/src/js/Node.js index 58de60e..177acf6 100644 --- a/src/js/Node.js +++ b/src/js/Node.js @@ -2132,8 +2132,8 @@ Node.prototype.updateDom = function (options) { this._updateDomIndexes(); } + // update childs recursively if (options && options.recurse === true) { - // recurse is true or undefined. update childs recursively if (this.childs) { this.childs.forEach(function (child) { child.updateDom(options);