File: /www/server/panel/BTPanel/static/editor/worker-json.js
'no use strict'
!(function (e) {
function t(e, t) {
var n = e,
r = ''
while (n) {
var i = t[n]
if (typeof i == 'string') return i + r
if (i) return i.location.replace(/\/*$/, '/') + (r || i.main || i.name)
if (i === !1) return ''
var s = n.lastIndexOf('/')
if (s === -1) break
;(r = n.substr(s) + r), (n = n.slice(0, s))
}
return e
}
if (typeof e.window != 'undefined' && e.document) return
if (e.require && e.define) return
e.console ||
((e.console = function () {
var e = Array.prototype.slice.call(arguments, 0)
postMessage({ type: 'log', data: e })
}),
(e.console.error = e.console.warn = e.console.log = e.console.trace = e.console)),
(e.window = e),
(e.ace = e),
(e.onerror = function (e, t, n, r, i) {
postMessage({
type: 'error',
data: { message: e, data: i.data, file: t, line: n, col: r, stack: i.stack },
})
}),
(e.normalizeModule = function (t, n) {
if (n.indexOf('!') !== -1) {
var r = n.split('!')
return e.normalizeModule(t, r[0]) + '!' + e.normalizeModule(t, r[1])
}
if (n.charAt(0) == '.') {
var i = t.split('/').slice(0, -1).join('/')
n = (i ? i + '/' : '') + n
while (n.indexOf('.') !== -1 && s != n) {
var s = n
n = n
.replace(/^\.\//, '')
.replace(/\/\.\//, '/')
.replace(/[^\/]+\/\.\.\//, '')
}
}
return n
}),
(e.require = function (r, i) {
i || ((i = r), (r = null))
if (!i.charAt) throw new Error('worker.js require() accepts only (parentId, id) as arguments')
i = e.normalizeModule(r, i)
var s = e.require.modules[i]
if (s)
return s.initialized || ((s.initialized = !0), (s.exports = s.factory().exports)), s.exports
if (!e.require.tlns) return console.log('unable to load ' + i)
var o = t(i, e.require.tlns)
return (
o.slice(-3) != '.js' && (o += '.js'),
(e.require.id = i),
(e.require.modules[i] = {}),
importScripts(o),
e.require(r, i)
)
}),
(e.require.modules = {}),
(e.require.tlns = {}),
(e.define = function (t, n, r) {
arguments.length == 2
? ((r = n), typeof t != 'string' && ((n = t), (t = e.require.id)))
: arguments.length == 1 && ((r = t), (n = []), (t = e.require.id))
if (typeof r != 'function') {
e.require.modules[t] = { exports: r, initialized: !0 }
return
}
n.length || (n = ['require', 'exports', 'module'])
var i = function (n) {
return e.require(t, n)
}
e.require.modules[t] = {
exports: {},
factory: function () {
var e = this,
t = r.apply(
this,
n.slice(0, r.length).map(function (t) {
switch (t) {
case 'require':
return i
case 'exports':
return e.exports
case 'module':
return e
default:
return i(t)
}
})
)
return t && (e.exports = t), e
},
}
}),
(e.define.amd = {}),
(require.tlns = {}),
(e.initBaseUrls = function (t) {
for (var n in t) require.tlns[n] = t[n]
}),
(e.initSender = function () {
var n = e.require('ace/lib/event_emitter').EventEmitter,
r = e.require('ace/lib/oop'),
i = function () {}
return (
function () {
r.implement(this, n),
(this.callback = function (e, t) {
postMessage({ type: 'call', id: t, data: e })
}),
(this.emit = function (e, t) {
postMessage({ type: 'event', name: e, data: t })
})
}.call(i.prototype),
new i()
)
})
var n = (e.main = null),
r = (e.sender = null)
e.onmessage = function (t) {
var i = t.data
if (i.event && r) r._signal(i.event, i.data)
else if (i.command)
if (n[i.command]) n[i.command].apply(n, i.args)
else {
if (!e[i.command]) throw new Error('Unknown command:' + i.command)
e[i.command].apply(e, i.args)
}
else if (i.init) {
e.initBaseUrls(i.tlns), (r = e.sender = e.initSender())
var s = require(i.module)[i.classname]
n = e.main = new s(r)
}
}
})(this),
ace.define('ace/lib/oop', [], function (e, t, n) {
'use strict'
;(t.inherits = function (e, t) {
;(e.super_ = t),
(e.prototype = Object.create(t.prototype, {
constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 },
}))
}),
(t.mixin = function (e, t) {
for (var n in t) e[n] = t[n]
return e
}),
(t.implement = function (e, n) {
t.mixin(e, n)
})
}),
ace.define('ace/range', [], function (e, t, n) {
'use strict'
var r = function (e, t) {
return e.row - t.row || e.column - t.column
},
i = function (e, t, n, r) {
;(this.start = { row: e, column: t }), (this.end = { row: n, column: r })
}
;(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 this.compare(e, t) == 0
}),
(this.compareRange = function (e) {
var t,
n = e.end,
r = e.start
return (
(t = this.compare(n.row, n.column)),
t == 1
? ((t = this.compare(r.row, r.column)), t == 1 ? 2 : t == 0 ? 1 : 0)
: t == -1
? -2
: ((t = this.compare(r.row, r.column)), t == -1 ? -1 : t == 1 ? 42 : 0)
)
}),
(this.comparePoint = function (e) {
return this.compare(e.row, e.column)
}),
(this.containsRange = function (e) {
return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
}),
(this.intersects = function (e) {
var t = this.compareRange(e)
return t == -1 || t == 0 || t == 1
}),
(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) {
typeof e == 'object'
? ((this.start.column = e.column), (this.start.row = e.row))
: ((this.start.row = e), (this.start.column = t))
}),
(this.setEnd = function (e, t) {
typeof e == 'object'
? ((this.end.column = e.column), (this.end.row = e.row))
: ((this.end.row = e), (this.end.column = t))
}),
(this.inside = function (e, t) {
return this.compare(e, t) == 0 ? (this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0) : !1
}),
(this.insideStart = function (e, t) {
return this.compare(e, t) == 0 ? (this.isEnd(e, t) ? !1 : !0) : !1
}),
(this.insideEnd = function (e, t) {
return this.compare(e, t) == 0 ? (this.isStart(e, t) ? !1 : !0) : !1
}),
(this.compare = function (e, t) {
return !this.isMultiLine() && e === this.start.row
? t < this.start.column
? -1
: t > this.end.column
? 1
: 0
: e < this.start.row
? -1
: e > this.end.row
? 1
: this.start.row === e
? t >= this.start.column
? 0
: -1
: this.end.row === e
? t <= this.end.column
? 0
: 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 n = { row: t + 1, column: 0 }
else if (this.end.row < e) var n = { row: e, column: 0 }
if (this.start.row > t) var r = { row: t + 1, column: 0 }
else if (this.start.row < e) var r = { row: e, column: 0 }
return i.fromPoints(r || this.start, n || this.end)
}),
(this.extend = function (e, t) {
var n = this.compare(e, t)
if (n == 0) return this
if (n == -1) var r = { row: e, column: t }
else var s = { row: e, column: t }
return i.fromPoints(r || this.start, s || 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 i.fromPoints(this.start, this.end)
}),
(this.collapseRows = function () {
return this.end.column == 0
? new i(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0)
: new i(this.start.row, 0, this.end.row, 0)
}),
(this.toScreenRange = function (e) {
var t = e.documentToScreenPosition(this.start),
n = e.documentToScreenPosition(this.end)
return new i(t.row, t.column, n.row, n.column)
}),
(this.moveBy = function (e, t) {
;(this.start.row += e),
(this.start.column += t),
(this.end.row += e),
(this.end.column += t)
})
}).call(i.prototype),
(i.fromPoints = function (e, t) {
return new i(e.row, e.column, t.row, t.column)
}),
(i.comparePoints = r),
(i.comparePoints = function (e, t) {
return e.row - t.row || e.column - t.column
}),
(t.Range = i)
}),
ace.define('ace/apply_delta', [], function (e, t, n) {
'use strict'
function r(e, t) {
throw (console.log('Invalid Delta:', e), 'Invalid Delta: ' + t)
}
function i(e, t) {
return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
}
function s(e, t) {
t.action != 'insert' &&
t.action != 'remove' &&
r(t, "delta.action must be 'insert' or 'remove'"),
t.lines instanceof Array || r(t, 'delta.lines must be an Array'),
(!t.start || !t.end) && r(t, 'delta.start/end must be an present')
var n = t.start
i(e, t.start) || r(t, 'delta.start must be contained in document')
var s = t.end
t.action == 'remove' &&
!i(e, s) &&
r(t, "delta.end must contained in document for 'remove' actions")
var o = s.row - n.row,
u = s.column - (o == 0 ? n.column : 0)
;(o != t.lines.length - 1 || t.lines[o].length != u) &&
r(t, 'delta.range must match delta lines')
}
t.applyDelta = function (e, t, n) {
var r = t.start.row,
i = t.start.column,
s = e[r] || ''
switch (t.action) {
case 'insert':
var o = t.lines
if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i)
else {
var u = [r, 1].concat(t.lines)
e.splice.apply(e, u),
(e[r] = s.substring(0, i) + e[r]),
(e[r + t.lines.length - 1] += s.substring(i))
}
break
case 'remove':
var a = t.end.column,
f = t.end.row
r === f
? (e[r] = s.substring(0, i) + s.substring(a))
: e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
}
}
}),
ace.define('ace/lib/event_emitter', [], function (e, t, n) {
'use strict'
var r = {},
i = function () {
this.propagationStopped = !0
},
s = function () {
this.defaultPrevented = !0
}
;(r._emit = r._dispatchEvent =
function (e, t) {
this._eventRegistry || (this._eventRegistry = {}),
this._defaultHandlers || (this._defaultHandlers = {})
var n = this._eventRegistry[e] || [],
r = this._defaultHandlers[e]
if (!n.length && !r) return
if (typeof t != 'object' || !t) t = {}
t.type || (t.type = e),
t.stopPropagation || (t.stopPropagation = i),
t.preventDefault || (t.preventDefault = s),
(n = n.slice())
for (var o = 0; o < n.length; o++) {
n[o](t, this)
if (t.propagationStopped) break
}
if (r && !t.defaultPrevented) return r(t, this)
}),
(r._signal = function (e, t) {
var n = (this._eventRegistry || {})[e]
if (!n) return
n = n.slice()
for (var r = 0; r < n.length; r++) n[r](t, this)
}),
(r.once = function (e, t) {
var n = this
this.on(e, function r() {
n.off(e, r), t.apply(null, arguments)
})
if (!t)
return new Promise(function (e) {
t = e
})
}),
(r.setDefaultHandler = function (e, t) {
var n = this._defaultHandlers
n || (n = this._defaultHandlers = { _disabled_: {} })
if (n[e]) {
var r = n[e],
i = n._disabled_[e]
i || (n._disabled_[e] = i = []), i.push(r)
var s = i.indexOf(t)
s != -1 && i.splice(s, 1)
}
n[e] = t
}),
(r.removeDefaultHandler = function (e, t) {
var n = this._defaultHandlers
if (!n) return
var r = n._disabled_[e]
if (n[e] == t) r && this.setDefaultHandler(e, r.pop())
else if (r) {
var i = r.indexOf(t)
i != -1 && r.splice(i, 1)
}
}),
(r.on = r.addEventListener =
function (e, t, n) {
this._eventRegistry = this._eventRegistry || {}
var r = this._eventRegistry[e]
return (
r || (r = this._eventRegistry[e] = []),
r.indexOf(t) == -1 && r[n ? 'unshift' : 'push'](t),
t
)
}),
(r.off =
r.removeListener =
r.removeEventListener =
function (e, t) {
this._eventRegistry = this._eventRegistry || {}
var n = this._eventRegistry[e]
if (!n) return
var r = n.indexOf(t)
r !== -1 && n.splice(r, 1)
}),
(r.removeAllListeners = function (e) {
e || (this._eventRegistry = this._defaultHandlers = undefined),
this._eventRegistry && (this._eventRegistry[e] = undefined),
this._defaultHandlers && (this._defaultHandlers[e] = undefined)
}),
(t.EventEmitter = r)
}),
ace.define('ace/anchor', [], function (e, t, n) {
'use strict'
var r = e('./lib/oop'),
i = e('./lib/event_emitter').EventEmitter,
s = (t.Anchor = function (e, t, n) {
;(this.$onChange = this.onChange.bind(this)),
this.attach(e),
typeof n == 'undefined' ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
})
;(function () {
function e(e, t, n) {
var r = n ? e.column <= t.column : e.column < t.column
return e.row < t.row || (e.row == t.row && r)
}
function t(t, n, r) {
var i = t.action == 'insert',
s = (i ? 1 : -1) * (t.end.row - t.start.row),
o = (i ? 1 : -1) * (t.end.column - t.start.column),
u = t.start,
a = i ? u : t.end
return e(n, u, r)
? { row: n.row, column: n.column }
: e(a, n, !r)
? { row: n.row + s, column: n.column + (n.row == a.row ? o : 0) }
: { row: u.row, column: u.column }
}
r.implement(this, i),
(this.getPosition = function () {
return this.$clipPositionToDocument(this.row, this.column)
}),
(this.getDocument = function () {
return this.document
}),
(this.$insertRight = !1),
(this.onChange = function (e) {
if (e.start.row == e.end.row && e.start.row != this.row) return
if (e.start.row > this.row) return
var n = t(e, { row: this.row, column: this.column }, this.$insertRight)
this.setPosition(n.row, n.column, !0)
}),
(this.setPosition = function (e, t, n) {
var r
n ? (r = { row: e, column: t }) : (r = this.$clipPositionToDocument(e, t))
if (this.row == r.row && this.column == r.column) return
var i = { row: this.row, column: this.column }
;(this.row = r.row),
(this.column = r.column),
this._signal('change', { old: i, value: r })
}),
(this.detach = function () {
this.document.off('change', this.$onChange)
}),
(this.attach = function (e) {
;(this.document = e || this.document), this.document.on('change', this.$onChange)
}),
(this.$clipPositionToDocument = function (e, t) {
var n = {}
return (
e >= this.document.getLength()
? ((n.row = Math.max(0, this.document.getLength() - 1)),
(n.column = this.document.getLine(n.row).length))
: e < 0
? ((n.row = 0), (n.column = 0))
: ((n.row = e),
(n.column = Math.min(this.document.getLine(n.row).length, Math.max(0, t)))),
t < 0 && (n.column = 0),
n
)
})
}).call(s.prototype)
}),
ace.define('ace/document', [], function (e, t, n) {
'use strict'
var r = e('./lib/oop'),
i = e('./apply_delta').applyDelta,
s = e('./lib/event_emitter').EventEmitter,
o = e('./range').Range,
u = e('./anchor').Anchor,
a = function (e) {
;(this.$lines = ['']),
e.length === 0
? (this.$lines = [''])
: Array.isArray(e)
? this.insertMergedLines({ row: 0, column: 0 }, e)
: this.insert({ row: 0, column: 0 }, e)
}
;(function () {
r.implement(this, s),
(this.setValue = function (e) {
var t = this.getLength() - 1
this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({ row: 0, column: 0 }, e)
}),
(this.getValue = function () {
return this.getAllLines().join(this.getNewLineCharacter())
}),
(this.createAnchor = function (e, t) {
return new u(this, e, t)
}),
'aaa'.split(/a/).length === 0
? (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) {
if (this.$newLineMode === e) return
;(this.$newLineMode = e), this._signal('changeNewLineMode')
}),
(this.getNewLineMode = function () {
return this.$newLineMode
}),
(this.isNewLine = function (e) {
return e == '\r\n' || e == '\r' || e == '\n'
}),
(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 n = t.length - 1
e.end.row - e.start.row == n && (t[n] = t[n].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 n = this.clippedPos(e.row, e.column),
r = this.pos(e.row, e.column + t.length)
return (
this.applyDelta({ start: n, end: r, action: 'insert', lines: [t] }, !0),
this.clonePos(r)
)
}),
(this.clippedPos = function (e, t) {
var n = this.getLength()
e === undefined ? (e = n) : e < 0 ? (e = 0) : e >= n && ((e = n - 1), (t = undefined))
var r = this.getLine(e)
return (
t == undefined && (t = r.length),
(t = Math.min(Math.max(t, 0), r.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 n = 0
e < this.getLength()
? ((t = t.concat([''])), (n = 0))
: ((t = [''].concat(t)), e--, (n = this.$lines[e].length)),
this.insertMergedLines({ row: e, column: n }, t)
}),
(this.insertMergedLines = function (e, t) {
var n = this.clippedPos(e.row, e.column),
r = {
row: n.row + t.length - 1,
column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length,
}
return this.applyDelta({ start: n, end: r, action: 'insert', lines: t }), this.clonePos(r)
}),
(this.remove = function (e) {
var t = this.clippedPos(e.start.row, e.start.column),
n = this.clippedPos(e.end.row, e.end.column)
return (
this.applyDelta({
start: t,
end: n,
action: 'remove',
lines: this.getLinesForRange({ start: t, end: n }),
}),
this.clonePos(t)
)
}),
(this.removeInLine = function (e, t, n) {
var r = this.clippedPos(e, t),
i = this.clippedPos(e, n)
return (
this.applyDelta(
{
start: r,
end: i,
action: 'remove',
lines: this.getLinesForRange({ start: r, end: i }),
},
!0
),
this.clonePos(r)
)
}),
(this.removeFullLines = function (e, t) {
;(e = Math.min(Math.max(0, e), this.getLength() - 1)),
(t = Math.min(Math.max(0, t), this.getLength() - 1))
var n = t == this.getLength() - 1 && e > 0,
r = t < this.getLength() - 1,
i = n ? e - 1 : e,
s = n ? this.getLine(i).length : 0,
u = r ? t + 1 : t,
a = r ? 0 : this.getLine(u).length,
f = new o(i, s, u, a),
l = this.$lines.slice(e, t + 1)
return (
this.applyDelta({
start: f.start,
end: f.end,
action: 'remove',
lines: this.getLinesForRange(f),
}),
l
)
}),
(this.removeNewLine = function (e) {
e < this.getLength() - 1 &&
e >= 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) {
e instanceof o || (e = o.fromPoints(e.start, e.end))
if (t.length === 0 && e.isEmpty()) return e.start
if (t == this.getTextRange(e)) return e.end
this.remove(e)
var n
return t ? (n = this.insert(e.start, t)) : (n = e.start), n
}),
(this.applyDeltas = function (e) {
for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
}),
(this.revertDeltas = function (e) {
for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
}),
(this.applyDelta = function (e, t) {
var n = e.action == 'insert'
if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return
n && e.lines.length > 2e4
? this.$splitAndapplyLargeDelta(e, 2e4)
: (i(this.$lines, e, t), this._signal('change', e))
}),
(this.$safeApplyDelta = function (e) {
var t = this.$lines.length
;((e.action == 'remove' && e.start.row < t && e.end.row < t) ||
(e.action == 'insert' && e.start.row <= t)) &&
this.applyDelta(e)
}),
(this.$splitAndapplyLargeDelta = function (e, t) {
var n = e.lines,
r = n.length - t + 1,
i = e.start.row,
s = e.start.column
for (var o = 0, u = 0; o < r; o = u) {
u += t - 1
var a = n.slice(o, u)
a.push(''),
this.applyDelta(
{
start: this.pos(i + o, s),
end: this.pos(i + u, (s = 0)),
action: e.action,
lines: a,
},
!0
)
}
;(e.lines = n.slice(o)),
(e.start.row = i + o),
(e.start.column = s),
this.applyDelta(e, !0)
}),
(this.revertDelta = function (e) {
this.$safeApplyDelta({
start: this.clonePos(e.start),
end: this.clonePos(e.end),
action: e.action == 'insert' ? 'remove' : 'insert',
lines: e.lines.slice(),
})
}),
(this.indexToPosition = function (e, t) {
var n = this.$lines || this.getAllLines(),
r = this.getNewLineCharacter().length
for (var i = t || 0, s = n.length; i < s; i++) {
e -= n[i].length + r
if (e < 0) return { row: i, column: e + n[i].length + r }
}
return { row: s - 1, column: e + n[s - 1].length + r }
}),
(this.positionToIndex = function (e, t) {
var n = this.$lines || this.getAllLines(),
r = this.getNewLineCharacter().length,
i = 0,
s = Math.min(e.row, n.length)
for (var o = t || 0; o < s; ++o) i += n[o].length + r
return i + e.column
})
}).call(a.prototype),
(t.Document = a)
}),
ace.define('ace/lib/lang', [], function (e, t, n) {
'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) {
var n = ''
while (t > 0) {
t & 1 && (n += e)
if ((t >>= 1)) e += e
}
return n
})
var r = /^\s\s*/,
i = /\s\s*$/
;(t.stringTrimLeft = function (e) {
return e.replace(r, '')
}),
(t.stringTrimRight = function (e) {
return e.replace(i, '')
}),
(t.copyObject = function (e) {
var t = {}
for (var n in e) t[n] = e[n]
return t
}),
(t.copyArray = function (e) {
var t = []
for (var n = 0, r = e.length; n < r; n++)
e[n] && typeof e[n] == 'object' ? (t[n] = this.copyObject(e[n])) : (t[n] = e[n])
return t
}),
(t.deepCopy = function s(e) {
if (typeof e != 'object' || !e) return e
var t
if (Array.isArray(e)) {
t = []
for (var n = 0; n < e.length; n++) t[n] = s(e[n])
return t
}
if (Object.prototype.toString.call(e) !== '[object Object]') return e
t = {}
for (var n in e) t[n] = s(e[n])
return t
}),
(t.arrayToMap = function (e) {
var t = {}
for (var n = 0; n < e.length; n++) t[e[n]] = 1
return t
}),
(t.createMap = function (e) {
var t = Object.create(null)
for (var n in e) t[n] = e[n]
return t
}),
(t.arrayRemove = function (e, t) {
for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
}),
(t.escapeRegExp = function (e) {
return e.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1')
}),
(t.escapeHTML = function (e) {
return ('' + e)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
}),
(t.getMatchOffsets = function (e, t) {
var n = []
return (
e.replace(t, function (e) {
n.push({ offset: arguments[arguments.length - 2], length: e.length })
}),
n
)
}),
(t.deferredCall = function (e) {
var t = null,
n = function () {
;(t = null), e()
},
r = function (e) {
return r.cancel(), (t = setTimeout(n, e || 0)), r
}
return (
(r.schedule = r),
(r.call = function () {
return this.cancel(), e(), r
}),
(r.cancel = function () {
return clearTimeout(t), (t = null), r
}),
(r.isPending = function () {
return t
}),
r
)
}),
(t.delayedCall = function (e, t) {
var n = null,
r = function () {
;(n = null), e()
},
i = function (e) {
n == null && (n = setTimeout(r, e || t))
}
return (
(i.delay = function (e) {
n && clearTimeout(n), (n = setTimeout(r, e || t))
}),
(i.schedule = i),
(i.call = function () {
this.cancel(), e()
}),
(i.cancel = function () {
n && clearTimeout(n), (n = null)
}),
(i.isPending = function () {
return n
}),
i
)
})
}),
ace.define('ace/worker/mirror', [], function (e, t, n) {
'use strict'
var r = e('../range').Range,
i = e('../document').Document,
s = e('../lib/lang'),
o = (t.Mirror = function (e) {
this.sender = e
var t = (this.doc = new i('')),
n = (this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this))),
r = this
e.on('change', function (e) {
var i = e.data
if (i[0].start) t.applyDeltas(i)
else
for (var s = 0; s < i.length; s += 2) {
if (Array.isArray(i[s + 1]))
var o = { action: 'insert', start: i[s], lines: i[s + 1] }
else var o = { action: 'remove', start: i[s], end: i[s + 1] }
t.applyDelta(o, !0)
}
if (r.$timeout) return n.schedule(r.$timeout)
r.onUpdate()
})
})
;(function () {
;(this.$timeout = 500),
(this.setTimeout = function (e) {
this.$timeout = e
}),
(this.setValue = function (e) {
this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
}),
(this.getValue = function (e) {
this.sender.callback(this.doc.getValue(), e)
}),
(this.onUpdate = function () {}),
(this.isPending = function () {
return this.deferredUpdate.isPending()
})
}).call(o.prototype)
}),
ace.define('ace/mode/json/json_parse', [], function (e, t, n) {
'use strict'
var r,
i,
s = { '"': '"', '\\': '\\', '/': '/', b: '\b', f: '\f', n: '\n', r: '\r', t: ' ' },
o,
u = function (e) {
throw { name: 'SyntaxError', message: e, at: r, text: o }
},
a = function (e) {
return (
e && e !== i && u("Expected '" + e + "' instead of '" + i + "'"),
(i = o.charAt(r)),
(r += 1),
i
)
},
f = function () {
var e,
t = ''
i === '-' && ((t = '-'), a('-'))
while (i >= '0' && i <= '9') (t += i), a()
if (i === '.') {
t += '.'
while (a() && i >= '0' && i <= '9') t += i
}
if (i === 'e' || i === 'E') {
;(t += i), a()
if (i === '-' || i === '+') (t += i), a()
while (i >= '0' && i <= '9') (t += i), a()
}
e = +t
if (!isNaN(e)) return e
u('Bad number')
},
l = function () {
var e,
t,
n = '',
r
if (i === '"')
while (a()) {
if (i === '"') return a(), n
if (i === '\\') {
a()
if (i === 'u') {
r = 0
for (t = 0; t < 4; t += 1) {
e = parseInt(a(), 16)
if (!isFinite(e)) break
r = r * 16 + e
}
n += String.fromCharCode(r)
} else {
if (typeof s[i] != 'string') break
n += s[i]
}
} else {
if (i == '\n' || i == '\r') break
n += i
}
}
u('Bad string')
},
c = function () {
while (i && i <= ' ') a()
},
h = function () {
switch (i) {
case 't':
return a('t'), a('r'), a('u'), a('e'), !0
case 'f':
return a('f'), a('a'), a('l'), a('s'), a('e'), !1
case 'n':
return a('n'), a('u'), a('l'), a('l'), null
}
u("Unexpected '" + i + "'")
},
p,
d = function () {
var e = []
if (i === '[') {
a('['), c()
if (i === ']') return a(']'), e
while (i) {
e.push(p()), c()
if (i === ']') return a(']'), e
a(','), c()
}
}
u('Bad array')
},
v = function () {
var e,
t = {}
if (i === '{') {
a('{'), c()
if (i === '}') return a('}'), t
while (i) {
;(e = l()),
c(),
a(':'),
Object.hasOwnProperty.call(t, e) && u('Duplicate key "' + e + '"'),
(t[e] = p()),
c()
if (i === '}') return a('}'), t
a(','), c()
}
}
u('Bad object')
}
return (
(p = function () {
c()
switch (i) {
case '{':
return v()
case '[':
return d()
case '"':
return l()
case '-':
return f()
default:
return i >= '0' && i <= '9' ? f() : h()
}
}),
function (e, t) {
var n
return (
(o = e),
(r = 0),
(i = ' '),
(n = p()),
c(),
i && u('Syntax error'),
typeof t == 'function'
? (function s(e, n) {
var r,
i,
o = e[n]
if (o && typeof o == 'object')
for (r in o)
Object.hasOwnProperty.call(o, r) &&
((i = s(o, r)), i !== undefined ? (o[r] = i) : delete o[r])
return t.call(e, n, o)
})({ '': n }, '')
: n
)
}
)
}),
ace.define('ace/mode/json_worker', [], function (e, t, n) {
'use strict'
var r = e('../lib/oop'),
i = e('../worker/mirror').Mirror,
s = e('./json/json_parse'),
o = (t.JsonWorker = function (e) {
i.call(this, e), this.setTimeout(200)
})
r.inherits(o, i),
function () {
this.onUpdate = function () {
var e = this.doc.getValue(),
t = []
try {
e && s(e)
} catch (n) {
var r = this.doc.indexToPosition(n.at - 1)
t.push({ row: r.row, column: r.column, text: n.message, type: 'error' })
}
this.sender.emit('annotate', t)
}
}.call(o.prototype)
})