@stepzen/graphiql-proxy 0.20.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/package.json +61 -0
  4. package/src/server/api/debugging.js +19 -0
  5. package/src/server/api/details.js +15 -0
  6. package/src/server/api/ping.js +9 -0
  7. package/src/server/api/predicates.js +23 -0
  8. package/src/server/api/proxy.js +59 -0
  9. package/src/server/api/samples.js +26 -0
  10. package/src/server/index.js +100 -0
  11. package/src/server/utils/open-browser.js +144 -0
  12. package/src/server/utils/open-chrome.applescript +93 -0
  13. package/src/ui/README.md +72 -0
  14. package/src/ui/build/asset-manifest.json +58 -0
  15. package/src/ui/build/favicon.ico +0 -0
  16. package/src/ui/build/index.html +1 -0
  17. package/src/ui/build/static/css/main.f9030c32.css +2 -0
  18. package/src/ui/build/static/css/main.f9030c32.css.map +1 -0
  19. package/src/ui/build/static/js/0.a1da3266.chunk.js +2 -0
  20. package/src/ui/build/static/js/0.a1da3266.chunk.js.map +1 -0
  21. package/src/ui/build/static/js/136.7849911c.chunk.js +2 -0
  22. package/src/ui/build/static/js/136.7849911c.chunk.js.map +1 -0
  23. package/src/ui/build/static/js/170.27296619.chunk.js +2 -0
  24. package/src/ui/build/static/js/170.27296619.chunk.js.map +1 -0
  25. package/src/ui/build/static/js/190.e088a175.chunk.js +2 -0
  26. package/src/ui/build/static/js/190.e088a175.chunk.js.map +1 -0
  27. package/src/ui/build/static/js/267.962ef6a4.chunk.js +2 -0
  28. package/src/ui/build/static/js/267.962ef6a4.chunk.js.map +1 -0
  29. package/src/ui/build/static/js/306.cb66dc99.chunk.js +2 -0
  30. package/src/ui/build/static/js/306.cb66dc99.chunk.js.map +1 -0
  31. package/src/ui/build/static/js/316.7c2be1f0.chunk.js +2 -0
  32. package/src/ui/build/static/js/316.7c2be1f0.chunk.js.map +1 -0
  33. package/src/ui/build/static/js/322.5ada89eb.chunk.js +2 -0
  34. package/src/ui/build/static/js/322.5ada89eb.chunk.js.map +1 -0
  35. package/src/ui/build/static/js/344.e6b10333.chunk.js +2 -0
  36. package/src/ui/build/static/js/344.e6b10333.chunk.js.map +1 -0
  37. package/src/ui/build/static/js/39.dd9b3202.chunk.js +2 -0
  38. package/src/ui/build/static/js/39.dd9b3202.chunk.js.map +1 -0
  39. package/src/ui/build/static/js/430.de05cf2b.chunk.js +2 -0
  40. package/src/ui/build/static/js/430.de05cf2b.chunk.js.map +1 -0
  41. package/src/ui/build/static/js/503.a3ba392a.chunk.js +2 -0
  42. package/src/ui/build/static/js/503.a3ba392a.chunk.js.map +1 -0
  43. package/src/ui/build/static/js/580.b48b02d9.chunk.js +2 -0
  44. package/src/ui/build/static/js/580.b48b02d9.chunk.js.map +1 -0
  45. package/src/ui/build/static/js/587.f2cbe2fb.chunk.js +2 -0
  46. package/src/ui/build/static/js/587.f2cbe2fb.chunk.js.map +1 -0
  47. package/src/ui/build/static/js/619.cd709ae5.chunk.js +2 -0
  48. package/src/ui/build/static/js/619.cd709ae5.chunk.js.map +1 -0
  49. package/src/ui/build/static/js/658.916c9abf.chunk.js +2 -0
  50. package/src/ui/build/static/js/658.916c9abf.chunk.js.map +1 -0
  51. package/src/ui/build/static/js/756.a915a97e.chunk.js +2 -0
  52. package/src/ui/build/static/js/756.a915a97e.chunk.js.map +1 -0
  53. package/src/ui/build/static/js/76.0a014434.chunk.js +2 -0
  54. package/src/ui/build/static/js/76.0a014434.chunk.js.map +1 -0
  55. package/src/ui/build/static/js/804.118a9243.chunk.js +2 -0
  56. package/src/ui/build/static/js/804.118a9243.chunk.js.map +1 -0
  57. package/src/ui/build/static/js/849.f850f73b.chunk.js +2 -0
  58. package/src/ui/build/static/js/849.f850f73b.chunk.js.map +1 -0
  59. package/src/ui/build/static/js/88.b5b4cd91.chunk.js +2 -0
  60. package/src/ui/build/static/js/88.b5b4cd91.chunk.js.map +1 -0
  61. package/src/ui/build/static/js/983.df163755.chunk.js +2 -0
  62. package/src/ui/build/static/js/983.df163755.chunk.js.map +1 -0
  63. package/src/ui/build/static/js/main.27cac1e6.js +3 -0
  64. package/src/ui/build/static/js/main.27cac1e6.js.LICENSE.txt +92 -0
  65. package/src/ui/build/static/js/main.27cac1e6.js.map +1 -0
  66. package/src/ui/build/static/media/logo.2fa5e016c31f1c335b07ff477d91ee9a.svg +1 -0
  67. package/src/ui/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/190.e088a175.chunk.js","mappings":"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","sources":["../node_modules/codemirror-graphql/src/hint.ts","../node_modules/codemirror/addon/hint/show-hint.js"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n *\n */\n\nimport CodeMirror, { Hints, Hint } from 'codemirror';\nimport 'codemirror/addon/hint/show-hint';\n\nimport { FragmentDefinitionNode, GraphQLSchema, GraphQLType } from 'graphql';\nimport type { Maybe } from 'graphql-language-service';\nimport { getAutocompleteSuggestions, Position } from 'graphql-language-service';\n\nexport interface GraphQLHintOptions {\n schema?: GraphQLSchema;\n externalFragments?: string | FragmentDefinitionNode[];\n}\n\ninterface IHint extends Hint {\n isDeprecated?: boolean;\n type?: Maybe<GraphQLType>;\n description?: Maybe<string>;\n deprecationReason?: Maybe<string>;\n}\n\ninterface IHints extends Hints {\n list: IHint[];\n}\n\ndeclare module 'codemirror' {\n interface ShowHintOptions {\n schema?: GraphQLSchema;\n externalFragments?: string | FragmentDefinitionNode[];\n }\n\n interface CodeMirrorHintMap {\n graphql: (\n editor: CodeMirror.Editor,\n options: GraphQLHintOptions,\n ) => IHints | undefined;\n }\n}\n\n/**\n * Registers a \"hint\" helper for CodeMirror.\n *\n * Using CodeMirror's \"hint\" addon: https://codemirror.net/demo/complete.html\n * Given an editor, this helper will take the token at the cursor and return a\n * list of suggested tokens.\n *\n * Options:\n *\n * - schema: GraphQLSchema provides the hinter with positionally relevant info\n *\n * Additional Events:\n *\n * - hasCompletion (codemirror, data, token) - signaled when the hinter has a\n * new list of completion suggestions.\n *\n */\nCodeMirror.registerHelper(\n 'hint',\n 'graphql',\n (\n editor: CodeMirror.Editor,\n options: GraphQLHintOptions,\n ): IHints | undefined => {\n const schema = options.schema;\n if (!schema) {\n return;\n }\n\n const cur = editor.getCursor();\n const token = editor.getTokenAt(cur);\n\n const tokenStart =\n token.type !== null && /\"|\\w/.test(token.string[0])\n ? token.start\n : token.end;\n\n const position = new Position(cur.line, tokenStart);\n\n const rawResults = getAutocompleteSuggestions(\n schema,\n editor.getValue(),\n position,\n token,\n options.externalFragments,\n );\n\n const results = {\n list: rawResults.map(item => ({\n text: item.label,\n type: item.type,\n description: item.documentation,\n isDeprecated: item.isDeprecated,\n deprecationReason: item.deprecationReason,\n })),\n from: { line: cur.line, ch: tokenStart },\n to: { line: cur.line, ch: token.end },\n };\n\n if (results && results.list && results.list.length > 0) {\n results.from = CodeMirror.Pos(results.from.line, results.from.ch);\n results.to = CodeMirror.Pos(results.to.line, results.to.ch);\n CodeMirror.signal(editor, 'hasCompletion', editor, results, token);\n }\n\n return results;\n },\n);\n// exporting here so we don't need to import the codemirror show-hint addon module (and its implementation)\nexport type { IHint, IHints };\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// declare global: DOMRect\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var HINT_ELEMENT_CLASS = \"CodeMirror-hint\";\n var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n // This is the old interface, kept around for now to stay\n // backwards-compatible.\n CodeMirror.showHint = function(cm, getHints, options) {\n if (!getHints) return cm.showHint(options);\n if (options && options.async) getHints.async = true;\n var newOpts = {hint: getHints};\n if (options) for (var prop in options) newOpts[prop] = options[prop];\n return cm.showHint(newOpts);\n };\n\n CodeMirror.defineExtension(\"showHint\", function(options) {\n options = parseOptions(this, this.getCursor(\"start\"), options);\n var selections = this.listSelections()\n if (selections.length > 1) return;\n // By default, don't allow completion when something is selected.\n // A hint function can have a `supportsSelection` property to\n // indicate that it can handle selections.\n if (this.somethingSelected()) {\n if (!options.hint.supportsSelection) return;\n // Don't try with cross-line selections\n for (var i = 0; i < selections.length; i++)\n if (selections[i].head.line != selections[i].anchor.line) return;\n }\n\n if (this.state.completionActive) this.state.completionActive.close();\n var completion = this.state.completionActive = new Completion(this, options);\n if (!completion.options.hint) return;\n\n CodeMirror.signal(this, \"startCompletion\", this);\n completion.update(true);\n });\n\n CodeMirror.defineExtension(\"closeHint\", function() {\n if (this.state.completionActive) this.state.completionActive.close()\n })\n\n function Completion(cm, options) {\n this.cm = cm;\n this.options = options;\n this.widget = null;\n this.debounce = 0;\n this.tick = 0;\n this.startPos = this.cm.getCursor(\"start\");\n this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;\n\n if (this.options.updateOnCursorActivity) {\n var self = this;\n cm.on(\"cursorActivity\", this.activityFunc = function() { self.cursorActivity(); });\n }\n }\n\n var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n return setTimeout(fn, 1000/60);\n };\n var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n Completion.prototype = {\n close: function() {\n if (!this.active()) return;\n this.cm.state.completionActive = null;\n this.tick = null;\n if (this.options.updateOnCursorActivity) {\n this.cm.off(\"cursorActivity\", this.activityFunc);\n }\n\n if (this.widget && this.data) CodeMirror.signal(this.data, \"close\");\n if (this.widget) this.widget.close();\n CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n },\n\n active: function() {\n return this.cm.state.completionActive == this;\n },\n\n pick: function(data, i) {\n var completion = data.list[i], self = this;\n this.cm.operation(function() {\n if (completion.hint)\n completion.hint(self.cm, data, completion);\n else\n self.cm.replaceRange(getText(completion), completion.from || data.from,\n completion.to || data.to, \"complete\");\n CodeMirror.signal(data, \"pick\", completion);\n self.cm.scrollIntoView();\n });\n if (this.options.closeOnPick) {\n this.close();\n }\n },\n\n cursorActivity: function() {\n if (this.debounce) {\n cancelAnimationFrame(this.debounce);\n this.debounce = 0;\n }\n\n var identStart = this.startPos;\n if(this.data) {\n identStart = this.data.from;\n }\n\n var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);\n if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||\n pos.ch < identStart.ch || this.cm.somethingSelected() ||\n (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {\n this.close();\n } else {\n var self = this;\n this.debounce = requestAnimationFrame(function() {self.update();});\n if (this.widget) this.widget.disable();\n }\n },\n\n update: function(first) {\n if (this.tick == null) return\n var self = this, myTick = ++this.tick\n fetchHints(this.options.hint, this.cm, this.options, function(data) {\n if (self.tick == myTick) self.finishUpdate(data, first)\n })\n },\n\n finishUpdate: function(data, first) {\n if (this.data) CodeMirror.signal(this.data, \"update\");\n\n var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);\n if (this.widget) this.widget.close();\n\n this.data = data;\n\n if (data && data.list.length) {\n if (picked && data.list.length == 1) {\n this.pick(data, 0);\n } else {\n this.widget = new Widget(this, data);\n CodeMirror.signal(data, \"shown\");\n }\n }\n }\n };\n\n function parseOptions(cm, pos, options) {\n var editor = cm.options.hintOptions;\n var out = {};\n for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n if (editor) for (var prop in editor)\n if (editor[prop] !== undefined) out[prop] = editor[prop];\n if (options) for (var prop in options)\n if (options[prop] !== undefined) out[prop] = options[prop];\n if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)\n return out;\n }\n\n function getText(completion) {\n if (typeof completion == \"string\") return completion;\n else return completion.text;\n }\n\n function buildKeyMap(completion, handle) {\n var baseMap = {\n Up: function() {handle.moveFocus(-1);},\n Down: function() {handle.moveFocus(1);},\n PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n Home: function() {handle.setFocus(0);},\n End: function() {handle.setFocus(handle.length - 1);},\n Enter: handle.pick,\n Tab: handle.pick,\n Esc: handle.close\n };\n\n var mac = /Mac/.test(navigator.platform);\n\n if (mac) {\n baseMap[\"Ctrl-P\"] = function() {handle.moveFocus(-1);};\n baseMap[\"Ctrl-N\"] = function() {handle.moveFocus(1);};\n }\n\n var custom = completion.options.customKeys;\n var ourMap = custom ? {} : baseMap;\n function addBinding(key, val) {\n var bound;\n if (typeof val != \"string\")\n bound = function(cm) { return val(cm, handle); };\n // This mechanism is deprecated\n else if (baseMap.hasOwnProperty(val))\n bound = baseMap[val];\n else\n bound = val;\n ourMap[key] = bound;\n }\n if (custom)\n for (var key in custom) if (custom.hasOwnProperty(key))\n addBinding(key, custom[key]);\n var extra = completion.options.extraKeys;\n if (extra)\n for (var key in extra) if (extra.hasOwnProperty(key))\n addBinding(key, extra[key]);\n return ourMap;\n }\n\n function getHintElement(hintsElement, el) {\n while (el && el != hintsElement) {\n if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n el = el.parentNode;\n }\n }\n\n function Widget(completion, data) {\n this.id = \"cm-complete-\" + Math.floor(Math.random(1e6))\n this.completion = completion;\n this.data = data;\n this.picked = false;\n var widget = this, cm = completion.cm;\n var ownerDocument = cm.getInputField().ownerDocument;\n var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;\n\n var hints = this.hints = ownerDocument.createElement(\"ul\");\n hints.setAttribute(\"role\", \"listbox\")\n hints.setAttribute(\"aria-expanded\", \"true\")\n hints.id = this.id\n var theme = completion.cm.options.theme;\n hints.className = \"CodeMirror-hints \" + theme;\n this.selectedHint = data.selectedHint || 0;\n\n var completions = data.list;\n for (var i = 0; i < completions.length; ++i) {\n var elt = hints.appendChild(ownerDocument.createElement(\"li\")), cur = completions[i];\n var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n if (cur.className != null) className = cur.className + \" \" + className;\n elt.className = className;\n if (i == this.selectedHint) elt.setAttribute(\"aria-selected\", \"true\")\n elt.id = this.id + \"-\" + i\n elt.setAttribute(\"role\", \"option\")\n if (cur.render) cur.render(elt, data, cur);\n else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));\n elt.hintId = i;\n }\n\n var container = completion.options.container || ownerDocument.body;\n var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n var left = pos.left, top = pos.bottom, below = true;\n var offsetLeft = 0, offsetTop = 0;\n if (container !== ownerDocument.body) {\n // We offset the cursor position because left and top are relative to the offsetParent's top left corner.\n var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;\n var offsetParent = isContainerPositioned ? container : container.offsetParent;\n var offsetParentPosition = offsetParent.getBoundingClientRect();\n var bodyPosition = ownerDocument.body.getBoundingClientRect();\n offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);\n offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);\n }\n hints.style.left = (left - offsetLeft) + \"px\";\n hints.style.top = (top - offsetTop) + \"px\";\n\n // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);\n var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);\n container.appendChild(hints);\n cm.getInputField().setAttribute(\"aria-autocomplete\", \"list\")\n cm.getInputField().setAttribute(\"aria-owns\", this.id)\n cm.getInputField().setAttribute(\"aria-activedescendant\", this.id + \"-\" + this.selectedHint)\n\n var box = completion.options.moveOnOverlap ? hints.getBoundingClientRect() : new DOMRect();\n var scrolls = completion.options.paddingForScrollbar ? hints.scrollHeight > hints.clientHeight + 1 : false;\n\n // Compute in the timeout to avoid reflow on init\n var startScroll;\n setTimeout(function() { startScroll = cm.getScrollInfo(); });\n\n var overlapY = box.bottom - winH;\n if (overlapY > 0) {\n var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n if (curTop - height > 0) { // Fits above cursor\n hints.style.top = (top = pos.top - height - offsetTop) + \"px\";\n below = false;\n } else if (height > winH) {\n hints.style.height = (winH - 5) + \"px\";\n hints.style.top = (top = pos.bottom - box.top - offsetTop) + \"px\";\n var cursor = cm.getCursor();\n if (data.from.ch != cursor.ch) {\n pos = cm.cursorCoords(cursor);\n hints.style.left = (left = pos.left - offsetLeft) + \"px\";\n box = hints.getBoundingClientRect();\n }\n }\n }\n var overlapX = box.right - winW;\n if (scrolls) overlapX += cm.display.nativeBarWidth;\n if (overlapX > 0) {\n if (box.right - box.left > winW) {\n hints.style.width = (winW - 5) + \"px\";\n overlapX -= (box.right - box.left) - winW;\n }\n hints.style.left = (left = pos.left - overlapX - offsetLeft) + \"px\";\n }\n if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)\n node.style.paddingRight = cm.display.nativeBarWidth + \"px\"\n\n cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n setFocus: function(n) { widget.changeActive(n); },\n menuSize: function() { return widget.screenAmount(); },\n length: completions.length,\n close: function() { completion.close(); },\n pick: function() { widget.pick(); },\n data: data\n }));\n\n if (completion.options.closeOnUnfocus) {\n var closingOnBlur;\n cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n }\n\n cm.on(\"scroll\", this.onScroll = function() {\n var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n if (!startScroll) startScroll = cm.getScrollInfo();\n var newTop = top + startScroll.top - curScroll.top;\n var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);\n if (!below) point += hints.offsetHeight;\n if (point <= editor.top || point >= editor.bottom) return completion.close();\n hints.style.top = newTop + \"px\";\n hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n });\n\n CodeMirror.on(hints, \"dblclick\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n });\n\n CodeMirror.on(hints, \"click\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {\n widget.changeActive(t.hintId);\n if (completion.options.completeOnSingleClick) widget.pick();\n }\n });\n\n CodeMirror.on(hints, \"mousedown\", function() {\n setTimeout(function(){cm.focus();}, 20);\n });\n\n // The first hint doesn't need to be scrolled to on init\n var selectedHintRange = this.getSelectedHintRange();\n if (selectedHintRange.from !== 0 || selectedHintRange.to !== 0) {\n this.scrollToActive();\n }\n\n CodeMirror.signal(data, \"select\", completions[this.selectedHint], hints.childNodes[this.selectedHint]);\n return true;\n }\n\n Widget.prototype = {\n close: function() {\n if (this.completion.widget != this) return;\n this.completion.widget = null;\n if (this.hints.parentNode) this.hints.parentNode.removeChild(this.hints);\n this.completion.cm.removeKeyMap(this.keyMap);\n var input = this.completion.cm.getInputField()\n input.removeAttribute(\"aria-activedescendant\")\n input.removeAttribute(\"aria-owns\")\n\n var cm = this.completion.cm;\n if (this.completion.options.closeOnUnfocus) {\n cm.off(\"blur\", this.onBlur);\n cm.off(\"focus\", this.onFocus);\n }\n cm.off(\"scroll\", this.onScroll);\n },\n\n disable: function() {\n this.completion.cm.removeKeyMap(this.keyMap);\n var widget = this;\n this.keyMap = {Enter: function() { widget.picked = true; }};\n this.completion.cm.addKeyMap(this.keyMap);\n },\n\n pick: function() {\n this.completion.pick(this.data, this.selectedHint);\n },\n\n changeActive: function(i, avoidWrap) {\n if (i >= this.data.list.length)\n i = avoidWrap ? this.data.list.length - 1 : 0;\n else if (i < 0)\n i = avoidWrap ? 0 : this.data.list.length - 1;\n if (this.selectedHint == i) return;\n var node = this.hints.childNodes[this.selectedHint];\n if (node) {\n node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n node.removeAttribute(\"aria-selected\")\n }\n node = this.hints.childNodes[this.selectedHint = i];\n node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n node.setAttribute(\"aria-selected\", \"true\")\n this.completion.cm.getInputField().setAttribute(\"aria-activedescendant\", node.id)\n this.scrollToActive()\n CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n },\n\n scrollToActive: function() {\n var selectedHintRange = this.getSelectedHintRange();\n var node1 = this.hints.childNodes[selectedHintRange.from];\n var node2 = this.hints.childNodes[selectedHintRange.to];\n var firstNode = this.hints.firstChild;\n if (node1.offsetTop < this.hints.scrollTop)\n this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;\n else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop;\n },\n\n screenAmount: function() {\n return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n },\n\n getSelectedHintRange: function() {\n var margin = this.completion.options.scrollMargin || 0;\n return {\n from: Math.max(0, this.selectedHint - margin),\n to: Math.min(this.data.list.length - 1, this.selectedHint + margin),\n };\n }\n };\n\n function applicableHelpers(cm, helpers) {\n if (!cm.somethingSelected()) return helpers\n var result = []\n for (var i = 0; i < helpers.length; i++)\n if (helpers[i].supportsSelection) result.push(helpers[i])\n return result\n }\n\n function fetchHints(hint, cm, options, callback) {\n if (hint.async) {\n hint(cm, callback, options)\n } else {\n var result = hint(cm, options)\n if (result && result.then) result.then(callback)\n else callback(result)\n }\n }\n\n function resolveAutoHints(cm, pos) {\n var helpers = cm.getHelpers(pos, \"hint\"), words\n if (helpers.length) {\n var resolved = function(cm, callback, options) {\n var app = applicableHelpers(cm, helpers);\n function run(i) {\n if (i == app.length) return callback(null)\n fetchHints(app[i], cm, options, function(result) {\n if (result && result.list.length > 0) callback(result)\n else run(i + 1)\n })\n }\n run(0)\n }\n resolved.async = true\n resolved.supportsSelection = true\n return resolved\n } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }\n } else if (CodeMirror.hint.anyword) {\n return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }\n } else {\n return function() {}\n }\n }\n\n CodeMirror.registerHelper(\"hint\", \"auto\", {\n resolve: resolveAutoHints\n });\n\n CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n var cur = cm.getCursor(), token = cm.getTokenAt(cur)\n var term, from = CodeMirror.Pos(cur.line, token.start), to = cur\n if (token.start < cur.ch && /\\w/.test(token.string.charAt(cur.ch - token.start - 1))) {\n term = token.string.substr(0, cur.ch - token.start)\n } else {\n term = \"\"\n from = cur\n }\n var found = [];\n for (var i = 0; i < options.words.length; i++) {\n var word = options.words[i];\n if (word.slice(0, term.length) == term)\n found.push(word);\n }\n\n if (found.length) return {list: found, from: from, to: to};\n });\n\n CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n var defaultOptions = {\n hint: CodeMirror.hint.auto,\n completeSingle: true,\n alignWithWord: true,\n closeCharacters: /[\\s()\\[\\]{};:>,]/,\n closeOnPick: true,\n closeOnUnfocus: true,\n updateOnCursorActivity: true,\n completeOnSingleClick: true,\n container: null,\n customKeys: null,\n extraKeys: null,\n paddingForScrollbar: true,\n moveOnOverlap: true,\n };\n\n CodeMirror.defineOption(\"hintOptions\", null);\n});\n"],"names":["require","codemirror_1","registerHelper","editor","options","schema","cur","getCursor","token","getTokenAt","tokenStart","type","test","string","start","end","position","graphql_language_service_1","line","results","list","getValue","externalFragments","map","item","text","label","description","documentation","isDeprecated","deprecationReason","from","ch","to","length","Pos","signal","CodeMirror","HINT_ELEMENT_CLASS","ACTIVE_HINT_ELEMENT_CLASS","Completion","cm","this","widget","debounce","tick","startPos","startLen","getLine","getSelection","updateOnCursorActivity","self","on","activityFunc","cursorActivity","showHint","getHints","async","newOpts","hint","prop","defineExtension","parseOptions","selections","listSelections","somethingSelected","supportsSelection","i","head","anchor","state","completionActive","close","completion","update","requestAnimationFrame","window","fn","setTimeout","cancelAnimationFrame","clearTimeout","pos","hintOptions","out","defaultOptions","undefined","resolve","getText","buildKeyMap","handle","baseMap","Up","moveFocus","Down","PageUp","menuSize","PageDown","Home","setFocus","End","Enter","pick","Tab","Esc","navigator","platform","custom","customKeys","ourMap","addBinding","key","val","bound","hasOwnProperty","extra","extraKeys","getHintElement","hintsElement","el","nodeName","toUpperCase","parentNode","Widget","data","id","Math","floor","random","picked","ownerDocument","getInputField","parentWindow","defaultView","hints","createElement","setAttribute","theme","className","selectedHint","completions","elt","appendChild","render","createTextNode","displayText","hintId","container","body","cursorCoords","alignWithWord","left","top","bottom","below","offsetLeft","offsetTop","offsetParent","indexOf","getComputedStyle","offsetParentPosition","getBoundingClientRect","bodyPosition","scrollLeft","scrollTop","style","winW","innerWidth","max","offsetWidth","documentElement","winH","innerHeight","offsetHeight","startScroll","box","moveOnOverlap","DOMRect","scrolls","paddingForScrollbar","scrollHeight","clientHeight","getScrollInfo","height","cursor","closingOnBlur","overlapX","right","display","nativeBarWidth","width","node","firstChild","nextSibling","paddingRight","addKeyMap","keyMap","n","avoidWrap","changeActive","screenAmount","closeOnUnfocus","onBlur","onFocus","onScroll","curScroll","getWrapperElement","newTop","point","pageYOffset","e","t","target","srcElement","completeOnSingleClick","focus","selectedHintRange","getSelectedHintRange","scrollToActive","childNodes","applicableHelpers","helpers","result","push","fetchHints","callback","then","resolveAutoHints","words","getHelpers","resolved","app","run","getHelper","fromList","anyword","prototype","active","off","operation","replaceRange","scrollIntoView","closeOnPick","identStart","closeCharacters","charAt","disable","first","myTick","finishUpdate","completeSingle","removeChild","removeKeyMap","input","removeAttribute","replace","node1","node2","firstNode","margin","scrollMargin","min","term","substr","found","word","slice","commands","autocomplete","auto","defineOption","mod"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkdashboard=self.webpackChunkdashboard||[]).push([[267,0],{4267:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(4495),r=i(n(3668)),o=i(n(7230)),u=n(4186);function l(e,t,n){var i,a=(null===(i=t.fieldDef)||void 0===i?void 0:i.name)||"";"__"!==a.slice(0,2)&&(c(e,t,n,t.parentType),m(e,".")),m(e,a,"field-name",n,u.getFieldReference(t))}function d(e,t,n){var i;m(e,"@"+((null===(i=t.directiveDef)||void 0===i?void 0:i.name)||""),"directive-name",n,u.getDirectiveReference(t))}function f(e,t,n,i){m(e,": "),c(e,t,n,i)}function c(e,t,n,i){i instanceof a.GraphQLNonNull?(c(e,t,n,i.ofType),m(e,"!")):i instanceof a.GraphQLList?(m(e,"["),c(e,t,n,i.ofType),m(e,"]")):m(e,(null===i||void 0===i?void 0:i.name)||"","type-name",n,u.getTypeReference(t,i))}function p(e,t,n){var i=n.description;if(i){var a=document.createElement("div");a.className="info-description",t.renderDescription?a.innerHTML=t.renderDescription(i):a.appendChild(document.createTextNode(i)),e.appendChild(a)}!function(e,t,n){var i=n.deprecationReason;if(i){var a=document.createElement("div");a.className="info-deprecation",t.renderDescription?a.innerHTML=t.renderDescription(i):a.appendChild(document.createTextNode(i));var r=document.createElement("span");r.className="info-deprecation-label",r.appendChild(document.createTextNode("Deprecated: ")),a.insertBefore(r,a.firstChild),e.appendChild(a)}}(e,t,n)}function m(e,t,n,i,a){if(void 0===n&&(n=""),void 0===i&&(i={onClick:null}),void 0===a&&(a=null),n){var r=i.onClick,o=void 0;r?((o=document.createElement("a")).href="javascript:void 0",o.addEventListener("click",(function(e){r(a,e)}))):o=document.createElement("span"),o.className=n,o.appendChild(document.createTextNode(t)),e.appendChild(o)}else e.appendChild(document.createTextNode(t))}n(9e3),r.default.registerHelper("info","graphql",(function(e,t){if(t.schema&&e.state){var n,i=e.state,a=i.kind,r=i.step,s=o.default(t.schema,e.state);return"Field"===a&&0===r&&s.fieldDef||"AliasedField"===a&&2===r&&s.fieldDef?(function(e,t,n){l(e,t,n),f(e,t,n,t.type)}(n=document.createElement("div"),s,t),p(n,t,s.fieldDef),n):"Directive"===a&&1===r&&s.directiveDef?(d(n=document.createElement("div"),s,t),p(n,t,s.directiveDef),n):"Argument"===a&&0===r&&s.argDef?(function(e,t,n){var i;t.directiveDef?d(e,t,n):t.fieldDef&&l(e,t,n);var a=(null===(i=t.argDef)||void 0===i?void 0:i.name)||"";m(e,"("),m(e,a,"arg-name",n,u.getArgumentReference(t)),f(e,t,n,t.inputType),m(e,")")}(n=document.createElement("div"),s,t),p(n,t,s.argDef),n):"EnumValue"===a&&s.enumValue&&s.enumValue.description?(function(e,t,n){var i,a=(null===(i=t.enumValue)||void 0===i?void 0:i.name)||"";c(e,t,n,t.inputType),m(e,"."),m(e,a,"enum-value",n,u.getEnumValueReference(t))}(n=document.createElement("div"),s,t),p(n,t,s.enumValue),n):"NamedType"===a&&s.type&&s.type.description?(c(n=document.createElement("div"),s,t,s.type),p(n,t,s.type),n):void 0}}))},4186:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.getTypeReference=t.getEnumValueReference=t.getArgumentReference=t.getDirectiveReference=t.getFieldReference=void 0;var i=n(4495);function a(e){return"__"===e.name.slice(0,2)}t.getFieldReference=function(e){return{kind:"Field",schema:e.schema,field:e.fieldDef,type:a(e.fieldDef)?null:e.parentType}},t.getDirectiveReference=function(e){return{kind:"Directive",schema:e.schema,directive:e.directiveDef}},t.getArgumentReference=function(e){return e.directiveDef?{kind:"Argument",schema:e.schema,argument:e.argDef,directive:e.directiveDef}:{kind:"Argument",schema:e.schema,argument:e.argDef,field:e.fieldDef,type:a(e.fieldDef)?null:e.parentType}},t.getEnumValueReference=function(e){return{kind:"EnumValue",value:e.enumValue||void 0,type:e.inputType?i.getNamedType(e.inputType):void 0}},t.getTypeReference=function(e,t){return{kind:"Type",schema:e.schema,type:t||e.type}}},7872:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){for(var n=[],i=e;i&&i.kind;)n.push(i),i=i.prevState;for(var a=n.length-1;a>=0;a--)t(n[a])}},7230:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(4495),r=n(8979),o=i(n(7872));function u(e,t,n){return n===r.SchemaMetaFieldDef.name&&e.getQueryType()===t?r.SchemaMetaFieldDef:n===r.TypeMetaFieldDef.name&&e.getQueryType()===t?r.TypeMetaFieldDef:n===r.TypeNameMetaFieldDef.name&&a.isCompositeType(t)?r.TypeNameMetaFieldDef:t&&t.getFields?t.getFields()[n]:void 0}t.default=function(e,t){var n={schema:e,type:null,parentType:null,inputType:null,directiveDef:null,fieldDef:null,argDef:null,argDefs:null,objectFieldDefs:null};return o.default(t,(function(t){switch(t.kind){case"Query":case"ShortQuery":n.type=e.getQueryType();break;case"Mutation":n.type=e.getMutationType();break;case"Subscription":n.type=e.getSubscriptionType();break;case"InlineFragment":case"FragmentDefinition":t.type&&(n.type=e.getType(t.type));break;case"Field":case"AliasedField":n.fieldDef=n.type&&t.name?u(e,n.parentType,t.name):null,n.type=n.fieldDef&&n.fieldDef.type;break;case"SelectionSet":n.parentType=n.type?a.getNamedType(n.type):null;break;case"Directive":n.directiveDef=t.name?e.getDirective(t.name):null;break;case"Arguments":var i=t.prevState?"Field"===t.prevState.kind?n.fieldDef:"Directive"===t.prevState.kind?n.directiveDef:"AliasedField"===t.prevState.kind?t.prevState.name&&u(e,n.parentType,t.prevState.name):null:null;n.argDefs=i?i.args:null;break;case"Argument":if(n.argDef=null,n.argDefs)for(var r=0;r<n.argDefs.length;r++)if(n.argDefs[r].name===t.name){n.argDef=n.argDefs[r];break}n.inputType=n.argDef&&n.argDef.type;break;case"EnumValue":var o=n.inputType?a.getNamedType(n.inputType):null;n.enumValue=o instanceof a.GraphQLEnumType?function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return e[n]}(o.getValues(),(function(e){return e.value===t.name})):null;break;case"ListValue":var l=n.inputType?a.getNullableType(n.inputType):null;n.inputType=l instanceof a.GraphQLList?l.ofType:null;break;case"ObjectValue":var d=n.inputType?a.getNamedType(n.inputType):null;n.objectFieldDefs=d instanceof a.GraphQLInputObjectType?d.getFields():null;break;case"ObjectField":var f=t.name&&n.objectFieldDefs?n.objectFieldDefs[t.name]:null;n.inputType=f&&f.type;break;case"NamedType":n.type=t.name?e.getType(t.name):null}})),n}},9e3:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(n(3668));function r(e,t){var n=e.state.info,i=t.target||t.srcElement;if(i instanceof HTMLElement&&"SPAN"===i.nodeName&&void 0===n.hoverTimeout){var r=i.getBoundingClientRect(),o=function(){clearTimeout(n.hoverTimeout),n.hoverTimeout=setTimeout(l,d)},u=function t(){a.default.off(document,"mousemove",o),a.default.off(e.getWrapperElement(),"mouseout",t),clearTimeout(n.hoverTimeout),n.hoverTimeout=void 0},l=function(){a.default.off(document,"mousemove",o),a.default.off(e.getWrapperElement(),"mouseout",u),n.hoverTimeout=void 0,function(e,t){var n=e.coordsChar({left:(t.left+t.right)/2,top:(t.top+t.bottom)/2}),i=e.state.info.options,r=i.render||e.getHelper(n,"info");if(r){var o=e.getTokenAt(n,!0);if(o){var u=r(o,i,e,n);u&&function(e,t,n){var i=document.createElement("div");i.className="CodeMirror-info",i.appendChild(n),document.body.appendChild(i);var r=i.getBoundingClientRect(),o=window.getComputedStyle(i),u=r.right-r.left+parseFloat(o.marginLeft)+parseFloat(o.marginRight),l=r.bottom-r.top+parseFloat(o.marginTop)+parseFloat(o.marginBottom),d=t.bottom;l>window.innerHeight-t.bottom-15&&t.top>window.innerHeight-t.bottom&&(d=t.top-l);d<0&&(d=t.bottom);var f,c=Math.max(0,window.innerWidth-u-15);c>t.left&&(c=t.left);i.style.opacity="1",i.style.top=d+"px",i.style.left=c+"px";var p=function(){clearTimeout(f)},m=function(){clearTimeout(f),f=setTimeout(s,200)},s=function(){a.default.off(i,"mouseover",p),a.default.off(i,"mouseout",m),a.default.off(e.getWrapperElement(),"mouseout",m),i.style.opacity?(i.style.opacity="0",setTimeout((function(){i.parentNode&&i.parentNode.removeChild(i)}),600)):i.parentNode&&i.parentNode.removeChild(i)};a.default.on(i,"mouseover",p),a.default.on(i,"mouseout",m),a.default.on(e.getWrapperElement(),"mouseout",m)}(e,t,u)}}}(e,r)},d=function(e){var t=e.state.info.options;return t&&t.hoverTime||500}(e);n.hoverTimeout=setTimeout(l,d),a.default.on(document,"mousemove",o),a.default.on(e.getWrapperElement(),"mouseout",u)}}a.default.defineOption("info",!1,(function(e,t,n){if(n&&n!==a.default.Init){var i=e.state.info.onMouseOver;a.default.off(e.getWrapperElement(),"mouseover",i),clearTimeout(e.state.info.hoverTimeout),delete e.state.info}if(t){var o=e.state.info=function(e){return{options:e instanceof Function?{render:e}:!0===e?{}:e}}(t);o.onMouseOver=r.bind(null,e),a.default.on(e.getWrapperElement(),"mouseover",o.onMouseOver)}}))}}]);
