From 9a77045e78349166b8edc468d053cda42651c8a2 Mon Sep 17 00:00:00 2001 From: jos Date: Wed, 2 May 2018 10:42:47 +0200 Subject: [PATCH] Released v5.15.0 --- HISTORY.md | 2 +- dist/jsoneditor-minimalist.js | 567 ++++++++++++++++++++++++------ dist/jsoneditor-minimalist.map | 2 +- dist/jsoneditor-minimalist.min.js | 8 +- dist/jsoneditor.js | 567 ++++++++++++++++++++++++------ dist/jsoneditor.map | 2 +- dist/jsoneditor.min.js | 24 +- package-lock.json | 2 +- package.json | 2 +- 9 files changed, 959 insertions(+), 217 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 26022af..64eb7a9 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -3,7 +3,7 @@ https://github.com/josdejong/jsoneditor -## not yet released, version 5.15.0 +## 2018-05-02, version 5.15.0 - Implemented selection API: `onSelectionChanged`, `onTextSelectionChanged`, `getSelection`, `getTextSelection`, `setSelection`, `setTextSelection`, diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 7016072..fdbeec3 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.14.1 - * @date 2018-03-21 + * @version 5.15.0 + * @date 2018-05-02 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -129,6 +129,14 @@ return /******/ (function(modules) { // webpackBootstrap * {boolean} sortObjectKeys If true, object keys are * sorted before display. * false by default. + * {function} onSelectionChange Callback method, + * triggered on node selection change + * Only applicable for modes + * 'tree', 'view', and 'form' + * {function} onTextSelectionChange Callback method, + * triggered on text selection change + * Only applicable for modes + * 'text' and 'code' * @param {Object | undefined} json JSON object */ function JSONEditor (container, options, json) { @@ -166,7 +174,7 @@ return /******/ (function(modules) { // webpackBootstrap var VALID_OPTIONS = [ 'ajv', 'schema', 'schemaRefs','templates', 'ace', 'theme','autocomplete', - 'onChange', 'onEditable', 'onError', 'onModeChange', + 'onChange', 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' ]; @@ -607,7 +615,8 @@ return /******/ (function(modules) { // webpackBootstrap schema: null, schemaRefs: null, autocomplete: null, - navigationBar : true + navigationBar : true, + onSelectionChange: null }; // copy all options @@ -625,6 +634,10 @@ return /******/ (function(modules) { // webpackBootstrap // create a debounced validate function this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL); + if (options.onSelectionChange) { + this.onSelectionChange(options.onSelectionChange); + } + setLanguages(this.options.languages); setLanguage(this.options.language) }; @@ -1040,7 +1053,7 @@ return /******/ (function(modules) { // webpackBootstrap * {Node[]} nodes Nodes in case of multi selection * {Number} scrollTop Scroll position */ - treemode.setSelection = function (selection) { + treemode.setDomSelection = function (selection) { if (!selection) { return; } @@ -1070,7 +1083,7 @@ return /******/ (function(modules) { // webpackBootstrap * {Node[]} nodes Nodes in case of multi selection * {Number} scrollTop Scroll position */ - treemode.getSelection = function () { + treemode.getDomSelection = function () { var range = util.getSelectionOffset(); if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs) range = null; @@ -1537,6 +1550,14 @@ return /******/ (function(modules) { // webpackBootstrap if (start && end) { // find the top level childs, all having the same parent this.multiselection.nodes = this._findTopLevelNodes(start, end); + if (this.multiselection.nodes && this.multiselection.nodes.length) { + var firstNode = this.multiselection.nodes[0]; + if (this.multiselection.start === firstNode || this.multiselection.start.isDescendantOf(firstNode)) { + this.multiselection.direction = 'down'; + } else { + this.multiselection.direction = 'up'; + } + } this.select(this.multiselection.nodes); } }; @@ -1569,9 +1590,10 @@ return /******/ (function(modules) { // webpackBootstrap /** * deselect currently selected nodes * @param {boolean} [clearStartAndEnd=false] If true, the `start` and `end` - * state is cleared too. + * state is cleared too. */ treemode.deselect = function (clearStartAndEnd) { + var selectionChanged = !!this.multiselection.nodes.length; this.multiselection.nodes.forEach(function (node) { node.setSelected(false); }); @@ -1581,6 +1603,12 @@ return /******/ (function(modules) { // webpackBootstrap this.multiselection.start = null; this.multiselection.end = null; } + + if (selectionChanged) { + if (this._selectionChangedHandler) { + this._selectionChangedHandler(); + } + } }; /** @@ -1601,6 +1629,11 @@ return /******/ (function(modules) { // webpackBootstrap nodes.forEach(function (node) { node.setSelected(true, node === first); }); + + if (this._selectionChangedHandler) { + var selection = this.getSelection(); + this._selectionChangedHandler(selection.start, selection.end); + } } }; @@ -1829,6 +1862,125 @@ return /******/ (function(modules) { // webpackBootstrap menu.show(anchor, this.content); }; + /** + * Get current selected nodes + * @return {{start:SerializableNode, end: SerializableNode}} + */ + treemode.getSelection = function () { + var selection = { + start: null, + end: null + }; + if (this.multiselection.nodes && this.multiselection.nodes.length) { + if (this.multiselection.nodes.length) { + var selection1 = this.multiselection.nodes[0]; + var selection2 = this.multiselection.nodes[this.multiselection.nodes.length - 1]; + if (this.multiselection.direction === 'down') { + selection.start = selection1.serialize(); + selection.end = selection2.serialize(); + } else { + selection.start = selection2.serialize(); + selection.end = selection1.serialize(); + } + } + } + return selection; + }; + + /** + * Callback registraion for selection change + * @param {selectionCallback} callback + * + * @callback selectionCallback + * @param {SerializableNode=} start + * @param {SerializableNode=} end + */ + treemode.onSelectionChange = function (callback) { + if (typeof callback === 'function') { + this._selectionChangedHandler = util.debounce(callback, this.DEBOUNCE_INTERVAL); + } + }; + + /** + * Select range of nodes. + * For selecting single node send only the start parameter + * For clear the selection do not send any parameter + * If the nodes are not from the same level the first common parent will be selected + * @param {{path: Array.}} start object contains the path for selection start + * @param {{path: Array.}=} end object contains the path for selection end + */ + treemode.setSelection = function (start, end) { + // check for old usage + if (start && start.dom && start.range) { + console.warn('setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options'); + this.setDomSelection(start); + } + + var nodes = this._getNodeIntsncesByRange(start, end); + + nodes.forEach(function(node) { + node.expandTo(); + }); + this.select(nodes); + }; + + /** + * Returns a set of Nodes according to a range of selection + * @param {{path: Array.}} start object contains the path for range start + * @param {{path: Array.}=} end object contains the path for range end + * @return {Array.} Node intances on the given range + * @private + */ + treemode._getNodeIntsncesByRange = function (start, end) { + var startNode, endNode; + + if (start && start.path) { + startNode = this.node.findNodeByPath(start.path); + if (end && end.path) { + endNode = this.node.findNodeByPath(end.path); + } + } + + var nodes = []; + if (startNode instanceof Node) { + if (endNode instanceof Node && endNode !== startNode) { + if (startNode.parent === endNode.parent) { + var start, end; + if (startNode.getIndex() < endNode.getIndex()) { + start = startNode; + end = endNode; + } else { + start = endNode; + end = startNode; + } + var current = start; + nodes.push(current); + do { + current = current.nextSibling(); + nodes.push(current); + } while (current && current !== end); + } else { + nodes = this._findTopLevelNodes(startNode, endNode); + } + } else { + nodes.push(startNode); + } + } + + return nodes; + + }; + + treemode.getNodesByRange = function (start, end) { + var nodes = this._getNodeIntsncesByRange(start, end); + var serializableNodes = []; + + nodes.forEach(function (node){ + serializableNodes.push(node.serialize()); + }); + + return serializableNodes; + } // define modes module.exports = [ @@ -2162,7 +2314,7 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.undo) { action.undo(obj.params); if (obj.params.oldSelection) { - this.editor.setSelection(obj.params.oldSelection); + this.editor.setDomSelection(obj.params.oldSelection); } } else { @@ -2189,7 +2341,7 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.redo) { action.redo(obj.params); if (obj.params.newSelection) { - this.editor.setSelection(obj.params.newSelection); + this.editor.setDomSelection(obj.params.newSelection); } } else { @@ -3046,11 +3198,11 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} reference Object with 2 properties (start and end) with the identifier of the location of the cursor and selected text. **/ exports.getInputSelection = function(el) { - var start = 0, end = 0, normalizedValue, range, textInputRange, len, endRange; + var startIndex = 0, endIndex = 0, normalizedValue, range, textInputRange, len, endRange; if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "number") { - start = el.selectionStart; - end = el.selectionEnd; + startIndex = el.selectionStart; + endIndex = el.selectionEnd; } else { range = document.selection.createRange(); @@ -3062,38 +3214,69 @@ return /******/ (function(modules) { // webpackBootstrap textInputRange = el.createTextRange(); textInputRange.moveToBookmark(range.getBookmark()); - // Check if the start and end of the selection are at the very end + // Check if the startIndex and endIndex of the selection are at the very end // of the input, since moveStart/moveEnd doesn't return what we want // in those cases endRange = el.createTextRange(); endRange.collapse(false); if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) { - start = end = len; + startIndex = endIndex = len; } else { - start = -textInputRange.moveStart("character", -len); - start += normalizedValue.slice(0, start).split("\n").length - 1; + startIndex = -textInputRange.moveStart("character", -len); + startIndex += normalizedValue.slice(0, startIndex).split("\n").length - 1; if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) { - end = len; + endIndex = len; } else { - end = -textInputRange.moveEnd("character", -len); - end += normalizedValue.slice(0, end).split("\n").length - 1; + endIndex = -textInputRange.moveEnd("character", -len); + endIndex += normalizedValue.slice(0, endIndex).split("\n").length - 1; } } } } - var textTillCaret = el.value.substring(0,end); - var row = (textTillCaret.match(/\n/g) || []).length + 1; - var col = textTillCaret.length - textTillCaret.lastIndexOf("\n"); - return { - start: start, - end: end, - col: col, - row: row + startIndex: startIndex, + endIndex: endIndex, + start: _positionForIndex(startIndex), + end: _positionForIndex(endIndex) }; + + /** + * Returns textarea row and column position for certain index + * @param {Number} index text index + * @returns {{row: Number, col: Number}} + */ + function _positionForIndex(index) { + var textTillIndex = el.value.substring(0,index); + var row = (textTillIndex.match(/\n/g) || []).length + 1; + var col = textTillIndex.length - textTillIndex.lastIndexOf("\n"); + + return { + row: row, + column: col + } + } + } + + /** + * Returns the index for certaion position in text element + * @param {DOMElement} el A dom element of a textarea or input text. + * @param {Number} row row value, > 0, if exceeds rows number - last row will be returned + * @param {Number} column column value, > 0, if exceeds column length - end of column will be returned + * @returns {Number} index of position in text, -1 if not found + */ + exports.getIndexForPosition = function(el, row, column) { + var text = el.value || ''; + if (row > 0 && column > 0) { + var rows = text.split('\n', row); + row = Math.min(rows.length, row); + column = Math.min(rows[row - 1].length, column - 1); + var columnCount = (row == 1 ? column : column + 1); // count new line on multiple rows + return rows.slice(0, row - 1).join('\n').length + columnCount; + } + return -1; } @@ -4744,12 +4927,7 @@ return /******/ (function(modules) { // webpackBootstrap var node = this; var path = []; while (node) { - var field = !node.parent - ? undefined // do not add an (optional) field name of the root node - : (node.parent.type != 'array') - ? node.field - : node.index; - + var field = node.getName(); if (field !== undefined) { path.unshift(field); } @@ -4758,6 +4936,53 @@ return /******/ (function(modules) { // webpackBootstrap return path; }; + /** + * Get node serializable name + * @returns {String|Number} + */ + Node.prototype.getName = function () { + return !this.parent + ? undefined // do not add an (optional) field name of the root node + : (this.parent.type != 'array') + ? this.field + : this.index; + }; + + /** + * Find child node by serializable path + * @param {Array} path + */ + Node.prototype.findNodeByPath = function (path) { + if (!path) { + return; + } + + if (path.length == 0) { + return this; + } + + if (path.length && this.childs && this.childs.length) { + for (var i=0; i < this.childs.length; ++i) { + if (('' + path[0]) === ('' + this.childs[i].getName())) { + return this.childs[i].findNodeByPath(path.slice(1)); + } + } + } + }; + + /** + * @typedef {{value: String|Object|Number|Boolean, path: Array.}} SerializableNode + * + * Returns serializable representation for the node + * @return {SerializedNode} + */ + Node.prototype.serialize = function () { + return { + value: this.getValue(), + path: this.getPath() + }; + }; + /** * Find a Node from a JSON path like '.items[3].name' * @param {string} jsonPath @@ -5828,13 +6053,13 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeValue = function () { // get current selection, then override the range such that we can select // the added/removed text on undo/redo - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); if (oldSelection.range) { var undoDiff = util.textDiff(String(this.value), String(this.previousValue)); oldSelection.range.startOffset = undoDiff.start; oldSelection.range.endOffset = undoDiff.end; } - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); if (newSelection.range) { var redoDiff = util.textDiff(String(this.previousValue), String(this.value)); newSelection.range.startOffset = redoDiff.start; @@ -5859,14 +6084,14 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeField = function () { // get current selection, then override the range such that we can select // the added/removed text on undo/redo - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var previous = this.previousField || ''; if (oldSelection.range) { var undoDiff = util.textDiff(this.field, previous); oldSelection.range.startOffset = undoDiff.start; oldSelection.range.endOffset = undoDiff.end; } - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); if (newSelection.range) { var redoDiff = util.textDiff(previous, this.field); newSelection.range.startOffset = redoDiff.start; @@ -6216,7 +6441,7 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var lastNode = nodes[nodes.length - 1]; var draggedNode = Node.getNodeFromTarget(event.target); - var beforeNode = lastNode._nextSibling(); + var beforeNode = lastNode.nextSibling(); var editor = firstNode.editor; // in case of multiple selected nodes, offsetY prevents the selection from @@ -6238,7 +6463,7 @@ return /******/ (function(modules) { // webpackBootstrap editor.highlighter.lock(); editor.drag = { oldCursor: document.body.style.cursor, - oldSelection: editor.getSelection(), + oldSelection: editor.getDomSelection(), oldBeforeNode: beforeNode, mouseX: event.pageX, offsetY: offsetY, @@ -6359,7 +6584,7 @@ return /******/ (function(modules) { // webpackBootstrap nodePrev = Node.getNodeFromTarget(trPrev); var isDraggedNode = nodes.some(function (node) { - return node === nodePrev || nodePrev._isChildOf(node); + return node === nodePrev || nodePrev.isDescendantOf(node); }); if (isDraggedNode) { @@ -6436,7 +6661,7 @@ return /******/ (function(modules) { // webpackBootstrap var params = { nodes: nodes, oldSelection: editor.drag.oldSelection, - newSelection: editor.getSelection(), + newSelection: editor.getDomSelection(), oldBeforeNode: editor.drag.oldBeforeNode, newBeforeNode: beforeNode }; @@ -6471,12 +6696,12 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Test if this node is a child of an other node + * Test if this node is a sescendant of an other node * @param {Node} node - * @return {boolean} isChild + * @return {boolean} isDescendant * @private */ - Node.prototype._isChildOf = function (node) { + Node.prototype.isDescendantOf = function (node) { var n = this.parent; while (n) { if (n == node) { @@ -6986,7 +7211,7 @@ return /******/ (function(modules) { // webpackBootstrap case 'keydown': case 'mousedown': // TODO: cleanup - this.editor.selection = this.editor.getSelection(); + this.editor.selection = this.editor.getDomSelection(); break; case 'click': @@ -7037,7 +7262,7 @@ return /******/ (function(modules) { // webpackBootstrap case 'keydown': case 'mousedown': - this.editor.selection = this.editor.getSelection(); + this.editor.selection = this.editor.getDomSelection(); break; case 'keyup': @@ -7212,8 +7437,8 @@ return /******/ (function(modules) { // webpackBootstrap if (nextNode && nextNode instanceof AppendNode && !(lastNode.parent.childs.length == 1) && nextNode2 && nextNode2.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -7225,7 +7450,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: nextNode2, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } } @@ -7259,8 +7484,8 @@ return /******/ (function(modules) { // webpackBootstrap // find the previous node prevNode = firstNode._previousNode(); if (prevNode && prevNode.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -7272,7 +7497,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: prevNode, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } handled = true; @@ -7295,8 +7520,8 @@ return /******/ (function(modules) { // webpackBootstrap if (prevNode && prevNode.parent && (prevNode instanceof AppendNode) && !prevNode.isVisible()) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -7308,7 +7533,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: prevNode, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } } @@ -7348,8 +7573,8 @@ return /******/ (function(modules) { // webpackBootstrap } var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -7361,7 +7586,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: nextNode2, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } handled = true; @@ -7419,9 +7644,9 @@ return /******/ (function(modules) { // webpackBootstrap editor.highlighter.unhighlight(); // adjust the focus - var oldSelection = editor.getSelection(); + var oldSelection = editor.getDomSelection(); Node.blurNodes(nodes); - var newSelection = editor.getSelection(); + var newSelection = editor.getDomSelection(); // remove the nodes nodes.forEach(function (node) { @@ -7458,7 +7683,7 @@ return /******/ (function(modules) { // webpackBootstrap editor.deselect(editor.multiselection.nodes); // duplicate the nodes - var oldSelection = editor.getSelection(); + var oldSelection = editor.getDomSelection(); var afterNode = lastNode; var clones = nodes.map(function (node) { var clone = node.clone(); @@ -7474,7 +7699,7 @@ return /******/ (function(modules) { // webpackBootstrap else { editor.select(clones); } - var newSelection = editor.getSelection(); + var newSelection = editor.getDomSelection(); editor._onAction('duplicateNodes', { afterNode: lastNode, @@ -7494,7 +7719,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onInsertBefore = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -7505,7 +7730,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.insertBefore(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('insertBeforeNodes', { nodes: [newNode], @@ -7524,7 +7749,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onInsertAfter = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -7535,7 +7760,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.insertAfter(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('insertAfterNodes', { nodes: [newNode], @@ -7554,7 +7779,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onAppend = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -7565,7 +7790,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.appendChild(newNode); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('appendNodes', { nodes: [newNode], @@ -7583,9 +7808,9 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeType = function (newType) { var oldType = this.type; if (newType != oldType) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); this.changeType(newType); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('changeType', { node: this, @@ -7693,9 +7918,8 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the next sibling of current node * @return {Node} nextSibling - * @private */ - Node.prototype._nextSibling = function () { + Node.prototype.nextSibling = function () { var index = this.parent.childs.indexOf(this); return this.parent.childs[index + 1] || this.parent.append; }; @@ -7703,7 +7927,6 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the previously rendered node * @return {Node | null} previousNode - * @private */ Node.prototype._previousNode = function () { var prevNode = null; @@ -9102,6 +9325,8 @@ return /******/ (function(modules) { // webpackBootstrap * {boolean} escapeUnicode If true, unicode * characters are escaped. * false by default. + * {function} onTextSelectionChange Callback method, + * triggered on text selection change * @private */ textmode.create = function (container, options) { @@ -9147,6 +9372,10 @@ return /******/ (function(modules) { // webpackBootstrap } } + if (options.onTextSelectionChange) { + this.onTextSelectionChange(options.onTextSelectionChange); + } + var me = this; this.container = container; this.dom = {}; @@ -9403,9 +9632,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onSelect = function () { - if(this.options.statusBar) { - this._updateCursorInfoDisplay(); - } + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -9434,7 +9662,8 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); } - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -9443,7 +9672,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onMouseDown = function (event) { - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -9452,35 +9682,59 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onBlur = function (event) { - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** - * Update the status bar cursor info + * Update the cursor info and the status bar, if presented */ - textmode._updateCursorInfoDisplay = function () { + textmode._updateCursorInfo = function () { var me = this; var line, col, count; - if(this.options.statusBar) { - if (this.textarea) { - setTimeout(function() { //this to verify we get the most updated textarea cursor selection - var selectionRange = util.getInputSelection(me.textarea); - line = selectionRange.row; - col = selectionRange.col; - if (selectionRange.start !== selectionRange.end) { - count = selectionRange.end - selectionRange.start; - } - updateDisplay(); - },0); + if (this.textarea) { + setTimeout(function() { //this to verify we get the most updated textarea cursor selection + var selectionRange = util.getInputSelection(me.textarea); - } else if (this.aceEditor && this.curserInfoElements) { - var curserPos = this.aceEditor.getCursorPosition(); - var selectedText = this.aceEditor.getSelectedText(); + if (selectionRange.startIndex !== selectionRange.endIndex) { + count = selectionRange.endIndex - selectionRange.startIndex; + } + + if (count && me.cursorInfo && me.cursorInfo.line === selectionRange.end.row && me.cursorInfo.column === selectionRange.end.column) { + line = selectionRange.start.row; + col = selectionRange.start.column; + } else { + line = selectionRange.end.row; + col = selectionRange.end.column; + } + + me.cursorInfo = { + line: line, + column: col, + count: count + } - line = curserPos.row + 1; - col = curserPos.column + 1; - count = selectedText.length; + if(me.options.statusBar) { + updateDisplay(); + } + },0); + + } else if (this.aceEditor && this.curserInfoElements) { + var curserPos = this.aceEditor.getCursorPosition(); + var selectedText = this.aceEditor.getSelectedText(); + + line = curserPos.row + 1; + col = curserPos.column + 1; + count = selectedText.length; + + me.cursorInfo = { + line: line, + column: col, + count: count + } + + if(this.options.statusBar) { updateDisplay(); } } @@ -9497,6 +9751,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * emits selection change callback, if given + * @private + */ + textmode._emitSelectionChange = function () { + if(this._selectionChangedHandler) { + var currentSelection = this.getTextSelection(); + this._selectionChangedHandler(currentSelection.start, currentSelection.end, currentSelection.text); + } + } + /** * Destroy the editor. Clean up DOM, event listeners, and web workers. */ @@ -9722,6 +9987,112 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Get the selection details + * @returns {{start:{row:Number, column:Number},end:{row:Number, column:Number},text:String}} + */ + textmode.getTextSelection = function () { + var selection = {}; + if (this.textarea) { + var selectionRange = util.getInputSelection(this.textarea); + + if (this.cursorInfo && this.cursorInfo.line === selectionRange.end.row && this.cursorInfo.column === selectionRange.end.column) { + //selection direction is bottom => up + selection.start = selectionRange.end; + selection.end = selectionRange.start; + } else { + selection = selectionRange; + } + + return { + start: selection.start, + end: selection.end, + text: this.textarea.value.substring(selectionRange.startIndex, selectionRange.endIndex) + } + } + + if (this.aceEditor) { + var aceSelection = this.aceEditor.getSelection(); + var selectedText = this.aceEditor.getSelectedText(); + var range = aceSelection.getRange(); + var lead = aceSelection.getSelectionLead(); + + if (lead.row === range.end.row && lead.column === range.end.column) { + selection = range; + } else { + //selection direction is bottom => up + selection.start = range.end; + selection.end = range.start; + } + + return { + start: { + row: selection.start.row + 1, + column: selection.start.column + 1 + }, + end: { + row: selection.end.row + 1, + column: selection.end.column + 1 + }, + text: selectedText + }; + } + }; + + /** + * Callback registraion for selection change + * @param {selectionCallback} callback + * + * @callback selectionCallback + * @param {{row:Number, column:Number}} startPos selection start position + * @param {{row:Number, column:Number}} endPos selected end position + * @param {String} text selected text + */ + textmode.onTextSelectionChange = function (callback) { + if (typeof callback === 'function') { + this._selectionChangedHandler = util.debounce(callback, this.DEBOUNCE_INTERVAL); + } + }; + + /** + * Set selection on editor's text + * @param {{row:Number, column:Number}} startPos selection start position + * @param {{row:Number, column:Number}} endPos selected end position + */ + textmode.setTextSelection = function (startPos, endPos) { + + if (!startPos || !endPos) return; + + if (this.textarea) { + var startIndex = util.getIndexForPosition(this.textarea, startPos.row, startPos.column); + var endIndex = util.getIndexForPosition(this.textarea, endPos.row, endPos.column); + if (startIndex > -1 && endIndex > -1) { + if (this.textarea.setSelectionRange) { + this.textarea.focus(); + this.textarea.setSelectionRange(startIndex, endIndex); + } else if (this.textarea.createTextRange) { // IE < 9 + var range = this.textarea.createTextRange(); + range.collapse(true); + range.moveEnd('character', endIndex); + range.moveStart('character', startIndex); + range.select(); + } + } + } else if (this.aceEditor) { + var range = { + start:{ + row: startPos.row - 1, + column: startPos.column - 1 + }, + end:{ + row: endPos.row - 1, + column: endPos.column - 1 + } + }; + this.aceEditor.selection.setRange(range); + } + }; + // define modes module.exports = [ { diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index 98e0376..4f45505 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","hasOwnProperty","debounce","bind","languages","language","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","parentPairs","reduce","all","findParents","parent","some","pair","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","index","removeClassName","pathObjs","pathObj","children","childs","childNode","push","setPath","addClassName","expandTo","selectionObj","find","obj","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","jsonElementType","hnode","element","innerText","result","getOptions","getPath","hideDropDown","then","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","click","onDuplicate","onRemove","close","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","charAt","prev","parseString","endQuote","chars","controlChars","match","\b","\f","\n","\r","\t","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","split","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","lastIndexOf","Element","polyfill","item","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","separator","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","array","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","string","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","l","lang","langFound","assign","path","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","idx","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","foundSchema","allSchemas","patternProperties","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","remove","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","format","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","defaultToken","comment","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","HashHandler","keyUtil","importCssString","showReplaceForm","div","setSession","$init","setEditor","renderer","scroller","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","setSearchRange","getSelectionRange","searchRangeMarker","addMarker","removeMarker","preventScroll","setCssClass","textContent","$search","$options","updateBackMarkers","skipCurrent","backwards","wrap","regExp","wholeWord","noMatch","_emit","updateCounter","before","getTextRange","offset","positionToIndex","last","MAX_COUNT","getReadOnly","replaceAndFindNext","active","off","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","activeElement","Search","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"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 diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index 05c8106..13a6173 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.14.1 - * @date 2018-03-21 + * @version 5.15.0 + * @date 2018-05-02 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t,n){if(!(this instanceof i))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,n)}var o;try{o=n(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=n(1),s=n(15),a=n(4);i.modes={},i.prototype.DEBOUNCE_INTERVAL=150,i.prototype._create=function(e,t,n){this.container=e,this.options=t||{},this.json=n||{};var i=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(i)},i.prototype.destroy=function(){},i.prototype.set=function(e){this.json=e},i.prototype.get=function(){return this.json},i.prototype.setText=function(e){this.json=a.parse(e)},i.prototype.getText=function(){return JSON.stringify(this.json)},i.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},i.prototype.getName=function(){return this.options&&this.options.name},i.prototype.setMode=function(e){var t,n,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=i.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(n=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(n),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},i.prototype.getMode=function(){return this.options.mode},i.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},i.prototype.setSchema=function(e,t){if(e){var n;try{n=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(n){if(t){for(var i in t)n.removeSchema(i),t[i]&&n.addSchema(t[i],i);this.options.schemaRefs=t}this.validateSchema=n.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},i.prototype.validate=function(){},i.prototype.refresh=function(){},i.registerMode=function(e){var t,n;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(i+24-e)/3:e>r-24&&o+n.scrollTop3?(n.scrollTop+=o/3,i.animateCallback=t,i.animateTimeout=setTimeout(a,50)):(t&&t(!0),n.scrollTop=s,delete i.animateTimeout,delete i.animateCallback)};a()}else t&&t(!1)},f._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var n=t.target;e(t),"BUTTON"==n.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,d.addEventListener(this.frame,"focus",e,!0),d.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var n=document.createElement("button");n.type="button",n.className="jsoneditor-expand-all",n.title=u("expandAll"),n.onclick=function(){t.expandAll()},this.menu.appendChild(n);var i=document.createElement("button");if(i.type="button",i.title=u("collapseAll"),i.className="jsoneditor-collapse-all",i.onclick=function(){t.collapseAll()},this.menu.appendChild(i),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title=u("undo"),o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=u("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},f._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},f._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},f._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var n=this;setTimeout(function(){n._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},f._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){d.removeClassName(this.navBar,"nav-bar-empty");var n=[];e.forEach(function(e){var i={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){i.children.push({name:t(e),node:e})}),n.push(i)}),this.treePath.setPath(n)}else d.addClassName(this.navBar,"nav-bar-empty")},f._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},f._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var n=e.children.find(function(e){return e.name===t});n&&n.node&&(this._updateTreePath(n.node.getNodePath()),n.node.expandTo(),n.node.focus())}},f._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},f._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,n=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+n*n),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},f._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var n=this;this.mousemove||(this.mousemove=d.addEventListener(window,"mousemove",function(e){n._onMultiSelect(e)})),this.mouseup||(this.mouseup=d.addEventListener(window,"mouseup",function(e){n._onMultiSelectEnd(e)}))}},f._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var n=this.multiselection.start,i=this.multiselection.end||this.multiselection.start;n&&i&&(this.multiselection.nodes=this._findTopLevelNodes(n,i),this.select(this.multiselection.nodes))}},f._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(d.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(d.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},f.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},f.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},f._findTopLevelNodes=function(e,t){for(var n=e.getNodePath(),i=t.getNodePath(),o=0;o=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var h=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var n=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===n?this.autocomplete.hideDropDown():"function"==typeof n.then?n.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):n.options?this.autocomplete.show(t,n.startFrom,n.options):this.autocomplete.show(t,0,n)}else this.autocomplete.hideDropDown()}.bind(this,h,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},f._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&d.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},f.showContextMenu=function(e,t){var n=[],i=this;n.push({text:u("duplicateText"),title:u("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(i.multiselection.nodes)}}),n.push({text:u("remove"),title:u("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(i.multiselection.nodes)}}),new s(n,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:f,data:"json"},{mode:"view",mixin:f,data:"json"},{mode:"form",mixin:f,data:"json"}]},function(e,t){"use strict";function n(){this.locked=!1}n.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},n.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},n.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},n.prototype.lock=function(){this.locked=!0},n.prototype.unlock=function(){this.locked=!1},e.exports=n},function(e,t,n){"use strict";function i(e){this.editor=e,this.history=[],this.index=-1,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(n){e.parent.insertAfter(e.node,t),t=n})}},removeNodes:{undo:function(e){var t=e.parent,n=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,n)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(n){e.parent.insertAfter(n,t),t=n})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}n(4);i.prototype.onChange=function(){},i.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},i.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(r.push(" "),s++):"'"===c?o("'"):'"'===c?o('"'):"`"===c?o("´"):"‘"===c?o("’"):"“"===c?o("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=r.length-1;e>=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],n="",i=t(),o=/[a-zA-Z_$\d]/;o.test(i);)n+=i,s++,i=t();-1===e.indexOf(n)?r.push('"'+n+'"'):r.push(n)}():(r.push(c),s++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==i?i.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var n=e.className.split(" ");-1==n.indexOf(t)&&(n.push(t),e.className=n.join(" "))},t.removeClassName=function(e,t){var n=e.className.split(" "),i=n.indexOf(t);-1!=i&&(n.splice(i,1),e.className=n.join(" "))},t.stripFormatting=function(e){for(var n=e.childNodes,i=0,o=n.length;i=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,n;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),n=window.getSelection(),n.removeAllRanges(),n.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,n;window.getSelection&&document.createRange&&(n=document.createRange(),n.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(n))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var n=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),n.setStart(e.container.firstChild,e.startOffset),n.setEnd(e.container.firstChild,e.endOffset),t.setSelection(n)}}},t.getInnerText=function(e,n){if(void 0==n&&(n={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return n.flush()+e.nodeValue;if(e.hasChildNodes()){for(var i=e.childNodes,o="",r=0,s=i.length;r5){var n=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(n)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,n){var i=void 0!==n?n:0;return t.left-i>=e.left&&t.right+i<=e.right&&t.top-i>=e.top&&t.bottom+i<=e.bottom},t.debounce=function(e,t,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||e.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var n=t.length,i=0,o=e.length,r=t.length;t.charAt(i)===e.charAt(i)&&ii&&o>0;)r--,o--;return{start:i,end:r}},t.getInputSelection=function(e){var t,n,i,o,r,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(n=document.selection.createRange())&&n.parentElement()==e&&(o=e.value.length,t=e.value.replace(/\r\n/g,"\n"),i=e.createTextRange(),i.moveToBookmark(n.getBookmark()),r=e.createTextRange(),r.collapse(!1),i.compareEndPoints("StartToEnd",r)>-1?s=a=o:(s=-i.moveStart("character",-o),s+=t.slice(0,s).split("\n").length-1,i.compareEndPoints("EndToEnd",r)>-1?a=o:(a=-i.moveEnd("character",-o),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[f])break;if(0==f)throw new Error(E||"Parsing halted.");!function(e){i.length=i.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),f=i[i.length-1]}m=p,p=h,f=i[i.length-1],g=s[f]&&s[f][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+p);switch(g[0]){case 1:i.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),i.push(g[1]),p=null,m?(p=m,m=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(i=i.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),i.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[i[i.length-2]][i[i.length-1]],i.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,i,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=n,i=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[i],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=i,t.parse=i.parse.bind(i)},function(e,t){"use strict";function n(e,t){var n=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var i=document.createElement("table");this.dom.table=i,i.className="jsoneditor-search",t.appendChild(i);var o=document.createElement("tbody");this.dom.tbody=o,i.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){n._onDelayedSearch(e)},u.onchange=function(e){n._onSearch()},u.onkeydown=function(e){n._onKeyDown(e)},u.onkeyup=function(e){n._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){n.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var m=document.createElement("button");m.type="button",m.title="Previous result (Shift+Enter)",m.className="jsoneditor-previous",m.onclick=function(){n.previous()},s=document.createElement("td"),s.appendChild(m),r.appendChild(s)}n.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},n.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,n=void 0!=this.resultIndex?this.resultIndex-1:t;n<0&&(n=t),this._setActiveResult(n,e)}},n.prototype._setActiveResult=function(e,t){if(this.activeResult){var n=this.activeResult.node;"field"==this.activeResult.elem?delete n.searchFieldActive:delete n.searchValueActive,n.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var i=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?i.searchFieldActive=!0:i.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],i.updateDom(),i.scrollTo(function(){t&&i.focus(o)})},n.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},n.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},n.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,n=t.length>0?t:void 0;if(n!=this.lastText||e)if(this.lastText=n,this.results=this.editor.search(n),this._setActiveResult(void 0),void 0!=n){var i=this.results.length;switch(i){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=i+" results"}}else this.dom.results.innerHTML=""},n.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},n.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},n.prototype.clear=function(){this.dom.search.value="",this._onSearch()},n.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=n},function(e,t,n){"use strict";function i(e){return e.getRootNode&&e.getRootNode()||window}function o(e,t){function n(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(r),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=o.className,a.button=c,o.title&&(c.title=o.title),o.click&&(c.onclick=function(e){e.preventDefault(),i.hide(),o.click()}),l.appendChild(c),o.submenu){var d=document.createElement("div");d.className="jsoneditor-icon",c.appendChild(d);var h=document.createElement("div");h.className="jsoneditor-text"+(o.click?"":" jsoneditor-right-margin"),h.appendChild(document.createTextNode(o.text)),c.appendChild(h);var u;if(o.click){c.className+=" jsoneditor-default";var p=document.createElement("button");p.type="button",a.buttonExpand=p,p.className="jsoneditor-expand",p.innerHTML='
',l.appendChild(p),o.submenuTitle&&(p.title=o.submenuTitle),u=p}else{var m=document.createElement("div");m.className="jsoneditor-expand",c.appendChild(m),u=c}u.onclick=function(e){e.preventDefault(),i._onExpandItem(a),u.focus()};var f=[];a.subItems=f;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),n(g,f,o.submenu)}else c.innerHTML='
'+s(o.text)+"
";t.push(a)}})}this.dom={};var i=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var a=document.createElement("div");a.className="jsoneditor-contextmenu",o.menu=a,r.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),o.list=l,o.items=[];var c=document.createElement("button");c.type="button",o.focusButton=c;var d=document.createElement("li");d.style.overflow="hidden",d.style.height="0",d.appendChild(c),l.appendChild(d),n(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var n=24*(e.length+(t.submenu?t.submenu.length:0));i.maxHeight=Math.max(i.maxHeight,n)})}var r=n(4),s=n(8).translate;o.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(n){e.push(n.button),n.buttonExpand&&e.push(n.buttonExpand),n.subItems&&n==t.expandedItem&&n.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},o.visibleMenu=void 0,o.prototype.show=function(e,t){this.hide();var n=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(n=!1)}var d=a.left-l.left,h=a.top-l.top;if(n){var u=e.offsetHeight;this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+u+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=d+"px",this.dom.menu.style.top=h+"px",this.dom.menu.style.bottom="0px";this.rootNode=i(e),s.insertBefore(this.dom.root,s.firstChild);var p=this,m=this.dom.list;this.eventListeners.mousedown=r.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==m||p._isChildOf(t,m)||(p.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(this.rootNode,"keydown",function(e){p._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){p.dom.focusButton.focus()},0),o.visibleMenu&&o.visibleMenu.hide(),o.visibleMenu=this},o.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}o.visibleMenu==this&&(o.visibleMenu=void 0)},o.prototype._onExpandItem=function(e){var t=this,n=e==this.expandedItem,i=this.expandedItem;if(i&&(i.ul.style.height="0",i.ul.style.padding="",setTimeout(function(){t.expandedItem!=i&&(i.ul.style.display="",r.removeClassName(i.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!n){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var n=0,i=0;i0;){var i=t.shift();if("number"==typeof i){if("array"!==n.type)throw new Error("Cannot get child node at index "+i+": node is no array");n=n.childs[i]}else{if("object"!==n.type)throw new Error("Cannot get child node "+i+": node is no object");n=n.childs.filter(function(e){return e.field===i})[0]}}return n},i.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},i.prototype.setError=function(e,t){this.getDom(),this.error=e;var n=this.dom.tdError;if(e){n||(n=document.createElement("td"),this.dom.tdError=n,this.dom.tdValue.parentNode.appendChild(n));var i=document.createElement("div");i.className="jsoneditor-popover jsoneditor-right",i.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.type="button",o.className="jsoneditor-schema-error",o.appendChild(i),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==n.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var i=0;i0&&(e=e.concat(r))}return e},i.prototype.clearDom=function(){this.dom={}},i.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var n=document.createElement("button");n.type="button",e.drag=n,n.className="jsoneditor-dragarea",n.title=l("drag"),t.appendChild(n)}e.tr.appendChild(t);var i=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title=l("actionsMenu"),i.appendChild(e.menu),e.tr.appendChild(i)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},i.onDragStart=function(e,t){if(!Array.isArray(e))return i.onDragStart([e],t);if(0!==e.length){var n=e[0],o=e[e.length-1],r=i.getNodeFromTarget(t.target),s=o._nextSibling(),l=n.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(n.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){i.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){i.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:n.getLevel()},document.body.style.cursor="move",t.preventDefault()}},i.onDrag=function(e,t){if(!Array.isArray(e))return i.onDrag([e],t);if(0!==e.length){var n,o,r,s,l,d,h,u,p,m,f,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(n=E.dom.tr,p=a.getAbsoluteTop(n),g=n.offsetHeight,wm+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(l=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=l?l.nextSibling:void 0){f=a.getAbsoluteTop(s),r=s;do{u=i.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-f:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling}while(r&&w>p+y);if(u&&u.parent){var S=x-b.drag.mouseX,j=Math.round(S/24/2),N=b.drag.level+j,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return n[0].enum}return null},i._findSchema=function(e,t){var n=e,o=n,r=e.oneOf||e.anyOf||e.allOf;r||(r=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)m&&y&&(i.onDuplicate(b),v=!0);else if(69==u)m&&(this._onExpand(f),p.focus(),v=!0);else if(77==u&&y)m&&(this.showContextMenu(p),v=!0);else if(46==u&&y)m&&(i.onRemove(b),v=!0);else if(45==u&&y)m&&!f?(this._onInsertBefore(),v=!0):m&&f&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var S=this._firstNode();S&&S.focus(i.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!f){var j=this._previousElement(p);j&&this.focus(this._getElementName(j)),v=!0}else if(g&&f&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(n=i.getNodeFromTarget(o),r=o.nextSibling,A=i.getNodeFromTarget(r),n&&n instanceof c&&1!=x.parent.childs.length&&A&&A.parent&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:A,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!f?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(i.focusElement||this._getElementName(p))),v=!0):!g&&m&&f&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&f&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!f){var T=this._nextElement(p);T&&this.focus(this._getElementName(T)),v=!0}else if(g&&f&&y){k=w.getDom();var O=k.previousSibling;O&&(t=i.getNodeFromTarget(O))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!f)n=this._nextNode(),n&&(this.editor.deselect(!0),n.focus(i.focusElement||this._getElementName(p))),v=!0;else if(!g&&m&&f&&y)n=this._nextNode(),n&&(h=this.editor.multiselection,h.start=h.start||this,h.end=n,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),n.focus("field")),v=!0;else if(g&&f&&y){n=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var A=n&&(n._nextNode()||n.parent.append);A&&A.parent&&(s=this.editor.getSelection(),l=x._nextSibling(),b.forEach(function(e){A.parent.moveBefore(e,A)}),this.focus(i.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:l,newBeforeNode:A,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},i.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,n=t.parentNode,i=n.scrollTop;n.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(n.appendChild(t),n.scrollTop=i)},i.onRemove=function(e){if(!Array.isArray(e))return i.onRemove([e]);if(e&&e.length>0){var t=e[0],n=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getSelection();i.blurNodes(e);var a=o.getSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:n,index:r,oldSelection:s,newSelection:a})}},i.onDuplicate=function(e){if(!Array.isArray(e))return i.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],n=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return n.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:n,oldSelection:r,newSelection:l})}},i.prototype._onInsertBefore=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onInsertAfter=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onAppend=function(e,t,n){var o=this.editor.getSelection(),r=new i(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:n});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},i.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var n=this.editor.getSelection();this.changeType(e);var i=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:n,newSelection:i})}},i.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,n="array"==this.type?"value":"field";this.hideChilds();var i=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,i){return t*o(e[n],i[n])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:i,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},i.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},i.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},i.blurNodes=function(e){if(!Array.isArray(e))return void i.blurNodes([e]);var t=e[0],n=t.parent,o=t.getIndex();n.childs[o+e.length]?n.childs[o+e.length].focus():n.childs[o-1]?n.childs[o-1].focus():n.focus()},i.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},i.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.previousSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t;do{n=n.nextSibling,e=i.getNodeFromTarget(n)}while(n&&e instanceof c&&!e.isVisible())}return e},i.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.firstChild;e=i.getNodeFromTarget(n)}return e},i.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var n=t.parentNode.lastChild;for(e=i.getNodeFromTarget(n);n&&e instanceof c&&!e.isVisible();)n=n.previousSibling,e=i.getNodeFromTarget(n)}return e},i.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},i.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},i.prototype._getElementName=function(e){var t=this.dom;for(var n in t)if(t.hasOwnProperty(n)&&t[n]==e)return n;return null},i.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},i.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},i.prototype.addTemplates=function(e,t){var n=this,i=n.editor.options.templates;if(null!=i){i.length&&e.push({type:"separator"});var o=function(e,t){n._onAppend(e,t)},r=function(e,t){n._onInsertBefore(e,t)};i.forEach(function(n){e.push({text:n.text,className:n.className||"jsoneditor-type-object",title:n.title,click:t?o.bind(this,n.field,n.value):r.bind(this,n.field,n.value)})})}},i.prototype.showContextMenu=function(e,t){var n=this,o=i.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){n._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){n._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){n._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){n._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){n.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){n.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){n.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=n.parent.childs;if(n==c[c.length-1]){var d=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(d,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){n._onAppend("","","auto")},submenu:d})}var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:o.array,click:function(){n._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:o.object,click:function(){n._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:o.string,click:function(){n._onInsertBefore("","","string")}}];n.addTemplates(h,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){n._onInsertBefore("","","auto")},submenu:h}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){i.onDuplicate(n)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){i.onRemove(n)}}))}new r(s,{close:t}).show(e,this.editor.content)},i.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},i.prototype._stringCast=function(e){var t=e.toLowerCase(),n=Number(e),i=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(n)||isNaN(i)?e:n)},i.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),n=JSON.stringify(t),i=n.substring(1,n.length-1);return!0===this.editor.options.escapeUnicode&&(i=a.escapeUnicodeChars(i)),i},i.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},i.prototype._escapeJSON=function(e){for(var t="",n=0;nf)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,n){"use strict";function i(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var n=document.createElement("td");e.tdMenu=n;var i=document.createElement("button");i.type="button",i.className="jsoneditor-contextmenu",i.title="Click to open the actions menu (Ctrl+M)",e.menu=i,n.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="("+s("empty")+")",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var n=e.text;n&&(n.innerHTML="("+s("empty")+" "+this.parent.type+")");var i=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&i.appendChild(e.tdDrag),e.tdMenu&&i.appendChild(e.tdMenu),i.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&i.removeChild(e.tdDrag),e.tdMenu&&i.removeChild(e.tdMenu),i.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,n){var i=this,o=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){i._onAppend("","","auto")},submenu:a}];new r(l,{close:n}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,n=e.target||e.srcElement,i=this.dom;if(n==i.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&n==i.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(i.menu,"jsoneditor-selected"),this.showContextMenu(i.menu,function(){o.removeClassName(i.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=n(4),r=n(7),s=n(8).translate;e.exports=i},function(e,t,n){"use strict";function i(e,t,n,i){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){i("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){i("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){i("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){i("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){i("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var i="",o="",r=document.createElement("div");r.style.position="relative",r.style.outline="0",r.style.border="0",r.style.margin="0",r.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:r,show:function(e,t,n){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==i&&(i=window.getComputedStyle(e).getPropertyValue("font-size")),""==o&&(o=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=n,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",h),this.element.addEventListener("keydown",h,!1),this.element.removeEventListener("blur",u),this.element.addEventListener("blur",u,!1)),r.appendChild(this.elementHint),r.appendChild(s),e.parentElement.appendChild(r),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,d.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var i=t.innerText;i=i.replace("\n","");var o=(this.startFrom,this.options,this.options.length),r=i.substring(this.startFrom);l=i.substring(0,this.startFrom);for(var a=0;a"+r[m].substring(n.length)+"",i.push(f),t.appendChild(f)}0!==i.length&&(1===i.length&&(n.toLowerCase()===i[0].__hint.toLowerCase()&&!e.caseSensitive||n===i[0].__hint&&e.caseSensitive)||i.length<2||(c.highlight(0),u>3*p?(t.style.maxHeight=u+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=p+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=r&&i[r]&&(i[r].className="item"),i[e].className="item hover",r=e},move:function(e){return"hidden"===t.style.visibility?"":o+e===-1||o+e===i.length?i[o].__hint:(o+=e,c.highlight(o),i[o].__hint)},onmouseselection:function(){}};return c}(s,c),h=function(n){n=n||window.event;var i=n.keyCode;if(null!=this.elementHint&&33!=i&&34!=i){if(27==i)return c.hideDropDown(),c.element.focus(),n.preventDefault(),void n.stopPropagation();var o=this.element.innerText;o=o.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(i)>=0)return 9==i&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==i&&(c.element.focus(),n.preventDefault(),n.stopPropagation())));if(13!=i){if(40==i){var r=o.substring(this.startFrom),a=d.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}if(38==i){var r=o.substring(this.startFrom),a=d.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+r+a.substring(r.length),this.elementHint.realInnerText=l+a,n.preventDefault(),void n.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var h="hidden"==s.style.visibility;if(d.hide(),h)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),n.preventDefault(),n.stopPropagation()}}}.bind(c),u=function(e){c.hideDropDown()}.bind(c);return d.onmouseselection=function(e,n){n.element.innerText=n.elementHint.innerText=l+e,n.hideDropDown(),window.setTimeout(function(){n.element.focus(),t(n.element)},1)},c}e.exports=n},function(e,t,n){"use strict";var i=n(16),o=n(13),r=n(4),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:i;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{n(20)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=r.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var d=document.createElement("button");d.type="button",d.className="jsoneditor-repair",d.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(d),d.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new o(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var h={},u=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(h);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var p=s.edit(this.editorDom);p.$blockScrolling=1/0,p.setTheme(this.theme),p.setOptions({readOnly:u}),p.setShowPrintMargin(!1),p.setFontSize(13),p.getSession().setMode("ace/mode/json"),p.getSession().setTabSize(this.indentation),p.getSession().setUseSoftTabs(!0),p.getSession().setUseWrapMode(!0),p.commands.bindKey("Ctrl-L",null),p.commands.bindKey("Command-L",null),this.aceEditor=p,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var m=document.createElement("a");m.appendChild(document.createTextNode("powered by ace")),m.href="http://ace.ajax.org",m.target="_blank",m.className="jsoneditor-poweredBy",m.onclick=function(){window.open(m.href,m.target)},this.menu.appendChild(m),p.on("change",this._onChange.bind(this)),p.on("changeSelection",this._onSelect.bind(this))}else{var f=document.createElement("textarea");f.className="jsoneditor-text",f.spellcheck=!1,this.content.appendChild(f),this.textarea=f,this.textarea.readOnly=u,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),f.onselect=this._onSelect.bind(this),f.onmousedown=this._onMouseDown.bind(this),f.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){r.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var y=document.createElement("span");y.className="jsoneditor-curserinfo-label",y.innerText="Ln:";var b=document.createElement("span");b.className="jsoneditor-curserinfo-val",b.innerText="1",v.appendChild(y),v.appendChild(b);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Col:";var x=document.createElement("span");x.className="jsoneditor-curserinfo-val",x.innerText="1",v.appendChild(w),v.appendChild(x),this.curserInfoElements.colVal=x,this.curserInfoElements.lnVal=b;var _=document.createElement("span");_.className="jsoneditor-curserinfo-label",_.innerText="characters selected",_.style.display="none";var E=document.createElement("span");E.className="jsoneditor-curserinfo-count",E.innerText="0",E.style.display="none",this.curserInfoElements.countLabel=_,this.curserInfoElements.countVal=E,v.appendChild(E),v.appendChild(_)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,n=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),n=!0),n&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){o.curserInfoElements.countVal.innerText!==i&&(o.curserInfoElements.countVal.innerText=i,o.curserInfoElements.countVal.style.display=i?"inline":"none",o.curserInfoElements.countLabel.style.display=i?"inline":"none"),o.curserInfoElements.lnVal.innerText=t,o.curserInfoElements.colVal.innerText=n}var t,n,i,o=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=r.getInputSelection(o.textarea);t=s.row,n=s.col,s.start!==s.end&&(i=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,n=s.column+1,i=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=r.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=r.parse(t)}catch(n){t=r.sanitize(t),e=r.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?r.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var n=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=n}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,n=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(n=this.validateSchema.errors.map(function(e){return r.improveSchemaError(e)}))}if(n.length>0){if(n.length>3){n=n.slice(0,3);var i=this.validateSchema.errors.length-3;n.push("("+i+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+n.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.dom.validationErrorsContainer.appendChild(o);var s=o.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,n){var i;if(window.ace)i=window.ace;else try{i=n(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),n(17),n(19)}catch(e){}e.exports=i},function(e,t,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new i(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(s,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,s);var a=e.getCommentFoldRange(n,s+r[0].length,1);return a&&!a.isMultiLine()&&(i?a=this.getSectionRange(e,n):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,s):e.getCommentFoldRange(n,s,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),i=n.search(/\S/),r=t,s=n.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(i==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),s=n,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++ns)return new o(s,i,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,i){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new d(["ace"],n(18),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker", +!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)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index b81587e..212126a 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.14.1 - * @date 2018-03-21 + * @version 5.15.0 + * @date 2018-05-02 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -129,6 +129,14 @@ return /******/ (function(modules) { // webpackBootstrap * {boolean} sortObjectKeys If true, object keys are * sorted before display. * false by default. + * {function} onSelectionChange Callback method, + * triggered on node selection change + * Only applicable for modes + * 'tree', 'view', and 'form' + * {function} onTextSelectionChange Callback method, + * triggered on text selection change + * Only applicable for modes + * 'text' and 'code' * @param {Object | undefined} json JSON object */ function JSONEditor (container, options, json) { @@ -166,7 +174,7 @@ return /******/ (function(modules) { // webpackBootstrap var VALID_OPTIONS = [ 'ajv', 'schema', 'schemaRefs','templates', 'ace', 'theme','autocomplete', - 'onChange', 'onEditable', 'onError', 'onModeChange', + 'onChange', 'onEditable', 'onError', 'onModeChange', 'onSelectionChange', 'onTextSelectionChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys', 'navigationBar', 'statusBar', 'languages', 'language' ]; @@ -8153,7 +8161,8 @@ return /******/ (function(modules) { // webpackBootstrap schema: null, schemaRefs: null, autocomplete: null, - navigationBar : true + navigationBar : true, + onSelectionChange: null }; // copy all options @@ -8171,6 +8180,10 @@ return /******/ (function(modules) { // webpackBootstrap // create a debounced validate function this._debouncedValidate = util.debounce(this.validate.bind(this), this.DEBOUNCE_INTERVAL); + if (options.onSelectionChange) { + this.onSelectionChange(options.onSelectionChange); + } + setLanguages(this.options.languages); setLanguage(this.options.language) }; @@ -8586,7 +8599,7 @@ return /******/ (function(modules) { // webpackBootstrap * {Node[]} nodes Nodes in case of multi selection * {Number} scrollTop Scroll position */ - treemode.setSelection = function (selection) { + treemode.setDomSelection = function (selection) { if (!selection) { return; } @@ -8616,7 +8629,7 @@ return /******/ (function(modules) { // webpackBootstrap * {Node[]} nodes Nodes in case of multi selection * {Number} scrollTop Scroll position */ - treemode.getSelection = function () { + treemode.getDomSelection = function () { var range = util.getSelectionOffset(); if (range && range.container.nodeName !== 'DIV') { // filter on (editable) divs) range = null; @@ -9083,6 +9096,14 @@ return /******/ (function(modules) { // webpackBootstrap if (start && end) { // find the top level childs, all having the same parent this.multiselection.nodes = this._findTopLevelNodes(start, end); + if (this.multiselection.nodes && this.multiselection.nodes.length) { + var firstNode = this.multiselection.nodes[0]; + if (this.multiselection.start === firstNode || this.multiselection.start.isDescendantOf(firstNode)) { + this.multiselection.direction = 'down'; + } else { + this.multiselection.direction = 'up'; + } + } this.select(this.multiselection.nodes); } }; @@ -9115,9 +9136,10 @@ return /******/ (function(modules) { // webpackBootstrap /** * deselect currently selected nodes * @param {boolean} [clearStartAndEnd=false] If true, the `start` and `end` - * state is cleared too. + * state is cleared too. */ treemode.deselect = function (clearStartAndEnd) { + var selectionChanged = !!this.multiselection.nodes.length; this.multiselection.nodes.forEach(function (node) { node.setSelected(false); }); @@ -9127,6 +9149,12 @@ return /******/ (function(modules) { // webpackBootstrap this.multiselection.start = null; this.multiselection.end = null; } + + if (selectionChanged) { + if (this._selectionChangedHandler) { + this._selectionChangedHandler(); + } + } }; /** @@ -9147,6 +9175,11 @@ return /******/ (function(modules) { // webpackBootstrap nodes.forEach(function (node) { node.setSelected(true, node === first); }); + + if (this._selectionChangedHandler) { + var selection = this.getSelection(); + this._selectionChangedHandler(selection.start, selection.end); + } } }; @@ -9375,6 +9408,125 @@ return /******/ (function(modules) { // webpackBootstrap menu.show(anchor, this.content); }; + /** + * Get current selected nodes + * @return {{start:SerializableNode, end: SerializableNode}} + */ + treemode.getSelection = function () { + var selection = { + start: null, + end: null + }; + if (this.multiselection.nodes && this.multiselection.nodes.length) { + if (this.multiselection.nodes.length) { + var selection1 = this.multiselection.nodes[0]; + var selection2 = this.multiselection.nodes[this.multiselection.nodes.length - 1]; + if (this.multiselection.direction === 'down') { + selection.start = selection1.serialize(); + selection.end = selection2.serialize(); + } else { + selection.start = selection2.serialize(); + selection.end = selection1.serialize(); + } + } + } + return selection; + }; + + /** + * Callback registraion for selection change + * @param {selectionCallback} callback + * + * @callback selectionCallback + * @param {SerializableNode=} start + * @param {SerializableNode=} end + */ + treemode.onSelectionChange = function (callback) { + if (typeof callback === 'function') { + this._selectionChangedHandler = util.debounce(callback, this.DEBOUNCE_INTERVAL); + } + }; + + /** + * Select range of nodes. + * For selecting single node send only the start parameter + * For clear the selection do not send any parameter + * If the nodes are not from the same level the first common parent will be selected + * @param {{path: Array.}} start object contains the path for selection start + * @param {{path: Array.}=} end object contains the path for selection end + */ + treemode.setSelection = function (start, end) { + // check for old usage + if (start && start.dom && start.range) { + console.warn('setSelection/getSelection usage for text selection is depracated and should not be used, see documantaion for supported selection options'); + this.setDomSelection(start); + } + + var nodes = this._getNodeIntsncesByRange(start, end); + + nodes.forEach(function(node) { + node.expandTo(); + }); + this.select(nodes); + }; + + /** + * Returns a set of Nodes according to a range of selection + * @param {{path: Array.}} start object contains the path for range start + * @param {{path: Array.}=} end object contains the path for range end + * @return {Array.} Node intances on the given range + * @private + */ + treemode._getNodeIntsncesByRange = function (start, end) { + var startNode, endNode; + + if (start && start.path) { + startNode = this.node.findNodeByPath(start.path); + if (end && end.path) { + endNode = this.node.findNodeByPath(end.path); + } + } + + var nodes = []; + if (startNode instanceof Node) { + if (endNode instanceof Node && endNode !== startNode) { + if (startNode.parent === endNode.parent) { + var start, end; + if (startNode.getIndex() < endNode.getIndex()) { + start = startNode; + end = endNode; + } else { + start = endNode; + end = startNode; + } + var current = start; + nodes.push(current); + do { + current = current.nextSibling(); + nodes.push(current); + } while (current && current !== end); + } else { + nodes = this._findTopLevelNodes(startNode, endNode); + } + } else { + nodes.push(startNode); + } + } + + return nodes; + + }; + + treemode.getNodesByRange = function (start, end) { + var nodes = this._getNodeIntsncesByRange(start, end); + var serializableNodes = []; + + nodes.forEach(function (node){ + serializableNodes.push(node.serialize()); + }); + + return serializableNodes; + } // define modes module.exports = [ @@ -9708,7 +9860,7 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.undo) { action.undo(obj.params); if (obj.params.oldSelection) { - this.editor.setSelection(obj.params.oldSelection); + this.editor.setDomSelection(obj.params.oldSelection); } } else { @@ -9735,7 +9887,7 @@ return /******/ (function(modules) { // webpackBootstrap if (action && action.redo) { action.redo(obj.params); if (obj.params.newSelection) { - this.editor.setSelection(obj.params.newSelection); + this.editor.setDomSelection(obj.params.newSelection); } } else { @@ -10592,11 +10744,11 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} reference Object with 2 properties (start and end) with the identifier of the location of the cursor and selected text. **/ exports.getInputSelection = function(el) { - var start = 0, end = 0, normalizedValue, range, textInputRange, len, endRange; + var startIndex = 0, endIndex = 0, normalizedValue, range, textInputRange, len, endRange; if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "number") { - start = el.selectionStart; - end = el.selectionEnd; + startIndex = el.selectionStart; + endIndex = el.selectionEnd; } else { range = document.selection.createRange(); @@ -10608,38 +10760,69 @@ return /******/ (function(modules) { // webpackBootstrap textInputRange = el.createTextRange(); textInputRange.moveToBookmark(range.getBookmark()); - // Check if the start and end of the selection are at the very end + // Check if the startIndex and endIndex of the selection are at the very end // of the input, since moveStart/moveEnd doesn't return what we want // in those cases endRange = el.createTextRange(); endRange.collapse(false); if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) { - start = end = len; + startIndex = endIndex = len; } else { - start = -textInputRange.moveStart("character", -len); - start += normalizedValue.slice(0, start).split("\n").length - 1; + startIndex = -textInputRange.moveStart("character", -len); + startIndex += normalizedValue.slice(0, startIndex).split("\n").length - 1; if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) { - end = len; + endIndex = len; } else { - end = -textInputRange.moveEnd("character", -len); - end += normalizedValue.slice(0, end).split("\n").length - 1; + endIndex = -textInputRange.moveEnd("character", -len); + endIndex += normalizedValue.slice(0, endIndex).split("\n").length - 1; } } } } - var textTillCaret = el.value.substring(0,end); - var row = (textTillCaret.match(/\n/g) || []).length + 1; - var col = textTillCaret.length - textTillCaret.lastIndexOf("\n"); - return { - start: start, - end: end, - col: col, - row: row + startIndex: startIndex, + endIndex: endIndex, + start: _positionForIndex(startIndex), + end: _positionForIndex(endIndex) }; + + /** + * Returns textarea row and column position for certain index + * @param {Number} index text index + * @returns {{row: Number, col: Number}} + */ + function _positionForIndex(index) { + var textTillIndex = el.value.substring(0,index); + var row = (textTillIndex.match(/\n/g) || []).length + 1; + var col = textTillIndex.length - textTillIndex.lastIndexOf("\n"); + + return { + row: row, + column: col + } + } + } + + /** + * Returns the index for certaion position in text element + * @param {DOMElement} el A dom element of a textarea or input text. + * @param {Number} row row value, > 0, if exceeds rows number - last row will be returned + * @param {Number} column column value, > 0, if exceeds column length - end of column will be returned + * @returns {Number} index of position in text, -1 if not found + */ + exports.getIndexForPosition = function(el, row, column) { + var text = el.value || ''; + if (row > 0 && column > 0) { + var rows = text.split('\n', row); + row = Math.min(rows.length, row); + column = Math.min(rows[row - 1].length, column - 1); + var columnCount = (row == 1 ? column : column + 1); // count new line on multiple rows + return rows.slice(0, row - 1).join('\n').length + columnCount; + } + return -1; } @@ -12290,12 +12473,7 @@ return /******/ (function(modules) { // webpackBootstrap var node = this; var path = []; while (node) { - var field = !node.parent - ? undefined // do not add an (optional) field name of the root node - : (node.parent.type != 'array') - ? node.field - : node.index; - + var field = node.getName(); if (field !== undefined) { path.unshift(field); } @@ -12304,6 +12482,53 @@ return /******/ (function(modules) { // webpackBootstrap return path; }; + /** + * Get node serializable name + * @returns {String|Number} + */ + Node.prototype.getName = function () { + return !this.parent + ? undefined // do not add an (optional) field name of the root node + : (this.parent.type != 'array') + ? this.field + : this.index; + }; + + /** + * Find child node by serializable path + * @param {Array} path + */ + Node.prototype.findNodeByPath = function (path) { + if (!path) { + return; + } + + if (path.length == 0) { + return this; + } + + if (path.length && this.childs && this.childs.length) { + for (var i=0; i < this.childs.length; ++i) { + if (('' + path[0]) === ('' + this.childs[i].getName())) { + return this.childs[i].findNodeByPath(path.slice(1)); + } + } + } + }; + + /** + * @typedef {{value: String|Object|Number|Boolean, path: Array.}} SerializableNode + * + * Returns serializable representation for the node + * @return {SerializedNode} + */ + Node.prototype.serialize = function () { + return { + value: this.getValue(), + path: this.getPath() + }; + }; + /** * Find a Node from a JSON path like '.items[3].name' * @param {string} jsonPath @@ -13374,13 +13599,13 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeValue = function () { // get current selection, then override the range such that we can select // the added/removed text on undo/redo - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); if (oldSelection.range) { var undoDiff = util.textDiff(String(this.value), String(this.previousValue)); oldSelection.range.startOffset = undoDiff.start; oldSelection.range.endOffset = undoDiff.end; } - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); if (newSelection.range) { var redoDiff = util.textDiff(String(this.previousValue), String(this.value)); newSelection.range.startOffset = redoDiff.start; @@ -13405,14 +13630,14 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeField = function () { // get current selection, then override the range such that we can select // the added/removed text on undo/redo - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var previous = this.previousField || ''; if (oldSelection.range) { var undoDiff = util.textDiff(this.field, previous); oldSelection.range.startOffset = undoDiff.start; oldSelection.range.endOffset = undoDiff.end; } - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); if (newSelection.range) { var redoDiff = util.textDiff(previous, this.field); newSelection.range.startOffset = redoDiff.start; @@ -13762,7 +13987,7 @@ return /******/ (function(modules) { // webpackBootstrap var firstNode = nodes[0]; var lastNode = nodes[nodes.length - 1]; var draggedNode = Node.getNodeFromTarget(event.target); - var beforeNode = lastNode._nextSibling(); + var beforeNode = lastNode.nextSibling(); var editor = firstNode.editor; // in case of multiple selected nodes, offsetY prevents the selection from @@ -13784,7 +14009,7 @@ return /******/ (function(modules) { // webpackBootstrap editor.highlighter.lock(); editor.drag = { oldCursor: document.body.style.cursor, - oldSelection: editor.getSelection(), + oldSelection: editor.getDomSelection(), oldBeforeNode: beforeNode, mouseX: event.pageX, offsetY: offsetY, @@ -13905,7 +14130,7 @@ return /******/ (function(modules) { // webpackBootstrap nodePrev = Node.getNodeFromTarget(trPrev); var isDraggedNode = nodes.some(function (node) { - return node === nodePrev || nodePrev._isChildOf(node); + return node === nodePrev || nodePrev.isDescendantOf(node); }); if (isDraggedNode) { @@ -13982,7 +14207,7 @@ return /******/ (function(modules) { // webpackBootstrap var params = { nodes: nodes, oldSelection: editor.drag.oldSelection, - newSelection: editor.getSelection(), + newSelection: editor.getDomSelection(), oldBeforeNode: editor.drag.oldBeforeNode, newBeforeNode: beforeNode }; @@ -14017,12 +14242,12 @@ return /******/ (function(modules) { // webpackBootstrap }; /** - * Test if this node is a child of an other node + * Test if this node is a sescendant of an other node * @param {Node} node - * @return {boolean} isChild + * @return {boolean} isDescendant * @private */ - Node.prototype._isChildOf = function (node) { + Node.prototype.isDescendantOf = function (node) { var n = this.parent; while (n) { if (n == node) { @@ -14532,7 +14757,7 @@ return /******/ (function(modules) { // webpackBootstrap case 'keydown': case 'mousedown': // TODO: cleanup - this.editor.selection = this.editor.getSelection(); + this.editor.selection = this.editor.getDomSelection(); break; case 'click': @@ -14583,7 +14808,7 @@ return /******/ (function(modules) { // webpackBootstrap case 'keydown': case 'mousedown': - this.editor.selection = this.editor.getSelection(); + this.editor.selection = this.editor.getDomSelection(); break; case 'keyup': @@ -14758,8 +14983,8 @@ return /******/ (function(modules) { // webpackBootstrap if (nextNode && nextNode instanceof AppendNode && !(lastNode.parent.childs.length == 1) && nextNode2 && nextNode2.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -14771,7 +14996,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: nextNode2, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } } @@ -14805,8 +15030,8 @@ return /******/ (function(modules) { // webpackBootstrap // find the previous node prevNode = firstNode._previousNode(); if (prevNode && prevNode.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -14818,7 +15043,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: prevNode, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } handled = true; @@ -14841,8 +15066,8 @@ return /******/ (function(modules) { // webpackBootstrap if (prevNode && prevNode.parent && (prevNode instanceof AppendNode) && !prevNode.isVisible()) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { prevNode.parent.moveBefore(node, prevNode); @@ -14854,7 +15079,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: prevNode, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } } @@ -14894,8 +15119,8 @@ return /******/ (function(modules) { // webpackBootstrap } var nextNode2 = nextNode && (nextNode._nextNode() || nextNode.parent.append); if (nextNode2 && nextNode2.parent) { - oldSelection = this.editor.getSelection(); - oldBeforeNode = lastNode._nextSibling(); + oldSelection = this.editor.getDomSelection(); + oldBeforeNode = lastNode.nextSibling(); selectedNodes.forEach(function (node) { nextNode2.parent.moveBefore(node, nextNode2); @@ -14907,7 +15132,7 @@ return /******/ (function(modules) { // webpackBootstrap oldBeforeNode: oldBeforeNode, newBeforeNode: nextNode2, oldSelection: oldSelection, - newSelection: this.editor.getSelection() + newSelection: this.editor.getDomSelection() }); } handled = true; @@ -14965,9 +15190,9 @@ return /******/ (function(modules) { // webpackBootstrap editor.highlighter.unhighlight(); // adjust the focus - var oldSelection = editor.getSelection(); + var oldSelection = editor.getDomSelection(); Node.blurNodes(nodes); - var newSelection = editor.getSelection(); + var newSelection = editor.getDomSelection(); // remove the nodes nodes.forEach(function (node) { @@ -15004,7 +15229,7 @@ return /******/ (function(modules) { // webpackBootstrap editor.deselect(editor.multiselection.nodes); // duplicate the nodes - var oldSelection = editor.getSelection(); + var oldSelection = editor.getDomSelection(); var afterNode = lastNode; var clones = nodes.map(function (node) { var clone = node.clone(); @@ -15020,7 +15245,7 @@ return /******/ (function(modules) { // webpackBootstrap else { editor.select(clones); } - var newSelection = editor.getSelection(); + var newSelection = editor.getDomSelection(); editor._onAction('duplicateNodes', { afterNode: lastNode, @@ -15040,7 +15265,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onInsertBefore = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -15051,7 +15276,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.insertBefore(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('insertBeforeNodes', { nodes: [newNode], @@ -15070,7 +15295,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onInsertAfter = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -15081,7 +15306,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.insertAfter(newNode, this); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('insertAfterNodes', { nodes: [newNode], @@ -15100,7 +15325,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Node.prototype._onAppend = function (field, value, type) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); var newNode = new Node(this.editor, { field: (field != undefined) ? field : '', @@ -15111,7 +15336,7 @@ return /******/ (function(modules) { // webpackBootstrap this.parent.appendChild(newNode); this.editor.highlighter.unhighlight(); newNode.focus('field'); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('appendNodes', { nodes: [newNode], @@ -15129,9 +15354,9 @@ return /******/ (function(modules) { // webpackBootstrap Node.prototype._onChangeType = function (newType) { var oldType = this.type; if (newType != oldType) { - var oldSelection = this.editor.getSelection(); + var oldSelection = this.editor.getDomSelection(); this.changeType(newType); - var newSelection = this.editor.getSelection(); + var newSelection = this.editor.getDomSelection(); this.editor._onAction('changeType', { node: this, @@ -15239,9 +15464,8 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the next sibling of current node * @return {Node} nextSibling - * @private */ - Node.prototype._nextSibling = function () { + Node.prototype.nextSibling = function () { var index = this.parent.childs.indexOf(this); return this.parent.childs[index + 1] || this.parent.append; }; @@ -15249,7 +15473,6 @@ return /******/ (function(modules) { // webpackBootstrap /** * Get the previously rendered node * @return {Node | null} previousNode - * @private */ Node.prototype._previousNode = function () { var prevNode = null; @@ -16648,6 +16871,8 @@ return /******/ (function(modules) { // webpackBootstrap * {boolean} escapeUnicode If true, unicode * characters are escaped. * false by default. + * {function} onTextSelectionChange Callback method, + * triggered on text selection change * @private */ textmode.create = function (container, options) { @@ -16693,6 +16918,10 @@ return /******/ (function(modules) { // webpackBootstrap } } + if (options.onTextSelectionChange) { + this.onTextSelectionChange(options.onTextSelectionChange); + } + var me = this; this.container = container; this.dom = {}; @@ -16949,9 +17178,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onSelect = function () { - if(this.options.statusBar) { - this._updateCursorInfoDisplay(); - } + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -16980,7 +17208,8 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); } - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -16989,7 +17218,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onMouseDown = function (event) { - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** @@ -16998,35 +17228,59 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ textmode._onBlur = function (event) { - this._updateCursorInfoDisplay(); + this._updateCursorInfo(); + this._emitSelectionChange(); }; /** - * Update the status bar cursor info + * Update the cursor info and the status bar, if presented */ - textmode._updateCursorInfoDisplay = function () { + textmode._updateCursorInfo = function () { var me = this; var line, col, count; - if(this.options.statusBar) { - if (this.textarea) { - setTimeout(function() { //this to verify we get the most updated textarea cursor selection - var selectionRange = util.getInputSelection(me.textarea); - line = selectionRange.row; - col = selectionRange.col; - if (selectionRange.start !== selectionRange.end) { - count = selectionRange.end - selectionRange.start; - } - updateDisplay(); - },0); + if (this.textarea) { + setTimeout(function() { //this to verify we get the most updated textarea cursor selection + var selectionRange = util.getInputSelection(me.textarea); - } else if (this.aceEditor && this.curserInfoElements) { - var curserPos = this.aceEditor.getCursorPosition(); - var selectedText = this.aceEditor.getSelectedText(); + if (selectionRange.startIndex !== selectionRange.endIndex) { + count = selectionRange.endIndex - selectionRange.startIndex; + } + + if (count && me.cursorInfo && me.cursorInfo.line === selectionRange.end.row && me.cursorInfo.column === selectionRange.end.column) { + line = selectionRange.start.row; + col = selectionRange.start.column; + } else { + line = selectionRange.end.row; + col = selectionRange.end.column; + } + + me.cursorInfo = { + line: line, + column: col, + count: count + } - line = curserPos.row + 1; - col = curserPos.column + 1; - count = selectedText.length; + if(me.options.statusBar) { + updateDisplay(); + } + },0); + + } else if (this.aceEditor && this.curserInfoElements) { + var curserPos = this.aceEditor.getCursorPosition(); + var selectedText = this.aceEditor.getSelectedText(); + + line = curserPos.row + 1; + col = curserPos.column + 1; + count = selectedText.length; + + me.cursorInfo = { + line: line, + column: col, + count: count + } + + if(this.options.statusBar) { updateDisplay(); } } @@ -17043,6 +17297,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * emits selection change callback, if given + * @private + */ + textmode._emitSelectionChange = function () { + if(this._selectionChangedHandler) { + var currentSelection = this.getTextSelection(); + this._selectionChangedHandler(currentSelection.start, currentSelection.end, currentSelection.text); + } + } + /** * Destroy the editor. Clean up DOM, event listeners, and web workers. */ @@ -17268,6 +17533,112 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Get the selection details + * @returns {{start:{row:Number, column:Number},end:{row:Number, column:Number},text:String}} + */ + textmode.getTextSelection = function () { + var selection = {}; + if (this.textarea) { + var selectionRange = util.getInputSelection(this.textarea); + + if (this.cursorInfo && this.cursorInfo.line === selectionRange.end.row && this.cursorInfo.column === selectionRange.end.column) { + //selection direction is bottom => up + selection.start = selectionRange.end; + selection.end = selectionRange.start; + } else { + selection = selectionRange; + } + + return { + start: selection.start, + end: selection.end, + text: this.textarea.value.substring(selectionRange.startIndex, selectionRange.endIndex) + } + } + + if (this.aceEditor) { + var aceSelection = this.aceEditor.getSelection(); + var selectedText = this.aceEditor.getSelectedText(); + var range = aceSelection.getRange(); + var lead = aceSelection.getSelectionLead(); + + if (lead.row === range.end.row && lead.column === range.end.column) { + selection = range; + } else { + //selection direction is bottom => up + selection.start = range.end; + selection.end = range.start; + } + + return { + start: { + row: selection.start.row + 1, + column: selection.start.column + 1 + }, + end: { + row: selection.end.row + 1, + column: selection.end.column + 1 + }, + text: selectedText + }; + } + }; + + /** + * Callback registraion for selection change + * @param {selectionCallback} callback + * + * @callback selectionCallback + * @param {{row:Number, column:Number}} startPos selection start position + * @param {{row:Number, column:Number}} endPos selected end position + * @param {String} text selected text + */ + textmode.onTextSelectionChange = function (callback) { + if (typeof callback === 'function') { + this._selectionChangedHandler = util.debounce(callback, this.DEBOUNCE_INTERVAL); + } + }; + + /** + * Set selection on editor's text + * @param {{row:Number, column:Number}} startPos selection start position + * @param {{row:Number, column:Number}} endPos selected end position + */ + textmode.setTextSelection = function (startPos, endPos) { + + if (!startPos || !endPos) return; + + if (this.textarea) { + var startIndex = util.getIndexForPosition(this.textarea, startPos.row, startPos.column); + var endIndex = util.getIndexForPosition(this.textarea, endPos.row, endPos.column); + if (startIndex > -1 && endIndex > -1) { + if (this.textarea.setSelectionRange) { + this.textarea.focus(); + this.textarea.setSelectionRange(startIndex, endIndex); + } else if (this.textarea.createTextRange) { // IE < 9 + var range = this.textarea.createTextRange(); + range.collapse(true); + range.moveEnd('character', endIndex); + range.moveStart('character', startIndex); + range.select(); + } + } + } else if (this.aceEditor) { + var range = { + start:{ + row: startPos.row - 1, + column: startPos.column - 1 + }, + end:{ + row: endPos.row - 1, + column: endPos.column - 1 + } + }; + this.aceEditor.selection.setRange(range); + } + }; + // define modes module.exports = [ { diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index 3c0a3b6..9fa098e 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","debounce","bind","languages","language","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","sanitizedJsonText","sanitize","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","parentPairs","reduce","findParents","parent","some","pair","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","navBar","treePath","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_onKeyDown","_startDragDistance","_updateDragDistance","_updateTreePath","getNodePath","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","pathNodes","_escapeHTML","isNaN","removeClassName","pathObjs","pathObj","childs","childNode","setPath","addClassName","expandTo","selectionObj","find","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","endPath","startChild","endChild","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","jsonElementType","hnode","element","innerText","getOptions","hideDropDown","show","startFrom","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","jsString","curr","prev","parseString","endQuote","chars","controlChars","\b","\f","\n","\r","\t","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","classes","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","getInputSelection","el","normalizedValue","textInputRange","endRange","selectionStart","selectionEnd","parentElement","createTextRange","moveToBookmark","getBookmark","compareEndPoints","moveStart","moveEnd","textTillCaret","row","Element","polyfill","defineProperty","configurable","enumerable","writable","CharacterData","DocumentType","startsWith","searchString","position","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","getRootNode","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","divText","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","parentRect","contentRect","leftGap","topGap","anchorHeight","offsetHeight","rootNode","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","childsHeight","targetIndex","prevButton","nextButton","_lang","_locales","_defs","en","auto","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","empty","expandTitle","insert","insertTitle","insertSub","removeText","removeTitle","removeField","sortTitle","typeTitle","openUrl","validationCannotMove","autoType","objectType","arrayType","stringType","pt-BR","userLang","userLanguage","lang","langFound","assign","reset","_onSegmentClick","selectionCallback","_onContextMenuItemClick","contextMenuCallback","sepEl","pathEl","leftRectPos","offsetWidth","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","currentNode","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","foundSchema","allSchemas","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","addTemplates","templates","appendData","insertData","template","titles","appendSubmenu","insertSubmenu","lower","num","numFloat","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","completely","setEndOfContenteditable","moveToElementText","calculateWidthForText","spacer","outline","border","whiteSpace","fontSize","fontFamily","fontWeight","confirmKeys","caseSensitive","wrapper","dropDown","leftSide","rs","onArrowDown","onArrowUp","onEnter","onTab","elementHint","elementStyle","startPos","getComputedStyle","getPropertyValue","marginTop","zIndex","backgroundColor","borderColor","cloneNode","keyDownHandler","onBlurHandler","repaint","dropDownController","optionsLength","opt","realInnerText","clientWidth","rows","ix","oldIndex","onMouseOver","onMouseOut","onMouseDown","onmouseselection","__hint","vph","innerHeight","documentElement","rect","distanceToTop","distanceToBottom","divRow","move","step","wasDropDownHidden","ace","statusBar","indentation","_ace","theme","aceEditor","textarea","buttonFormat","buttonCompact","compact","buttonRepair","repair","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","poweredBy","on","_onSelect","onselect","_onMouseDown","onblur","_onBlur","validationErrorsContainer","curserInfoElements","lnLabel","lnVal","colLabel","colVal","countLabel","countVal","_updateCursorInfoDisplay","updateDisplay","selectionRange","curserPos","getCursorPosition","selectedText","getSelectedText","column","sanitizedText","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","getOwnPropertyNames","createEmpty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","tag","createElementNS","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","withScrollbar","getPageScrollTop","getPageScrollLeft","currentStyle","setInnerHtml","innerHtml","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isChromeOS","isIOS","MSStream","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touches","touchObj","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","KEYS","MODS","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","isTouchPad","setAttribute","opacity","copied","cut","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","onSelect","selectAll","setInputHandler","getInputHandler","afterContextMenu","sendText","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","onCompositionStart","$readOnly","session","$undoManager","onCompositionUpdate","onCompositionEnd","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","home","down","TextInputIOS","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","ev","inSelection","getDocumentPosition","mousedownEvent","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","canScroll","isScrollableBy","speed","isSlower","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","ownerDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","_computeLevels","levels","charTypes","impTab","dir","impTab_RTL","impTab_LTR","prevState","newClass","newLevel","condPos","_getCharacterType","hiLevel","lastArabic","hasUBAT_AL","hasUBAT_B","hasUBAT_S","_getCharClass","B","S","WS","_invertLevel","lev","_array","RTL","lo","hi","tmp","wType","nType","cType","L","R","ON","AN","EN","AL","CS","ES","ET","NSM","rtlCandidate","LRE","RLE","LRO","RLO","PDF","BN","uc","UnicodeTBL00","UnicodeTBL20","ON_R","R_H","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","wrapIndent","isLastRow","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","currentIndex","prevIndex","$useWrapMode","splits","$wrapData","indent","size","isFullWidth","getScreenTabSize","endOfLine","markAsDirty","updateCharacterWidths","fontMetrics","$characterSize","bidiCharWidth","$measureCharWidth","getShowInvisibles","setShowInvisibles","setEolChar","eolChar","setTextDir","getPosLeft","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelected","isSelectedPrev","visIdx","offsetToCol","posX","logicalIdx","charWidth","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compare","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","screenPos","$bidiHandler","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","\"","'","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","word","score","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","bgTokenizer","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","wholeWord","modifier","$assembleMultilineRegExp","backwards","forEachInLine","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","isDefault","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","isAvailable","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","$mouseHandler","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","firstRowScreen","stringBuilder","extraStyle","clazzModified","lineRange","range1","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","space","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","font","$measureSizes","boldSize","charSizes","allowBoldFonts","setPolling","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","$workerBlob","workerUrl","Blob","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","blob","webkitURL","blobURL","createObjectURL","Worker","WorkerClient","topLevelNamespaces","classname","importScripts","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","searchRange","$syncOptions","$initElements","sb","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","searchCounter","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","setSearchRange","searchRangeMarker","noMatch","updateCounter","MAX_COUNT","replaceAndFindNext","active"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file +{"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 diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index bf50cff..4f65f30 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.14.1 - * @date 2018-03-21 + * @version 5.15.0 + * @date 2018-05-02 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ajv","schema","schemaRefs","templates","ace","theme","autocomplete","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys","navigationBar","statusBar","languages","language"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(51),s=i(65),a=i(54);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||this.options.modes&&this.options.modes[0]||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e,t){if(e){var i;try{i=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}if(i){if(t){for(var n in t)i.removeSchema(n),t[n]&&i.addSchema(t[n],n);this.options.schemaRefs=t}this.validateSchema=i.compile(e),this.options.schema=e,this.validate()}this.refresh()}else this.validateSchema=null,this.options.schema=null,this.options.schemaRefs=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function o(e,t,i){var n=s.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function s(e,t,i){for(var n=0;n",'"',"`"," ","\r","\n","\t"],g=["{","}","|","\\","^","`"].concat(m),v=["'"].concat(g),w=["%","/","?",";","#"].concat(v),y=["/","?","#"],A={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=i(7);n.prototype.parse=function(e,t,i){if(!l(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e;n=n.trim();var r=f.exec(n);if(r){r=r[0];var o=r.toLowerCase();this.protocol=o,n=n.substr(r.length)}if(i||r||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var s="//"===n.substr(0,2);!s||r&&C[r]||(n=n.substr(2),this.slashes=!0)}if(!C[r]&&(s||r&&!E[r])){for(var a=-1,c=0;c127?S+="x":S+=x[$];if(!S.match(/^[a-z0-9A-Z_-]{0,63}$/)){var k=g.slice(0,c),B=g.slice(c+1),_=x.match(/^([a-z0-9A-Z_-]{0,63})(.*)$/);_&&(k.push(_[1]),B.unshift(_[2])),B.length&&(n="/"+B.join(".")+n),this.hostname=k.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!m){for(var L=this.hostname.split("."),R=[],c=0;c0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return i.search=e.search,i.query=e.query,h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!p.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var v=p.slice(-1)[0],w=(i.host||e.host)&&("."===v||".."===v)||""===v,y=0,A=p.length;A>=0;A--)v=p[A],"."==v?p.splice(A,1):".."===v?(p.splice(A,1),y++):y&&(p.splice(A,1),y--);if(!d&&!f)for(;y--;y)p.unshift("..");!d||""===p[0]||p[0]&&"/"===p[0].charAt(0)||p.unshift(""),w&&"/"!==p.join("/").substr(-1)&&p.push("");var b=""===p[0]||p[0]&&"/"===p[0].charAt(0);if(m){i.hostname=i.host=b?"":p.length?p.shift():"";var g=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");g&&(i.auth=g.shift(),i.host=i.hostname=g.shift())}return d=d||i.host&&p.length,d&&!b&&p.unshift(""),p.length?i.pathname=p.join("/"):(i.pathname=null,i.path=null),h(i.pathname)&&h(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,i){var n;(function(e,r){!function(o){function s(e){throw RangeError(L[e])}function a(e,t){for(var i=e.length,n=[];i--;)n[i]=t(e[i]);return n}function l(e,t){var i=e.split("@"),n="";return i.length>1&&(n=i[0]+"@",e=i[1]),e=e.replace(_,"."),n+a(e.split("."),t).join(".")}function c(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function u(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:C}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function f(e,t,i){var n=0;for(e=i?T(e/x):e>>1,e+=T(e/t);e>R*b>>1;n+=C)e=T(e/R);return T(n+(R+1)*e/(e+F))}function p(e){var t,i,n,r,o,a,l,c,d,p,m=[],g=e.length,v=0,w=$,y=S;for(i=e.lastIndexOf(D),i<0&&(i=0),n=0;n=128&&s("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&s("invalid-input"),c=u(e.charCodeAt(r++)),(c>=C||c>T((A-v)/a))&&s("overflow"),v+=c*a,d=l<=y?E:l>=y+b?b:l-y,!(cT(A/p)&&s("overflow"),a*=p;t=m.length+1,y=f(v-o,t,0==o),T(v/t)>A-w&&s("overflow"),w+=T(v/t),v%=t,m.splice(v++,0,w)}return h(m)}function m(e){var t,i,n,r,o,a,l,h,u,p,m,g,v,w,y,F=[];for(e=c(e),g=e.length,t=$,i=0,o=S,a=0;a=t&&mT((A-i)/v)&&s("overflow"),i+=(l-t)*v,t=l,a=0;aA&&s("overflow"),m==t){for(h=i,u=C;p=u<=o?E:u>=o+b?b:u-o,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},R=C-E,T=Math.floor,P=String.fromCharCode;y={version:"1.3.2",ucs2:{decode:c,encode:h},decode:p,encode:m,toASCII:v,toUnicode:g},void 0!==(n=function(){return y}.call(t,i,t,e))&&(e.exports=n)}()}).call(t,i(6)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,i){"use strict";t.decode=t.parse=i(8),t.encode=t.stringify=i(9)},function(e,t){"use strict";function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,r){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;e=e.split(t);var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var a=e.length;s>0&&a>s&&(a=s);for(var l=0;l=0?(c=f.substr(0,p),h=f.substr(p+1)):(c=f,h=""),u=decodeURIComponent(c),d=decodeURIComponent(h),i(o,u)?Array.isArray(o[u])?o[u].push(d):o[u]=[o[u],d]:o[u]=d}return o}},function(e,t){"use strict";var i=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(r){var o=encodeURIComponent(i(r))+n;return Array.isArray(e[r])?e[r].map(function(e){return o+encodeURIComponent(i(e))}).join(t):o+encodeURIComponent(i(e[r]))}).join(t):r?encodeURIComponent(i(r))+n+encodeURIComponent(i(e)):""}},function(e,t){"use strict";e.exports=function e(t,i){if(t===i)return!0;var n,r=Array.isArray(t),o=Array.isArray(i);if(r&&o){if(t.length!=i.length)return!1;for(n=0;n=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h=55296&&t<=56319&&r2&&(t=u.call(arguments,1)),i(t)})})}function o(e){return Promise.all(e.map(n,this))}function s(e){for(var t=new e.constructor,i=Object.keys(e),r=[],o=0;o=1&&i<=12&&n>=1&&n<=d[i]}function o(e,t){var i=e.match(f);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(A);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&p.test(e)}function l(e){return C.test(e)&&m.test(e)}function c(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var h=i(11),u=/^\d\d\d\d-(\d\d)-(\d\d)$/,d=[0,31,29,31,30,31,30,31,31,30,31,30,31],f=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,g=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#.\/;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,v=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,w=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,y=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;e.exports=n,n.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":g,url:v,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:p,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/},n.full={date:r,time:o,"date-time":s,uri:l,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,"uri-template":g,url:v,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:w,"json-pointer":y,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~\/]|~0|~1)*)*)$/};var A=/t|\s/i,C=/\/|:/,E=/[^\\]\\Z/},function(e,t,i){"use strict";var n=i(22),r=i(11).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],t=["type"],i=["additionalItems","$schema","$id","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=r(t),e.types=r(o),e.forEach(function(i){i.rules=i.rules.map(function(i){var r;if("object"==typeof i){var o=Object.keys(i)[0];r=i[o],i=o,r.forEach(function(i){t.push(i),e.all[i]=!0})}return t.push(i),e.all[i]={keyword:i,code:n[i],implements:r}}),i.type&&(e.types[i.type]=i)}),e.keywords=r(t.concat(i)),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(23),allOf:i(24),anyOf:i(25),const:i(26),contains:i(27),dependencies:i(28),enum:i(29),format:i(30),items:i(31),maximum:i(32),minimum:i(32),maxItems:i(33),minItems:i(33),maxLength:i(34),minLength:i(34),maxProperties:i(35),minProperties:i(35),multipleOf:i(36),not:i(37),oneOf:i(38),pattern:i(39),properties:i(40),propertyNames:i(41),required:i(42),uniqueItems:i(43),validate:i(17)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(a||""),d="valid"+s;if("#"==l||"#/"==l)e.isRoot?(n=e.async,r="validate"):(n=!0===e.root.schema.$async,r="root.refVal[0]");else{var f=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===f){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(p);var m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var g=o;o=m.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);e.logger.warn(p),h&&(o+=" if (true) { ")}}else if(f.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=f.schema,v.schemaPath="",v.errSchemaPath=l;var y=e.validate(v).replace(/validate\.schema/g,f.code);o+=" "+y+" ",h&&(o+=" if ("+w+") { ")}else n=!0===f.$async,r=f.code}if(r){var m=m||[];m.push(o),o="",e.opts.passContext?o+=" "+r+".call(this, ":o+=" "+r+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(a?"data"+(a-1||""):"parentData")+" , "+(a?e.dataPathArr[a]:"parentDataProperty")+", rootData) ";var A=o;if(o=m.pop(),n){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+d+"; "),o+=" try { "+e.yieldAwait+" "+A+"; ",h&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+d+" = false; "),o+=" } ",h&&(o+=" if ("+d+") { ")}else o+=" if (!"+A+") { if (vErrors === null) vErrors = "+r+".errors; else vErrors = vErrors.concat("+r+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.schema[t],o=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+"/"+t,a=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var h="valid"+l.level,u=l.baseId,d=!0,f=r;if(f)for(var p,m=-1,g=f.length-1;m=0)return c&&(n+=" if (true) { "),n;throw new Error('unknown format "'+s+'" is used in schema at path "'+e.errSchemaPath+'"')}var g="object"==typeof m&&!(m instanceof RegExp)&&m.validate,v=g&&m.type||"string";if(g){var w=!0===m.async;m=m.validate}if(v!=i)return c&&(n+=" if (true) { "),n;if(w){if(!e.async)throw new Error("async format in sync schema");var y="formats"+e.util.getProperty(s)+".validate";n+=" if (!("+e.yieldAwait+" "+y+"("+h+"))) { "}else{n+=" if (! ";var y="formats"+e.util.getProperty(s);g&&(y+=".validate"),n+="function"==typeof m?" "+y+"("+h+") ":" "+y+".test("+h+") ",n+=") { "}}var A=A||[];A.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",n+=d?""+u:""+e.util.toQuotedString(s),n+=" } ",!1!==e.opts.messages&&(n+=" , message: 'should match format \"",n+=d?"' + "+u+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var C=n;return n=A.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { "),n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,g="i"+r,v=f.dataLevel=e.dataLevel+1,w="data"+v,y=e.baseId;if(n+="var "+d+" = errors;var "+u+";",Array.isArray(s)){var A=e.schema.additionalItems;if(!1===A){n+=" "+u+" = "+h+".length <= "+s.length+"; ";var C=l;l=e.errSchemaPath+"/additionalItems",n+=" if (!"+u+") { ";var E=E||[];E.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+s.length+" } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have more than "+s.length+" items' "),e.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var b=n;n=E.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",l=C,c&&(p+="}",n+=" else { ")}var F=s;if(F)for(var x,S=-1,$=F.length-1;S<$;)if(x=F[S+=1],e.util.schemaHasRules(x,e.RULES.all)){n+=" "+m+" = true; if ("+h+".length > "+S+") { ";var D=h+"["+S+"]";f.schema=x,f.schemaPath=a+"["+S+"]",f.errSchemaPath=l+"/"+S,f.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),f.dataPathArr[v]=S;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",n+=" } ",c&&(n+=" if ("+m+") { ",p+="}")}if("object"==typeof A&&e.util.schemaHasRules(A,e.RULES.all)){f.schema=A,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",n+=" "+m+" = true; if ("+h+".length > "+s.length+") { for (var "+g+" = "+s.length+"; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" } } ",c&&(n+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(s,e.RULES.all)){f.schema=s,f.schemaPath=a,f.errSchemaPath=l,n+=" for (var "+g+" = 0; "+g+" < "+h+".length; "+g+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var D=h+"["+g+"]";f.dataPathArr[v]=g;var k=e.validate(f);f.baseId=y,e.util.varOccurences(k,w)<2?n+=" "+e.util.varReplace(k,w,D)+" ":n+=" var "+w+" = "+D+"; "+k+" ",c&&(n+=" if (!"+m+") break; "),n+=" }"}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maximum"==t,m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],v=e.opts.$data&&g&&g.$data,w=p?"<":">",y=p?">":"<",n=void 0;if(v){var A=e.util.getData(g.$data,a,e.dataPathArr),C="exclusive"+s,E="exclType"+s,b="exclIsNumber"+s,F="op"+s,x="' + "+F+" + '";o+=" var schemaExcl"+s+" = "+A+"; ",A="schemaExcl"+s,o+=" var "+C+"; var "+E+" = typeof "+A+"; if ("+E+" != 'boolean' && "+E+" != 'undefined' && "+E+" != 'number') { ";var n=m,S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: '"+m+" should be boolean' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+E+" == 'number' ? ( ("+C+" = "+r+" === undefined || "+A+" "+w+"= "+r+") ? "+d+" "+y+"= "+A+" : "+d+" "+y+" "+r+" ) : ( ("+C+" = "+A+" === true) ? "+d+" "+y+"= "+r+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { var op"+s+" = "+C+" ? '"+w+"' : '"+w+"=';"}else{var b="number"==typeof g,x=w;if(b&&f){var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" ( "+r+" === undefined || "+g+" "+w+"= "+r+" ? "+d+" "+y+"= "+g+" : "+d+" "+y+" "+r+" ) || "+d+" !== "+d+") { "}else{b&&void 0===l?(C=!0,n=m,h=e.errSchemaPath+"/"+m,r=g,y+="="):(b&&(r=Math[p?"min":"max"](g,l)),g===(!b||r)?(C=!0,n=m,h=e.errSchemaPath+"/"+m,y+="="):(C=!1,x+="="));var F="'"+x+"'";o+=" if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+" "+y+" "+r+" || "+d+" !== "+d+") { "}}n=n||t;var S=S||[];S.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+F+", limit: "+r+", exclusive: "+C+" } ",!1!==e.opts.messages&&(o+=" , message: 'should be "+x+" ",o+=f?"' + "+r:r+"'"),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var $=o;return o=S.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+$+"]); ":o+=" validate.errors = ["+$+"]; return false; ":o+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxItems"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" "+d+".length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxItems"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" items' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxLength"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?o+=" "+d+".length ":o+=" ucs2length("+d+") ",o+=" "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT be ",o+="maxLength"==t?"longer":"shorter",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" characters' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r,o=" ",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),h=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,d="data"+(a||""),f=e.opts.$data&&l&&l.$data;f?(o+=" var schema"+s+" = "+e.util.getData(l.$data,a,e.dataPathArr)+"; ",r="schema"+s):r=l;var p="maxProperties"==t?">":"<";o+="if ( ",f&&(o+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),o+=" Object.keys("+d+").length "+p+" "+r+") { ";var n=t,m=m||[];m.push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(n||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(o+=" , message: 'should NOT have ",o+="maxProperties"==t?"more":"less",o+=" than ",o+=f?"' + "+r+" + '":""+l,o+=" properties' "),e.opts.verbose&&(o+=" , schema: ",o+=f?"validate.schema"+c:""+l,o+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var g=o;return o=m.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+g+"]); ":o+=" validate.errors = ["+g+"]; return false; ":o+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+="} ",u&&(o+=" else { "),o}},function(e,t){"use strict";e.exports=function(e,t,i){var n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,u="data"+(s||""),d=e.opts.$data&&a&&a.$data;d?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a,r+="var division"+o+";if (",d&&(r+=" "+n+" !== undefined && ( typeof "+n+" != 'number' || "),r+=" (division"+o+" = "+u+" / "+n+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+o+" !== parseInt(division"+o+") ",r+=" ) ",d&&(r+=" ) "),r+=" ) { ";var f=f||[];f.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be multiple of ",r+=d?"' + "+n:n+"'"),e.opts.verbose&&(r+=" , schema: ",r+=d?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var p=r;return r=f.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+p+"]); ":r+=" validate.errors = ["+p+"]; return false; ":r+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l,n+=" var "+u+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var m;d.opts.allErrors&&(m=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+e.validate(d)+" ",d.createErrors=!0,m&&(d.opts.allErrors=m),e.compositeRule=d.compositeRule=p,n+=" if ("+f+") { ";var g=g||[];g.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var v=n;n=g.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+v+"]); ":n+=" validate.errors = ["+v+"]; return false; ":n+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(n+=" } ")}else n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: 'should NOT be valid' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(n+=" if (false) { ");return n}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+r,d="errs__"+r,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;n+="var "+d+" = errors;var prevValid"+r+" = false;var "+u+" = false;";var g=f.baseId,v=e.compositeRule;e.compositeRule=f.compositeRule=!0;var w=s;if(w)for(var y,A=-1,C=w.length-1;A5)n+=" || validate.schema"+a+"["+g+"] ";else{var M=C;if(M)for(var O,I=-1,N=M.length-1;I= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",void 0!==we&&(n+=" else ")}if(void 0!==we){var ye=we,Ae="maximum",Ce="more";n+=" "+u+" = pgPropCount"+r+" <= "+we+"; ",l=e.errSchemaPath+"/patternGroups/maximum",n+=" if (!"+u+") { ";var J=J||[];J.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Ae+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(U)+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have "+Ce+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(U)+"\"' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var Y=n;n=J.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+Y+"]); ":n+=" validate.errors = ["+Y+"]; return false; ":n+=" var err = "+Y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } "}l=Q,c&&(n+=" if ("+u+") { ",p+="}")}}}}return c&&(n+=" "+p+" if ("+d+" == errors) {"),n=e.util.cleanUpCode(n)}},function(e,t){"use strict";e.exports=function(e,t,i){var n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+r,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(s,e.RULES.all)){d.schema=s,d.schemaPath=a,d.errSchemaPath=l;var p="key"+r,m="idx"+r,g="i"+r,v="' + "+p+" + '",w=d.dataLevel=e.dataLevel+1,y="data"+w,A="dataProperties"+r,C=e.opts.ownProperties,E=e.baseId;n+=" var "+u+" = errors; ",C&&(n+=" var "+A+" = undefined; "),n+=C?" "+A+" = "+A+" || Object.keys("+h+"); for (var "+m+"=0; "+m+"<"+A+".length; "+m+"++) { var "+p+" = "+A+"["+m+"]; ":" for (var "+p+" in "+h+") { ",n+=" var startErrs"+r+" = errors; ";var b=p,F=e.compositeRule;e.compositeRule=d.compositeRule=!0;var x=e.validate(d);d.baseId=E,e.util.varOccurences(x,y)<2?n+=" "+e.util.varReplace(x,y,b)+" ":n+=" var "+y+" = "+b+"; "+x+" ",e.compositeRule=d.compositeRule=F,n+=" if (!"+f+") { for (var "+g+"=startErrs"+r+"; "+g+"=e.opts.loopRequired,E=e.opts.ownProperties;if(c)if(n+=" var missing"+r+"; ",C){d||(n+=" var "+f+" = validate.schema"+a+"; ");var b="i"+r,F="schema"+r+"["+b+"]",x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(A,F,e.opts.jsonPointers)),n+=" var "+u+" = true; ",d&&(n+=" if (schema"+r+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+r+")) "+u+" = false; else {"),n+=" for (var "+b+" = 0; "+b+" < "+f+".length; "+b+"++) { "+u+" = "+h+"["+f+"["+b+"]] !== undefined ",E&&(n+=" && Object.prototype.hasOwnProperty.call("+h+", "+f+"["+b+"]) "),n+="; if (!"+u+") break; } ",d&&(n+=" } "),n+=" if (!"+u+") { ";var S=S||[];S.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+x+"' } ",!1!==e.opts.messages&&(n+=" , message: '",e.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+x+"\\'",n+="' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var $=n;n=S.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var D=p;if(D)for(var k,b=-1,B=D.length-1;b 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+d+" = false; break outer; } } } } ",f&&(r+=" } "),r+=" if (!"+d+") { ";var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(r+=" , schema: ",r+=f?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { ")}else h&&(r+=" if (true) { ");return r}},function(e,t){"use strict";var i=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var n=0;n0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},m._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,h.addEventListener(this.frame,"focus",e,!0),h.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title=d("expandAll"),i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title=d("collapseAll"),n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title=d("undo"),r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title=d("redo"),s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var l=this;this.modeSwitcher=new c(this.menu,this.options.modes,this.options.mode,function(e){l.modeSwitcher.destroy(),l.setMode(e),l.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu)),this.options.navigationBar&&(this.navBar=document.createElement("div"),this.navBar.className="jsoneditor-navigation-bar nav-bar-empty",this.frame.appendChild(this.navBar),this.treePath=new a(this.navBar),this.treePath.onSectionSelected(this._onTreePathSectionSelected.bind(this)),this.treePath.onContextMenuItemSelected(this._onTreePathMenuItemSelected.bind(this)))},m._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},m._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},m._onEvent=function(e){"keydown"===e.type&&this._onKeyDown(e),"focus"===e.type&&(this.focusTarget=e.target),"mousedown"===e.type&&this._startDragDistance(e),"mousemove"!==e.type&&"mouseup"!==e.type&&"click"!==e.type||this._updateDragDistance(e);var t=l.getNodeFromTarget(e.target);if(t&&this.options&&this.options.navigationBar&&t&&("keydown"===e.type||"mousedown"===e.type)){var i=this;setTimeout(function(){i._updateTreePath(t.getNodePath())})}if(t&&t.selected){if("click"===e.type){if(e.target===t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"===e.type&&l.onDragStart(this.multiselection.nodes,e)}else"mousedown"===e.type&&(this.deselect(),t&&e.target===t.dom.drag?l.onDragStart(t,e):(!t||e.target!==t.dom.field&&e.target!==t.dom.value&&e.target!==t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},m._updateTreePath=function(e){function t(e){return void 0!==e.field?e._escapeHTML(e.field):isNaN(e.index)?e.type:e.index}if(e&&e.length){h.removeClassName(this.navBar,"nav-bar-empty");var i=[];e.forEach(function(e){var n={name:t(e),node:e,children:[]};e.childs&&e.childs.length&&e.childs.forEach(function(e){n.children.push({name:t(e),node:e})}),i.push(n)}),this.treePath.setPath(i)}else h.addClassName(this.navBar,"nav-bar-empty")},m._onTreePathSectionSelected=function(e){e&&e.node&&(e.node.expandTo(),e.node.focus())},m._onTreePathMenuItemSelected=function(e,t){if(e&&e.children.length){var i=e.children.find(function(e){return e.name===t});i&&i.node&&(this._updateTreePath(i.node.getNodePath()),i.node.expandTo(),i.node.focus())}},m._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},m._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},m._onMultiSelectStart=function(e){var t=l.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=h.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=h.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},m._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=l.getNodeFromTarget(e.target) -;t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},m._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(h.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(h.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},m.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},m.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},m._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&(c="value"),e.target.className.indexOf("jsoneditor-field")>=0&&(c="field");var u=l.getNodeFromTarget(e.target);setTimeout(function(e,t){if(t.innerText.length>0){var i=this.options.autocomplete.getOptions(t.innerText,e.getPath(),c,e.editor);null===i?this.autocomplete.hideDropDown():"function"==typeof i.then?i.then(function(e){null===e?this.autocomplete.hideDropDown():e.options?this.autocomplete.show(t,e.startFrom,e.options):this.autocomplete.show(t,0,e)}.bind(this)):i.options?this.autocomplete.show(t,i.startFrom,i.options):this.autocomplete.show(t,0,i)}else this.autocomplete.hideDropDown()}.bind(this,u,e.target),50)}s&&(e.preventDefault(),e.stopPropagation())},m._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.options.navigationBar&&h.addClassName(e,"has-nav-bar"),this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},m.showContextMenu=function(e,t){var i=[],n=this;i.push({text:d("duplicateText"),title:d("duplicateTitle"),className:"jsoneditor-duplicate",click:function(){l.onDuplicate(n.multiselection.nodes)}}),i.push({text:d("remove"),title:d("removeTitle"),className:"jsoneditor-remove",click:function(){l.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:m,data:"json"},{mode:"view",mixin:m,data:"json"},{mode:"form",mixin:m,data:"json"}]},function(e,t){"use strict";function i(){this.locked=!1}i.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},i.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},i.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},i.prototype.lock=function(){this.locked=!0},i.prototype.unlock=function(){this.locked=!1},e.exports=i},function(e,t,i){"use strict";function n(e){this.editor=e,this.history=[],this.index=-1,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(e.node,t),t=i})}},removeNodes:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,i)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(i,t),t=i})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}i(54);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.index=" "&&c<=" "||" "===c||" "===c||" "===c?(o.push(" "),s++):"'"===c?r("'"):'"'===c?r('"'):"`"===c?r("´"):"‘"===c?r("’"):"“"===c?r("”"):/[a-zA-Z_$]/.test(c)&&-1!==["{",","].indexOf(function(){for(var e=o.length-1;e>=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),r=/[a-zA-Z_$\d]/;r.test(n);)i+=n,s++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(c),s++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}},t.getInputSelection=function(e){var t,i,n,r,o,s=0,a=0;"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd?(s=e.selectionStart,a=e.selectionEnd):(i=document.selection.createRange())&&i.parentElement()==e&&(r=e.value.length,t=e.value.replace(/\r\n/g,"\n"),n=e.createTextRange(),n.moveToBookmark(i.getBookmark()),o=e.createTextRange(),o.collapse(!1),n.compareEndPoints("StartToEnd",o)>-1?s=a=r:(s=-n.moveStart("character",-r),s+=t.slice(0,s).split("\n").length-1,n.compareEndPoints("EndToEnd",o)>-1?a=r:(a=-n.moveEnd("character",-r),a+=t.slice(0,a).split("\n").length-1)));var l=e.value.substring(0,a),c=(l.match(/\n/g)||[]).length+1;return{start:s,end:a,col:l.length-l.lastIndexOf("\n"),row:c}},"undefined"!=typeof Element&&function(){function e(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!=this.parentNode&&this.parentNode.removeChild(this)}})}"undefined"!=typeof Element&&e(Element.prototype),"undefined"!=typeof CharacterData&&e(CharacterData.prototype),"undefined"!=typeof DocumentType&&e(DocumentType.prototype)}(),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Array.prototype.find||(Array.prototype.find=function(e){for(var t=0;t2&&C.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:d,expected:C})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,f=t()}for(;;){if(u.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=u,m=n[n.length-1],g=s[m]&&s[m][u],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,d=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],E.$=r[r.length-y],E._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(E,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(E.$),o.push(E._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var u=document.createElement("button");u.type="button",u.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var d=document.createElement("input");this.dom.search=d,d.oninput=function(e){i._onDelayedSearch(e)},d.onchange=function(e){i._onSearch()},d.onkeydown=function(e){i._onKeyDown(e)},d.onkeyup=function(e){i._onKeyUp(e)},u.onclick=function(e){d.select()},s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e){return e.getRootNode&&e.getRootNode()||window}function r(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",l=document.createElement("li"),l.appendChild(o),e.appendChild(l)}else{var a={},l=document.createElement("li");e.appendChild(l);var c=document.createElement("button");if(c.type="button",c.className=r.className,a.button=c,r.title&&(c.title=r.title),r.click&&(c.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),l.appendChild(c),r.submenu){var h=document.createElement("div");h.className="jsoneditor-icon",c.appendChild(h);var u=document.createElement("div");u.className="jsoneditor-text"+(r.click?"":" jsoneditor-right-margin"),u.appendChild(document.createTextNode(r.text)),c.appendChild(u);var d;if(r.click){c.className+=" jsoneditor-default";var f=document.createElement("button");f.type="button",a.buttonExpand=f,f.className="jsoneditor-expand",f.innerHTML='
',l.appendChild(f),r.submenuTitle&&(f.title=r.submenuTitle),d=f}else{var p=document.createElement("div");p.className="jsoneditor-expand",c.appendChild(p),d=c}d.onclick=function(e){e.preventDefault(),n._onExpandItem(a),d.focus()};var m=[];a.subItems=m;var g=document.createElement("ul");a.ul=g,g.className="jsoneditor-menu",g.style.height="0",l.appendChild(g),i(g,m,r.submenu)}else c.innerHTML='
'+s(r.text)+"
";t.push(a)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var a=document.createElement("div");a.className="jsoneditor-contextmenu",r.menu=a,o.appendChild(a);var l=document.createElement("ul");l.className="jsoneditor-menu",a.appendChild(l),r.list=l,r.items=[];var c=document.createElement("button");c.type="button",r.focusButton=c;var h=document.createElement("li");h.style.overflow="hidden",h.style.height="0",h.appendChild(c),l.appendChild(h),i(l,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(54),s=i(58).translate;r.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},r.visibleMenu=void 0,r.prototype.show=function(e,t){this.hide();var i=!0,s=e.parentNode,a=e.getBoundingClientRect(),l=s.getBoundingClientRect();if(t){var c=t.getBoundingClientRect();a.bottom+this.maxHeightc.top&&(i=!1)}var h=a.left-l.left,u=a.top-l.top;if(i){var d=e.offsetHeight;this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+d+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left=h+"px",this.dom.menu.style.top=u+"px",this.dom.menu.style.bottom="0px";this.rootNode=n(e),s.insertBefore(this.dom.root,s.firstChild);var f=this,p=this.dom.list;this.eventListeners.mousedown=o.addEventListener(this.rootNode,"mousedown",function(e){var t=e.target;t==p||f._isChildOf(t,p)||(f.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(this.rootNode,"keydown",function(e){f._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){f.dom.focusButton.focus()},0),r.visibleMenu&&r.visibleMenu.hide(),r.visibleMenu=this},r.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(this.rootNode,e,t),delete this.eventListeners[e]}r.visibleMenu==this&&(r.visibleMenu=void 0)},r.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){if(t.expandedItem==e){for(var i=0,n=0;n0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:l("duplicateKey")+' "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title=l("drag"),t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title=l("actionsMenu"),n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,l,h,u,d,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,C=t.pageX,E=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(u=void 0)),u&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),E=!0)}else{var F=e[e.length-1];if(l=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=l?l.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{d=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,d.parent.childs.length==e.length&&d.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(d&&d.parent){var x=C-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=d.getLevel();for(r=d.dom.tr.previousSibling;D<$&&r;){u=n.getNodeFromTarget(r);if(e.some(function(e){return e===u||u._isChildOf(e)}));else{if(!(u instanceof c))break;var k=u.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;d=n.getNodeFromTarget(r),D=d.getLevel()}r=r.previousSibling}l.nextSibling!=d.dom.tr&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),E=!0)}}}E&&(y.drag.mouseX=C,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),l=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=this.editor.options.schema?n._findSchema(this.editor.options.schema,this.getPath()):null,this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){var i=e,r=i,o=e.oneOf||e.anyOf||e.allOf;o||(o=[e]);for(var s=0;s0?this.editor.multiselection.nodes:[this],A=y[0],C=y[y.length-1];if(13==d){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var E=this._hasChilds();if(E){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==d)p&&w&&(n.onDuplicate(y),v=!0);else if(69==d)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==d&&w)p&&(this.showContextMenu(f),v=!0);else if(46==d&&w)p&&(n.onRemove(y),v=!0);else if(45==d&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==d){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==d){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==d){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(C.expanded){var $=C.getAppend();r=$?$.nextSibling:void 0}else{var D=C.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof c&&1!=C.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==d)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(u=this.editor.multiselection,u.start=u.start||this,u.end=t,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==d){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof c&&!t.isVisible()&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==d)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(u=this.editor.multiselection,u.start=u.start||this,u.end=i,h=this.editor._findTopLevelNodes(u.start,u.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=C.expanded?C.append?C.append._nextNode():void 0:C._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),l=C._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:l,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new c(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof c&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof c&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:l("autoType"),object:l("objectType"),array:l("arrayType"),string:l("stringType")},n.prototype.addTemplates=function(e,t){var i=this,n=i.editor.options.templates;if(null!=n){n.length&&e.push({type:"separator"});var r=function(e,t){i._onAppend(e,t)},o=function(e,t){i._onInsertBefore(e,t)};n.forEach(function(i){e.push({text:i.text,className:i.className||"jsoneditor-type-object",title:i.title,click:t?r.bind(this,i.field,i.value):o.bind(this,i.field,i.value)})})}},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:l("type"),title:l("typeTitle"),className:"jsoneditor-type-"+this.type,submenu:[{text:l("auto"),className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:l("array"),className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:l("object"),className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:l("string"),className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:l("sort"),title:l("sortTitle")+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:l("ascending"),className:"jsoneditor-sort-asc",title:l("ascendingTitle",{type:this.type}),click:function(){i.sort("asc")}},{text:l("descending"),className:"jsoneditor-sort-desc",title:l("descendingTitle",{type:this.type}),click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var c=i.parent.childs;if(i==c[c.length-1]){var h=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}];i.addTemplates(h,!0),s.push({text:l("appendText"),title:l("appendTitle"),submenuTitle:l("appendSubmenuTitle"),className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:h})}var u=[{text:l("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:l("array"),className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:l("object"),className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:l("string"),className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}];i.addTemplates(u,!1),s.push({text:l("insert"),title:l("insertTitle"),submenuTitle:l("insertSub"),className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:u}),this.editable.field&&(s.push({text:l("duplicateText"),title:l("duplicateField"),className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:l("removeText"),title:l("removeField"),className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(d.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="("+s("empty")+")",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="("+s("empty")+" "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,a=[{text:s("auto"),className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:s("array"),className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:s("object"),className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:s("string"),className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}];n.addTemplates(a,!0);var l=[{text:s("appendText"),title:s("appendTitleAuto"),submenuTitle:s("appendSubmenuTitle"),className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:a}];new o(l,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(54),o=i(57),s=i(58).translate;e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a/g,">"),a.getBoundingClientRect().right}e=e||{},e.confirmKeys=e.confirmKeys||[39,35,9],e.caseSensitive=e.caseSensitive||!1;var n="",r="",o=document.createElement("div");o.style.position="relative",o.style.outline="0",o.style.border="0",o.style.margin="0",o.style.padding="0";var s=document.createElement("div");s.className="autocomplete dropdown",s.style.position="absolute",s.style.visibility="hidden";var a,l,c={onArrowDown:function(){},onArrowUp:function(){},onEnter:function(){},onTab:function(){},startFrom:0,options:[],element:null,elementHint:null,elementStyle:null,wrapper:o,show:function(e,t,i){this.startFrom=t,this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null),""==n&&(n=window.getComputedStyle(e).getPropertyValue("font-size")),""==r&&(r=window.getComputedStyle(e).getPropertyValue("font-family"));e.getBoundingClientRect().right,e.getBoundingClientRect().left;s.style.marginLeft="0",s.style.marginTop=e.getBoundingClientRect().height+"px",this.options=i,this.element!=e&&(this.element=e,this.elementStyle={zIndex:this.element.style.zIndex,position:this.element.style.position,backgroundColor:this.element.style.backgroundColor,borderColor:this.element.style.borderColor}),this.element.style.zIndex=3,this.element.style.position="relative",this.element.style.backgroundColor="transparent",this.element.style.borderColor="transparent",this.elementHint=e.cloneNode(),this.elementHint.className="autocomplete hint",this.elementHint.style.zIndex=2,this.elementHint.style.position="absolute",this.elementHint.onfocus=function(){this.element.focus()}.bind(this),this.element.addEventListener&&(this.element.removeEventListener("keydown",u),this.element.addEventListener("keydown",u,!1),this.element.removeEventListener("blur",d),this.element.addEventListener("blur",d,!1)),o.appendChild(this.elementHint),o.appendChild(s),e.parentElement.appendChild(o),this.repaint(e)},setText:function(e){this.element.innerText=e},getText:function(){return this.element.innerText},hideDropDown:function(){this.wrapper.remove(),this.elementHint&&(this.elementHint.remove(),this.elementHint=null,h.hide(),this.element.style.zIndex=this.elementStyle.zIndex,this.element.style.position=this.elementStyle.position,this.element.style.backgroundColor=this.elementStyle.backgroundColor,this.element.style.borderColor=this.elementStyle.borderColor)},repaint:function(t){var n=t.innerText;n=n.replace("\n","");var r=(this.startFrom,this.options,this.options.length),o=n.substring(this.startFrom);l=n.substring(0,this.startFrom);for(var a=0;a"+o[p].substring(i.length)+"",n.push(m),t.appendChild(m)}0!==n.length&&(1===n.length&&(i.toLowerCase()===n[0].__hint.toLowerCase()&&!e.caseSensitive||i===n[0].__hint&&e.caseSensitive)||n.length<2||(c.highlight(0),d>3*f?(t.style.maxHeight=d+"px",t.style.top="",t.style.bottom="100%"):(t.style.top="100%",t.style.bottom="",t.style.maxHeight=f+"px"),t.style.visibility="visible"))},highlight:function(e){-1!=o&&n[o]&&(n[o].className="item"),n[e].className="item hover",o=e},move:function(e){return"hidden"===t.style.visibility?"":r+e===-1||r+e===n.length?n[r].__hint:(r+=e,c.highlight(r),n[r].__hint)},onmouseselection:function(){}};return c}(s,c),u=function(i){i=i||window.event;var n=i.keyCode;if(null!=this.elementHint&&33!=n&&34!=n){if(27==n)return c.hideDropDown(),c.element.focus(),i.preventDefault(),void i.stopPropagation();var r=this.element.innerText;r=r.replace("\n","");this.startFrom;if(e.confirmKeys.indexOf(n)>=0)return 9==n&&0==this.elementHint.innerText.length&&c.onTab(),void(this.elementHint.innerText.length>0&&this.element.innerText!=this.elementHint.realInnerText&&(this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),9==n&&(c.element.focus(),i.preventDefault(),i.stopPropagation())));if(13!=n){if(40==n){var o=r.substring(this.startFrom),a=h.move(1);return""==a&&c.onArrowDown(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}if(38==n){var o=r.substring(this.startFrom),a=h.move(-1);return""==a&&c.onArrowUp(),this.elementHint.innerText=l+o+a.substring(o.length),this.elementHint.realInnerText=l+a,i.preventDefault(),void i.stopPropagation()}}else if(0==this.elementHint.innerText.length)c.onEnter();else{var u="hidden"==s.style.visibility;if(h.hide(),u)return c.hideDropDown(),c.element.focus(),void c.onEnter();this.element.innerText=this.elementHint.realInnerText,c.hideDropDown(),t(this.element),i.preventDefault(),i.stopPropagation()}}}.bind(c),d=function(e){c.hideDropDown()}.bind(c);return h.onmouseselection=function(e,i){i.element.innerText=i.elementHint.innerText=l+e,i.hideDropDown(),window.setTimeout(function(){i.element.focus(),t(i.element)},1)},c}e.exports=i},function(e,t,i){"use strict";var n=i(66),r=i(63),o=i(54),s={};s.create=function(e,t){t=t||{},void 0===t.statusBar&&(t.statusBar=!0),this.options=t,t.indentation?this.indentation=Number(t.indentation):this.indentation=2;var s=t.ace?t.ace:n;if(this.mode="code"==t.mode?"code":"text","code"==this.mode&&void 0===s&&(this.mode="text",console.warn("Failed to load Ace editor, falling back to plain text mode. Please use a JSONEditor bundle including Ace, or pass Ace as via the configuration option `ace`.")),this.theme=t.theme||"ace/theme/jsoneditor","ace/theme/jsoneditor"===this.theme&&s)try{i(72)}catch(e){console.error(e)}var a=this;this.container=e,this.dom={},this.aceEditor=void 0,this.textarea=void 0,this.validateSchema=null,this._debouncedValidate=o.debounce(this.validate.bind(this),this.DEBOUNCE_INTERVAL),this.width=e.clientWidth,this.height=e.clientHeight,this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.frame.onclick=function(e){e.preventDefault()},this.frame.onkeydown=function(e){a._onKeyDown(e)},this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var l=document.createElement("button");l.type="button",l.className="jsoneditor-format",l.title="Format JSON data, with proper indentation and line feeds (Ctrl+\\)",this.menu.appendChild(l),l.onclick=function(){try{a.format(),a._onChange()}catch(e){a._onError(e)}};var c=document.createElement("button");c.type="button",c.className="jsoneditor-compact",c.title="Compact JSON data, remove all whitespaces (Ctrl+Shift+\\)",this.menu.appendChild(c),c.onclick=function(){try{a.compact(),a._onChange()}catch(e){a._onError(e)}};var h=document.createElement("button");h.type="button",h.className="jsoneditor-repair",h.title="Repair JSON: fix quotes and escape characters, remove comments and JSONP notation, turn JavaScript objects into JSON.",this.menu.appendChild(h),h.onclick=function(){try{a.repair(),a._onChange()}catch(e){a._onError(e)}},this.options&&this.options.modes&&this.options.modes.length&&(this.modeSwitcher=new r(this.menu,this.options.modes,this.options.mode,function(e){a.setMode(e),a.modeSwitcher.focus()}));var u={},d=this.options.onEditable&&typeof("function"===this.options.onEditable)&&!this.options.onEditable(u);if(this.content=document.createElement("div"),this.content.className="jsoneditor-outer",this.frame.appendChild(this.content),this.container.appendChild(this.frame),"code"==this.mode){this.editorDom=document.createElement("div"),this.editorDom.style.height="100%",this.editorDom.style.width="100%",this.content.appendChild(this.editorDom);var f=s.edit(this.editorDom);f.$blockScrolling=1/0,f.setTheme(this.theme),f.setOptions({readOnly:d}),f.setShowPrintMargin(!1),f.setFontSize(13),f.getSession().setMode("ace/mode/json"),f.getSession().setTabSize(this.indentation),f.getSession().setUseSoftTabs(!0),f.getSession().setUseWrapMode(!0),f.commands.bindKey("Ctrl-L",null),f.commands.bindKey("Command-L",null),this.aceEditor=f,this.hasOwnProperty("editor")||Object.defineProperty(this,"editor",{get:function(){return console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor},set:function(e){console.warn('Property "editor" has been renamed to "aceEditor".'),a.aceEditor=e}});var p=document.createElement("a");p.appendChild(document.createTextNode("powered by ace")),p.href="http://ace.ajax.org",p.target="_blank",p.className="jsoneditor-poweredBy",p.onclick=function(){window.open(p.href,p.target)},this.menu.appendChild(p),f.on("change",this._onChange.bind(this)),f.on("changeSelection",this._onSelect.bind(this))}else{var m=document.createElement("textarea");m.className="jsoneditor-text",m.spellcheck=!1,this.content.appendChild(m),this.textarea=m,this.textarea.readOnly=d,null===this.textarea.oninput?this.textarea.oninput=this._onChange.bind(this):this.textarea.onchange=this._onChange.bind(this),m.onselect=this._onSelect.bind(this),m.onmousedown=this._onMouseDown.bind(this),m.onblur=this._onBlur.bind(this)}var g=document.createElement("div");if(g.className="validation-errors-container",this.dom.validationErrorsContainer=g,this.frame.appendChild(g),t.statusBar){o.addClassName(this.content,"has-status-bar"),this.curserInfoElements={};var v=document.createElement("div");this.dom.statusBar=v,v.className="jsoneditor-statusbar",this.frame.appendChild(v);var w=document.createElement("span");w.className="jsoneditor-curserinfo-label",w.innerText="Ln:";var y=document.createElement("span");y.className="jsoneditor-curserinfo-val",y.innerText="1",v.appendChild(w),v.appendChild(y);var A=document.createElement("span");A.className="jsoneditor-curserinfo-label",A.innerText="Col:";var C=document.createElement("span");C.className="jsoneditor-curserinfo-val",C.innerText="1",v.appendChild(A),v.appendChild(C),this.curserInfoElements.colVal=C,this.curserInfoElements.lnVal=y;var E=document.createElement("span");E.className="jsoneditor-curserinfo-label",E.innerText="characters selected",E.style.display="none";var b=document.createElement("span");b.className="jsoneditor-curserinfo-count",b.innerText="0",b.style.display="none",this.curserInfoElements.countLabel=E,this.curserInfoElements.countVal=b,v.appendChild(b),v.appendChild(E)}this.setSchema(this.options.schema,this.options.schemaRefs)},s._onChange=function(){if(this._debouncedValidate(),this.options.onChange)try{this.options.onChange()}catch(e){console.error("Error in onChange callback: ",e)}},s._onSelect=function(){this.options.statusBar&&this._updateCursorInfoDisplay()},s._onKeyDown=function(e){var t=e.which||e.keyCode,i=!1;220==t&&e.ctrlKey&&(e.shiftKey?(this.compact(),this._onChange()):(this.format(),this._onChange()),i=!0),i&&(e.preventDefault(),e.stopPropagation()),this._updateCursorInfoDisplay()},s._onMouseDown=function(e){this._updateCursorInfoDisplay()},s._onBlur=function(e){this._updateCursorInfoDisplay()},s._updateCursorInfoDisplay=function(){function e(){r.curserInfoElements.countVal.innerText!==n&&(r.curserInfoElements.countVal.innerText=n,r.curserInfoElements.countVal.style.display=n?"inline":"none",r.curserInfoElements.countLabel.style.display=n?"inline":"none"),r.curserInfoElements.lnVal.innerText=t,r.curserInfoElements.colVal.innerText=i}var t,i,n,r=this;if(this.options.statusBar)if(this.textarea)setTimeout(function(){var s=o.getInputSelection(r.textarea);t=s.row,i=s.col,s.start!==s.end&&(n=s.end-s.start),e()},0);else if(this.aceEditor&&this.curserInfoElements){var s=this.aceEditor.getCursorPosition(),a=this.aceEditor.getSelectedText();t=s.row+1,i=s.column+1,n=a.length,e()}},s.destroy=function(){this.aceEditor&&(this.aceEditor.destroy(),this.aceEditor=null),this.frame&&this.container&&this.frame.parentNode==this.container&&this.container.removeChild(this.frame),this.modeSwitcher&&(this.modeSwitcher.destroy(),this.modeSwitcher=null),this.textarea=null,this._debouncedValidate=null},s.compact=function(){var e=this.get(),t=JSON.stringify(e);this.setText(t)},s.format=function(){var e=this.get(),t=JSON.stringify(e,null,this.indentation);this.setText(t)},s.repair=function(){var e=this.getText(),t=o.sanitize(e);this.setText(t)},s.focus=function(){this.textarea&&this.textarea.focus(),this.aceEditor&&this.aceEditor.focus()},s.resize=function(){if(this.aceEditor){this.aceEditor.resize(!1)}},s.set=function(e){this.setText(JSON.stringify(e,null,this.indentation))},s.get=function(){var e,t=this.getText();try{e=o.parse(t)}catch(i){t=o.sanitize(t),e=o.parse(t)}return e},s.getText=function(){return this.textarea?this.textarea.value:this.aceEditor?this.aceEditor.getValue():""},s.setText=function(e){var t;if(t=!0===this.options.escapeUnicode?o.escapeUnicodeChars(e):e,this.textarea&&(this.textarea.value=t),this.aceEditor){var i=this.options.onChange;this.options.onChange=null,this.aceEditor.setValue(t,-1),this.options.onChange=i}this.validate()},s.validate=function(){this.dom.validationErrors&&(this.dom.validationErrors.parentNode.removeChild(this.dom.validationErrors),this.dom.validationErrors=null,this.content.style.marginBottom="",this.content.style.paddingBottom="");var e,t=!1,i=[];try{e=this.get(),t=!0}catch(e){}if(t&&this.validateSchema){this.validateSchema(e)||(i=this.validateSchema.errors.map(function(e){return o.improveSchemaError(e)}))}if(i.length>0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.dom.validationErrorsContainer.appendChild(r);var s=r.clientHeight+(this.dom.statusBar?this.dom.statusBar.clientHeight:0);this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(67),i(69),i(71)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,u=Function.prototype.call,d=Array.prototype,f=Object.prototype,p=d.slice,m=u.bind(f.toString),g=u.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=u.bind(f.__defineGetter__),a=u.bind(f.__defineSetter__),l=u.bind(f.__lookupGetter__),c=u.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(u=c;u--;)this[l+u]=this[a+u];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,u=0;u>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var C=r({}),E="undefined"==typeof document||r(document.createElement("div"));if(!C||!E)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,r=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?u=0:e.detail>1?++u>4&&(u=1):u=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(u=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),1==u&&(l=e.clientX,c=e.clientY)}if(e._clicks=u,n[r]("mousedown",e),u>4)u=0;else if(u>1)return n[r](d[u],e)}function a(e){u=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[u-1]||600),n[r]("mousedown",e),n[r](d[u],e)}var l,c,h,u=0,d={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;ip.length?e=e.substr(9):e.substr(0,4)==p.substr(0,4)?e=e.substr(4,e.length-p.length+1):e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e==p.charAt(0)||e.charAt(e.length-1)==p.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),$&&($=!1))},k=function(e){if(!w){var t=f.value;D(t),u()}},B=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!c){ -var r=h||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return B(e,t,!0)}}},_=function(e,o){var s=t.getCopyText();if(!s)return n.preventDefault(e);B(e,s)?(r.isIOS&&(g=o,f.value="\n aa"+s+"a a\n",f.setSelectionRange(4,4+s.length),m={value:s}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(m=!0,f.value=s,f.select(),setTimeout(function(){m=!1,u(),i(),o?t.onCut():t.onCopy()}))},L=function(e){_(e,!0)},R=function(e){_(e,!1)},T=function(e){var o=B(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(f.value="",v=!0)};n.addCommandKeyListener(f,t.onCommandKey.bind(t)),n.addListener(f,"select",x),n.addListener(f,"input",k),n.addListener(f,"cut",L),n.addListener(f,"copy",R),n.addListener(f,"paste",T);var P=function(e){w||!t.onCompositionStart||t.$readOnly||(w={},w.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(M,0),t.on("mousedown",O),w.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},M=function(){if(w&&t.onCompositionUpdate&&!t.$readOnly){var e=f.value.replace(/\x01/g,"");if(w.lastValue!==e&&(t.onCompositionUpdate(e),w.lastValue&&t.undo(),w.canUndo&&(w.lastValue=e),w.lastValue)){var i=t.selection.getRange();t.insert(w.lastValue),t.session.markUndoGroup(),w.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=w;w=!1;var n=setTimeout(function(){n=null;var e=f.value.replace(/\x01/g,"");w||(e==i.lastValue?u():!i.lastValue&&e&&(u(),D(e)))});S=function(e){return n&&clearTimeout(n),(e=e.replace(/\x01/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&k()}},I=s.delayedCall(M,50);n.addListener(f,"compositionstart",P),r.isGecko?n.addListener(f,"text",function(){I.schedule()}):(n.addListener(f,"keyup",function(){I.schedule()}),n.addListener(f,"keydown",function(){I.schedule()})),n.addListener(f,"compositionend",O),this.getElement=function(){return f},this.setReadOnly=function(e){f.readOnly=e},this.onContextMenu=function(e){$=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){y||(y=f.style.cssText),f.style.cssText=(i?"z-index:100000;":"")+"height:"+f.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-f.clientHeight-2,u=function(e){f.style.left=e.clientX-c-2+"px",f.style.top=Math.min(e.clientY-l-2,h)+"px"};u(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&n.capture(t.container,u,d))},this.onContextMenuClose=d;var N,j=function(e){t.textInput.onContextMenu(e),d()};if(n.addListener(f,"mouseup",j),n.addListener(f,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",j),n.addListener(f,"contextmenu",j),r.isIOS){var H=null,W=!1;e.addEventListener("keydown",function(e){H&&clearTimeout(H),W=!0}),e.addEventListener("keyup",function(e){H=setTimeout(function(){W=!1},100)});var V=function(e){if(document.activeElement===f&&!W){if(g)return setTimeout(function(){g=!1},100);var i=f.selectionStart,n=f.selectionEnd;if(f.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8:t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",V),t.on("destroy",function(){document.removeEventListener("selectionchange",V)})}};t.TextInput=u}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),s=e("../lib/lang"),a=r.isChrome<18,l=r.isIE,c=e("./textinput_ios").TextInput,h=function(e,t){function i(e){if(!g){if(g=!0,F)var t=0,i=e?0:d.value.length-1;else var t=e?2:1,i=2;try{d.setSelectionRange(t,i)}catch(e){}g=!1}}function h(){g||(d.value=f,r.isWebKit&&C.schedule())}function u(){clearTimeout(O),O=setTimeout(function(){v&&(d.style.cssText=v,v=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(r.isIOS)return c.call(this,e,t);var d=o.createElement("textarea");d.className="ace_text-input",d.setAttribute("wrap","off"),d.setAttribute("autocorrect","off"),d.setAttribute("autocapitalize","off"),d.setAttribute("spellcheck",!1),d.style.opacity="0",e.insertBefore(d,e.firstChild);var f="\u2028\u2028",p=!1,m=!1,g=!1,v="",w=!0;try{var y=document.activeElement===d}catch(e){}n.addListener(d,"blur",function(e){t.onBlur(e),y=!1}),n.addListener(d,"focus",function(e){y=!0,t.onFocus(e),i()}),this.focus=function(){if(v)return d.focus();var e=d.style.top;d.style.position="fixed",d.style.top="0px",d.focus(),setTimeout(function(){d.style.position="","0px"==d.style.top&&(d.style.top=e)},0)},this.blur=function(){d.blur()},this.isFocused=function(){return y};var A=s.delayedCall(function(){y&&i(w)}),C=s.delayedCall(function(){g||(d.value=f,y&&i())});r.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=w&&(w=!w,A.schedule())}),h(),y&&t.onFocus();var E=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},b=function(e){p?p=!1:E(d)?(t.selectAll(),i()):F&&i(t.selection.isEmpty())},F=null;this.setInputHandler=function(e){F=e},this.getInputHandler=function(){return F};var x=!1,S=function(e){F&&(e=F(e),F=null),m?(i(),e&&t.onPaste(e),m=!1):e==f.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},$=function(e){if(!g){var t=d.value;S(t),h()}},D=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var r=l||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(e){if(!i)return D(e,t,!0)}}},k=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);D(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(p=!0,d.value=o,d.select(),setTimeout(function(){p=!1,h(),i(),r?t.onCut():t.onCopy()}))},B=function(e){k(e,!0)},_=function(e){k(e,!1)},L=function(e){var o=D(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(i),n.preventDefault(e)):(d.value="",m=!0)};n.addCommandKeyListener(d,t.onCommandKey.bind(t)),n.addListener(d,"select",b),n.addListener(d,"input",$),n.addListener(d,"cut",B),n.addListener(d,"copy",_),n.addListener(d,"paste",L),"oncut"in d&&"oncopy"in d&&"onpaste"in d||n.addListener(e,"keydown",function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:_(e);break;case 86:L(e);break;case 88:B(e)}});var R=function(e){g||!t.onCompositionStart||t.$readOnly||(g={},g.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(T,0),t.on("mousedown",P),g.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},T=function(){if(g&&t.onCompositionUpdate&&!t.$readOnly){var e=d.value.replace(/\u2028/g,"");if(g.lastValue!==e&&(t.onCompositionUpdate(e),g.lastValue&&t.undo(),g.canUndo&&(g.lastValue=e),g.lastValue)){var i=t.selection.getRange();t.insert(g.lastValue),t.session.markUndoGroup(),g.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},P=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=g;g=!1;var n=setTimeout(function(){n=null;var e=d.value.replace(/\u2028/g,"");g||(e==i.lastValue?h():!i.lastValue&&e&&(h(),S(e)))});F=function(e){return n&&clearTimeout(n),(e=e.replace(/\u2028/g,""))==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",P),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&$()}},M=s.delayedCall(T,50);n.addListener(d,"compositionstart",R),r.isGecko?n.addListener(d,"text",function(){M.schedule()}):(n.addListener(d,"keyup",function(){M.schedule()}),n.addListener(d,"keydown",function(){M.schedule()})),n.addListener(d,"compositionend",P),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){x=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),h=s.bottom-l-d.clientHeight-2,f=function(e){d.style.left=e.clientX-c-2+"px",d.style.top=Math.min(e.clientY-l-2,h)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,f,u))},this.onContextMenuClose=u;var O,I=function(e){t.textInput.onContextMenu(e),u()};n.addListener(d,"mouseup",I),n.addListener(d,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",I),n.addListener(d,"contextmenu",I)};t.TextInput=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var s=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent"));(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&(n.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,s=e.wheelY/r;r<250&&(o=(o+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(o/s),l=!1;if(a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l)i.allowed=n;else if(n-i.allowed<250){var c=Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(s)<=1.1*Math.abs(i.vy);c?(l=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=u.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,u.y).row,a=u.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(d!=r)if(d=r.text.join("
"),c.setHtml(d),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(u);else{var h=u.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),d&&(c.hide(),d=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,u,d;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();d&&e.$tooltipFollowsMouse&&n(r),u=r,h||(h=setTimeout(function(){h=null,u&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){u=null,d&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function u(){E=g.selection.toOrientedRange(),w=g.session.addMarker(E,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(C),n(),C=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function d(){clearInterval(C),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(E),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),E=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&d()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,C,E,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}E=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||u(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(u(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return d(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":E=E.contains(b.row,b.column)?{start:b,end:b}:g.moveText(E,b);break;case"copy":E=g.moveText(E,b,!0)}else{var i=t.getData("Text");E={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return d(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var r=a?p:f,m=null,g=null,v=null,w=0,y=null,A=-1,b=null,x=null,S=[];if(!n)for(b=0,n=[];b0)if(16==y){for(b=A;b-1){for(b=A;b=0&&n[$]==F;$--)t[$]=a}}function r(e,t,i){if(!(l=e){for(n=h+1;n=e;)n++;for(r=h,o=n-1;r=t.length||(r=i[n-1])!=w&&r!=y||(o=t[n+1])!=w&&o!=y?A:(c&&(o=y),o==r?o:A);case S:return r=n>0?i[n-1]:C,r==w&&n+10&&i[n-1]==w)return w;if(c)return A;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(r=t[l],m&&(r==v||r==b))return v}return n<1||(r=t[n-1])==C?A:i[n-1];case C:return c=!1,u=!0,a;case E:return d=!0,A;case k:case B:case L:case R:case _:c=!1;case T:return A}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:P[t]:5==i?/[\u0591-\u05f4]/.test(e)?v:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?D:/[\u0660-\u0669\u066b-\u066c]/.test(e)?y:1642==t?$:/[\u06f0-\u06f9]/.test(e)?w:b:32==i&&t<=8287?M[255&t]:254==i&&t>=65136?b:A}var a=0,l=0,c=!1,h=!1,u=!1,d=!1,f=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=1,g=0,v=1,w=2,y=3,A=4,C=5,E=6,b=7,F=8,x=9,S=10,$=11,D=12,k=13,B=14,_=15,L=16,R=17,T=18,P=[T,T,T,T,T,T,T,T,T,E,C,E,F,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,C,C,C,E,F,A,A,$,$,$,A,A,A,A,A,S,x,S,x,x,w,w,w,w,w,w,w,w,w,w,x,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,T,T,T,T,T,T,C,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,x,A,$,$,$,$,A,A,A,A,g,A,A,T,A,A,$,$,w,w,A,g,A,A,A,w,g,A,A,A,A,A],M=[F,F,F,F,F,F,F,F,F,F,F,T,T,T,g,v,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F,C,k,B,_,L,R,x,$,$,$,$,$,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,F];t.L=g,t.R=v,t.EN=w,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),h=[];a=o?m:0,n(s,h,s.length,i);for(var u=0;ub&&i[u]0&&"ل"===s[u-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[u])&&(h[u-1]=h[u]=t.R_H,u++);s[s.length-1]===t.DOT&&(h[s.length-1]=t.B);for(var u=0;u=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=c&&ri+s/2;){if(i+=s,r===o.length-1){s=0;break}s=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===s&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==s&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(u=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=u,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,g-m.length);d.type==f?d.value+=v:(d.type&&c.push(d),d={type:f,value:v})}for(var w=0;wr){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},u={'"':'"',"'":"'"},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},f=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},p=function(e){this.add("braces","insertion",function(t,i,r,o,s){var l=r.getCursorPosition(),c=o.doc.getLine(l.row);if("{"==s){d(r);var h=r.getSelectionRange(),u=o.doc.getTextRange(h);if(""!==u&&"{"!==u&&r.getWrapBehavioursEnabled())return f(h,u,"{","}");if(p.isSaneInsertion(r,o))return/[\]\}\)]/.test(c[l.column])||r.inMultiSelectMode||e&&e.braces?(p.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==s){d(r);var m=c.substring(l.column,l.column+1);if("}"==m){var g=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==g&&p.isAutoInsertedClosing(l,c,s))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==s||"\r\n"==s){d(r);var v="";p.isMaybeInsertedClosing(l,c)&&(v=a.stringRepeat("}",n.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var m=c.substring(l.column,l.column+1);if("}"===m){var w=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!w)return null;var y=this.$getIndent(o.getLine(w.row))}else{if(!v)return void p.clearMaybeInsertedClosing();var y=this.$getIndent(c)}var A=y+o.getTabString();return{text:"\n"+A+"\n"+y+v,selection:[1,A.length,1,A.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"(",")");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){d(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return f(o,s,"[","]");if(p.isSaneInsertion(i,n))return p.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&p.isAutoInsertedClosing(a,l,r))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){d(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){var o=n.$mode.$quotes||u;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;d(i);var s=r,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return f(a,l,s,s);if(!l){var c=i.getCursorPosition(),h=n.doc.getLine(c.row),p=h.substring(c.column-1,c.column),m=h.substring(c.column,c.column+1),g=n.getTokenAt(c.row,c.column),v=n.getTokenAt(c.row,c.column+1);if("\\"==p&&g&&/escape/.test(g.type))return null;var w,y=g&&/string|escape/.test(g.type),A=!v||/string|escape/.test(v.type);if(m==s)(w=y!==A)&&/string\.end/.test(v.type)&&(w=!1);else{if(y&&!A)return null;if(y&&A)return null;var C=n.$mode.tokenRe;C.lastIndex=0;var E=C.test(p);C.lastIndex=0;var b=C.test(p);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;w=!0}return{text:w?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){d(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};p.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(p,o),t.CstyleBehaviour=p}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var d=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var p=function(e,t){var i=e.match(d);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return d.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(C=e.length)}),c==1/0&&(c=C,s=!1,l=!1),u&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),u=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var d,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;d=new c(m,g,m,g+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),d&&(t.remove(d),o=d.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);u.start.row==o&&(u.start.column+=s),u.end.row==o&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(th)break}while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return c.end.row=n.getCurrentTokenRow(),c.end.column=n.getCurrentTokenColumn()+o.value.length-2,c}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var r=e;r=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,c=o.start,s=c.row-l.row,a=c.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new h(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new h(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),u=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==h&&(d.merge(h),h=d),u=c.indexOf(h)+1}for(u;u=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),u=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),u=c.indexOf(h)+1}for(u;u=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=d+n-v;if(e[w-1]>=o&&e[w]>=o)a(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),d-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?a(++w):(w=d+n,2==e[w]&&w--,a(w-v))}else{for(w;w!=d-1&&e[w]!=t;w--);if(w>d){a(w);continue}for(w=d+n;w39&&a<48||a>57&&a<64?r.push(9):a>=4352&&e(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=c[h],o=this.$docRowCache[h],d=e>c[u-1];else var d=!u;for(var f=this.getLength()-1,p=this.getNextFoldLine(o),m=p?p.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=f));)a+=l,++o>m&&(o=p.end.row+1,p=this.getNextFoldLine(o,p),m=p?p.start.row:1/0),d&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(p&&p.start.row<=o)n=this.getFoldDisplayLine(p),o=p.start.row;else{if(a+l<=e||o>f)return{row:f,column:this.getLine(f).length};n=this.getLine(o),p=null}var g=0,v=Math.floor(e-a);if(this.$useWrapMode){var w=this.$wrapData[o];w&&(r=w[v],v>0&&w.length&&(g=w.indent,s=w[v-1]||w[w.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+v,o,v)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&s>=r&&(s=r-1),p?p.idxToPosition(s):{row:o,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],u=e>l[h-1];else var u=!h;for(var d=this.getNextFoldLine(a),f=d?d.start.row:1/0;a=f){if((s=d.end.row+1)>e)break;d=this.getNextFoldLine(s,d),f=d?d.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";d&&a>=f?(p=this.getFoldDisplayLine(d,e,t),r=d.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r,o){return n=new s(e,i,r,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var u=a.offset||0;u<=h;u++){for(var d=0;dm||(o.push(l=new s(u,m,u+c-1,g)),c>2&&(u=u+c-2))}}else for(var v=0;vC&&o[d].end.row==i.end.row;)d--;for(o=o.slice(v,d+1),v=0,d=o.length;v=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else var c=function(e){var i=s.row;if(!u(i,s.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var h=i.length,u=function(t,r,o){var s=n?t-h+1:t;if(!(s<0)){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lr))return!!o(s,l,s+h-1,u)||void 0}}};else if(n)var u=function(t,n,r){var o,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(s);){var c=o[0].length;if(l=o.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(o.index+c>n)break;a.push(o.index,c)}for(var h=a.length-1;h>=0;h-=2){var u=a[h-1],c=a[h];if(r(t,u,t,u+c))return!0}};else var u=function(t,n,r){var o,s=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(s);){var l=o[0].length;if(a=o.index,r(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=s.length))return!1}};return{forEach:c}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{ -name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var u=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==u.length&&(u=" "+u),c+=u}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),u=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},d)}u&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var r=new f(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(d,f,t?0:e),t&&-1==e&&(u=h+1);u<=h;)s[u].moveBy(a,0),u++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,u=0,d=0,f=a.getScreenLastRowColumn(h),p=null,m=new n(h,i.start.column,h,d);h<=c;h++)m.start.row=m.end.row=h,m.start.column=h==l?i.start.column:a.getRowWrapIndent(h),m.end.column=f,u=d,d=f,f=h+1f,h==c),this.session.$bidiHandler.isBidiRow(h)?this.drawBidiSingleLineMarker(t,m,p,o,h==c?0:1,s):this.drawSingleLineMarker(t,m,p,o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,s,a,l=this.$padding;if(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var c=t.clone();c.end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,r)}else o=n.lineHeight,s=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var c=t.clone();c.start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,r)}else{var h=t.end.column*n.characterWidth;o=n.lineHeight,s=this.$getTop(t.end.row,n),e.push("
")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){s=this.$getTop(t.start.row+1,n);var u=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=u.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,u.substring(0,a-r)),u=u.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=u.length&&(r+=u.length,l=this.$renderToken(e,l,h,u))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype), -t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_text-input-ios {\tposition: absolute !important;\ttop: -100000px !important;\tleft: -100000px !important;\t}\t',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new u(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,r-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+u<0||this.scrollTop>d.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var C=e.getFoldLine(w);C&&(w=C.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||p)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),s=Math.round(r);return{row:o,column:s,side:r-s>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e,t){var i=t.src;s.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(e){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,r=new n;return r.append(i),r.getBlob("application/javascript")}}function r(e,t){var i=n(e,t),r=window.URL||window.webkitURL,o=r.createObjectURL(i);return new Worker(o)}var o=e("../lib/oop"),s=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),c=function(t,i,n,o,s){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i.id,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var c={};t.forEach(function(t){c[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=r(o,i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:c,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return s.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var h=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(a),s=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){s.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=s.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){s.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);s.messageBuffer.length;)c()})};h.prototype=c.prototype,t.UIWorkerClient=h,t.WorkerClient=c,t.createWorker=r}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var u=r+1;u1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)v--;if(v>0)for(var w=0;n[w].isEmpty();)w++;for(var y=v;y>=w;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{}) -;i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=a._eventRegistry;a._eventRegistry={};var d=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;d.fromOrientedRange(h[f]),d.index=f,this.selection=s.selection=d;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),d.toOrientedRange(h[f])}d.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,d.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,u=c.end.row,f=h==u;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(u)}while(/[=:]/.test(p)&&++u0);h<0&&(h=0),u>=m&&(u=m-1)}var g=this.session.removeFullLines(h,u);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return d.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var u=e.getLine(c).length;return new n(l,s,c,u)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var u=h[0];n.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,n.row=u.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var d={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=d.el.appendChild(s.createElement("div")),p=d.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(68),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var u={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(u.textarea=a),o.addListener(window,"resize",u.onResize),h.on("destroy",function(){o.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),h.container.env=h.env=u,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.9"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),r=i.match(/^(\s*\})/);if(!r)return 0;var o=r[1].length,s=e.findMatchingBracket({row:t,column:o});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,o-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r=e.getLine(i);if(this.startRegionRe.test(r))return this.getCommentRegionBlock(e,r,i);var o=r.match(this.foldingStartMarker);if(o){var s=o.index;if(o[1])return this.openingBracketBlock(e,o[1],i,s);var a=e.getCommentFoldRange(i,s+o[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var o=r.match(this.foldingStopMarker);if(o){var s=o.index+o[0].length;return o[1]?this.closingBracketBlock(e,o[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),o=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(u,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(70),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})},function(e,t){e.exports.id="ace/mode/json_worker", +!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", 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 6c99866..6a5268b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.14.1", + "version": "5.15.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 97c5b68..9ad48ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsoneditor", - "version": "5.14.1", + "version": "5.15.0", "main": "./index", "description": "A web-based tool to view, edit, format, and validate JSON", "tags": [