@douyinfe/semi-json-viewer-core
Version:
432 lines (427 loc) • 338 kB
JavaScript
// src/common/dom.ts
function elt(tag, className, style) {
const el = document.createElement(tag);
el.className = className;
if (style) {
setStyles(el, style);
}
return el;
}
function setStyles(element, styles) {
for (const [key, value] of Object.entries(styles)) {
element.style[key] = value;
}
}
function getLineElement(node) {
return node.parentElement?.closest('[data-line-element="true"]') || null;
}
// src/tokens/tokenize.ts
import * as json from "jsonc-parser";
function createTokenizationSupport(supportComments) {
return {
getInitialState: () => new JSONState(null, null, false, null),
tokenize: (line, state) => tokenize(supportComments, line, state)
};
}
var TOKEN_DELIM_OBJECT = "semi-json-viewer-delimiter-bracket";
var TOKEN_DELIM_ARRAY = "semi-json-viewer-delimiter-array";
var TOKEN_DELIM_COLON = "semi-json-viewer-delimiter-colon";
var TOKEN_DELIM_COMMA = "semi-json-viewer-delimiter-comma";
var TOKEN_VALUE_BOOLEAN = "semi-json-viewer-keyword";
var TOKEN_VALUE_NULL = "semi-json-viewer-keyword";
var TOKEN_VALUE_STRING = "semi-json-viewer-string-value";
var TOKEN_VALUE_NUMBER = "semi-json-viewer-number";
var TOKEN_PROPERTY_NAME = "semi-json-viewer-string-key";
var TOKEN_COMMENT_BLOCK = "semi-json-viewer-comment-block";
var TOKEN_COMMENT_LINE = "semi-json-viewer-comment-line";
var ParentsStack = class _ParentsStack {
constructor(parent, type, depth) {
this.parent = parent;
this.type = type;
this.depth = depth;
}
static pop(parents) {
if (parents) {
return parents.parent;
}
return null;
}
static push(parents, type) {
return new _ParentsStack(parents, type, parents ? parents.depth + 1 : 0);
}
static equals(a, b) {
if (!a && !b) {
return true;
}
if (!a || !b) {
return false;
}
while (a && b) {
if (a.type !== b.type || a.depth !== b.depth) {
return false;
}
a = a.parent;
b = b.parent;
}
return a === null && b === null;
}
};
var JSONState = class _JSONState {
constructor(state, scanError, lastWasColon, parents) {
this._state = state;
this.scanError = scanError;
this.lastWasColon = lastWasColon;
this.parents = parents;
}
clone() {
return new _JSONState(this._state, this.scanError, this.lastWasColon, this.parents);
}
equals(other) {
if (other === this) {
return true;
}
if (!other || !(other instanceof _JSONState)) {
return false;
}
return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents);
}
getStateData() {
return this._state;
}
setStateData(state) {
this._state = state;
}
};
function tokenize(comments, line, state, offsetDelta = 0) {
let numberOfInsertedCharacters = 0;
let adjustOffset = false;
switch (state.scanError) {
case 2 /* UnexpectedEndOfString */:
line = '"' + line;
numberOfInsertedCharacters = 1;
break;
case 1 /* UnexpectedEndOfComment */:
line = "/*" + line;
numberOfInsertedCharacters = 2;
break;
}
const scanner = json.createScanner(line);
let lastWasColon = state.lastWasColon;
let parents = state.parents;
const ret = {
tokens: [],
endState: state.clone()
};
while (true) {
let offset = offsetDelta + scanner.getPosition();
let type = "";
const kind = scanner.scan();
if (kind === 17 /* EOF */) {
break;
}
if (offset === offsetDelta + scanner.getPosition()) {
throw new Error("Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3));
}
if (adjustOffset) {
offset -= numberOfInsertedCharacters;
}
adjustOffset = numberOfInsertedCharacters > 0;
switch (kind) {
case 1 /* OpenBraceToken */:
parents = ParentsStack.push(parents, 0 /* Object */);
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
lastWasColon = false;
break;
case 2 /* CloseBraceToken */:
type = `${TOKEN_DELIM_OBJECT}-${parents ? parents.depth % 3 : 0}`;
parents = ParentsStack.pop(parents);
lastWasColon = false;
break;
case 3 /* OpenBracketToken */:
parents = ParentsStack.push(parents, 1 /* Array */);
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
lastWasColon = false;
break;
case 4 /* CloseBracketToken */:
type = `${TOKEN_DELIM_ARRAY}-${parents ? parents.depth % 3 : 0}`;
parents = ParentsStack.pop(parents);
lastWasColon = false;
break;
case 6 /* ColonToken */:
type = TOKEN_DELIM_COLON;
lastWasColon = true;
break;
case 5 /* CommaToken */:
type = TOKEN_DELIM_COMMA;
lastWasColon = false;
break;
case 8 /* TrueKeyword */:
case 9 /* FalseKeyword */:
type = TOKEN_VALUE_BOOLEAN;
lastWasColon = false;
break;
case 7 /* NullKeyword */:
type = TOKEN_VALUE_NULL;
lastWasColon = false;
break;
case 10 /* StringLiteral */:
const currentParent = parents ? parents.type : 0 /* Object */;
const inArray = currentParent === 1 /* Array */;
type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME;
lastWasColon = false;
break;
case 11 /* NumericLiteral */:
type = TOKEN_VALUE_NUMBER;
lastWasColon = false;
break;
}
if (comments) {
switch (kind) {
case 12 /* LineCommentTrivia */:
type = TOKEN_COMMENT_LINE;
break;
case 13 /* BlockCommentTrivia */:
type = TOKEN_COMMENT_BLOCK;
break;
}
}
ret.endState = new JSONState(
state.getStateData(),
scanner.getTokenError(),
lastWasColon,
parents
);
ret.tokens.push({
startIndex: offset,
scopes: type
});
}
return ret;
}
// src/common/nameSpace.ts
var currentNameSpaceId = "default";
function setCurrentNameSpaceId(id) {
currentNameSpaceId = id;
}
function getCurrentNameSpaceId() {
return currentNameSpaceId;
}
// src/common/emitter.ts
var emitterMap = /* @__PURE__ */ new Map();
var Emitter = class {
constructor() {
this.listeners = {};
}
on(event, listener) {
if (!this.listeners[event]) {
this.listeners[event] = [];
}
this.listeners[event]?.push(listener);
}
off(event, listener) {
if (!this.listeners[event]) return;
this.listeners[event] = this.listeners[event]?.filter((l) => l !== listener);
}
dispose() {
this.listeners = {};
}
removeAllListeners() {
this.listeners = {};
}
emit(event, data) {
if (!this.listeners[event]) return;
for (const listener of this.listeners[event]) {
listener(data);
}
}
};
var getEmitter = () => {
const currentNameSpaceId2 = getCurrentNameSpaceId();
if (!currentNameSpaceId2) {
throw new Error("currentNameSpaceId is not set");
}
let emitter = emitterMap.get(currentNameSpaceId2);
if (!emitter) {
emitter = new Emitter();
emitterMap.set(currentNameSpaceId2, emitter);
}
return emitter;
};
var disposeEmitter = (id) => {
const emitter = emitterMap.get(id);
if (emitter) {
emitter.dispose();
emitterMap.delete(id);
}
};
// src/model/selectionModel.ts
var SelectionModel = class {
constructor(row, col, view, jsonModel) {
this.isSelectedAll = false;
this._row = row;
this._col = col;
this._view = view;
this.startRow = row;
this.startCol = col;
this.endRow = row;
this.endCol = col;
this.isCollapsed = true;
this._jsonModel = jsonModel;
}
updateSelection(row, col) {
this._row = row;
this._col = col;
}
getSelection() {
return {
row: this._row,
col: this._col
};
}
getPosition() {
return {
lineNumber: this._row,
column: this._col
};
}
updateFromSelection() {
const selection = window.getSelection();
if (!selection || selection.rangeCount === 0) return;
const range = selection.getRangeAt(0);
this.isCollapsed = range.collapsed;
const startContainer = range.startContainer;
const endContainer = range.endContainer;
let { row: row1, col: col1 } = this.convertRangeToModelPosition(startContainer, selection, true);
let { row: row2, col: col2 } = this.convertRangeToModelPosition(endContainer, selection, false);
if (row1 > row2) {
[row1, row2] = [row2, row1];
[col1, col2] = [col2, col1];
} else if (row1 === row2 && col1 > col2) {
[col1, col2] = [col2, col1];
}
this._row = row1;
this._col = col1;
this.startRow = row1;
this.startCol = col1;
this.endRow = row2;
this.endCol = col2;
this._jsonModel.lastChangeBufferPos = {
lineNumber: this._row,
column: this._col
};
}
toViewPosition() {
const selection = window.getSelection();
if (!selection) return;
const range = new Range();
if (this.isSelectedAll) {
range.setStartBefore(this._view.scrollDom.firstChild);
range.setEndAfter(this._view.scrollDom.lastChild);
selection.removeAllRanges();
selection.addRange(range);
return;
}
const row = this._jsonModel.lastChangeBufferPos.lineNumber;
const col = this._jsonModel.lastChangeBufferPos.column - 1;
const lineElement = this._view.getLineElement(row);
if (!lineElement) return;
if (col === 0) {
range.setStart(lineElement, 0);
range.setEnd(lineElement, 0);
} else {
const walker = document.createTreeWalker(
lineElement,
NodeFilter.SHOW_TEXT,
null
);
let node = walker.nextNode();
let currentOffset = 0;
while (node) {
const nodeLength = node.length;
if (currentOffset + nodeLength >= col) {
range.setStart(node, col - currentOffset);
range.setEnd(node, col - currentOffset);
break;
}
currentOffset += nodeLength;
node = walker.nextNode();
}
}
selection.removeAllRanges();
selection.addRange(range);
}
toLastPosition() {
this.isCollapsed = true;
this.isSelectedAll = false;
const lineCount = this._jsonModel.getLineCount();
const lineLength = this._jsonModel.getLineLength(lineCount);
this._row = lineCount;
this._col = lineLength + 1;
this.startRow = lineCount;
this.startCol = lineLength + 1;
this.endRow = lineCount;
this.endCol = lineLength + 1;
this._jsonModel.lastChangeBufferPos = {
lineNumber: lineCount,
column: lineLength + 1
};
this.toViewPosition();
}
convertRangeToModelPosition(node, selection, isStart) {
let row = 1;
let col = 0;
if (!node) return { row, col };
let lineElement;
if (node instanceof HTMLElement) {
lineElement = node.closest(".semi-json-viewer-view-line");
} else {
lineElement = getLineElement(node);
if (!lineElement) return { row, col };
const walker = document.createTreeWalker(
lineElement,
NodeFilter.SHOW_TEXT,
null
);
let currentNode = walker.nextNode();
let totalOffset = 0;
while (currentNode) {
if (currentNode === node) {
totalOffset += isStart ? selection.anchorOffset : selection.focusOffset;
break;
}
if (currentNode.parentNode === node.parentNode) {
if (currentNode === node) {
totalOffset += isStart ? selection.anchorOffset : selection.focusOffset;
break;
}
}
totalOffset += currentNode.length;
currentNode = walker.nextNode();
}
col = totalOffset;
}
row = lineElement.lineNumber || 1;
return { row, col: col + 1 };
}
savePreviousSelection() {
this.preStartRow = this.startRow;
this.preStartCol = this.startCol;
this.preEndRow = this.endRow;
this.preEndCol = this.endCol;
}
restorePreviousSelection() {
this.startRow = this.preStartRow;
this.startCol = this.preStartCol;
this.endRow = this.preEndRow;
this.endCol = this.preEndCol;
this._jsonModel.lastChangeBufferPos = {
lineNumber: this.startRow,
column: this.startCol
};
}
};
// src/worker/jsonWorkerManager.ts
var workerManagerMap = /* @__PURE__ */ new Map();
var JsonWorkerManager = class {
constructor() {
const workerRaw = decodeURIComponent(`(()%3D%3E%7Bfunction%20%24(r%2Ce%3D!1)%7Blet%20t%3Dr.length%2Cn%3D0%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Ca%3D0%2Cl%3D0%2Cf%3D0%2Cu%3D0%2Cc%3D0%3Bfunction%20d(N%2C_)%7Blet%20g%3D0%2Ch%3D0%3Bfor(%3Bg%3CN%7C%7C!_%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3E%3D48%26%26p%3C%3D57)h%3Dh*16%2Bp-48%3Belse%20if(p%3E%3D65%26%26p%3C%3D70)h%3Dh*16%2Bp-65%2B10%3Belse%20if(p%3E%3D97%26%26p%3C%3D102)h%3Dh*16%2Bp-97%2B10%3Belse%20break%3Bn%2B%2B%2Cg%2B%2B%7Dreturn%20g%3CN%26%26(h%3D-1)%2Ch%7Dfunction%20b(N)%7Bn%3DN%2Ci%3D%22%22%2Cs%3D0%2Co%3D16%2Cc%3D0%7Dfunction%20k()%7Blet%20N%3Dn%3Bif(r.charCodeAt(n)%3D%3D%3D48)n%2B%2B%3Belse%20for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Bif(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D46)if(n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))for(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3Belse%20return%20c%3D3%2Cr.substring(N%2Cn)%3Blet%20_%3Dn%3Bif(n%3Cr.length%26%26(r.charCodeAt(n)%3D%3D%3D69%7C%7Cr.charCodeAt(n)%3D%3D%3D101))if(n%2B%2B%2C(n%3Cr.length%26%26r.charCodeAt(n)%3D%3D%3D43%7C%7Cr.charCodeAt(n)%3D%3D%3D45)%26%26n%2B%2B%2Cn%3Cr.length%26%26U(r.charCodeAt(n)))%7Bfor(n%2B%2B%3Bn%3Cr.length%26%26U(r.charCodeAt(n))%3B)n%2B%2B%3B_%3Dn%7Delse%20c%3D3%3Breturn%20r.substring(N%2C_)%7Dfunction%20L()%7Blet%20N%3D%22%22%2C_%3Dn%3Bfor(%3B%3B)%7Bif(n%3E%3Dt)%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Dlet%20g%3Dr.charCodeAt(n)%3Bif(g%3D%3D%3D34)%7BN%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%3Bbreak%7Dif(g%3D%3D%3D92)%7Bif(N%2B%3Dr.substring(_%2Cn)%2Cn%2B%2B%2Cn%3E%3Dt)%7Bc%3D2%3Bbreak%7Dswitch(r.charCodeAt(n%2B%2B))%7Bcase%2034%3AN%2B%3D'%22'%3Bbreak%3Bcase%2092%3AN%2B%3D%22%5C%5C%22%3Bbreak%3Bcase%2047%3AN%2B%3D%22%2F%22%3Bbreak%3Bcase%2098%3AN%2B%3D%22%5Cb%22%3Bbreak%3Bcase%20102%3AN%2B%3D%22%5Cf%22%3Bbreak%3Bcase%20110%3AN%2B%3D%60%0A%60%3Bbreak%3Bcase%20114%3AN%2B%3D%22%5Cr%22%3Bbreak%3Bcase%20116%3AN%2B%3D%22%09%22%3Bbreak%3Bcase%20117%3Alet%20p%3Dd(4%2C!0)%3Bp%3E%3D0%3FN%2B%3DString.fromCharCode(p)%3Ac%3D4%3Bbreak%3Bdefault%3Ac%3D5%7D_%3Dn%3Bcontinue%7Dif(g%3E%3D0%26%26g%3C%3D31)if(q(g))%7BN%2B%3Dr.substring(_%2Cn)%2Cc%3D2%3Bbreak%7Delse%20c%3D6%3Bn%2B%2B%7Dreturn%20N%7Dfunction%20S()%7Bif(i%3D%22%22%2Cc%3D0%2Cs%3Dn%2Cl%3Da%2Cu%3Df%2Cn%3E%3Dt)return%20s%3Dt%2Co%3D17%3Blet%20N%3Dr.charCodeAt(n)%3Bif(Le(N))%7Bdo%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3Dr.charCodeAt(n)%3Bwhile(Le(N))%3Breturn%20o%3D15%7Dif(q(N))return%20n%2B%2B%2Ci%2B%3DString.fromCharCode(N)%2CN%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26(n%2B%2B%2Ci%2B%3D%60%0A%60)%2Ca%2B%2B%2Cf%3Dn%2Co%3D14%3Bswitch(N)%7Bcase%20123%3Areturn%20n%2B%2B%2Co%3D1%3Bcase%20125%3Areturn%20n%2B%2B%2Co%3D2%3Bcase%2091%3Areturn%20n%2B%2B%2Co%3D3%3Bcase%2093%3Areturn%20n%2B%2B%2Co%3D4%3Bcase%2058%3Areturn%20n%2B%2B%2Co%3D6%3Bcase%2044%3Areturn%20n%2B%2B%2Co%3D5%3Bcase%2034%3Areturn%20n%2B%2B%2Ci%3DL()%2Co%3D10%3Bcase%2047%3Alet%20_%3Dn-1%3Bif(r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bfor(n%2B%3D2%3Bn%3Ct%26%26!q(r.charCodeAt(n))%3B)n%2B%2B%3Breturn%20i%3Dr.substring(_%2Cn)%2Co%3D12%7Dif(r.charCodeAt(n%2B1)%3D%3D%3D42)%7Bn%2B%3D2%3Blet%20g%3Dt-1%2Ch%3D!1%3Bfor(%3Bn%3Cg%3B)%7Blet%20p%3Dr.charCodeAt(n)%3Bif(p%3D%3D%3D42%26%26r.charCodeAt(n%2B1)%3D%3D%3D47)%7Bn%2B%3D2%2Ch%3D!0%3Bbreak%7Dn%2B%2B%2Cq(p)%26%26(p%3D%3D%3D13%26%26r.charCodeAt(n)%3D%3D%3D10%26%26n%2B%2B%2Ca%2B%2B%2Cf%3Dn)%7Dreturn%20h%7C%7C(n%2B%2B%2Cc%3D1)%2Ci%3Dr.substring(_%2Cn)%2Co%3D13%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%3Bcase%2045%3Aif(i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Cn%3D%3D%3Dt%7C%7C!U(r.charCodeAt(n)))return%20o%3D16%3Bcase%2048%3Acase%2049%3Acase%2050%3Acase%2051%3Acase%2052%3Acase%2053%3Acase%2054%3Acase%2055%3Acase%2056%3Acase%2057%3Areturn%20i%2B%3Dk()%2Co%3D11%3Bdefault%3Afor(%3Bn%3Ct%26%26w(N)%3B)n%2B%2B%2CN%3Dr.charCodeAt(n)%3Bif(s!%3D%3Dn)%7Bswitch(i%3Dr.substring(s%2Cn)%2Ci)%7Bcase%22true%22%3Areturn%20o%3D8%3Bcase%22false%22%3Areturn%20o%3D9%3Bcase%22null%22%3Areturn%20o%3D7%7Dreturn%20o%3D16%7Dreturn%20i%2B%3DString.fromCharCode(N)%2Cn%2B%2B%2Co%3D16%7D%7Dfunction%20w(N)%7Bif(Le(N)%7C%7Cq(N))return!1%3Bswitch(N)%7Bcase%20125%3Acase%2093%3Acase%20123%3Acase%2091%3Acase%2034%3Acase%2058%3Acase%2044%3Acase%2047%3Areturn!1%7Dreturn!0%7Dfunction%20I()%7Blet%20N%3Bdo%20N%3DS()%3Bwhile(N%3E%3D12%26%26N%3C%3D15)%3Breturn%20N%7Dreturn%7BsetPosition%3Ab%2CgetPosition%3A()%3D%3En%2Cscan%3Ae%3FI%3AS%2CgetToken%3A()%3D%3Eo%2CgetTokenValue%3A()%3D%3Ei%2CgetTokenOffset%3A()%3D%3Es%2CgetTokenLength%3A()%3D%3En-s%2CgetTokenStartLine%3A()%3D%3El%2CgetTokenStartCharacter%3A()%3D%3Es-u%2CgetTokenError%3A()%3D%3Ec%7D%7Dfunction%20Le(r)%7Breturn%20r%3D%3D%3D32%7C%7Cr%3D%3D%3D9%7Dfunction%20q(r)%7Breturn%20r%3D%3D%3D10%7C%7Cr%3D%3D%3D13%7Dfunction%20U(r)%7Breturn%20r%3E%3D48%26%26r%3C%3D57%7Dvar%20Qe%3B(function(r)%7Br%5Br.lineFeed%3D10%5D%3D%22lineFeed%22%2Cr%5Br.carriageReturn%3D13%5D%3D%22carriageReturn%22%2Cr%5Br.space%3D32%5D%3D%22space%22%2Cr%5Br._0%3D48%5D%3D%22_0%22%2Cr%5Br._1%3D49%5D%3D%22_1%22%2Cr%5Br._2%3D50%5D%3D%22_2%22%2Cr%5Br._3%3D51%5D%3D%22_3%22%2Cr%5Br._4%3D52%5D%3D%22_4%22%2Cr%5Br._5%3D53%5D%3D%22_5%22%2Cr%5Br._6%3D54%5D%3D%22_6%22%2Cr%5Br._7%3D55%5D%3D%22_7%22%2Cr%5Br._8%3D56%5D%3D%22_8%22%2Cr%5Br._9%3D57%5D%3D%22_9%22%2Cr%5Br.a%3D97%5D%3D%22a%22%2Cr%5Br.b%3D98%5D%3D%22b%22%2Cr%5Br.c%3D99%5D%3D%22c%22%2Cr%5Br.d%3D100%5D%3D%22d%22%2Cr%5Br.e%3D101%5D%3D%22e%22%2Cr%5Br.f%3D102%5D%3D%22f%22%2Cr%5Br.g%3D103%5D%3D%22g%22%2Cr%5Br.h%3D104%5D%3D%22h%22%2Cr%5Br.i%3D105%5D%3D%22i%22%2Cr%5Br.j%3D106%5D%3D%22j%22%2Cr%5Br.k%3D107%5D%3D%22k%22%2Cr%5Br.l%3D108%5D%3D%22l%22%2Cr%5Br.m%3D109%5D%3D%22m%22%2Cr%5Br.n%3D110%5D%3D%22n%22%2Cr%5Br.o%3D111%5D%3D%22o%22%2Cr%5Br.p%3D112%5D%3D%22p%22%2Cr%5Br.q%3D113%5D%3D%22q%22%2Cr%5Br.r%3D114%5D%3D%22r%22%2Cr%5Br.s%3D115%5D%3D%22s%22%2Cr%5Br.t%3D116%5D%3D%22t%22%2Cr%5Br.u%3D117%5D%3D%22u%22%2Cr%5Br.v%3D118%5D%3D%22v%22%2Cr%5Br.w%3D119%5D%3D%22w%22%2Cr%5Br.x%3D120%5D%3D%22x%22%2Cr%5Br.y%3D121%5D%3D%22y%22%2Cr%5Br.z%3D122%5D%3D%22z%22%2Cr%5Br.A%3D65%5D%3D%22A%22%2Cr%5Br.B%3D66%5D%3D%22B%22%2Cr%5Br.C%3D67%5D%3D%22C%22%2Cr%5Br.D%3D68%5D%3D%22D%22%2Cr%5Br.E%3D69%5D%3D%22E%22%2Cr%5Br.F%3D70%5D%3D%22F%22%2Cr%5Br.G%3D71%5D%3D%22G%22%2Cr%5Br.H%3D72%5D%3D%22H%22%2Cr%5Br.I%3D73%5D%3D%22I%22%2Cr%5Br.J%3D74%5D%3D%22J%22%2Cr%5Br.K%3D75%5D%3D%22K%22%2Cr%5Br.L%3D76%5D%3D%22L%22%2Cr%5Br.M%3D77%5D%3D%22M%22%2Cr%5Br.N%3D78%5D%3D%22N%22%2Cr%5Br.O%3D79%5D%3D%22O%22%2Cr%5Br.P%3D80%5D%3D%22P%22%2Cr%5Br.Q%3D81%5D%3D%22Q%22%2Cr%5Br.R%3D82%5D%3D%22R%22%2Cr%5Br.S%3D83%5D%3D%22S%22%2Cr%5Br.T%3D84%5D%3D%22T%22%2Cr%5Br.U%3D85%5D%3D%22U%22%2Cr%5Br.V%3D86%5D%3D%22V%22%2Cr%5Br.W%3D87%5D%3D%22W%22%2Cr%5Br.X%3D88%5D%3D%22X%22%2Cr%5Br.Y%3D89%5D%3D%22Y%22%2Cr%5Br.Z%3D90%5D%3D%22Z%22%2Cr%5Br.asterisk%3D42%5D%3D%22asterisk%22%2Cr%5Br.backslash%3D92%5D%3D%22backslash%22%2Cr%5Br.closeBrace%3D125%5D%3D%22closeBrace%22%2Cr%5Br.closeBracket%3D93%5D%3D%22closeBracket%22%2Cr%5Br.colon%3D58%5D%3D%22colon%22%2Cr%5Br.comma%3D44%5D%3D%22comma%22%2Cr%5Br.dot%3D46%5D%3D%22dot%22%2Cr%5Br.doubleQuote%3D34%5D%3D%22doubleQuote%22%2Cr%5Br.minus%3D45%5D%3D%22minus%22%2Cr%5Br.openBrace%3D123%5D%3D%22openBrace%22%2Cr%5Br.openBracket%3D91%5D%3D%22openBracket%22%2Cr%5Br.plus%3D43%5D%3D%22plus%22%2Cr%5Br.slash%3D47%5D%3D%22slash%22%2Cr%5Br.formFeed%3D12%5D%3D%22formFeed%22%2Cr%5Br.tab%3D9%5D%3D%22tab%22%7D)(Qe%7C%7C(Qe%3D%7B%7D))%3Bvar%20O%3Dnew%20Array(20).fill(0).map((r%2Ce)%3D%3E%22%20%22.repeat(e))%2CJ%3D200%2CSe%3D%7B%22%20%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%20%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%20%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%20%22.repeat(e))%7D%2C%22%09%22%3A%7B%22%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%0A%60%2B%22%09%22.repeat(e))%2C%22%5Cr%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%22%5Cr%22%2B%22%09%22.repeat(e))%2C%22%5Cr%5Cn%22%3Anew%20Array(J).fill(0).map((r%2Ce)%3D%3E%60%5Cr%0A%60%2B%22%09%22.repeat(e))%7D%7D%2CYe%3D%5B%60%0A%60%2C%22%5Cr%22%2C%60%5Cr%0A%60%5D%3Bfunction%20we(r%2Ce%2Ct)%7Blet%20n%2Ci%2Cs%2Co%2Ca%3Bif(e)%7Bfor(o%3De.offset%2Ca%3Do%2Be.length%2Cs%3Do%3Bs%3E0%26%26!ye(r%2Cs-1)%3B)s--%3Blet%20g%3Da%3Bfor(%3Bg%3Cr.length%26%26!ye(r%2Cg)%3B)g%2B%2B%3Bi%3Dr.substring(s%2Cg)%2Cn%3Dkt(i%2Ct)%7Delse%20i%3Dr%2Cn%3D0%2Cs%3D0%2Co%3D0%2Ca%3Dr.length%3Blet%20l%3DLt(t%2Cr)%2Cf%3DYe.includes(l)%2Cu%3D0%2Cc%3D0%2Cd%3Bt.insertSpaces%3Fd%3DO%5Bt.tabSize%7C%7C4%5D%3F%3Fz(O%5B1%5D%2Ct.tabSize%7C%7C4)%3Ad%3D%22%09%22%3Blet%20b%3Dd%3D%3D%3D%22%09%22%3F%22%09%22%3A%22%20%22%2Ck%3D%24(i%2C!1)%2CL%3D!1%3Bfunction%20S()%7Bif(u%3E1)return%20z(l%2Cu)%2Bz(d%2Cn%2Bc)%3Blet%20g%3Dd.length*(n%2Bc)%3Breturn!f%7C%7Cg%3ESe%5Bb%5D%5Bl%5D.length%3Fl%2Bz(d%2Cn%2Bc)%3Ag%3C%3D0%3Fl%3ASe%5Bb%5D%5Bl%5D%5Bg%5D%7Dfunction%20w()%7Blet%20g%3Dk.scan()%3Bfor(u%3D0%3Bg%3D%3D%3D15%7C%7Cg%3D%3D%3D14%3B)g%3D%3D%3D14%26%26t.keepLines%3Fu%2B%3D1%3Ag%3D%3D%3D14%26%26(u%3D1)%2Cg%3Dk.scan()%3Breturn%20L%3Dg%3D%3D%3D16%7C%7Ck.getTokenError()!%3D%3D0%2Cg%7Dlet%20I%3D%5B%5D%3Bfunction%20N(g%2Ch%2Cp)%7B!L%26%26(!e%7C%7Ch%3Ca%26%26p%3Eo)%26%26r.substring(h%2Cp)!%3D%3Dg%26%26I.push(%7Boffset%3Ah%2Clength%3Ap-h%2Ccontent%3Ag%7D)%7Dlet%20_%3Dw()%3Bif(t.keepLines%26%26u%3E0%26%26N(z(l%2Cu)%2C0%2C0)%2C_!%3D%3D17)%7Blet%20g%3Dk.getTokenOffset()%2Bs%2Ch%3Dd.length*n%3C20%26%26t.insertSpaces%3FO%5Bd.length*n%5D%3Az(d%2Cn)%3BN(h%2Cs%2Cg)%7Dfor(%3B_!%3D%3D17%3B)%7Blet%20g%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Ch%3Dw()%2Cp%3D%22%22%2Cy%3D!1%3Bfor(%3Bu%3D%3D%3D0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%3B)%7Blet%20D%3Dk.getTokenOffset()%2Bs%3BN(O%5B1%5D%2Cg%2CD)%2Cg%3Dk.getTokenOffset()%2Bk.getTokenLength()%2Bs%2Cy%3Dh%3D%3D%3D12%2Cp%3Dy%3FS()%3A%22%22%2Ch%3Dw()%7Dif(h%3D%3D%3D2)_!%3D%3D1%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D1%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%20if(h%3D%3D%3D4)_!%3D%3D3%26%26c--%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%26%26_!%3D%3D3%3Fp%3DS()%3At.keepLines%26%26(p%3DO%5B1%5D)%3Belse%7Bswitch(_)%7Bcase%203%3Acase%201%3Ac%2B%2B%2Ct.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%205%3At.keepLines%26%26u%3E0%7C%7C!t.keepLines%3Fp%3DS()%3Ap%3DO%5B1%5D%3Bbreak%3Bcase%2012%3Ap%3DS()%3Bbreak%3Bcase%2013%3Au%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%206%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ay%7C%7C(p%3DO%5B1%5D)%3Bbreak%3Bcase%2010%3At.keepLines%26%26u%3E0%3Fp%3DS()%3Ah%3D%3D%3D6%26%26!y%26%26(p%3D%22%22)%3Bbreak%3Bcase%207%3Acase%208%3Acase%209%3Acase%2011%3Acase%202%3Acase%204%3At.keepLines%26%26u%3E0%3Fp%3DS()%3A(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26!y%3Fp%3DO%5B1%5D%3Ah!%3D%3D5%26%26h!%3D%3D17%26%26(L%3D!0)%3Bbreak%3Bcase%2016%3AL%3D!0%3Bbreak%7Du%3E0%26%26(h%3D%3D%3D12%7C%7Ch%3D%3D%3D13)%26%26(p%3DS())%7Dh%3D%3D%3D17%26%26(t.keepLines%26%26u%3E0%3Fp%3DS()%3Ap%3Dt.insertFinalNewline%3Fl%3A%22%22)%3Blet%20x%3Dk.getTokenOffset()%2Bs%3BN(p%2Cg%2Cx)%2C_%3Dh%7Dreturn%20I%7Dfunction%20z(r%2Ce)%7Blet%20t%3D%22%22%3Bfor(let%20n%3D0%3Bn%3Ce%3Bn%2B%2B)t%2B%3Dr%3Breturn%20t%7Dfunction%20kt(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%2Ci%3De.tabSize%7C%7C4%3Bfor(%3Bt%3Cr.length%3B)%7Blet%20s%3Dr.charAt(t)%3Bif(s%3D%3D%3DO%5B1%5D)n%2B%2B%3Belse%20if(s%3D%3D%3D%22%09%22)n%2B%3Di%3Belse%20break%3Bt%2B%2B%7Dreturn%20Math.floor(n%2Fi)%7Dfunction%20Lt(r%2Ce)%7Bfor(let%20t%3D0%3Bt%3Ce.length%3Bt%2B%2B)%7Blet%20n%3De.charAt(t)%3Bif(n%3D%3D%3D%22%5Cr%22)return%20t%2B1%3Ce.length%26%26e.charAt(t%2B1)%3D%3D%3D%60%0A%60%3F%60%5Cr%0A%60%3A%22%5Cr%22%3Bif(n%3D%3D%3D%60%0A%60)return%60%0A%60%7Dreturn%20r%26%26r.eol%7C%7C%60%0A%60%7Dfunction%20ye(r%2Ce)%7Breturn%60%5Cr%0A%60.indexOf(r.charAt(e))!%3D%3D-1%7Dvar%20et%3B(function(r)%7Br.DEFAULT%3D%7BallowTrailingComma%3A!1%7D%7D)(et%7C%7C(et%3D%7B%7D))%3Bfunction%20yt(r%2Ce%2Ct%3D!1)%7Breturn%20e%3E%3Dr.offset%26%26e%3Cr.offset%2Br.length%7C%7Ct%26%26e%3D%3D%3Dr.offset%2Br.length%7Dfunction%20ve(r%2Ce%2Ct%3D!1)%7Bif(yt(r%2Ce%2Ct))%7Blet%20n%3Dr.children%3Bif(Array.isArray(n))for(let%20i%3D0%3Bi%3Cn.length%26%26n%5Bi%5D.offset%3C%3De%3Bi%2B%2B)%7Blet%20s%3Dve(n%5Bi%5D%2Ce%2Ct)%3Bif(s)return%20s%7Dreturn%20r%7D%7Dvar%20se%3D%24%2CB%3B(function(r)%7Br%5Br.None%3D0%5D%3D%22None%22%2Cr%5Br.UnexpectedEndOfComment%3D1%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D2%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D3%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D4%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D5%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D6%5D%3D%22InvalidCharacter%22%7D)(B%7C%7C(B%3D%7B%7D))%3Bvar%20T%3B(function(r)%7Br%5Br.OpenBraceToken%3D1%5D%3D%22OpenBraceToken%22%2Cr%5Br.CloseBraceToken%3D2%5D%3D%22CloseBraceToken%22%2Cr%5Br.OpenBracketToken%3D3%5D%3D%22OpenBracketToken%22%2Cr%5Br.CloseBracketToken%3D4%5D%3D%22CloseBracketToken%22%2Cr%5Br.CommaToken%3D5%5D%3D%22CommaToken%22%2Cr%5Br.ColonToken%3D6%5D%3D%22ColonToken%22%2Cr%5Br.NullKeyword%3D7%5D%3D%22NullKeyword%22%2Cr%5Br.TrueKeyword%3D8%5D%3D%22TrueKeyword%22%2Cr%5Br.FalseKeyword%3D9%5D%3D%22FalseKeyword%22%2Cr%5Br.StringLiteral%3D10%5D%3D%22StringLiteral%22%2Cr%5Br.NumericLiteral%3D11%5D%3D%22NumericLiteral%22%2Cr%5Br.LineCommentTrivia%3D12%5D%3D%22LineCommentTrivia%22%2Cr%5Br.BlockCommentTrivia%3D13%5D%3D%22BlockCommentTrivia%22%2Cr%5Br.LineBreakTrivia%3D14%5D%3D%22LineBreakTrivia%22%2Cr%5Br.Trivia%3D15%5D%3D%22Trivia%22%2Cr%5Br.Unknown%3D16%5D%3D%22Unknown%22%2Cr%5Br.EOF%3D17%5D%3D%22EOF%22%7D)(T%7C%7C(T%3D%7B%7D))%3Bvar%20nt%3Dve%3Bvar%20tt%3B(function(r)%7Br%5Br.InvalidSymbol%3D1%5D%3D%22InvalidSymbol%22%2Cr%5Br.InvalidNumberFormat%3D2%5D%3D%22InvalidNumberFormat%22%2Cr%5Br.PropertyNameExpected%3D3%5D%3D%22PropertyNameExpected%22%2Cr%5Br.ValueExpected%3D4%5D%3D%22ValueExpected%22%2Cr%5Br.ColonExpected%3D5%5D%3D%22ColonExpected%22%2Cr%5Br.CommaExpected%3D6%5D%3D%22CommaExpected%22%2Cr%5Br.CloseBraceExpected%3D7%5D%3D%22CloseBraceExpected%22%2Cr%5Br.CloseBracketExpected%3D8%5D%3D%22CloseBracketExpected%22%2Cr%5Br.EndOfFileExpected%3D9%5D%3D%22EndOfFileExpected%22%2Cr%5Br.InvalidCommentToken%3D10%5D%3D%22InvalidCommentToken%22%2Cr%5Br.UnexpectedEndOfComment%3D11%5D%3D%22UnexpectedEndOfComment%22%2Cr%5Br.UnexpectedEndOfString%3D12%5D%3D%22UnexpectedEndOfString%22%2Cr%5Br.UnexpectedEndOfNumber%3D13%5D%3D%22UnexpectedEndOfNumber%22%2Cr%5Br.InvalidUnicode%3D14%5D%3D%22InvalidUnicode%22%2Cr%5Br.InvalidEscapeCharacter%3D15%5D%3D%22InvalidEscapeCharacter%22%2Cr%5Br.InvalidCharacter%3D16%5D%3D%22InvalidCharacter%22%7D)(tt%7C%7C(tt%3D%7B%7D))%3Bfunction%20rt(r%2Ce%2Ct)%7Breturn%20we(r%2Ce%2Ct)%7Dvar%20oe%3Dclass%20r%7Bconstructor(e%2Ct%2Cn)%7Bthis.message%3De%2Cthis.code%3Dt%2Cthis.range%3Dn%7Dstatic%20create(e%2Ct%2Cn)%7Breturn%20new%20r(e%2Ct%2Cn)%7D%7D%2Cle%3Dclass%20r%7Bconstructor(e%2Ct)%7Bthis.start%3De%2Cthis.end%3Dt%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e%2Ct)%7D%7D%2CBt%3B(x%3D%3E(x.Text%3D1%2Cx.Method%3D2%2Cx.Function%3D3%2Cx.Constructor%3D4%2Cx.Field%3D5%2Cx.Variable%3D6%2Cx.Class%3D7%2Cx.Interface%3D8%2Cx.Module%3D9%2Cx.Property%3D10%2Cx.Unit%3D11%2Cx.Value%3D12%2Cx.Enum%3D13%2Cx.Keyword%3D14%2Cx.Snippet%3D15%2Cx.Color%3D16%2Cx.File%3D17%2Cx.Reference%3D18%2Cx.Folder%3D19%2Cx.EnumMember%3D20%2Cx.Constant%3D21%2Cx.Struct%3D22%2Cx.Event%3D23%2Cx.Operator%3D24%2Cx.TypeParameter%3D25))(Bt%7C%7C%3D%7B%7D)%3Bvar%20Ct%3B(t%3D%3E(t.PlainText%3D1%2Ct.Snippet%3D2))(Ct%7C%7C%3D%7B%7D)%3Bvar%20Et%3B(e%3D%3E%7Bfunction%20r(t%2Cn)%7Breturn%7Brange%3At%2CnewText%3An%7D%7De.replace%3Dr%7D)(Et%7C%7C%3D%7B%7D)%3Bvar%20Mt%3B(e%3D%3E%7Bfunction%20r(t)%7Breturn%7Blabel%3At%7D%7De.create%3Dr%7D)(Mt%7C%7C%3D%7B%7D)%3Bfunction%20it(r)%7Breturn%20typeof%20r%3D%3D%22object%22%26%26r!%3D%3Dnull%26%26!Array.isArray(r)%7Dfunction%20st(r)%7Breturn%20typeof%20r%3D%3D%22number%22%7Dvar%20F%3Dclass%7Bconstructor(e%2Ct%2Cn%3D0)%7Bthis.offset%3Dt%2Cthis.length%3Dn%2Cthis.parent%3De%7Dget%20children()%7Breturn%5B%5D%7DtoString()%7Breturn%22type%3A%20%22%2Bthis.type%2B%22%20(%22%2Bthis.offset%2B%22%2F%22%2Bthis.length%2B%22)%22%2B(this.parent%3F%22%20parent%3A%20%7B%22%2Bthis.parent.toString()%2B%22%7D%22%3A%22%22)%7D%7D%2CIe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22null%22%3Bthis.value%3Dnull%7D%7D%2Cae%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Ci)%3Bthis.type%3D%22boolean%22%3Bthis.value%3Dn%7D%7D%2COe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22array%22%3Bthis.items%3D%5B%5D%7Dget%20children()%7Breturn%20this.items%7D%7D%2CAe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22number%22%3Bthis.isInteger%3D!0%2Cthis.value%3DNumber.NaN%7D%7D%2CBe%3Dclass%20extends%20F%7Bconstructor(t%2Cn)%7Bsuper(t%2Cn)%3Bthis.type%3D%22object%22%3Bthis.properties%3D%5B%5D%7Dget%20children()%7Breturn%20this.properties%7D%7D%2CX%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn%2Ci)%3Bthis.type%3D%22string%22%3Bthis.value%3D%22%22%7D%7D%2CCe%3Dclass%20extends%20F%7Bconstructor(t%2Cn%2Ci)%7Bsuper(t%2Cn)%3Bthis.type%3D%22property%22%3Bthis.colonOffset%3D-1%2Cthis.keyNode%3Di%7Dget%20children()%7Breturn%20this.valueNode%3F%5Bthis.keyNode%2Cthis.valueNode%5D%3A%5Bthis.keyNode%5D%7D%7D%2CEe%3Dclass%7Bconstructor(e)%7Bthis.root%3De%7DgetNodeFromOffset(e%2Ct%3D!1)%7Bif(this.root)return%20nt(this.root%2Ce%2Ct)%7Dvisit(e)%7Bif(this.root)%7Blet%20t%3Dn%3D%3E%7Blet%20i%3De(n)%2Cs%3Dn.children%3Bif(Array.isArray(s))for(let%20o%3D0%3Bo%3Cs.length%26%26i%3Bo%2B%2B)i%3Dt(s%5Bo%5D)%3Breturn%20i%7D%3Bt(this.root)%7D%7D%7D%3Bfunction%20Me(r)%7Blet%20e%3D%5B%5D%2Ct%3D-1%2Cn%3Dr.getValue()%2Ci%3Dse(n%2C!1)%3Bfunction%20s()%7Bfor(%3B%3B)%7Blet%20_%3Di.scan()%3Bswitch(o()%2C_)%7Bcase%20T.LineBreakTrivia%3Acase%20T.Trivia%3Abreak%3Bdefault%3Areturn%20_%7D%7D%7Dfunction%20o()%7Bswitch(i.getTokenError())%7Bcase%20B.InvalidUnicode%3Areturn%20f(%22Invalid%20unicode%20sequence%20in%20string.%22%2C260)%2C!0%3Bcase%20B.InvalidEscapeCharacter%3Areturn%20f(%22Invalid%20escape%20character%20in%20string.%22%2C261)%2C!0%3Bcase%20B.UnexpectedEndOfNumber%3Areturn%20f(%22Unexpected%20end%20of%20number.%22%2C259)%2C!0%3Bcase%20B.UnexpectedEndOfComment%3Areturn%20f(%22Unexpected%20end%20of%20comment.%22%2C257)%2C!0%3Bcase%20B.UnexpectedEndOfString%3Areturn%20f(%22Unexpected%20end%20of%20string.%22%2C258)%2C!0%3Bcase%20B.InvalidCharacter%3Areturn%20f(%22Invalid%20characters%20in%20string.%20Control%20characters%20must%20be%20escaped.%22%2C262)%2C!0%7Dreturn!1%7Dfunction%20a(_%2Cg%2Ch%2Cp)%7Bif(e.length%3D%3D%3D0%7C%7Ch!%3D%3Dt)%7Blet%20y%3Dle.create(r.positionAt(h)%2Cr.positionAt(p))%3Be.push(oe.create(_%2Cg%2Cy))%2Ct%3Dh%7D%7Dfunction%20l(_%2Cg)%7Breturn%20_.length%3Di.getTokenOffset()%2Bi.getTokenLength()-_.offset%2Cg%26%26s()%2C_%7Dfunction%20f(_%2Cg%2Ch%3Dvoid%200%2Cp%3D%5B%5D%2Cy%3D%5B%5D)%7Blet%20x%3Di.getTokenOffset()%2CD%3Di.getTokenOffset()%2Bi.getTokenLength()%3Bif(x%3D%3D%3DD%26%26x%3E0)%7Bfor(x--%3Bx%3E0%26%26%2F%5Cs%2F.test(n.charAt(x))%3B)x--%3BD%3Dx%2B1%7Dif(a(_%2Cg%2Cx%2CD)%2Ch%26%26l(h%2C!1)%2Cp.length%2By.length%3E0)%7Blet%20ie%3Di.getToken()%3Bfor(%3Bie!%3D%3DT.EOF%3B)%7Bif(p.indexOf(ie)!%3D%3D-1)%7Bs()%3Bbreak%7Delse%20if(y.indexOf(ie)!%3D%3D-1)break%3Bie%3Ds()%7D%7Dreturn%20h%7Dfunction%20u(_)%7Bif(i.getToken()!%3D%3DT.OpenBracketToken)return%3Blet%20g%3Dnew%20Oe(_%2Ci.getTokenOffset())%3Bs()%3Blet%20h%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBracketToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bh%7C%7Cf(%22Value%20expected.%22%2C516)%3Blet%20y%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBracketToken)%7Bh%26%26a(%22Trailing%20comma%22%2C519%2Cy%2Cy%2B1)%3Bcontinue%7D%7Delse%20if(h)%7Bf(%22Comma%20expected.%22%2C514%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dlet%20p%3Dw(g)%3Bif(p)g.items.push(p)%3Belse%7Bf(%22Value%20expected.%22%2C516%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBracketToken%5D)%3Bbreak%7Dh%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBracketToken%3Ff(%22Expected%20comma%20or%20closing%20bracket%22%2C518%2Cg)%3Al(g%2C!0)%7Dlet%20c%3Dnew%20X(void%200%2C0%2C0)%3Bfunction%20d(_%2Cg)%7Blet%20h%3Dnew%20Ce(_%2Ci.getTokenOffset()%2Cc)%2Cp%3Dk(h)%3Bif(!p)if(i.getToken()%3D%3D%3DT.Unknown)%7Bf(%22Property%20keys%20must%20be%20doublequoted%22%2C528)%3Blet%20x%3Dnew%20X(h%2Ci.getTokenOffset()%2Ci.getTokenLength())%3Bx.value%3Di.getTokenValue()%2Cp%3Dx%2Cs()%7Delse%20return%3Bif(h.keyNode%3Dp%2Cp.value!%3D%3D%22%2F%2F%22)%7Blet%20x%3Dg%5Bp.value%5D%3Bx%3F(a(%22Duplicate%20object%20key%22%2C520%2Ch.keyNode.offset%2Ch.keyNode.offset%2Bh.keyNode.length)%2Cit(x)%26%26a(%22Duplicate%20object%20key%22%2C520%2Cx.keyNode.offset%2Cx.keyNode.offset%2Bx.keyNode.length)%2Cg%5Bp.value%5D%3D!0)%3Ag%5Bp.value%5D%3Dh%7Dif(i.getToken()%3D%3D%3DT.ColonToken)h.colonOffset%3Di.getTokenOffset()%2Cs()%3Belse%20if(f(%22Colon%20expected%22%2C515)%2Ci.getToken()%3D%3D%3DT.StringLiteral%26%26r.positionAt(p.offset%2Bp.length).lineNumber%3Cr.positionAt(i.getTokenOffset()).lineNumber)return%20h.length%3Dp.length%2Ch%3Blet%20y%3Dw(h)%3Breturn%20y%3F(h.valueNode%3Dy%2Ch.length%3Dy.offset%2By.length-h.offset%2Ch)%3Af(%22Value%20expected%22%2C516%2Ch%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%7Dfunction%20b(_)%7Bif(i.getToken()!%3D%3DT.OpenBraceToken)return%3Blet%20g%3Dnew%20Be(_%2Ci.getTokenOffset())%2Ch%3DObject.create(null)%3Bs()%3Blet%20p%3D!1%3Bfor(%3Bi.getToken()!%3D%3DT.CloseBraceToken%26%26i.getToken()!%3D%3DT.EOF%3B)%7Bif(i.getToken()%3D%3D%3DT.CommaToken)%7Bp%7C%7Cf(%22Property%20expected%22%2C513)%3Blet%20x%3Di.getTokenOffset()%3Bif(s()%2Ci.getToken()%3D%3D%3DT.CloseBraceToken)%7Bp%26%26a(%22Trailing%20comma%22%2C519%2Cx%2Cx%2B1)%3Bcontinue%7D%7Delse%20p%26%26f(%22Expected%20comma%22%2C514)%3Blet%20y%3Dd(g%2Ch)%3By%3Fg.properties.push(y)%3Af(%22Property%20expected%22%2C513%2Cvoid%200%2C%5B%5D%2C%5BT.CloseBraceToken%2CT.CommaToken%5D)%2Cp%3D!0%7Dreturn%20i.getToken()!%3D%3DT.CloseBraceToken%3Ff(%22Expected%20comma%20or%20closing%20brace%22%2C518%2Cg)%3Al(g%2C!0)%7Dfunction%20k(_)%7Bif(i.getToken()!%3D%3DT.StringLiteral)return%3Blet%20g%3Dnew%20X(_%2Ci.getTokenOffset())%3Breturn%20g.value%3Di.getTokenValue()%2Cl(g%2C!0)%7Dfunction%20L(_)%7Bif(i.getToken()!%3D%3DT.NumericLiteral)return%3Blet%20g%3Dnew%20Ae(_%2Ci.getTokenOffset())%3Bif(i.getTokenError()%3D%3D%3DB.None)%7Blet%20h%3Di.getTokenValue()%3Btry%7Blet%20p%3DJSON.parse(h)%3Bif(!st(p))return%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%3Bg.value%3Dp%7Dcatch%7Breturn%20f(%22Invalid%20number%20format.%22%2C0%2Cg)%7Dg.isInteger%3Dh.indexOf(%22.%22)%3D%3D%3D-1%7Dreturn%20l(g%2C!0)%7Dfunction%20S(_)%7Blet%20g%3Bswitch(i.getToken())%7Bcase%20T.NullKeyword%3Areturn%20l(new%20Ie(_%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.TrueKeyword%3Areturn%20l(new%20ae(_%2C!0%2Ci.getTokenOffset())%2C!0)%3Bcase%20T.FalseKeyword%3Areturn%20l(new%20ae(_%2C!1%2Ci.getTokenOffset())%2C!0)%3Bdefault%3Areturn%7D%7Dfunction%20w(_)%7Breturn%20u(_)%7C%7Cb(_)%7C%7Ck(_)%7C%7CL(_)%7C%7CS(_)%7Dlet%20I%3Breturn%20s()!%3D%3DT.EOF%26%26(I%3Dw(I)%2CI%3Fi.getToken()!%3D%3DT.EOF%26%26f(%22End%20of%20file%20expected.%22%2C0)%3Af(%22Expected%20a%20JSON%20object%2C%20array%20or%20literal%22%2C0))%2C%7Bproblems%3Ae%2Croot%3Anew%20Ee(I)%7D%7Dfunction%20Fe(r)%7Blet%20e%3D%5B%5D%2Ct%3D%5B%5D%2Cn%3D-1%2Ci%3Dse(r.getValue()%2C!1)%2Cs%3Di.scan()%3Bfunction%20o(a)%7Be.push(a)%7Dfor(%3Bs!%3D%3DT.EOF%3B)%7Bswitch(s)%7Bcase%20T.OpenBraceToken%3Acase%20T.OpenBracketToken%3A%7Blet%20l%3D%7BstartLineNumber%3Ar.positionAt(i.getPosition()).lineNumber%2Ctype%3As%3D%3D%3DT.OpenBraceToken%3F%22object%22%3A%22array%22%7D%3Bt.push(l)%3Bbreak%7Dcase%20T.CloseBraceToken%3Acase%20T.CloseBracketToken%3A%7Blet%20a%3Ds%3D%3D%3DT.CloseBraceToken%3F%22object%22%3A%22array%22%3Bif(t.length%3E0%26%26t%5Bt.length-1%5D.type%3D%3D%3Da)%7Blet%20l%3Dt.pop()%2Cf%3Dr.positionAt(i.getTokenOffset()).lineNumber%3Bif(l%26%26f%3El.startLineNumber%2B1%26%26n!%3D%3Dl.startLineNumber)%7Blet%20u%3D%7BstartLineNumber%3Al.startLineNumber%2CendLineNumber%3Af-1%2Ctype%3Al.type%2CisCollapsed%3A!1%2Csource%3A0%7D%3Bo(u)%2Cn%3Dl.startLineNumber%7D%7Dbreak%7D%7Ds%3Di.scan()%7Dreturn%20e%7Dfunction%20ot(r%2Ce)%7Breturn%20rt(r.getValue()%2Cvoid%200%2Ce)%7Dfunction%20lt(r)%7Blet%7Broot%3Ae%2Cproblems%3At%7D%3DMe(r)%3Breturn%7Bproblems%3At%2Croot%3Ae%7D%7Dfunction%20at(r)%7Breturn%20Me(r).root%7Dvar%20P%3Dclass%7Bconstructor(e%2Ct)%7Bthis.lineNumber%3De%2Cthis.column%3Dt%7D%7D%3Bvar%20A%3Dclass%20r%7Bconstructor(e%2Ct%2Cn%2Ci)%7Be%3En%7C%7Ce%3D%3D%3Dn%26%26t%3Ei%3F(this.startLineNumber%3Dn%2Cthis.startColumn%3Di%2Cthis.endLineNumber%3De%2Cthis.endColumn%3Dt)%3A(this.startLineNumber%3De%2Cthis.startColumn%3Dt%2Cthis.endLineNumber%3Dn%2Cthis.endColumn%3Di)%7Dstatic%20create(e%2Ct)%7Breturn%20new%20r(e.lineNumber%2Ce.column%2Ct.lineNumber%2Ct.column)%7Dstatic%20areIntersecting(e%2Ct)%7Breturn!(e.endLineNumber%3Ct.startLineNumber%7C%7Ce.endLineNumber%3D%3D%3Dt.startLineNumber%26%26e.endColumn%3C%3Dt.startColumn%7C%7Ct.endLineNumber%3Ce.startLineNumber%7C%7Ct.endLineNumber%3D%3D%3De.startLineNumber%26%26t.endColumn%3C%3De.startColumn)%7DplusRange(e)%7Breturn%20r.plusRange(this%2Ce)%7Dstatic%20plusRange(e%2Ct)%7Blet%20n%2Ci%2Cs%2Co%3Breturn%20t.startLineNumber%3Ce.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3Dt.startColumn)%3At.startLineNumber%3D%3D%3De.startLineNumber%3F(n%3Dt.startLineNumber%2Ci%3DMath.min(t.startColumn%2Ce.startColumn))%3A(n%3De.startLineNumber%2Ci%3De.startColumn)%2Ct.endLineNumber%3Ee.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3Dt.endColumn)%3At.endLineNumber%3D%3D%3De.endLineNumber%3F(s%3Dt.endLineNumber%2Co%3DMath.max(t.endColumn%2Ce.endColumn))%3A(s%3De.endLineNumber%2Co%3De.endColumn)%2Cnew%20r(n%2Ci%2Cs%2Co)%7DgetStartPosition()%7Breturn%20r.getStartPosition(this)%7Dstatic%20getStartPosition(e)%7Breturn%20new%20P(e.startLineNumber%2Ce.startColumn)%7D%7D%3Bvar%20V%3Dclass%7Bconstructor(e%2Ct)%7Bthis._findMatchBrand%3Dvoid%200%3Bthis.range%3De%2Cthis.matches%3Dt%7D%7D%2Cfe%3Dclass%7Bconstructor(e%2Ct%2Cn)%7Bthis.regex%3De%2Cthis.wordSeparators%3Dt%2Cthis.simpleSearch%3Dn%7D%7D%3Bvar%20j%3Dclass%7Bconstructor(e%2Ct)%7Bthis.piece%3De%2Cthis.color%3Dt%2Cthis.size_left%3D0%2Cthis.lf_left%3D0%2Cthis.parent%3Dthis%2Cthis.left%3Dthis%2Cthis.right%3Dthis%7Dnext()%7Bif(this.right!%3D%3Dm)return%20ue(this.right)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.left!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Dprev()%7Bif(this.left!%3D%3Dm)return%20Re(this.left)%3Blet%20e%3Dthis%3Bfor(%3Be.parent!%3D%3Dm%26%26e.parent.right!%3D%3De%3B)e%3De.parent%3Breturn%20e.parent%3D%3D%3Dm%3Fm%3Ae.parent%7Ddetach()%7Bthis.parent%3Dnull%2Cthis.left%3Dnull%2Cthis.right%3Dnull%7D%7D%3Bvar%20m%3Dnew%20j(null%2C0)%3Bm.parent%3Dm%3Bm.left%3Dm%3Bm.right%3Dm%3Bm.color%3D0%3Bfunction%20ue(r)%7Bfor(%3Br.left!%3D%3Dm%3B)r%3Dr.left%3Breturn%20r%7Dfunction%20Re(r)%7Bfor(%3Br.right!%3D%3Dm%3B)r%3Dr.right%3Breturn%20r%7Dfunction%20Ve(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.size_left%2Br.piece.length%2BVe(r.right)%7Dfunction%20We(r)%7Breturn%20r%3D%3D%3Dm%3F0%3Ar.lf_left%2Br.piece.lineFeedCnt%2BWe(r.right)%7Dfunction%20Pe()%7Bm.parent%3Dm%7Dfunction%20G(r%2Ce)%7Blet%20t%3De.right%3Bt.size_left%2B%3De.size_left%2B(e.piece%3Fe.piece.length%3A0)%2Ct.lf_left%2B%3De.lf_left%2B(e.piece%3Fe.piece.lineFeedCnt%3A0)%2Ce.right%3Dt.left%2Ct.left!%3D%3Dm%26%26(t.left.parent%3De)%2Ct.parent%3De.parent%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae.parent.left%3D%3D%3De%3Fe.parent.left%3Dt%3Ae.parent.right%3Dt%2Ct.left%3De%2Ce.parent%3Dt%7Dfunction%20Z(r%2Ce)%7Blet%20t%3De.left%3Be.left%3Dt.right%2Ct.right!%3D%3Dm%26%26(t.right.parent%3De)%2Ct.parent%3De.parent%2Ce.size_left-%3Dt.size_left%2B(t.piece%3Ft.piece.length%3A0)%2Ce.lf_left-%3Dt.lf_left%2B(t.piece%3Ft.piece.lineFeedCnt%3A0)%2Ce.parent%3D%3D%3Dm%3Fr.root%3Dt%3Ae%3D%3D%3De.parent.right%3Fe.parent.right%3Dt%3Ae.parent.left%3Dt%2Ct.right%3De%2Ce.parent%3Dt%7Dfunction%20Q(r%2Ce)%7Blet%20t%2Cn%3Bif(e.left%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.right)%3Ae.right%3D%3D%3Dm%3F(n%3De%2Ct%3Dn.left)%3A(n%3Due(e.right)%2Ct%3Dn.right)%2Cn%3D%3D%3Dr.root)%7Br.root%3Dt%2Ct.color%3D0%2Ce.detach()%2CPe()%2Cr.root.parent%3Dm%3Breturn%7Dlet%20i%3Dn.color%3D%3D%3D1%3Bif(n%3D%3D%3Dn.parent.left%3Fn.parent.left%3Dt%3An.parent.right%3Dt%2Cn%3D%3D%3De%3F(t.parent%3Dn.parent%2CH(r%2Ct))%3A(n.parent%3D%3D%3De%3Ft.parent%3Dn%3At.parent%3Dn.parent%2CH(r%2Ct)%2Cn.left%3De.left%2Cn.right%3De.right%2Cn.parent%3De.parent%2Cn.color%3De.color%2Ce%3D%3D%3Dr.root%3Fr.root%3Dn%3Ae%3D%3D%3De.parent.left%3Fe.parent.left%3Dn%3Ae.parent.right%3Dn%2Cn.left!%3D%3Dm%26%26(n.left.parent%3Dn)%2Cn.right!%3D%3Dm%26%26(n.right.parent%3Dn)%2Cn.size_left%3De.size_left%2Cn.lf_left%3De.lf_left%2CH(r%2Cn))%2Ce.detach()%2Ct.parent.left%3D%3D%3Dt)%7Blet%20o%3DVe(t)%2Ca%3DWe(t)%3Bif(o!%3D%3Dt.parent.size_left%7C%7Ca!%3D%3Dt.parent.lf_left)%7Blet%20l%3Do-t.parent.size_left%2Cf%3Da-t.parent.lf_left%3Bt.parent.size_left%3Do%2Ct.parent.lf_left%3Da%2CC(r%2Ct.parent%2Cl%2Cf)%7D%7Dif(H(r%2Ct.parent)%2Ci)%7BPe()%3Breturn%7Dlet%20s%3Bfor(%3Bt!%3D%3Dr.root%26%26t.color%3D%3D%3D0%3B)t%3D%3D%3Dt.parent.left%3F(s%3Dt.parent.right%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CG(r%2Ct.parent)%2Cs%3Dt.parent.right)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.right.color%3D%3D%3D0%26%26(s.left.color%3D0%2Cs.color%3D1%2CZ(r%2Cs)%2Cs%3Dt.parent.right)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.right.color%3D0%2CG(r%2Ct.parent)%2Ct%3Dr.root))%3A(s%3Dt.parent.left%2Cs.color%3D%3D%3D1%26%26(s.color%3D0%2Ct.parent.color%3D1%2CZ(r%2Ct.parent)%2Cs%3Dt.parent.left)%2Cs.left.color%3D%3D%3D0%26%26s.right.color%3D%3D%3D0%3F(s.color%3D1%2Ct%3Dt.parent)%3A(s.left.color%3D%3D%3D0%26%26(s.right.color%3D0%2Cs.color%3D1%2CG(r%2Cs)%2Cs%3Dt.parent.left)%2Cs.color%3Dt.parent.color%2Ct.parent.color%3D0%2Cs.left.color%3D0%2CZ(r%2Ct.parent)%2Ct%3Dr.root))%3Bt.color%3D0%2CPe()%7Dfunction%20Ue(r%2Ce)%7Bfor(H(r%2Ce)%3Be!%3D%3Dr.root%26%26e.parent.color%3D%3D%3D1%3B)if(e.parent%3D%3D%3De.parent.parent.left)%7Blet%20t%3De.parent.parent.right%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.right%26%26(e%3De.parent%2CG(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CZ(r%2Ce.parent.parent))%7Delse%7Blet%20t%3De.parent.parent.left%3Bt.color%3D%3D%3D1%3F(e.parent.color%3D0%2Ct.color%3D0%2Ce.parent.parent.color%3D1%2Ce%3De.parent.parent)%3A(e%3D%3D%3De.parent.left%26%26(e%3De.parent%2CZ(r%2Ce))%2Ce.parent.color%3D0%2Ce.parent.parent.color%3D1%2CG(r%2Ce.parent.parent))%7Dr.root.color%3D0%7Dfunction%20C(r%2Ce%2Ct%2Cn)%7Bfor(%3Be!%3D%3Dr.root%26%26e!%3D%3Dm%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7Dfunction%20H(r%2Ce)%7Blet%20t%3D0%2Cn%3D0%3Bif(e!%3D%3Dr.root)%7Bfor(%3Be!%3D%3Dr.root%26%26e%3D%3D%3De.parent.right%3B)e%3De.parent%3Bif(e!%3D%3Dr.root)for(e%3De.parent%2Ct%3DVe(e.left)-e.size_left%2Cn%3DWe(e.left)-e.lf_left%2Ce.size_left%2B%3Dt%2Ce.lf_left%2B%3Dn%3Be!%3D%3Dr.root%26%26(t!%3D%3D0%7C%7Cn!%3D%3D0)%3B)e.parent.left%3D%3D%3De%26%26(e.parent.size_left%2B%3Dt%2Ce.parent.lf_left%2B%3Dn)%2Ce%3De.parent%7D%7Dvar%20ft%2CJe%3Dclass%7Bconstructor()%7Bthis%5Bft%5D%3D%22LinkedMap%22%3Bthis._map%3Dnew%20Map%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%3D0%7Dclear()%7Bthis._map.clear()%2Cthis._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%2Cthis._size%3D0%2Cthis._state%2B%2B%7DisEmpty()%7Breturn!this._head%26%26!this._tail%7Dget%20size()%7Breturn%20this._size%7Dget%20first()%7Breturn%20this._head%3F.value%7Dget%20last()%7Breturn%20this._tail%3F.value%7Dhas(e)%7Breturn%20this._map.has(e)%7Dget(e%2Ct%3D0)%7Blet%20n%3Dthis._map.get(e)%3Bif(n)return%20t!%3D%3D0%26%26this.touch(n%2Ct)%2Cn.value%7Dset(e%2Ct%2Cn%3D0)%7Blet%20i%3Dthis._map.get(e)%3Bif(i)i.value%3Dt%2Cn!%3D%3D0%26%26this.touch(i%2Cn)%3Belse%7Bswitch(i%3D%7Bkey%3Ae%2Cvalue%3At%2Cnext%3Avoid%200%2Cprevious%3Avoid%200%7D%2Cn)%7Bcase%200%3Athis.addItemLast(i)%3Bbreak%3Bcase%201%3Athis.addItemFirst(i)%3Bbreak%3Bcase%202%3Athis.addItemLast(i)%3Bbreak%3Bdefault%3Athis.addItemLast(i)%3Bbreak%7Dthis._map.set(e%2Ci)%2Cthis._size%2B%2B%7Dreturn%20this%7Ddelete(e)%7Breturn!!this.remove(e)%7Dremove(e)%7Blet%20t%3Dthis._map.get(e)%3Bif(t)return%20this._map.delete(e)%2Cthis.removeItem(t)%2Cthis._size--%2Ct.value%7Dshift()%7Bif(!this._head%26%26!this._tail)return%3Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Blet%20e%3Dthis._head%3Breturn%20this._map.delete(e.key)%2Cthis.removeItem(e)%2Cthis._size--%2Ce.value%7DforEach(e%2Ct)%7Blet%20n%3Dthis._state%2Ci%3Dthis._head%3Bfor(%3Bi%3B)%7Bif(t%3Fe.bind(t)(i.value%2Ci.key%2Cthis)%3Ae(i.value%2Ci.key%2Cthis)%2Cthis._state!%3D%3Dn)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bi%3Di.next%7D%7Dkeys()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.key%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dvalues()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3An.value%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7Dentries()%7Blet%20e%3Dthis%2Ct%3Dthis._state%2Cn%3Dthis._head%2Ci%3D%7B%5BSymbol.iterator%5D()%7Breturn%20i%7D%2Cnext()%7Bif(e._state!%3D%3Dt)throw%20new%20Error(%22LinkedMap%20got%20modified%20during%20iteration.%22)%3Bif(n)%7Blet%20s%3D%7Bvalue%3A%5Bn.key%2Cn.value%5D%2Cdone%3A!1%7D%3Breturn%20n%3Dn.next%2Cs%7Delse%20return%7Bvalue%3Avoid%200%2Cdone%3A!0%7D%7D%7D%3Breturn%20i%7D%5B(ft%3DSymbol.toStringTag%2CSymbol.iterator)%5D()%7Breturn%20this.entries()%7DtrimOld(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._head%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.next%2Cn--%3Bthis._head%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.previous%3Dvoid%200)%2Cthis._state%2B%2B%7DtrimNew(e)%7Bif(e%3E%3Dthis.size)return%3Bif(e%3D%3D%3D0)%7Bthis.clear()%3Breturn%7Dlet%20t%3Dthis._tail%2Cn%3Dthis.size%3Bfor(%3Bt%26%26n%3Ee%3B)this._map.delete(t.key)%2Ct%3Dt.previous%2Cn--%3Bthis._tail%3Dt%2Cthis._size%3Dn%2Ct%26%26(t.next%3Dvoid%200)%2Cthis._state%2B%2B%7DaddItemFirst(e)%7Bif(!this._head%26%26!this._tail)this._tail%3De%3Belse%20if(this._head)e.next%3Dthis._head%2Cthis._head.previous%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._head%3De%2Cthis._state%2B%2B%7DaddItemLast(e)%7Bif(!this._head%26%26!this._tail)this._head%3De%3Belse%20if(this._tail)e.previous%3Dthis._tail%2Cthis._tail.next%3De%3Belse%20throw%20new%20Error(%22Invalid%20list%22)%3Bthis._tail%3De%2Cthis._state%2B%2B%7DremoveItem(e)%7Bif(e%3D%3D%3Dthis._head%26%26e%3D%3D%3Dthis._tail)this._head%3Dvoid%200%2Cthis._tail%3Dvoid%200%3Belse%20if(e%3D%3D%3Dthis._head)%7Bif(!e.next)throw%20new%20Error(%22Invalid%20list%22)%3Be.next.previous%3Dvoid%200%2Cthis._head%3De.next%7Delse%20if(e%3D%3D%3Dthis._tail)%7Bif(!e.previous)throw%20new%20Error(%22Invalid%20list%22)%3Be.previous.next%3Dvoid%200%2Cthis._tail%3De.previous%7Delse%7Blet%20t%3De.next%2Cn%3De.previous%3Bif(!t%7C%7C!n)throw%20new%20Error(%22Invalid%20list%22)%3Bt.previous%3Dn%2Cn.next%3Dt%7De.next%3Dvoid%200%2Ce.previous%3Dvoid%200%2Cthis._state%2B%2B%7Dtouch(e%2Ct)%7Bif(!this._head%7C%7C!this._tail)throw%20new%20Error(%22Invalid%20list%22)%3Bif(!(t!%3D%3D1%26%26t!%3D%3D2))%7Bif(t%3D%3D%3D1)%7Bif(e%3D%3D%3Dthis._head)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._tail%3F(i.next%3Dvoid%200%2Cthis._tail%3Di)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.previous%3Dvoid%200%2Ce.next%3Dthis._head%2Cthis._head.previous%3De%2Cthis._head%3De%2Cthis._state%2B%2B%7Delse%20if(t%3D%3D%3D2)%7Bif(e%3D%3D%3Dthis._tail)return%3Blet%20n%3De.next%2Ci%3De.previous%3Be%3D%3D%3Dthis._head%3F(n.previous%3Dvoid%200%2Cthis._head%3Dn)%3A(n.previous%3Di%2Ci.next%3Dn)%2Ce.next%3Dvoid%200%2Ce.previous%3Dthis._tail%2Cthis._tail.next%3De%2Cthis._tail%3De%2Cthis._state%2B%2B%7D%7D%7DtoJSON()%7Blet%20e%3D%5B%5D%3Breturn%20this.forEach((t%2Cn)%3D%3E%7Be.push(%5Bn%2Ct%5D)%7D)%2Ce%7DfromJSON(e)%7Bthis.clear()%3Bfor(let%5Bt%2Cn%5Dof%20e)this.set(t%2Cn)%7D%7D%2Cze%3Dclass%20extends%20Je%7Bconstructor(e%2Ct%3D1)%7Bsuper()%2Cthis._limit%3De%2Cthis._ratio%3DMath.min(Math.max(0%2Ct)%2C1)%7Dget%20limit()%7Breturn%20this._limit%7Dset%20limit(e)%7Bthis._limit%3De%2Cthis.checkTrim()%7Dget%20ratio()%7Breturn%20this._ratio%7Dset%20ratio(e)%7Bthis._ratio%3DMath.min(Math.max(0%2Ce)%2C1)%2Cthis.checkTrim()%7Dget(e%2Ct%3D2)%7Breturn%20super.get(e%2Ct)%7Dpeek(e)%7Breturn%20super.get(e%2C0)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct%2C2)%2Cthis%7DcheckTrim()%7Bthis.size%3Ethis._limit%26%26this.trim(Math.round(this._limit*this._ratio))%7D%7D%2Cce%3Dclass%20extends%20ze%7Bconstructor(e%2Ct%3D1)%7Bsuper(e%2Ct)%7Dtrim(e)%7Bthis.trimOld(e)%7Dset(e%2Ct)%7Breturn%20super.set(e%2Ct)%2Cthis.checkTrim()%2Cthis%7D%7D%3Bfunction%20je(r)%7Breturn%20r%3C0%3F0%3Ar%3E255%3F255%3Ar%7C0%7Dvar%20de%3Dclass%20r%7Bconstructor(e)%7Blet%20t%3Dje(e)%3Bthis._defaultValue%3Dt%2Cth