2
+ //# sourceMappingURL=267.962ef6a4.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/267.962ef6a4.chunk.js","mappings":"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","sources":["../node_modules/codemirror-graphql/src/info.ts","../node_modules/codemirror-graphql/src/utils/SchemaReference.ts","../node_modules/codemirror-graphql/src/utils/forEachState.ts","../node_modules/codemirror-graphql/src/utils/getTypeInfo.ts","../node_modules/codemirror-graphql/src/utils/info-addon.ts"],"sourcesContent":["/* @flow */\n/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport {\n GraphQLDirective,\n GraphQLEnumType,\n GraphQLEnumValue,\n GraphQLInputField,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLSchema,\n GraphQLType,\n} from 'graphql';\nimport CodeMirror from 'codemirror';\n\nimport getTypeInfo, { TypeInfo } from './utils/getTypeInfo';\nimport {\n getArgumentReference,\n getDirectiveReference,\n getEnumValueReference,\n getFieldReference,\n getTypeReference,\n SchemaReference,\n} from './utils/SchemaReference';\nimport './utils/info-addon';\nimport type { Maybe } from 'graphql-language-service';\n\nexport interface GraphQLInfoOptions {\n schema?: GraphQLSchema;\n onClick?: Maybe<(ref: Maybe<SchemaReference>, e: MouseEvent) => void>;\n renderDescription?: (str: string) => string;\n render?: () => string;\n}\n\n/**\n * Registers GraphQL \"info\" tooltips for CodeMirror.\n *\n * When hovering over a token, this presents a tooltip explaining it.\n *\n * Options:\n *\n * - schema: GraphQLSchema provides positionally relevant info.\n * - hoverTime: The number of ms to wait before showing info. (Default 500)\n * - renderDescription: Convert a description to some HTML, Useful since\n * descriptions are often Markdown formatted.\n * - onClick: A function called when a named thing is clicked.\n *\n */\nCodeMirror.registerHelper(\n 'info',\n 'graphql',\n (token: CodeMirror.Token, options: GraphQLInfoOptions) => {\n if (!options.schema || !token.state) {\n return;\n }\n\n const state = token.state;\n const kind = state.kind;\n const step = state.step;\n const typeInfo = getTypeInfo(options.schema, token.state);\n\n // Given a Schema and a Token, produce the contents of an info tooltip.\n // To do this, create a div element that we will render \"into\" and then pass\n // it to various rendering functions.\n if (\n (kind === 'Field' && step === 0 && typeInfo.fieldDef) ||\n (kind === 'AliasedField' && step === 2 && typeInfo.fieldDef)\n ) {\n const into = document.createElement('div');\n renderField(into, typeInfo, options);\n renderDescription(into, options, typeInfo.fieldDef as any);\n return into;\n } else if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) {\n const into = document.createElement('div');\n renderDirective(into, typeInfo, options);\n renderDescription(into, options, typeInfo.directiveDef);\n return into;\n } else if (kind === 'Argument' && step === 0 && typeInfo.argDef) {\n const into = document.createElement('div');\n renderArg(into, typeInfo, options);\n renderDescription(into, options, typeInfo.argDef);\n return into;\n } else if (\n kind === 'EnumValue' &&\n typeInfo.enumValue &&\n typeInfo.enumValue.description\n ) {\n const into = document.createElement('div');\n renderEnumValue(into, typeInfo, options);\n renderDescription(into, options, typeInfo.enumValue);\n return into;\n } else if (\n kind === 'NamedType' &&\n typeInfo.type &&\n (typeInfo.type as GraphQLObjectType).description\n ) {\n const into = document.createElement('div');\n renderType(into, typeInfo, options, typeInfo.type);\n renderDescription(into, options, typeInfo.type);\n return into;\n }\n },\n);\n\nfunction renderField(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n) {\n renderQualifiedField(into, typeInfo, options);\n renderTypeAnnotation(into, typeInfo, options, typeInfo.type);\n}\n\nfunction renderQualifiedField(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n) {\n const fieldName = typeInfo.fieldDef?.name || '';\n if (fieldName.slice(0, 2) !== '__') {\n renderType(into, typeInfo, options, typeInfo.parentType);\n text(into, '.');\n }\n text(into, fieldName, 'field-name', options, getFieldReference(typeInfo));\n}\n\nfunction renderDirective(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n) {\n const name = '@' + (typeInfo.directiveDef?.name || '');\n text(into, name, 'directive-name', options, getDirectiveReference(typeInfo));\n}\n\nfunction renderArg(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n) {\n if (typeInfo.directiveDef) {\n renderDirective(into, typeInfo, options);\n } else if (typeInfo.fieldDef) {\n renderQualifiedField(into, typeInfo, options);\n }\n\n const name = typeInfo.argDef?.name || '';\n text(into, '(');\n text(into, name, 'arg-name', options, getArgumentReference(typeInfo));\n renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType);\n text(into, ')');\n}\n\nfunction renderTypeAnnotation(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n t: Maybe<GraphQLType>,\n) {\n text(into, ': ');\n renderType(into, typeInfo, options, t);\n}\n\nfunction renderEnumValue(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n) {\n const name = typeInfo.enumValue?.name || '';\n renderType(into, typeInfo, options, typeInfo.inputType);\n text(into, '.');\n text(into, name, 'enum-value', options, getEnumValueReference(typeInfo));\n}\n\nfunction renderType(\n into: HTMLElement,\n typeInfo: TypeInfo,\n options: GraphQLInfoOptions,\n t: Maybe<GraphQLType>,\n) {\n if (t instanceof GraphQLNonNull) {\n renderType(into, typeInfo, options, t.ofType);\n text(into, '!');\n } else if (t instanceof GraphQLList) {\n text(into, '[');\n renderType(into, typeInfo, options, t.ofType);\n text(into, ']');\n } else {\n text(\n into,\n t?.name || '',\n 'type-name',\n options,\n getTypeReference(typeInfo, t),\n );\n }\n}\n\nfunction renderDescription(\n into: HTMLElement,\n options: GraphQLInfoOptions,\n def:\n | GraphQLInputField\n | GraphQLEnumType\n | GraphQLDirective\n | GraphQLEnumValue\n | GraphQLType,\n) {\n const description = (def as GraphQLInputField).description;\n if (description) {\n const descriptionDiv = document.createElement('div');\n descriptionDiv.className = 'info-description';\n if (options.renderDescription) {\n descriptionDiv.innerHTML = options.renderDescription(description);\n } else {\n descriptionDiv.appendChild(document.createTextNode(description));\n }\n into.appendChild(descriptionDiv);\n }\n\n renderDeprecation(into, options, def);\n}\n\nfunction renderDeprecation(\n into: HTMLElement,\n options: GraphQLInfoOptions,\n def:\n | GraphQLInputField\n | GraphQLEnumType\n | GraphQLDirective\n | GraphQLEnumValue\n | GraphQLType,\n) {\n const reason = (def as GraphQLInputField).deprecationReason;\n if (reason) {\n const deprecationDiv = document.createElement('div');\n deprecationDiv.className = 'info-deprecation';\n if (options.renderDescription) {\n deprecationDiv.innerHTML = options.renderDescription(reason);\n } else {\n deprecationDiv.appendChild(document.createTextNode(reason));\n }\n const label = document.createElement('span');\n label.className = 'info-deprecation-label';\n label.appendChild(document.createTextNode('Deprecated: '));\n deprecationDiv.insertBefore(label, deprecationDiv.firstChild);\n into.appendChild(deprecationDiv);\n }\n}\n\nfunction text(\n into: HTMLElement,\n content: string,\n className = '',\n options: GraphQLInfoOptions = { onClick: null },\n ref: Maybe<SchemaReference> = null,\n) {\n if (className) {\n const onClick = options.onClick;\n let node;\n if (onClick) {\n node = document.createElement('a');\n\n // Providing a href forces proper a tag behavior, though we don't actually\n // want clicking the node to navigate anywhere.\n node.href = 'javascript:void 0'; // eslint-disable-line no-script-url\n node.addEventListener('click', (e: MouseEvent) => {\n onClick(ref, e);\n });\n } else {\n node = document.createElement('span');\n }\n node.className = className;\n node.appendChild(document.createTextNode(content));\n into.appendChild(node);\n } else {\n into.appendChild(document.createTextNode(content));\n }\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport { getNamedType, GraphQLSchema } from 'graphql';\n\nimport type {\n GraphQLArgument,\n GraphQLDirective,\n GraphQLEnumValue,\n GraphQLEnumType,\n GraphQLField,\n GraphQLNamedType,\n} from 'graphql';\nimport { Maybe } from 'graphql/jsutils/Maybe';\nimport { TypeInfo } from './getTypeInfo';\n\nexport type SchemaReference =\n | FieldReference\n | DirectiveReference\n | ArgumentReference\n | EnumValueReference\n | TypeReference;\n\nexport type FieldReference = {\n kind: 'Field';\n field: GraphQLField<any, any>;\n type: Maybe<GraphQLNamedType>;\n schema?: GraphQLSchema;\n};\n\nexport type DirectiveReference = {\n kind: 'Directive';\n directive: GraphQLDirective;\n schema?: GraphQLSchema;\n};\n\nexport type ArgumentReference = {\n kind: 'Argument';\n argument: GraphQLArgument;\n field?: GraphQLField<any, any>;\n type?: GraphQLNamedType;\n directive?: GraphQLDirective;\n schema?: GraphQLSchema;\n};\n\nexport type EnumValueReference = {\n kind: 'EnumValue';\n value?: GraphQLEnumValue;\n type?: GraphQLEnumType;\n schema?: GraphQLSchema;\n};\n\nexport type TypeReference = {\n kind: 'Type';\n type: GraphQLNamedType;\n schema?: GraphQLSchema;\n};\n\nexport function getFieldReference(typeInfo: any): FieldReference {\n return {\n kind: 'Field',\n schema: typeInfo.schema,\n field: typeInfo.fieldDef,\n type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType,\n };\n}\n\nexport function getDirectiveReference(typeInfo: any): DirectiveReference {\n return {\n kind: 'Directive',\n schema: typeInfo.schema,\n directive: typeInfo.directiveDef,\n };\n}\n\nexport function getArgumentReference(typeInfo: any): ArgumentReference {\n return typeInfo.directiveDef\n ? {\n kind: 'Argument',\n schema: typeInfo.schema,\n argument: typeInfo.argDef,\n directive: typeInfo.directiveDef,\n }\n : {\n kind: 'Argument',\n schema: typeInfo.schema,\n argument: typeInfo.argDef,\n field: typeInfo.fieldDef,\n type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType,\n };\n}\n\nexport function getEnumValueReference(typeInfo: TypeInfo): EnumValueReference {\n return {\n kind: 'EnumValue',\n value: typeInfo.enumValue || undefined,\n // $FlowFixMe\n type: typeInfo.inputType\n ? (getNamedType(typeInfo.inputType) as GraphQLEnumType)\n : undefined,\n };\n}\n\n// Note: for reusability, getTypeReference can produce a reference to any type,\n// though it defaults to the current type.\nexport function getTypeReference(\n typeInfo: any,\n type?: Maybe<GraphQLNamedType>,\n): TypeReference {\n return {\n kind: 'Type',\n schema: typeInfo.schema,\n type: type || typeInfo.type,\n };\n}\n\nfunction isMetaField(fieldDef: GraphQLField<any, any>) {\n return fieldDef.name.slice(0, 2) === '__';\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport type { State, Maybe } from 'graphql-language-service';\n\n// Utility for iterating through a CodeMirror parse state stack bottom-up.\nexport default function forEachState(stack: State, fn: (state: State) => void) {\n const reverseStateStack = [];\n let state: Maybe<State> = stack;\n while (state && state.kind) {\n reverseStateStack.push(state);\n state = state.prevState;\n }\n for (let i = reverseStateStack.length - 1; i >= 0; i--) {\n fn(reverseStateStack[i]);\n }\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport {\n isCompositeType,\n getNullableType,\n getNamedType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLList,\n GraphQLSchema,\n GraphQLType,\n GraphQLObjectType,\n GraphQLField,\n GraphQLDirective,\n GraphQLArgument,\n GraphQLInputType,\n GraphQLEnumValue,\n GraphQLInputFieldMap,\n} from 'graphql';\nimport type { State, Maybe } from 'graphql-language-service';\n\nimport {\n SchemaMetaFieldDef,\n TypeMetaFieldDef,\n TypeNameMetaFieldDef,\n} from 'graphql/type/introspection';\n\nimport forEachState from './forEachState';\n\nexport interface TypeInfo {\n schema: GraphQLSchema;\n type?: Maybe<GraphQLType>;\n parentType?: Maybe<GraphQLType>;\n inputType?: Maybe<GraphQLInputType>;\n directiveDef?: Maybe<GraphQLDirective>;\n fieldDef?: Maybe<GraphQLField<any, any>>;\n argDef?: Maybe<GraphQLArgument>;\n argDefs?: Maybe<GraphQLArgument[]>;\n enumValue?: Maybe<GraphQLEnumValue>;\n objectFieldDefs?: Maybe<GraphQLInputFieldMap>;\n}\n\n/**\n * Utility for collecting rich type information given any token's state\n * from the graphql-mode parser.\n */\nexport default function getTypeInfo(schema: GraphQLSchema, tokenState: State) {\n const info: TypeInfo = {\n schema,\n type: null,\n parentType: null,\n inputType: null,\n directiveDef: null,\n fieldDef: null,\n argDef: null,\n argDefs: null,\n objectFieldDefs: null,\n };\n\n forEachState(tokenState, (state: State) => {\n switch (state.kind) {\n case 'Query':\n case 'ShortQuery':\n info.type = schema.getQueryType();\n break;\n case 'Mutation':\n info.type = schema.getMutationType();\n break;\n case 'Subscription':\n info.type = schema.getSubscriptionType();\n break;\n case 'InlineFragment':\n case 'FragmentDefinition':\n if (state.type) {\n info.type = schema.getType(state.type);\n }\n break;\n case 'Field':\n case 'AliasedField':\n info.fieldDef =\n info.type && state.name\n ? getFieldDef(schema, info.parentType, state.name)\n : null;\n info.type = info.fieldDef && info.fieldDef.type;\n break;\n case 'SelectionSet':\n info.parentType = info.type ? getNamedType(info.type) : null;\n break;\n case 'Directive':\n info.directiveDef = state.name ? schema.getDirective(state.name) : null;\n break;\n case 'Arguments':\n const parentDef = state.prevState\n ? state.prevState.kind === 'Field'\n ? info.fieldDef\n : state.prevState.kind === 'Directive'\n ? info.directiveDef\n : state.prevState.kind === 'AliasedField'\n ? state.prevState.name &&\n getFieldDef(schema, info.parentType, state.prevState.name)\n : null\n : null;\n info.argDefs = parentDef ? (parentDef.args as GraphQLArgument[]) : null;\n break;\n case 'Argument':\n info.argDef = null;\n if (info.argDefs) {\n for (let i = 0; i < info.argDefs.length; i++) {\n if (info.argDefs[i].name === state.name) {\n info.argDef = info.argDefs[i];\n break;\n }\n }\n }\n info.inputType = info.argDef && info.argDef.type;\n break;\n case 'EnumValue':\n const enumType = info.inputType ? getNamedType(info.inputType) : null;\n info.enumValue =\n enumType instanceof GraphQLEnumType\n ? find(\n enumType.getValues() as GraphQLEnumValue[],\n val => val.value === state.name,\n )\n : null;\n break;\n case 'ListValue':\n const nullableType = info.inputType\n ? getNullableType(info.inputType)\n : null;\n info.inputType =\n nullableType instanceof GraphQLList ? nullableType.ofType : null;\n break;\n case 'ObjectValue':\n const objectType = info.inputType ? getNamedType(info.inputType) : null;\n info.objectFieldDefs =\n objectType instanceof GraphQLInputObjectType\n ? objectType.getFields()\n : null;\n break;\n case 'ObjectField':\n const objectField =\n state.name && info.objectFieldDefs\n ? info.objectFieldDefs[state.name]\n : null;\n info.inputType = objectField && objectField.type;\n break;\n case 'NamedType':\n info.type = state.name ? schema.getType(state.name) : null;\n break;\n }\n });\n\n return info;\n}\n\n// Gets the field definition given a type and field name\nfunction getFieldDef(\n schema: GraphQLSchema,\n type: Maybe<GraphQLType>,\n fieldName: string,\n) {\n if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === type) {\n return SchemaMetaFieldDef;\n }\n if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === type) {\n return TypeMetaFieldDef;\n }\n if (fieldName === TypeNameMetaFieldDef.name && isCompositeType(type)) {\n return TypeNameMetaFieldDef;\n }\n if (type && (type as GraphQLObjectType).getFields) {\n return (type as GraphQLObjectType).getFields()[fieldName];\n }\n}\n\n// Returns the first item in the array which causes predicate to return truthy.\nfunction find<T>(array: T[], predicate: (item: T) => boolean) {\n for (let i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return array[i];\n }\n }\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror from 'codemirror';\nimport { GraphQLInfoOptions } from '../info';\n\nCodeMirror.defineOption(\n 'info',\n false,\n (\n cm: CodeMirror.Editor,\n options: GraphQLInfoOptions,\n old?: GraphQLInfoOptions,\n ) => {\n if (old && old !== CodeMirror.Init) {\n const oldOnMouseOver = cm.state.info.onMouseOver;\n CodeMirror.off(cm.getWrapperElement(), 'mouseover', oldOnMouseOver);\n clearTimeout(cm.state.info.hoverTimeout);\n delete cm.state.info;\n }\n\n if (options) {\n const state: Record<string, any> = (cm.state.info = createState(options));\n state.onMouseOver = onMouseOver.bind(null, cm);\n CodeMirror.on(cm.getWrapperElement(), 'mouseover', state.onMouseOver);\n }\n },\n);\n\nfunction createState(options: GraphQLInfoOptions) {\n return {\n options:\n options instanceof Function\n ? { render: options }\n : options === true\n ? {}\n : options,\n };\n}\n\nfunction getHoverTime(cm: CodeMirror.Editor) {\n const options = cm.state.info.options;\n return (options && options.hoverTime) || 500;\n}\n\nfunction onMouseOver(cm: CodeMirror.Editor, e: MouseEvent) {\n const state = cm.state.info;\n\n const target = e.target || e.srcElement;\n\n if (!(target instanceof HTMLElement)) {\n return;\n }\n if (target.nodeName !== 'SPAN' || state.hoverTimeout !== undefined) {\n return;\n }\n\n const box = target.getBoundingClientRect();\n\n const onMouseMove = function () {\n clearTimeout(state.hoverTimeout);\n state.hoverTimeout = setTimeout(onHover, hoverTime);\n };\n\n const onMouseOut = function () {\n CodeMirror.off(document, 'mousemove', onMouseMove);\n CodeMirror.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n clearTimeout(state.hoverTimeout);\n state.hoverTimeout = undefined;\n };\n\n const onHover = function () {\n CodeMirror.off(document, 'mousemove', onMouseMove);\n CodeMirror.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n state.hoverTimeout = undefined;\n onMouseHover(cm, box);\n };\n\n const hoverTime = getHoverTime(cm);\n state.hoverTimeout = setTimeout(onHover, hoverTime);\n\n CodeMirror.on(document, 'mousemove', onMouseMove);\n CodeMirror.on(cm.getWrapperElement(), 'mouseout', onMouseOut);\n}\n\nfunction onMouseHover(cm: CodeMirror.Editor, box: DOMRect) {\n const pos = cm.coordsChar({\n left: (box.left + box.right) / 2,\n top: (box.top + box.bottom) / 2,\n });\n\n const state = cm.state.info;\n const options = state.options;\n const render = options.render || cm.getHelper(pos, 'info');\n if (render) {\n const token = cm.getTokenAt(pos, true);\n if (token) {\n const info: HTMLDivElement = render(token, options, cm, pos);\n if (info) {\n showPopup(cm, box, info);\n }\n }\n }\n}\n\nfunction showPopup(cm: CodeMirror.Editor, box: DOMRect, info: HTMLDivElement) {\n const popup = document.createElement('div');\n popup.className = 'CodeMirror-info';\n popup.appendChild(info);\n document.body.appendChild(popup);\n\n const popupBox = popup.getBoundingClientRect();\n const popupStyle = window.getComputedStyle(popup);\n const popupWidth =\n popupBox.right -\n popupBox.left +\n parseFloat(popupStyle.marginLeft) +\n parseFloat(popupStyle.marginRight);\n const popupHeight =\n popupBox.bottom -\n popupBox.top +\n parseFloat(popupStyle.marginTop) +\n parseFloat(popupStyle.marginBottom);\n\n let topPos = box.bottom;\n if (\n popupHeight > window.innerHeight - box.bottom - 15 &&\n box.top > window.innerHeight - box.bottom\n ) {\n topPos = box.top - popupHeight;\n }\n\n if (topPos < 0) {\n topPos = box.bottom;\n }\n\n let leftPos = Math.max(0, window.innerWidth - popupWidth - 15);\n if (leftPos > box.left) {\n leftPos = box.left;\n }\n\n popup.style.opacity = '1';\n popup.style.top = topPos + 'px';\n popup.style.left = leftPos + 'px';\n\n let popupTimeout: NodeJS.Timeout;\n\n const onMouseOverPopup = function () {\n clearTimeout(popupTimeout);\n };\n\n const onMouseOut = function () {\n clearTimeout(popupTimeout);\n popupTimeout = setTimeout(hidePopup, 200);\n };\n\n const hidePopup = function () {\n CodeMirror.off(popup, 'mouseover', onMouseOverPopup);\n CodeMirror.off(popup, 'mouseout', onMouseOut);\n CodeMirror.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n\n if (popup.style.opacity) {\n popup.style.opacity = '0';\n setTimeout(() => {\n if (popup.parentNode) {\n popup.parentNode.removeChild(popup);\n }\n }, 600);\n } else if (popup.parentNode) {\n popup.parentNode.removeChild(popup);\n }\n };\n\n CodeMirror.on(popup, 'mouseover', onMouseOverPopup);\n CodeMirror.on(popup, 'mouseout', onMouseOut);\n CodeMirror.on(cm.getWrapperElement(), 'mouseout', onMouseOut);\n}\n"],"names":["renderQualifiedField","into","typeInfo","options","fieldName","fieldDef","_a","name","slice","renderType","parentType","text","SchemaReference_1","renderDirective","directiveDef","renderTypeAnnotation","t","graphql_1","ofType","renderDescription","def","description","descriptionDiv","document","createElement","className","innerHTML","appendChild","createTextNode","reason","deprecationReason","deprecationDiv","label","insertBefore","firstChild","renderDeprecation","content","ref","onClick","onClick_1","node","href","addEventListener","e","require","codemirror_1","registerHelper","token","schema","state","kind","step","getTypeInfo_1","type","renderField","argDef","inputType","renderArg","enumValue","renderEnumValue","isMetaField","exports","field","directive","argument","value","undefined","stack","fn","reverseStateStack","push","prevState","i","length","getFieldDef","introspection_1","getQueryType","getFields","tokenState","info","argDefs","objectFieldDefs","forEachState_1","getMutationType","getSubscriptionType","getType","getDirective","parentDef","args","enumType","array","predicate","find","getValues","val","nullableType","objectType","objectField","onMouseOver","cm","target","srcElement","HTMLElement","nodeName","hoverTimeout","box","getBoundingClientRect","onMouseMove","clearTimeout","setTimeout","onHover","hoverTime","onMouseOut","off","getWrapperElement","pos","coordsChar","left","right","top","bottom","render","getHelper","getTokenAt","popup","body","popupBox","popupStyle","window","getComputedStyle","popupWidth","parseFloat","marginLeft","marginRight","popupHeight","marginTop","marginBottom","topPos","innerHeight","popupTimeout","leftPos","Math","max","innerWidth","style","opacity","onMouseOverPopup","hidePopup","parentNode","removeChild","on","showPopup","onMouseHover","getHoverTime","defineOption","old","Init","oldOnMouseOver","Function","createState","bind"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self.webpackChunkdashboard=self.webpackChunkdashboard||[]).push([[306,756,849],{2756:function(e,t,n){!function(e){var t=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),n=e.Pos,r={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function i(e){return e&&e.bracketRegex||/[(){}[\]]/}function o(e,t,o){var a=e.getLineHandle(t.line),s=t.ch-1,c=o&&o.afterCursor;null==c&&(c=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var f=i(o),h=!c&&s>=0&&f.test(a.text.charAt(s))&&r[a.text.charAt(s)]||f.test(a.text.charAt(s+1))&&r[a.text.charAt(++s)];if(!h)return null;var u=">"==h.charAt(1)?1:-1;if(o&&o.strict&&u>0!=(s==t.ch))return null;var m=e.getTokenTypeAt(n(t.line,s+1)),d=l(e,n(t.line,s+(u>0?1:0)),u,m,o);return null==d?null:{from:n(t.line,s),to:d&&d.pos,match:d&&d.ch==h.charAt(0),forward:u>0}}function l(e,t,o,l,a){for(var s=a&&a.maxScanLineLength||1e4,c=a&&a.maxScanLines||1e3,f=[],h=i(a),u=o>0?Math.min(t.line+c,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-c),m=t.line;m!=u;m+=o){var d=e.getLine(m);if(d){var g=o>0?0:d.length-1,p=o>0?d.length:-1;if(!(d.length>s))for(m==t.line&&(g=t.ch-(o<0?1:0));g!=p;g+=o){var C=d.charAt(g);if(h.test(C)&&(void 0===l||(e.getTokenTypeAt(n(m,g+1))||"")==(l||""))){var v=r[C];if(v&&">"==v.charAt(1)==o>0)f.push(C);else{if(!f.length)return{pos:n(m,g),ch:C};f.pop()}}}}}return m-o!=(o>0?e.lastLine():e.firstLine())&&null}function a(e,r,i){for(var l=e.state.matchBrackets.maxHighlightLineLength||1e3,a=i&&i.highlightNonMatching,s=[],c=e.listSelections(),f=0;f<c.length;f++){var h=c[f].empty()&&o(e,c[f].head,i);if(h&&(h.match||!1!==a)&&e.getLine(h.from.line).length<=l){var u=h.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";s.push(e.markText(h.from,n(h.from.line,h.from.ch+1),{className:u})),h.to&&e.getLine(h.to.line).length<=l&&s.push(e.markText(h.to,n(h.to.line,h.to.ch+1),{className:u}))}}if(s.length){t&&e.state.focused&&e.focus();var m=function(){e.operation((function(){for(var e=0;e<s.length;e++)s[e].clear()}))};if(!r)return m;setTimeout(m,800)}}function s(e){e.operation((function(){e.state.matchBrackets.currentlyHighlighted&&(e.state.matchBrackets.currentlyHighlighted(),e.state.matchBrackets.currentlyHighlighted=null),e.state.matchBrackets.currentlyHighlighted=a(e,!1,e.state.matchBrackets)}))}function c(e){e.state.matchBrackets&&e.state.matchBrackets.currentlyHighlighted&&(e.state.matchBrackets.currentlyHighlighted(),e.state.matchBrackets.currentlyHighlighted=null)}e.defineOption("matchBrackets",!1,(function(t,n,r){r&&r!=e.Init&&(t.off("cursorActivity",s),t.off("focus",s),t.off("blur",c),c(t)),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",s),t.on("focus",s),t.on("blur",c))})),e.defineExtension("matchBrackets",(function(){a(this,!0)})),e.defineExtension("findMatchingBracket",(function(e,t,n){return(n||"boolean"==typeof t)&&(n?(n.strict=t,t=n):t=t?{strict:!0}:null),o(this,e,t)})),e.defineExtension("scanForBracket",(function(e,t,n,r){return l(this,e,t,n,r)}))}(n(3668))},6849:function(e,t,n){!function(e){"use strict";var t,n,r=e.Pos;function i(e){var t=e.flags;return null!=t?t:(e.ignoreCase?"i":"")+(e.global?"g":"")+(e.multiline?"m":"")}function o(e,t){for(var n=i(e),r=n,o=0;o<t.length;o++)-1==r.indexOf(t.charAt(o))&&(r+=t.charAt(o));return n==r?e:new RegExp(e.source,r)}function l(e){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(e.source)}function a(e,t,n){t=o(t,"g");for(var i=n.line,l=n.ch,a=e.lastLine();i<=a;i++,l=0){t.lastIndex=l;var s=e.getLine(i),c=t.exec(s);if(c)return{from:r(i,c.index),to:r(i,c.index+c[0].length),match:c}}}function s(e,t,n){if(!l(t))return a(e,t,n);t=o(t,"gm");for(var i,s=1,c=n.line,f=e.lastLine();c<=f;){for(var h=0;h<s&&!(c>f);h++){var u=e.getLine(c++);i=null==i?u:i+"\n"+u}s*=2,t.lastIndex=n.ch;var m=t.exec(i);if(m){var d=i.slice(0,m.index).split("\n"),g=m[0].split("\n"),p=n.line+d.length-1,C=d[d.length-1].length;return{from:r(p,C),to:r(p+g.length-1,1==g.length?C+g[0].length:g[g.length-1].length),match:m}}}}function c(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var o=t.exec(e);if(!o)break;var l=o.index+o[0].length;if(l>e.length-n)break;(!r||l>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function f(e,t,n){t=o(t,"g");for(var i=n.line,l=n.ch,a=e.firstLine();i>=a;i--,l=-1){var s=e.getLine(i),f=c(s,t,l<0?0:s.length-l);if(f)return{from:r(i,f.index),to:r(i,f.index+f[0].length),match:f}}}function h(e,t,n){if(!l(t))return f(e,t,n);t=o(t,"gm");for(var i,a=1,s=e.getLine(n.line).length-n.ch,h=n.line,u=e.firstLine();h>=u;){for(var m=0;m<a&&h>=u;m++){var d=e.getLine(h--);i=null==i?d:d+"\n"+i}a*=2;var g=c(i,t,s);if(g){var p=i.slice(0,g.index).split("\n"),C=g[0].split("\n"),v=h+p.length,S=p[p.length-1].length;return{from:r(v,S),to:r(v+C.length-1,1==C.length?S+C[0].length:C[C.length-1].length),match:g}}}}function u(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var l=i+o>>1,a=r(e.slice(0,l)).length;if(a==n)return l;a>n?o=l:i=l+1}}function m(e,i,o,l){if(!i.length)return null;var a=l?t:n,s=a(i).split(/\r|\n\r?/);e:for(var c=o.line,f=o.ch,h=e.lastLine()+1-s.length;c<=h;c++,f=0){var m=e.getLine(c).slice(f),d=a(m);if(1==s.length){var g=d.indexOf(s[0]);if(-1==g)continue e;return o=u(m,d,g,a)+f,{from:r(c,u(m,d,g,a)+f),to:r(c,u(m,d,g+s[0].length,a)+f)}}var p=d.length-s[0].length;if(d.slice(p)==s[0]){for(var C=1;C<s.length-1;C++)if(a(e.getLine(c+C))!=s[C])continue e;var v=e.getLine(c+s.length-1),S=a(v),L=s[s.length-1];if(S.slice(0,L.length)==L)return{from:r(c,u(m,d,p,a)+f),to:r(c+s.length-1,u(v,S,L.length,a))}}}}function d(e,i,o,l){if(!i.length)return null;var a=l?t:n,s=a(i).split(/\r|\n\r?/);e:for(var c=o.line,f=o.ch,h=e.firstLine()-1+s.length;c>=h;c--,f=-1){var m=e.getLine(c);f>-1&&(m=m.slice(0,f));var d=a(m);if(1==s.length){var g=d.lastIndexOf(s[0]);if(-1==g)continue e;return{from:r(c,u(m,d,g,a)),to:r(c,u(m,d,g+s[0].length,a))}}var p=s[s.length-1];if(d.slice(0,p.length)==p){var C=1;for(o=c-s.length+1;C<s.length-1;C++)if(a(e.getLine(o+C))!=s[C])continue e;var v=e.getLine(c+1-s.length),S=a(v);if(S.slice(S.length-s[0].length)==s[0])return{from:r(c+1-s.length,u(v,S,v.length-s[0].length,a)),to:r(c,u(m,d,p.length,a))}}}}function g(e,t,n,i){var l;this.atOccurrence=!1,this.afterEmptyMatch=!1,this.doc=e,n=n?e.clipPos(n):r(0,0),this.pos={from:n,to:n},"object"==typeof i?l=i.caseFold:(l=i,i=null),"string"==typeof t?(null==l&&(l=!1),this.matches=function(n,r){return(n?d:m)(e,t,r,l)}):(t=o(t,"gm"),i&&!1===i.multiline?this.matches=function(n,r){return(n?f:a)(e,t,r)}:this.matches=function(n,r){return(n?h:s)(e,t,r)})}String.prototype.normalize?(t=function(e){return e.normalize("NFD").toLowerCase()},n=function(e){return e.normalize("NFD")}):(t=function(e){return e.toLowerCase()},n=function(e){return e}),g.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){var n=this.doc.clipPos(t?this.pos.from:this.pos.to);if(this.afterEmptyMatch&&this.atOccurrence&&(n=r(n.line,n.ch),t?(n.ch--,n.ch<0&&(n.line--,n.ch=(this.doc.getLine(n.line)||"").length)):(n.ch++,n.ch>(this.doc.getLine(n.line)||"").length&&(n.ch=0,n.line++)),0!=e.cmpPos(n,this.doc.clipPos(n))))return this.atOccurrence=!1;var i=this.matches(t,n);if(this.afterEmptyMatch=i&&0==e.cmpPos(i.from,i.to),i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var o=r(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:o,to:o},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",(function(e,t,n){return new g(this.doc,e,t,n)})),e.defineDocExtension("getSearchCursor",(function(e,t,n){return new g(this,e,t,n)})),e.defineExtension("selectMatches",(function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)}))}(n(3668))},8306:function(e,t,n){!function(e){"use strict";var t=e.commands,n=e.Pos;function r(t,r,i){if(i<0&&0==r.ch)return t.clipPos(n(r.line-1));var o=t.getLine(r.line);if(i>0&&r.ch>=o.length)return t.clipPos(n(r.line+1,0));for(var l,a="start",s=r.ch,c=s,f=i<0?0:o.length,h=0;c!=f;c+=i,h++){var u=o.charAt(i<0?c-1:c),m="_"!=u&&e.isWordChar(u)?"w":"o";if("w"==m&&u.toUpperCase()==u&&(m="W"),"start"==a)"o"!=m?(a="in",l=m):s=c+i;else if("in"==a&&l!=m){if("w"==l&&"W"==m&&i<0&&c--,"W"==l&&"w"==m&&i>0){if(c==s+1){l="w";continue}c--}break}}return n(r.line,c)}function i(e,t){e.extendSelectionsBy((function(n){return e.display.shift||e.doc.extend||n.empty()?r(e.doc,n.head,t):t<0?n.from():n.to()}))}function o(t,r){if(t.isReadOnly())return e.Pass;t.operation((function(){for(var e=t.listSelections().length,i=[],o=-1,l=0;l<e;l++){var a=t.listSelections()[l].head;if(!(a.line<=o)){var s=n(a.line+(r?0:1),0);t.replaceRange("\n",s,null,"+insertLine"),t.indentLine(s.line,null,!0),i.push({head:s,anchor:s}),o=a.line+1}}t.setSelections(i)})),t.execCommand("indentAuto")}function l(t,r){for(var i=r.ch,o=i,l=t.getLine(r.line);i&&e.isWordChar(l.charAt(i-1));)--i;for(;o<l.length&&e.isWordChar(l.charAt(o));)++o;return{from:n(r.line,i),to:n(r.line,o),word:l.slice(i,o)}}function a(e,t){for(var n=e.listSelections(),r=[],i=0;i<n.length;i++){var o=n[i],l=e.findPosV(o.anchor,t,"line",o.anchor.goalColumn),a=e.findPosV(o.head,t,"line",o.head.goalColumn);l.goalColumn=null!=o.anchor.goalColumn?o.anchor.goalColumn:e.cursorCoords(o.anchor,"div").left,a.goalColumn=null!=o.head.goalColumn?o.head.goalColumn:e.cursorCoords(o.head,"div").left;var s={anchor:l,head:a};r.push(o),r.push(s)}e.setSelections(r)}function s(t,n,r){for(var i=0;i<t.length;i++)if(0==e.cmpPos(t[i].from(),n)&&0==e.cmpPos(t[i].to(),r))return!0;return!1}t.goSubwordLeft=function(e){i(e,-1)},t.goSubwordRight=function(e){i(e,1)},t.scrollLineUp=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top+t.clientHeight,"local");e.getCursor().line>=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},t.scrollLineDown=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},t.splitSelectionByLine=function(e){for(var t=e.listSelections(),r=[],i=0;i<t.length;i++)for(var o=t[i].from(),l=t[i].to(),a=o.line;a<=l.line;++a)l.line>o.line&&a==l.line&&0==l.ch||r.push({anchor:a==o.line?o:n(a,0),head:a==l.line?l:n(a)});e.setSelections(r,0)},t.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},t.selectLine=function(e){for(var t=e.listSelections(),r=[],i=0;i<t.length;i++){var o=t[i];r.push({anchor:n(o.from().line,0),head:n(o.to().line+1,0)})}e.setSelections(r)},t.insertLineAfter=function(e){return o(e,!1)},t.insertLineBefore=function(e){return o(e,!0)},t.selectNextOccurrence=function(t){var r=t.getCursor("from"),i=t.getCursor("to"),o=t.state.sublimeFindFullWord==t.doc.sel;if(0==e.cmpPos(r,i)){var a=l(t,r);if(!a.word)return;t.setSelection(a.from,a.to),o=!0}else{var c=t.getRange(r,i),f=o?new RegExp("\\b"+c+"\\b"):c,h=t.getSearchCursor(f,i),u=h.findNext();if(u||(u=(h=t.getSearchCursor(f,n(t.firstLine(),0))).findNext()),!u||s(t.listSelections(),h.from(),h.to()))return;t.addSelection(h.from(),h.to())}o&&(t.state.sublimeFindFullWord=t.doc.sel)},t.skipAndSelectNextOccurrence=function(n){var r=n.getCursor("anchor"),i=n.getCursor("head");t.selectNextOccurrence(n),0!=e.cmpPos(r,i)&&n.doc.setSelections(n.doc.listSelections().filter((function(e){return e.anchor!=r||e.head!=i})))},t.addCursorToPrevLine=function(e){a(e,-1)},t.addCursorToNextLine=function(e){a(e,1)};var c="(){}[]";function f(t){for(var r=t.listSelections(),i=[],o=0;o<r.length;o++){var l=r[o],a=l.head,s=t.scanForBracket(a,-1);if(!s)return!1;for(;;){var f=t.scanForBracket(a,1);if(!f)return!1;if(f.ch==c.charAt(c.indexOf(s.ch)+1)){var h=n(s.pos.line,s.pos.ch+1);if(0!=e.cmpPos(h,l.from())||0!=e.cmpPos(f.pos,l.to())){i.push({anchor:h,head:f.pos});break}if(!(s=t.scanForBracket(s.pos,-1)))return!1}a=n(f.pos.line,f.pos.ch+1)}}return t.setSelections(i),!0}function h(e){return e?/\bpunctuation\b/.test(e)?e:void 0:null}function u(t,r,i){if(t.isReadOnly())return e.Pass;for(var o,l=t.listSelections(),a=[],s=0;s<l.length;s++){var c=l[s];if(!c.empty()){for(var f=c.from().line,h=c.to().line;s<l.length-1&&l[s+1].from().line==h;)h=l[++s].to().line;l[s].to().ch||h--,a.push(f,h)}}a.length?o=!0:a.push(t.firstLine(),t.lastLine()),t.operation((function(){for(var e=[],l=0;l<a.length;l+=2){var s=a[l],c=a[l+1],f=n(s,0),h=n(c),u=t.getRange(f,h,!1);r?u.sort((function(e,t){return e<t?-i:e==t?0:i})):u.sort((function(e,t){var n=e.toUpperCase(),r=t.toUpperCase();return n!=r&&(e=n,t=r),e<t?-i:e==t?0:i})),t.replaceRange(u,f,h),o&&e.push({anchor:f,head:n(c+1,0)})}o&&t.setSelections(e,0)}))}function m(t,n){t.operation((function(){for(var r=t.listSelections(),i=[],o=[],a=0;a<r.length;a++)(c=r[a]).empty()?(i.push(a),o.push("")):o.push(n(t.getRange(c.from(),c.to())));var s;for(t.replaceSelections(o,"around","case"),a=i.length-1;a>=0;a--){var c=r[i[a]];if(!(s&&e.cmpPos(c.head,s)>0)){var f=l(t,c.head);s=f.from,t.replaceRange(n(f.word),f.from,f.to)}}}))}function d(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var i=l(t,n);if(!i.word)return;n=i.from,r=i.to}return{from:n,to:r,query:t.getRange(n,r),word:i}}function g(e,t){var r=d(e);if(r){var i=r.query,o=e.getSearchCursor(i,t?r.to:r.from);(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):(o=e.getSearchCursor(i,t?n(e.firstLine(),0):e.clipPos(n(e.lastLine()))),(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):r.word&&e.setSelection(r.from,r.to))}}t.selectScope=function(e){f(e)||e.execCommand("selectAll")},t.selectBetweenBrackets=function(t){if(!f(t))return e.Pass},t.goToBracket=function(t){t.extendSelectionsBy((function(r){var i=t.scanForBracket(r.head,1,h(t.getTokenTypeAt(r.head)));if(i&&0!=e.cmpPos(i.pos,r.head))return i.pos;var o=t.scanForBracket(r.head,-1,h(t.getTokenTypeAt(n(r.head.line,r.head.ch+1))));return o&&n(o.pos.line,o.pos.ch+1)||r.head}))},t.swapLineUp=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.firstLine()-1,l=[],a=0;a<r.length;a++){var s=r[a],c=s.from().line-1,f=s.to().line;l.push({anchor:n(s.anchor.line-1,s.anchor.ch),head:n(s.head.line-1,s.head.ch)}),0!=s.to().ch||s.empty()||--f,c>o?i.push(c,f):i.length&&(i[i.length-1]=f),o=f}t.operation((function(){for(var e=0;e<i.length;e+=2){var r=i[e],o=i[e+1],a=t.getLine(r);t.replaceRange("",n(r,0),n(r+1,0),"+swapLine"),o>t.lastLine()?t.replaceRange("\n"+a,n(t.lastLine()),null,"+swapLine"):t.replaceRange(a+"\n",n(o,0),null,"+swapLine")}t.setSelections(l),t.scrollIntoView()}))},t.swapLineDown=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.lastLine()+1,l=r.length-1;l>=0;l--){var a=r[l],s=a.to().line+1,c=a.from().line;0!=a.to().ch||a.empty()||s--,s<o?i.push(s,c):i.length&&(i[i.length-1]=c),o=c}t.operation((function(){for(var e=i.length-2;e>=0;e-=2){var r=i[e],o=i[e+1],l=t.getLine(r);r==t.lastLine()?t.replaceRange("",n(r-1),n(r),"+swapLine"):t.replaceRange("",n(r,0),n(r+1,0),"+swapLine"),t.replaceRange(l+"\n",n(o,0),null,"+swapLine")}t.scrollIntoView()}))},t.toggleCommentIndented=function(e){e.toggleComment({indent:!0})},t.joinLines=function(e){for(var t=e.listSelections(),r=[],i=0;i<t.length;i++){for(var o=t[i],l=o.from(),a=l.line,s=o.to().line;i<t.length-1&&t[i+1].from().line==s;)s=t[++i].to().line;r.push({start:a,end:s,anchor:!o.empty()&&l})}e.operation((function(){for(var t=0,i=[],o=0;o<r.length;o++){for(var l,a=r[o],s=a.anchor&&n(a.anchor.line-t,a.anchor.ch),c=a.start;c<=a.end;c++){var f=c-t;c==a.end&&(l=n(f,e.getLine(f).length+1)),f<e.lastLine()&&(e.replaceRange(" ",n(f),n(f+1,/^\s*/.exec(e.getLine(f+1))[0].length)),++t)}i.push({anchor:s||l,head:l})}e.setSelections(i,0)}))},t.duplicateLine=function(e){e.operation((function(){for(var t=e.listSelections().length,r=0;r<t;r++){var i=e.listSelections()[r];i.empty()?e.replaceRange(e.getLine(i.head.line)+"\n",n(i.head.line,0)):e.replaceRange(e.getRange(i.from(),i.to()),i.from())}e.scrollIntoView()}))},t.sortLines=function(e){u(e,!0,1)},t.reverseSortLines=function(e){u(e,!0,-1)},t.sortLinesInsensitive=function(e){u(e,!1,1)},t.reverseSortLinesInsensitive=function(e){u(e,!1,-1)},t.nextBookmark=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var n=t.shift(),r=n.find();if(r)return t.push(n),e.setSelection(r.from,r.to)}},t.prevBookmark=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var n=t[t.length-1].find();if(n)return e.setSelection(n.from,n.to);t.pop()}},t.toggleBookmark=function(e){for(var t=e.listSelections(),n=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),r=0;r<t.length;r++){for(var i=t[r].from(),o=t[r].to(),l=t[r].empty()?e.findMarksAt(i):e.findMarks(i,o),a=0;a<l.length;a++)if(l[a].sublimeBookmark){l[a].clear();for(var s=0;s<n.length;s++)n[s]==l[a]&&n.splice(s--,1);break}a==l.length&&n.push(e.markText(i,o,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},t.clearBookmarks=function(e){var t=e.state.sublimeBookmarks;if(t)for(var n=0;n<t.length;n++)t[n].clear();t.length=0},t.selectBookmarks=function(e){var t=e.state.sublimeBookmarks,n=[];if(t)for(var r=0;r<t.length;r++){var i=t[r].find();i?n.push({anchor:i.from,head:i.to}):t.splice(r--,0)}n.length&&e.setSelections(n,0)},t.smartBackspace=function(t){if(t.somethingSelected())return e.Pass;t.operation((function(){for(var r=t.listSelections(),i=t.getOption("indentUnit"),o=r.length-1;o>=0;o--){var l=r[o].head,a=t.getRange({line:l.line,ch:0},l),s=e.countColumn(a,null,t.getOption("tabSize")),c=t.findPosH(l,-1,"char",!1);if(a&&!/\S/.test(a)&&s%i==0){var f=new n(l.line,e.findColumn(a,s-i,i));f.ch!=l.ch&&(c=f)}t.replaceRange("",c,l,"+delete")}}))},t.delLineRight=function(e){e.operation((function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,n(t[r].to().line),"+delete");e.scrollIntoView()}))},t.upcaseAtCursor=function(e){m(e,(function(e){return e.toUpperCase()}))},t.downcaseAtCursor=function(e){m(e,(function(e){return e.toLowerCase()}))},t.setSublimeMark=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},t.selectToSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},t.deleteToSublimeMark=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},t.swapWithSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},t.sublimeYank=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},t.showInCenter=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)},t.findUnder=function(e){g(e,!0)},t.findUnderPrevious=function(e){g(e,!1)},t.findAllUnder=function(e){var t=d(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],i=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}};var p=e.keyMap;p.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},e.normalizeKeyMap(p.macSublime),p.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},e.normalizeKeyMap(p.pcSublime);var C=p.default==p.macDefault;p.sublime=C?p.macSublime:p.pcSublime}(n(3668),n(6849),n(2756))}}]);
2
+ //# sourceMappingURL=306.cb66dc99.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/306.cb66dc99.chunk.js","mappings":"uGAUG,SAASA,GACV,IAAIC,EAAS,UAAUC,KAAKC,UAAUC,aACV,MAAzBC,SAASC,cAAwBD,SAASC,aAAe,GAExDC,EAAMP,EAAWO,IAEjBC,EAAW,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,MAElG,SAASC,EAAaC,GACpB,OAAOA,GAAUA,EAAOD,cAAgB,YAG1C,SAASE,EAAoBC,EAAIC,EAAOH,GACtC,IAAII,EAAOF,EAAGG,cAAcF,EAAMC,MAAOE,EAAMH,EAAMI,GAAK,EACtDC,EAAcR,GAAUA,EAAOQ,YAChB,MAAfA,IACFA,EAAc,0BAA0BhB,KAAKU,EAAGO,oBAAoBC,YACtE,IAAIC,EAAKZ,EAAaC,GAMlBY,GAAUJ,GAAeF,GAAO,GAAKK,EAAGnB,KAAKY,EAAKS,KAAKC,OAAOR,KAASR,EAASM,EAAKS,KAAKC,OAAOR,KACjGK,EAAGnB,KAAKY,EAAKS,KAAKC,OAAOR,EAAM,KAAOR,EAASM,EAAKS,KAAKC,SAASR,IACtE,IAAKM,EAAO,OAAO,KACnB,IAAIG,EAAyB,KAAnBH,EAAME,OAAO,GAAY,GAAK,EACxC,GAAId,GAAUA,EAAOgB,QAAWD,EAAM,IAAOT,GAAOH,EAAMI,IAAK,OAAO,KACtE,IAAIU,EAAQf,EAAGgB,eAAerB,EAAIM,EAAMC,KAAME,EAAM,IAEhDa,EAAQC,EAAelB,EAAIL,EAAIM,EAAMC,KAAME,GAAOS,EAAM,EAAI,EAAI,IAAKA,EAAKE,EAAOjB,GACrF,OAAa,MAATmB,EAAsB,KACnB,CAACE,KAAMxB,EAAIM,EAAMC,KAAME,GAAMgB,GAAIH,GAASA,EAAMb,IAC/CM,MAAOO,GAASA,EAAMZ,IAAMK,EAAME,OAAO,GAAIS,QAASR,EAAM,GAUtE,SAASK,EAAelB,EAAIC,EAAOY,EAAKE,EAAOjB,GAQ7C,IAPA,IAAIwB,EAAcxB,GAAUA,EAAOyB,mBAAsB,IACrDC,EAAgB1B,GAAUA,EAAO0B,cAAiB,IAElDC,EAAQ,GACRhB,EAAKZ,EAAaC,GAClB4B,EAAUb,EAAM,EAAIc,KAAKC,IAAI3B,EAAMC,KAAOsB,EAAcxB,EAAG6B,WAAa,GACpDF,KAAKG,IAAI9B,EAAG+B,YAAc,EAAG9B,EAAMC,KAAOsB,GACzDQ,EAAS/B,EAAMC,KAAM8B,GAAUN,EAASM,GAAUnB,EAAK,CAC9D,IAAIX,EAAOF,EAAGiC,QAAQD,GACtB,GAAK9B,EAAL,CACA,IAAIE,EAAMS,EAAM,EAAI,EAAIX,EAAKgC,OAAS,EAAGC,EAAMtB,EAAM,EAAIX,EAAKgC,QAAU,EACxE,KAAIhC,EAAKgC,OAASZ,GAElB,IADIU,GAAU/B,EAAMC,OAAME,EAAMH,EAAMI,IAAMQ,EAAM,EAAI,EAAI,IACnDT,GAAO+B,EAAK/B,GAAOS,EAAK,CAC7B,IAAIR,EAAKH,EAAKU,OAAOR,GACrB,GAAIK,EAAGnB,KAAKe,UAAkB+B,IAAVrB,IACCf,EAAGgB,eAAerB,EAAIqC,EAAQ5B,EAAM,KAAO,MAAQW,GAAS,KAAM,CACrF,IAAIL,EAAQd,EAASS,GACrB,GAAIK,GAA6B,KAAnBA,EAAME,OAAO,IAAeC,EAAM,EAAIY,EAAMY,KAAKhC,OAC1D,KAAKoB,EAAMS,OAAQ,MAAO,CAAC9B,IAAKT,EAAIqC,EAAQ5B,GAAMC,GAAIA,GACtDoB,EAAMa,UAIjB,OAAON,EAASnB,IAAQA,EAAM,EAAIb,EAAG6B,WAAa7B,EAAG+B,cAAuB,KAG9E,SAASQ,EAAcvC,EAAIwC,EAAW1C,GAKpC,IAHA,IAAI2C,EAAkBzC,EAAG0C,MAAMH,cAAcI,wBAA0B,IACrEC,EAAuB9C,GAAUA,EAAO8C,qBACtCC,EAAQ,GAAIC,EAAS9C,EAAG+C,iBACnBC,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAItC,EAAQoC,EAAOE,GAAGC,SAAWlD,EAAoBC,EAAI8C,EAAOE,GAAGE,KAAMpD,GACzE,GAAIY,IAAUA,EAAMA,QAAkC,IAAzBkC,IAAmC5C,EAAGiC,QAAQvB,EAAMS,KAAKjB,MAAMgC,QAAUO,EAAiB,CACrH,IAAI1B,EAAQL,EAAMA,MAAQ,6BAA+B,gCACzDmC,EAAMR,KAAKrC,EAAGmD,SAASzC,EAAMS,KAAMxB,EAAIe,EAAMS,KAAKjB,KAAMQ,EAAMS,KAAKd,GAAK,GAAI,CAACG,UAAWO,KACpFL,EAAMU,IAAMpB,EAAGiC,QAAQvB,EAAMU,GAAGlB,MAAMgC,QAAUO,GAClDI,EAAMR,KAAKrC,EAAGmD,SAASzC,EAAMU,GAAIzB,EAAIe,EAAMU,GAAGlB,KAAMQ,EAAMU,GAAGf,GAAK,GAAI,CAACG,UAAWO,MAIxF,GAAI8B,EAAMX,OAAQ,CAGZ7C,GAAUW,EAAG0C,MAAMU,SAASpD,EAAGqD,QAEnC,IAAIC,EAAQ,WACVtD,EAAGuD,WAAU,WACX,IAAK,IAAIP,EAAI,EAAGA,EAAIH,EAAMX,OAAQc,IAAKH,EAAMG,GAAGM,YAGpD,IAAId,EACC,OAAOc,EADGE,WAAWF,EAAO,MAKrC,SAASG,EAAgBzD,GACvBA,EAAGuD,WAAU,WACPvD,EAAG0C,MAAMH,cAAcmB,uBACzB1D,EAAG0C,MAAMH,cAAcmB,uBACvB1D,EAAG0C,MAAMH,cAAcmB,qBAAuB,MAEhD1D,EAAG0C,MAAMH,cAAcmB,qBAAuBnB,EAAcvC,GAAI,EAAOA,EAAG0C,MAAMH,kBAIpF,SAASoB,EAAiB3D,GACpBA,EAAG0C,MAAMH,eAAiBvC,EAAG0C,MAAMH,cAAcmB,uBACnD1D,EAAG0C,MAAMH,cAAcmB,uBACvB1D,EAAG0C,MAAMH,cAAcmB,qBAAuB,MAIlDtE,EAAWwE,aAAa,iBAAiB,GAAO,SAAS5D,EAAI6D,EAAKC,GAC5DA,GAAOA,GAAO1E,EAAW2E,OAC3B/D,EAAGgE,IAAI,iBAAkBP,GACzBzD,EAAGgE,IAAI,QAASP,GAChBzD,EAAGgE,IAAI,OAAQL,GACfA,EAAiB3D,IAEf6D,IACF7D,EAAG0C,MAAMH,cAA8B,iBAAPsB,EAAkBA,EAAM,GACxD7D,EAAGiE,GAAG,iBAAkBR,GACxBzD,EAAGiE,GAAG,QAASR,GACfzD,EAAGiE,GAAG,OAAQN,OAIlBvE,EAAW8E,gBAAgB,iBAAiB,WAAY3B,EAAc4B,MAAM,MAC5E/E,EAAW8E,gBAAgB,uBAAuB,SAAS9D,EAAKN,EAAQsE,GAUtE,OARIA,GAA8B,kBAAVtE,KACjBsE,GAGHA,EAAUtD,OAAShB,EACnBA,EAASsE,GAHTtE,EAASA,EAAS,CAACgB,QAAQ,GAAQ,MAMhCf,EAAoBoE,KAAM/D,EAAKN,MAExCV,EAAW8E,gBAAgB,kBAAkB,SAAS9D,EAAKS,EAAKE,EAAOjB,GACrE,OAAOoB,EAAeiD,KAAM/D,EAAKS,EAAKE,EAAOjB,MAxJ7CuE,CAAIC,EAAQ,Q,sBCKb,SAASlF,GACV,aACA,IAgHImF,EAAQC,EAhHR7E,EAAMP,EAAWO,IAErB,SAAS8E,EAAYC,GACnB,IAAIC,EAAQD,EAAOC,MACnB,OAAgB,MAATA,EAAgBA,GAASD,EAAOE,WAAa,IAAM,KACrDF,EAAOG,OAAS,IAAM,KACtBH,EAAOI,UAAY,IAAM,IAGhC,SAASC,EAAYL,EAAQC,GAE3B,IADA,IAAIK,EAAUP,EAAYC,GAASO,EAASD,EACnChC,EAAI,EAAGA,EAAI2B,EAAMzC,OAAQc,KAA6C,GAApCiC,EAAOC,QAAQP,EAAM/D,OAAOoC,MACrEiC,GAAUN,EAAM/D,OAAOoC,IACzB,OAAOgC,GAAWC,EAASP,EAAS,IAAIS,OAAOT,EAAOU,OAAQH,GAGhE,SAASI,EAAeX,GACtB,MAAO,0BAA0BpF,KAAKoF,EAAOU,QAG/C,SAASE,EAAoBC,EAAKb,EAAQc,GACxCd,EAASK,EAAYL,EAAQ,KAC7B,IAAK,IAAIxE,EAAOsF,EAAMtF,KAAMG,EAAKmF,EAAMnF,GAAIoF,EAAOF,EAAI1D,WAAY3B,GAAQuF,EAAMvF,IAAQG,EAAK,EAAG,CAC9FqE,EAAOgB,UAAYrF,EACnB,IAAIsF,EAASJ,EAAItD,QAAQ/B,GAAOQ,EAAQgE,EAAOkB,KAAKD,GACpD,GAAIjF,EACF,MAAO,CAACS,KAAMxB,EAAIO,EAAMQ,EAAMmF,OACtBzE,GAAIzB,EAAIO,EAAMQ,EAAMmF,MAAQnF,EAAM,GAAGwB,QACrCxB,MAAOA,IAIrB,SAASoF,EAA6BP,EAAKb,EAAQc,GACjD,IAAKH,EAAeX,GAAS,OAAOY,EAAoBC,EAAKb,EAAQc,GAErEd,EAASK,EAAYL,EAAQ,MAE7B,IADA,IAAIiB,EAAQI,EAAQ,EACX7F,EAAOsF,EAAMtF,KAAMuF,EAAOF,EAAI1D,WAAY3B,GAAQuF,GAAO,CAMhE,IAAK,IAAIzC,EAAI,EAAGA,EAAI+C,KACd7F,EAAOuF,GADczC,IAAK,CAE9B,IAAIgD,EAAUT,EAAItD,QAAQ/B,KAC1ByF,EAAmB,MAAVA,EAAiBK,EAAUL,EAAS,KAAOK,EAEtDD,GAAgB,EAChBrB,EAAOgB,UAAYF,EAAMnF,GACzB,IAAIK,EAAQgE,EAAOkB,KAAKD,GACxB,GAAIjF,EAAO,CACT,IAAIuF,EAASN,EAAOO,MAAM,EAAGxF,EAAMmF,OAAOM,MAAM,MAAOC,EAAS1F,EAAM,GAAGyF,MAAM,MAC3EE,EAAYb,EAAMtF,KAAO+F,EAAO/D,OAAS,EAAGoE,EAAUL,EAAOA,EAAO/D,OAAS,GAAGA,OACpF,MAAO,CAACf,KAAMxB,EAAI0G,EAAWC,GACrBlF,GAAIzB,EAAI0G,EAAYD,EAAOlE,OAAS,EACX,GAAjBkE,EAAOlE,OAAcoE,EAAUF,EAAO,GAAGlE,OAASkE,EAAOA,EAAOlE,OAAS,GAAGA,QACpFxB,MAAOA,KAKrB,SAAS6F,EAAYZ,EAAQjB,EAAQ8B,GAEnC,IADA,IAAI9F,EAAOS,EAAO,EACXA,GAAQwE,EAAOzD,QAAQ,CAC5BwC,EAAOgB,UAAYvE,EACnB,IAAIsF,EAAW/B,EAAOkB,KAAKD,GAC3B,IAAKc,EAAU,MACf,IAAItE,EAAMsE,EAASZ,MAAQY,EAAS,GAAGvE,OACvC,GAAIC,EAAMwD,EAAOzD,OAASsE,EAAW,QAChC9F,GAASyB,EAAMzB,EAAMmF,MAAQnF,EAAM,GAAGwB,UACzCxB,EAAQ+F,GACVtF,EAAOsF,EAASZ,MAAQ,EAE1B,OAAOnF,EAGT,SAASgG,EAAqBnB,EAAKb,EAAQc,GACzCd,EAASK,EAAYL,EAAQ,KAC7B,IAAK,IAAIxE,EAAOsF,EAAMtF,KAAMG,EAAKmF,EAAMnF,GAAIsG,EAAQpB,EAAIxD,YAAa7B,GAAQyG,EAAOzG,IAAQG,GAAM,EAAG,CAClG,IAAIsF,EAASJ,EAAItD,QAAQ/B,GACrBQ,EAAQ6F,EAAYZ,EAAQjB,EAAQrE,EAAK,EAAI,EAAIsF,EAAOzD,OAAS7B,GACrE,GAAIK,EACF,MAAO,CAACS,KAAMxB,EAAIO,EAAMQ,EAAMmF,OACtBzE,GAAIzB,EAAIO,EAAMQ,EAAMmF,MAAQnF,EAAM,GAAGwB,QACrCxB,MAAOA,IAIrB,SAASkG,EAA8BrB,EAAKb,EAAQc,GAClD,IAAKH,EAAeX,GAAS,OAAOgC,EAAqBnB,EAAKb,EAAQc,GACtEd,EAASK,EAAYL,EAAQ,MAE7B,IADA,IAAIiB,EAAQkB,EAAY,EAAGL,EAAYjB,EAAItD,QAAQuD,EAAMtF,MAAMgC,OAASsD,EAAMnF,GACrEH,EAAOsF,EAAMtF,KAAMyG,EAAQpB,EAAIxD,YAAa7B,GAAQyG,GAAQ,CACnE,IAAK,IAAI3D,EAAI,EAAGA,EAAI6D,GAAa3G,GAAQyG,EAAO3D,IAAK,CACnD,IAAIgD,EAAUT,EAAItD,QAAQ/B,KAC1ByF,EAAmB,MAAVA,EAAiBK,EAAUA,EAAU,KAAOL,EAEvDkB,GAAa,EAEb,IAAInG,EAAQ6F,EAAYZ,EAAQjB,EAAQ8B,GACxC,GAAI9F,EAAO,CACT,IAAIuF,EAASN,EAAOO,MAAM,EAAGxF,EAAMmF,OAAOM,MAAM,MAAOC,EAAS1F,EAAM,GAAGyF,MAAM,MAC3EE,EAAYnG,EAAO+F,EAAO/D,OAAQoE,EAAUL,EAAOA,EAAO/D,OAAS,GAAGA,OAC1E,MAAO,CAACf,KAAMxB,EAAI0G,EAAWC,GACrBlF,GAAIzB,EAAI0G,EAAYD,EAAOlE,OAAS,EACX,GAAjBkE,EAAOlE,OAAcoE,EAAUF,EAAO,GAAGlE,OAASkE,EAAOA,EAAOlE,OAAS,GAAGA,QACpFxB,MAAOA,KAgBrB,SAASoG,EAAUC,EAAMC,EAAQ5G,EAAK6G,GACpC,GAAIF,EAAK7E,QAAU8E,EAAO9E,OAAQ,OAAO9B,EACzC,IAAK,IAAIwB,EAAM,EAAGE,EAAM1B,EAAMuB,KAAKG,IAAI,EAAGiF,EAAK7E,OAAS8E,EAAO9E,UAAW,CACxE,GAAIN,GAAOE,EAAK,OAAOF,EACvB,IAAIsF,EAAOtF,EAAME,GAAQ,EACrBqF,EAAMF,EAASF,EAAKb,MAAM,EAAGgB,IAAMhF,OACvC,GAAIiF,GAAO/G,EAAK,OAAO8G,EACdC,EAAM/G,EAAK0B,EAAMoF,EACrBtF,EAAMsF,EAAM,GAIrB,SAASE,EAAoB7B,EAAK8B,EAAO7B,EAAO8B,GAG9C,IAAKD,EAAMnF,OAAQ,OAAO,KAC1B,IAAIqF,EAAOD,EAAW/C,EAASC,EAC3BgD,EAAQD,EAAKF,GAAOlB,MAAM,YAE9BsB,EAAQ,IAAK,IAAIvH,EAAOsF,EAAMtF,KAAMG,EAAKmF,EAAMnF,GAAIoF,EAAOF,EAAI1D,WAAa,EAAI2F,EAAMtF,OAAQhC,GAAQuF,EAAMvF,IAAQG,EAAK,EAAG,CACzH,IAAI0G,EAAOxB,EAAItD,QAAQ/B,GAAMgG,MAAM7F,GAAKsF,EAAS4B,EAAKR,GACtD,GAAoB,GAAhBS,EAAMtF,OAAa,CACrB,IAAIjB,EAAQ0E,EAAOT,QAAQsC,EAAM,IACjC,IAAc,GAAVvG,EAAa,SAASwG,EAE1B,OADIjC,EAAQsB,EAAUC,EAAMpB,EAAQ1E,EAAOsG,GAAQlH,EAC5C,CAACc,KAAMxB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ1E,EAAOsG,GAAQlH,GACvDe,GAAIzB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ1E,EAAQuG,EAAM,GAAGtF,OAAQqF,GAAQlH,IAE/E,IAAIqH,EAAU/B,EAAOzD,OAASsF,EAAM,GAAGtF,OACvC,GAAIyD,EAAOO,MAAMwB,IAAYF,EAAM,GAAnC,CACA,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtF,OAAS,EAAGc,IACpC,GAAIuE,EAAKhC,EAAItD,QAAQ/B,EAAO8C,KAAOwE,EAAMxE,GAAI,SAASyE,EACxD,IAAItF,EAAMoD,EAAItD,QAAQ/B,EAAOsH,EAAMtF,OAAS,GAAIyF,EAAYJ,EAAKpF,GAAMN,EAAW2F,EAAMA,EAAMtF,OAAS,GACvG,GAAIyF,EAAUzB,MAAM,EAAGrE,EAASK,SAAWL,EAC3C,MAAO,CAACV,KAAMxB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ+B,EAASH,GAAQlH,GACzDe,GAAIzB,EAAIO,EAAOsH,EAAMtF,OAAS,EAAG4E,EAAU3E,EAAKwF,EAAW9F,EAASK,OAAQqF,OAK1F,SAASK,EAAqBrC,EAAK8B,EAAO7B,EAAO8B,GAC/C,IAAKD,EAAMnF,OAAQ,OAAO,KAC1B,IAAIqF,EAAOD,EAAW/C,EAASC,EAC3BgD,EAAQD,EAAKF,GAAOlB,MAAM,YAE9BsB,EAAQ,IAAK,IAAIvH,EAAOsF,EAAMtF,KAAMG,EAAKmF,EAAMnF,GAAIsG,EAAQpB,EAAIxD,YAAc,EAAIyF,EAAMtF,OAAQhC,GAAQyG,EAAOzG,IAAQG,GAAM,EAAG,CAC7H,IAAI0G,EAAOxB,EAAItD,QAAQ/B,GACnBG,GAAM,IAAG0G,EAAOA,EAAKb,MAAM,EAAG7F,IAClC,IAAIsF,EAAS4B,EAAKR,GAClB,GAAoB,GAAhBS,EAAMtF,OAAa,CACrB,IAAIjB,EAAQ0E,EAAOkC,YAAYL,EAAM,IACrC,IAAc,GAAVvG,EAAa,SAASwG,EAC1B,MAAO,CAACtG,KAAMxB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ1E,EAAOsG,IAC/CnG,GAAIzB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ1E,EAAQuG,EAAM,GAAGtF,OAAQqF,KAEvE,IAAI1F,EAAW2F,EAAMA,EAAMtF,OAAS,GACpC,GAAIyD,EAAOO,MAAM,EAAGrE,EAASK,SAAWL,EAAxC,CACK,IAAImB,EAAI,EAAb,IAAgBwC,EAAQtF,EAAOsH,EAAMtF,OAAS,EAAGc,EAAIwE,EAAMtF,OAAS,EAAGc,IACrE,GAAIuE,EAAKhC,EAAItD,QAAQuD,EAAQxC,KAAOwE,EAAMxE,GAAI,SAASyE,EACzD,IAAIK,EAAMvC,EAAItD,QAAQ/B,EAAO,EAAIsH,EAAMtF,QAAS6F,EAAYR,EAAKO,GACjE,GAAIC,EAAU7B,MAAM6B,EAAU7F,OAASsF,EAAM,GAAGtF,SAAWsF,EAAM,GACjE,MAAO,CAACrG,KAAMxB,EAAIO,EAAO,EAAIsH,EAAMtF,OAAQ4E,EAAUgB,EAAKC,EAAWD,EAAI5F,OAASsF,EAAM,GAAGtF,OAAQqF,IAC3FnG,GAAIzB,EAAIO,EAAM4G,EAAUC,EAAMpB,EAAQ9D,EAASK,OAAQqF,OAKrE,SAASS,EAAazC,EAAK8B,EAAOjH,EAAK6H,GAOrC,IAAIX,EANJnD,KAAK+D,cAAe,EACpB/D,KAAKgE,iBAAkB,EACvBhE,KAAKoB,IAAMA,EACXnF,EAAMA,EAAMmF,EAAI6C,QAAQhI,GAAOT,EAAI,EAAG,GACtCwE,KAAK/D,IAAM,CAACe,KAAMf,EAAKgB,GAAIhB,GAGL,iBAAX6H,EACTX,EAAWW,EAAQX,UAEnBA,EAAWW,EACXA,EAAU,MAGQ,iBAATZ,GACO,MAAZC,IAAkBA,GAAW,GACjCnD,KAAKkE,QAAU,SAASC,EAASlI,GAC/B,OAAQkI,EAAUV,EAAuBR,GAAqB7B,EAAK8B,EAAOjH,EAAKkH,MAGjFD,EAAQtC,EAAYsC,EAAO,MACtBY,IAAiC,IAAtBA,EAAQnD,UAKtBX,KAAKkE,QAAU,SAASC,EAASlI,GAC/B,OAAQkI,EAAU5B,EAAuBpB,GAAqBC,EAAK8B,EAAOjH,IAL5E+D,KAAKkE,QAAU,SAASC,EAASlI,GAC/B,OAAQkI,EAAU1B,EAAgCd,GAA8BP,EAAK8B,EAAOjH,KArGhGmI,OAAOC,UAAUC,WACnBlE,EAAS,SAASmE,GAAO,OAAOA,EAAID,UAAU,OAAOE,eACrDnE,EAAS,SAASkE,GAAO,OAAOA,EAAID,UAAU,UAE9ClE,EAAS,SAASmE,GAAO,OAAOA,EAAIC,eACpCnE,EAAS,SAASkE,GAAO,OAAOA,IAyGlCV,EAAaQ,UAAY,CACvBI,SAAU,WAAY,OAAOzE,KAAK0E,MAAK,IACvCC,aAAc,WAAY,OAAO3E,KAAK0E,MAAK,IAE3CA,KAAM,SAASP,GACb,IAAIpF,EAAOiB,KAAKoB,IAAI6C,QAAQE,EAAUnE,KAAK/D,IAAIe,KAAOgD,KAAK/D,IAAIgB,IAC/D,GAAI+C,KAAKgE,iBAAmBhE,KAAK+D,eAE/BhF,EAAOvD,EAAIuD,EAAKhD,KAAMgD,EAAK7C,IACvBiI,GACFpF,EAAK7C,KACD6C,EAAK7C,GAAK,IACZ6C,EAAKhD,OACLgD,EAAK7C,IAAM8D,KAAKoB,IAAItD,QAAQiB,EAAKhD,OAAS,IAAIgC,UAGhDgB,EAAK7C,KACD6C,EAAK7C,IAAM8D,KAAKoB,IAAItD,QAAQiB,EAAKhD,OAAS,IAAIgC,SAChDgB,EAAK7C,GAAK,EACV6C,EAAKhD,SAG8C,GAAnDd,EAAW2J,OAAO7F,EAAMiB,KAAKoB,IAAI6C,QAAQlF,KAC1C,OAAOiB,KAAK+D,cAAe,EAGhC,IAAIc,EAAS7E,KAAKkE,QAAQC,EAASpF,GAGnC,GAFAiB,KAAKgE,gBAAkBa,GAAuD,GAA7C5J,EAAW2J,OAAOC,EAAO7H,KAAM6H,EAAO5H,IAEnE4H,EAGF,OAFA7E,KAAK/D,IAAM4I,EACX7E,KAAK+D,cAAe,EACb/D,KAAK/D,IAAIM,QAAS,EAEzB,IAAIyB,EAAMxC,EAAI2I,EAAUnE,KAAKoB,IAAIxD,YAAcoC,KAAKoB,IAAI1D,WAAa,EAAG,GAExE,OADAsC,KAAK/D,IAAM,CAACe,KAAMgB,EAAKf,GAAIe,GACpBgC,KAAK+D,cAAe,GAI/B/G,KAAM,WAAY,GAAIgD,KAAK+D,aAAc,OAAO/D,KAAK/D,IAAIe,MACzDC,GAAI,WAAY,GAAI+C,KAAK+D,aAAc,OAAO/D,KAAK/D,IAAIgB,IAEvD6H,QAAS,SAASC,EAASC,GACzB,GAAKhF,KAAK+D,aAAV,CACA,IAAIV,EAAQpI,EAAWgK,WAAWF,GAClC/E,KAAKoB,IAAI8D,aAAa7B,EAAOrD,KAAK/D,IAAIe,KAAMgD,KAAK/D,IAAIgB,GAAI+H,GACzDhF,KAAK/D,IAAIgB,GAAKzB,EAAIwE,KAAK/D,IAAIe,KAAKjB,KAAOsH,EAAMtF,OAAS,EACpCsF,EAAMA,EAAMtF,OAAS,GAAGA,QAA0B,GAAhBsF,EAAMtF,OAAciC,KAAK/D,IAAIe,KAAKd,GAAK,OAI/FjB,EAAW8E,gBAAgB,mBAAmB,SAASmD,EAAOjH,EAAKkH,GACjE,OAAO,IAAIU,EAAa7D,KAAKoB,IAAK8B,EAAOjH,EAAKkH,MAEhDlI,EAAWkK,mBAAmB,mBAAmB,SAASjC,EAAOjH,EAAKkH,GACpE,OAAO,IAAIU,EAAa7D,KAAMkD,EAAOjH,EAAKkH,MAG5ClI,EAAW8E,gBAAgB,iBAAiB,SAASmD,EAAOC,GAG1D,IAFA,IAAIxE,EAAS,GACTyG,EAAMpF,KAAKqF,gBAAgBnC,EAAOlD,KAAKsF,UAAU,QAASnC,GACvDiC,EAAIX,cACLxJ,EAAW2J,OAAOQ,EAAInI,KAAM+C,KAAKsF,UAAU,OAAS,IACxD3G,EAAOT,KAAK,CAACqH,OAAQH,EAAIpI,OAAQ+B,KAAMqG,EAAInI,OAEzC0B,EAAOZ,QACTiC,KAAKwF,cAAc7G,EAAQ,MAzS7BuB,CAAIC,EAAQ,Q,sBCQb,SAASlF,GACV,aAEA,IAAIwK,EAAOxK,EAAWyK,SAClBlK,EAAMP,EAAWO,IAGrB,SAASmK,EAAevE,EAAKC,EAAO3E,GAClC,GAAIA,EAAM,GAAiB,GAAZ2E,EAAMnF,GAAS,OAAOkF,EAAI6C,QAAQzI,EAAI6F,EAAMtF,KAAO,IAClE,IAAIA,EAAOqF,EAAItD,QAAQuD,EAAMtF,MAC7B,GAAIW,EAAM,GAAK2E,EAAMnF,IAAMH,EAAKgC,OAAQ,OAAOqD,EAAI6C,QAAQzI,EAAI6F,EAAMtF,KAAO,EAAG,IAE/E,IADA,IAAqB6J,EAAjBrH,EAAQ,QAAesH,EAAWxE,EAAMnF,GACnCD,EAAM4J,EAAUC,EAAIpJ,EAAM,EAAI,EAAIX,EAAKgC,OAAQc,EAAI,EAAG5C,GAAO6J,EAAG7J,GAAOS,EAAKmC,IAAK,CACxF,IAAIkH,EAAOhK,EAAKU,OAAOC,EAAM,EAAIT,EAAM,EAAIA,GACvC+J,EAAc,KAARD,GAAe9K,EAAWgL,WAAWF,GAAQ,IAAM,IAE7D,GADW,KAAPC,GAAcD,EAAKG,eAAiBH,IAAMC,EAAM,KACvC,SAATzH,EACS,KAAPyH,GAAczH,EAAQ,KAAMqH,EAAOI,GAClCH,EAAW5J,EAAMS,OACjB,GAAa,MAAT6B,GACLqH,GAAQI,EAAK,CAEf,GADY,KAARJ,GAAsB,KAAPI,GAActJ,EAAM,GAAGT,IAC9B,KAAR2J,GAAsB,KAAPI,GAActJ,EAAM,EAAG,CACxC,GAAIT,GAAO4J,EAAW,EAAG,CAAED,EAAO,IAAK,SAClC3J,IAEP,OAIN,OAAOT,EAAI6F,EAAMtF,KAAME,GAGzB,SAASkK,EAAYtK,EAAIa,GACvBb,EAAGuK,oBAAmB,SAASC,GAC7B,OAAIxK,EAAGyK,QAAQC,OAAS1K,EAAGuF,IAAIoF,QAAUH,EAAMvH,QACtC6G,EAAe9J,EAAGuF,IAAKiF,EAAMtH,KAAMrC,GAEnCA,EAAM,EAAI2J,EAAMrJ,OAASqJ,EAAMpJ,QAqD5C,SAASwJ,EAAW5K,EAAI6K,GACtB,GAAI7K,EAAG8K,aAAc,OAAO1L,EAAW2L,KACvC/K,EAAGuD,WAAU,WAEX,IADA,IAAI4D,EAAMnH,EAAG+C,iBAAiBb,OAAQ8I,EAAe,GAAIvF,GAAQ,EACxDzC,EAAI,EAAGA,EAAImE,EAAKnE,IAAK,CAC5B,IAAIE,EAAOlD,EAAG+C,iBAAiBC,GAAGE,KAClC,KAAIA,EAAKhD,MAAQuF,GAAjB,CACA,IAAIwF,EAAKtL,EAAIuD,EAAKhD,MAAQ2K,EAAQ,EAAI,GAAI,GAC1C7K,EAAGqJ,aAAa,KAAM4B,EAAI,KAAM,eAChCjL,EAAGkL,WAAWD,EAAG/K,KAAM,MAAM,GAC7B8K,EAAa3I,KAAK,CAACa,KAAM+H,EAAIvB,OAAQuB,IACrCxF,EAAOvC,EAAKhD,KAAO,GAErBF,EAAG2J,cAAcqB,MAEnBhL,EAAGmL,YAAY,cAOjB,SAASC,EAAOpL,EAAII,GAElB,IADA,IAAIoF,EAAQpF,EAAIC,GAAI8B,EAAMqD,EAAOtF,EAAOF,EAAGiC,QAAQ7B,EAAIF,MAChDsF,GAASpG,EAAWgL,WAAWlK,EAAKU,OAAO4E,EAAQ,OAAOA,EACjE,KAAOrD,EAAMjC,EAAKgC,QAAU9C,EAAWgL,WAAWlK,EAAKU,OAAOuB,OAASA,EACvE,MAAO,CAAChB,KAAMxB,EAAIS,EAAIF,KAAMsF,GAAQpE,GAAIzB,EAAIS,EAAIF,KAAMiC,GAAMkJ,KAAMnL,EAAKgG,MAAMV,EAAOrD,IAsCtF,SAASmJ,EAAqBtL,EAAIa,GAEhC,IADA,IAAIiC,EAAS9C,EAAG+C,iBAAkBwI,EAAY,GACrCvI,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAIwH,EAAQ1H,EAAOE,GACfwI,EAAYxL,EAAGyL,SACfjB,EAAMd,OAAQ7I,EAAK,OAAQ2J,EAAMd,OAAOgC,YACxCC,EAAU3L,EAAGyL,SACbjB,EAAMtH,KAAMrC,EAAK,OAAQ2J,EAAMtH,KAAKwI,YACxCF,EAAUE,WAAwC,MAA3BlB,EAAMd,OAAOgC,WAChClB,EAAMd,OAAOgC,WAAa1L,EAAG4L,aAAapB,EAAMd,OAAQ,OAAOmC,KACnEF,EAAQD,WAAsC,MAAzBlB,EAAMtH,KAAKwI,WAC5BlB,EAAMtH,KAAKwI,WAAa1L,EAAG4L,aAAapB,EAAMtH,KAAM,OAAO2I,KAC/D,IAAIC,EAAW,CAACpC,OAAQ8B,EAAWtI,KAAMyI,GACzCJ,EAAUlJ,KAAKmI,GACfe,EAAUlJ,KAAKyJ,GAEjB9L,EAAG2J,cAAc4B,GAKnB,SAASQ,EAAgBjJ,EAAQ3B,EAAMC,GACrC,IAAK,IAAI4B,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IACjC,GAAiD,GAA7C5D,EAAW2J,OAAOjG,EAAOE,GAAG7B,OAAQA,IACK,GAAzC/B,EAAW2J,OAAOjG,EAAOE,GAAG5B,KAAMA,GAAU,OAAO,EACzD,OAAO,EA1ITwI,EAAKoC,cAAgB,SAAShM,GAAMsK,EAAYtK,GAAK,IACrD4J,EAAKqC,eAAiB,SAASjM,GAAMsK,EAAYtK,EAAI,IAErD4J,EAAKsC,aAAe,SAASlM,GAC3B,IAAImM,EAAOnM,EAAGoM,gBACd,IAAKpM,EAAGqM,oBAAqB,CAC3B,IAAIC,EAAoBtM,EAAGuM,aAAaJ,EAAKrE,IAAMqE,EAAKK,aAAc,SAClExM,EAAGyJ,YAAYvJ,MAAQoM,GACzBtM,EAAGmL,YAAY,YAEnBnL,EAAGyM,SAAS,KAAMN,EAAKrE,IAAM9H,EAAG0M,sBAElC9C,EAAK+C,eAAiB,SAAS3M,GAC7B,IAAImM,EAAOnM,EAAGoM,gBACd,IAAKpM,EAAGqM,oBAAqB,CAC3B,IAAIO,EAAiB5M,EAAGuM,aAAaJ,EAAKrE,IAAK,SAAS,EACpD9H,EAAGyJ,YAAYvJ,MAAQ0M,GACzB5M,EAAGmL,YAAY,cAEnBnL,EAAGyM,SAAS,KAAMN,EAAKrE,IAAM9H,EAAG0M,sBAGlC9C,EAAKiD,qBAAuB,SAAS7M,GAEnC,IADA,IAAI8C,EAAS9C,EAAG+C,iBAAkB+J,EAAa,GACtC9J,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAEjC,IADA,IAAI7B,EAAO2B,EAAOE,GAAG7B,OAAQC,EAAK0B,EAAOE,GAAG5B,KACnClB,EAAOiB,EAAKjB,KAAMA,GAAQkB,EAAGlB,OAAQA,EACtCkB,EAAGlB,KAAOiB,EAAKjB,MAAQA,GAAQkB,EAAGlB,MAAiB,GAATkB,EAAGf,IACjDyM,EAAWzK,KAAK,CAACqH,OAAQxJ,GAAQiB,EAAKjB,KAAOiB,EAAOxB,EAAIO,EAAM,GAC7CgD,KAAMhD,GAAQkB,EAAGlB,KAAOkB,EAAKzB,EAAIO,KAExDF,EAAG2J,cAAcmD,EAAY,IAG/BlD,EAAKmD,mBAAqB,SAAS/M,GACjC,IAAIwK,EAAQxK,EAAG+C,iBAAiB,GAChC/C,EAAGgN,aAAaxC,EAAMd,OAAQc,EAAMtH,KAAM,CAAC+J,QAAQ,KAGrDrD,EAAKsD,WAAa,SAASlN,GAEzB,IADA,IAAI8C,EAAS9C,EAAG+C,iBAAkBoK,EAAW,GACpCnK,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAIwH,EAAQ1H,EAAOE,GACnBmK,EAAS9K,KAAK,CAACqH,OAAQ/J,EAAI6K,EAAMrJ,OAAOjB,KAAM,GAC/BgD,KAAMvD,EAAI6K,EAAMpJ,KAAKlB,KAAO,EAAG,KAEhDF,EAAG2J,cAAcwD,IAqBnBvD,EAAKwD,gBAAkB,SAASpN,GAAM,OAAO4K,EAAW5K,GAAI,IAE5D4J,EAAKyD,iBAAmB,SAASrN,GAAM,OAAO4K,EAAW5K,GAAI,IAS7D4J,EAAK0D,qBAAuB,SAAStN,GACnC,IAAImB,EAAOnB,EAAGyJ,UAAU,QAASrI,EAAKpB,EAAGyJ,UAAU,MAC/C8D,EAAWvN,EAAG0C,MAAM8K,qBAAuBxN,EAAGuF,IAAIkI,IACtD,GAAmC,GAA/BrO,EAAW2J,OAAO5H,EAAMC,GAAU,CACpC,IAAIiK,EAAOD,EAAOpL,EAAImB,GACtB,IAAKkK,EAAKA,KAAM,OAChBrL,EAAGgN,aAAa3B,EAAKlK,KAAMkK,EAAKjK,IAChCmM,GAAW,MACN,CACL,IAAI5M,EAAOX,EAAG0N,SAASvM,EAAMC,GACzBiG,EAAQkG,EAAW,IAAIpI,OAAO,MAAQxE,EAAO,OAASA,EACtD4I,EAAMvJ,EAAGwJ,gBAAgBnC,EAAOjG,GAChCH,EAAQsI,EAAIX,WAKhB,GAJK3H,IAEHA,GADAsI,EAAMvJ,EAAGwJ,gBAAgBnC,EAAO1H,EAAIK,EAAG+B,YAAa,KACxC6G,aAET3H,GAAS8K,EAAgB/L,EAAG+C,iBAAkBwG,EAAIpI,OAAQoI,EAAInI,MAAO,OAC1EpB,EAAG2N,aAAapE,EAAIpI,OAAQoI,EAAInI,MAE9BmM,IACFvN,EAAG0C,MAAM8K,oBAAsBxN,EAAGuF,IAAIkI,MAG1C7D,EAAKgE,4BAA8B,SAAS5N,GAC1C,IAAI6N,EAAa7N,EAAGyJ,UAAU,UAAWqE,EAAW9N,EAAGyJ,UAAU,QACjEG,EAAK0D,qBAAqBtN,GACqB,GAA3CZ,EAAW2J,OAAO8E,EAAYC,IAChC9N,EAAGuF,IAAIoE,cAAc3J,EAAGuF,IAAIxC,iBACvBgL,QAAO,SAAUN,GAChB,OAAOA,EAAI/D,QAAUmE,GAAcJ,EAAIvK,MAAQ4K,OAuBzDlE,EAAKoE,oBAAsB,SAAShO,GAAMsL,EAAqBtL,GAAK,IACpE4J,EAAKqE,oBAAsB,SAASjO,GAAMsL,EAAqBtL,EAAI,IASnE,IAAIkO,EAAS,SACb,SAASC,EAAsBnO,GAE7B,IADA,IAAI8C,EAAS9C,EAAG+C,iBAAkBwI,EAAY,GACrCvI,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAIwH,EAAQ1H,EAAOE,GAAI5C,EAAMoK,EAAMtH,KAAMkL,EAAUpO,EAAGkB,eAAed,GAAM,GAC3E,IAAKgO,EAAS,OAAO,EACrB,OAAS,CACP,IAAIC,EAAUrO,EAAGkB,eAAed,EAAK,GACrC,IAAKiO,EAAS,OAAO,EACrB,GAAIA,EAAQhO,IAAM6N,EAAOtN,OAAOsN,EAAOhJ,QAAQkJ,EAAQ/N,IAAM,GAAI,CAC/D,IAAI2J,EAAWrK,EAAIyO,EAAQhO,IAAIF,KAAMkO,EAAQhO,IAAIC,GAAK,GACtD,GAAiD,GAA7CjB,EAAW2J,OAAOiB,EAAUQ,EAAMrJ,SACY,GAA9C/B,EAAW2J,OAAOsF,EAAQjO,IAAKoK,EAAMpJ,MAGlC,CACLmK,EAAUlJ,KAAK,CAACqH,OAAQM,EAAU9G,KAAMmL,EAAQjO,MAChD,MAHA,KADAgO,EAAUpO,EAAGkB,eAAekN,EAAQhO,KAAM,IAC5B,OAAO,EAMzBA,EAAMT,EAAI0O,EAAQjO,IAAIF,KAAMmO,EAAQjO,IAAIC,GAAK,IAIjD,OADAL,EAAG2J,cAAc4B,IACV,EAUT,SAAS+C,EAASvE,GAChB,OAAQA,EAAc,kBAAkBzK,KAAKyK,GAAQA,OAAO3H,EAA7C,KA8GjB,SAASmM,EAAUvO,EAAIwO,EAAeC,GACpC,GAAIzO,EAAG8K,aAAc,OAAO1L,EAAW2L,KAEvC,IADA,IAA+C2D,EAA3C5L,EAAS9C,EAAG+C,iBAAkB4L,EAAS,GAClC3L,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAIwH,EAAQ1H,EAAOE,GACnB,IAAIwH,EAAMvH,QAAV,CAEA,IADA,IAAI9B,EAAOqJ,EAAMrJ,OAAOjB,KAAMkB,EAAKoJ,EAAMpJ,KAAKlB,KACvC8C,EAAIF,EAAOZ,OAAS,GAAKY,EAAOE,EAAI,GAAG7B,OAAOjB,MAAQkB,GAC3DA,EAAK0B,IAASE,GAAG5B,KAAKlB,KACnB4C,EAAOE,GAAG5B,KAAKf,IAAIe,IACxBuN,EAAOtM,KAAKlB,EAAMC,IAEhBuN,EAAOzM,OAAQwM,GAAW,EACzBC,EAAOtM,KAAKrC,EAAG+B,YAAa/B,EAAG6B,YAEpC7B,EAAGuD,WAAU,WAEX,IADA,IAAIT,EAAS,GACJE,EAAI,EAAGA,EAAI2L,EAAOzM,OAAQc,GAAK,EAAG,CACzC,IAAI7B,EAAOwN,EAAO3L,GAAI5B,EAAKuN,EAAO3L,EAAI,GAClCwC,EAAQ7F,EAAIwB,EAAM,GAAIgB,EAAMxC,EAAIyB,GAChCoG,EAAQxH,EAAG0N,SAASlI,EAAOrD,GAAK,GAChCqM,EACFhH,EAAMoH,MAAK,SAASC,EAAGC,GAAK,OAAOD,EAAIC,GAAKL,EAAYI,GAAKC,EAAI,EAAIL,KAErEjH,EAAMoH,MAAK,SAASC,EAAGC,GACrB,IAAIC,EAAKF,EAAExE,cAAe2E,EAAKF,EAAEzE,cAEjC,OADI0E,GAAMC,IAAMH,EAAIE,EAAID,EAAIE,GACrBH,EAAIC,GAAKL,EAAYI,GAAKC,EAAI,EAAIL,KAE7CzO,EAAGqJ,aAAa7B,EAAOhC,EAAOrD,GAC1BuM,GAAU5L,EAAOT,KAAK,CAACqH,OAAQlE,EAAOtC,KAAMvD,EAAIyB,EAAK,EAAG,KAE1DsN,GAAU1O,EAAG2J,cAAc7G,EAAQ,MAwE3C,SAASmM,EAAsBjP,EAAIqE,GACjCrE,EAAGuD,WAAU,WAEX,IADA,IAAIT,EAAS9C,EAAG+C,iBAAkBmM,EAAU,GAAIC,EAAe,GACtDnM,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,KAC7BwH,EAAQ1H,EAAOE,IACTC,SAAWiM,EAAQ7M,KAAKW,GAAImM,EAAa9M,KAAK,KACnD8M,EAAa9M,KAAKgC,EAAIrE,EAAG0N,SAASlD,EAAMrJ,OAAQqJ,EAAMpJ,QAGxD,IAA4B6J,EAAjC,IADAjL,EAAGoP,kBAAkBD,EAAc,SAAU,QACpCnM,EAAIkM,EAAQhN,OAAS,EAAOc,GAAK,EAAGA,IAAK,CAChD,IAAIwH,EAAQ1H,EAAOoM,EAAQlM,IAC3B,KAAIiI,GAAM7L,EAAW2J,OAAOyB,EAAMtH,KAAM+H,GAAM,GAA9C,CACA,IAAII,EAAOD,EAAOpL,EAAIwK,EAAMtH,MAC5B+H,EAAKI,EAAKlK,KACVnB,EAAGqJ,aAAahF,EAAIgH,EAAKA,MAAOA,EAAKlK,KAAMkK,EAAKjK,SAoFtD,SAASiO,EAAUrP,GACjB,IAAImB,EAAOnB,EAAGyJ,UAAU,QAASrI,EAAKpB,EAAGyJ,UAAU,MACnD,GAAmC,GAA/BrK,EAAW2J,OAAO5H,EAAMC,GAAU,CACpC,IAAIiK,EAAOD,EAAOpL,EAAImB,GACtB,IAAKkK,EAAKA,KAAM,OAChBlK,EAAOkK,EAAKlK,KACZC,EAAKiK,EAAKjK,GAEZ,MAAO,CAACD,KAAMA,EAAMC,GAAIA,EAAIiG,MAAOrH,EAAG0N,SAASvM,EAAMC,GAAKiK,KAAMA,GAGlE,SAASiE,EAAYtP,EAAIqB,GACvB,IAAI4D,EAASoK,EAAUrP,GACvB,GAAKiF,EAAL,CACA,IAAIoC,EAAQpC,EAAOoC,MACfkC,EAAMvJ,EAAGwJ,gBAAgBnC,EAAOhG,EAAU4D,EAAO7D,GAAK6D,EAAO9D,OAE7DE,EAAUkI,EAAIX,WAAaW,EAAIT,gBACjC9I,EAAGgN,aAAazD,EAAIpI,OAAQoI,EAAInI,OAEhCmI,EAAMvJ,EAAGwJ,gBAAgBnC,EAAOhG,EAAU1B,EAAIK,EAAG+B,YAAa,GACpB/B,EAAGoI,QAAQzI,EAAIK,EAAG6B,eACxDR,EAAUkI,EAAIX,WAAaW,EAAIT,gBACjC9I,EAAGgN,aAAazD,EAAIpI,OAAQoI,EAAInI,MACzB6D,EAAOoG,MACdrL,EAAGgN,aAAa/H,EAAO9D,KAAM8D,EAAO7D,MAzV1CwI,EAAK2F,YAAc,SAASvP,GAC1BmO,EAAsBnO,IAAOA,EAAGmL,YAAY,cAE9CvB,EAAKuE,sBAAwB,SAASnO,GACpC,IAAKmO,EAAsBnO,GAAK,OAAOZ,EAAW2L,MAOpDnB,EAAK4F,YAAc,SAASxP,GAC1BA,EAAGuK,oBAAmB,SAASC,GAC7B,IAAIN,EAAOlK,EAAGkB,eAAesJ,EAAMtH,KAAM,EAAGoL,EAAStO,EAAGgB,eAAewJ,EAAMtH,QAC7E,GAAIgH,GAAmD,GAA3C9K,EAAW2J,OAAOmB,EAAK9J,IAAKoK,EAAMtH,MAAY,OAAOgH,EAAK9J,IACtE,IAAIqP,EAAOzP,EAAGkB,eAAesJ,EAAMtH,MAAO,EAAGoL,EAAStO,EAAGgB,eAAerB,EAAI6K,EAAMtH,KAAKhD,KAAMsK,EAAMtH,KAAK7C,GAAK,MAC7G,OAAOoP,GAAQ9P,EAAI8P,EAAKrP,IAAIF,KAAMuP,EAAKrP,IAAIC,GAAK,IAAMmK,EAAMtH,SAIhE0G,EAAK8F,WAAa,SAAS1P,GACzB,GAAIA,EAAG8K,aAAc,OAAO1L,EAAW2L,KAEvC,IADA,IAAIjI,EAAS9C,EAAG+C,iBAAkB4M,EAAc,GAAI1E,EAAKjL,EAAG+B,YAAc,EAAG6N,EAAU,GAC9E5M,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CACtC,IAAIwH,EAAQ1H,EAAOE,GAAI7B,EAAOqJ,EAAMrJ,OAAOjB,KAAO,EAAGkB,EAAKoJ,EAAMpJ,KAAKlB,KACrE0P,EAAQvN,KAAK,CAACqH,OAAQ/J,EAAI6K,EAAMd,OAAOxJ,KAAO,EAAGsK,EAAMd,OAAOrJ,IAChD6C,KAAMvD,EAAI6K,EAAMtH,KAAKhD,KAAO,EAAGsK,EAAMtH,KAAK7C,MACnC,GAAjBmK,EAAMpJ,KAAKf,IAAYmK,EAAMvH,WAAW7B,EACxCD,EAAO8J,EAAI0E,EAAYtN,KAAKlB,EAAMC,GAC7BuO,EAAYzN,SAAQyN,EAAYA,EAAYzN,OAAS,GAAKd,GACnE6J,EAAK7J,EAEPpB,EAAGuD,WAAU,WACX,IAAK,IAAIP,EAAI,EAAGA,EAAI2M,EAAYzN,OAAQc,GAAK,EAAG,CAC9C,IAAI7B,EAAOwO,EAAY3M,GAAI5B,EAAKuO,EAAY3M,EAAI,GAC5C9C,EAAOF,EAAGiC,QAAQd,GACtBnB,EAAGqJ,aAAa,GAAI1J,EAAIwB,EAAM,GAAIxB,EAAIwB,EAAO,EAAG,GAAI,aAChDC,EAAKpB,EAAG6B,WACV7B,EAAGqJ,aAAa,KAAOnJ,EAAMP,EAAIK,EAAG6B,YAAa,KAAM,aAEvD7B,EAAGqJ,aAAanJ,EAAO,KAAMP,EAAIyB,EAAI,GAAI,KAAM,aAEnDpB,EAAG2J,cAAciG,GACjB5P,EAAG6P,qBAIPjG,EAAKkG,aAAe,SAAS9P,GAC3B,GAAIA,EAAG8K,aAAc,OAAO1L,EAAW2L,KAEvC,IADA,IAAIjI,EAAS9C,EAAG+C,iBAAkB4M,EAAc,GAAI1E,EAAKjL,EAAG6B,WAAa,EAChEmB,EAAIF,EAAOZ,OAAS,EAAGc,GAAK,EAAGA,IAAK,CAC3C,IAAIwH,EAAQ1H,EAAOE,GAAI7B,EAAOqJ,EAAMpJ,KAAKlB,KAAO,EAAGkB,EAAKoJ,EAAMrJ,OAAOjB,KAChD,GAAjBsK,EAAMpJ,KAAKf,IAAYmK,EAAMvH,SAAS9B,IACtCA,EAAO8J,EAAI0E,EAAYtN,KAAKlB,EAAMC,GAC7BuO,EAAYzN,SAAQyN,EAAYA,EAAYzN,OAAS,GAAKd,GACnE6J,EAAK7J,EAEPpB,EAAGuD,WAAU,WACX,IAAK,IAAIP,EAAI2M,EAAYzN,OAAS,EAAGc,GAAK,EAAGA,GAAK,EAAG,CACnD,IAAI7B,EAAOwO,EAAY3M,GAAI5B,EAAKuO,EAAY3M,EAAI,GAC5C9C,EAAOF,EAAGiC,QAAQd,GAClBA,GAAQnB,EAAG6B,WACb7B,EAAGqJ,aAAa,GAAI1J,EAAIwB,EAAO,GAAIxB,EAAIwB,GAAO,aAE9CnB,EAAGqJ,aAAa,GAAI1J,EAAIwB,EAAM,GAAIxB,EAAIwB,EAAO,EAAG,GAAI,aACtDnB,EAAGqJ,aAAanJ,EAAO,KAAMP,EAAIyB,EAAI,GAAI,KAAM,aAEjDpB,EAAG6P,qBAIPjG,EAAKmG,sBAAwB,SAAS/P,GACpCA,EAAGgQ,cAAc,CAAEC,QAAQ,KAG7BrG,EAAKsG,UAAY,SAASlQ,GAExB,IADA,IAAI8C,EAAS9C,EAAG+C,iBAAkBoN,EAAS,GAClCnN,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CAGtC,IAFA,IAAIwH,EAAQ1H,EAAOE,GAAI7B,EAAOqJ,EAAMrJ,OAChCqE,EAAQrE,EAAKjB,KAAMiC,EAAMqI,EAAMpJ,KAAKlB,KACjC8C,EAAIF,EAAOZ,OAAS,GAAKY,EAAOE,EAAI,GAAG7B,OAAOjB,MAAQiC,GAC3DA,EAAMW,IAASE,GAAG5B,KAAKlB,KACzBiQ,EAAO9N,KAAK,CAACmD,MAAOA,EAAOrD,IAAKA,EAAKuH,QAASc,EAAMvH,SAAW9B,IAEjEnB,EAAGuD,WAAU,WAEX,IADA,IAAI6M,EAAS,EAAGtN,EAAS,GAChBE,EAAI,EAAGA,EAAImN,EAAOjO,OAAQc,IAAK,CAGtC,IAFA,IACyEE,EADrEmN,EAAMF,EAAOnN,GACb0G,EAAS2G,EAAI3G,QAAU/J,EAAI0Q,EAAI3G,OAAOxJ,KAAOkQ,EAAQC,EAAI3G,OAAOrJ,IAC3DH,EAAOmQ,EAAI7K,MAAOtF,GAAQmQ,EAAIlO,IAAKjC,IAAQ,CAClD,IAAIoQ,EAASpQ,EAAOkQ,EAChBlQ,GAAQmQ,EAAIlO,MAAKe,EAAOvD,EAAI2Q,EAAQtQ,EAAGiC,QAAQqO,GAAQpO,OAAS,IAChEoO,EAAStQ,EAAG6B,aACd7B,EAAGqJ,aAAa,IAAK1J,EAAI2Q,GAAS3Q,EAAI2Q,EAAS,EAAG,OAAO1K,KAAK5F,EAAGiC,QAAQqO,EAAS,IAAI,GAAGpO,WACvFkO,GAGNtN,EAAOT,KAAK,CAACqH,OAAQA,GAAUxG,EAAMA,KAAMA,IAE7ClD,EAAG2J,cAAc7G,EAAQ,OAI7B8G,EAAK2G,cAAgB,SAASvQ,GAC5BA,EAAGuD,WAAU,WAEX,IADA,IAAIiN,EAAaxQ,EAAG+C,iBAAiBb,OAC5Bc,EAAI,EAAGA,EAAIwN,EAAYxN,IAAK,CACnC,IAAIwH,EAAQxK,EAAG+C,iBAAiBC,GAC5BwH,EAAMvH,QACRjD,EAAGqJ,aAAarJ,EAAGiC,QAAQuI,EAAMtH,KAAKhD,MAAQ,KAAMP,EAAI6K,EAAMtH,KAAKhD,KAAM,IAEzEF,EAAGqJ,aAAarJ,EAAG0N,SAASlD,EAAMrJ,OAAQqJ,EAAMpJ,MAAOoJ,EAAMrJ,QAEjEnB,EAAG6P,qBAyCPjG,EAAK2E,UAAY,SAASvO,GAAMuO,EAAUvO,GAAI,EAAM,IACpD4J,EAAK6G,iBAAmB,SAASzQ,GAAMuO,EAAUvO,GAAI,GAAO,IAC5D4J,EAAK8G,qBAAuB,SAAS1Q,GAAMuO,EAAUvO,GAAI,EAAO,IAChE4J,EAAK+G,4BAA8B,SAAS3Q,GAAMuO,EAAUvO,GAAI,GAAQ,IAExE4J,EAAKgH,aAAe,SAAS5Q,GAC3B,IAAI6C,EAAQ7C,EAAG0C,MAAMmO,iBACrB,GAAIhO,EAAO,KAAOA,EAAMX,QAAQ,CAC9B,IAAI8C,EAAUnC,EAAM6H,QAChBzJ,EAAQ+D,EAAQ6D,OACpB,GAAI5H,EAEF,OADA4B,EAAMR,KAAK2C,GACJhF,EAAGgN,aAAa/L,EAAME,KAAMF,EAAMG,MAK/CwI,EAAKkH,aAAe,SAAS9Q,GAC3B,IAAI6C,EAAQ7C,EAAG0C,MAAMmO,iBACrB,GAAIhO,EAAO,KAAOA,EAAMX,QAAQ,CAC9BW,EAAMkO,QAAQlO,EAAMP,OACpB,IAAIrB,EAAQ4B,EAAMA,EAAMX,OAAS,GAAG2G,OACpC,GAAK5H,EAGH,OAAOjB,EAAGgN,aAAa/L,EAAME,KAAMF,EAAMG,IAFzCyB,EAAMP,QAMZsH,EAAKoH,eAAiB,SAAShR,GAG7B,IAFA,IAAI8C,EAAS9C,EAAG+C,iBACZF,EAAQ7C,EAAG0C,MAAMmO,mBAAqB7Q,EAAG0C,MAAMmO,iBAAmB,IAC7D7N,EAAI,EAAGA,EAAIF,EAAOZ,OAAQc,IAAK,CAGtC,IAFA,IAAI7B,EAAO2B,EAAOE,GAAG7B,OAAQC,EAAK0B,EAAOE,GAAG5B,KACxCH,EAAQ6B,EAAOE,GAAGC,QAAUjD,EAAGiR,YAAY9P,GAAQnB,EAAGkR,UAAU/P,EAAMC,GACjE+P,EAAI,EAAGA,EAAIlQ,EAAMiB,OAAQiP,IAChC,GAAIlQ,EAAMkQ,GAAGC,gBAAiB,CAC5BnQ,EAAMkQ,GAAG7N,QACT,IAAK,IAAI+N,EAAI,EAAGA,EAAIxO,EAAMX,OAAQmP,IAC5BxO,EAAMwO,IAAMpQ,EAAMkQ,IACpBtO,EAAMyO,OAAOD,IAAK,GACtB,MAGAF,GAAKlQ,EAAMiB,QACbW,EAAMR,KAAKrC,EAAGmD,SAAShC,EAAMC,EAAI,CAACgQ,iBAAiB,EAAMG,gBAAgB,OAI/E3H,EAAK4H,eAAiB,SAASxR,GAC7B,IAAI6C,EAAQ7C,EAAG0C,MAAMmO,iBACrB,GAAIhO,EAAO,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAMX,OAAQc,IAAKH,EAAMG,GAAGM,QAC3DT,EAAMX,OAAS,GAGjB0H,EAAK6H,gBAAkB,SAASzR,GAC9B,IAAI6C,EAAQ7C,EAAG0C,MAAMmO,iBAAkB/N,EAAS,GAChD,GAAID,EAAO,IAAK,IAAIG,EAAI,EAAGA,EAAIH,EAAMX,OAAQc,IAAK,CAChD,IAAI/B,EAAQ4B,EAAMG,GAAG6F,OAChB5H,EAGH6B,EAAOT,KAAK,CAACqH,OAAQzI,EAAME,KAAM+B,KAAMjC,EAAMG,KAF7CyB,EAAMyO,OAAOtO,IAAK,GAIlBF,EAAOZ,QACTlC,EAAG2J,cAAc7G,EAAQ,IAsB7B8G,EAAK8H,eAAiB,SAAS1R,GAC7B,GAAIA,EAAGqM,oBAAqB,OAAOjN,EAAW2L,KAE9C/K,EAAGuD,WAAU,WAIX,IAHA,IAAIoO,EAAU3R,EAAG+C,iBACb6O,EAAa5R,EAAG6R,UAAU,cAErB7O,EAAI2O,EAAQzP,OAAS,EAAGc,GAAK,EAAGA,IAAK,CAC5C,IAAI8O,EAASH,EAAQ3O,GAAGE,KACpB6O,EAAgB/R,EAAG0N,SAAS,CAACxN,KAAM4R,EAAO5R,KAAMG,GAAI,GAAIyR,GACxDE,EAAS5S,EAAW6S,YAAYF,EAAe,KAAM/R,EAAG6R,UAAU,YAGlEK,EAAYlS,EAAGmS,SAASL,GAAS,EAAG,QAAQ,GAEhD,GAAIC,IAAkB,KAAKzS,KAAKyS,IAAkBC,EAASJ,GAAc,EAAG,CAC1E,IAAIQ,EAAa,IAAIzS,EAAImS,EAAO5R,KAC9Bd,EAAWiT,WAAWN,EAAeC,EAASJ,EAAYA,IAGxDQ,EAAW/R,IAAMyR,EAAOzR,KAAI6R,EAAYE,GAG9CpS,EAAGqJ,aAAa,GAAI6I,EAAWJ,EAAQ,gBAK7ClI,EAAK0I,aAAe,SAAStS,GAC3BA,EAAGuD,WAAU,WAEX,IADA,IAAIT,EAAS9C,EAAG+C,iBACPC,EAAIF,EAAOZ,OAAS,EAAGc,GAAK,EAAGA,IACtChD,EAAGqJ,aAAa,GAAIvG,EAAOE,GAAG0G,OAAQ/J,EAAImD,EAAOE,GAAG5B,KAAKlB,MAAO,WAClEF,EAAG6P,qBAIPjG,EAAK2I,eAAiB,SAASvS,GAC7BiP,EAAsBjP,GAAI,SAAS0I,GAAO,OAAOA,EAAI2B,kBAEvDT,EAAK4I,iBAAmB,SAASxS,GAC/BiP,EAAsBjP,GAAI,SAAS0I,GAAO,OAAOA,EAAIC,kBAGvDiB,EAAK6I,eAAiB,SAASzS,GACzBA,EAAG0C,MAAMgQ,aAAa1S,EAAG0C,MAAMgQ,YAAYpP,QAC/CtD,EAAG0C,MAAMgQ,YAAc1S,EAAG2S,YAAY3S,EAAGyJ,cAE3CG,EAAKgJ,oBAAsB,SAAS5S,GAClC,IAAIiB,EAAQjB,EAAG0C,MAAMgQ,aAAe1S,EAAG0C,MAAMgQ,YAAY7J,OACrD5H,GAAOjB,EAAGgN,aAAahN,EAAGyJ,YAAaxI,IAE7C2I,EAAKiJ,oBAAsB,SAAS7S,GAClC,IAAIiB,EAAQjB,EAAG0C,MAAMgQ,aAAe1S,EAAG0C,MAAMgQ,YAAY7J,OACzD,GAAI5H,EAAO,CACT,IAAIE,EAAOnB,EAAGyJ,YAAarI,EAAKH,EAChC,GAAI7B,EAAW2J,OAAO5H,EAAMC,GAAM,EAAG,CAAE,IAAI0R,EAAM1R,EAAIA,EAAKD,EAAMA,EAAO2R,EACvE9S,EAAG0C,MAAMqQ,cAAgB/S,EAAG0N,SAASvM,EAAMC,GAC3CpB,EAAGqJ,aAAa,GAAIlI,EAAMC,KAG9BwI,EAAKoJ,oBAAsB,SAAShT,GAClC,IAAIiB,EAAQjB,EAAG0C,MAAMgQ,aAAe1S,EAAG0C,MAAMgQ,YAAY7J,OACrD5H,IACFjB,EAAG0C,MAAMgQ,YAAYpP,QACrBtD,EAAG0C,MAAMgQ,YAAc1S,EAAG2S,YAAY3S,EAAGyJ,aACzCzJ,EAAGiT,UAAUhS,KAGjB2I,EAAKsJ,YAAc,SAASlT,GACI,MAA1BA,EAAG0C,MAAMqQ,eACX/S,EAAGmT,iBAAiBnT,EAAG0C,MAAMqQ,cAAe,KAAM,UAGtDnJ,EAAKwJ,aAAe,SAASpT,GAC3B,IAAII,EAAMJ,EAAG4L,aAAa,KAAM,SAChC5L,EAAGyM,SAAS,MAAOrM,EAAI0H,IAAM1H,EAAIiT,QAAU,EAAIrT,EAAGoM,gBAAgBI,aAAe,IA+BnF5C,EAAK0J,UAAY,SAAStT,GAAMsP,EAAYtP,GAAI,IAChD4J,EAAK2J,kBAAoB,SAASvT,GAAMsP,EAAYtP,GAAG,IACvD4J,EAAK4J,aAAe,SAASxT,GAC3B,IAAIiF,EAASoK,EAAUrP,GACvB,GAAKiF,EAAL,CAIA,IAHA,IAAIsE,EAAMvJ,EAAGwJ,gBAAgBvE,EAAOoC,OAChCgB,EAAU,GACVoL,GAAgB,EACblK,EAAIX,YACTP,EAAQhG,KAAK,CAACqH,OAAQH,EAAIpI,OAAQ+B,KAAMqG,EAAInI,OACxCmI,EAAIpI,OAAOjB,MAAQ+E,EAAO9D,KAAKjB,MAAQqJ,EAAIpI,OAAOd,IAAM4E,EAAO9D,KAAKd,IACtEoT,IAEJzT,EAAG2J,cAActB,EAASoL,KAI5B,IAAIC,EAAStU,EAAWsU,OACxBA,EAAOC,WAAa,CAClB,WAAY,mBACZ,YAAa,aACb,eAAgB,aAChB,QAAS,YACT,YAAa,gBACb,aAAc,iBACd,cAAe,eACf,gBAAiB,iBACjB,QAAS,aACT,cAAe,uBACf,IAAO,qBACP,YAAa,kBACb,kBAAmB,mBACnB,QAAS,uBACT,kBAAmB,cACnB,cAAe,wBACf,QAAS,cACT,cAAe,aACf,gBAAiB,eACjB,QAAS,wBACT,QAAS,YACT,cAAe,gBACf,GAAM,YACN,WAAY,mBACZ,SAAU,uBACV,eAAgB,8BAChB,GAAM,eACN,WAAY,eACZ,SAAU,iBACV,eAAgB,iBAChB,SAAU,kBACV,UAAa,iBACb,cAAe,8BACf,cAAe,eACf,cAAe,iBACf,cAAe,mBACf,kBAAmB,iBACnB,cAAe,sBACf,cAAe,sBACf,cAAe,sBACf,cAAe,cACf,cAAe,eACf,cAAe,iBACf,sBAAuB,cACvB,cAAe,UACf,cAAe,YACf,cAAe,YACf,gBAAiB,sBACjB,kBAAmB,sBACnB,SAAU,YACV,eAAgB,oBAChB,SAAU,eACV,cAAe,OACf,cAAe,SACf,QAAS,kBACT,cAAe,yBACf,QAAS,UACT,GAAM,WACN,WAAY,WACZ,YAAe,cAEjBvU,EAAWwU,gBAAgBF,EAAOC,YAElCD,EAAOG,UAAY,CACjB,YAAa,aACb,eAAgB,aAChB,QAAS,YACT,SAAU,iBACV,WAAY,gBACZ,YAAa,iBACb,UAAW,eACX,YAAa,iBACb,SAAU,aACV,eAAgB,uBAChB,IAAO,qBACP,aAAc,kBACd,mBAAoB,mBACpB,SAAU,uBACV,mBAAoB,cACpB,eAAgB,wBAChB,SAAU,cACV,gBAAiB,aACjB,kBAAmB,eACnB,SAAU,wBACV,SAAU,YACV,eAAgB,gBAChB,GAAM,YACN,WAAY,mBACZ,UAAW,uBACX,gBAAiB,8BACjB,GAAM,eACN,WAAY,eACZ,UAAW,iBACX,gBAAiB,iBACjB,SAAU,kBACV,UAAa,iBACb,gBAAiB,8BACjB,gBAAiB,eACjB,gBAAiB,iBACjB,gBAAiB,mBACjB,oBAAqB,iBACrB,gBAAiB,sBACjB,gBAAiB,sBACjB,gBAAiB,sBACjB,gBAAiB,cACjB,gBAAiB,eACjB,gBAAiB,iBACjB,wBAAyB,cACzB,gBAAiB,UACjB,gBAAiB,YACjB,gBAAiB,YACjB,cAAe,sBACf,gBAAiB,sBACjB,UAAW,YACX,gBAAiB,oBACjB,SAAU,eACV,eAAgB,OAChB,eAAgB,SAChB,SAAU,kBACV,eAAgB,yBAChB,SAAU,UACV,GAAM,WACN,WAAY,WACZ,YAAe,aAEjBzU,EAAWwU,gBAAgBF,EAAOG,WAElC,IAAIC,EAAMJ,EAAOK,SAAWL,EAAOM,WACnCN,EAAOO,QAAUH,EAAMJ,EAAOC,WAAaD,EAAOG,UAtsBhDxP,CAAIC,EAAQ,MAAsBA,EAAQ,MAAiCA,EAAQ","sources":["../node_modules/codemirror/addon/edit/matchbrackets.js","../node_modules/codemirror/addon/search/searchcursor.js","../node_modules/codemirror/keymap/sublime.js"],"sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n (document.documentMode == null || document.documentMode < 8);\n\n var Pos = CodeMirror.Pos;\n\n var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\", \"<\": \">>\", \">\": \"<<\"};\n\n function bracketRegex(config) {\n return config && config.bracketRegex || /[(){}[\\]]/\n }\n\n function findMatchingBracket(cm, where, config) {\n var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n var afterCursor = config && config.afterCursor\n if (afterCursor == null)\n afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)\n var re = bracketRegex(config)\n\n // A cursor is defined as between two characters, but in in vim command mode\n // (i.e. not insert mode), the cursor is visually represented as a\n // highlighted box on top of the 2nd character. Otherwise, we allow matches\n // from before or after the cursor.\n var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) ||\n re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)];\n if (!match) return null;\n var dir = match.charAt(1) == \">\" ? 1 : -1;\n if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;\n var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config);\n if (found == null) return null;\n return {from: Pos(where.line, pos), to: found && found.pos,\n match: found && found.ch == match.charAt(0), forward: dir > 0};\n }\n\n // bracketRegex is used to specify which type of bracket to scan\n // should be a regexp, e.g. /[[\\]]/\n //\n // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n //\n // Returns false when no bracket was found, null when it reached\n // maxScanLines and gave up\n function scanForBracket(cm, where, dir, style, config) {\n var maxScanLen = (config && config.maxScanLineLength) || 10000;\n var maxScanLines = (config && config.maxScanLines) || 1000;\n\n var stack = [];\n var re = bracketRegex(config)\n var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n var line = cm.getLine(lineNo);\n if (!line) continue;\n var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n if (line.length > maxScanLen) continue;\n if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n for (; pos != end; pos += dir) {\n var ch = line.charAt(pos);\n if (re.test(ch) && (style === undefined ||\n (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || \"\") == (style || \"\"))) {\n var match = matching[ch];\n if (match && (match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n else stack.pop();\n }\n }\n }\n return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n }\n\n function matchBrackets(cm, autoclear, config) {\n // Disable brace matching in long lines, since it'll cause hugely slow updates\n var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000,\n highlightNonMatching = config && config.highlightNonMatching;\n var marks = [], ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);\n if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) {\n var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n }\n }\n\n if (marks.length) {\n // Kludge to work around the IE bug from issue #1193, where text\n // input stops going to the textarea whenever this fires.\n if (ie_lt8 && cm.state.focused) cm.focus();\n\n var clear = function() {\n cm.operation(function() {\n for (var i = 0; i < marks.length; i++) marks[i].clear();\n });\n };\n if (autoclear) setTimeout(clear, 800);\n else return clear;\n }\n }\n\n function doMatchBrackets(cm) {\n cm.operation(function() {\n if (cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n });\n }\n\n function clearHighlighted(cm) {\n if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n }\n\n CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.off(\"cursorActivity\", doMatchBrackets);\n cm.off(\"focus\", doMatchBrackets)\n cm.off(\"blur\", clearHighlighted)\n clearHighlighted(cm);\n }\n if (val) {\n cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n cm.on(\"cursorActivity\", doMatchBrackets);\n cm.on(\"focus\", doMatchBrackets)\n cm.on(\"blur\", clearHighlighted)\n }\n });\n\n CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, config, oldConfig){\n // Backwards-compatibility kludge\n if (oldConfig || typeof config == \"boolean\") {\n if (!oldConfig) {\n config = config ? {strict: true} : null\n } else {\n oldConfig.strict = config\n config = oldConfig\n }\n }\n return findMatchingBracket(this, pos, config)\n });\n CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n return scanForBracket(this, pos, dir, style, config);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n var Pos = CodeMirror.Pos\n\n function regexpFlags(regexp) {\n var flags = regexp.flags\n return flags != null ? flags : (regexp.ignoreCase ? \"i\" : \"\")\n + (regexp.global ? \"g\" : \"\")\n + (regexp.multiline ? \"m\" : \"\")\n }\n\n function ensureFlags(regexp, flags) {\n var current = regexpFlags(regexp), target = current\n for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)\n target += flags.charAt(i)\n return current == target ? regexp : new RegExp(regexp.source, target)\n }\n\n function maybeMultiline(regexp) {\n return /\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(regexp.source)\n }\n\n function searchRegexpForward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {\n regexp.lastIndex = ch\n var string = doc.getLine(line), match = regexp.exec(string)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpForwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)\n\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunk = 1\n for (var line = start.line, last = doc.lastLine(); line <= last;) {\n // This grows the search buffer in exponentially-sized chunks\n // between matches, so that nearby matches are fast and don't\n // require concatenating the whole document (in case we're\n // searching for something that has tons of matches), but at the\n // same time, the amount of retries is limited.\n for (var i = 0; i < chunk; i++) {\n if (line > last) break\n var curLine = doc.getLine(line++)\n string = string == null ? curLine : string + \"\\n\" + curLine\n }\n chunk = chunk * 2\n regexp.lastIndex = start.ch\n var match = regexp.exec(string)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n function lastMatchIn(string, regexp, endMargin) {\n var match, from = 0\n while (from <= string.length) {\n regexp.lastIndex = from\n var newMatch = regexp.exec(string)\n if (!newMatch) break\n var end = newMatch.index + newMatch[0].length\n if (end > string.length - endMargin) break\n if (!match || end > match.index + match[0].length)\n match = newMatch\n from = newMatch.index + 1\n }\n return match\n }\n\n function searchRegexpBackward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {\n var string = doc.getLine(line)\n var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpBackwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start)\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunkSize = 1, endMargin = doc.getLine(start.line).length - start.ch\n for (var line = start.line, first = doc.firstLine(); line >= first;) {\n for (var i = 0; i < chunkSize && line >= first; i++) {\n var curLine = doc.getLine(line--)\n string = string == null ? curLine : curLine + \"\\n\" + string\n }\n chunkSize *= 2\n\n var match = lastMatchIn(string, regexp, endMargin)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = line + before.length, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n var doFold, noFold\n if (String.prototype.normalize) {\n doFold = function(str) { return str.normalize(\"NFD\").toLowerCase() }\n noFold = function(str) { return str.normalize(\"NFD\") }\n } else {\n doFold = function(str) { return str.toLowerCase() }\n noFold = function(str) { return str }\n }\n\n // Maps a position in a case-folded line back to a position in the original line\n // (compensating for codepoints increasing in number during folding)\n function adjustPos(orig, folded, pos, foldFunc) {\n if (orig.length == folded.length) return pos\n for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {\n if (min == max) return min\n var mid = (min + max) >> 1\n var len = foldFunc(orig.slice(0, mid)).length\n if (len == pos) return mid\n else if (len > pos) max = mid\n else min = mid + 1\n }\n }\n\n function searchStringForward(doc, query, start, caseFold) {\n // Empty string would match anything and never progress, so we\n // define it to match nothing instead.\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {\n var orig = doc.getLine(line).slice(ch), string = fold(orig)\n if (lines.length == 1) {\n var found = string.indexOf(lines[0])\n if (found == -1) continue search\n var start = adjustPos(orig, string, found, fold) + ch\n return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}\n } else {\n var cutFrom = string.length - lines[0].length\n if (string.slice(cutFrom) != lines[0]) continue search\n for (var i = 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(line + i)) != lines[i]) continue search\n var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]\n if (endString.slice(0, lastLine.length) != lastLine) continue search\n return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),\n to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}\n }\n }\n }\n\n function searchStringBackward(doc, query, start, caseFold) {\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {\n var orig = doc.getLine(line)\n if (ch > -1) orig = orig.slice(0, ch)\n var string = fold(orig)\n if (lines.length == 1) {\n var found = string.lastIndexOf(lines[0])\n if (found == -1) continue search\n return {from: Pos(line, adjustPos(orig, string, found, fold)),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}\n } else {\n var lastLine = lines[lines.length - 1]\n if (string.slice(0, lastLine.length) != lastLine) continue search\n for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(start + i)) != lines[i]) continue search\n var top = doc.getLine(line + 1 - lines.length), topString = fold(top)\n if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search\n return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),\n to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}\n }\n }\n }\n\n function SearchCursor(doc, query, pos, options) {\n this.atOccurrence = false\n this.afterEmptyMatch = false\n this.doc = doc\n pos = pos ? doc.clipPos(pos) : Pos(0, 0)\n this.pos = {from: pos, to: pos}\n\n var caseFold\n if (typeof options == \"object\") {\n caseFold = options.caseFold\n } else { // Backwards compat for when caseFold was the 4th argument\n caseFold = options\n options = null\n }\n\n if (typeof query == \"string\") {\n if (caseFold == null) caseFold = false\n this.matches = function(reverse, pos) {\n return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)\n }\n } else {\n query = ensureFlags(query, \"gm\")\n if (!options || options.multiline !== false)\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)\n }\n else\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)\n }\n }\n }\n\n SearchCursor.prototype = {\n findNext: function() {return this.find(false)},\n findPrevious: function() {return this.find(true)},\n\n find: function(reverse) {\n var head = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);\n if (this.afterEmptyMatch && this.atOccurrence) {\n // do not return the same 0 width match twice\n head = Pos(head.line, head.ch)\n if (reverse) {\n head.ch--;\n if (head.ch < 0) {\n head.line--;\n head.ch = (this.doc.getLine(head.line) || \"\").length;\n }\n } else {\n head.ch++;\n if (head.ch > (this.doc.getLine(head.line) || \"\").length) {\n head.ch = 0;\n head.line++;\n }\n }\n if (CodeMirror.cmpPos(head, this.doc.clipPos(head)) != 0) {\n return this.atOccurrence = false\n }\n }\n var result = this.matches(reverse, head)\n this.afterEmptyMatch = result && CodeMirror.cmpPos(result.from, result.to) == 0\n\n if (result) {\n this.pos = result\n this.atOccurrence = true\n return this.pos.match || true\n } else {\n var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)\n this.pos = {from: end, to: end}\n return this.atOccurrence = false\n }\n },\n\n from: function() {if (this.atOccurrence) return this.pos.from},\n to: function() {if (this.atOccurrence) return this.pos.to},\n\n replace: function(newText, origin) {\n if (!this.atOccurrence) return\n var lines = CodeMirror.splitLines(newText)\n this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)\n this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))\n }\n }\n\n CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this.doc, query, pos, caseFold)\n })\n CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this, query, pos, caseFold)\n })\n\n CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n var ranges = []\n var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold)\n while (cur.findNext()) {\n if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break\n ranges.push({anchor: cur.from(), head: cur.to()})\n }\n if (ranges.length)\n this.setSelections(ranges, 0)\n })\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// A rough approximation of Sublime Text's keybindings\n// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/edit/matchbrackets\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/edit/matchbrackets\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n\n // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.\n function findPosSubword(doc, start, dir) {\n if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));\n var line = doc.getLine(start.line);\n if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));\n var state = \"start\", type, startPos = start.ch;\n for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {\n var next = line.charAt(dir < 0 ? pos - 1 : pos);\n var cat = next != \"_\" && CodeMirror.isWordChar(next) ? \"w\" : \"o\";\n if (cat == \"w\" && next.toUpperCase() == next) cat = \"W\";\n if (state == \"start\") {\n if (cat != \"o\") { state = \"in\"; type = cat; }\n else startPos = pos + dir\n } else if (state == \"in\") {\n if (type != cat) {\n if (type == \"w\" && cat == \"W\" && dir < 0) pos--;\n if (type == \"W\" && cat == \"w\" && dir > 0) { // From uppercase to lowercase\n if (pos == startPos + 1) { type = \"w\"; continue; }\n else pos--;\n }\n break;\n }\n }\n }\n return Pos(start.line, pos);\n }\n\n function moveSubword(cm, dir) {\n cm.extendSelectionsBy(function(range) {\n if (cm.display.shift || cm.doc.extend || range.empty())\n return findPosSubword(cm.doc, range.head, dir);\n else\n return dir < 0 ? range.from() : range.to();\n });\n }\n\n cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };\n cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };\n\n cmds.scrollLineUp = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, \"local\");\n if (cm.getCursor().line >= visibleBottomLine)\n cm.execCommand(\"goLineUp\");\n }\n cm.scrollTo(null, info.top - cm.defaultTextHeight());\n };\n cmds.scrollLineDown = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleTopLine = cm.lineAtHeight(info.top, \"local\")+1;\n if (cm.getCursor().line <= visibleTopLine)\n cm.execCommand(\"goLineDown\");\n }\n cm.scrollTo(null, info.top + cm.defaultTextHeight());\n };\n\n cmds.splitSelectionByLine = function(cm) {\n var ranges = cm.listSelections(), lineRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n for (var line = from.line; line <= to.line; ++line)\n if (!(to.line > from.line && line == to.line && to.ch == 0))\n lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),\n head: line == to.line ? to : Pos(line)});\n }\n cm.setSelections(lineRanges, 0);\n };\n\n cmds.singleSelectionTop = function(cm) {\n var range = cm.listSelections()[0];\n cm.setSelection(range.anchor, range.head, {scroll: false});\n };\n\n cmds.selectLine = function(cm) {\n var ranges = cm.listSelections(), extended = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n extended.push({anchor: Pos(range.from().line, 0),\n head: Pos(range.to().line + 1, 0)});\n }\n cm.setSelections(extended);\n };\n\n function insertLine(cm, above) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n cm.operation(function() {\n var len = cm.listSelections().length, newSelection = [], last = -1;\n for (var i = 0; i < len; i++) {\n var head = cm.listSelections()[i].head;\n if (head.line <= last) continue;\n var at = Pos(head.line + (above ? 0 : 1), 0);\n cm.replaceRange(\"\\n\", at, null, \"+insertLine\");\n cm.indentLine(at.line, null, true);\n newSelection.push({head: at, anchor: at});\n last = head.line + 1;\n }\n cm.setSelections(newSelection);\n });\n cm.execCommand(\"indentAuto\");\n }\n\n cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };\n\n cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };\n\n function wordAt(cm, pos) {\n var start = pos.ch, end = start, line = cm.getLine(pos.line);\n while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;\n while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;\n return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};\n }\n\n cmds.selectNextOccurrence = function(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n cm.setSelection(word.from, word.to);\n fullWord = true;\n } else {\n var text = cm.getRange(from, to);\n var query = fullWord ? new RegExp(\"\\\\b\" + text + \"\\\\b\") : text;\n var cur = cm.getSearchCursor(query, to);\n var found = cur.findNext();\n if (!found) {\n cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));\n found = cur.findNext();\n }\n if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return\n cm.addSelection(cur.from(), cur.to());\n }\n if (fullWord)\n cm.state.sublimeFindFullWord = cm.doc.sel;\n };\n\n cmds.skipAndSelectNextOccurrence = function(cm) {\n var prevAnchor = cm.getCursor(\"anchor\"), prevHead = cm.getCursor(\"head\");\n cmds.selectNextOccurrence(cm);\n if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {\n cm.doc.setSelections(cm.doc.listSelections()\n .filter(function (sel) {\n return sel.anchor != prevAnchor || sel.head != prevHead;\n }));\n }\n }\n\n function addCursorToSelection(cm, dir) {\n var ranges = cm.listSelections(), newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var newAnchor = cm.findPosV(\n range.anchor, dir, \"line\", range.anchor.goalColumn);\n var newHead = cm.findPosV(\n range.head, dir, \"line\", range.head.goalColumn);\n newAnchor.goalColumn = range.anchor.goalColumn != null ?\n range.anchor.goalColumn : cm.cursorCoords(range.anchor, \"div\").left;\n newHead.goalColumn = range.head.goalColumn != null ?\n range.head.goalColumn : cm.cursorCoords(range.head, \"div\").left;\n var newRange = {anchor: newAnchor, head: newHead};\n newRanges.push(range);\n newRanges.push(newRange);\n }\n cm.setSelections(newRanges);\n }\n cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };\n cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };\n\n function isSelectedRange(ranges, from, to) {\n for (var i = 0; i < ranges.length; i++)\n if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 &&\n CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true\n return false\n }\n\n var mirror = \"(){}[]\";\n function selectBetweenBrackets(cm) {\n var ranges = cm.listSelections(), newRanges = []\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);\n if (!opening) return false;\n for (;;) {\n var closing = cm.scanForBracket(pos, 1);\n if (!closing) return false;\n if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {\n var startPos = Pos(opening.pos.line, opening.pos.ch + 1);\n if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&\n CodeMirror.cmpPos(closing.pos, range.to()) == 0) {\n opening = cm.scanForBracket(opening.pos, -1);\n if (!opening) return false;\n } else {\n newRanges.push({anchor: startPos, head: closing.pos});\n break;\n }\n }\n pos = Pos(closing.pos.line, closing.pos.ch + 1);\n }\n }\n cm.setSelections(newRanges);\n return true;\n }\n\n cmds.selectScope = function(cm) {\n selectBetweenBrackets(cm) || cm.execCommand(\"selectAll\");\n };\n cmds.selectBetweenBrackets = function(cm) {\n if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;\n };\n\n function puncType(type) {\n return !type ? null : /\\bpunctuation\\b/.test(type) ? type : undefined\n }\n\n cmds.goToBracket = function(cm) {\n cm.extendSelectionsBy(function(range) {\n var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head)));\n if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;\n var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1))));\n return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;\n });\n };\n\n cmds.swapLineUp = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from().line - 1, to = range.to().line;\n newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),\n head: Pos(range.head.line - 1, range.head.ch)});\n if (range.to().ch == 0 && !range.empty()) --to;\n if (from > at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = 0; i < linesToMove.length; i += 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n if (to > cm.lastLine())\n cm.replaceRange(\"\\n\" + line, Pos(cm.lastLine()), null, \"+swapLine\");\n else\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.setSelections(newSels);\n cm.scrollIntoView();\n });\n };\n\n cmds.swapLineDown = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var range = ranges[i], from = range.to().line + 1, to = range.from().line;\n if (range.to().ch == 0 && !range.empty()) from--;\n if (from < at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = linesToMove.length - 2; i >= 0; i -= 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n if (from == cm.lastLine())\n cm.replaceRange(\"\", Pos(from - 1), Pos(from), \"+swapLine\");\n else\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.scrollIntoView();\n });\n };\n\n cmds.toggleCommentIndented = function(cm) {\n cm.toggleComment({ indent: true });\n }\n\n cmds.joinLines = function(cm) {\n var ranges = cm.listSelections(), joined = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from();\n var start = from.line, end = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == end)\n end = ranges[++i].to().line;\n joined.push({start: start, end: end, anchor: !range.empty() && from});\n }\n cm.operation(function() {\n var offset = 0, ranges = [];\n for (var i = 0; i < joined.length; i++) {\n var obj = joined[i];\n var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;\n for (var line = obj.start; line <= obj.end; line++) {\n var actual = line - offset;\n if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);\n if (actual < cm.lastLine()) {\n cm.replaceRange(\" \", Pos(actual), Pos(actual + 1, /^\\s*/.exec(cm.getLine(actual + 1))[0].length));\n ++offset;\n }\n }\n ranges.push({anchor: anchor || head, head: head});\n }\n cm.setSelections(ranges, 0);\n });\n };\n\n cmds.duplicateLine = function(cm) {\n cm.operation(function() {\n var rangeCount = cm.listSelections().length;\n for (var i = 0; i < rangeCount; i++) {\n var range = cm.listSelections()[i];\n if (range.empty())\n cm.replaceRange(cm.getLine(range.head.line) + \"\\n\", Pos(range.head.line, 0));\n else\n cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());\n }\n cm.scrollIntoView();\n });\n };\n\n\n function sortLines(cm, caseSensitive, direction) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), toSort = [], selected;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) continue;\n var from = range.from().line, to = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == to)\n to = ranges[++i].to().line;\n if (!ranges[i].to().ch) to--;\n toSort.push(from, to);\n }\n if (toSort.length) selected = true;\n else toSort.push(cm.firstLine(), cm.lastLine());\n\n cm.operation(function() {\n var ranges = [];\n for (var i = 0; i < toSort.length; i += 2) {\n var from = toSort[i], to = toSort[i + 1];\n var start = Pos(from, 0), end = Pos(to);\n var lines = cm.getRange(start, end, false);\n if (caseSensitive)\n lines.sort(function(a, b) { return a < b ? -direction : a == b ? 0 : direction; });\n else\n lines.sort(function(a, b) {\n var au = a.toUpperCase(), bu = b.toUpperCase();\n if (au != bu) { a = au; b = bu; }\n return a < b ? -direction : a == b ? 0 : direction;\n });\n cm.replaceRange(lines, start, end);\n if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});\n }\n if (selected) cm.setSelections(ranges, 0);\n });\n }\n\n cmds.sortLines = function(cm) { sortLines(cm, true, 1); };\n cmds.reverseSortLines = function(cm) { sortLines(cm, true, -1); };\n cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false, 1); };\n cmds.reverseSortLinesInsensitive = function(cm) { sortLines(cm, false, -1); };\n\n cmds.nextBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n var current = marks.shift();\n var found = current.find();\n if (found) {\n marks.push(current);\n return cm.setSelection(found.from, found.to);\n }\n }\n };\n\n cmds.prevBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n marks.unshift(marks.pop());\n var found = marks[marks.length - 1].find();\n if (!found)\n marks.pop();\n else\n return cm.setSelection(found.from, found.to);\n }\n };\n\n cmds.toggleBookmark = function(cm) {\n var ranges = cm.listSelections();\n var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);\n for (var j = 0; j < found.length; j++) {\n if (found[j].sublimeBookmark) {\n found[j].clear();\n for (var k = 0; k < marks.length; k++)\n if (marks[k] == found[j])\n marks.splice(k--, 1);\n break;\n }\n }\n if (j == found.length)\n marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));\n }\n };\n\n cmds.clearBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n marks.length = 0;\n };\n\n cmds.selectBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks, ranges = [];\n if (marks) for (var i = 0; i < marks.length; i++) {\n var found = marks[i].find();\n if (!found)\n marks.splice(i--, 0);\n else\n ranges.push({anchor: found.from, head: found.to});\n }\n if (ranges.length)\n cm.setSelections(ranges, 0);\n };\n\n function modifyWordOrSelection(cm, mod) {\n cm.operation(function() {\n var ranges = cm.listSelections(), indices = [], replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) { indices.push(i); replacements.push(\"\"); }\n else replacements.push(mod(cm.getRange(range.from(), range.to())));\n }\n cm.replaceSelections(replacements, \"around\", \"case\");\n for (var i = indices.length - 1, at; i >= 0; i--) {\n var range = ranges[indices[i]];\n if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;\n var word = wordAt(cm, range.head);\n at = word.from;\n cm.replaceRange(mod(word.word), word.from, word.to);\n }\n });\n }\n\n cmds.smartBackspace = function(cm) {\n if (cm.somethingSelected()) return CodeMirror.Pass;\n\n cm.operation(function() {\n var cursors = cm.listSelections();\n var indentUnit = cm.getOption(\"indentUnit\");\n\n for (var i = cursors.length - 1; i >= 0; i--) {\n var cursor = cursors[i].head;\n var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);\n var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption(\"tabSize\"));\n\n // Delete by one character by default\n var deletePos = cm.findPosH(cursor, -1, \"char\", false);\n\n if (toStartOfLine && !/\\S/.test(toStartOfLine) && column % indentUnit == 0) {\n var prevIndent = new Pos(cursor.line,\n CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));\n\n // Smart delete only if we found a valid prevIndent location\n if (prevIndent.ch != cursor.ch) deletePos = prevIndent;\n }\n\n cm.replaceRange(\"\", deletePos, cursor, \"+delete\");\n }\n });\n };\n\n cmds.delLineRight = function(cm) {\n cm.operation(function() {\n var ranges = cm.listSelections();\n for (var i = ranges.length - 1; i >= 0; i--)\n cm.replaceRange(\"\", ranges[i].anchor, Pos(ranges[i].to().line), \"+delete\");\n cm.scrollIntoView();\n });\n };\n\n cmds.upcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });\n };\n cmds.downcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });\n };\n\n cmds.setSublimeMark = function(cm) {\n if (cm.state.sublimeMark) cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n };\n cmds.selectToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) cm.setSelection(cm.getCursor(), found);\n };\n cmds.deleteToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n var from = cm.getCursor(), to = found;\n if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }\n cm.state.sublimeKilled = cm.getRange(from, to);\n cm.replaceRange(\"\", from, to);\n }\n };\n cmds.swapWithSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n cm.setCursor(found);\n }\n };\n cmds.sublimeYank = function(cm) {\n if (cm.state.sublimeKilled != null)\n cm.replaceSelection(cm.state.sublimeKilled, null, \"paste\");\n };\n\n cmds.showInCenter = function(cm) {\n var pos = cm.cursorCoords(null, \"local\");\n cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);\n };\n\n function getTarget(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n from = word.from;\n to = word.to;\n }\n return {from: from, to: to, query: cm.getRange(from, to), word: word};\n }\n\n function findAndGoTo(cm, forward) {\n var target = getTarget(cm);\n if (!target) return;\n var query = target.query;\n var cur = cm.getSearchCursor(query, forward ? target.to : target.from);\n\n if (forward ? cur.findNext() : cur.findPrevious()) {\n cm.setSelection(cur.from(), cur.to());\n } else {\n cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)\n : cm.clipPos(Pos(cm.lastLine())));\n if (forward ? cur.findNext() : cur.findPrevious())\n cm.setSelection(cur.from(), cur.to());\n else if (target.word)\n cm.setSelection(target.from, target.to);\n }\n };\n cmds.findUnder = function(cm) { findAndGoTo(cm, true); };\n cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };\n cmds.findAllUnder = function(cm) {\n var target = getTarget(cm);\n if (!target) return;\n var cur = cm.getSearchCursor(target.query);\n var matches = [];\n var primaryIndex = -1;\n while (cur.findNext()) {\n matches.push({anchor: cur.from(), head: cur.to()});\n if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)\n primaryIndex++;\n }\n cm.setSelections(matches, primaryIndex);\n };\n\n\n var keyMap = CodeMirror.keyMap;\n keyMap.macSublime = {\n \"Cmd-Left\": \"goLineStartSmart\",\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-Left\": \"goSubwordLeft\",\n \"Ctrl-Right\": \"goSubwordRight\",\n \"Ctrl-Alt-Up\": \"scrollLineUp\",\n \"Ctrl-Alt-Down\": \"scrollLineDown\",\n \"Cmd-L\": \"selectLine\",\n \"Shift-Cmd-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Cmd-Enter\": \"insertLineAfter\",\n \"Shift-Cmd-Enter\": \"insertLineBefore\",\n \"Cmd-D\": \"selectNextOccurrence\",\n \"Shift-Cmd-Space\": \"selectScope\",\n \"Shift-Cmd-M\": \"selectBetweenBrackets\",\n \"Cmd-M\": \"goToBracket\",\n \"Cmd-Ctrl-Up\": \"swapLineUp\",\n \"Cmd-Ctrl-Down\": \"swapLineDown\",\n \"Cmd-/\": \"toggleCommentIndented\",\n \"Cmd-J\": \"joinLines\",\n \"Shift-Cmd-D\": \"duplicateLine\",\n \"F5\": \"sortLines\",\n \"Shift-F5\": \"reverseSortLines\",\n \"Cmd-F5\": \"sortLinesInsensitive\",\n \"Shift-Cmd-F5\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Cmd-F2\": \"toggleBookmark\",\n \"Shift-Cmd-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Cmd-K Cmd-D\": \"skipAndSelectNextOccurrence\",\n \"Cmd-K Cmd-K\": \"delLineRight\",\n \"Cmd-K Cmd-U\": \"upcaseAtCursor\",\n \"Cmd-K Cmd-L\": \"downcaseAtCursor\",\n \"Cmd-K Cmd-Space\": \"setSublimeMark\",\n \"Cmd-K Cmd-A\": \"selectToSublimeMark\",\n \"Cmd-K Cmd-W\": \"deleteToSublimeMark\",\n \"Cmd-K Cmd-X\": \"swapWithSublimeMark\",\n \"Cmd-K Cmd-Y\": \"sublimeYank\",\n \"Cmd-K Cmd-C\": \"showInCenter\",\n \"Cmd-K Cmd-G\": \"clearBookmarks\",\n \"Cmd-K Cmd-Backspace\": \"delLineLeft\",\n \"Cmd-K Cmd-1\": \"foldAll\",\n \"Cmd-K Cmd-0\": \"unfoldAll\",\n \"Cmd-K Cmd-J\": \"unfoldAll\",\n \"Ctrl-Shift-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Shift-Down\": \"addCursorToNextLine\",\n \"Cmd-F3\": \"findUnder\",\n \"Shift-Cmd-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Cmd-[\": \"fold\",\n \"Shift-Cmd-]\": \"unfold\",\n \"Cmd-I\": \"findIncremental\",\n \"Shift-Cmd-I\": \"findIncrementalReverse\",\n \"Cmd-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"macDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.macSublime);\n\n keyMap.pcSublime = {\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-T\": \"transposeChars\",\n \"Alt-Left\": \"goSubwordLeft\",\n \"Alt-Right\": \"goSubwordRight\",\n \"Ctrl-Up\": \"scrollLineUp\",\n \"Ctrl-Down\": \"scrollLineDown\",\n \"Ctrl-L\": \"selectLine\",\n \"Shift-Ctrl-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Ctrl-Enter\": \"insertLineAfter\",\n \"Shift-Ctrl-Enter\": \"insertLineBefore\",\n \"Ctrl-D\": \"selectNextOccurrence\",\n \"Shift-Ctrl-Space\": \"selectScope\",\n \"Shift-Ctrl-M\": \"selectBetweenBrackets\",\n \"Ctrl-M\": \"goToBracket\",\n \"Shift-Ctrl-Up\": \"swapLineUp\",\n \"Shift-Ctrl-Down\": \"swapLineDown\",\n \"Ctrl-/\": \"toggleCommentIndented\",\n \"Ctrl-J\": \"joinLines\",\n \"Shift-Ctrl-D\": \"duplicateLine\",\n \"F9\": \"sortLines\",\n \"Shift-F9\": \"reverseSortLines\",\n \"Ctrl-F9\": \"sortLinesInsensitive\",\n \"Shift-Ctrl-F9\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Ctrl-F2\": \"toggleBookmark\",\n \"Shift-Ctrl-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Ctrl-K Ctrl-D\": \"skipAndSelectNextOccurrence\",\n \"Ctrl-K Ctrl-K\": \"delLineRight\",\n \"Ctrl-K Ctrl-U\": \"upcaseAtCursor\",\n \"Ctrl-K Ctrl-L\": \"downcaseAtCursor\",\n \"Ctrl-K Ctrl-Space\": \"setSublimeMark\",\n \"Ctrl-K Ctrl-A\": \"selectToSublimeMark\",\n \"Ctrl-K Ctrl-W\": \"deleteToSublimeMark\",\n \"Ctrl-K Ctrl-X\": \"swapWithSublimeMark\",\n \"Ctrl-K Ctrl-Y\": \"sublimeYank\",\n \"Ctrl-K Ctrl-C\": \"showInCenter\",\n \"Ctrl-K Ctrl-G\": \"clearBookmarks\",\n \"Ctrl-K Ctrl-Backspace\": \"delLineLeft\",\n \"Ctrl-K Ctrl-1\": \"foldAll\",\n \"Ctrl-K Ctrl-0\": \"unfoldAll\",\n \"Ctrl-K Ctrl-J\": \"unfoldAll\",\n \"Ctrl-Alt-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Alt-Down\": \"addCursorToNextLine\",\n \"Ctrl-F3\": \"findUnder\",\n \"Shift-Ctrl-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Ctrl-[\": \"fold\",\n \"Shift-Ctrl-]\": \"unfold\",\n \"Ctrl-I\": \"findIncremental\",\n \"Shift-Ctrl-I\": \"findIncrementalReverse\",\n \"Ctrl-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"pcDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.pcSublime);\n\n var mac = keyMap.default == keyMap.macDefault;\n keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;\n});\n"],"names":["CodeMirror","ie_lt8","test","navigator","userAgent","document","documentMode","Pos","matching","bracketRegex","config","findMatchingBracket","cm","where","line","getLineHandle","pos","ch","afterCursor","getWrapperElement","className","re","match","text","charAt","dir","strict","style","getTokenTypeAt","found","scanForBracket","from","to","forward","maxScanLen","maxScanLineLength","maxScanLines","stack","lineEnd","Math","min","lastLine","max","firstLine","lineNo","getLine","length","end","undefined","push","pop","matchBrackets","autoclear","maxHighlightLen","state","maxHighlightLineLength","highlightNonMatching","marks","ranges","listSelections","i","empty","head","markText","focused","focus","clear","operation","setTimeout","doMatchBrackets","currentlyHighlighted","clearHighlighted","defineOption","val","old","Init","off","on","defineExtension","this","oldConfig","mod","require","doFold","noFold","regexpFlags","regexp","flags","ignoreCase","global","multiline","ensureFlags","current","target","indexOf","RegExp","source","maybeMultiline","searchRegexpForward","doc","start","last","lastIndex","string","exec","index","searchRegexpForwardMultiline","chunk","curLine","before","slice","split","inside","startLine","startCh","lastMatchIn","endMargin","newMatch","searchRegexpBackward","first","searchRegexpBackwardMultiline","chunkSize","adjustPos","orig","folded","foldFunc","mid","len","searchStringForward","query","caseFold","fold","lines","search","cutFrom","endString","searchStringBackward","lastIndexOf","top","topString","SearchCursor","options","atOccurrence","afterEmptyMatch","clipPos","matches","reverse","String","prototype","normalize","str","toLowerCase","findNext","find","findPrevious","cmpPos","result","replace","newText","origin","splitLines","replaceRange","defineDocExtension","cur","getSearchCursor","getCursor","anchor","setSelections","cmds","commands","findPosSubword","type","startPos","e","next","cat","isWordChar","toUpperCase","moveSubword","extendSelectionsBy","range","display","shift","extend","insertLine","above","isReadOnly","Pass","newSelection","at","indentLine","execCommand","wordAt","word","addCursorToSelection","newRanges","newAnchor","findPosV","goalColumn","newHead","cursorCoords","left","newRange","isSelectedRange","goSubwordLeft","goSubwordRight","scrollLineUp","info","getScrollInfo","somethingSelected","visibleBottomLine","lineAtHeight","clientHeight","scrollTo","defaultTextHeight","scrollLineDown","visibleTopLine","splitSelectionByLine","lineRanges","singleSelectionTop","setSelection","scroll","selectLine","extended","insertLineAfter","insertLineBefore","selectNextOccurrence","fullWord","sublimeFindFullWord","sel","getRange","addSelection","skipAndSelectNextOccurrence","prevAnchor","prevHead","filter","addCursorToPrevLine","addCursorToNextLine","mirror","selectBetweenBrackets","opening","closing","puncType","sortLines","caseSensitive","direction","selected","toSort","sort","a","b","au","bu","modifyWordOrSelection","indices","replacements","replaceSelections","getTarget","findAndGoTo","selectScope","goToBracket","prev","swapLineUp","linesToMove","newSels","scrollIntoView","swapLineDown","toggleCommentIndented","toggleComment","indent","joinLines","joined","offset","obj","actual","duplicateLine","rangeCount","reverseSortLines","sortLinesInsensitive","reverseSortLinesInsensitive","nextBookmark","sublimeBookmarks","prevBookmark","unshift","toggleBookmark","findMarksAt","findMarks","j","sublimeBookmark","k","splice","clearWhenEmpty","clearBookmarks","selectBookmarks","smartBackspace","cursors","indentUnit","getOption","cursor","toStartOfLine","column","countColumn","deletePos","findPosH","prevIndent","findColumn","delLineRight","upcaseAtCursor","downcaseAtCursor","setSublimeMark","sublimeMark","setBookmark","selectToSublimeMark","deleteToSublimeMark","tmp","sublimeKilled","swapWithSublimeMark","setCursor","sublimeYank","replaceSelection","showInCenter","bottom","findUnder","findUnderPrevious","findAllUnder","primaryIndex","keyMap","macSublime","normalizeKeyMap","pcSublime","mac","default","macDefault","sublime"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkdashboard=self.webpackChunkdashboard||[]).push([[316],{7872:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){for(var n=[],r=e;r&&r.kind;)n.push(r),r=r.prevState;for(var i=n.length-1;i>=0;i--)t(n[i])}},6334:function(e,t){function n(e,t){var n=e.filter(t);return 0===n.length?e:n}function r(e){return e.toLowerCase().replace(/\W/g,"")}function i(e,t){var n=function(e,t){var n,r,i=[],a=e.length,u=t.length;for(n=0;n<=a;n++)i[n]=[n];for(r=1;r<=u;r++)i[0][r]=r;for(n=1;n<=a;n++)for(r=1;r<=u;r++){var l=e[n-1]===t[r-1]?0:1;i[n][r]=Math.min(i[n-1][r]+1,i[n][r-1]+1,i[n-1][r-1]+l),n>1&&r>1&&e[n-1]===t[r-2]&&e[n-2]===t[r-1]&&(i[n][r]=Math.min(i[n][r],i[n-2][r-2]+l))}return i[a][u]}(t,e);return e.length>t.length&&(n-=e.length-t.length-1,n+=0===e.indexOf(t)?0:.5),n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,a){var u=function(e,t){if(!t)return n(e,(function(e){return!e.isDeprecated}));return n(n(e.map((function(e){return{proximity:i(r(e.text),t),entry:e}})),(function(e){return e.proximity<=2})),(function(e){return!e.entry.isDeprecated})).sort((function(e,t){return(e.entry.isDeprecated?1:0)-(t.entry.isDeprecated?1:0)||e.proximity-t.proximity||e.entry.text.length-t.entry.text.length})).map((function(e){return e.entry}))}(a,r(t.string));if(u){var l=null!==t.type&&/"|\w/.test(t.string[0])?t.start:t.end;return{list:u,from:{line:e.line,ch:l},to:{line:e.line,ch:t.end}}}}},2316:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(3668)),a=n(4495),u=r(n(7872)),l=r(n(6334));i.default.registerHelper("hint","graphql-variables",(function(e,t){var n=e.getCursor(),r=e.getTokenAt(n),o=function(e,t,n){var r="Invalid"===t.state.kind?t.state.prevState:t.state,i=r.kind,o=r.step;if("Document"===i&&0===o)return l.default(e,t,[{text:"{"}]);var f=n.variableToType;if(!f)return;var p=function(e,t){var n={type:null,fields:null};return u.default(t,(function(t){if("Variable"===t.kind)n.type=e[t.name];else if("ListValue"===t.kind){var r=n.type?a.getNullableType(n.type):void 0;n.type=r instanceof a.GraphQLList?r.ofType:null}else if("ObjectValue"===t.kind){var i=n.type?a.getNamedType(n.type):void 0;n.fields=i instanceof a.GraphQLInputObjectType?i.getFields():null}else if("ObjectField"===t.kind){var u=t.name&&n.fields?n.fields[t.name]:null;n.type=u&&u.type}})),n}(f,t.state);if("Document"===i||"Variable"===i&&0===o){var s=Object.keys(f);return l.default(e,t,s.map((function(e){return{text:'"'+e+'": ',type:f[e]}})))}if(("ObjectValue"===i||"ObjectField"===i&&0===o)&&p.fields){var d=Object.keys(p.fields).map((function(e){return p.fields[e]}));return l.default(e,t,d.map((function(e){return{text:'"'+e.name+'": ',type:e.type,description:e.description}})))}if("StringValue"===i||"NumberValue"===i||"BooleanValue"===i||"NullValue"===i||"ListValue"===i&&1===o||"ObjectField"===i&&2===o||"Variable"===i&&2===o){var c=p.type?a.getNamedType(p.type):void 0;if(c instanceof a.GraphQLInputObjectType)return l.default(e,t,[{text:"{"}]);if(c instanceof a.GraphQLEnumType){var y=c.getValues();return l.default(e,t,y.map((function(e){return{text:'"'+e.name+'"',type:c,description:e.description}})))}if(c===a.GraphQLBoolean)return l.default(e,t,[{text:"true",type:a.GraphQLBoolean,description:"Not false."},{text:"false",type:a.GraphQLBoolean,description:"Not true."}])}}(n,r,t);return o&&o.list&&o.list.length>0&&(o.from=i.default.Pos(o.from.line,o.from.ch),o.to=i.default.Pos(o.to.line,o.to.ch),i.default.signal(e,"hasCompletion",e,o,r)),o}))}}]);
2
+ //# sourceMappingURL=316.7c2be1f0.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/316.7c2be1f0.chunk.js","mappings":"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","sources":["../node_modules/codemirror-graphql/src/utils/forEachState.ts","../node_modules/codemirror-graphql/src/utils/hintList.ts","../node_modules/codemirror-graphql/src/variables/hint.ts"],"sourcesContent":["/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport type { State, Maybe } from 'graphql-language-service';\n\n// Utility for iterating through a CodeMirror parse state stack bottom-up.\nexport default function forEachState(stack: State, fn: (state: State) => void) {\n const reverseStateStack = [];\n let state: Maybe<State> = stack;\n while (state && state.kind) {\n reverseStateStack.push(state);\n state = state.prevState;\n }\n for (let i = reverseStateStack.length - 1; i >= 0; i--) {\n fn(reverseStateStack[i]);\n }\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport type CodeMirror from 'codemirror';\nimport { IHint, IHints } from '../hint';\n\n// Create the expected hint response given a possible list and a token\nexport default function hintList(\n cursor: CodeMirror.Position,\n token: CodeMirror.Token,\n list: IHint[],\n): IHints | undefined {\n const hints = filterAndSortList(list, normalizeText(token.string));\n if (!hints) {\n return;\n }\n\n const tokenStart =\n token.type !== null && /\"|\\w/.test(token.string[0])\n ? token.start\n : token.end;\n\n return {\n list: hints,\n from: { line: cursor.line, ch: tokenStart }, // TODO: Confirm. Was changed column to ch\n to: { line: cursor.line, ch: token.end },\n };\n}\n\n// Given a list of hint entries and currently typed text, sort and filter to\n// provide a concise list.\nfunction filterAndSortList(list: IHint[], text: string) {\n if (!text) {\n return filterNonEmpty(list, entry => !entry.isDeprecated);\n }\n\n const byProximity = list.map(entry => ({\n proximity: getProximity(normalizeText(entry.text), text),\n entry,\n }));\n\n const conciseMatches = filterNonEmpty(\n filterNonEmpty(byProximity, pair => pair.proximity <= 2),\n pair => !pair.entry.isDeprecated,\n );\n\n const sortedMatches = conciseMatches.sort(\n (a, b) =>\n (a.entry.isDeprecated ? 1 : 0) - (b.entry.isDeprecated ? 1 : 0) ||\n a.proximity - b.proximity ||\n a.entry.text.length - b.entry.text.length,\n );\n\n return sortedMatches.map(pair => pair.entry);\n}\n\n// Filters the array by the predicate, unless it results in an empty array,\n// in which case return the original array.\nfunction filterNonEmpty<T>(array: T[], predicate: (item: T) => boolean) {\n const filtered = array.filter(predicate);\n return filtered.length === 0 ? array : filtered;\n}\n\nfunction normalizeText(text: string) {\n return text.toLowerCase().replace(/\\W/g, '');\n}\n\n// Determine a numeric proximity for a suggestion based on current text.\nfunction getProximity(suggestion: string, text: string) {\n // start with lexical distance\n let proximity = lexicalDistance(text, suggestion);\n if (suggestion.length > text.length) {\n // do not penalize long suggestions.\n proximity -= suggestion.length - text.length - 1;\n // penalize suggestions not starting with this phrase\n proximity += suggestion.indexOf(text) === 0 ? 0 : 0.5;\n }\n return proximity;\n}\n\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * This distance can be useful for detecting typos in input or sorting\n *\n * @param {string} a\n * @param {string} b\n * @return {int} distance in number of edits\n */\nfunction lexicalDistance(a: string, b: string) {\n let i;\n let j;\n const d = [];\n const aLength = a.length;\n const bLength = b.length;\n\n for (i = 0; i <= aLength; i++) {\n d[i] = [i];\n }\n\n for (j = 1; j <= bLength; j++) {\n d[0][j] = j;\n }\n\n for (i = 1; i <= aLength; i++) {\n for (j = 1; j <= bLength; j++) {\n const cost = a[i - 1] === b[j - 1] ? 0 : 1;\n\n d[i][j] = Math.min(\n d[i - 1][j] + 1,\n d[i][j - 1] + 1,\n d[i - 1][j - 1] + cost,\n );\n\n if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {\n d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);\n }\n }\n }\n\n return d[aLength][bLength];\n}\n","/**\n * Copyright (c) 2021 GraphQL Contributors\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nimport CodeMirror, { Hints } from 'codemirror';\nimport {\n getNullableType,\n getNamedType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLList,\n GraphQLBoolean,\n GraphQLInputType,\n GraphQLInputFieldMap,\n} from 'graphql';\nimport type { State, Maybe } from 'graphql-language-service';\nimport { IHints } from '../hint';\n\nimport forEachState from '../utils/forEachState';\nimport hintList from '../utils/hintList';\n\nexport type VariableToType = Record<string, GraphQLInputType>;\ninterface GraphQLVariableHintOptions {\n variableToType: VariableToType;\n}\n\ndeclare module 'codemirror' {\n interface ShowHintOptions {\n variableToType?: VariableToType;\n }\n\n interface CodeMirrorHintMap {\n 'graphql-variables': (\n editor: CodeMirror.Editor,\n options: GraphQLVariableHintOptions,\n ) => IHints | undefined;\n }\n}\n\n/**\n * Registers a \"hint\" helper for CodeMirror.\n *\n * Using CodeMirror's \"hint\" addon: https://codemirror.net/demo/complete.html\n * Given an editor, this helper will take the token at the cursor and return a\n * list of suggested tokens.\n *\n * Options:\n *\n * - variableToType: { [variable: string]: GraphQLInputType }\n *\n * Additional Events:\n *\n * - hasCompletion (codemirror, data, token) - signaled when the hinter has a\n * new list of completion suggestions.\n *\n */\nCodeMirror.registerHelper(\n 'hint',\n 'graphql-variables',\n (\n editor: CodeMirror.Editor,\n options: GraphQLVariableHintOptions,\n ): Hints | undefined => {\n const cur = editor.getCursor();\n const token = editor.getTokenAt(cur);\n\n const results = getVariablesHint(cur, token, options);\n if (results && results.list && results.list.length > 0) {\n results.from = CodeMirror.Pos(results.from.line, results.from.ch);\n results.to = CodeMirror.Pos(results.to.line, results.to.ch);\n CodeMirror.signal(editor, 'hasCompletion', editor, results, token);\n }\n\n return results;\n },\n);\n\nfunction getVariablesHint(\n cur: CodeMirror.Position,\n token: CodeMirror.Token,\n options: GraphQLVariableHintOptions,\n) {\n // If currently parsing an invalid state, attempt to hint to the prior state.\n const state =\n token.state.kind === 'Invalid' ? token.state.prevState : token.state;\n\n const kind = state.kind;\n const step = state.step;\n\n // Variables can only be an object literal.\n if (kind === 'Document' && step === 0) {\n return hintList(cur, token, [{ text: '{' }]);\n }\n\n const variableToType = options.variableToType;\n if (!variableToType) {\n return;\n }\n\n const typeInfo = getTypeInfo(variableToType, token.state);\n\n // Top level should typeahead possible variables.\n if (kind === 'Document' || (kind === 'Variable' && step === 0)) {\n const variableNames = Object.keys(variableToType);\n return hintList(\n cur,\n token,\n variableNames.map(name => ({\n text: `\"${name}\": `,\n type: variableToType[name],\n })),\n );\n }\n\n // Input Object fields\n if (kind === 'ObjectValue' || (kind === 'ObjectField' && step === 0)) {\n if (typeInfo.fields) {\n const inputFields = Object.keys(typeInfo.fields).map(\n fieldName => typeInfo.fields![fieldName],\n );\n return hintList(\n cur,\n token,\n inputFields.map(field => ({\n text: `\"${field.name}\": `,\n type: field.type,\n description: field.description,\n })),\n );\n }\n }\n\n // Input values.\n if (\n kind === 'StringValue' ||\n kind === 'NumberValue' ||\n kind === 'BooleanValue' ||\n kind === 'NullValue' ||\n (kind === 'ListValue' && step === 1) ||\n (kind === 'ObjectField' && step === 2) ||\n (kind === 'Variable' && step === 2)\n ) {\n const namedInputType = typeInfo.type\n ? getNamedType(typeInfo.type)\n : undefined;\n if (namedInputType instanceof GraphQLInputObjectType) {\n return hintList(cur, token, [{ text: '{' }]);\n } else if (namedInputType instanceof GraphQLEnumType) {\n const values = namedInputType.getValues();\n // const values = Object.keys(valueMap).map(name => valueMap[name]); // TODO: Previously added\n return hintList(\n cur,\n token,\n values.map(value => ({\n text: `\"${value.name}\"`,\n type: namedInputType,\n description: value.description,\n })),\n );\n } else if (namedInputType === GraphQLBoolean) {\n return hintList(cur, token, [\n { text: 'true', type: GraphQLBoolean, description: 'Not false.' }, // TODO: type and description don't seem to be used. Added them as optional anyway.\n { text: 'false', type: GraphQLBoolean, description: 'Not true.' },\n ]);\n }\n }\n}\ninterface VariableTypeInfo {\n type?: Maybe<GraphQLInputType>;\n fields?: Maybe<GraphQLInputFieldMap>;\n}\n// Utility for collecting rich type information given any token's state\n// from the graphql-variables-mode parser.\nfunction getTypeInfo(\n variableToType: Record<string, GraphQLInputType>,\n tokenState: State,\n) {\n const info: VariableTypeInfo = {\n type: null,\n fields: null,\n };\n\n forEachState(tokenState, state => {\n if (state.kind === 'Variable') {\n info.type = variableToType[state.name!];\n } else if (state.kind === 'ListValue') {\n const nullableType = info.type ? getNullableType(info.type) : undefined;\n info.type =\n nullableType instanceof GraphQLList ? nullableType.ofType : null;\n } else if (state.kind === 'ObjectValue') {\n const objectType = info.type ? getNamedType(info.type) : undefined;\n info.fields =\n objectType instanceof GraphQLInputObjectType\n ? objectType.getFields()\n : null;\n } else if (state.kind === 'ObjectField') {\n const objectField =\n state.name && info.fields ? info.fields[state.name] : null;\n info.type = objectField && objectField.type;\n }\n });\n\n return info;\n}\n"],"names":["exports","stack","fn","reverseStateStack","state","kind","push","prevState","i","length","filterNonEmpty","array","predicate","filtered","filter","normalizeText","text","toLowerCase","replace","getProximity","suggestion","proximity","a","b","j","d","aLength","bLength","cost","Math","min","lexicalDistance","indexOf","cursor","token","list","hints","entry","isDeprecated","map","pair","sort","filterAndSortList","string","tokenStart","type","test","start","end","from","line","ch","to","codemirror_1","registerHelper","editor","options","cur","getCursor","getTokenAt","results","step","hintList_1","variableToType","typeInfo","tokenState","info","fields","forEachState_1","name","nullableType","graphql_1","undefined","ofType","objectType","getFields","objectField","getTypeInfo","variableNames","Object","keys","inputFields","fieldName","field","description","namedInputType_1","values","getValues","value","getVariablesHint","Pos","signal"],"sourceRoot":""}