{"version":3,"file":"worker-html-e7f236ff.js","sources":["../../node_modules/ace-builds/src-noconflict/worker-html.js"],"sourcesContent":["\"no use strict\";\n!(function(window) {\nif (typeof window.window != \"undefined\" && window.document)\n return;\nif (window.require && window.define)\n return;\n\nif (!window.console) {\n window.console = function() {\n var msgs = Array.prototype.slice.call(arguments, 0);\n postMessage({type: \"log\", data: msgs});\n };\n window.console.error =\n window.console.warn = \n window.console.log =\n window.console.trace = window.console;\n}\nwindow.window = window;\nwindow.ace = window;\n\nwindow.onerror = function(message, file, line, col, err) {\n postMessage({type: \"error\", data: {\n message: message,\n data: err && err.data,\n file: file,\n line: line, \n col: col,\n stack: err && err.stack\n }});\n};\n\nwindow.normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return window.normalizeModule(parentId, chunks[0]) + \"!\" + window.normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = (base ? base + \"/\" : \"\") + moduleName;\n \n while (moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/^\\.\\//, \"\").replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n \n return moduleName;\n};\n\nwindow.require = function require(parentId, id) {\n if (!id) {\n id = parentId;\n parentId = null;\n }\n if (!id.charAt)\n throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");\n\n id = window.normalizeModule(parentId, id);\n\n var module = window.require.modules[id];\n if (module) {\n if (!module.initialized) {\n module.initialized = true;\n module.exports = module.factory().exports;\n }\n return module.exports;\n }\n \n if (!window.require.tlns)\n return console.log(\"unable to load \" + id);\n \n var path = resolveModuleId(id, window.require.tlns);\n if (path.slice(-3) != \".js\") path += \".js\";\n \n window.require.id = id;\n window.require.modules[id] = {}; // prevent infinite loop on broken modules\n importScripts(path);\n return window.require(parentId, id);\n};\nfunction resolveModuleId(id, paths) {\n var testPath = id, tail = \"\";\n while (testPath) {\n var alias = paths[testPath];\n if (typeof alias == \"string\") {\n return alias + tail;\n } else if (alias) {\n return alias.location.replace(/\\/*$/, \"/\") + (tail || alias.main || alias.name);\n } else if (alias === false) {\n return \"\";\n }\n var i = testPath.lastIndexOf(\"/\");\n if (i === -1) break;\n tail = testPath.substr(i) + tail;\n testPath = testPath.slice(0, i);\n }\n return id;\n}\nwindow.require.modules = {};\nwindow.require.tlns = {};\n\nwindow.define = function(id, deps, factory) {\n if (arguments.length == 2) {\n factory = deps;\n if (typeof id != \"string\") {\n deps = id;\n id = window.require.id;\n }\n } else if (arguments.length == 1) {\n factory = id;\n deps = [];\n id = window.require.id;\n }\n \n if (typeof factory != \"function\") {\n window.require.modules[id] = {\n exports: factory,\n initialized: true\n };\n return;\n }\n\n if (!deps.length)\n // If there is no dependencies, we inject \"require\", \"exports\" and\n // \"module\" as dependencies, to provide CommonJS compatibility.\n deps = [\"require\", \"exports\", \"module\"];\n\n var req = function(childId) {\n return window.require(id, childId);\n };\n\n window.require.modules[id] = {\n exports: {},\n factory: function() {\n var module = this;\n var returnExports = factory.apply(this, deps.slice(0, factory.length).map(function(dep) {\n switch (dep) {\n // Because \"require\", \"exports\" and \"module\" aren't actual\n // dependencies, we must handle them seperately.\n case \"require\": return req;\n case \"exports\": return module.exports;\n case \"module\": return module;\n // But for all other dependencies, we can just go ahead and\n // require them.\n default: return req(dep);\n }\n }));\n if (returnExports)\n module.exports = returnExports;\n return module;\n }\n };\n};\nwindow.define.amd = {};\nwindow.require.tlns = {};\nwindow.initBaseUrls = function initBaseUrls(topLevelNamespaces) {\n for (var i in topLevelNamespaces)\n this.require.tlns[i] = topLevelNamespaces[i];\n};\n\nwindow.initSender = function initSender() {\n\n var EventEmitter = window.require(\"ace/lib/event_emitter\").EventEmitter;\n var oop = window.require(\"ace/lib/oop\");\n \n var Sender = function() {};\n \n (function() {\n \n oop.implement(this, EventEmitter);\n \n this.callback = function(data, callbackId) {\n postMessage({\n type: \"call\",\n id: callbackId,\n data: data\n });\n };\n \n this.emit = function(name, data) {\n postMessage({\n type: \"event\",\n name: name,\n data: data\n });\n };\n \n }).call(Sender.prototype);\n \n return new Sender();\n};\n\nvar main = window.main = null;\nvar sender = window.sender = null;\n\nwindow.onmessage = function(e) {\n var msg = e.data;\n if (msg.event && sender) {\n sender._signal(msg.event, msg.data);\n }\n else if (msg.command) {\n if (main[msg.command])\n main[msg.command].apply(main, msg.args);\n else if (window[msg.command])\n window[msg.command].apply(window, msg.args);\n else\n throw new Error(\"Unknown command:\" + msg.command);\n }\n else if (msg.init) {\n window.initBaseUrls(msg.tlns);\n sender = window.sender = window.initSender();\n var clazz = this.require(msg.module)[msg.classname];\n main = window.main = new clazz(sender);\n }\n};\n})(this);\n\nace.define(\"ace/lib/oop\",[], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/lang\",[], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/range\",[], function(require, exports, module){\"use strict\";\nvar comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = /** @class */ (function () {\n function Range(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n this.end = {\n row: endRow,\n column: endColumn\n };\n }\n Range.prototype.isEqual = function (range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n Range.prototype.toString = function () {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/anchor\",[], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/worker/mirror\",[], function(require, exports, module) {\n\"use strict\";\n\nvar Document = require(\"../document\").Document;\nvar lang = require(\"../lib/lang\");\n \nvar Mirror = exports.Mirror = function(sender) {\n this.sender = sender;\n var doc = this.doc = new Document(\"\");\n \n var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));\n \n var _self = this;\n sender.on(\"change\", function(e) {\n var data = e.data;\n if (data[0].start) {\n doc.applyDeltas(data);\n } else {\n for (var i = 0; i < data.length; i += 2) {\n var d, err; \n if (Array.isArray(data[i+1])) {\n d = {action: \"insert\", start: data[i], lines: data[i+1]};\n } else {\n d = {action: \"remove\", start: data[i], end: data[i+1]};\n }\n \n if ((d.action == \"insert\" ? d.start : d.end).row >= doc.$lines.length) {\n err = new Error(\"Invalid delta\");\n err.data = {\n path: _self.$path,\n linesLength: doc.$lines.length,\n start: d.start,\n end: d.end\n };\n throw err;\n }\n\n doc.applyDelta(d, true);\n }\n }\n if (_self.$timeout)\n return deferredUpdate.schedule(_self.$timeout);\n _self.onUpdate();\n });\n};\n\n(function() {\n \n this.$timeout = 500;\n \n this.setTimeout = function(timeout) {\n this.$timeout = timeout;\n };\n \n this.setValue = function(value) {\n this.doc.setValue(value);\n this.deferredUpdate.schedule(this.$timeout);\n };\n \n this.getValue = function(callbackId) {\n this.sender.callback(this.doc.getValue(), callbackId);\n };\n \n this.onUpdate = function() {\n };\n \n this.isPending = function() {\n return this.deferredUpdate.isPending();\n };\n \n}).call(Mirror.prototype);\n\n});\n\nace.define(\"ace/mode/html/saxparser\",[], function(require, exports, module) {\nmodule.exports = (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.localName === localName)\n\t\t\treturn true;\n\t\tif (isMarker(node))\n\t\t\treturn false;\n\t}\n};\nElementStack.prototype.push = function(item) {\n\tthis.elements.push(item);\n};\nElementStack.prototype.pushHtmlElement = function(item) {\n\tthis.rootNode = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pushHeadElement = function(item) {\n\tthis.headElement = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pushBodyElement = function(item) {\n\tthis.bodyElement = item.node;\n\tthis.push(item);\n};\nElementStack.prototype.pop = function() {\n\treturn this.elements.pop();\n};\nElementStack.prototype.remove = function(item) {\n\tthis.elements.splice(this.elements.indexOf(item), 1);\n};\nElementStack.prototype.popUntilPopped = function(localName) {\n\tvar element;\n\tdo {\n\t\telement = this.pop();\n\t} while (element.localName != localName);\n};\n\nElementStack.prototype.popUntilTableScopeMarker = function() {\n\twhile (!isTableScopeMarker(this.top))\n\t\tthis.pop();\n};\n\nElementStack.prototype.popUntilTableBodyScopeMarker = function() {\n\twhile (!isTableBodyScopeMarker(this.top))\n\t\tthis.pop();\n};\n\nElementStack.prototype.popUntilTableRowScopeMarker = function() {\n\twhile (!isTableRowScopeMarker(this.top))\n\t\tthis.pop();\n};\nElementStack.prototype.item = function(index) {\n\treturn this.elements[index];\n};\nElementStack.prototype.contains = function(element) {\n\treturn this.elements.indexOf(element) !== -1;\n};\nElementStack.prototype.inScope = function(localName) {\n\treturn this._inScope(localName, isScopeMarker);\n};\nElementStack.prototype.inListItemScope = function(localName) {\n\treturn this._inScope(localName, isListItemScopeMarker);\n};\nElementStack.prototype.inTableScope = function(localName) {\n\treturn this._inScope(localName, isTableScopeMarker);\n};\nElementStack.prototype.inButtonScope = function(localName) {\n\treturn this._inScope(localName, isButtonScopeMarker);\n};\nElementStack.prototype.inSelectScope = function(localName) {\n\treturn this._inScope(localName, isSelectScopeMarker);\n};\nElementStack.prototype.hasNumberedHeaderElementInScope = function() {\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.isNumberedHeader())\n\t\t\treturn true;\n\t\tif (isScopeMarker(node))\n\t\t\treturn false;\n\t}\n};\nElementStack.prototype.furthestBlockForFormattingElement = function(element) {\n\tvar furthestBlock = null;\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tvar node = this.elements[i];\n\t\tif (node.node === element)\n\t\t\tbreak;\n\t\tif (node.isSpecial())\n\t\t\tfurthestBlock = node;\n\t}\n return furthestBlock;\n};\nElementStack.prototype.findIndex = function(localName) {\n\tfor (var i = this.elements.length - 1; i >= 0; i--) {\n\t\tif (this.elements[i].localName == localName)\n\t\t\treturn i;\n\t}\n return -1;\n};\n\nElementStack.prototype.remove_openElements_until = function(callback) {\n\tvar finished = false;\n\tvar element;\n\twhile (!finished) {\n\t\telement = this.elements.pop();\n\t\tfinished = callback(element);\n\t}\n\treturn element;\n};\n\nObject.defineProperty(ElementStack.prototype, 'top', {\n\tget: function() {\n\t\treturn this.elements[this.elements.length - 1];\n\t}\n});\n\nObject.defineProperty(ElementStack.prototype, 'length', {\n\tget: function() {\n\t\treturn this.elements.length;\n\t}\n});\n\nexports.ElementStack = ElementStack;\n\n},\n{}],\n2:[function(_dereq_,module,exports){\nvar entities = _dereq_('html5-entities');\nvar InputStream = _dereq_('./InputStream').InputStream;\n\nvar namedEntityPrefixes = {};\nObject.keys(entities).forEach(function (entityKey) {\n\tfor (var i = 0; i < entityKey.length; i++) {\n\t\tnamedEntityPrefixes[entityKey.substring(0, i + 1)] = true;\n\t}\n});\n\nfunction isAlphaNumeric(c) {\n\treturn (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');\n}\n\nfunction isHexDigit(c) {\n\treturn (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');\n}\n\nfunction isDecimalDigit(c) {\n\treturn (c >= '0' && c <= '9');\n}\n\nvar EntityParser = {};\n\nEntityParser.consumeEntity = function(buffer, tokenizer, additionalAllowedCharacter) {\n\tvar decodedCharacter = '';\n\tvar consumedCharacters = '';\n\tvar ch = buffer.char();\n\tif (ch === InputStream.EOF)\n\t\treturn false;\n\tconsumedCharacters += ch;\n\tif (ch == '\\t' || ch == '\\n' || ch == '\\v' || ch == ' ' || ch == '<' || ch == '&') {\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n\tif (additionalAllowedCharacter === ch) {\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n\tif (ch == '#') {\n\t\tch = buffer.shift(1);\n\t\tif (ch === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-numeric-entity-but-got-eof\");\n\t\t\tbuffer.unget(consumedCharacters);\n\t\t\treturn false;\n\t\t}\n\t\tconsumedCharacters += ch;\n\t\tvar radix = 10;\n\t\tvar isDigit = isDecimalDigit;\n\t\tif (ch == 'x' || ch == 'X') {\n\t\t\tradix = 16;\n\t\t\tisDigit = isHexDigit;\n\t\t\tch = buffer.shift(1);\n\t\t\tif (ch === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"expected-numeric-entity-but-got-eof\");\n\t\t\t\tbuffer.unget(consumedCharacters);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconsumedCharacters += ch;\n\t\t}\n\t\tif (isDigit(ch)) {\n\t\t\tvar code = '';\n\t\t\twhile (ch !== InputStream.EOF && isDigit(ch)) {\n\t\t\t\tcode += ch;\n\t\t\t\tch = buffer.char();\n\t\t\t}\n\t\t\tcode = parseInt(code, radix);\n\t\t\tvar replacement = this.replaceEntityNumbers(code);\n\t\t\tif (replacement) {\n\t\t\t\ttokenizer._parseError(\"invalid-numeric-entity-replaced\");\n\t\t\t\tcode = replacement;\n\t\t\t}\n\t\t\tif (code > 0xFFFF && code <= 0x10FFFF) {\n\t\t code -= 0x10000;\n\t\t var first = ((0xffc00 & code) >> 10) + 0xD800;\n\t\t var second = (0x3ff & code) + 0xDC00;\n\t\t\t\tdecodedCharacter = String.fromCharCode(first, second);\n\t\t\t} else\n\t\t\t\tdecodedCharacter = String.fromCharCode(code);\n\t\t\tif (ch !== ';') {\n\t\t\t\ttokenizer._parseError(\"numeric-entity-without-semicolon\");\n\t\t\t\tbuffer.unget(ch);\n\t\t\t}\n\t\t\treturn decodedCharacter;\n\t\t}\n\t\tbuffer.unget(consumedCharacters);\n\t\ttokenizer._parseError(\"expected-numeric-entity\");\n\t\treturn false;\n\t}\n\tif ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {\n\t\tvar mostRecentMatch = '';\n\t\twhile (namedEntityPrefixes[consumedCharacters]) {\n\t\t\tif (entities[consumedCharacters]) {\n\t\t\t\tmostRecentMatch = consumedCharacters;\n\t\t\t}\n\t\t\tif (ch == ';')\n\t\t\t\tbreak;\n\t\t\tch = buffer.char();\n\t\t\tif (ch === InputStream.EOF)\n\t\t\t\tbreak;\n\t\t\tconsumedCharacters += ch;\n\t\t}\n\t\tif (!mostRecentMatch) {\n\t\t\ttokenizer._parseError(\"expected-named-entity\");\n\t\t\tbuffer.unget(consumedCharacters);\n\t\t\treturn false;\n\t\t}\n\t\tdecodedCharacter = entities[mostRecentMatch];\n\t\tif (ch === ';' || !additionalAllowedCharacter || !(isAlphaNumeric(ch) || ch === '=')) {\n\t\t\tif (consumedCharacters.length > mostRecentMatch.length) {\n\t\t\t\tbuffer.unget(consumedCharacters.substring(mostRecentMatch.length));\n\t\t\t}\n\t\t\tif (ch !== ';') {\n\t\t\t\ttokenizer._parseError(\"named-entity-without-semicolon\");\n\t\t\t}\n\t\t\treturn decodedCharacter;\n\t\t}\n\t\tbuffer.unget(consumedCharacters);\n\t\treturn false;\n\t}\n};\n\nEntityParser.replaceEntityNumbers = function(c) {\n\tswitch(c) {\n\t\tcase 0x00: return 0xFFFD; // REPLACEMENT CHARACTER\n\t\tcase 0x13: return 0x0010; // Carriage return\n\t\tcase 0x80: return 0x20AC; // EURO SIGN\n\t\tcase 0x81: return 0x0081; // \n\t\tcase 0x82: return 0x201A; // SINGLE LOW-9 QUOTATION MARK\n\t\tcase 0x83: return 0x0192; // LATIN SMALL LETTER F WITH HOOK\n\t\tcase 0x84: return 0x201E; // DOUBLE LOW-9 QUOTATION MARK\n\t\tcase 0x85: return 0x2026; // HORIZONTAL ELLIPSIS\n\t\tcase 0x86: return 0x2020; // DAGGER\n\t\tcase 0x87: return 0x2021; // DOUBLE DAGGER\n\t\tcase 0x88: return 0x02C6; // MODIFIER LETTER CIRCUMFLEX ACCENT\n\t\tcase 0x89: return 0x2030; // PER MILLE SIGN\n\t\tcase 0x8A: return 0x0160; // LATIN CAPITAL LETTER S WITH CARON\n\t\tcase 0x8B: return 0x2039; // SINGLE LEFT-POINTING ANGLE QUOTATION MARK\n\t\tcase 0x8C: return 0x0152; // LATIN CAPITAL LIGATURE OE\n\t\tcase 0x8D: return 0x008D; // \n\t\tcase 0x8E: return 0x017D; // LATIN CAPITAL LETTER Z WITH CARON\n\t\tcase 0x8F: return 0x008F; // \n\t\tcase 0x90: return 0x0090; // \n\t\tcase 0x91: return 0x2018; // LEFT SINGLE QUOTATION MARK\n\t\tcase 0x92: return 0x2019; // RIGHT SINGLE QUOTATION MARK\n\t\tcase 0x93: return 0x201C; // LEFT DOUBLE QUOTATION MARK\n\t\tcase 0x94: return 0x201D; // RIGHT DOUBLE QUOTATION MARK\n\t\tcase 0x95: return 0x2022; // BULLET\n\t\tcase 0x96: return 0x2013; // EN DASH\n\t\tcase 0x97: return 0x2014; // EM DASH\n\t\tcase 0x98: return 0x02DC; // SMALL TILDE\n\t\tcase 0x99: return 0x2122; // TRADE MARK SIGN\n\t\tcase 0x9A: return 0x0161; // LATIN SMALL LETTER S WITH CARON\n\t\tcase 0x9B: return 0x203A; // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\n\t\tcase 0x9C: return 0x0153; // LATIN SMALL LIGATURE OE\n\t\tcase 0x9D: return 0x009D; // \n\t\tcase 0x9E: return 0x017E; // LATIN SMALL LETTER Z WITH CARON\n\t\tcase 0x9F: return 0x0178; // LATIN CAPITAL LETTER Y WITH DIAERESIS\n\t\tdefault:\n\t\t\tif ((c >= 0xD800 && c <= 0xDFFF) || c > 0x10FFFF) {\n\t\t\t\treturn 0xFFFD;\n\t\t\t} else if ((c >= 0x0001 && c <= 0x0008) || (c >= 0x000E && c <= 0x001F) ||\n\t\t\t\t(c >= 0x007F && c <= 0x009F) || (c >= 0xFDD0 && c <= 0xFDEF) ||\n\t\t\t\tc == 0x000B || c == 0xFFFE || c == 0x1FFFE || c == 0x2FFFFE ||\n\t\t\t\tc == 0x2FFFF || c == 0x3FFFE || c == 0x3FFFF || c == 0x4FFFE ||\n\t\t\t\tc == 0x4FFFF || c == 0x5FFFE || c == 0x5FFFF || c == 0x6FFFE ||\n\t\t\t\tc == 0x6FFFF || c == 0x7FFFE || c == 0x7FFFF || c == 0x8FFFE ||\n\t\t\t\tc == 0x8FFFF || c == 0x9FFFE || c == 0x9FFFF || c == 0xAFFFE ||\n\t\t\t\tc == 0xAFFFF || c == 0xBFFFE || c == 0xBFFFF || c == 0xCFFFE ||\n\t\t\t\tc == 0xCFFFF || c == 0xDFFFE || c == 0xDFFFF || c == 0xEFFFE ||\n\t\t\t\tc == 0xEFFFF || c == 0xFFFFE || c == 0xFFFFF || c == 0x10FFFE ||\n\t\t\t\tc == 0x10FFFF) {\n\t\t\t\treturn c;\n\t\t\t}\n\t}\n};\n\nexports.EntityParser = EntityParser;\n\n},\n{\"./InputStream\":3,\"html5-entities\":12}],\n3:[function(_dereq_,module,exports){\nfunction InputStream() {\n\tthis.data = '';\n\tthis.start = 0;\n\tthis.committed = 0;\n\tthis.eof = false;\n\tthis.lastLocation = {line: 0, column: 0};\n}\n\nInputStream.EOF = -1;\n\nInputStream.DRAIN = -2;\n\nInputStream.prototype = {\n\tslice: function() {\n\t\tif(this.start >= this.data.length) {\n\t\t\tif(!this.eof) throw InputStream.DRAIN;\n\t\t\treturn InputStream.EOF;\n\t\t}\n\t\treturn this.data.slice(this.start, this.data.length);\n\t},\n\tchar: function() {\n\t\tif(!this.eof && this.start >= this.data.length - 1) throw InputStream.DRAIN;\n\t\tif(this.start >= this.data.length) {\n\t\t\treturn InputStream.EOF;\n\t\t}\n\t\tvar ch = this.data[this.start++];\n\t\tif (ch === '\\r')\n\t\t\tch = '\\n';\n\t\treturn ch;\n\t},\n\tadvance: function(amount) {\n\t\tthis.start += amount;\n\t\tif(this.start >= this.data.length) {\n\t\t\tif(!this.eof) throw InputStream.DRAIN;\n\t\t\treturn InputStream.EOF;\n\t\t} else {\n\t\t\tif(this.committed > this.data.length / 2) {\n\t\t\t\tthis.lastLocation = this.location();\n\t\t\t\tthis.data = this.data.slice(this.committed);\n\t\t\t\tthis.start = this.start - this.committed;\n\t\t\t\tthis.committed = 0;\n\t\t\t}\n\t\t}\n\t},\n\tmatchWhile: function(re) {\n\t\tif(this.eof && this.start >= this.data.length ) return '';\n\t\tvar r = new RegExp(\"^\"+re+\"+\");\n\t\tvar m = r.exec(this.slice());\n\t\tif(m) {\n\t\t\tif(!this.eof && m[0].length == this.data.length - this.start) throw InputStream.DRAIN;\n\t\t\tthis.advance(m[0].length);\n\t\t\treturn m[0];\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t},\n\tmatchUntil: function(re) {\n\t\tvar m, s;\n\t\ts = this.slice();\n\t\tif(s === InputStream.EOF) {\n\t\t\treturn '';\n\t\t} else if(m = new RegExp(re + (this.eof ? \"|$\" : \"\")).exec(s)) {\n\t\t\tvar t = this.data.slice(this.start, this.start + m.index);\n\t\t\tthis.advance(m.index);\n\t\t\treturn t.replace(/\\r/g, '\\n').replace(/\\n{2,}/g, '\\n');\n\t\t} else {\n\t\t\tthrow InputStream.DRAIN;\n\t\t}\n\t},\n\tappend: function(data) {\n\t\tthis.data += data;\n\t},\n\tshift: function(n) {\n\t\tif(!this.eof && this.start + n >= this.data.length) throw InputStream.DRAIN;\n\t\tif(this.eof && this.start >= this.data.length) return InputStream.EOF;\n\t\tvar d = this.data.slice(this.start, this.start + n).toString();\n\t\tthis.advance(Math.min(n, this.data.length - this.start));\n\t\treturn d;\n\t},\n\tpeek: function(n) {\n\t\tif(!this.eof && this.start + n >= this.data.length) throw InputStream.DRAIN;\n\t\tif(this.eof && this.start >= this.data.length) return InputStream.EOF;\n\t\treturn this.data.slice(this.start, Math.min(this.start + n, this.data.length)).toString();\n\t},\n\tlength: function() {\n\t\treturn this.data.length - this.start - 1;\n\t},\n\tunget: function(d) {\n\t\tif(d === InputStream.EOF) return;\n\t\tthis.start -= (d.length);\n\t},\n\tundo: function() {\n\t\tthis.start = this.committed;\n\t},\n\tcommit: function() {\n\t\tthis.committed = this.start;\n\t},\n\tlocation: function() {\n\t\tvar lastLine = this.lastLocation.line;\n\t\tvar lastColumn = this.lastLocation.column;\n\t\tvar read = this.data.slice(0, this.committed);\n\t\tvar newlines = read.match(/\\n/g);\n\t\tvar line = newlines ? lastLine + newlines.length : lastLine;\n\t\tvar column = newlines ? read.length - read.lastIndexOf('\\n') - 1 : lastColumn + read.length;\n\t\treturn {line: line, column: column};\n\t}\n};\n\nexports.InputStream = InputStream;\n\n},\n{}],\n4:[function(_dereq_,module,exports){\nvar SpecialElements = {\n\t\"http://www.w3.org/1999/xhtml\": [\n\t\t'address',\n\t\t'applet',\n\t\t'area',\n\t\t'article',\n\t\t'aside',\n\t\t'base',\n\t\t'basefont',\n\t\t'bgsound',\n\t\t'blockquote',\n\t\t'body',\n\t\t'br',\n\t\t'button',\n\t\t'caption',\n\t\t'center',\n\t\t'col',\n\t\t'colgroup',\n\t\t'dd',\n\t\t'details',\n\t\t'dir',\n\t\t'div',\n\t\t'dl',\n\t\t'dt',\n\t\t'embed',\n\t\t'fieldset',\n\t\t'figcaption',\n\t\t'figure',\n\t\t'footer',\n\t\t'form',\n\t\t'frame',\n\t\t'frameset',\n\t\t'h1',\n\t\t'h2',\n\t\t'h3',\n\t\t'h4',\n\t\t'h5',\n\t\t'h6',\n\t\t'head',\n\t\t'header',\n\t\t'hgroup',\n\t\t'hr',\n\t\t'html',\n\t\t'iframe',\n\t\t'img',\n\t\t'input',\n\t\t'isindex',\n\t\t'li',\n\t\t'link',\n\t\t'listing',\n\t\t'main',\n\t\t'marquee',\n\t\t'menu',\n\t\t'menuitem',\n\t\t'meta',\n\t\t'nav',\n\t\t'noembed',\n\t\t'noframes',\n\t\t'noscript',\n\t\t'object',\n\t\t'ol',\n\t\t'p',\n\t\t'param',\n\t\t'plaintext',\n\t\t'pre',\n\t\t'script',\n\t\t'section',\n\t\t'select',\n\t\t'source',\n\t\t'style',\n\t\t'summary',\n\t\t'table',\n\t\t'tbody',\n\t\t'td',\n\t\t'textarea',\n\t\t'tfoot',\n\t\t'th',\n\t\t'thead',\n\t\t'title',\n\t\t'tr',\n\t\t'track',\n\t\t'ul',\n\t\t'wbr',\n\t\t'xmp'\n\t],\n\t\"http://www.w3.org/1998/Math/MathML\": [\n\t\t'mi',\n\t\t'mo',\n\t\t'mn',\n\t\t'ms',\n\t\t'mtext',\n\t\t'annotation-xml'\n\t],\n\t\"http://www.w3.org/2000/svg\": [\n\t\t'foreignObject',\n\t\t'desc',\n\t\t'title'\n\t]\n};\n\n\nfunction StackItem(namespaceURI, localName, attributes, node) {\n\tthis.localName = localName;\n\tthis.namespaceURI = namespaceURI;\n\tthis.attributes = attributes;\n\tthis.node = node;\n}\nStackItem.prototype.isSpecial = function() {\n\treturn this.namespaceURI in SpecialElements &&\n\t\tSpecialElements[this.namespaceURI].indexOf(this.localName) > -1;\n};\n\nStackItem.prototype.isFosterParenting = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\treturn this.localName === 'table' ||\n\t\t\tthis.localName === 'tbody' ||\n\t\t\tthis.localName === 'tfoot' ||\n\t\t\tthis.localName === 'thead' ||\n\t\t\tthis.localName === 'tr';\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isNumberedHeader = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\treturn this.localName === 'h1' ||\n\t\t\tthis.localName === 'h2' ||\n\t\t\tthis.localName === 'h3' ||\n\t\t\tthis.localName === 'h4' ||\n\t\t\tthis.localName === 'h5' ||\n\t\t\tthis.localName === 'h6';\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isForeign = function() {\n\treturn this.namespaceURI != \"http://www.w3.org/1999/xhtml\";\n};\n\nfunction getAttribute(item, name) {\n\tfor (var i = 0; i < item.attributes.length; i++) {\n\t\tif (item.attributes[i].nodeName == name)\n\t\t\treturn item.attributes[i].nodeValue;\n\t}\n\treturn null;\n}\n\nStackItem.prototype.isHtmlIntegrationPoint = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1998/Math/MathML\") {\n\t\tif (this.localName !== \"annotation-xml\")\n\t\t\treturn false;\n\t\tvar encoding = getAttribute(this, 'encoding');\n\t\tif (!encoding)\n\t\t\treturn false;\n\t\tencoding = encoding.toLowerCase();\n\t\treturn encoding === \"text/html\" || encoding === \"application/xhtml+xml\";\n\t}\n\tif (this.namespaceURI === \"http://www.w3.org/2000/svg\") {\n\t\treturn this.localName === \"foreignObject\"\n\t\t\t|| this.localName === \"desc\"\n\t\t\t|| this.localName === \"title\";\n\t}\n\treturn false;\n};\n\nStackItem.prototype.isMathMLTextIntegrationPoint = function() {\n\tif (this.namespaceURI === \"http://www.w3.org/1998/Math/MathML\") {\n\t\treturn this.localName === \"mi\"\n\t\t\t|| this.localName === \"mo\"\n\t\t\t|| this.localName === \"mn\"\n\t\t\t|| this.localName === \"ms\"\n\t\t\t|| this.localName === \"mtext\";\n\t}\n\treturn false;\n};\n\nexports.StackItem = StackItem;\n\n},\n{}],\n5:[function(_dereq_,module,exports){\nvar InputStream = _dereq_('./InputStream').InputStream;\nvar EntityParser = _dereq_('./EntityParser').EntityParser;\n\nfunction isWhitespace(c){\n\treturn c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\r\" || c === \"\\f\";\n}\n\nfunction isAlpha(c) {\n\treturn (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');\n}\nfunction Tokenizer(tokenHandler) {\n\tthis._tokenHandler = tokenHandler;\n\tthis._state = Tokenizer.DATA;\n\tthis._inputStream = new InputStream();\n\tthis._currentToken = null;\n\tthis._temporaryBuffer = '';\n\tthis._additionalAllowedCharacter = '';\n}\n\nTokenizer.prototype._parseError = function(code, args) {\n\tthis._tokenHandler.parseError(code, args);\n};\n\nTokenizer.prototype._emitToken = function(token) {\n\tif (token.type === 'StartTag') {\n\t\tfor (var i = 1; i < token.data.length; i++) {\n\t\t\tif (!token.data[i].nodeName)\n\t\t\t\ttoken.data.splice(i--, 1);\n\t\t}\n\t} else if (token.type === 'EndTag') {\n\t\tif (token.selfClosing) {\n\t\t\tthis._parseError('self-closing-flag-on-end-tag');\n\t\t}\n\t\tif (token.data.length !== 0) {\n\t\t\tthis._parseError('attributes-in-end-tag');\n\t\t}\n\t}\n\tthis._tokenHandler.processToken(token);\n\tif (token.type === 'StartTag' && token.selfClosing && !this._tokenHandler.isSelfClosingFlagAcknowledged()) {\n\t\tthis._parseError('non-void-element-with-trailing-solidus', {name: token.name});\n\t}\n};\n\nTokenizer.prototype._emitCurrentToken = function() {\n\tthis._state = Tokenizer.DATA;\n\tthis._emitToken(this._currentToken);\n};\n\nTokenizer.prototype._currentAttribute = function() {\n\treturn this._currentToken.data[this._currentToken.data.length - 1];\n};\n\nTokenizer.prototype.setState = function(state) {\n\tthis._state = state;\n};\n\nTokenizer.prototype.tokenize = function(source) {\n\tTokenizer.DATA = data_state;\n\tTokenizer.RCDATA = rcdata_state;\n\tTokenizer.RAWTEXT = rawtext_state;\n\tTokenizer.SCRIPT_DATA = script_data_state;\n\tTokenizer.PLAINTEXT = plaintext_state;\n\n\n\tthis._state = Tokenizer.DATA;\n\n\tthis._inputStream.append(source);\n\n\tthis._tokenHandler.startTokenization(this);\n\n\tthis._inputStream.eof = true;\n\n\tvar tokenizer = this;\n\n\twhile (this._state.call(this, this._inputStream));\n\n\n\tfunction data_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(character_reference_in_data_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(tag_open_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"&|<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_data_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer);\n\t\ttokenizer.setState(data_state);\n\t\ttokenizer._emitToken({type: 'Characters', data: character || '&'});\n\t\treturn true;\n\t}\n\n\tfunction rcdata_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(character_reference_in_rcdata_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(rcdata_less_than_sign_state);\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"&|<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_rcdata_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer);\n\t\ttokenizer.setState(rcdata_state);\n\t\ttokenizer._emitToken({type: 'Characters', data: character || '&'});\n\t\treturn true;\n\t}\n\n\tfunction rawtext_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(rawtext_less_than_sign_state);\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction plaintext_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === \"\\u0000\") {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\n\tfunction script_data_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._emitToken({type: 'EOF', data: null});\n\t\t\treturn false;\n\t\t} else if (data === '<') {\n\t\t\ttokenizer.setState(script_data_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tvar chars = buffer.matchUntil(\"<|\\u0000\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data + chars});\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rcdata_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === \"/\") {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(rcdata_end_tag_open_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(rcdata_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction rcdata_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\ttokenizer.setState(rcdata_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: this._temporaryBuffer, data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '>'});\n\t\t\ttokenizer.setState(script_data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_less_then_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '/') {\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(script_data_escaped_end_tag_open_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<' + data});\n\t\t\tthis._temporaryBuffer = data;\n\t\t\ttokenizer.setState(script_data_double_escape_start_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_escaped_end_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer = data;\n\t\t\ttokenizer.setState(script_data_escaped_end_tag_name_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '' && appropriate) {\n\t\t\ttokenizer._currentToken = {type: 'EndTag', name: 'script', data: [], selfClosing: false};\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tif (this._temporaryBuffer.toLowerCase() === 'script')\n\t\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t\telse\n\t\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_double_escaped_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\ttokenizer.setState(script_data_double_escaped_dash_dash_state);\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_dash_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-script');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '-'});\n\t\t\tbuffer.commit();\n\t\t} else if (data === '<') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\ttokenizer.setState(script_data_double_escaped_less_than_sign_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '>'});\n\t\t\ttokenizer.setState(script_data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError('invalid-codepoint');\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '\\uFFFD'});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escaped_less_than_sign_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === '/') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '/'});\n\t\t\tthis._temporaryBuffer = '';\n\t\t\ttokenizer.setState(script_data_double_escape_end_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction script_data_double_escape_end_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (isWhitespace(data) || data === '/' || data === '>') {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tif (this._temporaryBuffer.toLowerCase() === 'script')\n\t\t\t\ttokenizer.setState(script_data_escaped_state);\n\t\t\telse\n\t\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t\tthis._temporaryBuffer += data;\n\t\t\tbuffer.commit();\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(script_data_double_escaped_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"bare-less-than-sign-at-eof\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '<'});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken = {type: 'StartTag', name: data.toLowerCase(), data: []};\n\t\t\ttokenizer.setState(tag_name_state);\n\t\t} else if (data === '!') {\n\t\t\ttokenizer.setState(markup_declaration_open_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(close_tag_open_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-tag-name-but-got-right-bracket\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: \"<>\"});\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '?') {\n\t\t\ttokenizer._parseError(\"expected-tag-name-but-got-question-mark\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"expected-tag-name\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: \"<\"});\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction close_tag_open_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-eof\");\n\t\t\ttokenizer._emitToken({type: 'Characters', data: '') {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-right-bracket\");\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"expected-closing-tag-but-got-char\", {data: data}); // param 1 is datavars:\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction tag_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError('eof-in-tag-name');\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.name += data.toLowerCase();\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.name += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.name += data;\n\t\t}\n\t\tbuffer.commit();\n\n\t\treturn true;\n\t}\n\n\tfunction before_attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-attribute-name-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data.toLowerCase(), nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"' || data === '=' || data === '<') {\n\t\t\ttokenizer._parseError(\"invalid-character-in-attribute-name\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: \"\\uFFFD\", nodeValue: \"\"});\n\t\t} else {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tvar leavingThisState = true;\n\t\tvar shouldEmit = false;\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-name\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\tshouldEmit = true;\n\t\t} else if (data === '=') {\n\t\t\ttokenizer.setState(before_attribute_value_state);\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentAttribute().nodeName += data.toLowerCase();\n\t\t\tleavingThisState = false;\n\t\t} else if (data === '>') {\n\t\t\tshouldEmit = true;\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(after_attribute_name_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"invalid-character-in-attribute-name\");\n\t\t\ttokenizer._currentAttribute().nodeName += data;\n\t\t\tleavingThisState = false;\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeName += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeName += data;\n\t\t\tleavingThisState = false;\n\t\t}\n\n\t\tif (leavingThisState) {\n\t\t\tvar attributes = tokenizer._currentToken.data;\n\t\t\tvar currentAttribute = attributes[attributes.length - 1];\n\t\t\tfor (var i = attributes.length - 2; i >= 0; i--) {\n\t\t\t\tif (currentAttribute.nodeName === attributes[i].nodeName) {\n\t\t\t\t\ttokenizer._parseError(\"duplicate-attribute\", {name: currentAttribute.nodeName});\n\t\t\t\t\tcurrentAttribute.nodeName = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (shouldEmit)\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_attribute_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-end-of-tag-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (data === '=') {\n\t\t\ttokenizer.setState(before_attribute_value_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isAlpha(data)) {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else if (data === \"'\" || data === '\"' || data === '<') {\n\t\t\ttokenizer._parseError(\"invalid-character-after-attribute-name\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data.push({nodeName: \"\\uFFFD\", nodeValue: \"\"});\n\t\t} else {\n\t\t\ttokenizer._currentToken.data.push({nodeName: data, nodeValue: \"\"});\n\t\t\ttokenizer.setState(attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_attribute_value_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-attribute-value-but-got-eof\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\treturn true;\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(attribute_value_double_quoted_state);\n\t\t} else if (data === '&') {\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t\tbuffer.unget(data);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(attribute_value_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-attribute-value-but-got-right-bracket\");\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '=' || data === '<' || data === '`') {\n\t\t\ttokenizer._parseError(\"unexpected-character-in-unquoted-attribute-value\");\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-value-double-quote\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_attribute_value_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = '\"';\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\tvar s = buffer.matchUntil('[\\0\"&]');\n\t\t\tdata = data + s;\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-attribute-value-single-quote\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_attribute_value_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = \"'\";\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentAttribute().nodeValue += data + buffer.matchUntil(\"\\u0000|['&]\");\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction attribute_value_unquoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '&') {\n\t\t\tthis._additionalAllowedCharacter = \">\";\n\t\t\ttokenizer.setState(character_reference_in_attribute_value_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"' || data === \"'\" || data === '=' || data === '`' || data === '<') {\n\t\t\ttokenizer._parseError(\"unexpected-character-in-unquoted-attribute-value\");\n\t\t\ttokenizer._currentAttribute().nodeValue += data;\n\t\t\tbuffer.commit();\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentAttribute().nodeValue += \"\\uFFFD\";\n\t\t} else {\n\t\t\tvar o = buffer.matchUntil(\"\\u0000|[\"+ \"\\t\\n\\v\\f\\x20\\r\" + \"&<>\\\"'=`\" +\"]\");\n\t\t\tif (o === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"eof-in-attribute-value-no-quotes\");\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t\t}\n\t\t\tbuffer.commit();\n\t\t\ttokenizer._currentAttribute().nodeValue += data + o;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction character_reference_in_attribute_value_state(buffer) {\n\t\tvar character = EntityParser.consumeEntity(buffer, tokenizer, this._additionalAllowedCharacter);\n\t\tthis._currentAttribute().nodeValue += character || '&';\n\t\tif (this._additionalAllowedCharacter === '\"')\n\t\t\ttokenizer.setState(attribute_value_double_quoted_state);\n\t\telse if (this._additionalAllowedCharacter === '\\'')\n\t\t\ttokenizer.setState(attribute_value_single_quoted_state);\n\t\telse if (this._additionalAllowedCharacter === '>')\n\t\t\ttokenizer.setState(attribute_value_unquoted_state);\n\t\treturn true;\n\t}\n\n\tfunction after_attribute_value_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '/') {\n\t\t\ttokenizer.setState(self_closing_tag_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-character-after-attribute-value\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction self_closing_tag_state(buffer) {\n\t\tvar c = buffer.char();\n\t\tif (c === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"unexpected-eof-after-solidus-in-tag\");\n\t\t\tbuffer.unget(c);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (c === '>') {\n\t\t\ttokenizer._currentToken.selfClosing = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-character-after-solidus-in-tag\");\n\t\t\tbuffer.unget(c);\n\t\t\ttokenizer.setState(before_attribute_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction bogus_comment_state(buffer) {\n\t\tvar data = buffer.matchUntil('>');\n\t\tdata = data.replace(/\\u0000/g, \"\\uFFFD\");\n\t\tbuffer.char();\n\t\ttokenizer._emitToken({type: 'Comment', data: data});\n\t\ttokenizer.setState(data_state);\n\t\treturn true;\n\t}\n\n\tfunction markup_declaration_open_state(buffer) {\n\t\tvar chars = buffer.shift(2);\n\t\tif (chars === '--') {\n\t\t\ttokenizer._currentToken = {type: 'Comment', data: ''};\n\t\t\ttokenizer.setState(comment_start_state);\n\t\t} else {\n\t\t\tvar newchars = buffer.shift(5);\n\t\t\tif (newchars === InputStream.EOF || chars === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"expected-dashes-or-doctype\");\n\t\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t\t\tbuffer.unget(chars);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tchars += newchars;\n\t\t\tif (chars.toUpperCase() === 'DOCTYPE') {\n\t\t\t\ttokenizer._currentToken = {type: 'Doctype', name: '', publicId: null, systemId: null, forceQuirks: false};\n\t\t\t\ttokenizer.setState(doctype_state);\n\t\t\t} else if (tokenizer._tokenHandler.isCdataSectionAllowed() && chars === '[CDATA[') {\n\t\t\t\ttokenizer.setState(cdata_section_state);\n\t\t\t} else {\n\t\t\t\ttokenizer._parseError(\"expected-dashes-or-doctype\");\n\t\t\t\tbuffer.unget(chars);\n\t\t\t\ttokenizer.setState(bogus_comment_state);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction cdata_section_state(buffer) {\n\t\tvar data = buffer.matchUntil(']]>');\n\t\tbuffer.shift(3);\n\t\tif (data) {\n\t\t\ttokenizer._emitToken({type: 'Characters', data: data});\n\t\t}\n\t\ttokenizer.setState(data_state);\n\t\treturn true;\n\t}\n\n\tfunction comment_start_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_start_dash_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"incorrect-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_start_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"incorrect-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '-' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_dash_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"\\uFFFD\";\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += data;\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_dash_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-end-dash\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer.setState(comment_end_state);\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"-\\uFFFD\";\n\t\t\ttokenizer.setState(comment_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '-' + data + buffer.matchUntil('\\u0000|-');\n\t\t\tbuffer.char();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-double-dash\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '!') {\n\t\t\ttokenizer._parseError(\"unexpected-bang-after-double-dash-in-comment\");\n\t\t\ttokenizer.setState(comment_end_bang_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._parseError(\"unexpected-dash-after-double-dash-in-comment\");\n\t\t\ttokenizer._currentToken.data += data;\n\t\t} else if (data === '\\u0000') {\n\t\t\ttokenizer._parseError(\"invalid-codepoint\");\n\t\t\ttokenizer._currentToken.data += \"--\\uFFFD\";\n\t\t\ttokenizer.setState(comment_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-comment\");\n\t\t\ttokenizer._currentToken.data += '--' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction comment_end_bang_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-comment-end-bang-state\");\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitToken(tokenizer._currentToken);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '-') {\n\t\t\ttokenizer._currentToken.data += '--!';\n\t\t\ttokenizer.setState(comment_end_dash_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.data += '--!' + data;\n\t\t\ttokenizer.setState(comment_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-eof\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_name_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"need-space-after-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-eof\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"expected-doctype-name-but-got-right-bracket\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (isAlpha(data))\n\t\t\t\tdata = data.toLowerCase();\n\t\t\ttokenizer._currentToken.name = data;\n\t\t\ttokenizer.setState(doctype_name_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._parseError(\"eof-in-doctype-name\");\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(after_doctype_name_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (isAlpha(data))\n\t\t\t\tdata = data.toLowerCase();\n\t\t\ttokenizer._currentToken.name += data;\n\t\t\tbuffer.commit();\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_name_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\tif (['p', 'P'].indexOf(data) > -1) {\n\t\t\t\tvar expected = [['u', 'U'], ['b', 'B'], ['l', 'L'], ['i', 'I'], ['c', 'C']];\n\t\t\t\tvar matched = expected.every(function(expected){\n\t\t\t\t\tdata = buffer.char();\n\t\t\t\t\treturn expected.indexOf(data) > -1;\n\t\t\t\t});\n\t\t\t\tif (matched) {\n\t\t\t\t\ttokenizer.setState(after_doctype_public_keyword_state);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else if (['s', 'S'].indexOf(data) > -1) {\n\t\t\t\tvar expected = [['y', 'Y'], ['s', 'S'], ['t', 'T'], ['e', 'E'], ['m', 'M']];\n\t\t\t\tvar matched = expected.every(function(expected){\n\t\t\t\t\tdata = buffer.char();\n\t\t\t\t\treturn expected.indexOf(data) > -1;\n\t\t\t\t});\n\t\t\t\tif (matched) {\n\t\t\t\t\ttokenizer.setState(after_doctype_system_keyword_state);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\n\t\t\tif (data === InputStream.EOF) {\n\t\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\t\tbuffer.unget(data);\n\t\t\t\ttokenizer.setState(data_state);\n\t\t\t\ttokenizer._emitCurrentToken();\n\t\t\t} else {\n\t\t\t\ttokenizer._parseError(\"expected-space-or-right-bracket-in-doctype\", {data: data});\n\t\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_public_keyword_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_public_identifier_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_public_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.publicId = '';\n\t\t\ttokenizer.setState(doctype_public_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.publicId = '';\n\t\t\ttokenizer.setState(doctype_public_identifier_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_public_identifier_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_doctype_public_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._currentToken.publicId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_public_identifier_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_doctype_public_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else {\n\t\t\ttokenizer._currentToken.publicId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_public_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(between_doctype_public_and_system_identifiers_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer.setState(data_state);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction between_doctype_public_and_system_identifiers_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_system_keyword_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t} else if (data === \"'\" || data === '\"') {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t} else {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(before_doctype_system_identifier_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction before_doctype_system_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_double_quoted_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer._currentToken.systemId = '';\n\t\t\ttokenizer.setState(doctype_system_identifier_single_quoted_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_system_identifier_double_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '\"') {\n\t\t\ttokenizer.setState(after_doctype_system_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.systemId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction doctype_system_identifier_single_quoted_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === \"'\") {\n\t\t\ttokenizer.setState(after_doctype_system_identifier_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._parseError(\"unexpected-end-of-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._currentToken.systemId += data;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction after_doctype_system_identifier_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\ttokenizer._parseError(\"eof-in-doctype\");\n\t\t\ttokenizer._currentToken.forceQuirks = true;\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (isWhitespace(data)) {\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else {\n\t\t\ttokenizer._parseError(\"unexpected-char-in-doctype\");\n\t\t\ttokenizer.setState(bogus_doctype_state);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction bogus_doctype_state(buffer) {\n\t\tvar data = buffer.char();\n\t\tif (data === InputStream.EOF) {\n\t\t\tbuffer.unget(data);\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t} else if (data === '>') {\n\t\t\ttokenizer._emitCurrentToken();\n\t\t\ttokenizer.setState(data_state);\n\t\t}\n\t\treturn true;\n\t}\n};\n\nObject.defineProperty(Tokenizer.prototype, 'lineNumber', {\n\tget: function() {\n\t\treturn this._inputStream.location().line;\n\t}\n});\n\nObject.defineProperty(Tokenizer.prototype, 'columnNumber', {\n\tget: function() {\n\t\treturn this._inputStream.location().column;\n\t}\n});\n\nexports.Tokenizer = Tokenizer;\n\n},\n{\"./EntityParser\":2,\"./InputStream\":3}],\n6:[function(_dereq_,module,exports){\nvar assert = _dereq_('assert');\n\nvar messages = _dereq_('./messages.json');\nvar constants = _dereq_('./constants');\n\nvar EventEmitter = _dereq_('events').EventEmitter;\n\nvar Tokenizer = _dereq_('./Tokenizer').Tokenizer;\nvar ElementStack = _dereq_('./ElementStack').ElementStack;\nvar StackItem = _dereq_('./StackItem').StackItem;\n\nvar Marker = {};\n\nfunction isWhitespace(ch) {\n\treturn ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\" || ch === \"\\f\";\n}\n\nfunction isWhitespaceOrReplacementCharacter(ch) {\n\treturn isWhitespace(ch) || ch === '\\uFFFD';\n}\n\nfunction isAllWhitespace(characters) {\n\tfor (var i = 0; i < characters.length; i++) {\n\t\tvar ch = characters[i];\n\t\tif (!isWhitespace(ch))\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction isAllWhitespaceOrReplacementCharacters(characters) {\n\tfor (var i = 0; i < characters.length; i++) {\n\t\tvar ch = characters[i];\n\t\tif (!isWhitespaceOrReplacementCharacter(ch))\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction getAttribute(node, name) {\n\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\tvar attribute = node.attributes[i];\n\t\tif (attribute.nodeName === name) {\n\t\t\treturn attribute;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction CharacterBuffer(characters) {\n\tthis.characters = characters;\n\tthis.current = 0;\n\tthis.end = this.characters.length;\n}\n\nCharacterBuffer.prototype.skipAtMostOneLeadingNewline = function() {\n\tif (this.characters[this.current] === '\\n')\n\t\tthis.current++;\n};\n\nCharacterBuffer.prototype.skipLeadingWhitespace = function() {\n\twhile (isWhitespace(this.characters[this.current])) {\n\t\tif (++this.current == this.end)\n\t\t\treturn;\n\t}\n};\n\nCharacterBuffer.prototype.skipLeadingNonWhitespace = function() {\n\twhile (!isWhitespace(this.characters[this.current])) {\n\t\tif (++this.current == this.end)\n\t\t\treturn;\n\t}\n};\n\nCharacterBuffer.prototype.takeRemaining = function() {\n\treturn this.characters.substring(this.current);\n};\n\nCharacterBuffer.prototype.takeLeadingWhitespace = function() {\n\tvar start = this.current;\n\tthis.skipLeadingWhitespace();\n\tif (start === this.current)\n\t\treturn \"\";\n\treturn this.characters.substring(start, this.current - start);\n};\n\nObject.defineProperty(CharacterBuffer.prototype, 'length', {\n\tget: function(){\n\t\treturn this.end - this.current;\n\t}\n});\nfunction TreeBuilder() {\n\tthis.tokenizer = null;\n\tthis.errorHandler = null;\n\tthis.scriptingEnabled = false;\n\tthis.document = null;\n\tthis.head = null;\n\tthis.form = null;\n\tthis.openElements = new ElementStack();\n\tthis.activeFormattingElements = [];\n\tthis.insertionMode = null;\n\tthis.insertionModeName = \"\";\n\tthis.originalInsertionMode = \"\";\n\tthis.inQuirksMode = false; // TODO quirks mode\n\tthis.compatMode = \"no quirks\";\n\tthis.framesetOk = true;\n\tthis.redirectAttachToFosterParent = false;\n\tthis.selfClosingFlagAcknowledged = false;\n\tthis.context = \"\";\n\tthis.pendingTableCharacters = [];\n\tthis.shouldSkipLeadingNewline = false;\n\n\tvar tree = this;\n\tvar modes = this.insertionModes = {};\n\tmodes.base = {\n\t\tend_tag_handlers: {\"-default\": 'endTagOther'},\n\t\tstart_tag_handlers: {\"-default\": 'startTagOther'},\n\t\tprocessEOF: function() {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.openElements.length > 2) {\n\t\t\t\ttree.parseError('expected-closing-tag-but-got-eof');\n\t\t\t} else if (tree.openElements.length == 2 &&\n\t\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\t\ttree.parseError('expected-closing-tag-but-got-eof');\n\t\t\t} else if (tree.context && tree.openElements.length > 1) {\n\t\t\t}\n\t\t},\n\t\tprocessComment: function(data) {\n\t\t\ttree.insertComment(data, tree.currentStackItem().node);\n\t\t},\n\t\tprocessDoctype: function(name, publicId, systemId, forceQuirks) {\n\t\t\ttree.parseError('unexpected-doctype');\n\t\t},\n\t\tprocessStartTag: function(name, attributes, selfClosing) {\n\t\t\tif (this[this.start_tag_handlers[name]]) {\n\t\t\t\tthis[this.start_tag_handlers[name]](name, attributes, selfClosing);\n\t\t\t} else if (this[this.start_tag_handlers[\"-default\"]]) {\n\t\t\t\tthis[this.start_tag_handlers[\"-default\"]](name, attributes, selfClosing);\n\t\t\t} else {\n\t\t\t\tthrow(new Error(\"No handler found for \"+name));\n\t\t\t}\n\t\t},\n\t\tprocessEndTag: function(name) {\n\t\t\tif (this[this.end_tag_handlers[name]]) {\n\t\t\t\tthis[this.end_tag_handlers[name]](name);\n\t\t\t} else if (this[this.end_tag_handlers[\"-default\"]]) {\n\t\t\t\tthis[this.end_tag_handlers[\"-default\"]](name);\n\t\t\t} else {\n\t\t\t\tthrow(new Error(\"No handler found for \"+name));\n\t\t\t}\n\t\t},\n\t\tstartTagHtml: function(name, attributes) {\n\t\t\tmodes.inBody.startTagHtml(name, attributes);\n\t\t}\n\t};\n\n\tmodes.initial = Object.create(modes.base);\n\n\tmodes.initial.processEOF = function() {\n\t\ttree.parseError(\"expected-doctype-but-got-eof\");\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.initial.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.initial.processDoctype = function(name, publicId, systemId, forceQuirks) {\n\t\ttree.insertDoctype(name || '', publicId || '', systemId || '');\n\n\t\tif (forceQuirks || name != 'html' || (publicId != null && ([\n\t\t\t\t\t\"+//silmaril//dtd html pro v0r11 19970101//\",\n\t\t\t\t\t\"-//advasoft ltd//dtd html 3.0 aswedit + extensions//\",\n\t\t\t\t\t\"-//as//dtd html 3.0 aswedit + extensions//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0 strict//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 2.1e//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.0//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.2 final//\",\n\t\t\t\t\t\"-//ietf//dtd html 3.2//\",\n\t\t\t\t\t\"-//ietf//dtd html 3//\",\n\t\t\t\t\t\"-//ietf//dtd html level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 0//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 1//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 2//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict level 3//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html strict//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//ietf//dtd html//\",\n\t\t\t\t\t\"-//metrius//dtd metrius presentational//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 html strict//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 html//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 2.0 tables//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 html strict//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 html//\",\n\t\t\t\t\t\"-//microsoft//dtd internet explorer 3.0 tables//\",\n\t\t\t\t\t\"-//netscape comm. corp.//dtd html//\",\n\t\t\t\t\t\"-//netscape comm. corp.//dtd strict html//\",\n\t\t\t\t\t\"-//o'reilly and associates//dtd html 2.0//\",\n\t\t\t\t\t\"-//o'reilly and associates//dtd html extended 1.0//\",\n\t\t\t\t\t\"-//spyglass//dtd html 2.0 extended//\",\n\t\t\t\t\t\"-//sq//dtd html 2.0 hotmetal + extensions//\",\n\t\t\t\t\t\"-//sun microsystems corp.//dtd hotjava html//\",\n\t\t\t\t\t\"-//sun microsystems corp.//dtd hotjava strict html//\",\n\t\t\t\t\t\"-//w3c//dtd html 3 1995-03-24//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2 draft//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2 final//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2//\",\n\t\t\t\t\t\"-//w3c//dtd html 3.2s draft//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.0 frameset//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.0 transitional//\",\n\t\t\t\t\t\"-//w3c//dtd html experimental 19960712//\",\n\t\t\t\t\t\"-//w3c//dtd html experimental 970421//\",\n\t\t\t\t\t\"-//w3c//dtd w3 html//\",\n\t\t\t\t\t\"-//w3o//dtd w3 html 3.0//\",\n\t\t\t\t\t\"-//webtechs//dtd mozilla html 2.0//\",\n\t\t\t\t\t\"-//webtechs//dtd mozilla html//\",\n\t\t\t\t\t\"html\"\n\t\t\t\t].some(publicIdStartsWith)\n\t\t\t\t|| [\n\t\t\t\t\t\"-//w3o//dtd w3 html strict 3.0//en//\",\n\t\t\t\t\t\"-/w3c/dtd html 4.0 transitional/en\",\n\t\t\t\t\t\"html\"\n\t\t\t\t].indexOf(publicId.toLowerCase()) > -1\n\t\t\t\t|| (systemId == null && [\n\t\t\t\t\t\"-//w3c//dtd html 4.01 transitional//\",\n\t\t\t\t\t\"-//w3c//dtd html 4.01 frameset//\"\n\t\t\t\t].some(publicIdStartsWith)))\n\t\t\t)\n\t\t\t|| (systemId != null && (systemId.toLowerCase() == \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\"))\n\t\t) {\n\t\t\ttree.compatMode = \"quirks\";\n\t\t\ttree.parseError(\"quirky-doctype\");\n\t\t} else if (publicId != null && ([\n\t\t\t\t\"-//w3c//dtd xhtml 1.0 transitional//\",\n\t\t\t\t\"-//w3c//dtd xhtml 1.0 frameset//\"\n\t\t\t].some(publicIdStartsWith)\n\t\t\t|| (systemId != null && [\n\t\t\t\t\"-//w3c//dtd html 4.01 transitional//\",\n\t\t\t\t\"-//w3c//dtd html 4.01 frameset//\"\n\t\t\t].indexOf(publicId.toLowerCase()) > -1))\n\t\t) {\n\t\t\ttree.compatMode = \"limited quirks\";\n\t\t\ttree.parseError(\"almost-standards-doctype\");\n\t\t} else {\n\t\t\tif ((publicId == \"-//W3C//DTD HTML 4.0//EN\" && (systemId == null || systemId == \"http://www.w3.org/TR/REC-html40/strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD HTML 4.01//EN\" && (systemId == null || systemId == \"http://www.w3.org/TR/html4/strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD XHTML 1.0 Strict//EN\" && (systemId == \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"))\n\t\t\t\t|| (publicId == \"-//W3C//DTD XHTML 1.1//EN\" && (systemId == \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"))\n\t\t\t) {\n\t\t\t} else if (!((systemId == null || systemId == \"about:legacy-compat\") && publicId == null)) {\n\t\t\t\ttree.parseError(\"unknown-doctype\");\n\t\t\t}\n\t\t}\n\t\ttree.setInsertionMode('beforeHTML');\n\t\tfunction publicIdStartsWith(string) {\n\t\t\treturn publicId.toLowerCase().indexOf(string) === 0;\n\t\t}\n\t};\n\n\tmodes.initial.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\ttree.parseError('expected-doctype-but-got-chars');\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.initial.processStartTag = function(name, attributes, selfClosing) {\n\t\ttree.parseError('expected-doctype-but-got-start-tag', {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.initial.processEndTag = function(name) {\n\t\ttree.parseError('expected-doctype-but-got-end-tag', {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.initial.anythingElse = function() {\n\t\ttree.compatMode = 'quirks';\n\t\ttree.setInsertionMode('beforeHTML');\n\t};\n\n\tmodes.beforeHTML = Object.create(modes.base);\n\n\tmodes.beforeHTML.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.beforeHTML.processEOF = function() {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.beforeHTML.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.beforeHTML.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.beforeHTML.startTagHtml = function(name, attributes, selfClosing) {\n\t\ttree.insertHtmlElement(attributes);\n\t\ttree.setInsertionMode('beforeHead');\n\t};\n\n\tmodes.beforeHTML.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.beforeHTML.processEndTag = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.beforeHTML.anythingElse = function() {\n\t\ttree.insertHtmlElement();\n\t\ttree.setInsertionMode('beforeHead');\n\t};\n\n\tmodes.afterAfterBody = Object.create(modes.base);\n\n\tmodes.afterAfterBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterAfterBody.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.afterAfterBody.processDoctype = function(data) {\n\t\tmodes.inBody.processDoctype(data);\n\t};\n\n\tmodes.afterAfterBody.startTagHtml = function(data, attributes) {\n\t\tmodes.inBody.startTagHtml(data, attributes);\n\t};\n\n\tmodes.afterAfterBody.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterAfterBody.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterAfterBody.processCharacters = function(data) {\n\t\tif (!isAllWhitespace(data.characters)) {\n\t\t\ttree.parseError('unexpected-char-after-body');\n\t\t\ttree.setInsertionMode('inBody');\n\t\t\treturn tree.insertionMode.processCharacters(data);\n\t\t}\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.afterBody = Object.create(modes.base);\n\n\tmodes.afterBody.end_tag_handlers = {\n\t\thtml: 'endTagHtml',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.afterBody.processComment = function(data) {\n\t\ttree.insertComment(data, tree.openElements.rootNode);\n\t};\n\n\tmodes.afterBody.processCharacters = function(data) {\n\t\tif (!isAllWhitespace(data.characters)) {\n\t\t\ttree.parseError('unexpected-char-after-body');\n\t\t\ttree.setInsertionMode('inBody');\n\t\t\treturn tree.insertionMode.processCharacters(data);\n\t\t}\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.afterBody.processStartTag = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag-after-body', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterBody.endTagHtml = function(name) {\n\t\tif (tree.context) {\n\t\t\ttree.parseError('end-html-in-innerhtml');\n\t\t} else {\n\t\t\ttree.setInsertionMode('afterAfterBody');\n\t\t}\n\t};\n\n\tmodes.afterBody.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag-after-body', {name: name});\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterFrameset = Object.create(modes.base);\n\n\tmodes.afterFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tnoframes: 'startTagNoframes',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterFrameset.end_tag_handlers = {\n\t\thtml: 'endTagHtml',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.afterFrameset.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tvar whitespace = \"\";\n\t\tfor (var i = 0; i < characters.length; i++) {\n\t\t\tvar ch = characters[i];\n\t\t\tif (isWhitespace(ch))\n\t\t\t\twhitespace += ch;\n\t\t}\n\t\tif (whitespace) {\n\t\t\ttree.insertText(whitespace);\n\t\t}\n\t\tif (whitespace.length < characters.length)\n\t\t\ttree.parseError('expected-eof-but-got-char');\n\t};\n\n\tmodes.afterFrameset.startTagNoframes = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterFrameset.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-after-frameset\", {name: name});\n\t};\n\n\tmodes.afterFrameset.endTagHtml = function(name) {\n\t\ttree.setInsertionMode('afterAfterFrameset');\n\t};\n\n\tmodes.afterFrameset.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-after-frameset\", {name: name});\n\t};\n\n\tmodes.beforeHead = Object.create(modes.base);\n\n\tmodes.beforeHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.beforeHead.end_tag_handlers = {\n\t\thtml: 'endTagImplyHead',\n\t\thead: 'endTagImplyHead',\n\t\tbody: 'endTagImplyHead',\n\t\tbr: 'endTagImplyHead',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.beforeHead.processEOF = function() {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.beforeHead.processCharacters = function(buffer) {\n\t\tbuffer.skipLeadingWhitespace();\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.beforeHead.startTagHead = function(name, attributes) {\n\t\ttree.insertHeadElement(attributes);\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\tmodes.beforeHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.beforeHead.endTagImplyHead = function(name) {\n\t\tthis.startTagHead('head', []);\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.beforeHead.endTagOther = function(name) {\n\t\ttree.parseError('end-tag-after-implied-root', {name: name});\n\t};\n\n\tmodes.inHead = Object.create(modes.base);\n\n\tmodes.inHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\ttitle: 'startTagTitle',\n\t\tscript: 'startTagScript',\n\t\tstyle: 'startTagNoFramesStyle',\n\t\tnoscript: 'startTagNoScript',\n\t\tnoframes: 'startTagNoFramesStyle',\n\t\tbase: 'startTagBaseBasefontBgsoundLink',\n\t\tbasefont: 'startTagBaseBasefontBgsoundLink',\n\t\tbgsound: 'startTagBaseBasefontBgsoundLink',\n\t\tlink: 'startTagBaseBasefontBgsoundLink',\n\t\tmeta: 'startTagMeta',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inHead.end_tag_handlers = {\n\t\thead: 'endTagHead',\n\t\thtml: 'endTagHtmlBodyBr',\n\t\tbody: 'endTagHtmlBodyBr',\n\t\tbr: 'endTagHtmlBodyBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.inHead.processEOF = function() {\n\t\tvar name = tree.currentStackItem().localName;\n\t\tif (['title', 'style', 'script'].indexOf(name) != -1) {\n\t\t\ttree.parseError(\"expected-named-closing-tag-but-got-eof\", {name: name});\n\t\t\ttree.popElement();\n\t\t}\n\n\t\tthis.anythingElse();\n\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.inHead.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inHead.startTagHtml = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagHead = function(name, attributes) {\n\t\ttree.parseError('two-heads-are-not-better-than-one');\n\t};\n\n\tmodes.inHead.startTagTitle = function(name, attributes) {\n\t\ttree.processGenericRCDATAStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagNoScript = function(name, attributes) {\n\t\tif (tree.scriptingEnabled)\n\t\t\treturn tree.processGenericRawTextStartTag(name, attributes);\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inHeadNoscript');\n\t};\n\n\tmodes.inHead.startTagNoFramesStyle = function(name, attributes) {\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t};\n\n\tmodes.inHead.startTagScript = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.SCRIPT_DATA);\n\t\ttree.originalInsertionMode = tree.insertionModeName;\n\t\ttree.setInsertionMode('text');\n\t};\n\n\tmodes.inHead.startTagBaseBasefontBgsoundLink = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inHead.startTagMeta = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inHead.endTagHead = function(name) {\n\t\tif (tree.openElements.item(tree.openElements.length - 1).localName == 'head') {\n\t\t\ttree.openElements.pop();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: 'head'});\n\t\t}\n\t\ttree.setInsertionMode('afterHead');\n\t};\n\n\tmodes.inHead.endTagHtmlBodyBr = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inHead.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inHead.anythingElse = function() {\n\t\tthis.endTagHead('head');\n\t};\n\n\tmodes.afterHead = Object.create(modes.base);\n\n\tmodes.afterHead.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagHead',\n\t\tbody: 'startTagBody',\n\t\tframeset: 'startTagFrameset',\n\t\tbase: 'startTagFromHead',\n\t\tlink: 'startTagFromHead',\n\t\tmeta: 'startTagFromHead',\n\t\tscript: 'startTagFromHead',\n\t\tstyle: 'startTagFromHead',\n\t\ttitle: 'startTagFromHead',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.afterHead.end_tag_handlers = {\n\t\tbody: 'endTagBodyHtmlBr',\n\t\thtml: 'endTagBodyHtmlBr',\n\t\tbr: 'endTagBodyHtmlBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.afterHead.processEOF = function() {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.afterHead.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.afterHead.startTagHtml = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterHead.startTagBody = function(name, attributes) {\n\t\ttree.framesetOk = false;\n\t\ttree.insertBodyElement(attributes);\n\t\ttree.setInsertionMode('inBody');\n\t};\n\n\tmodes.afterHead.startTagFrameset = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inFrameset');\n\t};\n\n\tmodes.afterHead.startTagFromHead = function(name, attributes, selfClosing) {\n\t\ttree.parseError(\"unexpected-start-tag-out-of-my-head\", {name: name});\n\t\ttree.openElements.push(tree.head);\n\t\tmodes.inHead.processStartTag(name, attributes, selfClosing);\n\t\ttree.openElements.remove(tree.head);\n\t};\n\n\tmodes.afterHead.startTagHead = function(name, attributes, selfClosing) {\n\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t};\n\n\tmodes.afterHead.startTagOther = function(name, attributes, selfClosing) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.afterHead.endTagBodyHtmlBr = function(name) {\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.afterHead.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.afterHead.anythingElse = function() {\n\t\ttree.insertBodyElement([]);\n\t\ttree.setInsertionMode('inBody');\n\t\ttree.framesetOk = true;\n\t}\n\n\tmodes.inBody = Object.create(modes.base);\n\n\tmodes.inBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\thead: 'startTagMisplaced',\n\t\tbase: 'startTagProcessInHead',\n\t\tbasefont: 'startTagProcessInHead',\n\t\tbgsound: 'startTagProcessInHead',\n\t\tlink: 'startTagProcessInHead',\n\t\tmeta: 'startTagProcessInHead',\n\t\tnoframes: 'startTagProcessInHead',\n\t\tscript: 'startTagProcessInHead',\n\t\tstyle: 'startTagProcessInHead',\n\t\ttitle: 'startTagProcessInHead',\n\t\tbody: 'startTagBody',\n\t\tform: 'startTagForm',\n\t\tplaintext: 'startTagPlaintext',\n\t\ta: 'startTagA',\n\t\tbutton: 'startTagButton',\n\t\txmp: 'startTagXmp',\n\t\ttable: 'startTagTable',\n\t\thr: 'startTagHr',\n\t\timage: 'startTagImage',\n\t\tinput: 'startTagInput',\n\t\ttextarea: 'startTagTextarea',\n\t\tselect: 'startTagSelect',\n\t\tisindex: 'startTagIsindex',\n\t\tapplet:\t'startTagAppletMarqueeObject',\n\t\tmarquee:\t'startTagAppletMarqueeObject',\n\t\tobject:\t'startTagAppletMarqueeObject',\n\t\tli: 'startTagListItem',\n\t\tdd: 'startTagListItem',\n\t\tdt: 'startTagListItem',\n\t\taddress: 'startTagCloseP',\n\t\tarticle: 'startTagCloseP',\n\t\taside: 'startTagCloseP',\n\t\tblockquote: 'startTagCloseP',\n\t\tcenter: 'startTagCloseP',\n\t\tdetails: 'startTagCloseP',\n\t\tdir: 'startTagCloseP',\n\t\tdiv: 'startTagCloseP',\n\t\tdl: 'startTagCloseP',\n\t\tfieldset: 'startTagCloseP',\n\t\tfigcaption: 'startTagCloseP',\n\t\tfigure: 'startTagCloseP',\n\t\tfooter: 'startTagCloseP',\n\t\theader: 'startTagCloseP',\n\t\thgroup: 'startTagCloseP',\n\t\tmain: 'startTagCloseP',\n\t\tmenu: 'startTagCloseP',\n\t\tnav: 'startTagCloseP',\n\t\tol: 'startTagCloseP',\n\t\tp: 'startTagCloseP',\n\t\tsection: 'startTagCloseP',\n\t\tsummary: 'startTagCloseP',\n\t\tul: 'startTagCloseP',\n\t\tlisting: 'startTagPreListing',\n\t\tpre: 'startTagPreListing',\n\t\tb: 'startTagFormatting',\n\t\tbig: 'startTagFormatting',\n\t\tcode: 'startTagFormatting',\n\t\tem: 'startTagFormatting',\n\t\tfont: 'startTagFormatting',\n\t\ti: 'startTagFormatting',\n\t\ts: 'startTagFormatting',\n\t\tsmall: 'startTagFormatting',\n\t\tstrike: 'startTagFormatting',\n\t\tstrong: 'startTagFormatting',\n\t\ttt: 'startTagFormatting',\n\t\tu: 'startTagFormatting',\n\t\tnobr: 'startTagNobr',\n\t\tarea: 'startTagVoidFormatting',\n\t\tbr: 'startTagVoidFormatting',\n\t\tembed: 'startTagVoidFormatting',\n\t\timg: 'startTagVoidFormatting',\n\t\tkeygen: 'startTagVoidFormatting',\n\t\twbr: 'startTagVoidFormatting',\n\t\tparam: 'startTagParamSourceTrack',\n\t\tsource: 'startTagParamSourceTrack',\n\t\ttrack: 'startTagParamSourceTrack',\n\t\tiframe: 'startTagIFrame',\n\t\tnoembed: 'startTagRawText',\n\t\tnoscript: 'startTagRawText',\n\t\th1: 'startTagHeading',\n\t\th2: 'startTagHeading',\n\t\th3: 'startTagHeading',\n\t\th4: 'startTagHeading',\n\t\th5: 'startTagHeading',\n\t\th6: 'startTagHeading',\n\t\tcaption: 'startTagMisplaced',\n\t\tcol: 'startTagMisplaced',\n\t\tcolgroup: 'startTagMisplaced',\n\t\tframe: 'startTagMisplaced',\n\t\tframeset: 'startTagFrameset',\n\t\ttbody: 'startTagMisplaced',\n\t\ttd: 'startTagMisplaced',\n\t\ttfoot: 'startTagMisplaced',\n\t\tth: 'startTagMisplaced',\n\t\tthead: 'startTagMisplaced',\n\t\ttr: 'startTagMisplaced',\n\t\toption: 'startTagOptionOptgroup',\n\t\toptgroup: 'startTagOptionOptgroup',\n\t\tmath: 'startTagMath',\n\t\tsvg: 'startTagSVG',\n\t\trt: 'startTagRpRt',\n\t\trp: 'startTagRpRt',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inBody.end_tag_handlers = {\n\t\tp: 'endTagP',\n\t\tbody: 'endTagBody',\n\t\thtml: 'endTagHtml',\n\t\taddress: 'endTagBlock',\n\t\tarticle: 'endTagBlock',\n\t\taside: 'endTagBlock',\n\t\tblockquote: 'endTagBlock',\n\t\tbutton: 'endTagBlock',\n\t\tcenter: 'endTagBlock',\n\t\tdetails: 'endTagBlock',\n\t\tdir: 'endTagBlock',\n\t\tdiv: 'endTagBlock',\n\t\tdl: 'endTagBlock',\n\t\tfieldset: 'endTagBlock',\n\t\tfigcaption: 'endTagBlock',\n\t\tfigure: 'endTagBlock',\n\t\tfooter: 'endTagBlock',\n\t\theader: 'endTagBlock',\n\t\thgroup: 'endTagBlock',\n\t\tlisting: 'endTagBlock',\n\t\tmain: 'endTagBlock',\n\t\tmenu: 'endTagBlock',\n\t\tnav: 'endTagBlock',\n\t\tol: 'endTagBlock',\n\t\tpre: 'endTagBlock',\n\t\tsection: 'endTagBlock',\n\t\tsummary: 'endTagBlock',\n\t\tul: 'endTagBlock',\n\t\tform: 'endTagForm',\n\t\tapplet: 'endTagAppletMarqueeObject',\n\t\tmarquee: 'endTagAppletMarqueeObject',\n\t\tobject: 'endTagAppletMarqueeObject',\n\t\tdd: 'endTagListItem',\n\t\tdt: 'endTagListItem',\n\t\tli: 'endTagListItem',\n\t\th1: 'endTagHeading',\n\t\th2: 'endTagHeading',\n\t\th3: 'endTagHeading',\n\t\th4: 'endTagHeading',\n\t\th5: 'endTagHeading',\n\t\th6: 'endTagHeading',\n\t\ta: 'endTagFormatting',\n\t\tb: 'endTagFormatting',\n\t\tbig: 'endTagFormatting',\n\t\tcode: 'endTagFormatting',\n\t\tem: 'endTagFormatting',\n\t\tfont: 'endTagFormatting',\n\t\ti: 'endTagFormatting',\n\t\tnobr: 'endTagFormatting',\n\t\ts: 'endTagFormatting',\n\t\tsmall: 'endTagFormatting',\n\t\tstrike: 'endTagFormatting',\n\t\tstrong: 'endTagFormatting',\n\t\ttt: 'endTagFormatting',\n\t\tu: 'endTagFormatting',\n\t\tbr: 'endTagBr',\n\t\t\"-default\": 'endTagOther'\n\t};\n\n\tmodes.inBody.processCharacters = function(buffer) {\n\t\tif (tree.shouldSkipLeadingNewline) {\n\t\t\ttree.shouldSkipLeadingNewline = false;\n\t\t\tbuffer.skipAtMostOneLeadingNewline();\n\t\t}\n\t\ttree.reconstructActiveFormattingElements();\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!characters)\n\t\t\treturn;\n\t\ttree.insertText(characters);\n\t\tif (tree.framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))\n\t\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagHtml = function(name, attributes) {\n\t\ttree.parseError('non-html-root');\n\t\ttree.addAttributesToElement(tree.openElements.rootNode, attributes);\n\t};\n\n\tmodes.inBody.startTagProcessInHead = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inBody.startTagBody = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag', {name: 'body'});\n\t\tif (tree.openElements.length == 1 ||\n\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\tassert.ok(tree.context);\n\t\t} else {\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.addAttributesToElement(tree.openElements.bodyElement, attributes);\n\t\t}\n\t};\n\n\tmodes.inBody.startTagFrameset = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag', {name: 'frameset'});\n\t\tif (tree.openElements.length == 1 ||\n\t\t\ttree.openElements.item(1).localName != 'body') {\n\t\t\tassert.ok(tree.context);\n\t\t} else if (tree.framesetOk) {\n\t\t\ttree.detachFromParent(tree.openElements.bodyElement);\n\t\t\twhile (tree.openElements.length > 1)\n\t\t\t\ttree.openElements.pop();\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.setInsertionMode('inFrameset');\n\t\t}\n\t};\n\n\tmodes.inBody.startTagCloseP = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagPreListing = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t\ttree.shouldSkipLeadingNewline = true;\n\t};\n\n\tmodes.inBody.startTagForm = function(name, attributes) {\n\t\tif (tree.form) {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t} else {\n\t\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\t\tthis.endTagP('p');\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.form = tree.currentStackItem();\n\t\t}\n\t};\n\n\tmodes.inBody.startTagRpRt = function(name, attributes) {\n\t\tif (tree.openElements.inScope('ruby')) {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != 'ruby') {\n\t\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t\t}\n\t\t}\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagListItem = function(name, attributes) {\n\t\tvar stopNames = {li: ['li'], dd: ['dd', 'dt'], dt: ['dd', 'dt']};\n\t\tvar stopName = stopNames[name];\n\n\t\tvar els = tree.openElements;\n\t\tfor (var i = els.length - 1; i >= 0; i--) {\n\t\t\tvar node = els.item(i);\n\t\t\tif (stopName.indexOf(node.localName) != -1) {\n\t\t\t\ttree.insertionMode.processEndTag(node.localName);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (node.isSpecial() && node.localName !== 'p' && node.localName !== 'address' && node.localName !== 'div')\n\t\t\t\tbreak;\n\t\t}\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagPlaintext = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.PLAINTEXT);\n\t};\n\n\tmodes.inBody.startTagHeading = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\tif (tree.currentStackItem().isNumberedHeader()) {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t\ttree.popElement();\n\t\t}\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagA = function(name, attributes) {\n\t\tvar activeA = tree.elementInActiveFormattingElements('a');\n\t\tif (activeA) {\n\t\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\", {startName: \"a\", endName: \"a\"});\n\t\t\ttree.adoptionAgencyEndTag('a');\n\t\t\tif (tree.openElements.contains(activeA))\n\t\t\t\ttree.openElements.remove(activeA);\n\t\t\ttree.removeElementFromActiveFormattingElements(activeA);\n\t\t}\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagFormatting = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagNobr = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tif (tree.openElements.inScope('nobr')) {\n\t\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\", {startName: 'nobr', endName: 'nobr'});\n\t\t\tthis.processEndTag('nobr');\n\t\t\t\ttree.reconstructActiveFormattingElements();\n\t\t}\n\t\ttree.insertFormattingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagButton = function(name, attributes) {\n\t\tif (tree.openElements.inScope('button')) {\n\t\t\ttree.parseError('unexpected-start-tag-implies-end-tag', {startName: 'button', endName: 'button'});\n\t\t\tthis.processEndTag('button');\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t} else {\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertElement(name, attributes);\n\t\t}\n\t};\n\n\tmodes.inBody.startTagAppletMarqueeObject = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.activeFormattingElements.push(Marker);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.endTagAppletMarqueeObject = function(name) {\n\t\tif (!tree.openElements.inScope(name)) {\n\t\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t\ttree.clearActiveFormattingElements();\n\t\t}\n\t};\n\n\tmodes.inBody.startTagXmp = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.processEndTag('p');\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagTable = function(name, attributes) {\n\t\tif (tree.compatMode !== \"quirks\")\n\t\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\t\tthis.processEndTag('p');\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inTable');\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagVoidFormatting = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagParamSourceTrack = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagHr = function(name, attributes) {\n\t\tif (tree.openElements.inButtonScope('p'))\n\t\t\tthis.endTagP('p');\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t};\n\n\tmodes.inBody.startTagImage = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag-treated-as', {originalName: 'image', newName: 'img'});\n\t\tthis.processStartTag('img', attributes);\n\t};\n\n\tmodes.inBody.startTagInput = function(name, attributes) {\n\t\tvar currentFramesetOk = tree.framesetOk;\n\t\tthis.startTagVoidFormatting(name, attributes);\n\t\tfor (var key in attributes) {\n\t\t\tif (attributes[key].nodeName == 'type') {\n\t\t\t\tif (attributes[key].nodeValue.toLowerCase() == 'hidden')\n\t\t\t\t\ttree.framesetOk = currentFramesetOk;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inBody.startTagIsindex = function(name, attributes) {\n\t\ttree.parseError('deprecated-tag', {name: 'isindex'});\n\t\ttree.selfClosingFlagAcknowledged = true;\n\t\tif (tree.form)\n\t\t\treturn;\n\t\tvar formAttributes = [];\n\t\tvar inputAttributes = [];\n\t\tvar prompt = \"This is a searchable index. Enter search keywords: \";\n\t\tfor (var key in attributes) {\n\t\t\tswitch (attributes[key].nodeName) {\n\t\t\t\tcase 'action':\n\t\t\t\t\tformAttributes.push({nodeName: 'action',\n\t\t\t\t\t\tnodeValue: attributes[key].nodeValue});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'prompt':\n\t\t\t\t\tprompt = attributes[key].nodeValue;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'name':\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tinputAttributes.push({nodeName: attributes[key].nodeName,\n\t\t\t\t\t\tnodeValue: attributes[key].nodeValue});\n\t\t\t}\n\t\t}\n\t\tinputAttributes.push({nodeName: 'name', nodeValue: 'isindex'});\n\t\tthis.processStartTag('form', formAttributes);\n\t\tthis.processStartTag('hr');\n\t\tthis.processStartTag('label');\n\t\tthis.processCharacters(new CharacterBuffer(prompt));\n\t\tthis.processStartTag('input', inputAttributes);\n\t\tthis.processEndTag('label');\n\t\tthis.processStartTag('hr');\n\t\tthis.processEndTag('form');\n\t};\n\n\tmodes.inBody.startTagTextarea = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t\ttree.tokenizer.setState(Tokenizer.RCDATA);\n\t\ttree.originalInsertionMode = tree.insertionModeName;\n\t\ttree.shouldSkipLeadingNewline = true;\n\t\ttree.framesetOk = false;\n\t\ttree.setInsertionMode('text');\n\t};\n\n\tmodes.inBody.startTagIFrame = function(name, attributes) {\n\t\ttree.framesetOk = false;\n\t\tthis.startTagRawText(name, attributes);\n\t};\n\n\tmodes.inBody.startTagRawText = function(name, attributes) {\n\t\ttree.processGenericRawTextStartTag(name, attributes);\n\t};\n\n\tmodes.inBody.startTagSelect = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.framesetOk = false;\n\t\tvar insertionModeName = tree.insertionModeName;\n\t\tif (insertionModeName == 'inTable' ||\n\t\t\tinsertionModeName == 'inCaption' ||\n\t\t\tinsertionModeName == 'inColumnGroup' ||\n\t\t\tinsertionModeName == 'inTableBody' ||\n\t\t\tinsertionModeName == 'inRow' ||\n\t\t\tinsertionModeName == 'inCell') {\n\t\t\ttree.setInsertionMode('inSelectInTable');\n\t\t} else {\n\t\t\ttree.setInsertionMode('inSelect');\n\t\t}\n\t};\n\n\tmodes.inBody.startTagMisplaced = function(name, attributes) {\n\t\ttree.parseError('unexpected-start-tag-ignored', {name: name});\n\t};\n\n\tmodes.inBody.endTagMisplaced = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t};\n\n\tmodes.inBody.endTagBr = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-treated-as\", {originalName: \"br\", newName: \"br element\"});\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, []);\n\t\ttree.popElement();\n\t};\n\n\tmodes.inBody.startTagOptionOptgroup = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.startTagOther = function(name, attributes) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inBody.endTagOther = function(name) {\n\t\tvar node;\n\t\tfor (var i = tree.openElements.length - 1; i > 0; i--) {\n\t\t\tnode = tree.openElements.item(i);\n\t\t\tif (node.localName == name) {\n\t\t\t\ttree.generateImpliedEndTags(name);\n\t\t\t\tif (tree.currentStackItem().localName != name)\n\t\t\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\t\ttree.openElements.remove_openElements_until(function(x) {return x === node;});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (node.isSpecial()) {\n\t\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inBody.startTagMath = function(name, attributes, selfClosing) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tattributes = tree.adjustMathMLAttributes(attributes);\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, \"http://www.w3.org/1998/Math/MathML\", selfClosing);\n\t};\n\n\tmodes.inBody.startTagSVG = function(name, attributes, selfClosing) {\n\t\ttree.reconstructActiveFormattingElements();\n\t\tattributes = tree.adjustSVGAttributes(attributes);\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, \"http://www.w3.org/2000/svg\", selfClosing);\n\t};\n\n\tmodes.inBody.endTagP = function(name) {\n\t\tif (!tree.openElements.inButtonScope('p')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: 'p'});\n\t\t\tthis.startTagCloseP('p', []);\n\t\t\tthis.endTagP('p');\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags('p');\n\t\t\tif (tree.currentStackItem().localName != 'p')\n\t\t\t\ttree.parseError('unexpected-implied-end-tag', {name: 'p'});\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagBody = function(name) {\n\t\tif (!tree.openElements.inScope('body')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().localName != 'body') {\n\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\texpectedName: tree.currentStackItem().localName,\n\t\t\t\tgotName: name\n\t\t\t});\n\t\t}\n\t\ttree.setInsertionMode('afterBody');\n\t};\n\n\tmodes.inBody.endTagHtml = function(name) {\n\t\tif (!tree.openElements.inScope('body')) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().localName != 'body') {\n\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\texpectedName: tree.currentStackItem().localName,\n\t\t\t\tgotName: name\n\t\t\t});\n\t\t}\n\t\ttree.setInsertionMode('afterBody');\n\t\ttree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inBody.endTagBlock = function(name) {\n\t\tif (!tree.openElements.inScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagForm = function(name) {\n\t\tvar node = tree.form;\n\t\ttree.form = null;\n\t\tif (!node || !tree.openElements.inScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem() != node) {\n\t\t\t\ttree.parseError('end-tag-too-early-ignored', {name: 'form'});\n\t\t\t}\n\t\t\ttree.openElements.remove(node);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagListItem = function(name) {\n\t\tif (!tree.openElements.inListItemScope(name)) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags(name);\n\t\t\tif (tree.currentStackItem().localName != name)\n\t\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\t\t\ttree.openElements.popUntilPopped(name);\n\t\t}\n\t};\n\n\tmodes.inBody.endTagHeading = function(name) {\n\t\tif (!tree.openElements.hasNumberedHeaderElementInScope()) {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t\treturn;\n\t\t}\n\t\ttree.generateImpliedEndTags();\n\t\tif (tree.currentStackItem().localName != name)\n\t\t\ttree.parseError('end-tag-too-early', {name: name});\n\n\t\ttree.openElements.remove_openElements_until(function(e) {\n\t\t\treturn e.isNumberedHeader();\n\t\t});\n\t};\n\n\tmodes.inBody.endTagFormatting = function(name, attributes) {\n\t\tif (!tree.adoptionAgencyEndTag(name))\n\t\t\tthis.endTagOther(name, attributes);\n\t};\n\n\tmodes.inCaption = Object.create(modes.base);\n\n\tmodes.inCaption.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagTableElement',\n\t\tcol: 'startTagTableElement',\n\t\tcolgroup: 'startTagTableElement',\n\t\ttbody: 'startTagTableElement',\n\t\ttd: 'startTagTableElement',\n\t\ttfoot: 'startTagTableElement',\n\t\tthead: 'startTagTableElement',\n\t\ttr: 'startTagTableElement',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inCaption.end_tag_handlers = {\n\t\tcaption: 'endTagCaption',\n\t\ttable: 'endTagTable',\n\t\tbody: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttbody: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\ttfood: 'endTagIgnore',\n\t\tthead: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inCaption.processCharacters = function(data) {\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.inCaption.startTagTableElement = function(name, attributes) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\tvar ignoreEndTag = !tree.openElements.inTableScope('caption');\n\t\ttree.insertionMode.processEndTag('caption');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inCaption.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inCaption.endTagCaption = function(name) {\n\t\tif (!tree.openElements.inTableScope('caption')) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != 'caption') {\n\t\t\t\ttree.parseError('expected-one-end-tag-but-got-another', {\n\t\t\t\t\tgotName: \"caption\",\n\t\t\t\t\texpectedName: tree.currentStackItem().localName\n\t\t\t\t});\n\t\t\t}\n\t\t\ttree.openElements.popUntilPopped('caption');\n\t\t\ttree.clearActiveFormattingElements();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t}\n\t};\n\n\tmodes.inCaption.endTagTable = function(name) {\n\t\ttree.parseError(\"unexpected-end-table-in-caption\");\n\t\tvar ignoreEndTag = !tree.openElements.inTableScope('caption');\n\t\ttree.insertionMode.processEndTag('caption');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inCaption.endTagIgnore = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inCaption.endTagOther = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inCell = Object.create(modes.base);\n\n\tmodes.inCell.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttd: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tth: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\ttr: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inCell.end_tag_handlers = {\n\t\ttd: 'endTagTableCell',\n\t\tth: 'endTagTableCell',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttable: 'endTagImply',\n\t\ttbody: 'endTagImply',\n\t\ttfoot: 'endTagImply',\n\t\tthead: 'endTagImply',\n\t\ttr: 'endTagImply',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inCell.processCharacters = function(data) {\n\t\tmodes.inBody.processCharacters(data);\n\t};\n\n\tmodes.inCell.startTagTableOther = function(name, attributes, selfClosing) {\n\t\tif (tree.openElements.inTableScope('td') || tree.openElements.inTableScope('th')) {\n\t\t\tthis.closeCell();\n\t\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inCell.endTagTableCell = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.generateImpliedEndTags(name);\n\t\t\tif (tree.currentStackItem().localName != name.toLowerCase()) {\n\t\t\t\ttree.parseError('unexpected-cell-end-tag', {name: name});\n\t\t\t\ttree.openElements.popUntilPopped(name);\n\t\t\t} else {\n\t\t\t\ttree.popElement();\n\t\t\t}\n\t\t\ttree.clearActiveFormattingElements();\n\t\t\ttree.setInsertionMode('inRow');\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.endTagIgnore = function(name) {\n\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t};\n\n\tmodes.inCell.endTagImply = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.closeCell();\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inCell.endTagOther = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inCell.closeCell = function() {\n\t\tif (tree.openElements.inTableScope('td')) {\n\t\t\tthis.endTagTableCell('td');\n\t\t} else if (tree.openElements.inTableScope('th')) {\n\t\t\tthis.endTagTableCell('th');\n\t\t}\n\t};\n\n\n\tmodes.inColumnGroup = Object.create(modes.base);\n\n\tmodes.inColumnGroup.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcol: 'startTagCol',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inColumnGroup.end_tag_handlers = {\n\t\tcolgroup: 'endTagColgroup',\n\t\tcol: 'endTagCol',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inColumnGroup.ignoreEndTagColgroup = function() {\n\t\treturn tree.currentStackItem().localName == 'html';\n\t};\n\n\tmodes.inColumnGroup.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inColumnGroup.startTagCol = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inColumnGroup.startTagOther = function(name, attributes, selfClosing) {\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inColumnGroup.endTagColgroup = function(name) {\n\t\tif (this.ignoreEndTagColgroup()) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t}\n\t};\n\n\tmodes.inColumnGroup.endTagCol = function(name) {\n\t\ttree.parseError(\"no-end-tag\", {name: 'col'});\n\t};\n\n\tmodes.inColumnGroup.endTagOther = function(name) {\n\t\tvar ignoreEndTag = this.ignoreEndTagColgroup();\n\t\tthis.endTagColgroup('colgroup');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name) ;\n\t};\n\n\tmodes.inForeignContent = Object.create(modes.base);\n\n\tmodes.inForeignContent.processStartTag = function(name, attributes, selfClosing) {\n\t\tif (['b', 'big', 'blockquote', 'body', 'br', 'center', 'code', 'dd', 'div', 'dl', 'dt', 'em', 'embed', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'i', 'img', 'li', 'listing', 'menu', 'meta', 'nobr', 'ol', 'p', 'pre', 'ruby', 's', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'table', 'tt', 'u', 'ul', 'var'].indexOf(name) != -1\n\t\t\t\t|| (name == 'font' && attributes.some(function(attr){ return ['color', 'face', 'size'].indexOf(attr.nodeName) >= 0 }))) {\n\t\t\ttree.parseError('unexpected-html-element-in-foreign-content', {name: name});\n\t\t\twhile (tree.currentStackItem().isForeign()\n\t\t\t\t&& !tree.currentStackItem().isHtmlIntegrationPoint()\n\t\t\t\t&& !tree.currentStackItem().isMathMLTextIntegrationPoint()) {\n\t\t\t\ttree.openElements.pop();\n\t\t\t}\n\t\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t\t\treturn;\n\t\t}\n\t\tif (tree.currentStackItem().namespaceURI == \"http://www.w3.org/1998/Math/MathML\") {\n\t\t\tattributes = tree.adjustMathMLAttributes(attributes);\n\t\t}\n\t\tif (tree.currentStackItem().namespaceURI == \"http://www.w3.org/2000/svg\") {\n\t\t\tname = tree.adjustSVGTagNameCase(name);\n\t\t\tattributes = tree.adjustSVGAttributes(attributes);\n\t\t}\n\t\tattributes = tree.adjustForeignAttributes(attributes);\n\t\ttree.insertForeignElement(name, attributes, tree.currentStackItem().namespaceURI, selfClosing);\n\t};\n\n\tmodes.inForeignContent.processEndTag = function(name) {\n\t\tvar node = tree.currentStackItem();\n\t\tvar index = tree.openElements.length - 1;\n\t\tif (node.localName.toLowerCase() != name)\n\t\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\n\t\twhile (true) {\n\t\t\tif (index === 0)\n\t\t\t\tbreak;\n\t\t\tif (node.localName.toLowerCase() == name) {\n\t\t\t\twhile (tree.openElements.pop() != node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tindex -= 1;\n\t\t\tnode = tree.openElements.item(index);\n\t\t\tif (node.isForeign()) {\n\t\t\t\tcontinue;\n\t\t\t} else {\n\t\t\t\ttree.insertionMode.processEndTag(name);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tmodes.inForeignContent.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError('invalid-codepoint');\n\t\t\treturn '\\uFFFD';\n\t\t});\n\t\tif (tree.framesetOk && !isAllWhitespaceOrReplacementCharacters(characters))\n\t\t\ttree.framesetOk = false;\n\t\ttree.insertText(characters);\n\t};\n\n\tmodes.inHeadNoscript = Object.create(modes.base);\n\n\tmodes.inHeadNoscript.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tbasefont: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tbgsound: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tlink: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tmeta: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tnoframes: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\tstyle: 'startTagBasefontBgsoundLinkMetaNoframesStyle',\n\t\thead: 'startTagHeadNoscript',\n\t\tnoscript: 'startTagHeadNoscript',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inHeadNoscript.end_tag_handlers = {\n\t\tnoscript: 'endTagNoscript',\n\t\tbr: 'endTagBr',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inHeadNoscript.processCharacters = function(buffer) {\n\t\tvar leadingWhitespace = buffer.takeLeadingWhitespace();\n\t\tif (leadingWhitespace)\n\t\t\ttree.insertText(leadingWhitespace);\n\t\tif (!buffer.length)\n\t\t\treturn;\n\t\ttree.parseError(\"unexpected-char-in-frameset\");\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processCharacters(buffer);\n\t};\n\n\tmodes.inHeadNoscript.processComment = function(data) {\n\t\tmodes.inHead.processComment(data);\n\t};\n\n\tmodes.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.startTagHeadNoscript = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inHeadNoscript.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.endTagBr = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t\tthis.anythingElse();\n\t\ttree.insertionMode.processEndTag(name, attributes);\n\t};\n\n\tmodes.inHeadNoscript.endTagNoscript = function(name, attributes) {\n\t\ttree.popElement();\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\tmodes.inHeadNoscript.endTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inHeadNoscript.anythingElse = function() {\n\t\ttree.popElement();\n\t\ttree.setInsertionMode('inHead');\n\t};\n\n\n\tmodes.inFrameset = Object.create(modes.base);\n\n\tmodes.inFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tframeset: 'startTagFrameset',\n\t\tframe: 'startTagFrame',\n\t\tnoframes: 'startTagNoframes',\n\t\t\"-default\": 'startTagOther'\n\t};\n\n\tmodes.inFrameset.end_tag_handlers = {\n\t\tframeset: 'endTagFrameset',\n\t\tnoframes: 'endTagNoframes',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inFrameset.processCharacters = function(data) {\n\t\ttree.parseError(\"unexpected-char-in-frameset\");\n\t};\n\n\tmodes.inFrameset.startTagFrameset = function(name, attributes) {\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagFrame = function(name, attributes) {\n\t\ttree.insertSelfClosingElement(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagNoframes = function(name, attributes) {\n\t\tmodes.inBody.processStartTag(name, attributes);\n\t};\n\n\tmodes.inFrameset.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inFrameset.endTagFrameset = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'html') {\n\t\t\ttree.parseError(\"unexpected-frameset-in-frameset-innerhtml\");\n\t\t} else {\n\t\t\ttree.popElement();\n\t\t}\n\n\t\tif (!tree.context && tree.currentStackItem().localName != 'frameset') {\n\t\t\ttree.setInsertionMode('afterFrameset');\n\t\t}\n\t};\n\n\tmodes.inFrameset.endTagNoframes = function(name) {\n\t\tmodes.inBody.processEndTag(name);\n\t};\n\n\tmodes.inFrameset.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-frameset\", {name: name});\n\t};\n\n\tmodes.inTable = Object.create(modes.base);\n\n\tmodes.inTable.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tcaption: 'startTagCaption',\n\t\tcolgroup: 'startTagColgroup',\n\t\tcol: 'startTagCol',\n\t\ttable: 'startTagTable',\n\t\ttbody: 'startTagRowGroup',\n\t\ttfoot: 'startTagRowGroup',\n\t\tthead: 'startTagRowGroup',\n\t\ttd: 'startTagImplyTbody',\n\t\tth: 'startTagImplyTbody',\n\t\ttr: 'startTagImplyTbody',\n\t\tstyle: 'startTagStyleScript',\n\t\tscript: 'startTagStyleScript',\n\t\tinput: 'startTagInput',\n\t\tform: 'startTagForm',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inTable.end_tag_handlers = {\n\t\ttable: 'endTagTable',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttbody: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\ttfoot: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\tthead: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inTable.processCharacters = function(data) {\n\t\tif (tree.currentStackItem().isFosterParenting()) {\n\t\t\tvar originalInsertionMode = tree.insertionModeName;\n\t\t\ttree.setInsertionMode('inTableText');\n\t\t\ttree.originalInsertionMode = originalInsertionMode;\n\t\t\ttree.insertionMode.processCharacters(data);\n\t\t} else {\n\t\t\ttree.redirectAttachToFosterParent = true;\n\t\t\tmodes.inBody.processCharacters(data);\n\t\t\ttree.redirectAttachToFosterParent = false;\n\t\t}\n\t};\n\n\tmodes.inTable.startTagCaption = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.activeFormattingElements.push(Marker);\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inCaption');\n\t};\n\n\tmodes.inTable.startTagColgroup = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inColumnGroup');\n\t};\n\n\tmodes.inTable.startTagCol = function(name, attributes) {\n\t\tthis.startTagColgroup('colgroup', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagRowGroup = function(name, attributes) {\n\t\ttree.openElements.popUntilTableScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inTableBody');\n\t};\n\n\tmodes.inTable.startTagImplyTbody = function(name, attributes) {\n\t\tthis.startTagRowGroup('tbody', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagTable = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-implies-end-tag\",\n\t\t\t\t{startName: \"table\", endName: \"table\"});\n\t\ttree.insertionMode.processEndTag('table');\n\t\tif (!tree.context) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagStyleScript = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTable.startTagInput = function(name, attributes) {\n\t\tfor (var key in attributes) {\n\t\t\tif (attributes[key].nodeName.toLowerCase() == 'type') {\n\t\t\t\tif (attributes[key].nodeValue.toLowerCase() == 'hidden') {\n\t\t\t\t\ttree.parseError(\"unexpected-hidden-input-in-table\");\n\t\t\t\t\ttree.insertElement(name, attributes);\n\t\t\t\t\ttree.openElements.pop();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.startTagOther(name, attributes);\n\t};\n\n\tmodes.inTable.startTagForm = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-form-in-table\");\n\t\tif (!tree.form) {\n\t\t\ttree.insertElement(name, attributes);\n\t\t\ttree.form = tree.currentStackItem();\n\t\t\ttree.openElements.pop();\n\t\t}\n\t};\n\n\tmodes.inTable.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError(\"unexpected-start-tag-implies-table-voodoo\", {name: name});\n\t\ttree.redirectAttachToFosterParent = true;\n\t\tmodes.inBody.processStartTag(name, attributes, selfClosing);\n\t\ttree.redirectAttachToFosterParent = false;\n\t};\n\n\tmodes.inTable.endTagTable = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.generateImpliedEndTags();\n\t\t\tif (tree.currentStackItem().localName != name) {\n\t\t\t\ttree.parseError(\"end-tag-too-early-named\", {gotName: 'table', expectedName: tree.currentStackItem().localName});\n\t\t\t}\n\n\t\t\ttree.openElements.popUntilPopped('table');\n\t\t\ttree.resetInsertionMode();\n\t\t} else {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTable.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag\", {name: name});\n\t};\n\n\tmodes.inTable.endTagOther = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-implies-table-voodoo\", {name: name});\n\t\ttree.redirectAttachToFosterParent = true;\n\t\tmodes.inBody.processEndTag(name);\n\t\ttree.redirectAttachToFosterParent = false;\n\t};\n\n\tmodes.inTableText = Object.create(modes.base);\n\n\tmodes.inTableText.flushCharacters = function() {\n\t\tvar characters = tree.pendingTableCharacters.join('');\n\t\tif (!isAllWhitespace(characters)) {\n\t\t\ttree.redirectAttachToFosterParent = true;\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertText(characters);\n\t\t\ttree.framesetOk = false;\n\t\t\ttree.redirectAttachToFosterParent = false;\n\t\t} else {\n\t\t\ttree.insertText(characters);\n\t\t}\n\t\ttree.pendingTableCharacters = [];\n\t};\n\n\tmodes.inTableText.processComment = function(data) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processComment(data);\n\t};\n\n\tmodes.inTableText.processEOF = function(data) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.inTableText.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tcharacters = characters.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!characters)\n\t\t\treturn;\n\t\ttree.pendingTableCharacters.push(characters);\n\t};\n\n\tmodes.inTableText.processStartTag = function(name, attributes, selfClosing) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inTableText.processEndTag = function(name, attributes) {\n\t\tthis.flushCharacters();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEndTag(name, attributes);\n\t};\n\n\tmodes.inTableBody = Object.create(modes.base);\n\n\tmodes.inTableBody.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\ttr: 'startTagTr',\n\t\ttd: 'startTagTableCell',\n\t\tth: 'startTagTableCell',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inTableBody.end_tag_handlers = {\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTableRowGroup',\n\t\ttfoot: 'endTagTableRowGroup',\n\t\tthead: 'endTagTableRowGroup',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\ttr: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inTableBody.processCharacters = function(data) {\n\t\tmodes.inTable.processCharacters(data);\n\t};\n\n\tmodes.inTableBody.startTagTr = function(name, attributes) {\n\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inRow');\n\t};\n\n\tmodes.inTableBody.startTagTableCell = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-cell-in-table-body\", {name: name});\n\t\tthis.startTagTr('tr', []);\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTableBody.startTagTableOther = function(name, attributes) {\n\t\tif (tree.openElements.inTableScope('tbody') || tree.openElements.inTableScope('thead') || tree.openElements.inTableScope('tfoot')) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\tthis.endTagTableRowGroup(tree.currentStackItem().localName);\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-start-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.startTagOther = function(name, attributes) {\n\t\tmodes.inTable.processStartTag(name, attributes);\n\t};\n\n\tmodes.inTableBody.endTagTableRowGroup = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTable');\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag-in-table-body', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.endTagTable = function(name) {\n\t\tif (tree.openElements.inTableScope('tbody') || tree.openElements.inTableScope('thead') || tree.openElements.inTableScope('tfoot')) {\n\t\t\ttree.openElements.popUntilTableBodyScopeMarker();\n\t\t\tthis.endTagTableRowGroup(tree.currentStackItem().localName);\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inTableBody.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-table-body\", {name: name});\n\t};\n\n\tmodes.inTableBody.endTagOther = function(name) {\n\t\tmodes.inTable.processEndTag(name);\n\t};\n\n\tmodes.inSelect = Object.create(modes.base);\n\n\tmodes.inSelect.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\toption: 'startTagOption',\n\t\toptgroup: 'startTagOptgroup',\n\t\tselect: 'startTagSelect',\n\t\tinput: 'startTagInput',\n\t\tkeygen: 'startTagInput',\n\t\ttextarea: 'startTagInput',\n\t\tscript: 'startTagScript',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inSelect.end_tag_handlers = {\n\t\toption: 'endTagOption',\n\t\toptgroup: 'endTagOptgroup',\n\t\tselect: 'endTagSelect',\n\t\tcaption: 'endTagTableElements',\n\t\ttable: 'endTagTableElements',\n\t\ttbody: 'endTagTableElements',\n\t\ttfoot: 'endTagTableElements',\n\t\tthead: 'endTagTableElements',\n\t\ttr: 'endTagTableElements',\n\t\ttd: 'endTagTableElements',\n\t\tth: 'endTagTableElements',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inSelect.processCharacters = function(buffer) {\n\t\tvar data = buffer.takeRemaining();\n\t\tdata = data.replace(/\\u0000/g, function(match, index){\n\t\t\ttree.parseError(\"invalid-codepoint\");\n\t\t\treturn '';\n\t\t});\n\t\tif (!data)\n\t\t\treturn;\n\t\ttree.insertText(data);\n\t};\n\n\tmodes.inSelect.startTagOption = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inSelect.startTagOptgroup = function(name, attributes) {\n\t\tif (tree.currentStackItem().localName == 'option')\n\t\t\ttree.popElement();\n\t\tif (tree.currentStackItem().localName == 'optgroup')\n\t\t\ttree.popElement();\n\t\ttree.insertElement(name, attributes);\n\t};\n\n\tmodes.inSelect.endTagOption = function(name) {\n\t\tif (tree.currentStackItem().localName !== 'option') {\n\t\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t\t\treturn;\n\t\t}\n\t\ttree.popElement();\n\t};\n\n\tmodes.inSelect.endTagOptgroup = function(name) {\n\t\tif (tree.currentStackItem().localName == 'option' && tree.openElements.item(tree.openElements.length - 2).localName == 'optgroup') {\n\t\t\ttree.popElement();\n\t\t}\n\t\tif (tree.currentStackItem().localName == 'optgroup') {\n\t\t\ttree.popElement();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag-in-select', {name: 'optgroup'});\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagSelect = function(name) {\n\t\ttree.parseError(\"unexpected-select-in-select\");\n\t\tthis.endTagSelect('select');\n\t};\n\n\tmodes.inSelect.endTagSelect = function(name) {\n\t\tif (tree.openElements.inTableScope('select')) {\n\t\t\ttree.openElements.popUntilPopped('select');\n\t\t\ttree.resetInsertionMode();\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagInput = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-input-in-select\");\n\t\tif (tree.openElements.inSelectScope('select')) {\n\t\t\tthis.endTagSelect('select');\n\t\t\ttree.insertionMode.processStartTag(name, attributes);\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagScript = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.inSelect.endTagTableElements = function(name) {\n\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagSelect('select');\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t}\n\t};\n\n\tmodes.inSelect.startTagOther = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-start-tag-in-select\", {name: name});\n\t};\n\n\tmodes.inSelect.endTagOther = function(name) {\n\t\ttree.parseError('unexpected-end-tag-in-select', {name: name});\n\t};\n\n\tmodes.inSelectInTable = Object.create(modes.base);\n\n\tmodes.inSelectInTable.start_tag_handlers = {\n\t\tcaption: 'startTagTable',\n\t\ttable: 'startTagTable',\n\t\ttbody: 'startTagTable',\n\t\ttfoot: 'startTagTable',\n\t\tthead: 'startTagTable',\n\t\ttr: 'startTagTable',\n\t\ttd: 'startTagTable',\n\t\tth: 'startTagTable',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inSelectInTable.end_tag_handlers = {\n\t\tcaption: 'endTagTable',\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTable',\n\t\ttfoot: 'endTagTable',\n\t\tthead: 'endTagTable',\n\t\ttr: 'endTagTable',\n\t\ttd: 'endTagTable',\n\t\tth: 'endTagTable',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inSelectInTable.processCharacters = function(data) {\n\t\tmodes.inSelect.processCharacters(data);\n\t};\n\n\tmodes.inSelectInTable.startTagTable = function(name, attributes) {\n\t\ttree.parseError(\"unexpected-table-element-start-tag-in-select-in-table\", {name: name});\n\t\tthis.endTagOther(\"select\");\n\t\ttree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inSelectInTable.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inSelect.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inSelectInTable.endTagTable = function(name) {\n\t\ttree.parseError(\"unexpected-table-element-end-tag-in-select-in-table\", {name: name});\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagOther(\"select\");\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t}\n\t};\n\n\tmodes.inSelectInTable.endTagOther = function(name) {\n\t\tmodes.inSelect.processEndTag(name);\n\t};\n\n\tmodes.inRow = Object.create(modes.base);\n\n\tmodes.inRow.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\ttd: 'startTagTableCell',\n\t\tth: 'startTagTableCell',\n\t\tcaption: 'startTagTableOther',\n\t\tcol: 'startTagTableOther',\n\t\tcolgroup: 'startTagTableOther',\n\t\ttbody: 'startTagTableOther',\n\t\ttfoot: 'startTagTableOther',\n\t\tthead: 'startTagTableOther',\n\t\ttr: 'startTagTableOther',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.inRow.end_tag_handlers = {\n\t\ttr: 'endTagTr',\n\t\ttable: 'endTagTable',\n\t\ttbody: 'endTagTableRowGroup',\n\t\ttfoot: 'endTagTableRowGroup',\n\t\tthead: 'endTagTableRowGroup',\n\t\tbody: 'endTagIgnore',\n\t\tcaption: 'endTagIgnore',\n\t\tcol: 'endTagIgnore',\n\t\tcolgroup: 'endTagIgnore',\n\t\thtml: 'endTagIgnore',\n\t\ttd: 'endTagIgnore',\n\t\tth: 'endTagIgnore',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.inRow.processCharacters = function(data) {\n\t\tmodes.inTable.processCharacters(data);\n\t};\n\n\tmodes.inRow.startTagTableCell = function(name, attributes) {\n\t\ttree.openElements.popUntilTableRowScopeMarker();\n\t\ttree.insertElement(name, attributes);\n\t\ttree.setInsertionMode('inCell');\n\t\ttree.activeFormattingElements.push(Marker);\n\t};\n\n\tmodes.inRow.startTagTableOther = function(name, attributes) {\n\t\tvar ignoreEndTag = this.ignoreEndTagTr();\n\t\tthis.endTagTr('tr');\n\t\tif (!ignoreEndTag) tree.insertionMode.processStartTag(name, attributes);\n\t};\n\n\tmodes.inRow.startTagOther = function(name, attributes, selfClosing) {\n\t\tmodes.inTable.processStartTag(name, attributes, selfClosing);\n\t};\n\n\tmodes.inRow.endTagTr = function(name) {\n\t\tif (this.ignoreEndTagTr()) {\n\t\t\tassert.ok(tree.context);\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t} else {\n\t\t\ttree.openElements.popUntilTableRowScopeMarker();\n\t\t\ttree.popElement();\n\t\t\ttree.setInsertionMode('inTableBody');\n\t\t}\n\t};\n\n\tmodes.inRow.endTagTable = function(name) {\n\t\tvar ignoreEndTag = this.ignoreEndTagTr();\n\t\tthis.endTagTr('tr');\n\t\tif (!ignoreEndTag) tree.insertionMode.processEndTag(name);\n\t};\n\n\tmodes.inRow.endTagTableRowGroup = function(name) {\n\t\tif (tree.openElements.inTableScope(name)) {\n\t\t\tthis.endTagTr('tr');\n\t\t\ttree.insertionMode.processEndTag(name);\n\t\t} else {\n\t\t\ttree.parseError('unexpected-end-tag', {name: name});\n\t\t}\n\t};\n\n\tmodes.inRow.endTagIgnore = function(name) {\n\t\ttree.parseError(\"unexpected-end-tag-in-table-row\", {name: name});\n\t};\n\n\tmodes.inRow.endTagOther = function(name) {\n\t\tmodes.inTable.processEndTag(name);\n\t};\n\n\tmodes.inRow.ignoreEndTagTr = function() {\n\t\treturn !tree.openElements.inTableScope('tr');\n\t};\n\n\tmodes.afterAfterFrameset = Object.create(modes.base);\n\n\tmodes.afterAfterFrameset.start_tag_handlers = {\n\t\thtml: 'startTagHtml',\n\t\tnoframes: 'startTagNoFrames',\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.afterAfterFrameset.processEOF = function() {};\n\n\tmodes.afterAfterFrameset.processComment = function(data) {\n\t\ttree.insertComment(data, tree.document);\n\t};\n\n\tmodes.afterAfterFrameset.processCharacters = function(buffer) {\n\t\tvar characters = buffer.takeRemaining();\n\t\tvar whitespace = \"\";\n\t\tfor (var i = 0; i < characters.length; i++) {\n\t\t\tvar ch = characters[i];\n\t\t\tif (isWhitespace(ch))\n\t\t\t\twhitespace += ch;\n\t\t}\n\t\tif (whitespace) {\n\t\t\ttree.reconstructActiveFormattingElements();\n\t\t\ttree.insertText(whitespace);\n\t\t}\n\t\tif (whitespace.length < characters.length)\n\t\t\ttree.parseError('expected-eof-but-got-char');\n\t};\n\n\tmodes.afterAfterFrameset.startTagNoFrames = function(name, attributes) {\n\t\tmodes.inHead.processStartTag(name, attributes);\n\t};\n\n\tmodes.afterAfterFrameset.startTagOther = function(name, attributes, selfClosing) {\n\t\ttree.parseError('expected-eof-but-got-start-tag', {name: name});\n\t};\n\n\tmodes.afterAfterFrameset.processEndTag = function(name, attributes) {\n\t\ttree.parseError('expected-eof-but-got-end-tag', {name: name});\n\t};\n\n\tmodes.text = Object.create(modes.base);\n\n\tmodes.text.start_tag_handlers = {\n\t\t'-default': 'startTagOther'\n\t};\n\n\tmodes.text.end_tag_handlers = {\n\t\tscript: 'endTagScript',\n\t\t'-default': 'endTagOther'\n\t};\n\n\tmodes.text.processCharacters = function(buffer) {\n\t\tif (tree.shouldSkipLeadingNewline) {\n\t\t\ttree.shouldSkipLeadingNewline = false;\n\t\t\tbuffer.skipAtMostOneLeadingNewline();\n\t\t}\n\t\tvar data = buffer.takeRemaining();\n\t\tif (!data)\n\t\t\treturn;\n\t\ttree.insertText(data);\n\t};\n\n\tmodes.text.processEOF = function() {\n\t\ttree.parseError(\"expected-named-closing-tag-but-got-eof\",\n\t\t\t{name: tree.currentStackItem().localName});\n\t\ttree.openElements.pop();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t\ttree.insertionMode.processEOF();\n\t};\n\n\tmodes.text.startTagOther = function(name) {\n\t\tthrow \"Tried to process start tag \" + name + \" in RCDATA/RAWTEXT mode\";\n\t};\n\n\tmodes.text.endTagScript = function(name) {\n\t\tvar node = tree.openElements.pop();\n\t\tassert.ok(node.localName == 'script');\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t};\n\n\tmodes.text.endTagOther = function(name) {\n\t\ttree.openElements.pop();\n\t\ttree.setInsertionMode(tree.originalInsertionMode);\n\t};\n}\n\nTreeBuilder.prototype.setInsertionMode = function(name) {\n\tthis.insertionMode = this.insertionModes[name];\n\tthis.insertionModeName = name;\n};\nTreeBuilder.prototype.adoptionAgencyEndTag = function(name) {\n\tvar outerIterationLimit = 8;\n\tvar innerIterationLimit = 3;\n\tvar formattingElement;\n\n\tfunction isActiveFormattingElement(el) {\n\t\treturn el === formattingElement;\n\t}\n\n\tvar outerLoopCounter = 0;\n\n\twhile (outerLoopCounter++ < outerIterationLimit) {\n\t\tformattingElement = this.elementInActiveFormattingElements(name);\n\n\t\tif (!formattingElement || (this.openElements.contains(formattingElement) && !this.openElements.inScope(formattingElement.localName))) {\n\t\t\tthis.parseError('adoption-agency-1.1', {name: name});\n\t\t\treturn false;\n\t\t}\n\t\tif (!this.openElements.contains(formattingElement)) {\n\t\t\tthis.parseError('adoption-agency-1.2', {name: name});\n\t\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\t\treturn true;\n\t\t}\n\t\tif (!this.openElements.inScope(formattingElement.localName)) {\n\t\t\tthis.parseError('adoption-agency-4.4', {name: name});\n\t\t}\n\n\t\tif (formattingElement != this.currentStackItem()) {\n\t\t\tthis.parseError('adoption-agency-1.3', {name: name});\n\t\t}\n\t\tvar furthestBlock = this.openElements.furthestBlockForFormattingElement(formattingElement.node);\n\n\t\tif (!furthestBlock) {\n\t\t\tthis.openElements.remove_openElements_until(isActiveFormattingElement);\n\t\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\t\treturn true;\n\t\t}\n\n\t\tvar afeIndex = this.openElements.elements.indexOf(formattingElement);\n\t\tvar commonAncestor = this.openElements.item(afeIndex - 1);\n\n\t\tvar bookmark = this.activeFormattingElements.indexOf(formattingElement);\n\n\t\tvar node = furthestBlock;\n\t\tvar lastNode = furthestBlock;\n\t\tvar index = this.openElements.elements.indexOf(node);\n\n\t\tvar innerLoopCounter = 0;\n\t\twhile (innerLoopCounter++ < innerIterationLimit) {\n\t\t\tindex -= 1;\n\t\t\tnode = this.openElements.item(index);\n\t\t\tif (this.activeFormattingElements.indexOf(node) < 0) {\n\t\t\t\tthis.openElements.elements.splice(index, 1);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (node == formattingElement)\n\t\t\t\tbreak;\n\n\t\t\tif (lastNode == furthestBlock)\n\t\t\t\tbookmark = this.activeFormattingElements.indexOf(node) + 1;\n\n\t\t\tvar clone = this.createElement(node.namespaceURI, node.localName, node.attributes);\n\t\t\tvar newNode = new StackItem(node.namespaceURI, node.localName, node.attributes, clone);\n\n\t\t\tthis.activeFormattingElements[this.activeFormattingElements.indexOf(node)] = newNode;\n\t\t\tthis.openElements.elements[this.openElements.elements.indexOf(node)] = newNode;\n\n\t\t\tnode = newNode;\n\t\t\tthis.detachFromParent(lastNode.node);\n\t\t\tthis.attachNode(lastNode.node, node.node);\n\t\t\tlastNode = node;\n\t\t}\n\n\t\tthis.detachFromParent(lastNode.node);\n\t\tif (commonAncestor.isFosterParenting()) {\n\t\t\tthis.insertIntoFosterParent(lastNode.node);\n\t\t} else {\n\t\t\tthis.attachNode(lastNode.node, commonAncestor.node);\n\t\t}\n\n\t\tvar clone = this.createElement(\"http://www.w3.org/1999/xhtml\", formattingElement.localName, formattingElement.attributes);\n\t\tvar formattingClone = new StackItem(formattingElement.namespaceURI, formattingElement.localName, formattingElement.attributes, clone);\n\n\t\tthis.reparentChildren(furthestBlock.node, clone);\n\t\tthis.attachNode(clone, furthestBlock.node);\n\n\t\tthis.removeElementFromActiveFormattingElements(formattingElement);\n\t\tthis.activeFormattingElements.splice(Math.min(bookmark, this.activeFormattingElements.length), 0, formattingClone);\n\n\t\tthis.openElements.remove(formattingElement);\n\t\tthis.openElements.elements.splice(this.openElements.elements.indexOf(furthestBlock) + 1, 0, formattingClone);\n\t}\n\n\treturn true;\n};\n\nTreeBuilder.prototype.start = function() {\n\tthrow \"Not mplemented\";\n};\n\nTreeBuilder.prototype.startTokenization = function(tokenizer) {\n\tthis.tokenizer = tokenizer;\n\tthis.compatMode = \"no quirks\";\n\tthis.originalInsertionMode = \"initial\";\n\tthis.framesetOk = true;\n\tthis.openElements = new ElementStack();\n\tthis.activeFormattingElements = [];\n\tthis.start();\n\tif (this.context) {\n\n\t\tswitch(this.context) {\n\t\tcase 'title':\n\t\tcase 'textarea':\n\t\t\tthis.tokenizer.setState(Tokenizer.RCDATA);\n\t\t\tbreak;\n\t\tcase 'style':\n\t\tcase 'xmp':\n\t\tcase 'iframe':\n\t\tcase 'noembed':\n\t\tcase 'noframes':\n\t\t\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\t\t\tbreak;\n\t\tcase 'script':\n\t\t\tthis.tokenizer.setState(Tokenizer.SCRIPT_DATA);\n\t\t\tbreak;\n\t\tcase 'noscript':\n\t\t\tif (this.scriptingEnabled)\n\t\t\t\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\t\t\tbreak;\n\t\tcase 'plaintext':\n\t\t\tthis.tokenizer.setState(Tokenizer.PLAINTEXT);\n\t\t\tbreak;\n\t\t}\n\t\tthis.insertHtmlElement();\n\n\t\tif (this.context === 'head') {\n\t\t\tthis.insertHeadElement();\n\t\t} else {\n\t\t\tthis.insertBodyElement();\n\t\t}\n\n\t\tthis.resetInsertionMode();\n\t} else {\n\t\tthis.setInsertionMode('initial');\n\t}\n};\n\nTreeBuilder.prototype.processToken = function(token) {\n\tthis.selfClosingFlagAcknowledged = false;\n\n\tvar currentNode = this.openElements.top || null;\n\tvar insertionMode;\n\tif (!currentNode || !currentNode.isForeign() ||\n\t\t(currentNode.isMathMLTextIntegrationPoint() &&\n\t\t\t((token.type == 'StartTag' &&\n\t\t\t\t\t!(token.name in {mglyph:0, malignmark:0})) ||\n\t\t\t\t(token.type === 'Characters'))\n\t\t) ||\n\t\t(currentNode.namespaceURI == \"http://www.w3.org/1998/Math/MathML\" &&\n\t\t\tcurrentNode.localName == 'annotation-xml' &&\n\t\t\ttoken.type == 'StartTag' && token.name == 'svg'\n\t\t) ||\n\t\t(currentNode.isHtmlIntegrationPoint() &&\n\t\t\ttoken.type in {StartTag:0, Characters:0}\n\t\t) ||\n\t\ttoken.type == 'EOF'\n\t) {\n\t\tinsertionMode = this.insertionMode;\n\t} else {\n\t\tinsertionMode = this.insertionModes.inForeignContent;\n\t}\n\tswitch(token.type) {\n\tcase 'Characters':\n\t\tvar buffer = new CharacterBuffer(token.data);\n\t\tinsertionMode.processCharacters(buffer);\n\t\tbreak;\n\tcase 'Comment':\n\t\tinsertionMode.processComment(token.data);\n\t\tbreak;\n\tcase 'StartTag':\n\t\tinsertionMode.processStartTag(token.name, token.data, token.selfClosing);\n\t\tbreak;\n\tcase 'EndTag':\n\t\tinsertionMode.processEndTag(token.name);\n\t\tbreak;\n\tcase 'Doctype':\n\t\tinsertionMode.processDoctype(token.name, token.publicId, token.systemId, token.forceQuirks);\n\t\tbreak;\n\tcase 'EOF':\n\t\tinsertionMode.processEOF();\n\t\tbreak;\n\t}\n};\nTreeBuilder.prototype.isCdataSectionAllowed = function() {\n\treturn this.openElements.length > 0 && this.currentStackItem().isForeign();\n};\nTreeBuilder.prototype.isSelfClosingFlagAcknowledged = function() {\n\treturn this.selfClosingFlagAcknowledged;\n};\n\nTreeBuilder.prototype.createElement = function(namespaceURI, localName, attributes) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.attachNode = function(child, parent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.attachNodeToFosterParent = function(child, table, stackParent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.detachFromParent = function(node) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.addAttributesToElement = function(element, attributes) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertHtmlElement = function(attributes) {\n\tvar root = this.createElement(\"http://www.w3.org/1999/xhtml\", 'html', attributes);\n\tthis.attachNode(root, this.document);\n\tthis.openElements.pushHtmlElement(new StackItem(\"http://www.w3.org/1999/xhtml\", 'html', attributes, root));\n\treturn root;\n};\n\nTreeBuilder.prototype.insertHeadElement = function(attributes) {\n\tvar element = this.createElement(\"http://www.w3.org/1999/xhtml\", \"head\", attributes);\n\tthis.head = new StackItem(\"http://www.w3.org/1999/xhtml\", \"head\", attributes, element);\n\tthis.attachNode(element, this.openElements.top.node);\n\tthis.openElements.pushHeadElement(this.head);\n\treturn element;\n};\n\nTreeBuilder.prototype.insertBodyElement = function(attributes) {\n\tvar element = this.createElement(\"http://www.w3.org/1999/xhtml\", \"body\", attributes);\n\tthis.attachNode(element, this.openElements.top.node);\n\tthis.openElements.pushBodyElement(new StackItem(\"http://www.w3.org/1999/xhtml\", \"body\", attributes, element));\n\treturn element;\n};\n\nTreeBuilder.prototype.insertIntoFosterParent = function(node) {\n\tvar tableIndex = this.openElements.findIndex('table');\n\tvar tableElement = this.openElements.item(tableIndex).node;\n\tif (tableIndex === 0)\n\t\treturn this.attachNode(node, tableElement);\n\tthis.attachNodeToFosterParent(node, tableElement, this.openElements.item(tableIndex - 1).node);\n};\n\nTreeBuilder.prototype.insertElement = function(name, attributes, namespaceURI, selfClosing) {\n\tif (!namespaceURI)\n\t\tnamespaceURI = \"http://www.w3.org/1999/xhtml\";\n\tvar element = this.createElement(namespaceURI, name, attributes);\n\tif (this.shouldFosterParent())\n\t\tthis.insertIntoFosterParent(element);\n\telse\n\t\tthis.attachNode(element, this.openElements.top.node);\n\tif (!selfClosing)\n\t\tthis.openElements.push(new StackItem(namespaceURI, name, attributes, element));\n};\n\nTreeBuilder.prototype.insertFormattingElement = function(name, attributes) {\n\tthis.insertElement(name, attributes, \"http://www.w3.org/1999/xhtml\");\n\tthis.appendElementToActiveFormattingElements(this.currentStackItem());\n};\n\nTreeBuilder.prototype.insertSelfClosingElement = function(name, attributes) {\n\tthis.selfClosingFlagAcknowledged = true;\n\tthis.insertElement(name, attributes, \"http://www.w3.org/1999/xhtml\", true);\n};\n\nTreeBuilder.prototype.insertForeignElement = function(name, attributes, namespaceURI, selfClosing) {\n\tif (selfClosing)\n\t\tthis.selfClosingFlagAcknowledged = true;\n\tthis.insertElement(name, attributes, namespaceURI, selfClosing);\n};\n\nTreeBuilder.prototype.insertComment = function(data, parent) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertDoctype = function(name, publicId, systemId) {\n\tthrow new Error(\"Not implemented\");\n};\n\nTreeBuilder.prototype.insertText = function(data) {\n\tthrow new Error(\"Not implemented\");\n};\nTreeBuilder.prototype.currentStackItem = function() {\n\treturn this.openElements.top;\n};\nTreeBuilder.prototype.popElement = function() {\n\treturn this.openElements.pop();\n};\nTreeBuilder.prototype.shouldFosterParent = function() {\n\treturn this.redirectAttachToFosterParent && this.currentStackItem().isFosterParenting();\n};\nTreeBuilder.prototype.generateImpliedEndTags = function(exclude) {\n\tvar name = this.openElements.top.localName;\n\tif (['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'].indexOf(name) != -1 && name != exclude) {\n\t\tthis.popElement();\n\t\tthis.generateImpliedEndTags(exclude);\n\t}\n};\nTreeBuilder.prototype.reconstructActiveFormattingElements = function() {\n\tif (this.activeFormattingElements.length === 0)\n\t\treturn;\n\tvar i = this.activeFormattingElements.length - 1;\n\tvar entry = this.activeFormattingElements[i];\n\tif (entry == Marker || this.openElements.contains(entry))\n\t\treturn;\n\n\twhile (entry != Marker && !this.openElements.contains(entry)) {\n\t\ti -= 1;\n\t\tentry = this.activeFormattingElements[i];\n\t\tif (!entry)\n\t\t\tbreak;\n\t}\n\n\twhile (true) {\n\t\ti += 1;\n\t\tentry = this.activeFormattingElements[i];\n\t\tthis.insertElement(entry.localName, entry.attributes);\n\t\tvar element = this.currentStackItem();\n\t\tthis.activeFormattingElements[i] = element;\n\t\tif (element == this.activeFormattingElements[this.activeFormattingElements.length -1])\n\t\t\tbreak;\n\t}\n\n};\nTreeBuilder.prototype.ensureNoahsArkCondition = function(item) {\n\tvar kNoahsArkCapacity = 3;\n\tif (this.activeFormattingElements.length < kNoahsArkCapacity)\n\t\treturn;\n\tvar candidates = [];\n\tvar newItemAttributeCount = item.attributes.length;\n\tfor (var i = this.activeFormattingElements.length - 1; i >= 0; i--) {\n\t\tvar candidate = this.activeFormattingElements[i];\n\t\tif (candidate === Marker)\n\t\t\tbreak;\n\t\tif (item.localName !== candidate.localName || item.namespaceURI !== candidate.namespaceURI)\n\t\t\tcontinue;\n\t\tif (candidate.attributes.length != newItemAttributeCount)\n\t\t\tcontinue;\n\t\tcandidates.push(candidate);\n\t}\n\tif (candidates.length < kNoahsArkCapacity)\n\t\treturn;\n\n\tvar remainingCandidates = [];\n\tvar attributes = item.attributes;\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\n\t\tfor (var j = 0; j < candidates.length; j++) {\n\t\t\tvar candidate = candidates[j];\n\t\t\tvar candidateAttribute = getAttribute(candidate, attribute.nodeName);\n\t\t\tif (candidateAttribute && candidateAttribute.nodeValue === attribute.nodeValue)\n\t\t\t\tremainingCandidates.push(candidate);\n\t\t}\n\t\tif (remainingCandidates.length < kNoahsArkCapacity)\n\t\t\treturn;\n\t\tcandidates = remainingCandidates;\n\t\tremainingCandidates = [];\n\t}\n\tfor (var i = kNoahsArkCapacity - 1; i < candidates.length; i++)\n\t\tthis.removeElementFromActiveFormattingElements(candidates[i]);\n};\nTreeBuilder.prototype.appendElementToActiveFormattingElements = function(item) {\n\tthis.ensureNoahsArkCondition(item);\n\tthis.activeFormattingElements.push(item);\n};\nTreeBuilder.prototype.removeElementFromActiveFormattingElements = function(item) {\n\tvar index = this.activeFormattingElements.indexOf(item);\n\tif (index >= 0)\n\t\tthis.activeFormattingElements.splice(index, 1);\n};\n\nTreeBuilder.prototype.elementInActiveFormattingElements = function(name) {\n\tvar els = this.activeFormattingElements;\n\tfor (var i = els.length - 1; i >= 0; i--) {\n\t\tif (els[i] == Marker) break;\n\t\tif (els[i].localName == name) return els[i];\n\t}\n\treturn false;\n};\n\nTreeBuilder.prototype.clearActiveFormattingElements = function() {\n while (!(this.activeFormattingElements.length === 0 || this.activeFormattingElements.pop() == Marker));\n};\n\nTreeBuilder.prototype.reparentChildren = function(oldParent, newParent) {\n\tthrow new Error(\"Not implemented\");\n};\nTreeBuilder.prototype.setFragmentContext = function(context) {\n\tthis.context = context;\n};\nTreeBuilder.prototype.parseError = function(code, args) {\n\tif (!this.errorHandler)\n\t\treturn;\n\tvar message = formatMessage(messages[code], args);\n\tthis.errorHandler.error(message, this.tokenizer._inputStream.location(), code);\n};\nTreeBuilder.prototype.resetInsertionMode = function() {\n\tvar fragmentAssigned = false;\n\tvar node = null;\n\tfor (var i = this.openElements.length - 1; i >= 0; i--) {\n\t\tnode = this.openElements.item(i);\n\t\tif (i === 0) {\n\t\t\tassert.ok(this.context);\n\t\t\tfragmentAssigned = true;\n\t\t\tnode = new StackItem(\"http://www.w3.org/1999/xhtml\", this.context, [], null);\n\t\t}\n\n\t\tif (node.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n\t\t\tif (node.localName === 'select')\n\t\t\t\treturn this.setInsertionMode('inSelect');\n\t\t\tif (node.localName === 'td' || node.localName === 'th')\n\t\t\t\treturn this.setInsertionMode('inCell');\n\t\t\tif (node.localName === 'tr')\n\t\t\t\treturn this.setInsertionMode('inRow');\n\t\t\tif (node.localName === 'tbody' || node.localName === 'thead' || node.localName === 'tfoot')\n\t\t\t\treturn this.setInsertionMode('inTableBody');\n\t\t\tif (node.localName === 'caption')\n\t\t\t\treturn this.setInsertionMode('inCaption');\n\t\t\tif (node.localName === 'colgroup')\n\t\t\t\treturn this.setInsertionMode('inColumnGroup');\n\t\t\tif (node.localName === 'table')\n\t\t\t\treturn this.setInsertionMode('inTable');\n\t\t\tif (node.localName === 'head')\n\t\t\t\treturn this.setInsertionMode('inHead');\n\t\t\tif (node.localName === 'body')\n\t\t\t\treturn this.setInsertionMode('inBody');\n\t\t\tif (node.localName === 'frameset')\n\t\t\t\treturn this.setInsertionMode('inFrameset');\n\t\t\tif (node.localName === 'html')\n\t\t\t\tif (!this.openElements.headElement)\n\t\t\t\t\treturn this.setInsertionMode('beforeHead');\n\t\t\t\telse\n\t\t\t\t\treturn this.setInsertionMode('afterHead');\n\t\t}\n\n\t\tif (fragmentAssigned)\n\t\t\treturn this.setInsertionMode('inBody');\n\t}\n};\n\nTreeBuilder.prototype.processGenericRCDATAStartTag = function(name, attributes) {\n\tthis.insertElement(name, attributes);\n\tthis.tokenizer.setState(Tokenizer.RCDATA);\n\tthis.originalInsertionMode = this.insertionModeName;\n\tthis.setInsertionMode('text');\n};\n\nTreeBuilder.prototype.processGenericRawTextStartTag = function(name, attributes) {\n\tthis.insertElement(name, attributes);\n\tthis.tokenizer.setState(Tokenizer.RAWTEXT);\n\tthis.originalInsertionMode = this.insertionModeName;\n\tthis.setInsertionMode('text');\n};\n\nTreeBuilder.prototype.adjustMathMLAttributes = function(attributes) {\n\tattributes.forEach(function(a) {\n\t\ta.namespaceURI = \"http://www.w3.org/1998/Math/MathML\";\n\t\tif (constants.MATHMLAttributeMap[a.nodeName])\n\t\t\ta.nodeName = constants.MATHMLAttributeMap[a.nodeName];\n\t});\n\treturn attributes;\n};\n\nTreeBuilder.prototype.adjustSVGTagNameCase = function(name) {\n\treturn constants.SVGTagMap[name] || name;\n};\n\nTreeBuilder.prototype.adjustSVGAttributes = function(attributes) {\n\tattributes.forEach(function(a) {\n\t\ta.namespaceURI = \"http://www.w3.org/2000/svg\";\n\t\tif (constants.SVGAttributeMap[a.nodeName])\n\t\t\ta.nodeName = constants.SVGAttributeMap[a.nodeName];\n\t});\n\treturn attributes;\n};\n\nTreeBuilder.prototype.adjustForeignAttributes = function(attributes) {\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\t\tvar adjusted = constants.ForeignAttributeMap[attribute.nodeName];\n\t\tif (adjusted) {\n\t\t\tattribute.nodeName = adjusted.localName;\n\t\t\tattribute.prefix = adjusted.prefix;\n\t\t\tattribute.namespaceURI = adjusted.namespaceURI;\n\t\t}\n\t}\n\treturn attributes;\n};\n\nfunction formatMessage(format, args) {\n\treturn format.replace(new RegExp('{[0-9a-z-]+}', 'gi'), function(match) {\n\t\treturn args[match.slice(1, -1)] || match;\n\t});\n}\n\nexports.TreeBuilder = TreeBuilder;\n\n},\n{\"./ElementStack\":1,\"./StackItem\":4,\"./Tokenizer\":5,\"./constants\":7,\"./messages.json\":8,\"assert\":13,\"events\":16}],\n7:[function(_dereq_,module,exports){\nexports.SVGTagMap = {\n\t\"altglyph\": \"altGlyph\",\n\t\"altglyphdef\": \"altGlyphDef\",\n\t\"altglyphitem\": \"altGlyphItem\",\n\t\"animatecolor\": \"animateColor\",\n\t\"animatemotion\": \"animateMotion\",\n\t\"animatetransform\": \"animateTransform\",\n\t\"clippath\": \"clipPath\",\n\t\"feblend\": \"feBlend\",\n\t\"fecolormatrix\": \"feColorMatrix\",\n\t\"fecomponenttransfer\": \"feComponentTransfer\",\n\t\"fecomposite\": \"feComposite\",\n\t\"feconvolvematrix\": \"feConvolveMatrix\",\n\t\"fediffuselighting\": \"feDiffuseLighting\",\n\t\"fedisplacementmap\": \"feDisplacementMap\",\n\t\"fedistantlight\": \"feDistantLight\",\n\t\"feflood\": \"feFlood\",\n\t\"fefunca\": \"feFuncA\",\n\t\"fefuncb\": \"feFuncB\",\n\t\"fefuncg\": \"feFuncG\",\n\t\"fefuncr\": \"feFuncR\",\n\t\"fegaussianblur\": \"feGaussianBlur\",\n\t\"feimage\": \"feImage\",\n\t\"femerge\": \"feMerge\",\n\t\"femergenode\": \"feMergeNode\",\n\t\"femorphology\": \"feMorphology\",\n\t\"feoffset\": \"feOffset\",\n\t\"fepointlight\": \"fePointLight\",\n\t\"fespecularlighting\": \"feSpecularLighting\",\n\t\"fespotlight\": \"feSpotLight\",\n\t\"fetile\": \"feTile\",\n\t\"feturbulence\": \"feTurbulence\",\n\t\"foreignobject\": \"foreignObject\",\n\t\"glyphref\": \"glyphRef\",\n\t\"lineargradient\": \"linearGradient\",\n\t\"radialgradient\": \"radialGradient\",\n\t\"textpath\": \"textPath\"\n};\n\nexports.MATHMLAttributeMap = {\n\tdefinitionurl: 'definitionURL'\n};\n\nexports.SVGAttributeMap = {\n\tattributename:\t'attributeName',\n\tattributetype:\t'attributeType',\n\tbasefrequency:\t'baseFrequency',\n\tbaseprofile:\t'baseProfile',\n\tcalcmode:\t'calcMode',\n\tclippathunits:\t'clipPathUnits',\n\tcontentscripttype:\t'contentScriptType',\n\tcontentstyletype:\t'contentStyleType',\n\tdiffuseconstant:\t'diffuseConstant',\n\tedgemode:\t'edgeMode',\n\texternalresourcesrequired:\t'externalResourcesRequired',\n\tfilterres:\t'filterRes',\n\tfilterunits:\t'filterUnits',\n\tglyphref:\t'glyphRef',\n\tgradienttransform:\t'gradientTransform',\n\tgradientunits:\t'gradientUnits',\n\tkernelmatrix:\t'kernelMatrix',\n\tkernelunitlength:\t'kernelUnitLength',\n\tkeypoints:\t'keyPoints',\n\tkeysplines:\t'keySplines',\n\tkeytimes:\t'keyTimes',\n\tlengthadjust:\t'lengthAdjust',\n\tlimitingconeangle:\t'limitingConeAngle',\n\tmarkerheight:\t'markerHeight',\n\tmarkerunits:\t'markerUnits',\n\tmarkerwidth:\t'markerWidth',\n\tmaskcontentunits:\t'maskContentUnits',\n\tmaskunits:\t'maskUnits',\n\tnumoctaves:\t'numOctaves',\n\tpathlength:\t'pathLength',\n\tpatterncontentunits:\t'patternContentUnits',\n\tpatterntransform:\t'patternTransform',\n\tpatternunits:\t'patternUnits',\n\tpointsatx:\t'pointsAtX',\n\tpointsaty:\t'pointsAtY',\n\tpointsatz:\t'pointsAtZ',\n\tpreservealpha:\t'preserveAlpha',\n\tpreserveaspectratio:\t'preserveAspectRatio',\n\tprimitiveunits:\t'primitiveUnits',\n\trefx:\t'refX',\n\trefy:\t'refY',\n\trepeatcount:\t'repeatCount',\n\trepeatdur:\t'repeatDur',\n\trequiredextensions:\t'requiredExtensions',\n\trequiredfeatures:\t'requiredFeatures',\n\tspecularconstant:\t'specularConstant',\n\tspecularexponent:\t'specularExponent',\n\tspreadmethod:\t'spreadMethod',\n\tstartoffset:\t'startOffset',\n\tstddeviation:\t'stdDeviation',\n\tstitchtiles:\t'stitchTiles',\n\tsurfacescale:\t'surfaceScale',\n\tsystemlanguage:\t'systemLanguage',\n\ttablevalues:\t'tableValues',\n\ttargetx:\t'targetX',\n\ttargety:\t'targetY',\n\ttextlength:\t'textLength',\n\tviewbox:\t'viewBox',\n\tviewtarget:\t'viewTarget',\n\txchannelselector:\t'xChannelSelector',\n\tychannelselector:\t'yChannelSelector',\n\tzoomandpan:\t'zoomAndPan'\n};\n\nexports.ForeignAttributeMap = {\n\t\"xlink:actuate\": {prefix: \"xlink\", localName: \"actuate\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:arcrole\": {prefix: \"xlink\", localName: \"arcrole\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:href\": {prefix: \"xlink\", localName: \"href\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:role\": {prefix: \"xlink\", localName: \"role\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:show\": {prefix: \"xlink\", localName: \"show\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:title\": {prefix: \"xlink\", localName: \"title\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xlink:type\": {prefix: \"xlink\", localName: \"title\", namespaceURI: \"http://www.w3.org/1999/xlink\"},\n\t\"xml:base\": {prefix: \"xml\", localName: \"base\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xml:lang\": {prefix: \"xml\", localName: \"lang\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xml:space\": {prefix: \"xml\", localName: \"space\", namespaceURI: \"http://www.w3.org/XML/1998/namespace\"},\n\t\"xmlns\": {prefix: null, localName: \"xmlns\", namespaceURI: \"http://www.w3.org/2000/xmlns/\"},\n\t\"xmlns:xlink\": {prefix: \"xmlns\", localName: \"xlink\", namespaceURI: \"http://www.w3.org/2000/xmlns/\"},\n};\n},\n{}],\n8:[function(_dereq_,module,exports){\nmodule.exports={\n\t\"null-character\":\n\t\t\"Null character in input stream, replaced with U+FFFD.\",\n\t\"invalid-codepoint\":\n\t\t\"Invalid codepoint in stream\",\n\t\"incorrectly-placed-solidus\":\n\t\t\"Solidus (/) incorrectly placed in tag.\",\n\t\"incorrect-cr-newline-entity\":\n\t\t\"Incorrect CR newline entity, replaced with LF.\",\n\t\"illegal-windows-1252-entity\":\n\t\t\"Entity used with illegal number (windows-1252 reference).\",\n\t\"cant-convert-numeric-entity\":\n\t\t\"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).\",\n\t\"invalid-numeric-entity-replaced\":\n\t\t\"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.\",\n\t\"numeric-entity-without-semicolon\":\n\t\t\"Numeric entity didn't end with ';'.\",\n\t\"expected-numeric-entity-but-got-eof\":\n\t\t\"Numeric entity expected. Got end of file instead.\",\n\t\"expected-numeric-entity\":\n\t\t\"Numeric entity expected but none found.\",\n\t\"named-entity-without-semicolon\":\n\t\t\"Named entity didn't end with ';'.\",\n\t\"expected-named-entity\":\n\t\t\"Named entity expected. Got none.\",\n\t\"attributes-in-end-tag\":\n\t\t\"End tag contains unexpected attributes.\",\n\t\"self-closing-flag-on-end-tag\":\n\t\t\"End tag contains unexpected self-closing flag.\",\n\t\"bare-less-than-sign-at-eof\":\n\t\t\"End of file after <.\",\n\t\"expected-tag-name-but-got-right-bracket\":\n\t\t\"Expected tag name. Got '>' instead.\",\n\t\"expected-tag-name-but-got-question-mark\":\n\t\t\"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)\",\n\t\"expected-tag-name\":\n\t\t\"Expected tag name. Got something else instead.\",\n\t\"expected-closing-tag-but-got-right-bracket\":\n\t\t\"Expected closing tag. Got '>' instead. Ignoring ''.\",\n\t\"expected-closing-tag-but-got-eof\":\n\t\t\"Expected closing tag. Unexpected end of file.\",\n\t\"expected-closing-tag-but-got-char\":\n\t\t\"Expected closing tag. Unexpected character '{data}' found.\",\n\t\"eof-in-tag-name\":\n\t\t\"Unexpected end of file in the tag name.\",\n\t\"expected-attribute-name-but-got-eof\":\n\t\t\"Unexpected end of file. Expected attribute name instead.\",\n\t\"eof-in-attribute-name\":\n\t\t\"Unexpected end of file in attribute name.\",\n\t\"invalid-character-in-attribute-name\":\n\t\t\"Invalid character in attribute name.\",\n\t\"duplicate-attribute\":\n\t\t\"Dropped duplicate attribute '{name}' on tag.\",\n\t\"expected-end-of-tag-but-got-eof\":\n\t\t\"Unexpected end of file. Expected = or end of tag.\",\n\t\"expected-attribute-value-but-got-eof\":\n\t\t\"Unexpected end of file. Expected attribute value.\",\n\t\"expected-attribute-value-but-got-right-bracket\":\n\t\t\"Expected attribute value. Got '>' instead.\",\n\t\"unexpected-character-in-unquoted-attribute-value\":\n\t\t\"Unexpected character in unquoted attribute\",\n\t\"invalid-character-after-attribute-name\":\n\t\t\"Unexpected character after attribute name.\",\n\t\"unexpected-character-after-attribute-value\":\n\t\t\"Unexpected character after attribute value.\",\n\t\"eof-in-attribute-value-double-quote\":\n\t\t\"Unexpected end of file in attribute value (\\\").\",\n\t\"eof-in-attribute-value-single-quote\":\n\t\t\"Unexpected end of file in attribute value (').\",\n\t\"eof-in-attribute-value-no-quotes\":\n\t\t\"Unexpected end of file in attribute value.\",\n\t\"eof-after-attribute-value\":\n\t\t\"Unexpected end of file after attribute value.\",\n\t\"unexpected-eof-after-solidus-in-tag\":\n\t\t\"Unexpected end of file in tag. Expected >.\",\n\t\"unexpected-character-after-solidus-in-tag\":\n\t\t\"Unexpected character after / in tag. Expected >.\",\n\t\"expected-dashes-or-doctype\":\n\t\t\"Expected '--' or 'DOCTYPE'. Not found.\",\n\t\"unexpected-bang-after-double-dash-in-comment\":\n\t\t\"Unexpected ! after -- in comment.\",\n\t\"incorrect-comment\":\n\t\t\"Incorrect comment.\",\n\t\"eof-in-comment\":\n\t\t\"Unexpected end of file in comment.\",\n\t\"eof-in-comment-end-dash\":\n\t\t\"Unexpected end of file in comment (-).\",\n\t\"unexpected-dash-after-double-dash-in-comment\":\n\t\t\"Unexpected '-' after '--' found in comment.\",\n\t\"eof-in-comment-double-dash\":\n\t\t\"Unexpected end of file in comment (--).\",\n\t\"eof-in-comment-end-bang-state\":\n\t\t\"Unexpected end of file in comment.\",\n\t\"unexpected-char-in-comment\":\n\t\t\"Unexpected character in comment found.\",\n\t\"need-space-after-doctype\":\n\t\t\"No space after literal string 'DOCTYPE'.\",\n\t\"expected-doctype-name-but-got-right-bracket\":\n\t\t\"Unexpected > character. Expected DOCTYPE name.\",\n\t\"expected-doctype-name-but-got-eof\":\n\t\t\"Unexpected end of file. Expected DOCTYPE name.\",\n\t\"eof-in-doctype-name\":\n\t\t\"Unexpected end of file in DOCTYPE name.\",\n\t\"eof-in-doctype\":\n\t\t\"Unexpected end of file in DOCTYPE.\",\n\t\"expected-space-or-right-bracket-in-doctype\":\n\t\t\"Expected space or '>'. Got '{data}'.\",\n\t\"unexpected-end-of-doctype\":\n\t\t\"Unexpected end of DOCTYPE.\",\n\t\"unexpected-char-in-doctype\":\n\t\t\"Unexpected character in DOCTYPE.\",\n\t\"eof-in-bogus-doctype\":\n\t\t\"Unexpected end of file in bogus doctype.\",\n\t\"eof-in-innerhtml\":\n\t\t\"Unexpected EOF in inner html mode.\",\n\t\"unexpected-doctype\":\n\t\t\"Unexpected DOCTYPE. Ignored.\",\n\t\"non-html-root\":\n\t\t\"html needs to be the first start tag.\",\n\t\"expected-doctype-but-got-eof\":\n\t\t\"Unexpected End of file. Expected DOCTYPE.\",\n\t\"unknown-doctype\":\n\t\t\"Erroneous DOCTYPE. Expected .\",\n\t\"quirky-doctype\":\n\t\t\"Quirky doctype. Expected .\",\n\t\"almost-standards-doctype\":\n\t\t\"Almost standards mode doctype. Expected .\",\n\t\"obsolete-doctype\":\n\t\t\"Obsolete doctype. Expected .\",\n\t\"expected-doctype-but-got-chars\":\n\t\t\"Non-space characters found without seeing a doctype first. Expected e.g. .\",\n\t\"expected-doctype-but-got-start-tag\":\n\t\t\"Start tag seen without seeing a doctype first. Expected e.g. .\",\n\t\"expected-doctype-but-got-end-tag\":\n\t\t\"End tag seen without seeing a doctype first. Expected e.g. .\",\n\t\"end-tag-after-implied-root\":\n\t\t\"Unexpected end tag ({name}) after the (implied) root element.\",\n\t\"expected-named-closing-tag-but-got-eof\":\n\t\t\"Unexpected end of file. Expected end tag ({name}).\",\n\t\"two-heads-are-not-better-than-one\":\n\t\t\"Unexpected start tag head in existing head. Ignored.\",\n\t\"unexpected-end-tag\":\n\t\t\"Unexpected end tag ({name}). Ignored.\",\n\t\"unexpected-implied-end-tag\":\n\t\t\"End tag {name} implied, but there were open elements.\",\n\t\"unexpected-start-tag-out-of-my-head\":\n\t\t\"Unexpected start tag ({name}) that can be in head. Moved.\",\n\t\"unexpected-start-tag\":\n\t\t\"Unexpected start tag ({name}).\",\n\t\"missing-end-tag\":\n\t\t\"Missing end tag ({name}).\",\n\t\"missing-end-tags\":\n\t\t\"Missing end tags ({name}).\",\n\t\"unexpected-start-tag-implies-end-tag\":\n\t\t\"Unexpected start tag ({startName}) implies end tag ({endName}).\",\n\t\"unexpected-start-tag-treated-as\":\n\t\t\"Unexpected start tag ({originalName}). Treated as {newName}.\",\n\t\"deprecated-tag\":\n\t\t\"Unexpected start tag {name}. Don't use it!\",\n\t\"unexpected-start-tag-ignored\":\n\t\t\"Unexpected start tag {name}. Ignored.\",\n\t\"expected-one-end-tag-but-got-another\":\n\t\t\"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).\",\n\t\"end-tag-too-early\":\n\t\t\"End tag ({name}) seen too early. Expected other end tag.\",\n\t\"end-tag-too-early-named\":\n\t\t\"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.\",\n\t\"end-tag-too-early-ignored\":\n\t\t\"End tag ({name}) seen too early. Ignored.\",\n\t\"adoption-agency-1.1\":\n\t\t\"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.\",\n\t\"adoption-agency-1.2\":\n\t\t\"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.\",\n\t\"adoption-agency-1.3\":\n\t\t\"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.\",\n\t\"adoption-agency-4.4\":\n\t\t\"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.\",\n\t\"unexpected-end-tag-treated-as\":\n\t\t\"Unexpected end tag ({originalName}). Treated as {newName}.\",\n\t\"no-end-tag\":\n\t\t\"This element ({name}) has no end tag.\",\n\t\"unexpected-implied-end-tag-in-table\":\n\t\t\"Unexpected implied end tag ({name}) in the table phase.\",\n\t\"unexpected-implied-end-tag-in-table-body\":\n\t\t\"Unexpected implied end tag ({name}) in the table body phase.\",\n\t\"unexpected-char-implies-table-voodoo\":\n\t\t\"Unexpected non-space characters in table context caused voodoo mode.\",\n\t\"unexpected-hidden-input-in-table\":\n\t\t\"Unexpected input with type hidden in table context.\",\n\t\"unexpected-form-in-table\":\n\t\t\"Unexpected form in table context.\",\n\t\"unexpected-start-tag-implies-table-voodoo\":\n\t\t\"Unexpected start tag ({name}) in table context caused voodoo mode.\",\n\t\"unexpected-end-tag-implies-table-voodoo\":\n\t\t\"Unexpected end tag ({name}) in table context caused voodoo mode.\",\n\t\"unexpected-cell-in-table-body\":\n\t\t\"Unexpected table cell start tag ({name}) in the table body phase.\",\n\t\"unexpected-cell-end-tag\":\n\t\t\"Got table cell end tag ({name}) while required end tags are missing.\",\n\t\"unexpected-end-tag-in-table-body\":\n\t\t\"Unexpected end tag ({name}) in the table body phase. Ignored.\",\n\t\"unexpected-implied-end-tag-in-table-row\":\n\t\t\"Unexpected implied end tag ({name}) in the table row phase.\",\n\t\"unexpected-end-tag-in-table-row\":\n\t\t\"Unexpected end tag ({name}) in the table row phase. Ignored.\",\n\t\"unexpected-select-in-select\":\n\t\t\"Unexpected select start tag in the select phase treated as select end tag.\",\n\t\"unexpected-input-in-select\":\n\t\t\"Unexpected input start tag in the select phase.\",\n\t\"unexpected-start-tag-in-select\":\n\t\t\"Unexpected start tag token ({name}) in the select phase. Ignored.\",\n\t\"unexpected-end-tag-in-select\":\n\t\t\"Unexpected end tag ({name}) in the select phase. Ignored.\",\n\t\"unexpected-table-element-start-tag-in-select-in-table\":\n\t\t\"Unexpected table element start tag ({name}) in the select in table phase.\",\n\t\"unexpected-table-element-end-tag-in-select-in-table\":\n\t\t\"Unexpected table element end tag ({name}) in the select in table phase.\",\n\t\"unexpected-char-after-body\":\n\t\t\"Unexpected non-space characters in the after body phase.\",\n\t\"unexpected-start-tag-after-body\":\n\t\t\"Unexpected start tag token ({name}) in the after body phase.\",\n\t\"unexpected-end-tag-after-body\":\n\t\t\"Unexpected end tag token ({name}) in the after body phase.\",\n\t\"unexpected-char-in-frameset\":\n\t\t\"Unepxected characters in the frameset phase. Characters ignored.\",\n\t\"unexpected-start-tag-in-frameset\":\n\t\t\"Unexpected start tag token ({name}) in the frameset phase. Ignored.\",\n\t\"unexpected-frameset-in-frameset-innerhtml\":\n\t\t\"Unexpected end tag token (frameset in the frameset phase (innerHTML).\",\n\t\"unexpected-end-tag-in-frameset\":\n\t\t\"Unexpected end tag token ({name}) in the frameset phase. Ignored.\",\n\t\"unexpected-char-after-frameset\":\n\t\t\"Unexpected non-space characters in the after frameset phase. Ignored.\",\n\t\"unexpected-start-tag-after-frameset\":\n\t\t\"Unexpected start tag ({name}) in the after frameset phase. Ignored.\",\n\t\"unexpected-end-tag-after-frameset\":\n\t\t\"Unexpected end tag ({name}) in the after frameset phase. Ignored.\",\n\t\"expected-eof-but-got-char\":\n\t\t\"Unexpected non-space characters. Expected end of file.\",\n\t\"expected-eof-but-got-start-tag\":\n\t\t\"Unexpected start tag ({name}). Expected end of file.\",\n\t\"expected-eof-but-got-end-tag\":\n\t\t\"Unexpected end tag ({name}). Expected end of file.\",\n\t\"unexpected-end-table-in-caption\":\n\t\t\"Unexpected end table tag in caption. Generates implied end caption.\",\n\t\"end-html-in-innerhtml\": \n\t\t\"Unexpected html end tag in inner html mode.\",\n\t\"eof-in-table\":\n\t\t\"Unexpected end of file. Expected table content.\",\n\t\"eof-in-script\":\n\t\t\"Unexpected end of file. Expected script content.\",\n\t\"non-void-element-with-trailing-solidus\":\n\t\t\"Trailing solidus not allowed on element {name}.\",\n\t\"unexpected-html-element-in-foreign-content\":\n\t\t\"HTML start tag \\\"{name}\\\" in a foreign namespace context.\",\n\t\"unexpected-start-tag-in-table\":\n\t\t\"Unexpected {name}. Expected table content.\"\n}\n},\n{}],\n9:[function(_dereq_,module,exports){\nvar SAXTreeBuilder = _dereq_('./SAXTreeBuilder').SAXTreeBuilder;\nvar Tokenizer = _dereq_('../Tokenizer').Tokenizer;\nvar TreeParser = _dereq_('./TreeParser').TreeParser;\n\nfunction SAXParser() {\n\tthis.contentHandler = null;\n\tthis._errorHandler = null;\n\tthis._treeBuilder = new SAXTreeBuilder();\n\tthis._tokenizer = new Tokenizer(this._treeBuilder);\n\tthis._scriptingEnabled = false;\n}\n\nSAXParser.prototype.parse = function(source, context) {\n\tif (context) {\n\t\tthis._treeBuilder.setFragmentContext(context);\n\t}\n\tthis._tokenizer.tokenize(source);\n\tvar document = this._treeBuilder.document;\n\tif (document) {\n\t\tnew TreeParser(this.contentHandler).parse(document);\n\t}\n};\n\nSAXParser.prototype.parseFragment = function(source, context) {\n\tthis._treeBuilder.setFragmentContext(context);\n\tthis._tokenizer.tokenize(source);\n\tvar fragment = this._treeBuilder.getFragment();\n\tif (fragment) {\n\t\tnew TreeParser(this.contentHandler).parse(fragment);\n\t}\n};\n\nObject.defineProperty(SAXParser.prototype, 'scriptingEnabled', {\n\tget: function() {\n\t\treturn this._scriptingEnabled;\n\t},\n\tset: function(value) {\n\t\tthis._scriptingEnabled = value;\n\t\tthis._treeBuilder.scriptingEnabled = value;\n\t}\n});\n\nObject.defineProperty(SAXParser.prototype, 'errorHandler', {\n\tget: function() {\n\t\treturn this._errorHandler;\n\t},\n\tset: function(value) {\n\t\tthis._errorHandler = value;\n\t\tthis._treeBuilder.errorHandler = value;\n\t}\n});\n\nexports.SAXParser = SAXParser;\n\n},\n{\"../Tokenizer\":5,\"./SAXTreeBuilder\":10,\"./TreeParser\":11}],\n10:[function(_dereq_,module,exports){\nvar util = _dereq_('util');\nvar TreeBuilder = _dereq_('../TreeBuilder').TreeBuilder;\n\nfunction SAXTreeBuilder() {\n\tTreeBuilder.call(this);\n}\n\nutil.inherits(SAXTreeBuilder, TreeBuilder);\n\nSAXTreeBuilder.prototype.start = function(tokenizer) {\n\tthis.document = new Document(this.tokenizer);\n};\n\nSAXTreeBuilder.prototype.end = function() {\n\tthis.document.endLocator = this.tokenizer;\n};\n\nSAXTreeBuilder.prototype.insertDoctype = function(name, publicId, systemId) {\n\tvar doctype = new DTD(this.tokenizer, name, publicId, systemId);\n\tdoctype.endLocator = this.tokenizer;\n\tthis.document.appendChild(doctype);\n};\n\nSAXTreeBuilder.prototype.createElement = function(namespaceURI, localName, attributes) {\n\tvar element = new Element(this.tokenizer, namespaceURI, localName, localName, attributes || []);\n\treturn element;\n};\n\nSAXTreeBuilder.prototype.insertComment = function(data, parent) {\n\tif (!parent)\n\t\tparent = this.currentStackItem();\n\tvar comment = new Comment(this.tokenizer, data);\n\tparent.appendChild(comment);\n};\n\nSAXTreeBuilder.prototype.appendCharacters = function(parent, data) {\n\tvar text = new Characters(this.tokenizer, data);\n\tparent.appendChild(text);\n};\n\nSAXTreeBuilder.prototype.insertText = function(data) {\n\tif (this.redirectAttachToFosterParent && this.openElements.top.isFosterParenting()) {\n\t\tvar tableIndex = this.openElements.findIndex('table');\n\t\tvar tableItem = this.openElements.item(tableIndex);\n\t\tvar table = tableItem.node;\n\t\tif (tableIndex === 0) {\n\t\t\treturn this.appendCharacters(table, data);\n\t\t}\n\t\tvar text = new Characters(this.tokenizer, data);\n\t\tvar parent = table.parentNode;\n\t\tif (parent) {\n\t\t\tparent.insertBetween(text, table.previousSibling, table);\n\t\t\treturn;\n\t\t}\n\t\tvar stackParent = this.openElements.item(tableIndex - 1).node;\n\t\tstackParent.appendChild(text);\n\t\treturn;\n\t}\n\tthis.appendCharacters(this.currentStackItem().node, data);\n};\n\nSAXTreeBuilder.prototype.attachNode = function(node, parent) {\n\tparent.appendChild(node);\n};\n\nSAXTreeBuilder.prototype.attachNodeToFosterParent = function(child, table, stackParent) {\n\tvar parent = table.parentNode;\n\tif (parent)\n\t\tparent.insertBetween(child, table.previousSibling, table);\n\telse\n\t\tstackParent.appendChild(child);\n};\n\nSAXTreeBuilder.prototype.detachFromParent = function(element) {\n\telement.detach();\n};\n\nSAXTreeBuilder.prototype.reparentChildren = function(oldParent, newParent) {\n\tnewParent.appendChildren(oldParent.firstChild);\n};\n\nSAXTreeBuilder.prototype.getFragment = function() {\n\tvar fragment = new DocumentFragment();\n\tthis.reparentChildren(this.openElements.rootNode, fragment);\n\treturn fragment;\n};\n\nfunction getAttribute(node, name) {\n\tfor (var i = 0; i < node.attributes.length; i++) {\n\t\tvar attribute = node.attributes[i];\n\t\tif (attribute.nodeName === name)\n\t\t\treturn attribute.nodeValue;\n\t}\n}\n\nSAXTreeBuilder.prototype.addAttributesToElement = function(element, attributes) {\n\tfor (var i = 0; i < attributes.length; i++) {\n\t\tvar attribute = attributes[i];\n\t\tif (!getAttribute(element, attribute.nodeName))\n\t\t\telement.attributes.push(attribute);\n\t}\n};\n\nvar NodeType = {\n\tCDATA: 1,\n\tCHARACTERS: 2,\n\tCOMMENT: 3,\n\tDOCUMENT: 4,\n\tDOCUMENT_FRAGMENT: 5,\n\tDTD: 6,\n\tELEMENT: 7,\n\tENTITY: 8,\n\tIGNORABLE_WHITESPACE: 9,\n\tPROCESSING_INSTRUCTION: 10,\n\tSKIPPED_ENTITY: 11\n};\nfunction Node(locator) {\n\tif (!locator) {\n\t\tthis.columnNumber = -1;\n\t\tthis.lineNumber = -1;\n\t} else {\n\t\tthis.columnNumber = locator.columnNumber;\n\t\tthis.lineNumber = locator.lineNumber;\n\t}\n\tthis.parentNode = null;\n\tthis.nextSibling = null;\n\tthis.firstChild = null;\n}\nNode.prototype.visit = function(treeParser) {\n\tthrow new Error(\"Not Implemented\");\n};\nNode.prototype.revisit = function(treeParser) {\n\treturn;\n};\nNode.prototype.detach = function() {\n\tif (this.parentNode !== null) {\n\t\tthis.parentNode.removeChild(this);\n\t\tthis.parentNode = null;\n\t}\n};\n\nObject.defineProperty(Node.prototype, 'previousSibling', {\n\tget: function() {\n\t\tvar prev = null;\n\t\tvar next = this.parentNode.firstChild;\n\t\tfor(;;) {\n\t\t\tif (this == next) {\n\t\t\t\treturn prev;\n\t\t\t}\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t}\n});\n\n\nfunction ParentNode(locator) {\n\tNode.call(this, locator);\n\tthis.lastChild = null;\n\tthis._endLocator = null;\n}\n\nParentNode.prototype = Object.create(Node.prototype);\nParentNode.prototype.insertBefore = function(child, sibling) {\n\tif (!sibling) {\n\t\treturn this.appendChild(child);\n\t}\n\tchild.detach();\n\tchild.parentNode = this;\n\tif (this.firstChild == sibling) {\n\t\tchild.nextSibling = sibling;\n\t\tthis.firstChild = child;\n\t} else {\n\t\tvar prev = this.firstChild;\n\t\tvar next = this.firstChild.nextSibling;\n\t\twhile (next != sibling) {\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t\tprev.nextSibling = child;\n\t\tchild.nextSibling = next;\n\t}\n\treturn child;\n};\n\nParentNode.prototype.insertBetween = function(child, prev, next) {\n\tif (!next) {\n\t\treturn this.appendChild(child);\n\t}\n\tchild.detach();\n\tchild.parentNode = this;\n\tchild.nextSibling = next;\n\tif (!prev) {\n\t\tfirstChild = child;\n\t} else {\n\t\tprev.nextSibling = child;\n\t}\n\treturn child;\n};\nParentNode.prototype.appendChild = function(child) {\n\tchild.detach();\n\tchild.parentNode = this;\n\tif (!this.firstChild) {\n\t\tthis.firstChild = child;\n\t} else {\n\t\tthis.lastChild.nextSibling = child;\n\t}\n\tthis.lastChild = child;\n\treturn child;\n};\nParentNode.prototype.appendChildren = function(parent) {\n\tvar child = parent.firstChild;\n\tif (!child) {\n\t\treturn;\n\t}\n\tvar another = parent;\n\tif (!this.firstChild) {\n\t\tthis.firstChild = child;\n\t} else {\n\t\tthis.lastChild.nextSibling = child;\n\t}\n\tthis.lastChild = another.lastChild;\n\tdo {\n\t\tchild.parentNode = this;\n\t} while ((child = child.nextSibling));\n\tanother.firstChild = null;\n\tanother.lastChild = null;\n};\nParentNode.prototype.removeChild = function(node) {\n\tif (this.firstChild == node) {\n\t\tthis.firstChild = node.nextSibling;\n\t\tif (this.lastChild == node) {\n\t\t\tthis.lastChild = null;\n\t\t}\n\t} else {\n\t\tvar prev = this.firstChild;\n\t\tvar next = this.firstChild.nextSibling;\n\t\twhile (next != node) {\n\t\t\tprev = next;\n\t\t\tnext = next.nextSibling;\n\t\t}\n\t\tprev.nextSibling = node.nextSibling;\n\t\tif (this.lastChild == node) {\n\t\t\tthis.lastChild = prev;\n\t\t}\n\t}\n\tnode.parentNode = null;\n\treturn node;\n};\n\nObject.defineProperty(ParentNode.prototype, 'endLocator', {\n\tget: function() {\n\t\treturn this._endLocator;\n\t},\n\tset: function(endLocator) {\n\t\tthis._endLocator = {\n\t\t\tlineNumber: endLocator.lineNumber,\n\t\t\tcolumnNumber: endLocator.columnNumber\n\t\t};\n\t}\n});\nfunction Document (locator) {\n\tParentNode.call(this, locator);\n\tthis.nodeType = NodeType.DOCUMENT;\n}\n\nDocument.prototype = Object.create(ParentNode.prototype);\nDocument.prototype.visit = function(treeParser) {\n\ttreeParser.startDocument(this);\n};\nDocument.prototype.revisit = function(treeParser) {\n\ttreeParser.endDocument(this.endLocator);\n};\nfunction DocumentFragment() {\n\tParentNode.call(this, new Locator());\n\tthis.nodeType = NodeType.DOCUMENT_FRAGMENT;\n}\n\nDocumentFragment.prototype = Object.create(ParentNode.prototype);\nDocumentFragment.prototype.visit = function(treeParser) {\n};\nfunction Element(locator, uri, localName, qName, atts, prefixMappings) {\n\tParentNode.call(this, locator);\n\tthis.uri = uri;\n\tthis.localName = localName;\n\tthis.qName = qName;\n\tthis.attributes = atts;\n\tthis.prefixMappings = prefixMappings;\n\tthis.nodeType = NodeType.ELEMENT;\n}\n\nElement.prototype = Object.create(ParentNode.prototype);\nElement.prototype.visit = function(treeParser) {\n\tif (this.prefixMappings) {\n\t\tfor (var key in prefixMappings) {\n\t\t\tvar mapping = prefixMappings[key];\n\t\t\ttreeParser.startPrefixMapping(mapping.getPrefix(),\n\t\t\t\t\tmapping.getUri(), this);\n\t\t}\n\t}\n\ttreeParser.startElement(this.uri, this.localName, this.qName, this.attributes, this);\n};\nElement.prototype.revisit = function(treeParser) {\n\ttreeParser.endElement(this.uri, this.localName, this.qName, this.endLocator);\n\tif (this.prefixMappings) {\n\t\tfor (var key in prefixMappings) {\n\t\t\tvar mapping = prefixMappings[key];\n\t\t\ttreeParser.endPrefixMapping(mapping.getPrefix(), this.endLocator);\n\t\t}\n\t}\n};\nfunction Characters(locator, data){\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.CHARACTERS;\n}\n\nCharacters.prototype = Object.create(Node.prototype);\nCharacters.prototype.visit = function (treeParser) {\n\ttreeParser.characters(this.data, 0, this.data.length, this);\n};\nfunction IgnorableWhitespace(locator, data) {\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.IGNORABLE_WHITESPACE;\n}\n\nIgnorableWhitespace.prototype = Object.create(Node.prototype);\nIgnorableWhitespace.prototype.visit = function(treeParser) {\n\ttreeParser.ignorableWhitespace(this.data, 0, this.data.length, this);\n};\nfunction Comment(locator, data) {\n\tNode.call(this, locator);\n\tthis.data = data;\n\tthis.nodeType = NodeType.COMMENT;\n}\n\nComment.prototype = Object.create(Node.prototype);\nComment.prototype.visit = function(treeParser) {\n\ttreeParser.comment(this.data, 0, this.data.length, this);\n};\nfunction CDATA(locator) {\n\tParentNode.call(this, locator);\n\tthis.nodeType = NodeType.CDATA;\n}\n\nCDATA.prototype = Object.create(ParentNode.prototype);\nCDATA.prototype.visit = function(treeParser) {\n\ttreeParser.startCDATA(this);\n};\nCDATA.prototype.revisit = function(treeParser) {\n\ttreeParser.endCDATA(this.endLocator);\n};\nfunction Entity(name) {\n\tParentNode.call(this);\n\tthis.name = name;\n\tthis.nodeType = NodeType.ENTITY;\n}\n\nEntity.prototype = Object.create(ParentNode.prototype);\nEntity.prototype.visit = function(treeParser) {\n\ttreeParser.startEntity(this.name, this);\n};\nEntity.prototype.revisit = function(treeParser) {\n\ttreeParser.endEntity(this.name);\n};\n\nfunction SkippedEntity(name) {\n\tNode.call(this);\n\tthis.name = name;\n\tthis.nodeType = NodeType.SKIPPED_ENTITY;\n}\n\nSkippedEntity.prototype = Object.create(Node.prototype);\nSkippedEntity.prototype.visit = function(treeParser) {\n\ttreeParser.skippedEntity(this.name, this);\n};\nfunction ProcessingInstruction(target, data) {\n\tNode.call(this);\n\tthis.target = target;\n\tthis.data = data;\n}\n\nProcessingInstruction.prototype = Object.create(Node.prototype);\nProcessingInstruction.prototype.visit = function(treeParser) {\n\ttreeParser.processingInstruction(this.target, this.data, this);\n};\nProcessingInstruction.prototype.getNodeType = function() {\n\treturn NodeType.PROCESSING_INSTRUCTION;\n};\nfunction DTD(name, publicIdentifier, systemIdentifier) {\n\tParentNode.call(this);\n\tthis.name = name;\n\tthis.publicIdentifier = publicIdentifier;\n\tthis.systemIdentifier = systemIdentifier;\n\tthis.nodeType = NodeType.DTD;\n}\n\nDTD.prototype = Object.create(ParentNode.prototype);\nDTD.prototype.visit = function(treeParser) {\n\ttreeParser.startDTD(this.name, this.publicIdentifier, this.systemIdentifier, this);\n};\nDTD.prototype.revisit = function(treeParser) {\n\ttreeParser.endDTD();\n};\n\nexports.SAXTreeBuilder = SAXTreeBuilder;\n\n},\n{\"../TreeBuilder\":6,\"util\":20}],\n11:[function(_dereq_,module,exports){\nfunction TreeParser(contentHandler, lexicalHandler){\n\tthis.contentHandler;\n\tthis.lexicalHandler;\n\tthis.locatorDelegate;\n\n\tif (!contentHandler) {\n\t\tthrow new IllegalArgumentException(\"contentHandler was null.\");\n\t}\n\tthis.contentHandler = contentHandler;\n\tif (!lexicalHandler) {\n\t\tthis.lexicalHandler = new NullLexicalHandler();\n\t} else {\n\t\tthis.lexicalHandler = lexicalHandler;\n\t}\n}\nTreeParser.prototype.parse = function(node) {\n\tthis.contentHandler.documentLocator = this;\n\tvar current = node;\n\tvar next;\n\tfor (;;) {\n\t\tcurrent.visit(this);\n\t\tif (next = current.firstChild) {\n\t\t\tcurrent = next;\n\t\t\tcontinue;\n\t\t}\n\t\tfor (;;) {\n\t\t\tcurrent.revisit(this);\n\t\t\tif (current == node) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (next = current.nextSibling) {\n\t\t\t\tcurrent = next;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent = current.parentNode;\n\t\t}\n\t}\n};\nTreeParser.prototype.characters = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.characters(ch, start, length);\n};\nTreeParser.prototype.endDocument = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endDocument();\n};\nTreeParser.prototype.endElement = function(uri, localName, qName, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endElement(uri, localName, qName);\n};\nTreeParser.prototype.endPrefixMapping = function(prefix, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.endPrefixMapping(prefix);\n};\nTreeParser.prototype.ignorableWhitespace = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.ignorableWhitespace(ch, start, length);\n};\nTreeParser.prototype.processingInstruction = function(target, data, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.processingInstruction(target, data);\n};\nTreeParser.prototype.skippedEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.skippedEntity(name);\n};\nTreeParser.prototype.startDocument = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startDocument();\n};\nTreeParser.prototype.startElement = function(uri, localName, qName, atts, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startElement(uri, localName, qName, atts);\n};\nTreeParser.prototype.startPrefixMapping = function(prefix, uri, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.contentHandler.startPrefixMapping(prefix, uri);\n};\nTreeParser.prototype.comment = function(ch, start, length, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.comment(ch, start, length);\n};\nTreeParser.prototype.endCDATA = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endCDATA();\n};\nTreeParser.prototype.endDTD = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endDTD();\n};\nTreeParser.prototype.endEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.endEntity(name);\n};\nTreeParser.prototype.startCDATA = function(locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startCDATA();\n};\nTreeParser.prototype.startDTD = function(name, publicId, systemId, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startDTD(name, publicId, systemId);\n};\nTreeParser.prototype.startEntity = function(name, locator) {\n\tthis.locatorDelegate = locator;\n\tthis.lexicalHandler.startEntity(name);\n};\n\nObject.defineProperty(TreeParser.prototype, 'columnNumber', {\n\tget: function() {\n\t\tif (!this.locatorDelegate)\n\t\t\treturn -1;\n\t\telse\n\t\t\treturn this.locatorDelegate.columnNumber;\n\t}\n});\n\nObject.defineProperty(TreeParser.prototype, 'lineNumber', {\n\tget: function() {\n\t\tif (!this.locatorDelegate)\n\t\t\treturn -1;\n\t\telse\n\t\t\treturn this.locatorDelegate.lineNumber;\n\t}\n});\nfunction NullLexicalHandler() {\n\n}\n\nNullLexicalHandler.prototype.comment = function() {};\nNullLexicalHandler.prototype.endCDATA = function() {};\nNullLexicalHandler.prototype.endDTD = function() {};\nNullLexicalHandler.prototype.endEntity = function() {};\nNullLexicalHandler.prototype.startCDATA = function() {};\nNullLexicalHandler.prototype.startDTD = function() {};\nNullLexicalHandler.prototype.startEntity = function() {};\n\nexports.TreeParser = TreeParser;\n\n},\n{}],\n12:[function(_dereq_,module,exports){\nmodule.exports = {\n\t\"Aacute;\": \"\\u00C1\",\n\t\"Aacute\": \"\\u00C1\",\n\t\"aacute;\": \"\\u00E1\",\n\t\"aacute\": \"\\u00E1\",\n\t\"Abreve;\": \"\\u0102\",\n\t\"abreve;\": \"\\u0103\",\n\t\"ac;\": \"\\u223E\",\n\t\"acd;\": \"\\u223F\",\n\t\"acE;\": \"\\u223E\\u0333\",\n\t\"Acirc;\": \"\\u00C2\",\n\t\"Acirc\": \"\\u00C2\",\n\t\"acirc;\": \"\\u00E2\",\n\t\"acirc\": \"\\u00E2\",\n\t\"acute;\": \"\\u00B4\",\n\t\"acute\": \"\\u00B4\",\n\t\"Acy;\": \"\\u0410\",\n\t\"acy;\": \"\\u0430\",\n\t\"AElig;\": \"\\u00C6\",\n\t\"AElig\": \"\\u00C6\",\n\t\"aelig;\": \"\\u00E6\",\n\t\"aelig\": \"\\u00E6\",\n\t\"af;\": \"\\u2061\",\n\t\"Afr;\": \"\\uD835\\uDD04\",\n\t\"afr;\": \"\\uD835\\uDD1E\",\n\t\"Agrave;\": \"\\u00C0\",\n\t\"Agrave\": \"\\u00C0\",\n\t\"agrave;\": \"\\u00E0\",\n\t\"agrave\": \"\\u00E0\",\n\t\"alefsym;\": \"\\u2135\",\n\t\"aleph;\": \"\\u2135\",\n\t\"Alpha;\": \"\\u0391\",\n\t\"alpha;\": \"\\u03B1\",\n\t\"Amacr;\": \"\\u0100\",\n\t\"amacr;\": \"\\u0101\",\n\t\"amalg;\": \"\\u2A3F\",\n\t\"amp;\": \"\\u0026\",\n\t\"amp\": \"\\u0026\",\n\t\"AMP;\": \"\\u0026\",\n\t\"AMP\": \"\\u0026\",\n\t\"andand;\": \"\\u2A55\",\n\t\"And;\": \"\\u2A53\",\n\t\"and;\": \"\\u2227\",\n\t\"andd;\": \"\\u2A5C\",\n\t\"andslope;\": \"\\u2A58\",\n\t\"andv;\": \"\\u2A5A\",\n\t\"ang;\": \"\\u2220\",\n\t\"ange;\": \"\\u29A4\",\n\t\"angle;\": \"\\u2220\",\n\t\"angmsdaa;\": \"\\u29A8\",\n\t\"angmsdab;\": \"\\u29A9\",\n\t\"angmsdac;\": \"\\u29AA\",\n\t\"angmsdad;\": \"\\u29AB\",\n\t\"angmsdae;\": \"\\u29AC\",\n\t\"angmsdaf;\": \"\\u29AD\",\n\t\"angmsdag;\": \"\\u29AE\",\n\t\"angmsdah;\": \"\\u29AF\",\n\t\"angmsd;\": \"\\u2221\",\n\t\"angrt;\": \"\\u221F\",\n\t\"angrtvb;\": \"\\u22BE\",\n\t\"angrtvbd;\": \"\\u299D\",\n\t\"angsph;\": \"\\u2222\",\n\t\"angst;\": \"\\u00C5\",\n\t\"angzarr;\": \"\\u237C\",\n\t\"Aogon;\": \"\\u0104\",\n\t\"aogon;\": \"\\u0105\",\n\t\"Aopf;\": \"\\uD835\\uDD38\",\n\t\"aopf;\": \"\\uD835\\uDD52\",\n\t\"apacir;\": \"\\u2A6F\",\n\t\"ap;\": \"\\u2248\",\n\t\"apE;\": \"\\u2A70\",\n\t\"ape;\": \"\\u224A\",\n\t\"apid;\": \"\\u224B\",\n\t\"apos;\": \"\\u0027\",\n\t\"ApplyFunction;\": \"\\u2061\",\n\t\"approx;\": \"\\u2248\",\n\t\"approxeq;\": \"\\u224A\",\n\t\"Aring;\": \"\\u00C5\",\n\t\"Aring\": \"\\u00C5\",\n\t\"aring;\": \"\\u00E5\",\n\t\"aring\": \"\\u00E5\",\n\t\"Ascr;\": \"\\uD835\\uDC9C\",\n\t\"ascr;\": \"\\uD835\\uDCB6\",\n\t\"Assign;\": \"\\u2254\",\n\t\"ast;\": \"\\u002A\",\n\t\"asymp;\": \"\\u2248\",\n\t\"asympeq;\": \"\\u224D\",\n\t\"Atilde;\": \"\\u00C3\",\n\t\"Atilde\": \"\\u00C3\",\n\t\"atilde;\": \"\\u00E3\",\n\t\"atilde\": \"\\u00E3\",\n\t\"Auml;\": \"\\u00C4\",\n\t\"Auml\": \"\\u00C4\",\n\t\"auml;\": \"\\u00E4\",\n\t\"auml\": \"\\u00E4\",\n\t\"awconint;\": \"\\u2233\",\n\t\"awint;\": \"\\u2A11\",\n\t\"backcong;\": \"\\u224C\",\n\t\"backepsilon;\": \"\\u03F6\",\n\t\"backprime;\": \"\\u2035\",\n\t\"backsim;\": \"\\u223D\",\n\t\"backsimeq;\": \"\\u22CD\",\n\t\"Backslash;\": \"\\u2216\",\n\t\"Barv;\": \"\\u2AE7\",\n\t\"barvee;\": \"\\u22BD\",\n\t\"barwed;\": \"\\u2305\",\n\t\"Barwed;\": \"\\u2306\",\n\t\"barwedge;\": \"\\u2305\",\n\t\"bbrk;\": \"\\u23B5\",\n\t\"bbrktbrk;\": \"\\u23B6\",\n\t\"bcong;\": \"\\u224C\",\n\t\"Bcy;\": \"\\u0411\",\n\t\"bcy;\": \"\\u0431\",\n\t\"bdquo;\": \"\\u201E\",\n\t\"becaus;\": \"\\u2235\",\n\t\"because;\": \"\\u2235\",\n\t\"Because;\": \"\\u2235\",\n\t\"bemptyv;\": \"\\u29B0\",\n\t\"bepsi;\": \"\\u03F6\",\n\t\"bernou;\": \"\\u212C\",\n\t\"Bernoullis;\": \"\\u212C\",\n\t\"Beta;\": \"\\u0392\",\n\t\"beta;\": \"\\u03B2\",\n\t\"beth;\": \"\\u2136\",\n\t\"between;\": \"\\u226C\",\n\t\"Bfr;\": \"\\uD835\\uDD05\",\n\t\"bfr;\": \"\\uD835\\uDD1F\",\n\t\"bigcap;\": \"\\u22C2\",\n\t\"bigcirc;\": \"\\u25EF\",\n\t\"bigcup;\": \"\\u22C3\",\n\t\"bigodot;\": \"\\u2A00\",\n\t\"bigoplus;\": \"\\u2A01\",\n\t\"bigotimes;\": \"\\u2A02\",\n\t\"bigsqcup;\": \"\\u2A06\",\n\t\"bigstar;\": \"\\u2605\",\n\t\"bigtriangledown;\": \"\\u25BD\",\n\t\"bigtriangleup;\": \"\\u25B3\",\n\t\"biguplus;\": \"\\u2A04\",\n\t\"bigvee;\": \"\\u22C1\",\n\t\"bigwedge;\": \"\\u22C0\",\n\t\"bkarow;\": \"\\u290D\",\n\t\"blacklozenge;\": \"\\u29EB\",\n\t\"blacksquare;\": \"\\u25AA\",\n\t\"blacktriangle;\": \"\\u25B4\",\n\t\"blacktriangledown;\": \"\\u25BE\",\n\t\"blacktriangleleft;\": \"\\u25C2\",\n\t\"blacktriangleright;\": \"\\u25B8\",\n\t\"blank;\": \"\\u2423\",\n\t\"blk12;\": \"\\u2592\",\n\t\"blk14;\": \"\\u2591\",\n\t\"blk34;\": \"\\u2593\",\n\t\"block;\": \"\\u2588\",\n\t\"bne;\": \"\\u003D\\u20E5\",\n\t\"bnequiv;\": \"\\u2261\\u20E5\",\n\t\"bNot;\": \"\\u2AED\",\n\t\"bnot;\": \"\\u2310\",\n\t\"Bopf;\": \"\\uD835\\uDD39\",\n\t\"bopf;\": \"\\uD835\\uDD53\",\n\t\"bot;\": \"\\u22A5\",\n\t\"bottom;\": \"\\u22A5\",\n\t\"bowtie;\": \"\\u22C8\",\n\t\"boxbox;\": \"\\u29C9\",\n\t\"boxdl;\": \"\\u2510\",\n\t\"boxdL;\": \"\\u2555\",\n\t\"boxDl;\": \"\\u2556\",\n\t\"boxDL;\": \"\\u2557\",\n\t\"boxdr;\": \"\\u250C\",\n\t\"boxdR;\": \"\\u2552\",\n\t\"boxDr;\": \"\\u2553\",\n\t\"boxDR;\": \"\\u2554\",\n\t\"boxh;\": \"\\u2500\",\n\t\"boxH;\": \"\\u2550\",\n\t\"boxhd;\": \"\\u252C\",\n\t\"boxHd;\": \"\\u2564\",\n\t\"boxhD;\": \"\\u2565\",\n\t\"boxHD;\": \"\\u2566\",\n\t\"boxhu;\": \"\\u2534\",\n\t\"boxHu;\": \"\\u2567\",\n\t\"boxhU;\": \"\\u2568\",\n\t\"boxHU;\": \"\\u2569\",\n\t\"boxminus;\": \"\\u229F\",\n\t\"boxplus;\": \"\\u229E\",\n\t\"boxtimes;\": \"\\u22A0\",\n\t\"boxul;\": \"\\u2518\",\n\t\"boxuL;\": \"\\u255B\",\n\t\"boxUl;\": \"\\u255C\",\n\t\"boxUL;\": \"\\u255D\",\n\t\"boxur;\": \"\\u2514\",\n\t\"boxuR;\": \"\\u2558\",\n\t\"boxUr;\": \"\\u2559\",\n\t\"boxUR;\": \"\\u255A\",\n\t\"boxv;\": \"\\u2502\",\n\t\"boxV;\": \"\\u2551\",\n\t\"boxvh;\": \"\\u253C\",\n\t\"boxvH;\": \"\\u256A\",\n\t\"boxVh;\": \"\\u256B\",\n\t\"boxVH;\": \"\\u256C\",\n\t\"boxvl;\": \"\\u2524\",\n\t\"boxvL;\": \"\\u2561\",\n\t\"boxVl;\": \"\\u2562\",\n\t\"boxVL;\": \"\\u2563\",\n\t\"boxvr;\": \"\\u251C\",\n\t\"boxvR;\": \"\\u255E\",\n\t\"boxVr;\": \"\\u255F\",\n\t\"boxVR;\": \"\\u2560\",\n\t\"bprime;\": \"\\u2035\",\n\t\"breve;\": \"\\u02D8\",\n\t\"Breve;\": \"\\u02D8\",\n\t\"brvbar;\": \"\\u00A6\",\n\t\"brvbar\": \"\\u00A6\",\n\t\"bscr;\": \"\\uD835\\uDCB7\",\n\t\"Bscr;\": \"\\u212C\",\n\t\"bsemi;\": \"\\u204F\",\n\t\"bsim;\": \"\\u223D\",\n\t\"bsime;\": \"\\u22CD\",\n\t\"bsolb;\": \"\\u29C5\",\n\t\"bsol;\": \"\\u005C\",\n\t\"bsolhsub;\": \"\\u27C8\",\n\t\"bull;\": \"\\u2022\",\n\t\"bullet;\": \"\\u2022\",\n\t\"bump;\": \"\\u224E\",\n\t\"bumpE;\": \"\\u2AAE\",\n\t\"bumpe;\": \"\\u224F\",\n\t\"Bumpeq;\": \"\\u224E\",\n\t\"bumpeq;\": \"\\u224F\",\n\t\"Cacute;\": \"\\u0106\",\n\t\"cacute;\": \"\\u0107\",\n\t\"capand;\": \"\\u2A44\",\n\t\"capbrcup;\": \"\\u2A49\",\n\t\"capcap;\": \"\\u2A4B\",\n\t\"cap;\": \"\\u2229\",\n\t\"Cap;\": \"\\u22D2\",\n\t\"capcup;\": \"\\u2A47\",\n\t\"capdot;\": \"\\u2A40\",\n\t\"CapitalDifferentialD;\": \"\\u2145\",\n\t\"caps;\": \"\\u2229\\uFE00\",\n\t\"caret;\": \"\\u2041\",\n\t\"caron;\": \"\\u02C7\",\n\t\"Cayleys;\": \"\\u212D\",\n\t\"ccaps;\": \"\\u2A4D\",\n\t\"Ccaron;\": \"\\u010C\",\n\t\"ccaron;\": \"\\u010D\",\n\t\"Ccedil;\": \"\\u00C7\",\n\t\"Ccedil\": \"\\u00C7\",\n\t\"ccedil;\": \"\\u00E7\",\n\t\"ccedil\": \"\\u00E7\",\n\t\"Ccirc;\": \"\\u0108\",\n\t\"ccirc;\": \"\\u0109\",\n\t\"Cconint;\": \"\\u2230\",\n\t\"ccups;\": \"\\u2A4C\",\n\t\"ccupssm;\": \"\\u2A50\",\n\t\"Cdot;\": \"\\u010A\",\n\t\"cdot;\": \"\\u010B\",\n\t\"cedil;\": \"\\u00B8\",\n\t\"cedil\": \"\\u00B8\",\n\t\"Cedilla;\": \"\\u00B8\",\n\t\"cemptyv;\": \"\\u29B2\",\n\t\"cent;\": \"\\u00A2\",\n\t\"cent\": \"\\u00A2\",\n\t\"centerdot;\": \"\\u00B7\",\n\t\"CenterDot;\": \"\\u00B7\",\n\t\"cfr;\": \"\\uD835\\uDD20\",\n\t\"Cfr;\": \"\\u212D\",\n\t\"CHcy;\": \"\\u0427\",\n\t\"chcy;\": \"\\u0447\",\n\t\"check;\": \"\\u2713\",\n\t\"checkmark;\": \"\\u2713\",\n\t\"Chi;\": \"\\u03A7\",\n\t\"chi;\": \"\\u03C7\",\n\t\"circ;\": \"\\u02C6\",\n\t\"circeq;\": \"\\u2257\",\n\t\"circlearrowleft;\": \"\\u21BA\",\n\t\"circlearrowright;\": \"\\u21BB\",\n\t\"circledast;\": \"\\u229B\",\n\t\"circledcirc;\": \"\\u229A\",\n\t\"circleddash;\": \"\\u229D\",\n\t\"CircleDot;\": \"\\u2299\",\n\t\"circledR;\": \"\\u00AE\",\n\t\"circledS;\": \"\\u24C8\",\n\t\"CircleMinus;\": \"\\u2296\",\n\t\"CirclePlus;\": \"\\u2295\",\n\t\"CircleTimes;\": \"\\u2297\",\n\t\"cir;\": \"\\u25CB\",\n\t\"cirE;\": \"\\u29C3\",\n\t\"cire;\": \"\\u2257\",\n\t\"cirfnint;\": \"\\u2A10\",\n\t\"cirmid;\": \"\\u2AEF\",\n\t\"cirscir;\": \"\\u29C2\",\n\t\"ClockwiseContourIntegral;\": \"\\u2232\",\n\t\"CloseCurlyDoubleQuote;\": \"\\u201D\",\n\t\"CloseCurlyQuote;\": \"\\u2019\",\n\t\"clubs;\": \"\\u2663\",\n\t\"clubsuit;\": \"\\u2663\",\n\t\"colon;\": \"\\u003A\",\n\t\"Colon;\": \"\\u2237\",\n\t\"Colone;\": \"\\u2A74\",\n\t\"colone;\": \"\\u2254\",\n\t\"coloneq;\": \"\\u2254\",\n\t\"comma;\": \"\\u002C\",\n\t\"commat;\": \"\\u0040\",\n\t\"comp;\": \"\\u2201\",\n\t\"compfn;\": \"\\u2218\",\n\t\"complement;\": \"\\u2201\",\n\t\"complexes;\": \"\\u2102\",\n\t\"cong;\": \"\\u2245\",\n\t\"congdot;\": \"\\u2A6D\",\n\t\"Congruent;\": \"\\u2261\",\n\t\"conint;\": \"\\u222E\",\n\t\"Conint;\": \"\\u222F\",\n\t\"ContourIntegral;\": \"\\u222E\",\n\t\"copf;\": \"\\uD835\\uDD54\",\n\t\"Copf;\": \"\\u2102\",\n\t\"coprod;\": \"\\u2210\",\n\t\"Coproduct;\": \"\\u2210\",\n\t\"copy;\": \"\\u00A9\",\n\t\"copy\": \"\\u00A9\",\n\t\"COPY;\": \"\\u00A9\",\n\t\"COPY\": \"\\u00A9\",\n\t\"copysr;\": \"\\u2117\",\n\t\"CounterClockwiseContourIntegral;\": \"\\u2233\",\n\t\"crarr;\": \"\\u21B5\",\n\t\"cross;\": \"\\u2717\",\n\t\"Cross;\": \"\\u2A2F\",\n\t\"Cscr;\": \"\\uD835\\uDC9E\",\n\t\"cscr;\": \"\\uD835\\uDCB8\",\n\t\"csub;\": \"\\u2ACF\",\n\t\"csube;\": \"\\u2AD1\",\n\t\"csup;\": \"\\u2AD0\",\n\t\"csupe;\": \"\\u2AD2\",\n\t\"ctdot;\": \"\\u22EF\",\n\t\"cudarrl;\": \"\\u2938\",\n\t\"cudarrr;\": \"\\u2935\",\n\t\"cuepr;\": \"\\u22DE\",\n\t\"cuesc;\": \"\\u22DF\",\n\t\"cularr;\": \"\\u21B6\",\n\t\"cularrp;\": \"\\u293D\",\n\t\"cupbrcap;\": \"\\u2A48\",\n\t\"cupcap;\": \"\\u2A46\",\n\t\"CupCap;\": \"\\u224D\",\n\t\"cup;\": \"\\u222A\",\n\t\"Cup;\": \"\\u22D3\",\n\t\"cupcup;\": \"\\u2A4A\",\n\t\"cupdot;\": \"\\u228D\",\n\t\"cupor;\": \"\\u2A45\",\n\t\"cups;\": \"\\u222A\\uFE00\",\n\t\"curarr;\": \"\\u21B7\",\n\t\"curarrm;\": \"\\u293C\",\n\t\"curlyeqprec;\": \"\\u22DE\",\n\t\"curlyeqsucc;\": \"\\u22DF\",\n\t\"curlyvee;\": \"\\u22CE\",\n\t\"curlywedge;\": \"\\u22CF\",\n\t\"curren;\": \"\\u00A4\",\n\t\"curren\": \"\\u00A4\",\n\t\"curvearrowleft;\": \"\\u21B6\",\n\t\"curvearrowright;\": \"\\u21B7\",\n\t\"cuvee;\": \"\\u22CE\",\n\t\"cuwed;\": \"\\u22CF\",\n\t\"cwconint;\": \"\\u2232\",\n\t\"cwint;\": \"\\u2231\",\n\t\"cylcty;\": \"\\u232D\",\n\t\"dagger;\": \"\\u2020\",\n\t\"Dagger;\": \"\\u2021\",\n\t\"daleth;\": \"\\u2138\",\n\t\"darr;\": \"\\u2193\",\n\t\"Darr;\": \"\\u21A1\",\n\t\"dArr;\": \"\\u21D3\",\n\t\"dash;\": \"\\u2010\",\n\t\"Dashv;\": \"\\u2AE4\",\n\t\"dashv;\": \"\\u22A3\",\n\t\"dbkarow;\": \"\\u290F\",\n\t\"dblac;\": \"\\u02DD\",\n\t\"Dcaron;\": \"\\u010E\",\n\t\"dcaron;\": \"\\u010F\",\n\t\"Dcy;\": \"\\u0414\",\n\t\"dcy;\": \"\\u0434\",\n\t\"ddagger;\": \"\\u2021\",\n\t\"ddarr;\": \"\\u21CA\",\n\t\"DD;\": \"\\u2145\",\n\t\"dd;\": \"\\u2146\",\n\t\"DDotrahd;\": \"\\u2911\",\n\t\"ddotseq;\": \"\\u2A77\",\n\t\"deg;\": \"\\u00B0\",\n\t\"deg\": \"\\u00B0\",\n\t\"Del;\": \"\\u2207\",\n\t\"Delta;\": \"\\u0394\",\n\t\"delta;\": \"\\u03B4\",\n\t\"demptyv;\": \"\\u29B1\",\n\t\"dfisht;\": \"\\u297F\",\n\t\"Dfr;\": \"\\uD835\\uDD07\",\n\t\"dfr;\": \"\\uD835\\uDD21\",\n\t\"dHar;\": \"\\u2965\",\n\t\"dharl;\": \"\\u21C3\",\n\t\"dharr;\": \"\\u21C2\",\n\t\"DiacriticalAcute;\": \"\\u00B4\",\n\t\"DiacriticalDot;\": \"\\u02D9\",\n\t\"DiacriticalDoubleAcute;\": \"\\u02DD\",\n\t\"DiacriticalGrave;\": \"\\u0060\",\n\t\"DiacriticalTilde;\": \"\\u02DC\",\n\t\"diam;\": \"\\u22C4\",\n\t\"diamond;\": \"\\u22C4\",\n\t\"Diamond;\": \"\\u22C4\",\n\t\"diamondsuit;\": \"\\u2666\",\n\t\"diams;\": \"\\u2666\",\n\t\"die;\": \"\\u00A8\",\n\t\"DifferentialD;\": \"\\u2146\",\n\t\"digamma;\": \"\\u03DD\",\n\t\"disin;\": \"\\u22F2\",\n\t\"div;\": \"\\u00F7\",\n\t\"divide;\": \"\\u00F7\",\n\t\"divide\": \"\\u00F7\",\n\t\"divideontimes;\": \"\\u22C7\",\n\t\"divonx;\": \"\\u22C7\",\n\t\"DJcy;\": \"\\u0402\",\n\t\"djcy;\": \"\\u0452\",\n\t\"dlcorn;\": \"\\u231E\",\n\t\"dlcrop;\": \"\\u230D\",\n\t\"dollar;\": \"\\u0024\",\n\t\"Dopf;\": \"\\uD835\\uDD3B\",\n\t\"dopf;\": \"\\uD835\\uDD55\",\n\t\"Dot;\": \"\\u00A8\",\n\t\"dot;\": \"\\u02D9\",\n\t\"DotDot;\": \"\\u20DC\",\n\t\"doteq;\": \"\\u2250\",\n\t\"doteqdot;\": \"\\u2251\",\n\t\"DotEqual;\": \"\\u2250\",\n\t\"dotminus;\": \"\\u2238\",\n\t\"dotplus;\": \"\\u2214\",\n\t\"dotsquare;\": \"\\u22A1\",\n\t\"doublebarwedge;\": \"\\u2306\",\n\t\"DoubleContourIntegral;\": \"\\u222F\",\n\t\"DoubleDot;\": \"\\u00A8\",\n\t\"DoubleDownArrow;\": \"\\u21D3\",\n\t\"DoubleLeftArrow;\": \"\\u21D0\",\n\t\"DoubleLeftRightArrow;\": \"\\u21D4\",\n\t\"DoubleLeftTee;\": \"\\u2AE4\",\n\t\"DoubleLongLeftArrow;\": \"\\u27F8\",\n\t\"DoubleLongLeftRightArrow;\": \"\\u27FA\",\n\t\"DoubleLongRightArrow;\": \"\\u27F9\",\n\t\"DoubleRightArrow;\": \"\\u21D2\",\n\t\"DoubleRightTee;\": \"\\u22A8\",\n\t\"DoubleUpArrow;\": \"\\u21D1\",\n\t\"DoubleUpDownArrow;\": \"\\u21D5\",\n\t\"DoubleVerticalBar;\": \"\\u2225\",\n\t\"DownArrowBar;\": \"\\u2913\",\n\t\"downarrow;\": \"\\u2193\",\n\t\"DownArrow;\": \"\\u2193\",\n\t\"Downarrow;\": \"\\u21D3\",\n\t\"DownArrowUpArrow;\": \"\\u21F5\",\n\t\"DownBreve;\": \"\\u0311\",\n\t\"downdownarrows;\": \"\\u21CA\",\n\t\"downharpoonleft;\": \"\\u21C3\",\n\t\"downharpoonright;\": \"\\u21C2\",\n\t\"DownLeftRightVector;\": \"\\u2950\",\n\t\"DownLeftTeeVector;\": \"\\u295E\",\n\t\"DownLeftVectorBar;\": \"\\u2956\",\n\t\"DownLeftVector;\": \"\\u21BD\",\n\t\"DownRightTeeVector;\": \"\\u295F\",\n\t\"DownRightVectorBar;\": \"\\u2957\",\n\t\"DownRightVector;\": \"\\u21C1\",\n\t\"DownTeeArrow;\": \"\\u21A7\",\n\t\"DownTee;\": \"\\u22A4\",\n\t\"drbkarow;\": \"\\u2910\",\n\t\"drcorn;\": \"\\u231F\",\n\t\"drcrop;\": \"\\u230C\",\n\t\"Dscr;\": \"\\uD835\\uDC9F\",\n\t\"dscr;\": \"\\uD835\\uDCB9\",\n\t\"DScy;\": \"\\u0405\",\n\t\"dscy;\": \"\\u0455\",\n\t\"dsol;\": \"\\u29F6\",\n\t\"Dstrok;\": \"\\u0110\",\n\t\"dstrok;\": \"\\u0111\",\n\t\"dtdot;\": \"\\u22F1\",\n\t\"dtri;\": \"\\u25BF\",\n\t\"dtrif;\": \"\\u25BE\",\n\t\"duarr;\": \"\\u21F5\",\n\t\"duhar;\": \"\\u296F\",\n\t\"dwangle;\": \"\\u29A6\",\n\t\"DZcy;\": \"\\u040F\",\n\t\"dzcy;\": \"\\u045F\",\n\t\"dzigrarr;\": \"\\u27FF\",\n\t\"Eacute;\": \"\\u00C9\",\n\t\"Eacute\": \"\\u00C9\",\n\t\"eacute;\": \"\\u00E9\",\n\t\"eacute\": \"\\u00E9\",\n\t\"easter;\": \"\\u2A6E\",\n\t\"Ecaron;\": \"\\u011A\",\n\t\"ecaron;\": \"\\u011B\",\n\t\"Ecirc;\": \"\\u00CA\",\n\t\"Ecirc\": \"\\u00CA\",\n\t\"ecirc;\": \"\\u00EA\",\n\t\"ecirc\": \"\\u00EA\",\n\t\"ecir;\": \"\\u2256\",\n\t\"ecolon;\": \"\\u2255\",\n\t\"Ecy;\": \"\\u042D\",\n\t\"ecy;\": \"\\u044D\",\n\t\"eDDot;\": \"\\u2A77\",\n\t\"Edot;\": \"\\u0116\",\n\t\"edot;\": \"\\u0117\",\n\t\"eDot;\": \"\\u2251\",\n\t\"ee;\": \"\\u2147\",\n\t\"efDot;\": \"\\u2252\",\n\t\"Efr;\": \"\\uD835\\uDD08\",\n\t\"efr;\": \"\\uD835\\uDD22\",\n\t\"eg;\": \"\\u2A9A\",\n\t\"Egrave;\": \"\\u00C8\",\n\t\"Egrave\": \"\\u00C8\",\n\t\"egrave;\": \"\\u00E8\",\n\t\"egrave\": \"\\u00E8\",\n\t\"egs;\": \"\\u2A96\",\n\t\"egsdot;\": \"\\u2A98\",\n\t\"el;\": \"\\u2A99\",\n\t\"Element;\": \"\\u2208\",\n\t\"elinters;\": \"\\u23E7\",\n\t\"ell;\": \"\\u2113\",\n\t\"els;\": \"\\u2A95\",\n\t\"elsdot;\": \"\\u2A97\",\n\t\"Emacr;\": \"\\u0112\",\n\t\"emacr;\": \"\\u0113\",\n\t\"empty;\": \"\\u2205\",\n\t\"emptyset;\": \"\\u2205\",\n\t\"EmptySmallSquare;\": \"\\u25FB\",\n\t\"emptyv;\": \"\\u2205\",\n\t\"EmptyVerySmallSquare;\": \"\\u25AB\",\n\t\"emsp13;\": \"\\u2004\",\n\t\"emsp14;\": \"\\u2005\",\n\t\"emsp;\": \"\\u2003\",\n\t\"ENG;\": \"\\u014A\",\n\t\"eng;\": \"\\u014B\",\n\t\"ensp;\": \"\\u2002\",\n\t\"Eogon;\": \"\\u0118\",\n\t\"eogon;\": \"\\u0119\",\n\t\"Eopf;\": \"\\uD835\\uDD3C\",\n\t\"eopf;\": \"\\uD835\\uDD56\",\n\t\"epar;\": \"\\u22D5\",\n\t\"eparsl;\": \"\\u29E3\",\n\t\"eplus;\": \"\\u2A71\",\n\t\"epsi;\": \"\\u03B5\",\n\t\"Epsilon;\": \"\\u0395\",\n\t\"epsilon;\": \"\\u03B5\",\n\t\"epsiv;\": \"\\u03F5\",\n\t\"eqcirc;\": \"\\u2256\",\n\t\"eqcolon;\": \"\\u2255\",\n\t\"eqsim;\": \"\\u2242\",\n\t\"eqslantgtr;\": \"\\u2A96\",\n\t\"eqslantless;\": \"\\u2A95\",\n\t\"Equal;\": \"\\u2A75\",\n\t\"equals;\": \"\\u003D\",\n\t\"EqualTilde;\": \"\\u2242\",\n\t\"equest;\": \"\\u225F\",\n\t\"Equilibrium;\": \"\\u21CC\",\n\t\"equiv;\": \"\\u2261\",\n\t\"equivDD;\": \"\\u2A78\",\n\t\"eqvparsl;\": \"\\u29E5\",\n\t\"erarr;\": \"\\u2971\",\n\t\"erDot;\": \"\\u2253\",\n\t\"escr;\": \"\\u212F\",\n\t\"Escr;\": \"\\u2130\",\n\t\"esdot;\": \"\\u2250\",\n\t\"Esim;\": \"\\u2A73\",\n\t\"esim;\": \"\\u2242\",\n\t\"Eta;\": \"\\u0397\",\n\t\"eta;\": \"\\u03B7\",\n\t\"ETH;\": \"\\u00D0\",\n\t\"ETH\": \"\\u00D0\",\n\t\"eth;\": \"\\u00F0\",\n\t\"eth\": \"\\u00F0\",\n\t\"Euml;\": \"\\u00CB\",\n\t\"Euml\": \"\\u00CB\",\n\t\"euml;\": \"\\u00EB\",\n\t\"euml\": \"\\u00EB\",\n\t\"euro;\": \"\\u20AC\",\n\t\"excl;\": \"\\u0021\",\n\t\"exist;\": \"\\u2203\",\n\t\"Exists;\": \"\\u2203\",\n\t\"expectation;\": \"\\u2130\",\n\t\"exponentiale;\": \"\\u2147\",\n\t\"ExponentialE;\": \"\\u2147\",\n\t\"fallingdotseq;\": \"\\u2252\",\n\t\"Fcy;\": \"\\u0424\",\n\t\"fcy;\": \"\\u0444\",\n\t\"female;\": \"\\u2640\",\n\t\"ffilig;\": \"\\uFB03\",\n\t\"fflig;\": \"\\uFB00\",\n\t\"ffllig;\": \"\\uFB04\",\n\t\"Ffr;\": \"\\uD835\\uDD09\",\n\t\"ffr;\": \"\\uD835\\uDD23\",\n\t\"filig;\": \"\\uFB01\",\n\t\"FilledSmallSquare;\": \"\\u25FC\",\n\t\"FilledVerySmallSquare;\": \"\\u25AA\",\n\t\"fjlig;\": \"\\u0066\\u006A\",\n\t\"flat;\": \"\\u266D\",\n\t\"fllig;\": \"\\uFB02\",\n\t\"fltns;\": \"\\u25B1\",\n\t\"fnof;\": \"\\u0192\",\n\t\"Fopf;\": \"\\uD835\\uDD3D\",\n\t\"fopf;\": \"\\uD835\\uDD57\",\n\t\"forall;\": \"\\u2200\",\n\t\"ForAll;\": \"\\u2200\",\n\t\"fork;\": \"\\u22D4\",\n\t\"forkv;\": \"\\u2AD9\",\n\t\"Fouriertrf;\": \"\\u2131\",\n\t\"fpartint;\": \"\\u2A0D\",\n\t\"frac12;\": \"\\u00BD\",\n\t\"frac12\": \"\\u00BD\",\n\t\"frac13;\": \"\\u2153\",\n\t\"frac14;\": \"\\u00BC\",\n\t\"frac14\": \"\\u00BC\",\n\t\"frac15;\": \"\\u2155\",\n\t\"frac16;\": \"\\u2159\",\n\t\"frac18;\": \"\\u215B\",\n\t\"frac23;\": \"\\u2154\",\n\t\"frac25;\": \"\\u2156\",\n\t\"frac34;\": \"\\u00BE\",\n\t\"frac34\": \"\\u00BE\",\n\t\"frac35;\": \"\\u2157\",\n\t\"frac38;\": \"\\u215C\",\n\t\"frac45;\": \"\\u2158\",\n\t\"frac56;\": \"\\u215A\",\n\t\"frac58;\": \"\\u215D\",\n\t\"frac78;\": \"\\u215E\",\n\t\"frasl;\": \"\\u2044\",\n\t\"frown;\": \"\\u2322\",\n\t\"fscr;\": \"\\uD835\\uDCBB\",\n\t\"Fscr;\": \"\\u2131\",\n\t\"gacute;\": \"\\u01F5\",\n\t\"Gamma;\": \"\\u0393\",\n\t\"gamma;\": \"\\u03B3\",\n\t\"Gammad;\": \"\\u03DC\",\n\t\"gammad;\": \"\\u03DD\",\n\t\"gap;\": \"\\u2A86\",\n\t\"Gbreve;\": \"\\u011E\",\n\t\"gbreve;\": \"\\u011F\",\n\t\"Gcedil;\": \"\\u0122\",\n\t\"Gcirc;\": \"\\u011C\",\n\t\"gcirc;\": \"\\u011D\",\n\t\"Gcy;\": \"\\u0413\",\n\t\"gcy;\": \"\\u0433\",\n\t\"Gdot;\": \"\\u0120\",\n\t\"gdot;\": \"\\u0121\",\n\t\"ge;\": \"\\u2265\",\n\t\"gE;\": \"\\u2267\",\n\t\"gEl;\": \"\\u2A8C\",\n\t\"gel;\": \"\\u22DB\",\n\t\"geq;\": \"\\u2265\",\n\t\"geqq;\": \"\\u2267\",\n\t\"geqslant;\": \"\\u2A7E\",\n\t\"gescc;\": \"\\u2AA9\",\n\t\"ges;\": \"\\u2A7E\",\n\t\"gesdot;\": \"\\u2A80\",\n\t\"gesdoto;\": \"\\u2A82\",\n\t\"gesdotol;\": \"\\u2A84\",\n\t\"gesl;\": \"\\u22DB\\uFE00\",\n\t\"gesles;\": \"\\u2A94\",\n\t\"Gfr;\": \"\\uD835\\uDD0A\",\n\t\"gfr;\": \"\\uD835\\uDD24\",\n\t\"gg;\": \"\\u226B\",\n\t\"Gg;\": \"\\u22D9\",\n\t\"ggg;\": \"\\u22D9\",\n\t\"gimel;\": \"\\u2137\",\n\t\"GJcy;\": \"\\u0403\",\n\t\"gjcy;\": \"\\u0453\",\n\t\"gla;\": \"\\u2AA5\",\n\t\"gl;\": \"\\u2277\",\n\t\"glE;\": \"\\u2A92\",\n\t\"glj;\": \"\\u2AA4\",\n\t\"gnap;\": \"\\u2A8A\",\n\t\"gnapprox;\": \"\\u2A8A\",\n\t\"gne;\": \"\\u2A88\",\n\t\"gnE;\": \"\\u2269\",\n\t\"gneq;\": \"\\u2A88\",\n\t\"gneqq;\": \"\\u2269\",\n\t\"gnsim;\": \"\\u22E7\",\n\t\"Gopf;\": \"\\uD835\\uDD3E\",\n\t\"gopf;\": \"\\uD835\\uDD58\",\n\t\"grave;\": \"\\u0060\",\n\t\"GreaterEqual;\": \"\\u2265\",\n\t\"GreaterEqualLess;\": \"\\u22DB\",\n\t\"GreaterFullEqual;\": \"\\u2267\",\n\t\"GreaterGreater;\": \"\\u2AA2\",\n\t\"GreaterLess;\": \"\\u2277\",\n\t\"GreaterSlantEqual;\": \"\\u2A7E\",\n\t\"GreaterTilde;\": \"\\u2273\",\n\t\"Gscr;\": \"\\uD835\\uDCA2\",\n\t\"gscr;\": \"\\u210A\",\n\t\"gsim;\": \"\\u2273\",\n\t\"gsime;\": \"\\u2A8E\",\n\t\"gsiml;\": \"\\u2A90\",\n\t\"gtcc;\": \"\\u2AA7\",\n\t\"gtcir;\": \"\\u2A7A\",\n\t\"gt;\": \"\\u003E\",\n\t\"gt\": \"\\u003E\",\n\t\"GT;\": \"\\u003E\",\n\t\"GT\": \"\\u003E\",\n\t\"Gt;\": \"\\u226B\",\n\t\"gtdot;\": \"\\u22D7\",\n\t\"gtlPar;\": \"\\u2995\",\n\t\"gtquest;\": \"\\u2A7C\",\n\t\"gtrapprox;\": \"\\u2A86\",\n\t\"gtrarr;\": \"\\u2978\",\n\t\"gtrdot;\": \"\\u22D7\",\n\t\"gtreqless;\": \"\\u22DB\",\n\t\"gtreqqless;\": \"\\u2A8C\",\n\t\"gtrless;\": \"\\u2277\",\n\t\"gtrsim;\": \"\\u2273\",\n\t\"gvertneqq;\": \"\\u2269\\uFE00\",\n\t\"gvnE;\": \"\\u2269\\uFE00\",\n\t\"Hacek;\": \"\\u02C7\",\n\t\"hairsp;\": \"\\u200A\",\n\t\"half;\": \"\\u00BD\",\n\t\"hamilt;\": \"\\u210B\",\n\t\"HARDcy;\": \"\\u042A\",\n\t\"hardcy;\": \"\\u044A\",\n\t\"harrcir;\": \"\\u2948\",\n\t\"harr;\": \"\\u2194\",\n\t\"hArr;\": \"\\u21D4\",\n\t\"harrw;\": \"\\u21AD\",\n\t\"Hat;\": \"\\u005E\",\n\t\"hbar;\": \"\\u210F\",\n\t\"Hcirc;\": \"\\u0124\",\n\t\"hcirc;\": \"\\u0125\",\n\t\"hearts;\": \"\\u2665\",\n\t\"heartsuit;\": \"\\u2665\",\n\t\"hellip;\": \"\\u2026\",\n\t\"hercon;\": \"\\u22B9\",\n\t\"hfr;\": \"\\uD835\\uDD25\",\n\t\"Hfr;\": \"\\u210C\",\n\t\"HilbertSpace;\": \"\\u210B\",\n\t\"hksearow;\": \"\\u2925\",\n\t\"hkswarow;\": \"\\u2926\",\n\t\"hoarr;\": \"\\u21FF\",\n\t\"homtht;\": \"\\u223B\",\n\t\"hookleftarrow;\": \"\\u21A9\",\n\t\"hookrightarrow;\": \"\\u21AA\",\n\t\"hopf;\": \"\\uD835\\uDD59\",\n\t\"Hopf;\": \"\\u210D\",\n\t\"horbar;\": \"\\u2015\",\n\t\"HorizontalLine;\": \"\\u2500\",\n\t\"hscr;\": \"\\uD835\\uDCBD\",\n\t\"Hscr;\": \"\\u210B\",\n\t\"hslash;\": \"\\u210F\",\n\t\"Hstrok;\": \"\\u0126\",\n\t\"hstrok;\": \"\\u0127\",\n\t\"HumpDownHump;\": \"\\u224E\",\n\t\"HumpEqual;\": \"\\u224F\",\n\t\"hybull;\": \"\\u2043\",\n\t\"hyphen;\": \"\\u2010\",\n\t\"Iacute;\": \"\\u00CD\",\n\t\"Iacute\": \"\\u00CD\",\n\t\"iacute;\": \"\\u00ED\",\n\t\"iacute\": \"\\u00ED\",\n\t\"ic;\": \"\\u2063\",\n\t\"Icirc;\": \"\\u00CE\",\n\t\"Icirc\": \"\\u00CE\",\n\t\"icirc;\": \"\\u00EE\",\n\t\"icirc\": \"\\u00EE\",\n\t\"Icy;\": \"\\u0418\",\n\t\"icy;\": \"\\u0438\",\n\t\"Idot;\": \"\\u0130\",\n\t\"IEcy;\": \"\\u0415\",\n\t\"iecy;\": \"\\u0435\",\n\t\"iexcl;\": \"\\u00A1\",\n\t\"iexcl\": \"\\u00A1\",\n\t\"iff;\": \"\\u21D4\",\n\t\"ifr;\": \"\\uD835\\uDD26\",\n\t\"Ifr;\": \"\\u2111\",\n\t\"Igrave;\": \"\\u00CC\",\n\t\"Igrave\": \"\\u00CC\",\n\t\"igrave;\": \"\\u00EC\",\n\t\"igrave\": \"\\u00EC\",\n\t\"ii;\": \"\\u2148\",\n\t\"iiiint;\": \"\\u2A0C\",\n\t\"iiint;\": \"\\u222D\",\n\t\"iinfin;\": \"\\u29DC\",\n\t\"iiota;\": \"\\u2129\",\n\t\"IJlig;\": \"\\u0132\",\n\t\"ijlig;\": \"\\u0133\",\n\t\"Imacr;\": \"\\u012A\",\n\t\"imacr;\": \"\\u012B\",\n\t\"image;\": \"\\u2111\",\n\t\"ImaginaryI;\": \"\\u2148\",\n\t\"imagline;\": \"\\u2110\",\n\t\"imagpart;\": \"\\u2111\",\n\t\"imath;\": \"\\u0131\",\n\t\"Im;\": \"\\u2111\",\n\t\"imof;\": \"\\u22B7\",\n\t\"imped;\": \"\\u01B5\",\n\t\"Implies;\": \"\\u21D2\",\n\t\"incare;\": \"\\u2105\",\n\t\"in;\": \"\\u2208\",\n\t\"infin;\": \"\\u221E\",\n\t\"infintie;\": \"\\u29DD\",\n\t\"inodot;\": \"\\u0131\",\n\t\"intcal;\": \"\\u22BA\",\n\t\"int;\": \"\\u222B\",\n\t\"Int;\": \"\\u222C\",\n\t\"integers;\": \"\\u2124\",\n\t\"Integral;\": \"\\u222B\",\n\t\"intercal;\": \"\\u22BA\",\n\t\"Intersection;\": \"\\u22C2\",\n\t\"intlarhk;\": \"\\u2A17\",\n\t\"intprod;\": \"\\u2A3C\",\n\t\"InvisibleComma;\": \"\\u2063\",\n\t\"InvisibleTimes;\": \"\\u2062\",\n\t\"IOcy;\": \"\\u0401\",\n\t\"iocy;\": \"\\u0451\",\n\t\"Iogon;\": \"\\u012E\",\n\t\"iogon;\": \"\\u012F\",\n\t\"Iopf;\": \"\\uD835\\uDD40\",\n\t\"iopf;\": \"\\uD835\\uDD5A\",\n\t\"Iota;\": \"\\u0399\",\n\t\"iota;\": \"\\u03B9\",\n\t\"iprod;\": \"\\u2A3C\",\n\t\"iquest;\": \"\\u00BF\",\n\t\"iquest\": \"\\u00BF\",\n\t\"iscr;\": \"\\uD835\\uDCBE\",\n\t\"Iscr;\": \"\\u2110\",\n\t\"isin;\": \"\\u2208\",\n\t\"isindot;\": \"\\u22F5\",\n\t\"isinE;\": \"\\u22F9\",\n\t\"isins;\": \"\\u22F4\",\n\t\"isinsv;\": \"\\u22F3\",\n\t\"isinv;\": \"\\u2208\",\n\t\"it;\": \"\\u2062\",\n\t\"Itilde;\": \"\\u0128\",\n\t\"itilde;\": \"\\u0129\",\n\t\"Iukcy;\": \"\\u0406\",\n\t\"iukcy;\": \"\\u0456\",\n\t\"Iuml;\": \"\\u00CF\",\n\t\"Iuml\": \"\\u00CF\",\n\t\"iuml;\": \"\\u00EF\",\n\t\"iuml\": \"\\u00EF\",\n\t\"Jcirc;\": \"\\u0134\",\n\t\"jcirc;\": \"\\u0135\",\n\t\"Jcy;\": \"\\u0419\",\n\t\"jcy;\": \"\\u0439\",\n\t\"Jfr;\": \"\\uD835\\uDD0D\",\n\t\"jfr;\": \"\\uD835\\uDD27\",\n\t\"jmath;\": \"\\u0237\",\n\t\"Jopf;\": \"\\uD835\\uDD41\",\n\t\"jopf;\": \"\\uD835\\uDD5B\",\n\t\"Jscr;\": \"\\uD835\\uDCA5\",\n\t\"jscr;\": \"\\uD835\\uDCBF\",\n\t\"Jsercy;\": \"\\u0408\",\n\t\"jsercy;\": \"\\u0458\",\n\t\"Jukcy;\": \"\\u0404\",\n\t\"jukcy;\": \"\\u0454\",\n\t\"Kappa;\": \"\\u039A\",\n\t\"kappa;\": \"\\u03BA\",\n\t\"kappav;\": \"\\u03F0\",\n\t\"Kcedil;\": \"\\u0136\",\n\t\"kcedil;\": \"\\u0137\",\n\t\"Kcy;\": \"\\u041A\",\n\t\"kcy;\": \"\\u043A\",\n\t\"Kfr;\": \"\\uD835\\uDD0E\",\n\t\"kfr;\": \"\\uD835\\uDD28\",\n\t\"kgreen;\": \"\\u0138\",\n\t\"KHcy;\": \"\\u0425\",\n\t\"khcy;\": \"\\u0445\",\n\t\"KJcy;\": \"\\u040C\",\n\t\"kjcy;\": \"\\u045C\",\n\t\"Kopf;\": \"\\uD835\\uDD42\",\n\t\"kopf;\": \"\\uD835\\uDD5C\",\n\t\"Kscr;\": \"\\uD835\\uDCA6\",\n\t\"kscr;\": \"\\uD835\\uDCC0\",\n\t\"lAarr;\": \"\\u21DA\",\n\t\"Lacute;\": \"\\u0139\",\n\t\"lacute;\": \"\\u013A\",\n\t\"laemptyv;\": \"\\u29B4\",\n\t\"lagran;\": \"\\u2112\",\n\t\"Lambda;\": \"\\u039B\",\n\t\"lambda;\": \"\\u03BB\",\n\t\"lang;\": \"\\u27E8\",\n\t\"Lang;\": \"\\u27EA\",\n\t\"langd;\": \"\\u2991\",\n\t\"langle;\": \"\\u27E8\",\n\t\"lap;\": \"\\u2A85\",\n\t\"Laplacetrf;\": \"\\u2112\",\n\t\"laquo;\": \"\\u00AB\",\n\t\"laquo\": \"\\u00AB\",\n\t\"larrb;\": \"\\u21E4\",\n\t\"larrbfs;\": \"\\u291F\",\n\t\"larr;\": \"\\u2190\",\n\t\"Larr;\": \"\\u219E\",\n\t\"lArr;\": \"\\u21D0\",\n\t\"larrfs;\": \"\\u291D\",\n\t\"larrhk;\": \"\\u21A9\",\n\t\"larrlp;\": \"\\u21AB\",\n\t\"larrpl;\": \"\\u2939\",\n\t\"larrsim;\": \"\\u2973\",\n\t\"larrtl;\": \"\\u21A2\",\n\t\"latail;\": \"\\u2919\",\n\t\"lAtail;\": \"\\u291B\",\n\t\"lat;\": \"\\u2AAB\",\n\t\"late;\": \"\\u2AAD\",\n\t\"lates;\": \"\\u2AAD\\uFE00\",\n\t\"lbarr;\": \"\\u290C\",\n\t\"lBarr;\": \"\\u290E\",\n\t\"lbbrk;\": \"\\u2772\",\n\t\"lbrace;\": \"\\u007B\",\n\t\"lbrack;\": \"\\u005B\",\n\t\"lbrke;\": \"\\u298B\",\n\t\"lbrksld;\": \"\\u298F\",\n\t\"lbrkslu;\": \"\\u298D\",\n\t\"Lcaron;\": \"\\u013D\",\n\t\"lcaron;\": \"\\u013E\",\n\t\"Lcedil;\": \"\\u013B\",\n\t\"lcedil;\": \"\\u013C\",\n\t\"lceil;\": \"\\u2308\",\n\t\"lcub;\": \"\\u007B\",\n\t\"Lcy;\": \"\\u041B\",\n\t\"lcy;\": \"\\u043B\",\n\t\"ldca;\": \"\\u2936\",\n\t\"ldquo;\": \"\\u201C\",\n\t\"ldquor;\": \"\\u201E\",\n\t\"ldrdhar;\": \"\\u2967\",\n\t\"ldrushar;\": \"\\u294B\",\n\t\"ldsh;\": \"\\u21B2\",\n\t\"le;\": \"\\u2264\",\n\t\"lE;\": \"\\u2266\",\n\t\"LeftAngleBracket;\": \"\\u27E8\",\n\t\"LeftArrowBar;\": \"\\u21E4\",\n\t\"leftarrow;\": \"\\u2190\",\n\t\"LeftArrow;\": \"\\u2190\",\n\t\"Leftarrow;\": \"\\u21D0\",\n\t\"LeftArrowRightArrow;\": \"\\u21C6\",\n\t\"leftarrowtail;\": \"\\u21A2\",\n\t\"LeftCeiling;\": \"\\u2308\",\n\t\"LeftDoubleBracket;\": \"\\u27E6\",\n\t\"LeftDownTeeVector;\": \"\\u2961\",\n\t\"LeftDownVectorBar;\": \"\\u2959\",\n\t\"LeftDownVector;\": \"\\u21C3\",\n\t\"LeftFloor;\": \"\\u230A\",\n\t\"leftharpoondown;\": \"\\u21BD\",\n\t\"leftharpoonup;\": \"\\u21BC\",\n\t\"leftleftarrows;\": \"\\u21C7\",\n\t\"leftrightarrow;\": \"\\u2194\",\n\t\"LeftRightArrow;\": \"\\u2194\",\n\t\"Leftrightarrow;\": \"\\u21D4\",\n\t\"leftrightarrows;\": \"\\u21C6\",\n\t\"leftrightharpoons;\": \"\\u21CB\",\n\t\"leftrightsquigarrow;\": \"\\u21AD\",\n\t\"LeftRightVector;\": \"\\u294E\",\n\t\"LeftTeeArrow;\": \"\\u21A4\",\n\t\"LeftTee;\": \"\\u22A3\",\n\t\"LeftTeeVector;\": \"\\u295A\",\n\t\"leftthreetimes;\": \"\\u22CB\",\n\t\"LeftTriangleBar;\": \"\\u29CF\",\n\t\"LeftTriangle;\": \"\\u22B2\",\n\t\"LeftTriangleEqual;\": \"\\u22B4\",\n\t\"LeftUpDownVector;\": \"\\u2951\",\n\t\"LeftUpTeeVector;\": \"\\u2960\",\n\t\"LeftUpVectorBar;\": \"\\u2958\",\n\t\"LeftUpVector;\": \"\\u21BF\",\n\t\"LeftVectorBar;\": \"\\u2952\",\n\t\"LeftVector;\": \"\\u21BC\",\n\t\"lEg;\": \"\\u2A8B\",\n\t\"leg;\": \"\\u22DA\",\n\t\"leq;\": \"\\u2264\",\n\t\"leqq;\": \"\\u2266\",\n\t\"leqslant;\": \"\\u2A7D\",\n\t\"lescc;\": \"\\u2AA8\",\n\t\"les;\": \"\\u2A7D\",\n\t\"lesdot;\": \"\\u2A7F\",\n\t\"lesdoto;\": \"\\u2A81\",\n\t\"lesdotor;\": \"\\u2A83\",\n\t\"lesg;\": \"\\u22DA\\uFE00\",\n\t\"lesges;\": \"\\u2A93\",\n\t\"lessapprox;\": \"\\u2A85\",\n\t\"lessdot;\": \"\\u22D6\",\n\t\"lesseqgtr;\": \"\\u22DA\",\n\t\"lesseqqgtr;\": \"\\u2A8B\",\n\t\"LessEqualGreater;\": \"\\u22DA\",\n\t\"LessFullEqual;\": \"\\u2266\",\n\t\"LessGreater;\": \"\\u2276\",\n\t\"lessgtr;\": \"\\u2276\",\n\t\"LessLess;\": \"\\u2AA1\",\n\t\"lesssim;\": \"\\u2272\",\n\t\"LessSlantEqual;\": \"\\u2A7D\",\n\t\"LessTilde;\": \"\\u2272\",\n\t\"lfisht;\": \"\\u297C\",\n\t\"lfloor;\": \"\\u230A\",\n\t\"Lfr;\": \"\\uD835\\uDD0F\",\n\t\"lfr;\": \"\\uD835\\uDD29\",\n\t\"lg;\": \"\\u2276\",\n\t\"lgE;\": \"\\u2A91\",\n\t\"lHar;\": \"\\u2962\",\n\t\"lhard;\": \"\\u21BD\",\n\t\"lharu;\": \"\\u21BC\",\n\t\"lharul;\": \"\\u296A\",\n\t\"lhblk;\": \"\\u2584\",\n\t\"LJcy;\": \"\\u0409\",\n\t\"ljcy;\": \"\\u0459\",\n\t\"llarr;\": \"\\u21C7\",\n\t\"ll;\": \"\\u226A\",\n\t\"Ll;\": \"\\u22D8\",\n\t\"llcorner;\": \"\\u231E\",\n\t\"Lleftarrow;\": \"\\u21DA\",\n\t\"llhard;\": \"\\u296B\",\n\t\"lltri;\": \"\\u25FA\",\n\t\"Lmidot;\": \"\\u013F\",\n\t\"lmidot;\": \"\\u0140\",\n\t\"lmoustache;\": \"\\u23B0\",\n\t\"lmoust;\": \"\\u23B0\",\n\t\"lnap;\": \"\\u2A89\",\n\t\"lnapprox;\": \"\\u2A89\",\n\t\"lne;\": \"\\u2A87\",\n\t\"lnE;\": \"\\u2268\",\n\t\"lneq;\": \"\\u2A87\",\n\t\"lneqq;\": \"\\u2268\",\n\t\"lnsim;\": \"\\u22E6\",\n\t\"loang;\": \"\\u27EC\",\n\t\"loarr;\": \"\\u21FD\",\n\t\"lobrk;\": \"\\u27E6\",\n\t\"longleftarrow;\": \"\\u27F5\",\n\t\"LongLeftArrow;\": \"\\u27F5\",\n\t\"Longleftarrow;\": \"\\u27F8\",\n\t\"longleftrightarrow;\": \"\\u27F7\",\n\t\"LongLeftRightArrow;\": \"\\u27F7\",\n\t\"Longleftrightarrow;\": \"\\u27FA\",\n\t\"longmapsto;\": \"\\u27FC\",\n\t\"longrightarrow;\": \"\\u27F6\",\n\t\"LongRightArrow;\": \"\\u27F6\",\n\t\"Longrightarrow;\": \"\\u27F9\",\n\t\"looparrowleft;\": \"\\u21AB\",\n\t\"looparrowright;\": \"\\u21AC\",\n\t\"lopar;\": \"\\u2985\",\n\t\"Lopf;\": \"\\uD835\\uDD43\",\n\t\"lopf;\": \"\\uD835\\uDD5D\",\n\t\"loplus;\": \"\\u2A2D\",\n\t\"lotimes;\": \"\\u2A34\",\n\t\"lowast;\": \"\\u2217\",\n\t\"lowbar;\": \"\\u005F\",\n\t\"LowerLeftArrow;\": \"\\u2199\",\n\t\"LowerRightArrow;\": \"\\u2198\",\n\t\"loz;\": \"\\u25CA\",\n\t\"lozenge;\": \"\\u25CA\",\n\t\"lozf;\": \"\\u29EB\",\n\t\"lpar;\": \"\\u0028\",\n\t\"lparlt;\": \"\\u2993\",\n\t\"lrarr;\": \"\\u21C6\",\n\t\"lrcorner;\": \"\\u231F\",\n\t\"lrhar;\": \"\\u21CB\",\n\t\"lrhard;\": \"\\u296D\",\n\t\"lrm;\": \"\\u200E\",\n\t\"lrtri;\": \"\\u22BF\",\n\t\"lsaquo;\": \"\\u2039\",\n\t\"lscr;\": \"\\uD835\\uDCC1\",\n\t\"Lscr;\": \"\\u2112\",\n\t\"lsh;\": \"\\u21B0\",\n\t\"Lsh;\": \"\\u21B0\",\n\t\"lsim;\": \"\\u2272\",\n\t\"lsime;\": \"\\u2A8D\",\n\t\"lsimg;\": \"\\u2A8F\",\n\t\"lsqb;\": \"\\u005B\",\n\t\"lsquo;\": \"\\u2018\",\n\t\"lsquor;\": \"\\u201A\",\n\t\"Lstrok;\": \"\\u0141\",\n\t\"lstrok;\": \"\\u0142\",\n\t\"ltcc;\": \"\\u2AA6\",\n\t\"ltcir;\": \"\\u2A79\",\n\t\"lt;\": \"\\u003C\",\n\t\"lt\": \"\\u003C\",\n\t\"LT;\": \"\\u003C\",\n\t\"LT\": \"\\u003C\",\n\t\"Lt;\": \"\\u226A\",\n\t\"ltdot;\": \"\\u22D6\",\n\t\"lthree;\": \"\\u22CB\",\n\t\"ltimes;\": \"\\u22C9\",\n\t\"ltlarr;\": \"\\u2976\",\n\t\"ltquest;\": \"\\u2A7B\",\n\t\"ltri;\": \"\\u25C3\",\n\t\"ltrie;\": \"\\u22B4\",\n\t\"ltrif;\": \"\\u25C2\",\n\t\"ltrPar;\": \"\\u2996\",\n\t\"lurdshar;\": \"\\u294A\",\n\t\"luruhar;\": \"\\u2966\",\n\t\"lvertneqq;\": \"\\u2268\\uFE00\",\n\t\"lvnE;\": \"\\u2268\\uFE00\",\n\t\"macr;\": \"\\u00AF\",\n\t\"macr\": \"\\u00AF\",\n\t\"male;\": \"\\u2642\",\n\t\"malt;\": \"\\u2720\",\n\t\"maltese;\": \"\\u2720\",\n\t\"Map;\": \"\\u2905\",\n\t\"map;\": \"\\u21A6\",\n\t\"mapsto;\": \"\\u21A6\",\n\t\"mapstodown;\": \"\\u21A7\",\n\t\"mapstoleft;\": \"\\u21A4\",\n\t\"mapstoup;\": \"\\u21A5\",\n\t\"marker;\": \"\\u25AE\",\n\t\"mcomma;\": \"\\u2A29\",\n\t\"Mcy;\": \"\\u041C\",\n\t\"mcy;\": \"\\u043C\",\n\t\"mdash;\": \"\\u2014\",\n\t\"mDDot;\": \"\\u223A\",\n\t\"measuredangle;\": \"\\u2221\",\n\t\"MediumSpace;\": \"\\u205F\",\n\t\"Mellintrf;\": \"\\u2133\",\n\t\"Mfr;\": \"\\uD835\\uDD10\",\n\t\"mfr;\": \"\\uD835\\uDD2A\",\n\t\"mho;\": \"\\u2127\",\n\t\"micro;\": \"\\u00B5\",\n\t\"micro\": \"\\u00B5\",\n\t\"midast;\": \"\\u002A\",\n\t\"midcir;\": \"\\u2AF0\",\n\t\"mid;\": \"\\u2223\",\n\t\"middot;\": \"\\u00B7\",\n\t\"middot\": \"\\u00B7\",\n\t\"minusb;\": \"\\u229F\",\n\t\"minus;\": \"\\u2212\",\n\t\"minusd;\": \"\\u2238\",\n\t\"minusdu;\": \"\\u2A2A\",\n\t\"MinusPlus;\": \"\\u2213\",\n\t\"mlcp;\": \"\\u2ADB\",\n\t\"mldr;\": \"\\u2026\",\n\t\"mnplus;\": \"\\u2213\",\n\t\"models;\": \"\\u22A7\",\n\t\"Mopf;\": \"\\uD835\\uDD44\",\n\t\"mopf;\": \"\\uD835\\uDD5E\",\n\t\"mp;\": \"\\u2213\",\n\t\"mscr;\": \"\\uD835\\uDCC2\",\n\t\"Mscr;\": \"\\u2133\",\n\t\"mstpos;\": \"\\u223E\",\n\t\"Mu;\": \"\\u039C\",\n\t\"mu;\": \"\\u03BC\",\n\t\"multimap;\": \"\\u22B8\",\n\t\"mumap;\": \"\\u22B8\",\n\t\"nabla;\": \"\\u2207\",\n\t\"Nacute;\": \"\\u0143\",\n\t\"nacute;\": \"\\u0144\",\n\t\"nang;\": \"\\u2220\\u20D2\",\n\t\"nap;\": \"\\u2249\",\n\t\"napE;\": \"\\u2A70\\u0338\",\n\t\"napid;\": \"\\u224B\\u0338\",\n\t\"napos;\": \"\\u0149\",\n\t\"napprox;\": \"\\u2249\",\n\t\"natural;\": \"\\u266E\",\n\t\"naturals;\": \"\\u2115\",\n\t\"natur;\": \"\\u266E\",\n\t\"nbsp;\": \"\\u00A0\",\n\t\"nbsp\": \"\\u00A0\",\n\t\"nbump;\": \"\\u224E\\u0338\",\n\t\"nbumpe;\": \"\\u224F\\u0338\",\n\t\"ncap;\": \"\\u2A43\",\n\t\"Ncaron;\": \"\\u0147\",\n\t\"ncaron;\": \"\\u0148\",\n\t\"Ncedil;\": \"\\u0145\",\n\t\"ncedil;\": \"\\u0146\",\n\t\"ncong;\": \"\\u2247\",\n\t\"ncongdot;\": \"\\u2A6D\\u0338\",\n\t\"ncup;\": \"\\u2A42\",\n\t\"Ncy;\": \"\\u041D\",\n\t\"ncy;\": \"\\u043D\",\n\t\"ndash;\": \"\\u2013\",\n\t\"nearhk;\": \"\\u2924\",\n\t\"nearr;\": \"\\u2197\",\n\t\"neArr;\": \"\\u21D7\",\n\t\"nearrow;\": \"\\u2197\",\n\t\"ne;\": \"\\u2260\",\n\t\"nedot;\": \"\\u2250\\u0338\",\n\t\"NegativeMediumSpace;\": \"\\u200B\",\n\t\"NegativeThickSpace;\": \"\\u200B\",\n\t\"NegativeThinSpace;\": \"\\u200B\",\n\t\"NegativeVeryThinSpace;\": \"\\u200B\",\n\t\"nequiv;\": \"\\u2262\",\n\t\"nesear;\": \"\\u2928\",\n\t\"nesim;\": \"\\u2242\\u0338\",\n\t\"NestedGreaterGreater;\": \"\\u226B\",\n\t\"NestedLessLess;\": \"\\u226A\",\n\t\"NewLine;\": \"\\u000A\",\n\t\"nexist;\": \"\\u2204\",\n\t\"nexists;\": \"\\u2204\",\n\t\"Nfr;\": \"\\uD835\\uDD11\",\n\t\"nfr;\": \"\\uD835\\uDD2B\",\n\t\"ngE;\": \"\\u2267\\u0338\",\n\t\"nge;\": \"\\u2271\",\n\t\"ngeq;\": \"\\u2271\",\n\t\"ngeqq;\": \"\\u2267\\u0338\",\n\t\"ngeqslant;\": \"\\u2A7E\\u0338\",\n\t\"nges;\": \"\\u2A7E\\u0338\",\n\t\"nGg;\": \"\\u22D9\\u0338\",\n\t\"ngsim;\": \"\\u2275\",\n\t\"nGt;\": \"\\u226B\\u20D2\",\n\t\"ngt;\": \"\\u226F\",\n\t\"ngtr;\": \"\\u226F\",\n\t\"nGtv;\": \"\\u226B\\u0338\",\n\t\"nharr;\": \"\\u21AE\",\n\t\"nhArr;\": \"\\u21CE\",\n\t\"nhpar;\": \"\\u2AF2\",\n\t\"ni;\": \"\\u220B\",\n\t\"nis;\": \"\\u22FC\",\n\t\"nisd;\": \"\\u22FA\",\n\t\"niv;\": \"\\u220B\",\n\t\"NJcy;\": \"\\u040A\",\n\t\"njcy;\": \"\\u045A\",\n\t\"nlarr;\": \"\\u219A\",\n\t\"nlArr;\": \"\\u21CD\",\n\t\"nldr;\": \"\\u2025\",\n\t\"nlE;\": \"\\u2266\\u0338\",\n\t\"nle;\": \"\\u2270\",\n\t\"nleftarrow;\": \"\\u219A\",\n\t\"nLeftarrow;\": \"\\u21CD\",\n\t\"nleftrightarrow;\": \"\\u21AE\",\n\t\"nLeftrightarrow;\": \"\\u21CE\",\n\t\"nleq;\": \"\\u2270\",\n\t\"nleqq;\": \"\\u2266\\u0338\",\n\t\"nleqslant;\": \"\\u2A7D\\u0338\",\n\t\"nles;\": \"\\u2A7D\\u0338\",\n\t\"nless;\": \"\\u226E\",\n\t\"nLl;\": \"\\u22D8\\u0338\",\n\t\"nlsim;\": \"\\u2274\",\n\t\"nLt;\": \"\\u226A\\u20D2\",\n\t\"nlt;\": \"\\u226E\",\n\t\"nltri;\": \"\\u22EA\",\n\t\"nltrie;\": \"\\u22EC\",\n\t\"nLtv;\": \"\\u226A\\u0338\",\n\t\"nmid;\": \"\\u2224\",\n\t\"NoBreak;\": \"\\u2060\",\n\t\"NonBreakingSpace;\": \"\\u00A0\",\n\t\"nopf;\": \"\\uD835\\uDD5F\",\n\t\"Nopf;\": \"\\u2115\",\n\t\"Not;\": \"\\u2AEC\",\n\t\"not;\": \"\\u00AC\",\n\t\"not\": \"\\u00AC\",\n\t\"NotCongruent;\": \"\\u2262\",\n\t\"NotCupCap;\": \"\\u226D\",\n\t\"NotDoubleVerticalBar;\": \"\\u2226\",\n\t\"NotElement;\": \"\\u2209\",\n\t\"NotEqual;\": \"\\u2260\",\n\t\"NotEqualTilde;\": \"\\u2242\\u0338\",\n\t\"NotExists;\": \"\\u2204\",\n\t\"NotGreater;\": \"\\u226F\",\n\t\"NotGreaterEqual;\": \"\\u2271\",\n\t\"NotGreaterFullEqual;\": \"\\u2267\\u0338\",\n\t\"NotGreaterGreater;\": \"\\u226B\\u0338\",\n\t\"NotGreaterLess;\": \"\\u2279\",\n\t\"NotGreaterSlantEqual;\": \"\\u2A7E\\u0338\",\n\t\"NotGreaterTilde;\": \"\\u2275\",\n\t\"NotHumpDownHump;\": \"\\u224E\\u0338\",\n\t\"NotHumpEqual;\": \"\\u224F\\u0338\",\n\t\"notin;\": \"\\u2209\",\n\t\"notindot;\": \"\\u22F5\\u0338\",\n\t\"notinE;\": \"\\u22F9\\u0338\",\n\t\"notinva;\": \"\\u2209\",\n\t\"notinvb;\": \"\\u22F7\",\n\t\"notinvc;\": \"\\u22F6\",\n\t\"NotLeftTriangleBar;\": \"\\u29CF\\u0338\",\n\t\"NotLeftTriangle;\": \"\\u22EA\",\n\t\"NotLeftTriangleEqual;\": \"\\u22EC\",\n\t\"NotLess;\": \"\\u226E\",\n\t\"NotLessEqual;\": \"\\u2270\",\n\t\"NotLessGreater;\": \"\\u2278\",\n\t\"NotLessLess;\": \"\\u226A\\u0338\",\n\t\"NotLessSlantEqual;\": \"\\u2A7D\\u0338\",\n\t\"NotLessTilde;\": \"\\u2274\",\n\t\"NotNestedGreaterGreater;\": \"\\u2AA2\\u0338\",\n\t\"NotNestedLessLess;\": \"\\u2AA1\\u0338\",\n\t\"notni;\": \"\\u220C\",\n\t\"notniva;\": \"\\u220C\",\n\t\"notnivb;\": \"\\u22FE\",\n\t\"notnivc;\": \"\\u22FD\",\n\t\"NotPrecedes;\": \"\\u2280\",\n\t\"NotPrecedesEqual;\": \"\\u2AAF\\u0338\",\n\t\"NotPrecedesSlantEqual;\": \"\\u22E0\",\n\t\"NotReverseElement;\": \"\\u220C\",\n\t\"NotRightTriangleBar;\": \"\\u29D0\\u0338\",\n\t\"NotRightTriangle;\": \"\\u22EB\",\n\t\"NotRightTriangleEqual;\": \"\\u22ED\",\n\t\"NotSquareSubset;\": \"\\u228F\\u0338\",\n\t\"NotSquareSubsetEqual;\": \"\\u22E2\",\n\t\"NotSquareSuperset;\": \"\\u2290\\u0338\",\n\t\"NotSquareSupersetEqual;\": \"\\u22E3\",\n\t\"NotSubset;\": \"\\u2282\\u20D2\",\n\t\"NotSubsetEqual;\": \"\\u2288\",\n\t\"NotSucceeds;\": \"\\u2281\",\n\t\"NotSucceedsEqual;\": \"\\u2AB0\\u0338\",\n\t\"NotSucceedsSlantEqual;\": \"\\u22E1\",\n\t\"NotSucceedsTilde;\": \"\\u227F\\u0338\",\n\t\"NotSuperset;\": \"\\u2283\\u20D2\",\n\t\"NotSupersetEqual;\": \"\\u2289\",\n\t\"NotTilde;\": \"\\u2241\",\n\t\"NotTildeEqual;\": \"\\u2244\",\n\t\"NotTildeFullEqual;\": \"\\u2247\",\n\t\"NotTildeTilde;\": \"\\u2249\",\n\t\"NotVerticalBar;\": \"\\u2224\",\n\t\"nparallel;\": \"\\u2226\",\n\t\"npar;\": \"\\u2226\",\n\t\"nparsl;\": \"\\u2AFD\\u20E5\",\n\t\"npart;\": \"\\u2202\\u0338\",\n\t\"npolint;\": \"\\u2A14\",\n\t\"npr;\": \"\\u2280\",\n\t\"nprcue;\": \"\\u22E0\",\n\t\"nprec;\": \"\\u2280\",\n\t\"npreceq;\": \"\\u2AAF\\u0338\",\n\t\"npre;\": \"\\u2AAF\\u0338\",\n\t\"nrarrc;\": \"\\u2933\\u0338\",\n\t\"nrarr;\": \"\\u219B\",\n\t\"nrArr;\": \"\\u21CF\",\n\t\"nrarrw;\": \"\\u219D\\u0338\",\n\t\"nrightarrow;\": \"\\u219B\",\n\t\"nRightarrow;\": \"\\u21CF\",\n\t\"nrtri;\": \"\\u22EB\",\n\t\"nrtrie;\": \"\\u22ED\",\n\t\"nsc;\": \"\\u2281\",\n\t\"nsccue;\": \"\\u22E1\",\n\t\"nsce;\": \"\\u2AB0\\u0338\",\n\t\"Nscr;\": \"\\uD835\\uDCA9\",\n\t\"nscr;\": \"\\uD835\\uDCC3\",\n\t\"nshortmid;\": \"\\u2224\",\n\t\"nshortparallel;\": \"\\u2226\",\n\t\"nsim;\": \"\\u2241\",\n\t\"nsime;\": \"\\u2244\",\n\t\"nsimeq;\": \"\\u2244\",\n\t\"nsmid;\": \"\\u2224\",\n\t\"nspar;\": \"\\u2226\",\n\t\"nsqsube;\": \"\\u22E2\",\n\t\"nsqsupe;\": \"\\u22E3\",\n\t\"nsub;\": \"\\u2284\",\n\t\"nsubE;\": \"\\u2AC5\\u0338\",\n\t\"nsube;\": \"\\u2288\",\n\t\"nsubset;\": \"\\u2282\\u20D2\",\n\t\"nsubseteq;\": \"\\u2288\",\n\t\"nsubseteqq;\": \"\\u2AC5\\u0338\",\n\t\"nsucc;\": \"\\u2281\",\n\t\"nsucceq;\": \"\\u2AB0\\u0338\",\n\t\"nsup;\": \"\\u2285\",\n\t\"nsupE;\": \"\\u2AC6\\u0338\",\n\t\"nsupe;\": \"\\u2289\",\n\t\"nsupset;\": \"\\u2283\\u20D2\",\n\t\"nsupseteq;\": \"\\u2289\",\n\t\"nsupseteqq;\": \"\\u2AC6\\u0338\",\n\t\"ntgl;\": \"\\u2279\",\n\t\"Ntilde;\": \"\\u00D1\",\n\t\"Ntilde\": \"\\u00D1\",\n\t\"ntilde;\": \"\\u00F1\",\n\t\"ntilde\": \"\\u00F1\",\n\t\"ntlg;\": \"\\u2278\",\n\t\"ntriangleleft;\": \"\\u22EA\",\n\t\"ntrianglelefteq;\": \"\\u22EC\",\n\t\"ntriangleright;\": \"\\u22EB\",\n\t\"ntrianglerighteq;\": \"\\u22ED\",\n\t\"Nu;\": \"\\u039D\",\n\t\"nu;\": \"\\u03BD\",\n\t\"num;\": \"\\u0023\",\n\t\"numero;\": \"\\u2116\",\n\t\"numsp;\": \"\\u2007\",\n\t\"nvap;\": \"\\u224D\\u20D2\",\n\t\"nvdash;\": \"\\u22AC\",\n\t\"nvDash;\": \"\\u22AD\",\n\t\"nVdash;\": \"\\u22AE\",\n\t\"nVDash;\": \"\\u22AF\",\n\t\"nvge;\": \"\\u2265\\u20D2\",\n\t\"nvgt;\": \"\\u003E\\u20D2\",\n\t\"nvHarr;\": \"\\u2904\",\n\t\"nvinfin;\": \"\\u29DE\",\n\t\"nvlArr;\": \"\\u2902\",\n\t\"nvle;\": \"\\u2264\\u20D2\",\n\t\"nvlt;\": \"\\u003C\\u20D2\",\n\t\"nvltrie;\": \"\\u22B4\\u20D2\",\n\t\"nvrArr;\": \"\\u2903\",\n\t\"nvrtrie;\": \"\\u22B5\\u20D2\",\n\t\"nvsim;\": \"\\u223C\\u20D2\",\n\t\"nwarhk;\": \"\\u2923\",\n\t\"nwarr;\": \"\\u2196\",\n\t\"nwArr;\": \"\\u21D6\",\n\t\"nwarrow;\": \"\\u2196\",\n\t\"nwnear;\": \"\\u2927\",\n\t\"Oacute;\": \"\\u00D3\",\n\t\"Oacute\": \"\\u00D3\",\n\t\"oacute;\": \"\\u00F3\",\n\t\"oacute\": \"\\u00F3\",\n\t\"oast;\": \"\\u229B\",\n\t\"Ocirc;\": \"\\u00D4\",\n\t\"Ocirc\": \"\\u00D4\",\n\t\"ocirc;\": \"\\u00F4\",\n\t\"ocirc\": \"\\u00F4\",\n\t\"ocir;\": \"\\u229A\",\n\t\"Ocy;\": \"\\u041E\",\n\t\"ocy;\": \"\\u043E\",\n\t\"odash;\": \"\\u229D\",\n\t\"Odblac;\": \"\\u0150\",\n\t\"odblac;\": \"\\u0151\",\n\t\"odiv;\": \"\\u2A38\",\n\t\"odot;\": \"\\u2299\",\n\t\"odsold;\": \"\\u29BC\",\n\t\"OElig;\": \"\\u0152\",\n\t\"oelig;\": \"\\u0153\",\n\t\"ofcir;\": \"\\u29BF\",\n\t\"Ofr;\": \"\\uD835\\uDD12\",\n\t\"ofr;\": \"\\uD835\\uDD2C\",\n\t\"ogon;\": \"\\u02DB\",\n\t\"Ograve;\": \"\\u00D2\",\n\t\"Ograve\": \"\\u00D2\",\n\t\"ograve;\": \"\\u00F2\",\n\t\"ograve\": \"\\u00F2\",\n\t\"ogt;\": \"\\u29C1\",\n\t\"ohbar;\": \"\\u29B5\",\n\t\"ohm;\": \"\\u03A9\",\n\t\"oint;\": \"\\u222E\",\n\t\"olarr;\": \"\\u21BA\",\n\t\"olcir;\": \"\\u29BE\",\n\t\"olcross;\": \"\\u29BB\",\n\t\"oline;\": \"\\u203E\",\n\t\"olt;\": \"\\u29C0\",\n\t\"Omacr;\": \"\\u014C\",\n\t\"omacr;\": \"\\u014D\",\n\t\"Omega;\": \"\\u03A9\",\n\t\"omega;\": \"\\u03C9\",\n\t\"Omicron;\": \"\\u039F\",\n\t\"omicron;\": \"\\u03BF\",\n\t\"omid;\": \"\\u29B6\",\n\t\"ominus;\": \"\\u2296\",\n\t\"Oopf;\": \"\\uD835\\uDD46\",\n\t\"oopf;\": \"\\uD835\\uDD60\",\n\t\"opar;\": \"\\u29B7\",\n\t\"OpenCurlyDoubleQuote;\": \"\\u201C\",\n\t\"OpenCurlyQuote;\": \"\\u2018\",\n\t\"operp;\": \"\\u29B9\",\n\t\"oplus;\": \"\\u2295\",\n\t\"orarr;\": \"\\u21BB\",\n\t\"Or;\": \"\\u2A54\",\n\t\"or;\": \"\\u2228\",\n\t\"ord;\": \"\\u2A5D\",\n\t\"order;\": \"\\u2134\",\n\t\"orderof;\": \"\\u2134\",\n\t\"ordf;\": \"\\u00AA\",\n\t\"ordf\": \"\\u00AA\",\n\t\"ordm;\": \"\\u00BA\",\n\t\"ordm\": \"\\u00BA\",\n\t\"origof;\": \"\\u22B6\",\n\t\"oror;\": \"\\u2A56\",\n\t\"orslope;\": \"\\u2A57\",\n\t\"orv;\": \"\\u2A5B\",\n\t\"oS;\": \"\\u24C8\",\n\t\"Oscr;\": \"\\uD835\\uDCAA\",\n\t\"oscr;\": \"\\u2134\",\n\t\"Oslash;\": \"\\u00D8\",\n\t\"Oslash\": \"\\u00D8\",\n\t\"oslash;\": \"\\u00F8\",\n\t\"oslash\": \"\\u00F8\",\n\t\"osol;\": \"\\u2298\",\n\t\"Otilde;\": \"\\u00D5\",\n\t\"Otilde\": \"\\u00D5\",\n\t\"otilde;\": \"\\u00F5\",\n\t\"otilde\": \"\\u00F5\",\n\t\"otimesas;\": \"\\u2A36\",\n\t\"Otimes;\": \"\\u2A37\",\n\t\"otimes;\": \"\\u2297\",\n\t\"Ouml;\": \"\\u00D6\",\n\t\"Ouml\": \"\\u00D6\",\n\t\"ouml;\": \"\\u00F6\",\n\t\"ouml\": \"\\u00F6\",\n\t\"ovbar;\": \"\\u233D\",\n\t\"OverBar;\": \"\\u203E\",\n\t\"OverBrace;\": \"\\u23DE\",\n\t\"OverBracket;\": \"\\u23B4\",\n\t\"OverParenthesis;\": \"\\u23DC\",\n\t\"para;\": \"\\u00B6\",\n\t\"para\": \"\\u00B6\",\n\t\"parallel;\": \"\\u2225\",\n\t\"par;\": \"\\u2225\",\n\t\"parsim;\": \"\\u2AF3\",\n\t\"parsl;\": \"\\u2AFD\",\n\t\"part;\": \"\\u2202\",\n\t\"PartialD;\": \"\\u2202\",\n\t\"Pcy;\": \"\\u041F\",\n\t\"pcy;\": \"\\u043F\",\n\t\"percnt;\": \"\\u0025\",\n\t\"period;\": \"\\u002E\",\n\t\"permil;\": \"\\u2030\",\n\t\"perp;\": \"\\u22A5\",\n\t\"pertenk;\": \"\\u2031\",\n\t\"Pfr;\": \"\\uD835\\uDD13\",\n\t\"pfr;\": \"\\uD835\\uDD2D\",\n\t\"Phi;\": \"\\u03A6\",\n\t\"phi;\": \"\\u03C6\",\n\t\"phiv;\": \"\\u03D5\",\n\t\"phmmat;\": \"\\u2133\",\n\t\"phone;\": \"\\u260E\",\n\t\"Pi;\": \"\\u03A0\",\n\t\"pi;\": \"\\u03C0\",\n\t\"pitchfork;\": \"\\u22D4\",\n\t\"piv;\": \"\\u03D6\",\n\t\"planck;\": \"\\u210F\",\n\t\"planckh;\": \"\\u210E\",\n\t\"plankv;\": \"\\u210F\",\n\t\"plusacir;\": \"\\u2A23\",\n\t\"plusb;\": \"\\u229E\",\n\t\"pluscir;\": \"\\u2A22\",\n\t\"plus;\": \"\\u002B\",\n\t\"plusdo;\": \"\\u2214\",\n\t\"plusdu;\": \"\\u2A25\",\n\t\"pluse;\": \"\\u2A72\",\n\t\"PlusMinus;\": \"\\u00B1\",\n\t\"plusmn;\": \"\\u00B1\",\n\t\"plusmn\": \"\\u00B1\",\n\t\"plussim;\": \"\\u2A26\",\n\t\"plustwo;\": \"\\u2A27\",\n\t\"pm;\": \"\\u00B1\",\n\t\"Poincareplane;\": \"\\u210C\",\n\t\"pointint;\": \"\\u2A15\",\n\t\"popf;\": \"\\uD835\\uDD61\",\n\t\"Popf;\": \"\\u2119\",\n\t\"pound;\": \"\\u00A3\",\n\t\"pound\": \"\\u00A3\",\n\t\"prap;\": \"\\u2AB7\",\n\t\"Pr;\": \"\\u2ABB\",\n\t\"pr;\": \"\\u227A\",\n\t\"prcue;\": \"\\u227C\",\n\t\"precapprox;\": \"\\u2AB7\",\n\t\"prec;\": \"\\u227A\",\n\t\"preccurlyeq;\": \"\\u227C\",\n\t\"Precedes;\": \"\\u227A\",\n\t\"PrecedesEqual;\": \"\\u2AAF\",\n\t\"PrecedesSlantEqual;\": \"\\u227C\",\n\t\"PrecedesTilde;\": \"\\u227E\",\n\t\"preceq;\": \"\\u2AAF\",\n\t\"precnapprox;\": \"\\u2AB9\",\n\t\"precneqq;\": \"\\u2AB5\",\n\t\"precnsim;\": \"\\u22E8\",\n\t\"pre;\": \"\\u2AAF\",\n\t\"prE;\": \"\\u2AB3\",\n\t\"precsim;\": \"\\u227E\",\n\t\"prime;\": \"\\u2032\",\n\t\"Prime;\": \"\\u2033\",\n\t\"primes;\": \"\\u2119\",\n\t\"prnap;\": \"\\u2AB9\",\n\t\"prnE;\": \"\\u2AB5\",\n\t\"prnsim;\": \"\\u22E8\",\n\t\"prod;\": \"\\u220F\",\n\t\"Product;\": \"\\u220F\",\n\t\"profalar;\": \"\\u232E\",\n\t\"profline;\": \"\\u2312\",\n\t\"profsurf;\": \"\\u2313\",\n\t\"prop;\": \"\\u221D\",\n\t\"Proportional;\": \"\\u221D\",\n\t\"Proportion;\": \"\\u2237\",\n\t\"propto;\": \"\\u221D\",\n\t\"prsim;\": \"\\u227E\",\n\t\"prurel;\": \"\\u22B0\",\n\t\"Pscr;\": \"\\uD835\\uDCAB\",\n\t\"pscr;\": \"\\uD835\\uDCC5\",\n\t\"Psi;\": \"\\u03A8\",\n\t\"psi;\": \"\\u03C8\",\n\t\"puncsp;\": \"\\u2008\",\n\t\"Qfr;\": \"\\uD835\\uDD14\",\n\t\"qfr;\": \"\\uD835\\uDD2E\",\n\t\"qint;\": \"\\u2A0C\",\n\t\"qopf;\": \"\\uD835\\uDD62\",\n\t\"Qopf;\": \"\\u211A\",\n\t\"qprime;\": \"\\u2057\",\n\t\"Qscr;\": \"\\uD835\\uDCAC\",\n\t\"qscr;\": \"\\uD835\\uDCC6\",\n\t\"quaternions;\": \"\\u210D\",\n\t\"quatint;\": \"\\u2A16\",\n\t\"quest;\": \"\\u003F\",\n\t\"questeq;\": \"\\u225F\",\n\t\"quot;\": \"\\u0022\",\n\t\"quot\": \"\\u0022\",\n\t\"QUOT;\": \"\\u0022\",\n\t\"QUOT\": \"\\u0022\",\n\t\"rAarr;\": \"\\u21DB\",\n\t\"race;\": \"\\u223D\\u0331\",\n\t\"Racute;\": \"\\u0154\",\n\t\"racute;\": \"\\u0155\",\n\t\"radic;\": \"\\u221A\",\n\t\"raemptyv;\": \"\\u29B3\",\n\t\"rang;\": \"\\u27E9\",\n\t\"Rang;\": \"\\u27EB\",\n\t\"rangd;\": \"\\u2992\",\n\t\"range;\": \"\\u29A5\",\n\t\"rangle;\": \"\\u27E9\",\n\t\"raquo;\": \"\\u00BB\",\n\t\"raquo\": \"\\u00BB\",\n\t\"rarrap;\": \"\\u2975\",\n\t\"rarrb;\": \"\\u21E5\",\n\t\"rarrbfs;\": \"\\u2920\",\n\t\"rarrc;\": \"\\u2933\",\n\t\"rarr;\": \"\\u2192\",\n\t\"Rarr;\": \"\\u21A0\",\n\t\"rArr;\": \"\\u21D2\",\n\t\"rarrfs;\": \"\\u291E\",\n\t\"rarrhk;\": \"\\u21AA\",\n\t\"rarrlp;\": \"\\u21AC\",\n\t\"rarrpl;\": \"\\u2945\",\n\t\"rarrsim;\": \"\\u2974\",\n\t\"Rarrtl;\": \"\\u2916\",\n\t\"rarrtl;\": \"\\u21A3\",\n\t\"rarrw;\": \"\\u219D\",\n\t\"ratail;\": \"\\u291A\",\n\t\"rAtail;\": \"\\u291C\",\n\t\"ratio;\": \"\\u2236\",\n\t\"rationals;\": \"\\u211A\",\n\t\"rbarr;\": \"\\u290D\",\n\t\"rBarr;\": \"\\u290F\",\n\t\"RBarr;\": \"\\u2910\",\n\t\"rbbrk;\": \"\\u2773\",\n\t\"rbrace;\": \"\\u007D\",\n\t\"rbrack;\": \"\\u005D\",\n\t\"rbrke;\": \"\\u298C\",\n\t\"rbrksld;\": \"\\u298E\",\n\t\"rbrkslu;\": \"\\u2990\",\n\t\"Rcaron;\": \"\\u0158\",\n\t\"rcaron;\": \"\\u0159\",\n\t\"Rcedil;\": \"\\u0156\",\n\t\"rcedil;\": \"\\u0157\",\n\t\"rceil;\": \"\\u2309\",\n\t\"rcub;\": \"\\u007D\",\n\t\"Rcy;\": \"\\u0420\",\n\t\"rcy;\": \"\\u0440\",\n\t\"rdca;\": \"\\u2937\",\n\t\"rdldhar;\": \"\\u2969\",\n\t\"rdquo;\": \"\\u201D\",\n\t\"rdquor;\": \"\\u201D\",\n\t\"rdsh;\": \"\\u21B3\",\n\t\"real;\": \"\\u211C\",\n\t\"realine;\": \"\\u211B\",\n\t\"realpart;\": \"\\u211C\",\n\t\"reals;\": \"\\u211D\",\n\t\"Re;\": \"\\u211C\",\n\t\"rect;\": \"\\u25AD\",\n\t\"reg;\": \"\\u00AE\",\n\t\"reg\": \"\\u00AE\",\n\t\"REG;\": \"\\u00AE\",\n\t\"REG\": \"\\u00AE\",\n\t\"ReverseElement;\": \"\\u220B\",\n\t\"ReverseEquilibrium;\": \"\\u21CB\",\n\t\"ReverseUpEquilibrium;\": \"\\u296F\",\n\t\"rfisht;\": \"\\u297D\",\n\t\"rfloor;\": \"\\u230B\",\n\t\"rfr;\": \"\\uD835\\uDD2F\",\n\t\"Rfr;\": \"\\u211C\",\n\t\"rHar;\": \"\\u2964\",\n\t\"rhard;\": \"\\u21C1\",\n\t\"rharu;\": \"\\u21C0\",\n\t\"rharul;\": \"\\u296C\",\n\t\"Rho;\": \"\\u03A1\",\n\t\"rho;\": \"\\u03C1\",\n\t\"rhov;\": \"\\u03F1\",\n\t\"RightAngleBracket;\": \"\\u27E9\",\n\t\"RightArrowBar;\": \"\\u21E5\",\n\t\"rightarrow;\": \"\\u2192\",\n\t\"RightArrow;\": \"\\u2192\",\n\t\"Rightarrow;\": \"\\u21D2\",\n\t\"RightArrowLeftArrow;\": \"\\u21C4\",\n\t\"rightarrowtail;\": \"\\u21A3\",\n\t\"RightCeiling;\": \"\\u2309\",\n\t\"RightDoubleBracket;\": \"\\u27E7\",\n\t\"RightDownTeeVector;\": \"\\u295D\",\n\t\"RightDownVectorBar;\": \"\\u2955\",\n\t\"RightDownVector;\": \"\\u21C2\",\n\t\"RightFloor;\": \"\\u230B\",\n\t\"rightharpoondown;\": \"\\u21C1\",\n\t\"rightharpoonup;\": \"\\u21C0\",\n\t\"rightleftarrows;\": \"\\u21C4\",\n\t\"rightleftharpoons;\": \"\\u21CC\",\n\t\"rightrightarrows;\": \"\\u21C9\",\n\t\"rightsquigarrow;\": \"\\u219D\",\n\t\"RightTeeArrow;\": \"\\u21A6\",\n\t\"RightTee;\": \"\\u22A2\",\n\t\"RightTeeVector;\": \"\\u295B\",\n\t\"rightthreetimes;\": \"\\u22CC\",\n\t\"RightTriangleBar;\": \"\\u29D0\",\n\t\"RightTriangle;\": \"\\u22B3\",\n\t\"RightTriangleEqual;\": \"\\u22B5\",\n\t\"RightUpDownVector;\": \"\\u294F\",\n\t\"RightUpTeeVector;\": \"\\u295C\",\n\t\"RightUpVectorBar;\": \"\\u2954\",\n\t\"RightUpVector;\": \"\\u21BE\",\n\t\"RightVectorBar;\": \"\\u2953\",\n\t\"RightVector;\": \"\\u21C0\",\n\t\"ring;\": \"\\u02DA\",\n\t\"risingdotseq;\": \"\\u2253\",\n\t\"rlarr;\": \"\\u21C4\",\n\t\"rlhar;\": \"\\u21CC\",\n\t\"rlm;\": \"\\u200F\",\n\t\"rmoustache;\": \"\\u23B1\",\n\t\"rmoust;\": \"\\u23B1\",\n\t\"rnmid;\": \"\\u2AEE\",\n\t\"roang;\": \"\\u27ED\",\n\t\"roarr;\": \"\\u21FE\",\n\t\"robrk;\": \"\\u27E7\",\n\t\"ropar;\": \"\\u2986\",\n\t\"ropf;\": \"\\uD835\\uDD63\",\n\t\"Ropf;\": \"\\u211D\",\n\t\"roplus;\": \"\\u2A2E\",\n\t\"rotimes;\": \"\\u2A35\",\n\t\"RoundImplies;\": \"\\u2970\",\n\t\"rpar;\": \"\\u0029\",\n\t\"rpargt;\": \"\\u2994\",\n\t\"rppolint;\": \"\\u2A12\",\n\t\"rrarr;\": \"\\u21C9\",\n\t\"Rrightarrow;\": \"\\u21DB\",\n\t\"rsaquo;\": \"\\u203A\",\n\t\"rscr;\": \"\\uD835\\uDCC7\",\n\t\"Rscr;\": \"\\u211B\",\n\t\"rsh;\": \"\\u21B1\",\n\t\"Rsh;\": \"\\u21B1\",\n\t\"rsqb;\": \"\\u005D\",\n\t\"rsquo;\": \"\\u2019\",\n\t\"rsquor;\": \"\\u2019\",\n\t\"rthree;\": \"\\u22CC\",\n\t\"rtimes;\": \"\\u22CA\",\n\t\"rtri;\": \"\\u25B9\",\n\t\"rtrie;\": \"\\u22B5\",\n\t\"rtrif;\": \"\\u25B8\",\n\t\"rtriltri;\": \"\\u29CE\",\n\t\"RuleDelayed;\": \"\\u29F4\",\n\t\"ruluhar;\": \"\\u2968\",\n\t\"rx;\": \"\\u211E\",\n\t\"Sacute;\": \"\\u015A\",\n\t\"sacute;\": \"\\u015B\",\n\t\"sbquo;\": \"\\u201A\",\n\t\"scap;\": \"\\u2AB8\",\n\t\"Scaron;\": \"\\u0160\",\n\t\"scaron;\": \"\\u0161\",\n\t\"Sc;\": \"\\u2ABC\",\n\t\"sc;\": \"\\u227B\",\n\t\"sccue;\": \"\\u227D\",\n\t\"sce;\": \"\\u2AB0\",\n\t\"scE;\": \"\\u2AB4\",\n\t\"Scedil;\": \"\\u015E\",\n\t\"scedil;\": \"\\u015F\",\n\t\"Scirc;\": \"\\u015C\",\n\t\"scirc;\": \"\\u015D\",\n\t\"scnap;\": \"\\u2ABA\",\n\t\"scnE;\": \"\\u2AB6\",\n\t\"scnsim;\": \"\\u22E9\",\n\t\"scpolint;\": \"\\u2A13\",\n\t\"scsim;\": \"\\u227F\",\n\t\"Scy;\": \"\\u0421\",\n\t\"scy;\": \"\\u0441\",\n\t\"sdotb;\": \"\\u22A1\",\n\t\"sdot;\": \"\\u22C5\",\n\t\"sdote;\": \"\\u2A66\",\n\t\"searhk;\": \"\\u2925\",\n\t\"searr;\": \"\\u2198\",\n\t\"seArr;\": \"\\u21D8\",\n\t\"searrow;\": \"\\u2198\",\n\t\"sect;\": \"\\u00A7\",\n\t\"sect\": \"\\u00A7\",\n\t\"semi;\": \"\\u003B\",\n\t\"seswar;\": \"\\u2929\",\n\t\"setminus;\": \"\\u2216\",\n\t\"setmn;\": \"\\u2216\",\n\t\"sext;\": \"\\u2736\",\n\t\"Sfr;\": \"\\uD835\\uDD16\",\n\t\"sfr;\": \"\\uD835\\uDD30\",\n\t\"sfrown;\": \"\\u2322\",\n\t\"sharp;\": \"\\u266F\",\n\t\"SHCHcy;\": \"\\u0429\",\n\t\"shchcy;\": \"\\u0449\",\n\t\"SHcy;\": \"\\u0428\",\n\t\"shcy;\": \"\\u0448\",\n\t\"ShortDownArrow;\": \"\\u2193\",\n\t\"ShortLeftArrow;\": \"\\u2190\",\n\t\"shortmid;\": \"\\u2223\",\n\t\"shortparallel;\": \"\\u2225\",\n\t\"ShortRightArrow;\": \"\\u2192\",\n\t\"ShortUpArrow;\": \"\\u2191\",\n\t\"shy;\": \"\\u00AD\",\n\t\"shy\": \"\\u00AD\",\n\t\"Sigma;\": \"\\u03A3\",\n\t\"sigma;\": \"\\u03C3\",\n\t\"sigmaf;\": \"\\u03C2\",\n\t\"sigmav;\": \"\\u03C2\",\n\t\"sim;\": \"\\u223C\",\n\t\"simdot;\": \"\\u2A6A\",\n\t\"sime;\": \"\\u2243\",\n\t\"simeq;\": \"\\u2243\",\n\t\"simg;\": \"\\u2A9E\",\n\t\"simgE;\": \"\\u2AA0\",\n\t\"siml;\": \"\\u2A9D\",\n\t\"simlE;\": \"\\u2A9F\",\n\t\"simne;\": \"\\u2246\",\n\t\"simplus;\": \"\\u2A24\",\n\t\"simrarr;\": \"\\u2972\",\n\t\"slarr;\": \"\\u2190\",\n\t\"SmallCircle;\": \"\\u2218\",\n\t\"smallsetminus;\": \"\\u2216\",\n\t\"smashp;\": \"\\u2A33\",\n\t\"smeparsl;\": \"\\u29E4\",\n\t\"smid;\": \"\\u2223\",\n\t\"smile;\": \"\\u2323\",\n\t\"smt;\": \"\\u2AAA\",\n\t\"smte;\": \"\\u2AAC\",\n\t\"smtes;\": \"\\u2AAC\\uFE00\",\n\t\"SOFTcy;\": \"\\u042C\",\n\t\"softcy;\": \"\\u044C\",\n\t\"solbar;\": \"\\u233F\",\n\t\"solb;\": \"\\u29C4\",\n\t\"sol;\": \"\\u002F\",\n\t\"Sopf;\": \"\\uD835\\uDD4A\",\n\t\"sopf;\": \"\\uD835\\uDD64\",\n\t\"spades;\": \"\\u2660\",\n\t\"spadesuit;\": \"\\u2660\",\n\t\"spar;\": \"\\u2225\",\n\t\"sqcap;\": \"\\u2293\",\n\t\"sqcaps;\": \"\\u2293\\uFE00\",\n\t\"sqcup;\": \"\\u2294\",\n\t\"sqcups;\": \"\\u2294\\uFE00\",\n\t\"Sqrt;\": \"\\u221A\",\n\t\"sqsub;\": \"\\u228F\",\n\t\"sqsube;\": \"\\u2291\",\n\t\"sqsubset;\": \"\\u228F\",\n\t\"sqsubseteq;\": \"\\u2291\",\n\t\"sqsup;\": \"\\u2290\",\n\t\"sqsupe;\": \"\\u2292\",\n\t\"sqsupset;\": \"\\u2290\",\n\t\"sqsupseteq;\": \"\\u2292\",\n\t\"square;\": \"\\u25A1\",\n\t\"Square;\": \"\\u25A1\",\n\t\"SquareIntersection;\": \"\\u2293\",\n\t\"SquareSubset;\": \"\\u228F\",\n\t\"SquareSubsetEqual;\": \"\\u2291\",\n\t\"SquareSuperset;\": \"\\u2290\",\n\t\"SquareSupersetEqual;\": \"\\u2292\",\n\t\"SquareUnion;\": \"\\u2294\",\n\t\"squarf;\": \"\\u25AA\",\n\t\"squ;\": \"\\u25A1\",\n\t\"squf;\": \"\\u25AA\",\n\t\"srarr;\": \"\\u2192\",\n\t\"Sscr;\": \"\\uD835\\uDCAE\",\n\t\"sscr;\": \"\\uD835\\uDCC8\",\n\t\"ssetmn;\": \"\\u2216\",\n\t\"ssmile;\": \"\\u2323\",\n\t\"sstarf;\": \"\\u22C6\",\n\t\"Star;\": \"\\u22C6\",\n\t\"star;\": \"\\u2606\",\n\t\"starf;\": \"\\u2605\",\n\t\"straightepsilon;\": \"\\u03F5\",\n\t\"straightphi;\": \"\\u03D5\",\n\t\"strns;\": \"\\u00AF\",\n\t\"sub;\": \"\\u2282\",\n\t\"Sub;\": \"\\u22D0\",\n\t\"subdot;\": \"\\u2ABD\",\n\t\"subE;\": \"\\u2AC5\",\n\t\"sube;\": \"\\u2286\",\n\t\"subedot;\": \"\\u2AC3\",\n\t\"submult;\": \"\\u2AC1\",\n\t\"subnE;\": \"\\u2ACB\",\n\t\"subne;\": \"\\u228A\",\n\t\"subplus;\": \"\\u2ABF\",\n\t\"subrarr;\": \"\\u2979\",\n\t\"subset;\": \"\\u2282\",\n\t\"Subset;\": \"\\u22D0\",\n\t\"subseteq;\": \"\\u2286\",\n\t\"subseteqq;\": \"\\u2AC5\",\n\t\"SubsetEqual;\": \"\\u2286\",\n\t\"subsetneq;\": \"\\u228A\",\n\t\"subsetneqq;\": \"\\u2ACB\",\n\t\"subsim;\": \"\\u2AC7\",\n\t\"subsub;\": \"\\u2AD5\",\n\t\"subsup;\": \"\\u2AD3\",\n\t\"succapprox;\": \"\\u2AB8\",\n\t\"succ;\": \"\\u227B\",\n\t\"succcurlyeq;\": \"\\u227D\",\n\t\"Succeeds;\": \"\\u227B\",\n\t\"SucceedsEqual;\": \"\\u2AB0\",\n\t\"SucceedsSlantEqual;\": \"\\u227D\",\n\t\"SucceedsTilde;\": \"\\u227F\",\n\t\"succeq;\": \"\\u2AB0\",\n\t\"succnapprox;\": \"\\u2ABA\",\n\t\"succneqq;\": \"\\u2AB6\",\n\t\"succnsim;\": \"\\u22E9\",\n\t\"succsim;\": \"\\u227F\",\n\t\"SuchThat;\": \"\\u220B\",\n\t\"sum;\": \"\\u2211\",\n\t\"Sum;\": \"\\u2211\",\n\t\"sung;\": \"\\u266A\",\n\t\"sup1;\": \"\\u00B9\",\n\t\"sup1\": \"\\u00B9\",\n\t\"sup2;\": \"\\u00B2\",\n\t\"sup2\": \"\\u00B2\",\n\t\"sup3;\": \"\\u00B3\",\n\t\"sup3\": \"\\u00B3\",\n\t\"sup;\": \"\\u2283\",\n\t\"Sup;\": \"\\u22D1\",\n\t\"supdot;\": \"\\u2ABE\",\n\t\"supdsub;\": \"\\u2AD8\",\n\t\"supE;\": \"\\u2AC6\",\n\t\"supe;\": \"\\u2287\",\n\t\"supedot;\": \"\\u2AC4\",\n\t\"Superset;\": \"\\u2283\",\n\t\"SupersetEqual;\": \"\\u2287\",\n\t\"suphsol;\": \"\\u27C9\",\n\t\"suphsub;\": \"\\u2AD7\",\n\t\"suplarr;\": \"\\u297B\",\n\t\"supmult;\": \"\\u2AC2\",\n\t\"supnE;\": \"\\u2ACC\",\n\t\"supne;\": \"\\u228B\",\n\t\"supplus;\": \"\\u2AC0\",\n\t\"supset;\": \"\\u2283\",\n\t\"Supset;\": \"\\u22D1\",\n\t\"supseteq;\": \"\\u2287\",\n\t\"supseteqq;\": \"\\u2AC6\",\n\t\"supsetneq;\": \"\\u228B\",\n\t\"supsetneqq;\": \"\\u2ACC\",\n\t\"supsim;\": \"\\u2AC8\",\n\t\"supsub;\": \"\\u2AD4\",\n\t\"supsup;\": \"\\u2AD6\",\n\t\"swarhk;\": \"\\u2926\",\n\t\"swarr;\": \"\\u2199\",\n\t\"swArr;\": \"\\u21D9\",\n\t\"swarrow;\": \"\\u2199\",\n\t\"swnwar;\": \"\\u292A\",\n\t\"szlig;\": \"\\u00DF\",\n\t\"szlig\": \"\\u00DF\",\n\t\"Tab;\": \"\\u0009\",\n\t\"target;\": \"\\u2316\",\n\t\"Tau;\": \"\\u03A4\",\n\t\"tau;\": \"\\u03C4\",\n\t\"tbrk;\": \"\\u23B4\",\n\t\"Tcaron;\": \"\\u0164\",\n\t\"tcaron;\": \"\\u0165\",\n\t\"Tcedil;\": \"\\u0162\",\n\t\"tcedil;\": \"\\u0163\",\n\t\"Tcy;\": \"\\u0422\",\n\t\"tcy;\": \"\\u0442\",\n\t\"tdot;\": \"\\u20DB\",\n\t\"telrec;\": \"\\u2315\",\n\t\"Tfr;\": \"\\uD835\\uDD17\",\n\t\"tfr;\": \"\\uD835\\uDD31\",\n\t\"there4;\": \"\\u2234\",\n\t\"therefore;\": \"\\u2234\",\n\t\"Therefore;\": \"\\u2234\",\n\t\"Theta;\": \"\\u0398\",\n\t\"theta;\": \"\\u03B8\",\n\t\"thetasym;\": \"\\u03D1\",\n\t\"thetav;\": \"\\u03D1\",\n\t\"thickapprox;\": \"\\u2248\",\n\t\"thicksim;\": \"\\u223C\",\n\t\"ThickSpace;\": \"\\u205F\\u200A\",\n\t\"ThinSpace;\": \"\\u2009\",\n\t\"thinsp;\": \"\\u2009\",\n\t\"thkap;\": \"\\u2248\",\n\t\"thksim;\": \"\\u223C\",\n\t\"THORN;\": \"\\u00DE\",\n\t\"THORN\": \"\\u00DE\",\n\t\"thorn;\": \"\\u00FE\",\n\t\"thorn\": \"\\u00FE\",\n\t\"tilde;\": \"\\u02DC\",\n\t\"Tilde;\": \"\\u223C\",\n\t\"TildeEqual;\": \"\\u2243\",\n\t\"TildeFullEqual;\": \"\\u2245\",\n\t\"TildeTilde;\": \"\\u2248\",\n\t\"timesbar;\": \"\\u2A31\",\n\t\"timesb;\": \"\\u22A0\",\n\t\"times;\": \"\\u00D7\",\n\t\"times\": \"\\u00D7\",\n\t\"timesd;\": \"\\u2A30\",\n\t\"tint;\": \"\\u222D\",\n\t\"toea;\": \"\\u2928\",\n\t\"topbot;\": \"\\u2336\",\n\t\"topcir;\": \"\\u2AF1\",\n\t\"top;\": \"\\u22A4\",\n\t\"Topf;\": \"\\uD835\\uDD4B\",\n\t\"topf;\": \"\\uD835\\uDD65\",\n\t\"topfork;\": \"\\u2ADA\",\n\t\"tosa;\": \"\\u2929\",\n\t\"tprime;\": \"\\u2034\",\n\t\"trade;\": \"\\u2122\",\n\t\"TRADE;\": \"\\u2122\",\n\t\"triangle;\": \"\\u25B5\",\n\t\"triangledown;\": \"\\u25BF\",\n\t\"triangleleft;\": \"\\u25C3\",\n\t\"trianglelefteq;\": \"\\u22B4\",\n\t\"triangleq;\": \"\\u225C\",\n\t\"triangleright;\": \"\\u25B9\",\n\t\"trianglerighteq;\": \"\\u22B5\",\n\t\"tridot;\": \"\\u25EC\",\n\t\"trie;\": \"\\u225C\",\n\t\"triminus;\": \"\\u2A3A\",\n\t\"TripleDot;\": \"\\u20DB\",\n\t\"triplus;\": \"\\u2A39\",\n\t\"trisb;\": \"\\u29CD\",\n\t\"tritime;\": \"\\u2A3B\",\n\t\"trpezium;\": \"\\u23E2\",\n\t\"Tscr;\": \"\\uD835\\uDCAF\",\n\t\"tscr;\": \"\\uD835\\uDCC9\",\n\t\"TScy;\": \"\\u0426\",\n\t\"tscy;\": \"\\u0446\",\n\t\"TSHcy;\": \"\\u040B\",\n\t\"tshcy;\": \"\\u045B\",\n\t\"Tstrok;\": \"\\u0166\",\n\t\"tstrok;\": \"\\u0167\",\n\t\"twixt;\": \"\\u226C\",\n\t\"twoheadleftarrow;\": \"\\u219E\",\n\t\"twoheadrightarrow;\": \"\\u21A0\",\n\t\"Uacute;\": \"\\u00DA\",\n\t\"Uacute\": \"\\u00DA\",\n\t\"uacute;\": \"\\u00FA\",\n\t\"uacute\": \"\\u00FA\",\n\t\"uarr;\": \"\\u2191\",\n\t\"Uarr;\": \"\\u219F\",\n\t\"uArr;\": \"\\u21D1\",\n\t\"Uarrocir;\": \"\\u2949\",\n\t\"Ubrcy;\": \"\\u040E\",\n\t\"ubrcy;\": \"\\u045E\",\n\t\"Ubreve;\": \"\\u016C\",\n\t\"ubreve;\": \"\\u016D\",\n\t\"Ucirc;\": \"\\u00DB\",\n\t\"Ucirc\": \"\\u00DB\",\n\t\"ucirc;\": \"\\u00FB\",\n\t\"ucirc\": \"\\u00FB\",\n\t\"Ucy;\": \"\\u0423\",\n\t\"ucy;\": \"\\u0443\",\n\t\"udarr;\": \"\\u21C5\",\n\t\"Udblac;\": \"\\u0170\",\n\t\"udblac;\": \"\\u0171\",\n\t\"udhar;\": \"\\u296E\",\n\t\"ufisht;\": \"\\u297E\",\n\t\"Ufr;\": \"\\uD835\\uDD18\",\n\t\"ufr;\": \"\\uD835\\uDD32\",\n\t\"Ugrave;\": \"\\u00D9\",\n\t\"Ugrave\": \"\\u00D9\",\n\t\"ugrave;\": \"\\u00F9\",\n\t\"ugrave\": \"\\u00F9\",\n\t\"uHar;\": \"\\u2963\",\n\t\"uharl;\": \"\\u21BF\",\n\t\"uharr;\": \"\\u21BE\",\n\t\"uhblk;\": \"\\u2580\",\n\t\"ulcorn;\": \"\\u231C\",\n\t\"ulcorner;\": \"\\u231C\",\n\t\"ulcrop;\": \"\\u230F\",\n\t\"ultri;\": \"\\u25F8\",\n\t\"Umacr;\": \"\\u016A\",\n\t\"umacr;\": \"\\u016B\",\n\t\"uml;\": \"\\u00A8\",\n\t\"uml\": \"\\u00A8\",\n\t\"UnderBar;\": \"\\u005F\",\n\t\"UnderBrace;\": \"\\u23DF\",\n\t\"UnderBracket;\": \"\\u23B5\",\n\t\"UnderParenthesis;\": \"\\u23DD\",\n\t\"Union;\": \"\\u22C3\",\n\t\"UnionPlus;\": \"\\u228E\",\n\t\"Uogon;\": \"\\u0172\",\n\t\"uogon;\": \"\\u0173\",\n\t\"Uopf;\": \"\\uD835\\uDD4C\",\n\t\"uopf;\": \"\\uD835\\uDD66\",\n\t\"UpArrowBar;\": \"\\u2912\",\n\t\"uparrow;\": \"\\u2191\",\n\t\"UpArrow;\": \"\\u2191\",\n\t\"Uparrow;\": \"\\u21D1\",\n\t\"UpArrowDownArrow;\": \"\\u21C5\",\n\t\"updownarrow;\": \"\\u2195\",\n\t\"UpDownArrow;\": \"\\u2195\",\n\t\"Updownarrow;\": \"\\u21D5\",\n\t\"UpEquilibrium;\": \"\\u296E\",\n\t\"upharpoonleft;\": \"\\u21BF\",\n\t\"upharpoonright;\": \"\\u21BE\",\n\t\"uplus;\": \"\\u228E\",\n\t\"UpperLeftArrow;\": \"\\u2196\",\n\t\"UpperRightArrow;\": \"\\u2197\",\n\t\"upsi;\": \"\\u03C5\",\n\t\"Upsi;\": \"\\u03D2\",\n\t\"upsih;\": \"\\u03D2\",\n\t\"Upsilon;\": \"\\u03A5\",\n\t\"upsilon;\": \"\\u03C5\",\n\t\"UpTeeArrow;\": \"\\u21A5\",\n\t\"UpTee;\": \"\\u22A5\",\n\t\"upuparrows;\": \"\\u21C8\",\n\t\"urcorn;\": \"\\u231D\",\n\t\"urcorner;\": \"\\u231D\",\n\t\"urcrop;\": \"\\u230E\",\n\t\"Uring;\": \"\\u016E\",\n\t\"uring;\": \"\\u016F\",\n\t\"urtri;\": \"\\u25F9\",\n\t\"Uscr;\": \"\\uD835\\uDCB0\",\n\t\"uscr;\": \"\\uD835\\uDCCA\",\n\t\"utdot;\": \"\\u22F0\",\n\t\"Utilde;\": \"\\u0168\",\n\t\"utilde;\": \"\\u0169\",\n\t\"utri;\": \"\\u25B5\",\n\t\"utrif;\": \"\\u25B4\",\n\t\"uuarr;\": \"\\u21C8\",\n\t\"Uuml;\": \"\\u00DC\",\n\t\"Uuml\": \"\\u00DC\",\n\t\"uuml;\": \"\\u00FC\",\n\t\"uuml\": \"\\u00FC\",\n\t\"uwangle;\": \"\\u29A7\",\n\t\"vangrt;\": \"\\u299C\",\n\t\"varepsilon;\": \"\\u03F5\",\n\t\"varkappa;\": \"\\u03F0\",\n\t\"varnothing;\": \"\\u2205\",\n\t\"varphi;\": \"\\u03D5\",\n\t\"varpi;\": \"\\u03D6\",\n\t\"varpropto;\": \"\\u221D\",\n\t\"varr;\": \"\\u2195\",\n\t\"vArr;\": \"\\u21D5\",\n\t\"varrho;\": \"\\u03F1\",\n\t\"varsigma;\": \"\\u03C2\",\n\t\"varsubsetneq;\": \"\\u228A\\uFE00\",\n\t\"varsubsetneqq;\": \"\\u2ACB\\uFE00\",\n\t\"varsupsetneq;\": \"\\u228B\\uFE00\",\n\t\"varsupsetneqq;\": \"\\u2ACC\\uFE00\",\n\t\"vartheta;\": \"\\u03D1\",\n\t\"vartriangleleft;\": \"\\u22B2\",\n\t\"vartriangleright;\": \"\\u22B3\",\n\t\"vBar;\": \"\\u2AE8\",\n\t\"Vbar;\": \"\\u2AEB\",\n\t\"vBarv;\": \"\\u2AE9\",\n\t\"Vcy;\": \"\\u0412\",\n\t\"vcy;\": \"\\u0432\",\n\t\"vdash;\": \"\\u22A2\",\n\t\"vDash;\": \"\\u22A8\",\n\t\"Vdash;\": \"\\u22A9\",\n\t\"VDash;\": \"\\u22AB\",\n\t\"Vdashl;\": \"\\u2AE6\",\n\t\"veebar;\": \"\\u22BB\",\n\t\"vee;\": \"\\u2228\",\n\t\"Vee;\": \"\\u22C1\",\n\t\"veeeq;\": \"\\u225A\",\n\t\"vellip;\": \"\\u22EE\",\n\t\"verbar;\": \"\\u007C\",\n\t\"Verbar;\": \"\\u2016\",\n\t\"vert;\": \"\\u007C\",\n\t\"Vert;\": \"\\u2016\",\n\t\"VerticalBar;\": \"\\u2223\",\n\t\"VerticalLine;\": \"\\u007C\",\n\t\"VerticalSeparator;\": \"\\u2758\",\n\t\"VerticalTilde;\": \"\\u2240\",\n\t\"VeryThinSpace;\": \"\\u200A\",\n\t\"Vfr;\": \"\\uD835\\uDD19\",\n\t\"vfr;\": \"\\uD835\\uDD33\",\n\t\"vltri;\": \"\\u22B2\",\n\t\"vnsub;\": \"\\u2282\\u20D2\",\n\t\"vnsup;\": \"\\u2283\\u20D2\",\n\t\"Vopf;\": \"\\uD835\\uDD4D\",\n\t\"vopf;\": \"\\uD835\\uDD67\",\n\t\"vprop;\": \"\\u221D\",\n\t\"vrtri;\": \"\\u22B3\",\n\t\"Vscr;\": \"\\uD835\\uDCB1\",\n\t\"vscr;\": \"\\uD835\\uDCCB\",\n\t\"vsubnE;\": \"\\u2ACB\\uFE00\",\n\t\"vsubne;\": \"\\u228A\\uFE00\",\n\t\"vsupnE;\": \"\\u2ACC\\uFE00\",\n\t\"vsupne;\": \"\\u228B\\uFE00\",\n\t\"Vvdash;\": \"\\u22AA\",\n\t\"vzigzag;\": \"\\u299A\",\n\t\"Wcirc;\": \"\\u0174\",\n\t\"wcirc;\": \"\\u0175\",\n\t\"wedbar;\": \"\\u2A5F\",\n\t\"wedge;\": \"\\u2227\",\n\t\"Wedge;\": \"\\u22C0\",\n\t\"wedgeq;\": \"\\u2259\",\n\t\"weierp;\": \"\\u2118\",\n\t\"Wfr;\": \"\\uD835\\uDD1A\",\n\t\"wfr;\": \"\\uD835\\uDD34\",\n\t\"Wopf;\": \"\\uD835\\uDD4E\",\n\t\"wopf;\": \"\\uD835\\uDD68\",\n\t\"wp;\": \"\\u2118\",\n\t\"wr;\": \"\\u2240\",\n\t\"wreath;\": \"\\u2240\",\n\t\"Wscr;\": \"\\uD835\\uDCB2\",\n\t\"wscr;\": \"\\uD835\\uDCCC\",\n\t\"xcap;\": \"\\u22C2\",\n\t\"xcirc;\": \"\\u25EF\",\n\t\"xcup;\": \"\\u22C3\",\n\t\"xdtri;\": \"\\u25BD\",\n\t\"Xfr;\": \"\\uD835\\uDD1B\",\n\t\"xfr;\": \"\\uD835\\uDD35\",\n\t\"xharr;\": \"\\u27F7\",\n\t\"xhArr;\": \"\\u27FA\",\n\t\"Xi;\": \"\\u039E\",\n\t\"xi;\": \"\\u03BE\",\n\t\"xlarr;\": \"\\u27F5\",\n\t\"xlArr;\": \"\\u27F8\",\n\t\"xmap;\": \"\\u27FC\",\n\t\"xnis;\": \"\\u22FB\",\n\t\"xodot;\": \"\\u2A00\",\n\t\"Xopf;\": \"\\uD835\\uDD4F\",\n\t\"xopf;\": \"\\uD835\\uDD69\",\n\t\"xoplus;\": \"\\u2A01\",\n\t\"xotime;\": \"\\u2A02\",\n\t\"xrarr;\": \"\\u27F6\",\n\t\"xrArr;\": \"\\u27F9\",\n\t\"Xscr;\": \"\\uD835\\uDCB3\",\n\t\"xscr;\": \"\\uD835\\uDCCD\",\n\t\"xsqcup;\": \"\\u2A06\",\n\t\"xuplus;\": \"\\u2A04\",\n\t\"xutri;\": \"\\u25B3\",\n\t\"xvee;\": \"\\u22C1\",\n\t\"xwedge;\": \"\\u22C0\",\n\t\"Yacute;\": \"\\u00DD\",\n\t\"Yacute\": \"\\u00DD\",\n\t\"yacute;\": \"\\u00FD\",\n\t\"yacute\": \"\\u00FD\",\n\t\"YAcy;\": \"\\u042F\",\n\t\"yacy;\": \"\\u044F\",\n\t\"Ycirc;\": \"\\u0176\",\n\t\"ycirc;\": \"\\u0177\",\n\t\"Ycy;\": \"\\u042B\",\n\t\"ycy;\": \"\\u044B\",\n\t\"yen;\": \"\\u00A5\",\n\t\"yen\": \"\\u00A5\",\n\t\"Yfr;\": \"\\uD835\\uDD1C\",\n\t\"yfr;\": \"\\uD835\\uDD36\",\n\t\"YIcy;\": \"\\u0407\",\n\t\"yicy;\": \"\\u0457\",\n\t\"Yopf;\": \"\\uD835\\uDD50\",\n\t\"yopf;\": \"\\uD835\\uDD6A\",\n\t\"Yscr;\": \"\\uD835\\uDCB4\",\n\t\"yscr;\": \"\\uD835\\uDCCE\",\n\t\"YUcy;\": \"\\u042E\",\n\t\"yucy;\": \"\\u044E\",\n\t\"yuml;\": \"\\u00FF\",\n\t\"yuml\": \"\\u00FF\",\n\t\"Yuml;\": \"\\u0178\",\n\t\"Zacute;\": \"\\u0179\",\n\t\"zacute;\": \"\\u017A\",\n\t\"Zcaron;\": \"\\u017D\",\n\t\"zcaron;\": \"\\u017E\",\n\t\"Zcy;\": \"\\u0417\",\n\t\"zcy;\": \"\\u0437\",\n\t\"Zdot;\": \"\\u017B\",\n\t\"zdot;\": \"\\u017C\",\n\t\"zeetrf;\": \"\\u2128\",\n\t\"ZeroWidthSpace;\": \"\\u200B\",\n\t\"Zeta;\": \"\\u0396\",\n\t\"zeta;\": \"\\u03B6\",\n\t\"zfr;\": \"\\uD835\\uDD37\",\n\t\"Zfr;\": \"\\u2128\",\n\t\"ZHcy;\": \"\\u0416\",\n\t\"zhcy;\": \"\\u0436\",\n\t\"zigrarr;\": \"\\u21DD\",\n\t\"zopf;\": \"\\uD835\\uDD6B\",\n\t\"Zopf;\": \"\\u2124\",\n\t\"Zscr;\": \"\\uD835\\uDCB5\",\n\t\"zscr;\": \"\\uD835\\uDCCF\",\n\t\"zwj;\": \"\\u200D\",\n\t\"zwnj;\": \"\\u200C\"\n};\n\n},\n{}],\n13:[function(_dereq_,module,exports){\nvar util = _dereq_('util/');\n\nvar pSlice = Array.prototype.slice;\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar assert = module.exports = ok;\n\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n }\n else {\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n var fn_name = stackStartFunction.name;\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\nutil.inherits(assert.AssertionError, Error);\n\nfunction replacer(key, value) {\n if (util.isUndefined(value)) {\n return '' + value;\n }\n if (util.isNumber(value) && (isNaN(value) || !isFinite(value))) {\n return value.toString();\n }\n if (util.isFunction(value) || util.isRegExp(value)) {\n return value.toString();\n }\n return value;\n}\n\nfunction truncate(s, n) {\n if (util.isString(s)) {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\n\nfunction getMessage(self) {\n return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' +\n self.operator + ' ' +\n truncate(JSON.stringify(self.expected, replacer), 128);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\nassert.fail = fail;\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nfunction _deepEqual(actual, expected) {\n if (actual === expected) {\n return true;\n\n } else if (util.isBuffer(actual) && util.isBuffer(expected)) {\n if (actual.length != expected.length) return false;\n\n for (var i = 0; i < actual.length; i++) {\n if (actual[i] !== expected[i]) return false;\n }\n\n return true;\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n } else if (!util.isObject(actual) && !util.isObject(expected)) {\n return actual == expected;\n } else {\n return objEquiv(actual, expected);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b) {\n if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))\n return false;\n if (a.prototype !== b.prototype) return false;\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b);\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b),\n key, i;\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n if (ka.length != kb.length)\n return false;\n ka.sort();\n kb.sort();\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key])) return false;\n }\n return true;\n}\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n } else if (actual instanceof expected) {\n return true;\n } else if (expected.call({}, actual) === true) {\n return true;\n }\n\n return false;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (util.isString(expected)) {\n message = expected;\n expected = null;\n }\n\n try {\n block();\n } catch (e) {\n actual = e;\n }\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n if (!shouldThrow && expectedException(actual, expected)) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws.apply(this, [true].concat(pSlice.call(arguments)));\n};\nassert.doesNotThrow = function(block, /*optional*/message) {\n _throws.apply(this, [false].concat(pSlice.call(arguments)));\n};\n\nassert.ifError = function(err) { if (err) {throw err;}};\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\n},\n{\"util/\":15}],\n14:[function(_dereq_,module,exports){\nmodule.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n},\n{}],\n15:[function(_dereq_,module,exports){\n(function (process,global){\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\nexports.deprecate = function(fn, msg) {\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\nfunction inspect(obj, opts) {\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n ctx.showHidden = opts;\n } else if (opts) {\n exports._extend(ctx, opts);\n }\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n value.inspect !== exports.inspect &&\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = _dereq_('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\nexports.inherits = _dereq_('inherits');\n\nexports._extend = function(origin, add) {\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n}).call(this,_dereq_(\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\"),typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},\n{\"./support/isBuffer\":14,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,\"inherits\":17}],\n16:[function(_dereq_,module,exports){\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\nEventEmitter.defaultMaxListeners = 10;\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n throw TypeError('Uncaught, unspecified \"error\" event.');\n }\n return false;\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n default:\n len = arguments.length;\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n len = arguments.length;\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n this._events[type].push(listener);\n else\n this._events[type] = [this._events[type], listener];\n if (isObject(this._events[type]) && !this._events[type].warned) {\n var m;\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n console.trace();\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else {\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n var ret;\n if (!emitter._events || !emitter._events[type])\n ret = 0;\n else if (isFunction(emitter._events[type]))\n ret = 1;\n else\n ret = emitter._events[type].length;\n return ret;\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n},\n{}],\n17:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n},\n{}],\n18:[function(_dereq_,module,exports){\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n var canSetImmediate = typeof window !== 'undefined'\n && window.setImmediate;\n var canPost = typeof window !== 'undefined'\n && window.postMessage && window.addEventListener\n ;\n\n if (canSetImmediate) {\n return function (f) { return window.setImmediate(f) };\n }\n\n if (canPost) {\n var queue = [];\n window.addEventListener('message', function (ev) {\n var source = ev.source;\n if ((source === window || source === null) && ev.data === 'process-tick') {\n ev.stopPropagation();\n if (queue.length > 0) {\n var fn = queue.shift();\n fn();\n }\n }\n }, true);\n\n return function nextTick(fn) {\n queue.push(fn);\n window.postMessage('process-tick', '*');\n };\n }\n\n return function nextTick(fn) {\n setTimeout(fn, 0);\n };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n}\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\n},\n{}],\n19:[function(_dereq_,module,exports){\nmodule.exports=_dereq_(14)\n},\n{}],\n20:[function(_dereq_,module,exports){\nmodule.exports=_dereq_(15)\n},\n{\"./support/isBuffer\":19,\"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js\":18,\"inherits\":17}]},{},[9])\n(9)\n\n});\n\nace.define(\"ace/mode/html_worker\",[], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar Mirror = require(\"../worker/mirror\").Mirror;\nvar SAXParser = require(\"./html/saxparser\").SAXParser;\n\nvar errorTypes = {\n \"expected-doctype-but-got-start-tag\": \"info\",\n \"expected-doctype-but-got-chars\": \"info\",\n \"non-html-root\": \"info\"\n};\n\nvar Worker = exports.Worker = function(sender) {\n Mirror.call(this, sender);\n this.setTimeout(400);\n this.context = null;\n};\n\noop.inherits(Worker, Mirror);\n\n(function() {\n\n this.setOptions = function(options) {\n this.context = options.context;\n };\n\n this.onUpdate = function() {\n var value = this.doc.getValue();\n if (!value)\n return;\n var parser = new SAXParser();\n var errors = [];\n var noop = function(){};\n parser.contentHandler = {\n startDocument: noop,\n endDocument: noop,\n startElement: noop,\n endElement: noop,\n characters: noop\n };\n parser.errorHandler = {\n error: function(message, location, code) {\n errors.push({\n row: location.line,\n column: location.column,\n text: message,\n type: errorTypes[code] || \"error\"\n });\n }\n };\n\n parser.parse(value, this.context);\n\n this.sender.emit(\"error\", errors);\n };\n\n}).call(Worker.prototype);\n\n});\n"],"names":["window","msgs","message","file","line","col","err","parentId","moduleName","chunks","base","previous","id","module","path","resolveModuleId","paths","testPath","tail","alias","i","deps","factory","req","childId","returnExports","dep","topLevelNamespaces","EventEmitter","oop","Sender","data","callbackId","name","main","sender","e","msg","clazz","this","require","exports","ctor","superCtor","obj","mixin","key","proto","a","string","count","result","trimBeginRegexp","trimEndRegexp","copy","array","l","deepCopy","arr","map","props","value","str","regExp","matches","fcn","timer","callback","deferred","timeout","defaultTimeout","_self","docLines","delta","doNotValidate","row","startColumn","lines","args","endColumn","endRow","stopPropagation","preventDefault","eventName","listeners","defaultHandler","newCallback","resolve","handlers","old","disabled","capturing","index","comparePoints","p1","p2","Range","startRow","range","column","cmp","end","start","p","firstRow","lastRow","session","screenPosStart","screenPosEnd","Anchor","doc","point","$getTransformedPoint","noClip","pos","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","applyDelta","Document","textOrLines","text","len","match","newLineMode","position","length","deleteFirstNewLine","deleteLastNewLine","startCol","endCol","deletedLines","deltas","isInsert","docLength","MAX","from","to","chunk","newlineLength","lang","Mirror","deferredUpdate","d","t","n","r","s","o","f","_dereq_","isScopeMarker","node","isListItemScopeMarker","isTableScopeMarker","isTableBodyScopeMarker","isTableRowScopeMarker","isButtonScopeMarker","isSelectScopeMarker","ElementStack","localName","isMarker","item","element","furthestBlock","finished","entities","InputStream","namedEntityPrefixes","entityKey","isAlphaNumeric","c","isHexDigit","isDecimalDigit","EntityParser","buffer","tokenizer","additionalAllowedCharacter","decodedCharacter","consumedCharacters","ch","radix","isDigit","code","replacement","first","second","mostRecentMatch","amount","re","m","lastLine","lastColumn","read","newlines","SpecialElements","StackItem","namespaceURI","attributes","getAttribute","encoding","isWhitespace","isAlpha","Tokenizer","tokenHandler","token","state","source","data_state","rcdata_state","rawtext_state","script_data_state","plaintext_state","character_reference_in_data_state","tag_open_state","chars","character","character_reference_in_rcdata_state","rcdata_less_than_sign_state","rawtext_less_than_sign_state","script_data_less_than_sign_state","rcdata_end_tag_open_state","rcdata_end_tag_name_state","appropriate","before_attribute_name_state","self_closing_tag_state","rawtext_end_tag_open_state","rawtext_end_tag_name_state","script_data_end_tag_open_state","script_data_escape_start_state","script_data_end_tag_name_state","script_data_escape_start_dash_state","script_data_escaped_dash_dash_state","script_data_escaped_state","script_data_escaped_dash_state","script_data_escaped_less_then_sign_state","script_data_escaped_end_tag_open_state","script_data_double_escape_start_state","script_data_escaped_end_tag_name_state","script_data_double_escaped_state","script_data_double_escaped_dash_state","script_data_double_escaped_less_than_sign_state","script_data_double_escaped_dash_dash_state","script_data_double_escape_end_state","tag_name_state","markup_declaration_open_state","close_tag_open_state","bogus_comment_state","attribute_name_state","leavingThisState","shouldEmit","before_attribute_value_state","after_attribute_name_state","currentAttribute","attribute_value_double_quoted_state","attribute_value_unquoted_state","attribute_value_single_quoted_state","after_attribute_value_state","character_reference_in_attribute_value_state","comment_start_state","newchars","doctype_state","cdata_section_state","comment_start_dash_state","comment_state","comment_end_state","comment_end_dash_state","comment_end_bang_state","before_doctype_name_state","doctype_name_state","after_doctype_name_state","expected","matched","after_doctype_public_keyword_state","after_doctype_system_keyword_state","bogus_doctype_state","before_doctype_public_identifier_state","doctype_public_identifier_double_quoted_state","doctype_public_identifier_single_quoted_state","after_doctype_public_identifier_state","between_doctype_public_and_system_identifiers_state","doctype_system_identifier_double_quoted_state","doctype_system_identifier_single_quoted_state","before_doctype_system_identifier_state","after_doctype_system_identifier_state","assert","messages","constants","Marker","isWhitespaceOrReplacementCharacter","isAllWhitespace","characters","isAllWhitespaceOrReplacementCharacters","attribute","CharacterBuffer","TreeBuilder","tree","modes","publicId","systemId","forceQuirks","selfClosing","publicIdStartsWith","whitespace","leadingWhitespace","stopNames","stopName","els","activeA","currentFramesetOk","formAttributes","inputAttributes","prompt","insertionModeName","x","ignoreEndTag","attr","originalInsertionMode","outerIterationLimit","innerIterationLimit","formattingElement","isActiveFormattingElement","el","outerLoopCounter","afeIndex","commonAncestor","bookmark","lastNode","innerLoopCounter","clone","newNode","formattingClone","currentNode","insertionMode","child","parent","table","stackParent","root","tableIndex","tableElement","exclude","entry","kNoahsArkCapacity","candidates","newItemAttributeCount","candidate","remainingCandidates","candidateAttribute","oldParent","newParent","context","formatMessage","fragmentAssigned","adjusted","format","SAXTreeBuilder","TreeParser","SAXParser","document","fragment","util","doctype","DTD","Element","comment","Comment","Characters","tableItem","DocumentFragment","NodeType","Node","locator","treeParser","prev","next","ParentNode","sibling","another","endLocator","uri","qName","atts","prefixMappings","mapping","IgnorableWhitespace","CDATA","Entity","SkippedEntity","ProcessingInstruction","target","publicIdentifier","systemIdentifier","contentHandler","lexicalHandler","NullLexicalHandler","current","prefix","pSlice","hasOwn","ok","options","getMessage","stackStartFunction","fail","out","fn_name","idx","next_line","replacer","truncate","self","actual","operator","_deepEqual","objEquiv","isArguments","object","b","ka","objectKeys","kb","expectedException","_throws","shouldThrow","block","error","keys","arg","process","global","formatRegExp","isString","objects","inspect","isNull","isObject","fn","isUndefined","warned","deprecated","debugs","debugEnviron","set","pid","opts","ctx","stylizeNoColor","isBoolean","stylizeWithColor","formatValue","styleType","style","arrayToHash","hash","val","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","braces","isArray","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","hasOwnProperty","desc","cur","ar","isNullOrUndefined","isSymbol","objectToString","isPrimitive","pad","months","timestamp","time","origin","add","prop","type","er","handler","listener","fired","list","emitter","TempCtor","canSetImmediate","canPost","queue","ev","noop","dir","errorTypes","Worker","parser","errors","location"],"mappings":"2YACE,SAASA,EAAQ,CAGnB,GAFI,OAAOA,EAAO,OAAU,KAAeA,EAAO,UAE9CA,EAAO,SAAWA,EAAO,OACzB,OAECA,EAAO,UACRA,EAAO,QAAU,UAAW,CACxB,IAAIC,EAAO,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAClD,YAAY,CAAC,KAAM,MAAO,KAAMA,CAAI,CAAC,CAC7C,EACID,EAAO,QAAQ,MACfA,EAAO,QAAQ,KACfA,EAAO,QAAQ,IACfA,EAAO,QAAQ,MAAQA,EAAO,SAElCA,EAAO,OAASA,EAChBA,EAAO,IAAMA,EAEbA,EAAO,QAAU,SAASE,EAASC,EAAMC,EAAMC,EAAKC,EAAK,CACrD,YAAY,CAAC,KAAM,QAAS,KAAM,CAC9B,QAASJ,EACT,KAAMI,GAAOA,EAAI,KACjB,KAAMH,EACN,KAAMC,EACN,IAAKC,EACL,MAAOC,GAAOA,EAAI,KACrB,CAAA,CAAC,CACN,EAEAN,EAAO,gBAAkB,SAASO,EAAUC,EAAY,CAEpD,GAAIA,EAAW,QAAQ,GAAG,IAAM,GAAI,CAChC,IAAIC,EAASD,EAAW,MAAM,GAAG,EACjC,OAAOR,EAAO,gBAAgBO,EAAUE,EAAO,CAAC,CAAC,EAAI,IAAMT,EAAO,gBAAgBO,EAAUE,EAAO,CAAC,CAAC,EAGzG,GAAID,EAAW,OAAO,CAAC,GAAK,IAAK,CAC7B,IAAIE,EAAOH,EAAS,MAAM,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAGpD,IAFAC,GAAcE,EAAOA,EAAO,IAAM,IAAMF,EAEjCA,EAAW,QAAQ,GAAG,IAAM,IAAMG,GAAYH,GAAY,CAC7D,IAAIG,EAAWH,EACfA,EAAaA,EAAW,QAAQ,QAAS,EAAE,EAAE,QAAQ,SAAU,GAAG,EAAE,QAAQ,iBAAkB,EAAE,GAIxG,OAAOA,CACX,EAEAR,EAAO,QAAU,SAAiBO,EAAUK,EAAI,CAK5C,GAJKA,IACDA,EAAKL,EACLA,EAAW,MAEX,CAACK,EAAG,OACJ,MAAM,IAAI,MAAM,8DAA8D,EAElFA,EAAKZ,EAAO,gBAAgBO,EAAUK,CAAE,EAExC,IAAIC,EAASb,EAAO,QAAQ,QAAQY,CAAE,EACtC,GAAIC,EACA,OAAKA,EAAO,cACRA,EAAO,YAAc,GACrBA,EAAO,QAAUA,EAAO,QAAO,EAAG,SAE/BA,EAAO,QAGlB,GAAI,CAACb,EAAO,QAAQ,KAChB,OAAO,QAAQ,IAAI,kBAAoBY,CAAE,EAE7C,IAAIE,EAAOC,EAAgBH,EAAIZ,EAAO,QAAQ,IAAI,EAClD,OAAIc,EAAK,MAAM,EAAE,GAAK,QAAOA,GAAQ,OAErCd,EAAO,QAAQ,GAAKY,EACpBZ,EAAO,QAAQ,QAAQY,CAAE,EAAI,CAAA,EAC7B,cAAcE,CAAI,EACXd,EAAO,QAAQO,EAAUK,CAAE,CACtC,EACA,SAASG,EAAgBH,EAAII,EAAO,CAEhC,QADIC,EAAWL,EAAIM,EAAO,GACnBD,GAAU,CACb,IAAIE,EAAQH,EAAMC,CAAQ,EAC1B,GAAI,OAAOE,GAAS,SAChB,OAAOA,EAAQD,EACZ,GAAIC,EACP,OAAQA,EAAM,SAAS,QAAQ,OAAQ,GAAG,GAAKD,GAAQC,EAAM,MAAQA,EAAM,MACxE,GAAIA,IAAU,GACjB,MAAO,GAEX,IAAIC,EAAIH,EAAS,YAAY,GAAG,EAChC,GAAIG,IAAM,GAAI,MACdF,EAAOD,EAAS,OAAOG,CAAC,EAAIF,EAC5BD,EAAWA,EAAS,MAAM,EAAGG,CAAC,EAElC,OAAOR,CACX,CACAZ,EAAO,QAAQ,QAAU,GACzBA,EAAO,QAAQ,KAAO,GAEtBA,EAAO,OAAS,SAASY,EAAIS,EAAMC,EAAS,CAaxC,GAZI,UAAU,QAAU,GACpBA,EAAUD,EACN,OAAOT,GAAM,WACbS,EAAOT,EACPA,EAAKZ,EAAO,QAAQ,KAEjB,UAAU,QAAU,IAC3BsB,EAAUV,EACVS,EAAO,CAAA,EACPT,EAAKZ,EAAO,QAAQ,IAGpB,OAAOsB,GAAW,WAAY,CAC9BtB,EAAO,QAAQ,QAAQY,CAAE,EAAI,CACzB,QAASU,EACT,YAAa,EACzB,EACQ,OAGCD,EAAK,SAGNA,EAAO,CAAC,UAAW,UAAW,QAAQ,GAE1C,IAAIE,EAAM,SAASC,EAAS,CACxB,OAAOxB,EAAO,QAAQY,EAAIY,CAAO,CACzC,EAEIxB,EAAO,QAAQ,QAAQY,CAAE,EAAI,CACzB,QAAS,CAAE,EACX,QAAS,UAAW,CAChB,IAAIC,EAAS,KACTY,EAAgBH,EAAQ,MAAM,KAAMD,EAAK,MAAM,EAAGC,EAAQ,MAAM,EAAE,IAAI,SAASI,EAAK,CACpF,OAAQA,EAAG,CAGP,IAAK,UAAW,OAAOH,EACvB,IAAK,UAAW,OAAOV,EAAO,QAC9B,IAAK,SAAW,OAAOA,EAGvB,QAAgB,OAAOU,EAAIG,CAAG,CACjC,CACJ,CAAA,CAAC,EACF,OAAID,IACAZ,EAAO,QAAUY,GACdZ,CACV,CACT,CACA,EACAb,EAAO,OAAO,IAAM,GACpBA,EAAO,QAAQ,KAAO,GACtBA,EAAO,aAAgB,SAAsB2B,EAAoB,CAC7D,QAASP,KAAKO,EACV,KAAK,QAAQ,KAAKP,CAAC,EAAIO,EAAmBP,CAAC,CACnD,EAEApB,EAAO,WAAa,UAAsB,CAEtC,IAAI4B,EAAe5B,EAAO,QAAQ,uBAAuB,EAAE,aACvD6B,EAAM7B,EAAO,QAAQ,aAAa,EAElC8B,EAAS,UAAW,GAExB,OAAC,UAAW,CAERD,EAAI,UAAU,KAAMD,CAAY,EAEhC,KAAK,SAAW,SAASG,EAAMC,EAAY,CACvC,YAAY,CACR,KAAM,OACN,GAAIA,EACJ,KAAMD,CACtB,CAAa,CACb,EAEQ,KAAK,KAAO,SAASE,EAAMF,EAAM,CAC7B,YAAY,CACR,KAAM,QACN,KAAME,EACN,KAAMF,CACtB,CAAa,CACb,CAEA,EAAO,KAAKD,EAAO,SAAS,EAEjB,IAAIA,CACf,EAEA,IAAII,EAAOlC,EAAO,KAAO,KACrBmC,EAASnC,EAAO,OAAS,KAE7BA,EAAO,UAAY,SAASoC,EAAG,CAC3B,IAAIC,EAAMD,EAAE,KACZ,GAAIC,EAAI,OAASF,EACbA,EAAO,QAAQE,EAAI,MAAOA,EAAI,IAAI,UAE7BA,EAAI,QACT,GAAIH,EAAKG,EAAI,OAAO,EAChBH,EAAKG,EAAI,OAAO,EAAE,MAAMH,EAAMG,EAAI,IAAI,UACjCrC,EAAOqC,EAAI,OAAO,EACvBrC,EAAOqC,EAAI,OAAO,EAAE,MAAMrC,EAAQqC,EAAI,IAAI,MAE1C,OAAM,IAAI,MAAM,mBAAqBA,EAAI,OAAO,UAE/CA,EAAI,KAAM,CACfrC,EAAO,aAAaqC,EAAI,IAAI,EAC5BF,EAASnC,EAAO,OAASA,EAAO,WAAU,EAC1C,IAAIsC,EAAQ,KAAK,QAAQD,EAAI,MAAM,EAAEA,EAAI,SAAS,EAClDH,EAAOlC,EAAO,KAAO,IAAIsC,EAAMH,CAAM,EAE7C,CACA,GAAGI,EAAI,EAEP,IAAI,OAAO,cAAc,CAAE,EAAE,SAASC,EAASC,EAAS5B,EAAO,CAC/D4B,EAAQ,SAAW,SAAUC,EAAMC,EAAW,CAC1CD,EAAK,OAASC,EACdD,EAAK,UAAY,OAAO,OAAOC,EAAU,UAAW,CAChD,YAAa,CACT,MAAOD,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,CACT,CAAK,CACL,EACAD,EAAQ,MAAQ,SAAUG,EAAKC,EAAO,CAClC,QAASC,KAAOD,EACZD,EAAIE,CAAG,EAAID,EAAMC,CAAG,EAExB,OAAOF,CACX,EACAH,EAAQ,UAAY,SAAUM,EAAOF,EAAO,CACxCJ,EAAQ,MAAMM,EAAOF,CAAK,CAC9B,CAEA,CAAC,EAED,IAAI,OAAO,eAAe,CAAE,EAAE,SAASL,EAASC,EAAS5B,EAAO,CAChE4B,EAAQ,KAAO,SAAUO,EAAG,CACxB,OAAOA,EAAEA,EAAE,OAAS,CAAC,CACzB,EACAP,EAAQ,cAAgB,SAAUQ,EAAQ,CACtC,OAAOA,EAAO,MAAM,EAAE,EAAE,UAAU,KAAK,EAAE,CAC7C,EACAR,EAAQ,aAAe,SAAUQ,EAAQC,EAAO,CAE5C,QADIC,EAAS,GACND,EAAQ,GACPA,EAAQ,IACRC,GAAUF,IACVC,IAAU,KACVD,GAAUA,GAElB,OAAOE,CACX,EACA,IAAIC,EAAkB,SAClBC,EAAgB,SACpBZ,EAAQ,eAAiB,SAAUQ,EAAQ,CACvC,OAAOA,EAAO,QAAQG,EAAiB,EAAE,CAC7C,EACAX,EAAQ,gBAAkB,SAAUQ,EAAQ,CACxC,OAAOA,EAAO,QAAQI,EAAe,EAAE,CAC3C,EACAZ,EAAQ,WAAa,SAAUG,EAAK,CAChC,IAAIU,EAAO,CAAA,EACX,QAASR,KAAOF,EACZU,EAAKR,CAAG,EAAIF,EAAIE,CAAG,EAEvB,OAAOQ,CACX,EACAb,EAAQ,UAAY,SAAUc,EAAO,CAEjC,QADID,EAAO,CAAA,EACFlC,EAAI,EAAGoC,EAAID,EAAM,OAAQnC,EAAIoC,EAAGpC,IACjCmC,EAAMnC,CAAC,GAAK,OAAOmC,EAAMnC,CAAC,GAAK,SAC/BkC,EAAKlC,CAAC,EAAI,KAAK,WAAWmC,EAAMnC,CAAC,CAAC,EAElCkC,EAAKlC,CAAC,EAAImC,EAAMnC,CAAC,EAEzB,OAAOkC,CACX,EACAb,EAAQ,SAAW,SAASgB,EAASb,EAAK,CACtC,GAAI,OAAOA,GAAQ,UAAY,CAACA,EAC5B,OAAOA,EACX,IAAIU,EACJ,GAAI,MAAM,QAAQV,CAAG,EAAG,CACpBU,EAAO,CAAA,EACP,QAASR,EAAM,EAAGA,EAAMF,EAAI,OAAQE,IAChCQ,EAAKR,CAAG,EAAIW,EAASb,EAAIE,CAAG,CAAC,EAEjC,OAAOQ,EAEX,GAAI,OAAO,UAAU,SAAS,KAAKV,CAAG,IAAM,kBACxC,OAAOA,EACXU,EAAO,CAAA,EACP,QAASR,KAAOF,EACZU,EAAKR,CAAG,EAAIW,EAASb,EAAIE,CAAG,CAAC,EACjC,OAAOQ,CACX,EACAb,EAAQ,WAAa,SAAUiB,EAAK,CAEhC,QADIC,EAAM,CAAA,EACDvC,EAAI,EAAGA,EAAIsC,EAAI,OAAQtC,IAC5BuC,EAAID,EAAItC,CAAC,CAAC,EAAI,EAElB,OAAOuC,CACX,EACAlB,EAAQ,UAAY,SAAUmB,EAAO,CACjC,IAAID,EAAM,OAAO,OAAO,IAAI,EAC5B,QAASvC,KAAKwC,EACVD,EAAIvC,CAAC,EAAIwC,EAAMxC,CAAC,EAEpB,OAAOuC,CACX,EACAlB,EAAQ,YAAc,SAAUc,EAAOM,EAAO,CAC1C,QAASzC,EAAI,EAAGA,GAAKmC,EAAM,OAAQnC,IAC3ByC,IAAUN,EAAMnC,CAAC,GACjBmC,EAAM,OAAOnC,EAAG,CAAC,CAG7B,EACAqB,EAAQ,aAAe,SAAUqB,EAAK,CAClC,OAAOA,EAAI,QAAQ,0BAA2B,MAAM,CACxD,EACArB,EAAQ,WAAa,SAAUqB,EAAK,CAChC,OAAQ,GAAKA,GAAK,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,OAAO,CAChH,EACArB,EAAQ,gBAAkB,SAAUQ,EAAQc,EAAQ,CAChD,IAAIC,EAAU,CAAA,EACd,OAAAf,EAAO,QAAQc,EAAQ,SAAUD,EAAK,CAClCE,EAAQ,KAAK,CACT,OAAQ,UAAU,UAAU,OAAS,CAAC,EACtC,OAAQF,EAAI,MACxB,CAAS,CACT,CAAK,EACME,CACX,EACAvB,EAAQ,aAAe,SAAUwB,EAAK,CAClC,IAAIC,EAAQ,KACRC,EAAW,UAAY,CACvBD,EAAQ,KACRD,GACR,EACQG,EAAW,SAAUC,EAAS,CAC9B,OAAAD,EAAS,OAAM,EACfF,EAAQ,WAAWC,EAAUE,GAAW,CAAC,EAClCD,CACf,EACI,OAAAA,EAAS,SAAWA,EACpBA,EAAS,KAAO,UAAY,CACxB,YAAK,OAAM,EACXH,IACOG,CACf,EACIA,EAAS,OAAS,UAAY,CAC1B,oBAAaF,CAAK,EAClBA,EAAQ,KACDE,CACf,EACIA,EAAS,UAAY,UAAY,CAC7B,OAAOF,CACf,EACWE,CACX,EACA3B,EAAQ,YAAc,SAAUwB,EAAKK,EAAgB,CACjD,IAAIJ,EAAQ,KACRC,EAAW,UAAY,CACvBD,EAAQ,KACRD,GACR,EACQM,EAAQ,SAAUF,EAAS,CACvBH,GAAS,OACTA,EAAQ,WAAWC,EAAUE,GAAWC,CAAc,EAClE,EACI,OAAAC,EAAM,MAAQ,SAAUF,EAAS,CAC7BH,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,WAAWC,EAAUE,GAAWC,CAAc,CAC9D,EACIC,EAAM,SAAWA,EACjBA,EAAM,KAAO,UAAY,CACrB,KAAK,OAAM,EACXN,GACR,EACIM,EAAM,OAAS,UAAY,CACvBL,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,IAChB,EACIK,EAAM,UAAY,UAAY,CAC1B,OAAOL,CACf,EACWK,CACX,CAEA,CAAC,EAED,IAAI,OAAO,kBAAkB,GAAI,SAAS/B,EAASC,EAAS5B,EAAO,CA2BnE4B,EAAQ,WAAa,SAAU+B,EAAUC,EAAOC,EAAe,CAC3D,IAAIC,EAAMF,EAAM,MAAM,IAClBG,EAAcH,EAAM,MAAM,OAC1BrE,EAAOoE,EAASG,CAAG,GAAK,GAC5B,OAAQF,EAAM,OAAM,CAChB,IAAK,SACD,IAAII,EAAQJ,EAAM,MAClB,GAAII,EAAM,SAAW,EACjBL,EAASG,CAAG,EAAIvE,EAAK,UAAU,EAAGwE,CAAW,EAAIH,EAAM,MAAM,CAAC,EAAIrE,EAAK,UAAUwE,CAAW,MAE3F,CACD,IAAIE,EAAO,CAACH,EAAK,CAAC,EAAE,OAAOF,EAAM,KAAK,EACtCD,EAAS,OAAO,MAAMA,EAAUM,CAAI,EACpCN,EAASG,CAAG,EAAIvE,EAAK,UAAU,EAAGwE,CAAW,EAAIJ,EAASG,CAAG,EAC7DH,EAASG,EAAMF,EAAM,MAAM,OAAS,CAAC,GAAKrE,EAAK,UAAUwE,CAAW,EAExE,MACJ,IAAK,SACD,IAAIG,EAAYN,EAAM,IAAI,OACtBO,EAASP,EAAM,IAAI,IACnBE,IAAQK,EACRR,EAASG,CAAG,EAAIvE,EAAK,UAAU,EAAGwE,CAAW,EAAIxE,EAAK,UAAU2E,CAAS,EAGzEP,EAAS,OAAOG,EAAKK,EAASL,EAAM,EAAGvE,EAAK,UAAU,EAAGwE,CAAW,EAAIJ,EAASQ,CAAM,EAAE,UAAUD,CAAS,CAAC,EAEjH,KACP,CACL,CAEA,CAAC,EAED,IAAI,OAAO,wBAAwB,CAAA,EAAI,SAASvC,EAASC,EAAS5B,EAAO,CACzE,IAAIe,EAAe,GACfqD,EAAkB,UAAY,CAAE,KAAK,mBAAqB,EAAK,EAC/DC,EAAiB,UAAY,CAAE,KAAK,iBAAmB,EAAK,EAChEtD,EAAa,MACTA,EAAa,eAAiB,SAAUuD,EAAW/C,EAAG,CAClD,KAAK,iBAAmB,KAAK,eAAiB,CAAE,GAChD,KAAK,mBAAqB,KAAK,iBAAmB,CAAE,GACpD,IAAIgD,EAAY,KAAK,eAAeD,CAAS,GAAK,CAAA,EAC9CE,EAAiB,KAAK,iBAAiBF,CAAS,EACpD,GAAI,GAACC,EAAU,QAAU,CAACC,GAE1B,EAAI,OAAOjD,GAAK,UAAY,CAACA,KACzBA,EAAI,CAAA,GACHA,EAAE,OACHA,EAAE,KAAO+C,GACR/C,EAAE,kBACHA,EAAE,gBAAkB6C,GACnB7C,EAAE,iBACHA,EAAE,eAAiB8C,GACvBE,EAAYA,EAAU,QACtB,QAAShE,EAAI,EAAGA,EAAIgE,EAAU,SAC1BA,EAAUhE,CAAC,EAAEgB,EAAG,IAAI,EAChB,CAAAA,EAAE,oBAF4BhB,IAElC,CAGJ,GAAIiE,GAAkB,CAACjD,EAAE,iBACrB,OAAOiD,EAAejD,EAAG,IAAI,EACzC,EACAR,EAAa,QAAU,SAAUuD,EAAW/C,EAAG,CAC3C,IAAIgD,GAAa,KAAK,gBAAkB,CAAE,GAAED,CAAS,EACrD,GAAKC,EAEL,CAAAA,EAAYA,EAAU,QACtB,QAAShE,EAAI,EAAGA,EAAIgE,EAAU,OAAQhE,IAClCgE,EAAUhE,CAAC,EAAEgB,EAAG,IAAI,EAC5B,EACAR,EAAa,KAAO,SAAUuD,EAAWhB,EAAU,CAC/C,IAAII,EAAQ,KAKZ,GAJA,KAAK,GAAGY,EAAW,SAASG,GAAc,CACtCf,EAAM,IAAIY,EAAWG,CAAW,EAChCnB,EAAS,MAAM,KAAM,SAAS,CACtC,CAAK,EACG,CAACA,EACD,OAAO,IAAI,QAAQ,SAAUoB,EAAS,CAClCpB,EAAWoB,CACvB,CAAS,CAET,EACA3D,EAAa,kBAAoB,SAAUuD,EAAWhB,EAAU,CAC5D,IAAIqB,EAAW,KAAK,iBAGpB,GAFKA,IACDA,EAAW,KAAK,iBAAmB,CAAE,WAAY,CAAE,CAAA,GACnDA,EAASL,CAAS,EAAG,CACrB,IAAIM,EAAMD,EAASL,CAAS,EACxBO,EAAWF,EAAS,WAAWL,CAAS,EACvCO,IACDF,EAAS,WAAWL,CAAS,EAAIO,EAAW,CAAA,GAChDA,EAAS,KAAKD,CAAG,EACjB,IAAIrE,EAAIsE,EAAS,QAAQvB,CAAQ,EAC7B/C,GAAK,IACLsE,EAAS,OAAOtE,EAAG,CAAC,EAE5BoE,EAASL,CAAS,EAAIhB,CAC1B,EACAvC,EAAa,qBAAuB,SAAUuD,EAAWhB,EAAU,CAC/D,IAAIqB,EAAW,KAAK,iBACpB,GAAKA,EAEL,KAAIE,EAAWF,EAAS,WAAWL,CAAS,EAC5C,GAAIK,EAASL,CAAS,GAAKhB,EACnBuB,GACA,KAAK,kBAAkBP,EAAWO,EAAS,IAAK,CAAA,UAE/CA,EAAU,CACf,IAAItE,EAAIsE,EAAS,QAAQvB,CAAQ,EAC7B/C,GAAK,IACLsE,EAAS,OAAOtE,EAAG,CAAC,GAEhC,EACAQ,EAAa,GACTA,EAAa,iBAAmB,SAAUuD,EAAWhB,EAAUwB,EAAW,CACtE,KAAK,eAAiB,KAAK,gBAAkB,CAAA,EAC7C,IAAIP,EAAY,KAAK,eAAeD,CAAS,EAC7C,OAAKC,IACDA,EAAY,KAAK,eAAeD,CAAS,EAAI,CAAA,GAC7CC,EAAU,QAAQjB,CAAQ,GAAK,IAC/BiB,EAAUO,EAAY,UAAY,MAAM,EAAExB,CAAQ,EAC/CA,CACf,EACAvC,EAAa,IACTA,EAAa,eACTA,EAAa,oBAAsB,SAAUuD,EAAWhB,EAAU,CAC9D,KAAK,eAAiB,KAAK,gBAAkB,CAAA,EAC7C,IAAIiB,EAAY,KAAK,eAAeD,CAAS,EAC7C,GAAKC,EAEL,KAAIQ,EAAQR,EAAU,QAAQjB,CAAQ,EAClCyB,IAAU,IACVR,EAAU,OAAOQ,EAAO,CAAC,EACzC,EACAhE,EAAa,mBAAqB,SAAUuD,EAAW,CAC9CA,IACD,KAAK,eAAiB,KAAK,iBAAmB,QAC9C,KAAK,iBACL,KAAK,eAAeA,CAAS,EAAI,QACjC,KAAK,mBACL,KAAK,iBAAiBA,CAAS,EAAI,OAC3C,EACA1C,EAAQ,aAAeb,CAEvB,CAAC,EAED,IAAI,OAAO,YAAY,CAAE,EAAE,SAASY,EAASC,EAAS5B,EAAO,CAC7D,IAAIgF,EAAgB,SAAUC,EAAIC,EAAI,CAClC,OAAOD,EAAG,IAAMC,EAAG,KAAOD,EAAG,OAASC,EAAG,MAC7C,EACIC,EAAuB,UAAY,CACnC,SAASA,EAAMC,EAAUrB,EAAaI,EAAQD,EAAW,CACrD,KAAK,MAAQ,CACT,IAAKkB,EACL,OAAQrB,CACpB,EACQ,KAAK,IAAM,CACP,IAAKI,EACL,OAAQD,CACpB,CACK,CACD,OAAAiB,EAAM,UAAU,QAAU,SAAUE,EAAO,CACvC,OAAO,KAAK,MAAM,MAAQA,EAAM,MAAM,KAClC,KAAK,IAAI,MAAQA,EAAM,IAAI,KAC3B,KAAK,MAAM,SAAWA,EAAM,MAAM,QAClC,KAAK,IAAI,SAAWA,EAAM,IAAI,MAC1C,EACIF,EAAM,UAAU,SAAW,UAAY,CACnC,MAAQ,WAAa,KAAK,MAAM,IAAM,IAAM,KAAK,MAAM,OACnD,SAAW,KAAK,IAAI,IAAM,IAAM,KAAK,IAAI,OAAS,GAC9D,EACIA,EAAM,UAAU,SAAW,SAAUrB,EAAKwB,EAAQ,CAC9C,OAAO,KAAK,QAAQxB,EAAKwB,CAAM,GAAK,CAC5C,EACIH,EAAM,UAAU,aAAe,SAAUE,EAAO,CAC5C,IAAIE,EAAKC,EAAMH,EAAM,IAAKI,EAAQJ,EAAM,MAExC,OADAE,EAAM,KAAK,QAAQC,EAAI,IAAKA,EAAI,MAAM,EAClCD,GAAO,GACPA,EAAM,KAAK,QAAQE,EAAM,IAAKA,EAAM,MAAM,EACtCF,GAAO,EACA,EAEFA,GAAO,EACL,EAGA,GAGNA,GAAO,GACL,IAGPA,EAAM,KAAK,QAAQE,EAAM,IAAKA,EAAM,MAAM,EACtCF,GAAO,GACA,GAEFA,GAAO,EACL,GAGA,EAGvB,EACIJ,EAAM,UAAU,aAAe,SAAUO,EAAG,CACxC,OAAO,KAAK,QAAQA,EAAE,IAAKA,EAAE,MAAM,CAC3C,EACIP,EAAM,UAAU,cAAgB,SAAUE,EAAO,CAC7C,OAAO,KAAK,aAAaA,EAAM,KAAK,GAAK,GAAK,KAAK,aAAaA,EAAM,GAAG,GAAK,CACtF,EACIF,EAAM,UAAU,WAAa,SAAUE,EAAO,CAC1C,IAAIE,EAAM,KAAK,aAAaF,CAAK,EACjC,OAAQE,GAAO,IAAMA,GAAO,GAAKA,GAAO,CAChD,EACIJ,EAAM,UAAU,MAAQ,SAAUrB,EAAKwB,EAAQ,CAC3C,OAAO,KAAK,IAAI,KAAOxB,GAAO,KAAK,IAAI,QAAUwB,CACzD,EACIH,EAAM,UAAU,QAAU,SAAUrB,EAAKwB,EAAQ,CAC7C,OAAO,KAAK,MAAM,KAAOxB,GAAO,KAAK,MAAM,QAAUwB,CAC7D,EACIH,EAAM,UAAU,SAAW,SAAUrB,EAAKwB,EAAQ,CAC1C,OAAOxB,GAAO,UACd,KAAK,MAAM,OAASA,EAAI,OACxB,KAAK,MAAM,IAAMA,EAAI,MAGrB,KAAK,MAAM,IAAMA,EACjB,KAAK,MAAM,OAASwB,EAEhC,EACIH,EAAM,UAAU,OAAS,SAAUrB,EAAKwB,EAAQ,CACxC,OAAOxB,GAAO,UACd,KAAK,IAAI,OAASA,EAAI,OACtB,KAAK,IAAI,IAAMA,EAAI,MAGnB,KAAK,IAAI,IAAMA,EACf,KAAK,IAAI,OAASwB,EAE9B,EACIH,EAAM,UAAU,OAAS,SAAUrB,EAAKwB,EAAQ,CAC5C,OAAI,KAAK,QAAQxB,EAAKwB,CAAM,GAAK,EACzB,OAAK,MAAMxB,EAAKwB,CAAM,GAAK,KAAK,QAAQxB,EAAKwB,CAAM,GAOpD,EACf,EACIH,EAAM,UAAU,YAAc,SAAUrB,EAAKwB,EAAQ,CACjD,OAAI,KAAK,QAAQxB,EAAKwB,CAAM,GAAK,EACzB,MAAK,MAAMxB,EAAKwB,CAAM,EAOvB,EACf,EACIH,EAAM,UAAU,UAAY,SAAUrB,EAAKwB,EAAQ,CAC/C,OAAI,KAAK,QAAQxB,EAAKwB,CAAM,GAAK,EACzB,MAAK,QAAQxB,EAAKwB,CAAM,EAOzB,EACf,EACIH,EAAM,UAAU,QAAU,SAAUrB,EAAKwB,EAAQ,CAC7C,MAAI,CAAC,KAAK,eACFxB,IAAQ,KAAK,MAAM,IACZwB,EAAS,KAAK,MAAM,OAAS,GAAMA,EAAS,KAAK,IAAI,OAAS,EAAI,EAG7ExB,EAAM,KAAK,MAAM,IACV,GACPA,EAAM,KAAK,IAAI,IACR,EACP,KAAK,MAAM,MAAQA,EACZwB,GAAU,KAAK,MAAM,OAAS,EAAI,GACzC,KAAK,IAAI,MAAQxB,EACVwB,GAAU,KAAK,IAAI,OAAS,EAAI,EACpC,CACf,EACIH,EAAM,UAAU,aAAe,SAAUrB,EAAKwB,EAAQ,CAClD,OAAI,KAAK,MAAM,KAAOxB,GAAO,KAAK,MAAM,QAAUwB,EACvC,GAGA,KAAK,QAAQxB,EAAKwB,CAAM,CAE3C,EACIH,EAAM,UAAU,WAAa,SAAUrB,EAAKwB,EAAQ,CAChD,OAAI,KAAK,IAAI,KAAOxB,GAAO,KAAK,IAAI,QAAUwB,EACnC,EAGA,KAAK,QAAQxB,EAAKwB,CAAM,CAE3C,EACIH,EAAM,UAAU,cAAgB,SAAUrB,EAAKwB,EAAQ,CACnD,OAAI,KAAK,IAAI,KAAOxB,GAAO,KAAK,IAAI,QAAUwB,EACnC,EAEF,KAAK,MAAM,KAAOxB,GAAO,KAAK,MAAM,QAAUwB,EAC5C,GAGA,KAAK,QAAQxB,EAAKwB,CAAM,CAE3C,EACIH,EAAM,UAAU,SAAW,SAAUQ,EAAUC,EAAS,CACpD,GAAI,KAAK,IAAI,IAAMA,EACf,IAAIJ,EAAM,CAAE,IAAKI,EAAU,EAAG,OAAQ,WACjC,KAAK,IAAI,IAAMD,EACpB,IAAIH,EAAM,CAAE,IAAKG,EAAU,OAAQ,CAAC,EACxC,GAAI,KAAK,MAAM,IAAMC,EACjB,IAAIH,EAAQ,CAAE,IAAKG,EAAU,EAAG,OAAQ,WACnC,KAAK,MAAM,IAAMD,EACtB,IAAIF,EAAQ,CAAE,IAAKE,EAAU,OAAQ,CAAC,EAC1C,OAAOR,EAAM,WAAWM,GAAS,KAAK,MAAOD,GAAO,KAAK,GAAG,CACpE,EACIL,EAAM,UAAU,OAAS,SAAUrB,EAAKwB,EAAQ,CAC5C,IAAIC,EAAM,KAAK,QAAQzB,EAAKwB,CAAM,EAClC,GAAIC,GAAO,EACP,OAAO,KACN,GAAIA,GAAO,GACZ,IAAIE,EAAQ,CAAE,IAAK3B,EAAK,OAAQwB,CAAM,MAEtC,KAAIE,EAAM,CAAE,IAAK1B,EAAK,OAAQwB,CAAM,EACxC,OAAOH,EAAM,WAAWM,GAAS,KAAK,MAAOD,GAAO,KAAK,GAAG,CACpE,EACIL,EAAM,UAAU,QAAU,UAAY,CAClC,OAAQ,KAAK,MAAM,MAAQ,KAAK,IAAI,KAAO,KAAK,MAAM,SAAW,KAAK,IAAI,MAClF,EACIA,EAAM,UAAU,YAAc,UAAY,CACtC,OAAQ,KAAK,MAAM,MAAQ,KAAK,IAAI,GAC5C,EACIA,EAAM,UAAU,MAAQ,UAAY,CAChC,OAAOA,EAAM,WAAW,KAAK,MAAO,KAAK,GAAG,CACpD,EACIA,EAAM,UAAU,aAAe,UAAY,CACvC,OAAI,KAAK,IAAI,QAAU,EACZ,IAAIA,EAAM,KAAK,MAAM,IAAK,EAAG,KAAK,IAAI,KAAK,MAAM,IAAK,KAAK,IAAI,IAAM,CAAC,EAAG,CAAC,EAE1E,IAAIA,EAAM,KAAK,MAAM,IAAK,EAAG,KAAK,IAAI,IAAK,CAAC,CAC/D,EACIA,EAAM,UAAU,cAAgB,SAAUU,EAAS,CAC/C,IAAIC,EAAiBD,EAAQ,yBAAyB,KAAK,KAAK,EAC5DE,EAAeF,EAAQ,yBAAyB,KAAK,GAAG,EAC5D,OAAO,IAAIV,EAAMW,EAAe,IAAKA,EAAe,OAAQC,EAAa,IAAKA,EAAa,MAAM,CACzG,EACIZ,EAAM,UAAU,OAAS,SAAUrB,EAAKwB,EAAQ,CAC5C,KAAK,MAAM,KAAOxB,EAClB,KAAK,MAAM,QAAUwB,EACrB,KAAK,IAAI,KAAOxB,EAChB,KAAK,IAAI,QAAUwB,CAC3B,EACWH,CACX,EAAC,EACDA,EAAM,WAAa,SAAUM,EAAOD,EAAK,CACrC,OAAO,IAAIL,EAAMM,EAAM,IAAKA,EAAM,OAAQD,EAAI,IAAKA,EAAI,MAAM,CACjE,EACAL,EAAM,cAAgBH,EACtBG,EAAM,cAAgB,SAAUF,EAAIC,EAAI,CACpC,OAAOD,EAAG,IAAMC,EAAG,KAAOD,EAAG,OAASC,EAAG,MAC7C,EACAtD,EAAQ,MAAQuD,CAEhB,CAAC,EAED,IAAI,OAAO,aAAa,CAAE,EAAE,SAASxD,EAASC,EAAS5B,EAAO,CAC9D,IAAIgB,EAAMW,EAAQ,WAAW,EACzBZ,EAAeY,EAAQ,qBAAqB,EAAE,aAC9CqE,EAAwB,UAAY,CACpC,SAASA,EAAOC,EAAKnC,EAAKwB,EAAQ,CAC9B,KAAK,UAAY,KAAK,SAAS,KAAK,IAAI,EACxC,KAAK,OAAOW,CAAG,EACX,OAAOX,EAAU,IACjB,KAAK,YAAYxB,EAAI,IAAKA,EAAI,MAAM,EAEpC,KAAK,YAAYA,EAAKwB,CAAM,CACnC,CACD,OAAAU,EAAO,UAAU,YAAc,UAAY,CACvC,OAAO,KAAK,wBAAwB,KAAK,IAAK,KAAK,MAAM,CACjE,EACIA,EAAO,UAAU,YAAc,UAAY,CACvC,OAAO,KAAK,QACpB,EACIA,EAAO,UAAU,SAAW,SAAUpC,EAAO,CACzC,GAAI,EAAAA,EAAM,MAAM,KAAOA,EAAM,IAAI,KAAOA,EAAM,MAAM,KAAO,KAAK,MAE5D,EAAAA,EAAM,MAAM,IAAM,KAAK,KAE3B,KAAIsC,EAAQC,EAAqBvC,EAAO,CAAE,IAAK,KAAK,IAAK,OAAQ,KAAK,MAAQ,EAAE,KAAK,YAAY,EACjG,KAAK,YAAYsC,EAAM,IAAKA,EAAM,OAAQ,EAAI,EACtD,EACIF,EAAO,UAAU,YAAc,SAAUlC,EAAKwB,EAAQc,EAAQ,CAC1D,IAAIC,EAUJ,GATID,EACAC,EAAM,CACF,IAAKvC,EACL,OAAQwB,CACxB,EAGYe,EAAM,KAAK,wBAAwBvC,EAAKwB,CAAM,EAE9C,OAAK,KAAOe,EAAI,KAAO,KAAK,QAAUA,EAAI,QAE9C,KAAIzB,EAAM,CACN,IAAK,KAAK,IACV,OAAQ,KAAK,MACzB,EACQ,KAAK,IAAMyB,EAAI,IACf,KAAK,OAASA,EAAI,OAClB,KAAK,QAAQ,SAAU,CACnB,IAAKzB,EACL,MAAOyB,CACnB,CAAS,EACT,EACIL,EAAO,UAAU,OAAS,UAAY,CAClC,KAAK,SAAS,IAAI,SAAU,KAAK,SAAS,CAClD,EACIA,EAAO,UAAU,OAAS,SAAUC,EAAK,CACrC,KAAK,SAAWA,GAAO,KAAK,SAC5B,KAAK,SAAS,GAAG,SAAU,KAAK,SAAS,CACjD,EACID,EAAO,UAAU,wBAA0B,SAAUlC,EAAKwB,EAAQ,CAC9D,IAAIe,EAAM,CAAA,EACV,OAAIvC,GAAO,KAAK,SAAS,UAAS,GAC9BuC,EAAI,IAAM,KAAK,IAAI,EAAG,KAAK,SAAS,YAAc,CAAC,EACnDA,EAAI,OAAS,KAAK,SAAS,QAAQA,EAAI,GAAG,EAAE,QAEvCvC,EAAM,GACXuC,EAAI,IAAM,EACVA,EAAI,OAAS,IAGbA,EAAI,IAAMvC,EACVuC,EAAI,OAAS,KAAK,IAAI,KAAK,SAAS,QAAQA,EAAI,GAAG,EAAE,OAAQ,KAAK,IAAI,EAAGf,CAAM,CAAC,GAEhFA,EAAS,IACTe,EAAI,OAAS,GACVA,CACf,EACWL,CACX,EAAC,EACDA,EAAO,UAAU,aAAe,GAChChF,EAAI,UAAUgF,EAAO,UAAWjF,CAAY,EAC5C,SAASuF,EAAeC,EAAQC,EAAQC,EAAoB,CACxD,IAAIC,EAAcD,EAAqBF,EAAO,QAAUC,EAAO,OAASD,EAAO,OAASC,EAAO,OAC/F,OAAQD,EAAO,IAAMC,EAAO,KAASD,EAAO,KAAOC,EAAO,KAAOE,CACrE,CACA,SAASP,EAAqBvC,EAAOsC,EAAOS,EAAa,CACrD,IAAIC,EAAgBhD,EAAM,QAAU,SAChCiD,GAAiBD,EAAgB,EAAI,KAAOhD,EAAM,IAAI,IAAMA,EAAM,MAAM,KACxEkD,GAAiBF,EAAgB,EAAI,KAAOhD,EAAM,IAAI,OAASA,EAAM,MAAM,QAC3EmD,EAAanD,EAAM,MACnBoD,EAAWJ,EAAgBG,EAAanD,EAAM,IAClD,OAAI0C,EAAeJ,EAAOa,EAAYJ,CAAW,EACtC,CACH,IAAKT,EAAM,IACX,OAAQA,EAAM,MAC1B,EAEQI,EAAeU,EAAUd,EAAO,CAACS,CAAW,EACrC,CACH,IAAKT,EAAM,IAAMW,EACjB,OAAQX,EAAM,QAAUA,EAAM,KAAOc,EAAS,IAAMF,EAAgB,EAChF,EAEW,CACH,IAAKC,EAAW,IAChB,OAAQA,EAAW,MAC3B,CACA,CACAnF,EAAQ,OAASoE,CAEjB,CAAC,EAED,IAAI,OAAO,eAAe,CAAE,EAAE,SAASrE,EAASC,EAAS5B,EAAO,CAChE,IAAIgB,EAAMW,EAAQ,WAAW,EACzBsF,EAAatF,EAAQ,eAAe,EAAE,WACtCZ,EAAeY,EAAQ,qBAAqB,EAAE,aAC9CwD,EAAQxD,EAAQ,SAAS,EAAE,MAC3BqE,EAASrE,EAAQ,UAAU,EAAE,OAC7BuF,EAA0B,UAAY,CACtC,SAASA,EAASC,EAAa,CAC3B,KAAK,OAAS,CAAC,EAAE,EACbA,EAAY,SAAW,EACvB,KAAK,OAAS,CAAC,EAAE,EAEZ,MAAM,QAAQA,CAAW,EAC9B,KAAK,kBAAkB,CAAE,IAAK,EAAG,OAAQ,CAAC,EAAIA,CAAW,EAGzD,KAAK,OAAO,CAAE,IAAK,EAAG,OAAQ,CAAC,EAAIA,CAAW,CAErD,CACD,OAAAD,EAAS,UAAU,SAAW,SAAUE,EAAM,CAC1C,IAAIC,EAAM,KAAK,UAAS,EAAK,EAC7B,KAAK,OAAO,IAAIlC,EAAM,EAAG,EAAGkC,EAAK,KAAK,QAAQA,CAAG,EAAE,MAAM,CAAC,EAC1D,KAAK,OAAO,CAAE,IAAK,EAAG,OAAQ,CAAG,EAAED,GAAQ,EAAE,CACrD,EACIF,EAAS,UAAU,SAAW,UAAY,CACtC,OAAO,KAAK,YAAa,EAAC,KAAK,KAAK,oBAAmB,CAAE,CACjE,EACIA,EAAS,UAAU,aAAe,SAAUpD,EAAKwB,EAAQ,CACrD,OAAO,IAAIU,EAAO,KAAMlC,EAAKwB,CAAM,CAC3C,EACI4B,EAAS,UAAU,eAAiB,SAAUE,EAAM,CAChD,IAAIE,EAAQF,EAAK,MAAM,mBAAmB,EAC1C,KAAK,aAAeE,EAAQA,EAAM,CAAC,EAAI;AAAA,EACvC,KAAK,QAAQ,mBAAmB,CACxC,EACIJ,EAAS,UAAU,oBAAsB,UAAY,CACjD,OAAQ,KAAK,aAAY,CACrB,IAAK,UACD,MAAO;AAAA,EACX,IAAK,OACD,MAAO;AAAA,EACX,QACI,OAAO,KAAK,cAAgB;AAAA,CACnC,CACT,EACIA,EAAS,UAAU,eAAiB,SAAUK,EAAa,CACnD,KAAK,eAAiBA,IAE1B,KAAK,aAAeA,EACpB,KAAK,QAAQ,mBAAmB,EACxC,EACIL,EAAS,UAAU,eAAiB,UAAY,CAC5C,OAAO,KAAK,YACpB,EACIA,EAAS,UAAU,UAAY,SAAUE,EAAM,CAC3C,OAAQA,GAAQ;AAAA,GAAUA,GAAQ,MAAQA,GAAQ;AAAA,CAC1D,EACIF,EAAS,UAAU,QAAU,SAAUpD,EAAK,CACxC,OAAO,KAAK,OAAOA,CAAG,GAAK,EACnC,EACIoD,EAAS,UAAU,SAAW,SAAUvB,EAAUC,EAAS,CACvD,OAAO,KAAK,OAAO,MAAMD,EAAUC,EAAU,CAAC,CACtD,EACIsB,EAAS,UAAU,YAAc,UAAY,CACzC,OAAO,KAAK,SAAS,EAAG,KAAK,UAAW,CAAA,CAChD,EACIA,EAAS,UAAU,UAAY,UAAY,CACvC,OAAO,KAAK,OAAO,MAC3B,EACIA,EAAS,UAAU,aAAe,SAAU7B,EAAO,CAC/C,OAAO,KAAK,iBAAiBA,CAAK,EAAE,KAAK,KAAK,oBAAmB,CAAE,CAC3E,EACI6B,EAAS,UAAU,iBAAmB,SAAU7B,EAAO,CACnD,IAAIrB,EACJ,GAAIqB,EAAM,MAAM,MAAQA,EAAM,IAAI,IAC9BrB,EAAQ,CAAC,KAAK,QAAQqB,EAAM,MAAM,GAAG,EAAE,UAAUA,EAAM,MAAM,OAAQA,EAAM,IAAI,MAAM,CAAC,MAErF,CACDrB,EAAQ,KAAK,SAASqB,EAAM,MAAM,IAAKA,EAAM,IAAI,GAAG,EACpDrB,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAK,IAAI,UAAUqB,EAAM,MAAM,MAAM,EACxD,IAAI1C,EAAIqB,EAAM,OAAS,EACnBqB,EAAM,IAAI,IAAMA,EAAM,MAAM,KAAO1C,IACnCqB,EAAMrB,CAAC,EAAIqB,EAAMrB,CAAC,EAAE,UAAU,EAAG0C,EAAM,IAAI,MAAM,GAEzD,OAAOrB,CACf,EACIkD,EAAS,UAAU,YAAc,SAAUpD,EAAKE,EAAO,CACnD,eAAQ,KAAK,oFAAoF,EAC1F,KAAK,gBAAgBF,EAAKE,CAAK,CAC9C,EACIkD,EAAS,UAAU,YAAc,SAAUvB,EAAUC,EAAS,CAC1D,eAAQ,KAAK,oFAAoF,EAC1F,KAAK,gBAAgBD,EAAUC,CAAO,CACrD,EACIsB,EAAS,UAAU,cAAgB,SAAUM,EAAU,CACnD,eAAQ,KAAK,iGAAiG,EACvG,KAAK,kBAAkBA,EAAU,CAAC,GAAI,EAAE,CAAC,CACxD,EACIN,EAAS,UAAU,OAAS,SAAUM,EAAUJ,EAAM,CAClD,OAAI,KAAK,UAAS,GAAM,GACpB,KAAK,eAAeA,CAAI,EACrB,KAAK,kBAAkBI,EAAU,KAAK,OAAOJ,CAAI,CAAC,CACjE,EACIF,EAAS,UAAU,aAAe,SAAUM,EAAUJ,EAAM,CACxD,IAAI3B,EAAQ,KAAK,WAAW+B,EAAS,IAAKA,EAAS,MAAM,EACrDhC,EAAM,KAAK,IAAIgC,EAAS,IAAKA,EAAS,OAASJ,EAAK,MAAM,EAC9D,YAAK,WAAW,CACZ,MAAO3B,EACP,IAAKD,EACL,OAAQ,SACR,MAAO,CAAC4B,CAAI,CACf,EAAE,EAAI,EACA,KAAK,SAAS5B,CAAG,CAChC,EACI0B,EAAS,UAAU,WAAa,SAAUpD,EAAKwB,EAAQ,CACnD,IAAImC,EAAS,KAAK,YACd3D,IAAQ,OACRA,EAAM2D,EAED3D,EAAM,EACXA,EAAM,EAEDA,GAAO2D,IACZ3D,EAAM2D,EAAS,EACfnC,EAAS,QAEb,IAAI/F,EAAO,KAAK,QAAQuE,CAAG,EAC3B,OAAIwB,GAAU,OACVA,EAAS/F,EAAK,QAClB+F,EAAS,KAAK,IAAI,KAAK,IAAIA,EAAQ,CAAC,EAAG/F,EAAK,MAAM,EAC3C,CAAE,IAAKuE,EAAK,OAAQwB,CAAM,CACzC,EACI4B,EAAS,UAAU,SAAW,SAAUb,EAAK,CACzC,MAAO,CAAE,IAAKA,EAAI,IAAK,OAAQA,EAAI,OAC3C,EACIa,EAAS,UAAU,IAAM,SAAUpD,EAAKwB,EAAQ,CAC5C,MAAO,CAAE,IAAKxB,EAAK,OAAQwB,CAAM,CACzC,EACI4B,EAAS,UAAU,cAAgB,SAAUM,EAAU,CACnD,IAAIC,EAAS,KAAK,YAClB,OAAID,EAAS,KAAOC,GAChBD,EAAS,IAAM,KAAK,IAAI,EAAGC,EAAS,CAAC,EACrCD,EAAS,OAAS,KAAK,QAAQC,EAAS,CAAC,EAAE,SAG3CD,EAAS,IAAM,KAAK,IAAI,EAAGA,EAAS,GAAG,EACvCA,EAAS,OAAS,KAAK,IAAI,KAAK,IAAIA,EAAS,OAAQ,CAAC,EAAG,KAAK,QAAQA,EAAS,GAAG,EAAE,MAAM,GAEvFA,CACf,EACIN,EAAS,UAAU,gBAAkB,SAAUpD,EAAKE,EAAO,CACvDF,EAAM,KAAK,IAAI,KAAK,IAAIA,EAAK,CAAC,EAAG,KAAK,UAAS,CAAE,EACjD,IAAIwB,EAAS,EACTxB,EAAM,KAAK,aACXE,EAAQA,EAAM,OAAO,CAAC,EAAE,CAAC,EACzBsB,EAAS,IAGTtB,EAAQ,CAAC,EAAE,EAAE,OAAOA,CAAK,EACzBF,IACAwB,EAAS,KAAK,OAAOxB,CAAG,EAAE,QAE9B,KAAK,kBAAkB,CAAE,IAAKA,EAAK,OAAQwB,CAAM,EAAItB,CAAK,CAClE,EACIkD,EAAS,UAAU,kBAAoB,SAAUM,EAAUxD,EAAO,CAC9D,IAAIyB,EAAQ,KAAK,WAAW+B,EAAS,IAAKA,EAAS,MAAM,EACrDhC,EAAM,CACN,IAAKC,EAAM,IAAMzB,EAAM,OAAS,EAChC,QAASA,EAAM,QAAU,EAAIyB,EAAM,OAAS,GAAKzB,EAAMA,EAAM,OAAS,CAAC,EAAE,MACrF,EACQ,YAAK,WAAW,CACZ,MAAOyB,EACP,IAAKD,EACL,OAAQ,SACR,MAAOxB,CACnB,CAAS,EACM,KAAK,SAASwB,CAAG,CAChC,EACI0B,EAAS,UAAU,OAAS,SAAU7B,EAAO,CACzC,IAAII,EAAQ,KAAK,WAAWJ,EAAM,MAAM,IAAKA,EAAM,MAAM,MAAM,EAC3DG,EAAM,KAAK,WAAWH,EAAM,IAAI,IAAKA,EAAM,IAAI,MAAM,EACzD,YAAK,WAAW,CACZ,MAAOI,EACP,IAAKD,EACL,OAAQ,SACR,MAAO,KAAK,iBAAiB,CAAE,MAAOC,EAAO,IAAKD,EAAK,CACnE,CAAS,EACM,KAAK,SAASC,CAAK,CAClC,EACIyB,EAAS,UAAU,aAAe,SAAUpD,EAAKC,EAAaG,EAAW,CACrE,IAAIuB,EAAQ,KAAK,WAAW3B,EAAKC,CAAW,EACxCyB,EAAM,KAAK,WAAW1B,EAAKI,CAAS,EACxC,YAAK,WAAW,CACZ,MAAOuB,EACP,IAAKD,EACL,OAAQ,SACR,MAAO,KAAK,iBAAiB,CAAE,MAAOC,EAAO,IAAKD,EAAK,CAC1D,EAAE,EAAI,EACA,KAAK,SAASC,CAAK,CAClC,EACIyB,EAAS,UAAU,gBAAkB,SAAUvB,EAAUC,EAAS,CAC9DD,EAAW,KAAK,IAAI,KAAK,IAAI,EAAGA,CAAQ,EAAG,KAAK,UAAW,EAAG,CAAC,EAC/DC,EAAU,KAAK,IAAI,KAAK,IAAI,EAAGA,CAAO,EAAG,KAAK,UAAW,EAAG,CAAC,EAC7D,IAAI8B,EAAqB9B,GAAW,KAAK,UAAS,EAAK,GAAKD,EAAW,EACnEgC,EAAoB/B,EAAU,KAAK,UAAS,EAAK,EACjDR,EAAYsC,EAAqB/B,EAAW,EAAIA,EAChDiC,EAAYF,EAAqB,KAAK,QAAQtC,CAAQ,EAAE,OAAS,EACjEjB,EAAUwD,EAAoB/B,EAAU,EAAIA,EAC5CiC,EAAUF,EAAoB,EAAI,KAAK,QAAQxD,CAAM,EAAE,OACvDkB,EAAQ,IAAIF,EAAMC,EAAUwC,EAAUzD,EAAQ0D,CAAM,EACpDC,EAAe,KAAK,OAAO,MAAMnC,EAAUC,EAAU,CAAC,EAC1D,YAAK,WAAW,CACZ,MAAOP,EAAM,MACb,IAAKA,EAAM,IACX,OAAQ,SACR,MAAO,KAAK,iBAAiBA,CAAK,CAC9C,CAAS,EACMyC,CACf,EACIZ,EAAS,UAAU,cAAgB,SAAUpD,EAAK,CAC1CA,EAAM,KAAK,UAAW,EAAG,GAAKA,GAAO,GACrC,KAAK,WAAW,CACZ,MAAO,KAAK,IAAIA,EAAK,KAAK,QAAQA,CAAG,EAAE,MAAM,EAC7C,IAAK,KAAK,IAAIA,EAAM,EAAG,CAAC,EACxB,OAAQ,SACR,MAAO,CAAC,GAAI,EAAE,CAC9B,CAAa,CAEb,EACIoD,EAAS,UAAU,QAAU,SAAU7B,EAAO+B,EAAM,CAGhD,GAFM/B,aAAiBF,IACnBE,EAAQF,EAAM,WAAWE,EAAM,MAAOA,EAAM,GAAG,GAC/C+B,EAAK,SAAW,GAAK/B,EAAM,QAAS,EACpC,OAAOA,EAAM,MACjB,GAAI+B,GAAQ,KAAK,aAAa/B,CAAK,EAC/B,OAAOA,EAAM,IACjB,KAAK,OAAOA,CAAK,EACjB,IAAIG,EACJ,OAAI4B,EACA5B,EAAM,KAAK,OAAOH,EAAM,MAAO+B,CAAI,EAGnC5B,EAAMH,EAAM,MAETG,CACf,EACI0B,EAAS,UAAU,YAAc,SAAUa,EAAQ,CAC/C,QAASxH,EAAI,EAAGA,EAAIwH,EAAO,OAAQxH,IAC/B,KAAK,WAAWwH,EAAOxH,CAAC,CAAC,CAErC,EACI2G,EAAS,UAAU,aAAe,SAAUa,EAAQ,CAChD,QAASxH,EAAIwH,EAAO,OAAS,EAAGxH,GAAK,EAAGA,IACpC,KAAK,YAAYwH,EAAOxH,CAAC,CAAC,CAEtC,EACI2G,EAAS,UAAU,WAAa,SAAUtD,EAAOC,EAAe,CAC5D,IAAImE,EAAWpE,EAAM,QAAU,UAC3BoE,EAAWpE,EAAM,MAAM,QAAU,GAAK,CAACA,EAAM,MAAM,CAAC,EAClD,CAACuB,EAAM,cAAcvB,EAAM,MAAOA,EAAM,GAAG,KAG7CoE,GAAYpE,EAAM,MAAM,OAAS,IACjC,KAAK,yBAAyBA,EAAO,GAAK,GAG1CqD,EAAW,KAAK,OAAQrD,EAAOC,CAAa,EAC5C,KAAK,QAAQ,SAAUD,CAAK,GAExC,EACIsD,EAAS,UAAU,gBAAkB,SAAUtD,EAAO,CAClD,IAAIqE,EAAY,KAAK,OAAO,QACxBrE,EAAM,QAAU,UAAYA,EAAM,MAAM,IAAMqE,GAAarE,EAAM,IAAI,IAAMqE,GACxErE,EAAM,QAAU,UAAYA,EAAM,MAAM,KAAOqE,IAClD,KAAK,WAAWrE,CAAK,CAEjC,EACIsD,EAAS,UAAU,yBAA2B,SAAUtD,EAAOsE,EAAK,CAKhE,QAJIlE,EAAQJ,EAAM,MACd,EAAII,EAAM,OAASkE,EAAM,EACzBpE,EAAMF,EAAM,MAAM,IAClB0B,EAAS1B,EAAM,MAAM,OAChBuE,EAAO,EAAGC,EAAK,EAAGD,EAAO,EAAGA,EAAOC,EAAI,CAC5CA,GAAMF,EAAM,EACZ,IAAIG,EAAQrE,EAAM,MAAMmE,EAAMC,CAAE,EAChCC,EAAM,KAAK,EAAE,EACb,KAAK,WAAW,CACZ,MAAO,KAAK,IAAIvE,EAAMqE,EAAM7C,CAAM,EAClC,IAAK,KAAK,IAAIxB,EAAMsE,EAAI9C,EAAS,CAAC,EAClC,OAAQ1B,EAAM,OACd,MAAOyE,CACV,EAAE,EAAI,EAEXzE,EAAM,MAAQI,EAAM,MAAMmE,CAAI,EAC9BvE,EAAM,MAAM,IAAME,EAAMqE,EACxBvE,EAAM,MAAM,OAAS0B,EACrB,KAAK,WAAW1B,EAAO,EAAI,CACnC,EACIsD,EAAS,UAAU,YAAc,SAAUtD,EAAO,CAC9C,KAAK,gBAAgB,CACjB,MAAO,KAAK,SAASA,EAAM,KAAK,EAChC,IAAK,KAAK,SAASA,EAAM,GAAG,EAC5B,OAASA,EAAM,QAAU,SAAW,SAAW,SAC/C,MAAOA,EAAM,MAAM,MAAO,CACtC,CAAS,CACT,EACIsD,EAAS,UAAU,gBAAkB,SAAUnC,EAAOK,EAAU,CAG5D,QAFIpB,EAAQ,KAAK,QAAU,KAAK,YAAW,EACvCsE,EAAgB,KAAK,oBAAmB,EAAG,OACtC/H,EAAI6E,GAAY,EAAGzC,EAAIqB,EAAM,OAAQzD,EAAIoC,EAAGpC,IAEjD,GADAwE,GAASf,EAAMzD,CAAC,EAAE,OAAS+H,EACvBvD,EAAQ,EACR,MAAO,CAAE,IAAKxE,EAAG,OAAQwE,EAAQf,EAAMzD,CAAC,EAAE,OAAS+H,GAE3D,MAAO,CAAE,IAAK3F,EAAI,EAAG,OAAQoC,EAAQf,EAAMrB,EAAI,CAAC,EAAE,OAAS2F,CAAa,CAChF,EACIpB,EAAS,UAAU,gBAAkB,SAAUb,EAAKjB,EAAU,CAK1D,QAJIpB,EAAQ,KAAK,QAAU,KAAK,YAAW,EACvCsE,EAAgB,KAAK,oBAAmB,EAAG,OAC3CvD,EAAQ,EACRjB,EAAM,KAAK,IAAIuC,EAAI,IAAKrC,EAAM,MAAM,EAC/BzD,EAAI6E,GAAY,EAAG7E,EAAIuD,EAAK,EAAEvD,EACnCwE,GAASf,EAAMzD,CAAC,EAAE,OAAS+H,EAC/B,OAAOvD,EAAQsB,EAAI,MAC3B,EACIa,EAAS,UAAU,OAAS,SAAUE,EAAM,CACxC,OAAOA,EAAK,MAAM,YAAY,CACtC,EACWF,CACX,EAAC,EACDA,EAAS,UAAU,aAAe,GAClCA,EAAS,UAAU,aAAe,OAClClG,EAAI,UAAUkG,EAAS,UAAWnG,CAAY,EAC9Ca,EAAQ,SAAWsF,CAEnB,CAAC,EAED,IAAI,OAAO,oBAAoB,CAAA,EAAI,SAASvF,EAASC,EAAS5B,EAAQ,CAGtE,IAAIkH,EAAWvF,EAAQ,aAAa,EAAE,SAClC4G,EAAO5G,EAAQ,aAAa,EAE5B6G,EAAS5G,EAAQ,OAAS,SAASN,EAAQ,CAC3C,KAAK,OAASA,EACd,IAAI2E,EAAM,KAAK,IAAM,IAAIiB,EAAS,EAAE,EAEhCuB,EAAiB,KAAK,eAAiBF,EAAK,YAAY,KAAK,SAAS,KAAK,IAAI,CAAC,EAEhF7E,EAAQ,KACZpC,EAAO,GAAG,SAAU,SAASC,EAAG,CAC5B,IAAIL,EAAOK,EAAE,KACb,GAAIL,EAAK,CAAC,EAAE,MACR+E,EAAI,YAAY/E,CAAI,MAEpB,SAASX,EAAI,EAAGA,EAAIW,EAAK,OAAQX,GAAK,EAAG,CACrC,IAAImI,EAAGjJ,EAOP,GANI,MAAM,QAAQyB,EAAKX,EAAE,CAAC,CAAC,EACvBmI,EAAI,CAAC,OAAQ,SAAU,MAAOxH,EAAKX,CAAC,EAAG,MAAOW,EAAKX,EAAE,CAAC,CAAC,EAEvDmI,EAAI,CAAC,OAAQ,SAAU,MAAOxH,EAAKX,CAAC,EAAG,IAAKW,EAAKX,EAAE,CAAC,CAAC,GAGpDmI,EAAE,QAAU,SAAWA,EAAE,MAAQA,EAAE,KAAK,KAAOzC,EAAI,OAAO,OAC3D,MAAAxG,EAAM,IAAI,MAAM,eAAe,EAC/BA,EAAI,KAAO,CACP,KAAMiE,EAAM,MACZ,YAAauC,EAAI,OAAO,OACxB,MAAOyC,EAAE,MACT,IAAKA,EAAE,GAC/B,EAC0BjJ,EAGVwG,EAAI,WAAWyC,EAAG,EAAI,EAG9B,GAAIhF,EAAM,SACN,OAAO+E,EAAe,SAAS/E,EAAM,QAAQ,EACjDA,EAAM,SAAQ,CACtB,CAAK,CACL,GAEC,UAAW,CAER,KAAK,SAAW,IAEhB,KAAK,WAAa,SAASF,EAAS,CAChC,KAAK,SAAWA,CACxB,EAEI,KAAK,SAAW,SAASR,EAAO,CAC5B,KAAK,IAAI,SAASA,CAAK,EACvB,KAAK,eAAe,SAAS,KAAK,QAAQ,CAClD,EAEI,KAAK,SAAW,SAAS7B,EAAY,CACjC,KAAK,OAAO,SAAS,KAAK,IAAI,SAAQ,EAAIA,CAAU,CAC5D,EAEI,KAAK,SAAW,UAAW,CAC/B,EAEI,KAAK,UAAY,UAAW,CACxB,OAAO,KAAK,eAAe,WACnC,CAEA,GAAG,KAAKqH,EAAO,SAAS,CAExB,CAAC,EAED,IAAI,OAAO,0BAA0B,CAAA,EAAI,SAAS7G,EAASC,EAAS5B,EAAQ,CAC5EA,EAAO,QAAW,SAASuB,EAAEoH,EAAEC,EAAEC,EAAE,CAAC,SAASC,EAAEC,EAAE,EAAE,CAAC,GAAG,CAACH,EAAEG,CAAC,EAAE,CAAC,GAAG,CAACJ,EAAEI,CAAC,EAAE,CAAC,IAAI5G,EAAE,OAAOR,GAAS,YAAYA,EAAQ,GAAG,CAAC,GAAGQ,EAAE,OAAOA,EAAE4G,EAAE,EAAE,EAAE,GAAGxI,EAAE,OAAOA,EAAEwI,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,uBAAuBA,EAAE,GAAG,EAAE,IAAIC,EAAEJ,EAAEG,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAA,EAAEJ,EAAEI,CAAC,EAAE,CAAC,EAAE,KAAKC,EAAE,QAAQ,SAASzH,EAAE,CAAC,IAAIqH,EAAED,EAAEI,CAAC,EAAE,CAAC,EAAExH,CAAC,EAAE,OAAOuH,EAAEF,GAAIrH,CAAC,CAAC,EAAEyH,EAAEA,EAAE,QAAQzH,EAAEoH,EAAEC,EAAEC,CAAC,EAAE,OAAOD,EAAEG,CAAC,EAAE,OAAO,CAA2C,QAAtCxI,EAAE,OAAOoB,GAAS,YAAYA,EAAgBoH,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAID,EAAED,EAAEE,CAAC,CAAC,EAAE,OAAOD,CAAC,EAAG,CAC1a,EAAE,CAAC,SAASG,EAAQjJ,EAAO4B,EAAQ,CACnC,SAASsH,EAAcC,EAAM,CAC5B,GAAIA,EAAK,eAAiB,+BACzB,OAAOA,EAAK,YAAc,UACtBA,EAAK,YAAc,WACnBA,EAAK,YAAc,WACnBA,EAAK,YAAc,UACnBA,EAAK,YAAc,SACnBA,EAAK,YAAc,MACnBA,EAAK,YAAc,KAExB,GAAIA,EAAK,eAAiB,qCACzB,OAAOA,EAAK,YAAc,MACtBA,EAAK,YAAc,MACnBA,EAAK,YAAc,MACnBA,EAAK,YAAc,MACnBA,EAAK,YAAc,SACnBA,EAAK,YAAc,iBAExB,GAAIA,EAAK,eAAiB,6BACzB,OAAOA,EAAK,YAAc,iBACtBA,EAAK,YAAc,QACnBA,EAAK,YAAc,OAEzB,CAEA,SAASC,EAAsBD,EAAM,CACpC,OAAOD,EAAcC,CAAI,GACpBA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,MAC3EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,IACjF,CAEA,SAASE,EAAmBF,EAAM,CACjC,OAAQA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,SAC9EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,MACjF,CAEA,SAASG,EAAuBH,EAAM,CACrC,OAAQA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,SAC9EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,SAC3EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,SAC3EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,MACjF,CAEA,SAASI,EAAsBJ,EAAM,CACpC,OAAQA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,MAC9EA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,MACjF,CAEA,SAASK,EAAoBL,EAAM,CAClC,OAAOD,EAAcC,CAAI,GACpBA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,QACjF,CAEA,SAASM,EAAoBN,EAAM,CAClC,MAAO,EAAEA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,aAChF,EAAEA,EAAK,eAAiB,gCAAkCA,EAAK,YAAc,SAClF,CACA,SAASO,GAAe,CACvB,KAAK,SAAW,GAChB,KAAK,SAAW,KAChB,KAAK,YAAc,KACnB,KAAK,YAAc,IACpB,CACAA,EAAa,UAAU,SAAW,SAASC,EAAWC,EAAU,CAC/D,QAASrJ,EAAI,KAAK,SAAS,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACnD,IAAI4I,EAAO,KAAK,SAAS5I,CAAC,EAC1B,GAAI4I,EAAK,YAAcQ,EACtB,MAAO,GACR,GAAIC,EAAST,CAAI,EAChB,MAAO,GAEV,EACAO,EAAa,UAAU,KAAO,SAASG,EAAM,CAC5C,KAAK,SAAS,KAAKA,CAAI,CACxB,EACAH,EAAa,UAAU,gBAAkB,SAASG,EAAM,CACvD,KAAK,SAAWA,EAAK,KACrB,KAAK,KAAKA,CAAI,CACf,EACAH,EAAa,UAAU,gBAAkB,SAASG,EAAM,CACvD,KAAK,YAAcA,EAAK,KACxB,KAAK,KAAKA,CAAI,CACf,EACAH,EAAa,UAAU,gBAAkB,SAASG,EAAM,CACvD,KAAK,YAAcA,EAAK,KACxB,KAAK,KAAKA,CAAI,CACf,EACAH,EAAa,UAAU,IAAM,UAAW,CACvC,OAAO,KAAK,SAAS,KACtB,EACAA,EAAa,UAAU,OAAS,SAASG,EAAM,CAC9C,KAAK,SAAS,OAAO,KAAK,SAAS,QAAQA,CAAI,EAAG,CAAC,CACpD,EACAH,EAAa,UAAU,eAAiB,SAASC,EAAW,CAC3D,IAAIG,EACJ,GACCA,EAAU,KAAK,YACPA,EAAQ,WAAaH,EAC/B,EAEAD,EAAa,UAAU,yBAA2B,UAAW,CAC5D,KAAO,CAACL,EAAmB,KAAK,GAAG,GAClC,KAAK,IAAG,CACV,EAEAK,EAAa,UAAU,6BAA+B,UAAW,CAChE,KAAO,CAACJ,EAAuB,KAAK,GAAG,GACtC,KAAK,IAAG,CACV,EAEAI,EAAa,UAAU,4BAA8B,UAAW,CAC/D,KAAO,CAACH,EAAsB,KAAK,GAAG,GACrC,KAAK,IAAG,CACV,EACAG,EAAa,UAAU,KAAO,SAAS3E,EAAO,CAC7C,OAAO,KAAK,SAASA,CAAK,CAC3B,EACA2E,EAAa,UAAU,SAAW,SAASI,EAAS,CACnD,OAAO,KAAK,SAAS,QAAQA,CAAO,IAAM,EAC3C,EACAJ,EAAa,UAAU,QAAU,SAASC,EAAW,CACpD,OAAO,KAAK,SAASA,EAAWT,CAAa,CAC9C,EACAQ,EAAa,UAAU,gBAAkB,SAASC,EAAW,CAC5D,OAAO,KAAK,SAASA,EAAWP,CAAqB,CACtD,EACAM,EAAa,UAAU,aAAe,SAASC,EAAW,CACzD,OAAO,KAAK,SAASA,EAAWN,CAAkB,CACnD,EACAK,EAAa,UAAU,cAAgB,SAASC,EAAW,CAC1D,OAAO,KAAK,SAASA,EAAWH,CAAmB,CACpD,EACAE,EAAa,UAAU,cAAgB,SAASC,EAAW,CAC1D,OAAO,KAAK,SAASA,EAAWF,CAAmB,CACpD,EACAC,EAAa,UAAU,gCAAkC,UAAW,CACnE,QAASnJ,EAAI,KAAK,SAAS,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACnD,IAAI4I,EAAO,KAAK,SAAS5I,CAAC,EAC1B,GAAI4I,EAAK,iBAAkB,EAC1B,MAAO,GACR,GAAID,EAAcC,CAAI,EACrB,MAAO,GAEV,EACAO,EAAa,UAAU,kCAAoC,SAASI,EAAS,CAE5E,QADIC,EAAgB,KACXxJ,EAAI,KAAK,SAAS,OAAS,EAAGA,GAAK,EAAGA,IAAK,CACnD,IAAI4I,EAAO,KAAK,SAAS5I,CAAC,EAC1B,GAAI4I,EAAK,OAASW,EACjB,MACGX,EAAK,UAAW,IACnBY,EAAgBZ,GAEf,OAAOY,CACX,EACAL,EAAa,UAAU,UAAY,SAASC,EAAW,CACtD,QAASpJ,EAAI,KAAK,SAAS,OAAS,EAAGA,GAAK,EAAGA,IAC9C,GAAI,KAAK,SAASA,CAAC,EAAE,WAAaoJ,EACjC,OAAOpJ,EAEN,MAAO,EACX,EAEAmJ,EAAa,UAAU,0BAA4B,SAASpG,EAAU,CAGrE,QAFI0G,EAAW,GACXF,EACG,CAACE,GACPF,EAAU,KAAK,SAAS,MACxBE,EAAW1G,EAASwG,CAAO,EAE5B,OAAOA,CACR,EAEA,OAAO,eAAeJ,EAAa,UAAW,MAAO,CACpD,IAAK,UAAW,CACf,OAAO,KAAK,SAAS,KAAK,SAAS,OAAS,CAAC,CAC7C,CACF,CAAC,EAED,OAAO,eAAeA,EAAa,UAAW,SAAU,CACvD,IAAK,UAAW,CACf,OAAO,KAAK,SAAS,MACrB,CACF,CAAC,EAED9H,EAAQ,aAAe8H,CAEvB,EACA,CAAA,CAAE,EACF,EAAE,CAAC,SAAST,EAAQjJ,EAAO4B,EAAQ,CACnC,IAAIqI,EAAYhB,EAAQ,gBAAgB,EACpCiB,EAAcjB,EAAQ,eAAe,EAAE,YAEvCkB,EAAsB,CAAA,EAC1B,OAAO,KAAKF,CAAQ,EAAE,QAAQ,SAAUG,EAAW,CAClD,QAAS7J,EAAI,EAAGA,EAAI6J,EAAU,OAAQ7J,IACrC4J,EAAoBC,EAAU,UAAU,EAAG7J,EAAI,CAAC,CAAC,EAAI,EAEvD,CAAC,EAED,SAAS8J,EAAeC,EAAG,CAC1B,OAAQA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,GAC9E,CAEA,SAASC,EAAWD,EAAG,CACtB,OAAQA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,GAC9E,CAEA,SAASE,EAAeF,EAAG,CAC1B,OAAQA,GAAK,KAAOA,GAAK,GAC1B,CAEA,IAAIG,EAAe,CAAA,EAEnBA,EAAa,cAAgB,SAASC,EAAQC,EAAWC,EAA4B,CACpF,IAAIC,EAAmB,GACnBC,EAAqB,GACrBC,EAAKL,EAAO,OAChB,GAAIK,IAAOb,EAAY,IACtB,MAAO,GAMR,GALAY,GAAsBC,EAClBA,GAAM,KAAQA,GAAM;AAAA,GAAQA,GAAM,MAAQA,GAAM,KAAOA,GAAM,KAAOA,GAAM,KAI1EH,IAA+BG,EAClC,OAAAL,EAAO,MAAMI,CAAkB,EACxB,GAER,GAAIC,GAAM,IAAK,CAEd,GADAA,EAAKL,EAAO,MAAM,CAAC,EACfK,IAAOb,EAAY,IACtB,OAAAS,EAAU,YAAY,qCAAqC,EAC3DD,EAAO,MAAMI,CAAkB,EACxB,GAERA,GAAsBC,EACtB,IAAIC,EAAQ,GACRC,EAAUT,EACd,GAAIO,GAAM,KAAOA,GAAM,IAAK,CAI3B,GAHAC,EAAQ,GACRC,EAAUV,EACVQ,EAAKL,EAAO,MAAM,CAAC,EACfK,IAAOb,EAAY,IACtB,OAAAS,EAAU,YAAY,qCAAqC,EAC3DD,EAAO,MAAMI,CAAkB,EACxB,GAERA,GAAsBC,EAEvB,GAAIE,EAAQF,CAAE,EAAG,CAEhB,QADIG,EAAO,GACJH,IAAOb,EAAY,KAAOe,EAAQF,CAAE,GAC1CG,GAAQH,EACRA,EAAKL,EAAO,OAEbQ,EAAO,SAASA,EAAMF,CAAK,EAC3B,IAAIG,EAAc,KAAK,qBAAqBD,CAAI,EAKhD,GAJIC,IACHR,EAAU,YAAY,iCAAiC,EACvDO,EAAOC,GAEJD,EAAO,OAAUA,GAAQ,QAAU,CAChCA,GAAQ,MACR,IAAIE,IAAU,QAAUF,IAAS,IAAM,MACnCG,GAAU,KAAQH,GAAQ,MACpCL,EAAmB,OAAO,aAAaO,EAAOC,CAAM,OAEpDR,EAAmB,OAAO,aAAaK,CAAI,EAC5C,OAAIH,IAAO,MACVJ,EAAU,YAAY,kCAAkC,EACxDD,EAAO,MAAMK,CAAE,GAETF,EAER,OAAAH,EAAO,MAAMI,CAAkB,EAC/BH,EAAU,YAAY,yBAAyB,EACxC,GAER,GAAKI,GAAM,KAAOA,GAAM,KAASA,GAAM,KAAOA,GAAM,IAAM,CAEzD,QADIO,EAAkB,GACfnB,EAAoBW,CAAkB,IACxCb,EAASa,CAAkB,IAC9BQ,EAAkBR,GAEf,EAAAC,GAAM,MAEVA,EAAKL,EAAO,OACRK,IAAOb,EAAY,QAEvBY,GAAsBC,EAEvB,OAAKO,GAKLT,EAAmBZ,EAASqB,CAAe,EACvCP,IAAO,KAAO,CAACH,GAA8B,EAAEP,EAAeU,CAAE,GAAKA,IAAO,MAC3ED,EAAmB,OAASQ,EAAgB,QAC/CZ,EAAO,MAAMI,EAAmB,UAAUQ,EAAgB,MAAM,CAAC,EAE9DP,IAAO,KACVJ,EAAU,YAAY,gCAAgC,EAEhDE,IAERH,EAAO,MAAMI,CAAkB,EACxB,MAfNH,EAAU,YAAY,uBAAuB,EAC7CD,EAAO,MAAMI,CAAkB,EACxB,IAeV,EAEAL,EAAa,qBAAuB,SAASH,EAAG,CAC/C,OAAOA,EAAC,CACP,IAAK,GAAM,MAAO,OAClB,IAAK,IAAM,MAAO,IAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,MAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,IAAK,KAAM,MAAO,KAClB,QACC,GAAKA,GAAK,OAAUA,GAAK,OAAWA,EAAI,QACvC,MAAO,OACD,GAAKA,GAAK,GAAUA,GAAK,GAAYA,GAAK,IAAUA,GAAK,IAC9DA,GAAK,KAAUA,GAAK,KAAYA,GAAK,OAAUA,GAAK,OACrDA,GAAK,IAAUA,GAAK,OAAUA,GAAK,QAAWA,GAAK,SACnDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QAAWA,GAAK,QACrDA,GAAK,QAAWA,GAAK,SAAWA,GAAK,SAAWA,GAAK,SACrDA,GAAK,QACL,OAAOA,CAET,CACF,EAEA1I,EAAQ,aAAe6I,CAEvB,EACA,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,EACvC,EAAE,CAAC,SAASxB,EAAQjJ,EAAO4B,EAAQ,CACnC,SAASsI,GAAc,CACtB,KAAK,KAAO,GACZ,KAAK,MAAQ,EACb,KAAK,UAAY,EACjB,KAAK,IAAM,GACX,KAAK,aAAe,CAAC,KAAM,EAAG,OAAQ,CAAC,CACxC,CAEAA,EAAY,IAAM,GAElBA,EAAY,MAAQ,GAEpBA,EAAY,UAAY,CACvB,MAAO,UAAW,CACjB,GAAG,KAAK,OAAS,KAAK,KAAK,OAAQ,CAClC,GAAG,CAAC,KAAK,IAAK,MAAMA,EAAY,MAChC,OAAOA,EAAY,IAEpB,OAAO,KAAK,KAAK,MAAM,KAAK,MAAO,KAAK,KAAK,MAAM,CACnD,EACD,KAAM,UAAW,CAChB,GAAG,CAAC,KAAK,KAAO,KAAK,OAAS,KAAK,KAAK,OAAS,EAAG,MAAMA,EAAY,MACtE,GAAG,KAAK,OAAS,KAAK,KAAK,OAC1B,OAAOA,EAAY,IAEpB,IAAIa,EAAK,KAAK,KAAK,KAAK,OAAO,EAC/B,OAAIA,IAAO,OACVA,EAAK;AAAA,GACCA,CACP,EACD,QAAS,SAASQ,EAAQ,CAEzB,GADA,KAAK,OAASA,EACX,KAAK,OAAS,KAAK,KAAK,OAAQ,CAClC,GAAG,CAAC,KAAK,IAAK,MAAMrB,EAAY,MAChC,OAAOA,EAAY,SAEhB,KAAK,UAAY,KAAK,KAAK,OAAS,IACtC,KAAK,aAAe,KAAK,WACzB,KAAK,KAAO,KAAK,KAAK,MAAM,KAAK,SAAS,EAC1C,KAAK,MAAQ,KAAK,MAAQ,KAAK,UAC/B,KAAK,UAAY,EAGnB,EACD,WAAY,SAASsB,EAAI,CACxB,GAAG,KAAK,KAAO,KAAK,OAAS,KAAK,KAAK,OAAS,MAAO,GACvD,IAAI3C,EAAI,IAAI,OAAO,IAAI2C,EAAG,GAAG,EACzBC,EAAI5C,EAAE,KAAK,KAAK,MAAO,CAAA,EAC3B,GAAG4C,EAAG,CACL,GAAG,CAAC,KAAK,KAAOA,EAAE,CAAC,EAAE,QAAU,KAAK,KAAK,OAAS,KAAK,MAAO,MAAMvB,EAAY,MAChF,YAAK,QAAQuB,EAAE,CAAC,EAAE,MAAM,EACjBA,EAAE,CAAC,MAEV,OAAO,EAER,EACD,WAAY,SAASD,EAAI,CACxB,IAAIC,EAAG3C,EAEP,GADAA,EAAI,KAAK,QACNA,IAAMoB,EAAY,IACpB,MAAO,GACD,GAAGuB,EAAI,IAAI,OAAOD,GAAM,KAAK,IAAM,KAAO,GAAG,EAAE,KAAK1C,CAAC,EAAG,CAC9D,IAAIH,EAAI,KAAK,KAAK,MAAM,KAAK,MAAO,KAAK,MAAQ8C,EAAE,KAAK,EACxD,YAAK,QAAQA,EAAE,KAAK,EACb9C,EAAE,QAAQ,MAAO;AAAA,CAAI,EAAE,QAAQ,UAAW;AAAA,CAAI,MAErD,OAAMuB,EAAY,KAEnB,EACD,OAAQ,SAAShJ,EAAM,CACtB,KAAK,MAAQA,CACb,EACD,MAAO,SAAS0H,EAAG,CAClB,GAAG,CAAC,KAAK,KAAO,KAAK,MAAQA,GAAK,KAAK,KAAK,OAAQ,MAAMsB,EAAY,MACtE,GAAG,KAAK,KAAO,KAAK,OAAS,KAAK,KAAK,OAAQ,OAAOA,EAAY,IAClE,IAAI,EAAI,KAAK,KAAK,MAAM,KAAK,MAAO,KAAK,MAAQtB,CAAC,EAAE,SAAQ,EAC5D,YAAK,QAAQ,KAAK,IAAIA,EAAG,KAAK,KAAK,OAAS,KAAK,KAAK,CAAC,EAChD,CACP,EACD,KAAM,SAASA,EAAG,CACjB,GAAG,CAAC,KAAK,KAAO,KAAK,MAAQA,GAAK,KAAK,KAAK,OAAQ,MAAMsB,EAAY,MACtE,OAAG,KAAK,KAAO,KAAK,OAAS,KAAK,KAAK,OAAeA,EAAY,IAC3D,KAAK,KAAK,MAAM,KAAK,MAAO,KAAK,IAAI,KAAK,MAAQtB,EAAG,KAAK,KAAK,MAAM,CAAC,EAAE,UAC/E,EACD,OAAQ,UAAW,CAClB,OAAO,KAAK,KAAK,OAAS,KAAK,MAAQ,CACvC,EACD,MAAO,SAASF,EAAG,CACfA,IAAMwB,EAAY,MACrB,KAAK,OAAUxB,EAAE,OACjB,EACD,KAAM,UAAW,CAChB,KAAK,MAAQ,KAAK,SAClB,EACD,OAAQ,UAAW,CAClB,KAAK,UAAY,KAAK,KACtB,EACD,SAAU,UAAW,CACpB,IAAIgD,EAAW,KAAK,aAAa,KAC7BC,EAAa,KAAK,aAAa,OAC/BC,EAAO,KAAK,KAAK,MAAM,EAAG,KAAK,SAAS,EACxCC,EAAWD,EAAK,MAAM,KAAK,EAC3BrM,EAAOsM,EAAWH,EAAWG,EAAS,OAASH,EAC/CpG,EAASuG,EAAWD,EAAK,OAASA,EAAK,YAAY;AAAA,CAAI,EAAI,EAAID,EAAaC,EAAK,OACrF,MAAO,CAAC,KAAMrM,EAAM,OAAQ+F,CAAM,CAClC,CACF,EAEA1D,EAAQ,YAAcsI,CAEtB,EACA,CAAA,CAAE,EACF,EAAE,CAAC,SAASjB,EAAQjJ,EAAO4B,EAAQ,CACnC,IAAIkK,EAAkB,CACrB,+BAAgC,CAC/B,UACA,SACA,OACA,UACA,QACA,OACA,WACA,UACA,aACA,OACA,KACA,SACA,UACA,SACA,MACA,WACA,KACA,UACA,MACA,MACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,SACA,MACA,QACA,UACA,KACA,OACA,UACA,OACA,UACA,OACA,WACA,OACA,MACA,UACA,WACA,WACA,SACA,KACA,IACA,QACA,YACA,MACA,SACA,UACA,SACA,SACA,QACA,UACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,QACA,KACA,QACA,KACA,MACA,KACA,EACD,qCAAsC,CACrC,KACA,KACA,KACA,KACA,QACA,gBACA,EACD,6BAA8B,CAC7B,gBACA,OACA,OACA,CACF,EAGA,SAASC,EAAUC,EAAcrC,EAAWsC,EAAY9C,EAAM,CAC7D,KAAK,UAAYQ,EACjB,KAAK,aAAeqC,EACpB,KAAK,WAAaC,EAClB,KAAK,KAAO9C,CACb,CACA4C,EAAU,UAAU,UAA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C,qCACD,qBACC,+BACD,gBACC,wCACD,+BACC,4CACD,kBACC,+CACD,iBACC,4CACD,2BACC,2DACD,mBACC,8CACD,iCACC,4FACD,qCACC,gFACD,mCACC,8EACD,6BACC,gEACD,yCACC,qDACD,oCACC,uDACD,qBACC,wCACD,6BACC,wDACD,sCACC,4DACD,uBACC,iCACD,kBACC,4BACD,mBACC,6BACD,uCACC,kEACD,kCACC,+DACD,iBACC,6CACD,+BACC,wCACD,uCACC,oEACD,oBACC,2DACD,0BACC,oEACD,4BACC,4CACD,sBACC,kFACD,sBACC,kFACD,sBACC,kFACD,sBACC,kFACD,gCACC,6DACD,aACC,wCACD,sCACC,0DACD,2CACC,+DACD,uCACC,uEACD,mCACC,sDACD,2BACC,oCACD,4CACC,qEACD,0CACC,mEACD,gCACC,oEACD,0BACC,uEACD,mCACC,gEACD,0CACC,8DACD,kCACC,+DACD,8BACC,6EACD,6BACC,kDACD,iCACC,oEACD,+BACC,4DACD,wDACC,4EACD,sDACC,0EACD,6BACC,2DACD,kCACC,+DACD,gCACC,6DACD,8BACC,mEACD,mCACC,sEACD,4CACC,wEACD,iCACC,oEACD,iCACC,wEACD,sCACC,sEACD,oCACC,oEACD,4BACC,yDACD,iCACC,uDACD,+BACC,qDACD,kCACC,sEACD,wBACC,8CACD,eACC,kDACD,gBACC,mDACD,yCACC,kDACD,6CACC,0DACD,gCACC,4CACF,CACA,EACA,CAAA,CAAE,EACF,EAAE,CAAC,SAASiJ,EAAQjJ,EAAO4B,EAAQ,CACnC,IAAImU,EAAiB9M,EAAQ,kBAAkB,EAAE,eAC7CqD,EAAYrD,EAAQ,cAAc,EAAE,UACpC+M,EAAa/M,EAAQ,cAAc,EAAE,WAEzC,SAASgN,GAAY,CACpB,KAAK,eAAiB,KACtB,KAAK,cAAgB,KACrB,KAAK,aAAe,IAAIF,EACxB,KAAK,WAAa,IAAIzJ,EAAU,KAAK,YAAY,EACjD,KAAK,kBAAoB,EAC1B,CAEA2J,EAAU,UAAU,MAAQ,SAASvJ,EAAQgJ,EAAS,CACjDA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","x_google_ignoreList":[0]}