From d93f51f98697f0f1b733678a7778e4c19cd3f4eb Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Wed, 27 Mar 2019 16:06:07 +0000 Subject: [PATCH 01/16] erp5_notebook: Load pyodide in jsmd eval file to handle python setction. Support standard pyodide notebook grammar Simply ignore the section "meta" and "plugin", support "%%code {"language" : "py"}" instead "%% py" We don't use pyodide.js anymore erp5_notebook: Add iodide.output Display the JS code reuslt if there have --- .../erp5_notebook/gadget_jsmd_eval.js.js | 269 +++++++++++++++++- 1 file changed, 262 insertions(+), 7 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 3e8228b9d17..8fe814bbca8 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -1,18 +1,59 @@ -/*global window, console, RSVP, document, URL, eval, XMLHttpRequest, marked */ +/*global window, console, RSVP, document, URL, eval, XMLHttpRequest, marked, pyodide, WebAssembly, fetch*/ /*jslint nomen: true, indent: 2, maxerr: 3 */ (function (window) { "use strict"; + function sideEffectDiv(sideEffectClass, reportSideEffect) { + // appends a side effect div to the side effect area + var div = document.createElement("div"); + div.setAttribute("class", sideEffectClass); + if (reportSideEffect === undefined) { + div.setAttribute("style", "display:"); + } + document.body.appendChild(div); + return div; + } + var IODide = function createIODide() { - return; + var iodide = { + output: { + text: function (s, reportSideEffect) { + var i, div, line_list; + console.log("Inside output.text"); + console.log(s); + line_list = s.toString().split("\n"); + for (i = 0; i < line_list.length; i += 1) { + div = sideEffectDiv("side-effect-print", reportSideEffect); + div.innerText = line_list[i]; + } + }, + element: function (nodeType, reportSideEffect) { + var div, node; + div = sideEffectDiv("side-effect-element", reportSideEffect); + node = document.createElement(nodeType); + div.append(node); + return node; + } + } + }; + return iodide; }, JSMDCell = function createJSMDCell(type, line_list) { this._type = type; this._line_list = line_list; }, split_line_regex = /[\r\n|\n|\r]/, - cell_type_regexp = /^\%\% (\w+)$/; + cell_type_regexp = /^\%\% (\w+)\b/, + language_type_regexp = /\{[\S\s]+\}/, + is_pyodide_loaded = false, + Module = {}, + packages, + loadedPackages = [], + // Regexp for validating package name and URI + package_name_regexp = '[a-z0-9_][a-z0-9_\-]*', + package_uri_regexp = new RegExp('^https?://.*?(' + package_name_regexp + ').js$', 'i'); + package_name_regexp = new RegExp('^' + package_name_regexp + '$', 'i'); window.iodide = new IODide(); IODide.prototype.addOutputHandler = function () { @@ -62,6 +103,108 @@ }); } + // Pyodide package loading + function _uri_to_package_name(package_uri) { + // Generate a unique package name from URI + if (package_name_regexp.test(package_uri)) { + return package_uri; + } + + if (package_uri_regexp.test(package_uri)) { + var match = package_uri_regexp.exec(package_uri); + // Get the regexp group corresponding to the package name + return match[1]; + } + + return null; + } + + function pyodideLoadPackage(names) { + // DFS to find all dependencies of the requested packages + var queue, toLoad, package_uri, package_name, k, + subpackage, promise, packageList, script; + packages = window.pyodide.packages.dependencies; + queue = new Array(names); + toLoad = []; + while (queue.length) { + package_uri = queue.pop(); + package_name = _uri_to_package_name(package_uri); + + if (package_name === null) { + throw new Error("Invalid package name or URI " + package_uri); + } + + if (package_name === package_uri) { + package_uri = 'default channel'; + } + + console.log("Loading " + package_name + " from " + package_uri); + console.log("Loaded packages"); + console.log(loadedPackages); + if (package_name in loadedPackages) { + if (package_uri !== loadedPackages[package_name]) { + throw new Error( + "URI mismatch, attempting to load package " + + package_name + " from " + package_uri + " while it is already " + + "loaded from " + loadedPackages[package_name] + " ! " + ); + } + } else { + toLoad[package_name] = package_uri; + if (packages.hasOwnProperty(package_name)) { + for (k in packages[package_name]) { + subpackage = packages[package_name][k]; + if (!(subpackage in loadedPackages) && !(subpackage in toLoad)) { + queue.push(subpackage); + } + } + } else { + console.log("Unknown package " + package_name); + } + } + } + + promise = new RSVP.Promise(function (resolve, reject) { + if (Object.keys(toLoad).length === 0) { + resolve('No new packages to load'); + } + + pyodide.monitorRunDependencies = function (n) { + if (n === 0) { + for (package_name in toLoad) { + loadedPackages[package_name] = toLoad[package_name]; + } + delete pyodide.monitorRunDependencies; + packageList = Array.from(Object.keys(toLoad)).join(', '); + resolve("Loaded " + packageList); + } + }; + + function script_reject(e) { + reject(e); + } + + for (package_name in toLoad) { + script = document.createElement('script'); + package_uri = toLoad[package_name]; + if (package_uri === 'default channel') { + script.src = package_name + ".js"; + } else { + script.src = package_uri; + } + script.onerror = script_reject; + document.body.appendChild(script); + } + + // We have to invalidate Python's import caches, or it won't + // see the new files. This is done here so it happens in parallel + // with the fetching over the network. + window.pyodide.runPython('import importlib as _importlib\n' + + '_importlib.invalidate_caches()\n'); + }); + return promise; + } + function parseJSMDCellList(jsmd) { // Split the text into a list of Iodide cells var line_list = jsmd.split(split_line_regex), @@ -69,6 +212,7 @@ len = line_list.length, current_line, current_type, + language_type, current_text_list, next_type, cell_list = []; @@ -85,6 +229,11 @@ next_type = current_line.match(cell_type_regexp); if (next_type) { // New type detexted + if (next_type[1] === 'code') { + // language detected + language_type = JSON.parse(current_line.match(language_type_regexp)).language; + next_type[1] = next_type[1] + '_' + language_type; + } pushNewCell(); current_type = next_type; current_text_list = []; @@ -106,9 +255,13 @@ var text = line_list.join('\n'), pre, br, - code; + code, + result; + try { - return eval.call(window, text); + result = eval.call(window, text); + renderCodeblock(result); + return result; } catch (e) { console.error(e); pre = document.createElement('pre'); @@ -253,12 +406,91 @@ }); } + function loadPyodide(info, receiveInstance) { + var queue = new RSVP.Queue(); + queue.push(function () { + return WebAssembly.compileStreaming(fetch("pyodide.asm.wasm")); + }) + .push(function (module) { + return WebAssembly.instantiate(module, info); + }) + .push(function (instance) { + return receiveInstance(instance); + }); + return queue; + } + + function renderCodeblock(result_text) { + var div = document.createElement('div'), + pre = document.createElement('pre'), + result = document.createElement('code'); + div.style.border = '1px solid #C3CCD0'; + div.style.margin = '40px 10px'; + div.style.paddingLeft = '10px'; + + if (result_text !== undefined) { + result.innerHTML = result_text; + pre.appendChild(result); + div.appendChild(pre); + document.body.appendChild(div); + } + } + + function executePyCell(line_list) { + var result, code_text = line_list.join('\n'); + result = pyodide.runPython(code_text); + renderCodeblock(result); + } + + function pyodideSetting() { + window.pyodide = pyodide(Module); + window.pyodide.loadPackage = pyodideLoadPackage; + + var defer = RSVP.defer(), promise = defer.promise; + + Module.postRun = defer.resolve; + promise.then(function () { + console.log("postRun get called"); + delete window.Module; + }); + + return defer.promise; + } + + function initPyodide() { + var queue = new RSVP.Queue(); + queue.push(function () { + Module.instantiateWasm = loadPyodide; + window.Module = Module; + }) + .push(function () { + return loadJSResource('pyodide.asm.data.js'); + }) + .push(function () { + return loadJSResource('pyodide.asm.js'); + }) + .push(function () { + return pyodideSetting(); + }) + .push(function () { + return fetch('packages.json'); + }) + .push(function (response) { + return response.json(); + }) + .push(function (json) { + window.pyodide.packages = json; + return; + }); + return queue; + } + function executeCell(cell) { - if (cell._type === 'raw') { + if (['raw', 'meta', 'plugin'].indexOf(cell._type) !== -1) { // Do nothing... return; } - if (cell._type === 'js') { + if (cell._type === 'js' || cell._type === 'code_js') { return executeJSCell(cell._line_list); } if (cell._type === 'resource') { @@ -273,6 +505,29 @@ if (cell._type === 'css') { return executeCssCell(cell._line_list); } + if (cell._type === 'code_py') { + if (cell._line_list.length === 0) { + // empty block, do nothing. + return; + } + + var queue = new RSVP.Queue(); + + if (!is_pyodide_loaded) { + console.log("Loading pyodide"); + queue.push(function () { + return initPyodide(); + }) + .push(function () { + return pyodideLoadPackage('matplotlib'); + }); + is_pyodide_loaded = true; + } + queue.push(function () { + return executePyCell(cell._line_list); + }); + return queue; + } return executeUnknownCellType(cell); } -- 2.30.9 From aca069f8206c2eaadcb0cfcac4a19181dd5d0fd0 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Tue, 9 Apr 2019 16:32:02 +0000 Subject: [PATCH 02/16] erp5_notebook_test: Create ui test for testing erp5_notebook --- .../ModuleTemplateItem/notebook_module.xml | 96 + .../notebook_module/notebook_test_purejs.xml | 4259 +++++++++++++++++ .../notebook_test_python_basic.xml | 707 +++ .../renderjs_ui_notebook_zuite.xml | 26 + .../testNotebookJSMDViewerJS.xml | 58 + .../testNotebookJSMDViewerJS.zpt | 57 + .../testNotebookJSMDViewerPyBasic.xml | 58 + .../testNotebookJSMDViewerPyBasic.zpt | 57 + .../test.erp5.testNotebookRJS.py | 48 + .../test.erp5.testNotebookRJS.xml | 123 + bt5/erp5_notebook_test/bt/dependency_list | 7 + bt5/erp5_notebook_test/bt/description | 1 + .../bt/template_format_version | 1 + .../bt/template_keep_workflow_path_list | 2 + .../bt/template_module_id_list | 1 + bt5/erp5_notebook_test/bt/template_path_list | 4 + .../bt/template_test_id_list | 1 + .../bt/test_dependency_list | 1 + bt5/erp5_notebook_test/bt/title | 1 + tests/__init__.py | 4 +- 20 files changed, 5509 insertions(+), 3 deletions(-) create mode 100644 bt5/erp5_notebook_test/ModuleTemplateItem/notebook_module.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_purejs.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_python_basic.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.zpt create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.xml create mode 100644 bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.zpt create mode 100644 bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.py create mode 100644 bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.xml create mode 100644 bt5/erp5_notebook_test/bt/dependency_list create mode 100644 bt5/erp5_notebook_test/bt/description create mode 100644 bt5/erp5_notebook_test/bt/template_format_version create mode 100644 bt5/erp5_notebook_test/bt/template_keep_workflow_path_list create mode 100644 bt5/erp5_notebook_test/bt/template_module_id_list create mode 100644 bt5/erp5_notebook_test/bt/template_path_list create mode 100644 bt5/erp5_notebook_test/bt/template_test_id_list create mode 100644 bt5/erp5_notebook_test/bt/test_dependency_list create mode 100644 bt5/erp5_notebook_test/bt/title diff --git a/bt5/erp5_notebook_test/ModuleTemplateItem/notebook_module.xml b/bt5/erp5_notebook_test/ModuleTemplateItem/notebook_module.xml new file mode 100644 index 00000000000..25fda14b587 --- /dev/null +++ b/bt5/erp5_notebook_test/ModuleTemplateItem/notebook_module.xml @@ -0,0 +1,96 @@ + + notebook_module + + + Access Transient Objects + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Access contents information + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Access session data + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Add portal content + Assignor + Author + Manager + + + Add portal folders + Assignor + Author + Manager + + + Change local roles + Assignor + Manager + + + Copy or Move + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Delete objects + Assignor + Manager + + + List folder contents + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Modify portal content + Assignor + Manager + + + View + Assignee + Assignor + Associate + Auditor + Manager + + + View History + Assignee + Assignor + Associate + Auditor + Author + Manager + + + Notebook Module + Notebooks + \ No newline at end of file diff --git a/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_purejs.xml b/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_purejs.xml new file mode 100644 index 00000000000..24f78a87552 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_purejs.xml @@ -0,0 +1,4259 @@ + + + + + + + + + + _Access_contents_information_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _Add_portal_content_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _Change_local_roles_Permission + + + Assignor + Manager + + + + + _Modify_portal_content_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _View_Permission + + + Assignee + Assignor + Manager + Owner + + + + + content_md5 + + + + + + description + + + + + + id + notebook_test_purejs + + + language + + + + + + portal_type + Notebook + + + short_title + + + + + + text_content + %% meta\n +{\n + "title": "Lecture-3-Matplotlib",\n + "lastSaved": "2018-10-16T13:50:00.550Z",\n + "languages": {\n + "js": {\n + "pluginType": "language",\n + "languageId": "js",\n + "displayName": "Javascript",\n + "codeMirrorMode": "javascript",\n + "module": "window",\n + "evaluator": "eval",\n + "keybinding": "j",\n + "url": ""\n + },\n + "py": {\n + "languageId": "py",\n + "displayName": "python",\n + "codeMirrorMode": "python",\n + "keybinding": "p",\n + "url": "https://iodide.io/pyodide-demo/pyodide.js",\n + "module": "pyodide",\n + "evaluator": "runPython",\n + "pluginType": "language"\n + }\n + },\n + "lastExport": "2018-10-16T13:50:03.563Z"\n +}\n +\n +%% plugin\n +{\n + "languageId": "py",\n + "displayName": "python",\n + "codeMirrorMode": "python",\n + "keybinding": "p",\n + "url": "https://iodide.io/pyodide-demo/pyodide.js",\n + "module": "pyodide",\n + "evaluator": "runPython",\n + "pluginType": "language"\n +}\n +\n +%% md\n +# Notebook JSMD Viewer Test\n +\n +%% md\n +This is a sample content for check the JS section can be executed in JSMD viewer.\n +\n +%% code {"language":"js"}\n +2 + 40 + + + title + Notebook test pure js + + + workflow_history + + AAAAAAAAAAI= + + + + + + + + + + + + + data + + + + document_publication_workflow + + AAAAAAAAAAM= + + + + edit_workflow + + AAAAAAAAAAQ= + + + + processing_status_workflow + + AAAAAAAAAAU= + + + + + + + + + + + + + + + + + + + action + + + + + + actor + zope + + + comment + + + + error_message + + + + time + + + + + + + + + + + 1553080507.54 + UTC + + + + + + + validation_state + draft + + + + + + + + + + + + + AAAAAAAAAAY= + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60196.14387.38229 + + + state + current + + + time + + + + + + + + + + + 1554822032.22 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60196.35205.3072 + + + state + current + + + time + + + + + + + + + 1554824357.4 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60235.19016.55125 + + + state + current + + + time + + + + + + + + + 1554826187.44 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60265.51822.50397 + + + state + current + + + time + + + + + + + + + 1554826250.94 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60266.55641.60484 + + + state + current + + + time + + + + + + + + + 1554889170.96 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.61315.33837.443 + + + state + current + + + time + + + + + + + + + 1554890435.53 + UTC + + + + + + + + + + + + + + + + + + + + + action + + + + + + actor + zope + + + comment + + + + error_message + + + + external_processing_state + empty + + + serial + 0.0.0.0 + + + time + + + + + + + + + + + 1553080507.54 + UTC + + + + + + + + + + + + + + + + + AAAAAAAAAAc= + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52956.4237.9130 + + + state + current + + + time + + + + + + + + + + + 1554387762.17 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52958.46070.16913 + + + state + current + + + time + + + + + + + + + 1554388391.17 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52969.12207.42649 + + + state + current + + + time + + + + + + + + + 1554388559.48 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52971.64975.5358 + + + state + current + + + time + + + + + + + + + 1554388781.87 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52975.45746.18261 + + + state + current + + + time + + + + + + + + + 1554389037.3 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52979.62593.45516 + + + state + current + + + time + + + + + + + + + 1554389249.62 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52983.32366.23552 + + + state + current + + + time + + + + + + + + + 1554390497.1 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.53004.18684.580 + + + state + current + + + time + + + + + + + + + 1554391112.35 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.53014.35345.938 + + + state + current + + + time + + + + + + + + + 1554393353.95 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.53051.58933.38161 + + + state + current + + + time + + + + + + + + + 1554466990.66 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.54279.11663.6621 + + + state + current + + + time + + + + + + + + + 1554467179.88 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.54282.21727.17561 + + + state + current + + + time + + + + + + + + + 1554468740.69 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.54308.22605.14353 + + + state + current + + + time + + + + + + + + + 1554813987.53 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60062.30080.54647 + + + state + current + + + time + + + + + + + + + 1554814697.78 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60074.19432.44219 + + + state + current + + + time + + + + + + + + + 1554814986.26 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.60079.6845.57497 + + + state + current + + + time + + + + + + + + + 1554822013.16 + UTC + + + + + + + + + + + + + + + + + AAAAAAAAAAg= + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51517.25137.34372 + + + state + current + + + time + + + + + + + + + + + 1554303060.66 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51547.734.55756 + + + state + current + + + time + + + + + + + + + 1554303110.45 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51547.55108.45465 + + + state + current + + + time + + + + + + + + + 1554303223.38 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51549.47393.12134 + + + state + current + + + time + + + + + + + + + 1554305708.5 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51591.9296.60910 + + + state + current + + + time + + + + + + + + + 1554367890.94 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52627.33813.60262 + + + state + current + + + time + + + + + + + + + 1554368098.37 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52630.63766.31675 + + + state + current + + + time + + + + + + + + + 1554368213.08 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52632.57987.13960 + + + state + current + + + time + + + + + + + + + 1554369119.21 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52647.64685.5137 + + + state + current + + + time + + + + + + + + + 1554369611.8 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52656.12893.22971 + + + state + current + + + time + + + + + + + + + 1554382924.31 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52878.4726.35635 + + + state + current + + + time + + + + + + + + + 1554384925.54 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52911.27901.64819 + + + state + current + + + time + + + + + + + + + 1554387126.14 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52948.6712.2901 + + + state + current + + + time + + + + + + + + + 1554387150.54 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52948.33364.58385 + + + state + current + + + time + + + + + + + + + 1554387338.4 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52951.41956.59750 + + + state + current + + + time + + + + + + + + + 1554387469.27 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.52953.53827.5205 + + + state + current + + + time + + + + + + + + + 1554387603.87 + UTC + + + + + + + + + + + + + + + + + AAAAAAAAAAk= + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41487.26138.25070 + + + state + current + + + time + + + + + + + + + + + 1553703300.43 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41551.475.256 + + + state + current + + + time + + + + + + + + + 1553783326.31 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.42884.50596.30890 + + + state + current + + + time + + + + + + + + + 1554196262.44 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49767.2688.38041 + + + state + current + + + time + + + + + + + + + 1554196382.25 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49769.2463.30941 + + + state + current + + + time + + + + + + + + + 1554197839.84 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49793.21680.62003 + + + state + current + + + time + + + + + + + + + 1554198037.96 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49796.41475.65177 + + + state + current + + + time + + + + + + + + + 1554198045.67 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49796.49892.18244 + + + state + current + + + time + + + + + + + + + 1554198119.94 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49797.65478.33262 + + + state + current + + + time + + + + + + + + + 1554198235.28 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.49799.60394.53299 + + + state + current + + + time + + + + + + + + + 1554299426.39 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51486.28840.41472 + + + state + current + + + time + + + + + + + + + 1554299473.06 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51487.14272.57463 + + + state + current + + + time + + + + + + + + + 1554299809.37 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51492.53928.64529 + + + state + current + + + time + + + + + + + + + 1554300000.16 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51496.181.31470 + + + state + current + + + time + + + + + + + + + 1554300193.04 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51499.14256.44185 + + + state + current + + + time + + + + + + + + + 1554300276.8 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.51500.40207.9233 + + + state + current + + + time + + + + + + + + + 1554301283.01 + UTC + + + + + + + + + + + + + + + + + AAAAAAAAAAo= + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34395.33880.1553 + + + state + current + + + time + + + + + + + + + + + 1553273991.55 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34395.56311.22818 + + + state + current + + + time + + + + + + + + + 1553274262.45 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34400.24532.40021 + + + state + current + + + time + + + + + + + + + 1553534203.82 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.38732.47879.58999 + + + state + current + + + time + + + + + + + + + 1553608905.52 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.39977.49740.55825 + + + state + current + + + time + + + + + + + + + 1553611437.78 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40019.63118.34662 + + + state + current + + + time + + + + + + + + + 1553611990.16 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40029.11103.51746 + + + state + current + + + time + + + + + + + + + 1553612109.23 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40031.10090.51404 + + + state + current + + + time + + + + + + + + + 1553612183.18 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40032.25333.18739 + + + state + current + + + time + + + + + + + + + 1553620627.86 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40173.8602.30771 + + + state + current + + + time + + + + + + + + + 1553621219.72 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.40182.65235.53674 + + + state + current + + + time + + + + + + + + + 1553677726.38 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41124.50677.26692 + + + state + current + + + time + + + + + + + + + 1553678215.85 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41132.61014.47581 + + + state + current + + + time + + + + + + + + + 1553695443.02 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41420.3317.27255 + + + state + current + + + time + + + + + + + + + 1553695448.59 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41420.9391.64256 + + + state + current + + + time + + + + + + + + + 1553699234.6 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.41483.15961.12817 + + + state + current + + + time + + + + + + + + + 1553699483.92 + UTC + + + + + + + + + + + + + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + error_message + + + + serial + 0.0.0.0 + + + state + current + + + time + + + + + + + + + + + 1553080507.53 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.31171.8249.43946 + + + state + current + + + time + + + + + + + + + 1553081203.89 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.31182.47955.6673 + + + state + current + + + time + + + + + + + + + 1553096428.56 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.31436.31199.49783 + + + state + current + + + time + + + + + + + + + 1553096538.85 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.31438.20595.38963 + + + state + current + + + time + + + + + + + + + 1553270409.83 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34336.10750.64000 + + + state + current + + + time + + + + + + + + + 1553270453.21 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34336.58123.38451 + + + state + current + + + time + + + + + + + + + 1553270551.83 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34338.34771.55534 + + + state + current + + + time + + + + + + + + + 1553270606.2 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34339.28631.2184 + + + state + current + + + time + + + + + + + + + 1553271689.77 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34357.32524.64614 + + + state + current + + + time + + + + + + + + + 1553271813.27 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34359.36343.49510 + + + state + current + + + time + + + + + + + + + 1553271972.57 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34362.13743.11212 + + + state + current + + + time + + + + + + + + + 1553272280.78 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34367.22703.60330 + + + state + current + + + time + + + + + + + + + 1553272455.28 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34370.16700.29883 + + + state + current + + + time + + + + + + + + + 1553272532.75 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34371.35785.48742 + + + state + current + + + time + + + + + + + + + 1553273645.47 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 974.34390.5982.58794 + + + state + current + + + time + + + + + + + + + 1553273971.01 + UTC + + + + + + + + + + + diff --git a/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_python_basic.xml b/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_python_basic.xml new file mode 100644 index 00000000000..51f39fed6b7 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/notebook_module/notebook_test_python_basic.xml @@ -0,0 +1,707 @@ + + + + + + + + + + _Access_contents_information_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _Add_portal_content_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _Change_local_roles_Permission + + + Assignor + Manager + + + + + _Modify_portal_content_Permission + + + Assignee + Assignor + Manager + Owner + + + + + _View_Permission + + + Assignee + Assignor + Manager + Owner + + + + + content_md5 + + + + + + description + + + + + + id + notebook_test_python_basic + + + language + + + + + + portal_type + Notebook + + + short_title + + + + + + text_content + %% meta\n +{\n + "title": "Lecture-3-Matplotlib",\n + "lastSaved": "2018-10-16T13:50:00.550Z",\n + "languages": {\n + "js": {\n + "pluginType": "language",\n + "languageId": "js",\n + "displayName": "Javascript",\n + "codeMirrorMode": "javascript",\n + "module": "window",\n + "evaluator": "eval",\n + "keybinding": "j",\n + "url": ""\n + },\n + "py": {\n + "languageId": "py",\n + "displayName": "python",\n + "codeMirrorMode": "python",\n + "keybinding": "p",\n + "url": "https://iodide.io/pyodide-demo/pyodide.js",\n + "module": "pyodide",\n + "evaluator": "runPython",\n + "pluginType": "language"\n + }\n + },\n + "lastExport": "2018-10-16T13:50:03.563Z"\n +}\n +\n +%% plugin\n +{\n + "languageId": "py",\n + "displayName": "python",\n + "codeMirrorMode": "python",\n + "keybinding": "p",\n + "url": "https://iodide.io/pyodide-demo/pyodide.js",\n + "module": "pyodide",\n + "evaluator": "runPython",\n + "pluginType": "language"\n +}\n +\n +%% md\n +# Notebook JSMD Viewer Basic Python Test\n +\n +%% md\n +This is a sample content for check the Python section can be executed in JSMD viewer.\n +\n +%% code {"language":"py"}\n +2 + 40 + + + title + Notebook test python basic + + + workflow_history + + AAAAAAAAAAI= + + + + + + + + + + + + + data + + + + document_publication_workflow + + AAAAAAAAAAM= + + + + edit_workflow + + AAAAAAAAAAQ= + + + + processing_status_workflow + + AAAAAAAAAAU= + + + + + + + + + + + + + + + + + + + action + + + + + + actor + zope + + + comment + + + + error_message + + + + time + + + + + + + + + + + 1555491600.85 + UTC + + + + + + + validation_state + draft + + + + + + + + + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + error_message + + + + serial + 0.0.0.0 + + + state + current + + + time + + + + + + + + + + + 1555491600.83 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + AAAAAAAAAAY= + + + + error_message + + + + serial + 0.0.0.0 + + + state + current + + + time + + + + + + + + + 1555491600.86 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 975.5820.943.6348 + + + state + current + + + time + + + + + + + + + 1555491625.73 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 975.5820.28117.55671 + + + state + current + + + time + + + + + + + + + 1555491680.35 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 975.5821.22240.44305 + + + state + current + + + time + + + + + + + + + 1555505646.03 + UTC + + + + + + + + + action + edit + + + actor + zope + + + comment + + + + + + error_message + + + + serial + 975.6054.6589.45414 + + + state + current + + + time + + + + + + + + + 1555505830.04 + UTC + + + + + + + + + + + + + + + + + + + + + action + + + + + + actor + zope + + + comment + + + + error_message + + + + external_processing_state + empty + + + serial + 0.0.0.0 + + + time + + + + + + + + + + + 1555491600.84 + UTC + + + + + + + + + action + detect_uploaded_file + + + actor + zope + + + comment + + + + error_message + + + + external_processing_state + uploaded + + + serial + 0.0.0.0 + + + time + + + + + + + + + 1555491600.84 + UTC + + + + + + + + + action + detect_converted_file + + + actor + zope + + + comment + + + + error_message + + + + external_processing_state + converted + + + serial + 0.0.0.0 + + + time + + + + + + + + + 1555491600.85 + UTC + + + + + + + + + + + + + + + + + + default + Object copied from ${source_item} + + + domain + erp5_ui + + + mapping + + + + source_item + /erp5/notebook_module/notebook_test_purejs + + + + + + message + Object copied from ${source_item} + + + + + diff --git a/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite.xml b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite.xml new file mode 100644 index 00000000000..ca0045e0cf6 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite.xml @@ -0,0 +1,26 @@ + + + + + + + + + + _objects + + + + + + id + renderjs_ui_notebook_zuite + + + title + + + + + + diff --git a/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.xml b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.xml new file mode 100644 index 00000000000..e01386ddb28 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.xml @@ -0,0 +1,58 @@ + + + + + + + + + + _bind_names + + + + + + + + + + _asgns + + + + name_subpath + traverse_subpath + + + + + + + + + + + content_type + text/html + + + expand + 0 + + + id + testNotebookJSMDViewerJS + + + output_encoding + utf-8 + + + title + + + + + + diff --git a/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.zpt b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.zpt new file mode 100644 index 00000000000..cd8700cbc51 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerJS.zpt @@ -0,0 +1,57 @@ + + + +Test Notebook JSMD RenderJS UI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Test Notebook JSMD RenderJS UI
open${base_url}/web_site_module/renderjs_runner/#/notebook_module/notebook_test_purejs
waitForElementPresent//iframe
waitForElementPresent//iframe[contains(@src, 'gadget_jsmd_viewer.html')]
selectFrameindex=0
waitForElementPresent//body//iframe
selectFrameindex=0
waitForElementPresent//h1[contains(text(),'Notebook JSMD Viewer Test')]
waitForElementPresent//code[contains(text(),'42')]
+ + \ No newline at end of file diff --git a/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.xml b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.xml new file mode 100644 index 00000000000..dbaf41ee727 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.xml @@ -0,0 +1,58 @@ + + + + + + + + + + _bind_names + + + + + + + + + + _asgns + + + + name_subpath + traverse_subpath + + + + + + + + + + + content_type + text/html + + + expand + 0 + + + id + testNotebookJSMDViewerPyBasic + + + output_encoding + utf-8 + + + title + + + + + + diff --git a/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.zpt b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.zpt new file mode 100644 index 00000000000..58475d6d272 --- /dev/null +++ b/bt5/erp5_notebook_test/PathTemplateItem/portal_tests/renderjs_ui_notebook_zuite/testNotebookJSMDViewerPyBasic.zpt @@ -0,0 +1,57 @@ + + + +Test Notebook JSMD RenderJS UI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Test Notebook JSMD RenderJS UI
open${base_url}/web_site_module/renderjs_runner/#/notebook_module/notebook_test_python_basic
waitForElementPresent//iframe
waitForElementPresent//iframe[contains(@src, 'gadget_jsmd_viewer.html')]
selectFrameindex=0
waitForElementPresent//body//iframe
selectFrameindex=0
waitForElementPresent//h1[contains(text(),'Notebook JSMD Viewer Basic Python Test')]
waitForElementPresent//code[contains(text(),'42')]
+ + \ No newline at end of file diff --git a/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.py b/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.py new file mode 100644 index 00000000000..291963fb134 --- /dev/null +++ b/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.py @@ -0,0 +1,48 @@ +############################################################################## +# +# Copyright (c) 2019 Nexedi SARL and Contributors. All Rights Reserved. +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## +import unittest + +from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase + +class TestNotebookRJSUI(ERP5TypeFunctionalTestCase): + foreground = 0 + run_only = "renderjs_ui_notebook_zuite" + + def getBusinessTemplateList(self): + return ( + 'erp5_web_renderjs_ui', + 'erp5_notebook', + 'erp5_notebook_test', + 'erp5_ui_test_core', + 'erp5_accounting', + 'erp5_test_result', + ) + +def test_suite(): + suite = unittest.TestSuite() + suite.addTest(unittest.makeSuite(TestNotebookRJSUI)) + return suite \ No newline at end of file diff --git a/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.xml b/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.xml new file mode 100644 index 00000000000..f9a255e27fc --- /dev/null +++ b/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.erp5.testNotebookRJS.xml @@ -0,0 +1,123 @@ + + + + + + + + + + _recorded_property_dict + + AAAAAAAAAAI= + + + + default_reference + testNotebookRJS + + + description + + + + + + id + test.erp5.testNotebookRJS + + + portal_type + Test Component + + + sid + + + + + + text_content_error_message + + + + + + text_content_warning_message + + + + + + version + erp5 + + + workflow_history + + AAAAAAAAAAM= + + + + + + + + + + + + + data + + + + + + + + + + + + + + + data + + + + component_validation_workflow + + AAAAAAAAAAQ= + + + + + + + + + + + + + + + + + + + action + validate + + + validation_state + validated + + + + + + + diff --git a/bt5/erp5_notebook_test/bt/dependency_list b/bt5/erp5_notebook_test/bt/dependency_list new file mode 100644 index 00000000000..1c3aa5509a5 --- /dev/null +++ b/bt5/erp5_notebook_test/bt/dependency_list @@ -0,0 +1,7 @@ +erp5_notebook +erp5_ui_test_core +erp5_ui_test +erp5_web_renderjs_ui +erp5_gadget_interface_validator +erp5_accounting +erp5_test_result \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/description b/bt5/erp5_notebook_test/bt/description new file mode 100644 index 00000000000..85fbc2c7d5e --- /dev/null +++ b/bt5/erp5_notebook_test/bt/description @@ -0,0 +1 @@ +Notebook renderjs test suite \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/template_format_version b/bt5/erp5_notebook_test/bt/template_format_version new file mode 100644 index 00000000000..56a6051ca2b --- /dev/null +++ b/bt5/erp5_notebook_test/bt/template_format_version @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/template_keep_workflow_path_list b/bt5/erp5_notebook_test/bt/template_keep_workflow_path_list new file mode 100644 index 00000000000..ec7c14c07a4 --- /dev/null +++ b/bt5/erp5_notebook_test/bt/template_keep_workflow_path_list @@ -0,0 +1,2 @@ +notebook_module/notebook_test_purejs +notebook_module/notebook_test_python_basic \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/template_module_id_list b/bt5/erp5_notebook_test/bt/template_module_id_list new file mode 100644 index 00000000000..3cc2430b48d --- /dev/null +++ b/bt5/erp5_notebook_test/bt/template_module_id_list @@ -0,0 +1 @@ +notebook_module \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/template_path_list b/bt5/erp5_notebook_test/bt/template_path_list new file mode 100644 index 00000000000..7f2e7660c8c --- /dev/null +++ b/bt5/erp5_notebook_test/bt/template_path_list @@ -0,0 +1,4 @@ +notebook_module/notebook_test_purejs +notebook_module/notebook_test_python_basic +portal_tests/renderjs_ui_notebook_zuite +portal_tests/renderjs_ui_notebook_zuite/** \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/template_test_id_list b/bt5/erp5_notebook_test/bt/template_test_id_list new file mode 100644 index 00000000000..fa12ef60df9 --- /dev/null +++ b/bt5/erp5_notebook_test/bt/template_test_id_list @@ -0,0 +1 @@ +test.erp5.testNotebookRJS \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/test_dependency_list b/bt5/erp5_notebook_test/bt/test_dependency_list new file mode 100644 index 00000000000..bff77e32d84 --- /dev/null +++ b/bt5/erp5_notebook_test/bt/test_dependency_list @@ -0,0 +1 @@ +erp5_full_text_mroonga_catalog \ No newline at end of file diff --git a/bt5/erp5_notebook_test/bt/title b/bt5/erp5_notebook_test/bt/title new file mode 100644 index 00000000000..dfb2157da14 --- /dev/null +++ b/bt5/erp5_notebook_test/bt/title @@ -0,0 +1 @@ +erp5_notebook_test \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py index 580935d622e..5c5da1aaf8c 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -35,9 +35,7 @@ class _ERP5(ERP5TypeTestSuite): component_re = re.compile(".*/([^/]+)/TestTemplateItem/portal_components" "/test\.[^.]+\.([^.]+).py$") for test_path in ( - glob('%s/product/*/tests/test*.py' % path) + - glob('%s/bt5/*/TestTemplateItem/test*.py' % path) + - glob('%s/bt5/*/TestTemplateItem/portal_components/test.*.test*.py' % path)): + glob('%s/bt5/erp5_notebook_test/TestTemplateItem/portal_components/test.*.test*.py' % path)): component_re_match = component_re.match(test_path) if component_re_match is not None: test_case = "%s:%s" % (component_re_match.group(1), -- 2.30.9 From 95bd44b6a11271c880e7684a021476f2fd2b2f99 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Tue, 16 Apr 2019 08:29:00 +0000 Subject: [PATCH 03/16] erp5_notebook: Use jsmd_viewer replace the notebook_viewer by default. --- .../erp5_notebook/Notebook_view/my_text_content.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/Notebook_view/my_text_content.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/Notebook_view/my_text_content.xml index 9e9ebbe75b3..3da5e6df0c0 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/Notebook_view/my_text_content.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/Notebook_view/my_text_content.xml @@ -139,7 +139,7 @@ _text - python: [(\'editor\', \'notebook_editor\'), (\'portal_type\', context.getPortalType()), (\'maximize\', \'listbox\' not in field.id)] + python: [(\'editor\', \'jsmd_editor\'), (\'portal_type\', context.getPortalType()), (\'maximize\', \'listbox\' not in field.id)] -- 2.30.9 From e2f36fa622c66f18636539c85695f55e5b12bdd5 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Tue, 21 May 2019 18:19:05 +0200 Subject: [PATCH 04/16] erp5_notebook: Use ajax replace fetch function when importing wasm --- .../erp5_notebook/gadget_jsmd_eval.js.js | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 8fe814bbca8..63ff15c3f7b 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -24,7 +24,7 @@ line_list = s.toString().split("\n"); for (i = 0; i < line_list.length; i += 1) { div = sideEffectDiv("side-effect-print", reportSideEffect); - div.innerText = line_list[i]; + div.textContent = line_list[i]; } }, element: function (nodeType, reportSideEffect) { @@ -409,14 +409,17 @@ function loadPyodide(info, receiveInstance) { var queue = new RSVP.Queue(); queue.push(function () { - return WebAssembly.compileStreaming(fetch("pyodide.asm.wasm")); + return ajax({url: "pyodide.asm.wasm", dataType: "arraybuffer"}) }) - .push(function (module) { - return WebAssembly.instantiate(module, info); + .push(function (evt) { + return WebAssembly.instantiate(evt.target.response, info); + }) + .push(function (results) { + return receiveInstance(results.instance); + }) + .push(undefined, function(error) { + console.log(error); }) - .push(function (instance) { - return receiveInstance(instance); - }); return queue; } @@ -473,14 +476,19 @@ return pyodideSetting(); }) .push(function () { - return fetch('packages.json'); + return ajax({url: 'packages.json'}); }) - .push(function (response) { - return response.json(); + .push(function (evt) { + return JSON.parse(evt.target.response); }) .push(function (json) { - window.pyodide.packages = json; + window.pyodide._module = Module; + window.pyodide.loadedPackages = []; + window.pyodide._module.packages = json; return; + }) + .push(undefined, function(error) { + console.log(error); }); return queue; } -- 2.30.9 From 7c9a23bc118a4a2ee5ca3b33a5aabbd39e467f03 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Fri, 31 May 2019 15:41:33 +0000 Subject: [PATCH 05/16] erp5_notebook: Remove unneeded things from erp5_notebook bt. Ayush seems to submitted everything he got by compiling Pyodide. Some of them are not needed for our erp5_notebook project. Remove it. --- .../erp5_notebook/iodide.master.fonts.xml | 26 - .../iodide.master.fonts/opensans.ttf.bin | Bin 52472 -> 0 bytes .../iodide.master.fonts/opensans.ttf.xml | 28 - .../iodide.master.fonts/opensans.woff.woff | Bin 31836 -> 0 bytes .../iodide.master.fonts/opensans.woff.xml | 28 - .../iodide.master.fonts/opensans.woff2.bin | Bin 24908 -> 0 bytes .../iodide.master.fonts/opensans.woff2.xml | 28 - .../iodide.master.fonts/opensansbold.ttf.bin | Bin 54044 -> 0 bytes .../iodide.master.fonts/opensansbold.ttf.xml | 28 - .../opensansbold.woff.woff | Bin 31512 -> 0 bytes .../iodide.master.fonts/opensansbold.woff.xml | 28 - .../opensansbold.woff2.bin | Bin 24448 -> 0 bytes .../opensansbold.woff2.xml | 28 - .../opensansextrabold.woff2.bin | Bin 25148 -> 0 bytes .../opensansextrabold.woff2.xml | 28 - .../opensansitalic.woff2.bin | Bin 27416 -> 0 bytes .../opensansitalic.woff2.xml | 28 - .../erp5_notebook/iodide_master.css.css | 4225 ----------------- .../erp5_notebook/iodide_master.css.xml | 28 - .../erp5_notebook/iodide_master.js.js | 121 - .../erp5_notebook/iodide_master.js.xml | 28 - .../portal_skins/erp5_notebook/pyodide.py.bin | 40 - .../portal_skins/erp5_notebook/pyodide.py.xml | 28 - .../erp5_notebook/python.html.html | 267 -- .../erp5_notebook/python.html.xml | 28 - .../erp5_notebook/renderedhtml.css.css | 209 - .../erp5_notebook/renderedhtml.css.xml | 28 - 27 files changed, 5252 deletions(-) delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.woff delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.ttf.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.ttf.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff.woff delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff2.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff2.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.css delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.js.js delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.js.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.py.bin delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.py.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python.html.html delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python.html.xml delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.css delete mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.xml diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts.xml deleted file mode 100644 index 41c2504c56c..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - _objects - - - - - - id - iodide.master.fonts - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.bin deleted file mode 100644 index 486b38c0d97a628ad0a4ed958d3aab17c422ed6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52472 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 Q@pm3Oi@$aF0;l8r4~joo7XSbN diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.xml deleted file mode 100644 index ed6e99abb6f..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.ttf.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - opensans.ttf - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.woff b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.woff deleted file mode 100644 index df0c92a10b0f657823cd4649225024064e4a46f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31836 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 TOH+9jTSo`Px{KNi1mu4KHW)Kn diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.xml deleted file mode 100644 index d8743b2a0b9..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - opensans.woff - - - content_type - application/font-woff - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.bin deleted file mode 100644 index 90cc12ef57f71de30cd9f834cae98d4a3559fe32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24908 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 diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.xml deleted file mode 100644 index a74a25f2968..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensans.woff2.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - opensans.woff2 - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.ttf.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.ttf.bin deleted file mode 100644 index d679304ef4d1eebdab9e85976980a9a692f2f7e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54044 zcmb@v2Vj&{);Ip#r_D?nQ!<$pQYMo^2rZcu=|c!DjnG08iiCuK^dh1nA|fJ-h=?L0 z>mp4=L{vm%u>c|>BFiGnvMh@Y8;FRkizIXT|IU48LO|U2d;i~;Fl3&YJI}rM+;dO) zopbI;Op+uU{!=AupTb_fm3U>FB>nYHyxOWydH+F@QwqWLYFvl)88oEeU#0(g0@s^x zeP{nc?X%a;d_G!|UaiCRsM<+2Q#+h%a~{|4{aleW9YaToCp8ETCr*x4d)>4vQ(8rCbsgnj*ww9!qa`1lM zIJ^*%VNS;VeYj2;H|fs1_vAnPAH0vxYoAV>Qd{#>=Xd@nNt+5KNxnF#=I*IV&+v3y zQ~ybmYbK5Pc=+TA7|-7&N$)##%8WY~bl*D{Lruc;N~TU9GxaA{P%laE(70ZeWN8lw z6Qb>q6v-r+-_TWAk~?HN+%|VU9($C2jc<;V@9{6xc3dqQr+$r2rJ2{xvSZ>CEu=&r z<{_~viLtK5k}NC3Bt_}1l%#lUR@D-n$vldi<>Yy@qnwetCpnF+x$I@td~J2bpkc!Y z4j#_VDo3xL99&U3u>Y_s+gEgrpUBhq{n{IJt zG6g;0!B%JN&ye57f7%ZJMcGOZ+^;P@z_smCoRlc_@fC)J$mSN-a0OE}jgHV|NmFDd zOROf8Su9}$l$|KM=#PKD{rgJEx1aFwYy~|&`SvJ# zn%_Z>qu+ijVPcin7O920T}qPDq&8AFU*|}sDw(ZQQ{r33#)Ml!WYtWgR*EE5krh>* zig_|gX0=!er3&=#E|u6~B5jeHB_@+a>L#ZrH!a;373H#}r={iQ4-lCdJM7H^9wuk^LTOD5T3s>85lU6O0TL&~raO;(g%#geY8!^})oyQw8{ z#oJn6<>|>+nA|$IYo9^DxP5?rkoqs`5oSoo!mDr@9m4r}66SIbVPC!)NT^4}ZT}r0r;wjn~e8^TQdu27VZL?Yu65g7M&o zENP<8(LO|0v=mRgD@p?gFt9<9K~lG*Y4R{^Ll8qzq+tx(2Xn->F`h~#alXVG+f;%2 zq6r%YO7>y~nVdE29y?A=9s23P!X#L8VSFPpW$il3Xgb0NQ0JHMj7D=TUeWjd_( ze6KD$Bke9vnmq8?C$27eeEB0+mametn1y|^bq~+J{BNHB)@Jqr?$s6ds%yGeQ1(fI zdoinQ^5ofbbL4bylwGcS_K7PCpL~4DRk|7fm3P{-lO6o!GW%rDD?E$l(_OAm zLTcm72oDRDnTGKdg;>lGa=O%q+RUISc4rVvXcplxrkLu|9419ccckV+hHcAWGu?d4 znJ-r_I)9pPO=pub^ho~rxW;IH;vUwKADqQ9Vy}*45c*82l)h9us{5r-Db44B+|cA9 z5U(neG$z%6d9*4?leJPI@&p$!cdpy!wL$9HJnR&o!{(o2^ZA@pa@{HRFu(T{pG!00 zSJ)xxf}~5)J}0gvHY7l4CY9RlMCepq@!0d->`=~q|Ll>%qECFp&#{p6G^Va>lUyOM z#Tq8~;_w2Kh6GnvVx`R%*OBXXc9mn;rmI)!b3zxfj+hIrEM5t4aY{0EnBPqE%nYiW zr9o}OKu$?1404lTq+;Bon?$5;;wI*1N}>M@KPS6M38FdVZPB&!YG3Uz`gI8%s3@Xm z>^oVOhT-GArIM7Clw_d;t+G2=vRUo!Y>8R1W%6uR+AnI~2HxQ3*RC?v&lG>|h{+R2 z)l8T)Qa;7!@yFSHYzCXprtk;&WBlju&a)5}e(oI2`5p|e48sVK;(XC&ld2HM-~m}E z1|Myuxx3xA{CwSHN@rfBj2}|8(u7S*7v~hl8n0TcaC{=*OphY5Eu(+T7a>n zN!@*2l9{T3@KF4+5{{9CF^OqKSQVKmP!+1G4TB&9y}>F$dVAa{DH$ZTgwmq{sqSP_ zd>}au)sripfb^#HJa@LLx;CzObqD{1e|2H!kdN!0d1BMfDbqIp@h^R!8n*O9=KPYG z)G3SJOVOiVT6XMQe`d?}9QSC4LD>a=bAul~p7c`SY#PYzMc zsX6>IYtN6e_9v8Wjdxt>cHS|tjKjQRQXQz3i=N}8LSK)VNLi5_7T8~A&`K%7I3z`u zlv>b8tpc@#aTeShOd_ks)*?LAq)Bls&SZ(qWMrX90dghf=D3MSWCkkvd2;=y4g9bC zo69Tu|8*pbleG^~{l?h1p*0e`{zQe}?I7esveZt>^LaDe zc39U6E7BP0X2@Gfh>PH=q{#qXIFH15%8XN^2O# zWK9Q;5pA%Bn$RD$O)Gc9hK!4KC&s46rKVujXblQ&@r*-*d6Mc9YEWs`6WiTF zsKoZco-Viy)hM58>WTFBA+@6hw@%Vuhs^JgnaXmR6PmkYW1{l8f3Upe5ZkeoUA)Nm z@ozA)O12hyo-~rzg8T)%c!Sp%s~{L{&o9}d0&4@ok%0R$Ar zLXK!qc`AxJ4AQE%3ZkVXC$z+;VmuJ(QJIWnq+oLJQo6DKb(5|;oj16bkpm~)(Q{PA ziuWd+x%$b^b&rnn@)JSD&(0Q&daS&7WTzg5qfgEGV8i4!b$yDubm5zW1_4G}f303W zfL)s-b(czgMGj_>J2S;%f<{b-Y1WGAnpR|nj)b+OND!|Q%(UAvWYaLoWCHhFEMnPx zmXdB=Qc_b=Q(*;oLda``b_Bzxd#9#gU$_5?{%~Kd=6X|LspKokfr5v;W2$_(Oc?Nw$n> z|76v>8>KDPBSXTyzB!BKi;w^KNS{vgj=yz`$!-^SE&lV<&;RGajr_o2ex9Ff-}b#> z>~U82AGZALcD|i&J~nsh=}>?oGL}cu7HGS{Md4DGuU#mEa)X8eXW=m#eAKm=+-L?J zXEp=m2sekLtqJy{$>Pd%!##I1H&_qCN>TI2`_GN%ugNN#E$e>1Jk{)8&4%;!+U~1` z@+fxlzLW>JiFg+3RlN-T)&kliNy_zQo1iryjb)vY+91tpnDOM_2my`$V`5^GViJ>6 z+?h$FV;$}!AwQjl0Ch8i+#Zk3CZ4%>vI8ui#muf>Je!}n;y=yuw%^vhEJ`Eco{TkjXXo2=kFnz3Y&hj!gZT}bF z!?$i^`A3hRs2jLZJ;;AO$6ckou^49I_^;T|H^(-ncf$IBQrb*V$_!c&9wW;^JSIRQ z7_@GWJ79}SFbu(A%!SjdA#Wkrm!^s3KwsA#2kHt=gLtTN;|`_Bf1drwZE_^;&EMsG zVc^aR$DJ*b$CpHRmTtVWFly*0iH0=^4pmjs=9(%A_7UrXEerMucn$UxPl_kt^4PFlu`I&uFku72KZN4Sx4Gpn z<-#SuKFHtT>)2Cl?B_?vu6g<3rG2|<>i9V&*B{a@l`UWs*=Y7?^_6md>8lG3kxck{ zv`+Pcf^J^|W=XbU4H*Mni@`bMcHBrgvJdH3tLKOOZ}X2>p4^k=%Cr27;MneyyJEK2 z#_@sd0`3_uweqDxDq%e&Cc}1D@K+jz_328C7eZ_o&cao&or6qbVt?G*Dkt7iR$fqF z$@0GE1EZK6Id`E}eRb0{iC;F>Tr0=j!=xl%d>BwC73#i-%%HBtq~|bXhs_ai2$)F> zHy?XlE9YzYy!kZbd)cF`lFRbAk^WyW?Ak5tCqEn*gP*$N-kRW9xZ`BX%hlIyEKSk^ zHkP>WPE3D*wxglwTHw<`uB9 z6E+(Zy~D#44_{+(zzf~Ts&yET8~GU}%)%F{v-#SY{z`PWRvme@NZy|H0E=u0a;tU_ zJ+~lFH3Z(?%@lFkoI#2-^(ceb+ChGo{~^)aLV32S1#_tb`KdX65V+wj7Jrw#9eWv4 zMf*nhmCoPwE0df2N(md8I5bHDfaguJSz)zn-|&@u8-7=^JJn%2eFMVsb ze40PS?`03ON%)hi;&pX(WJ06#_K!TCbD=x^d zbg7*$GZykIPKQbfnA-uP@&+qAwM_tKh*Ukzyxp|)cJR+rU|o|^fdK*e73GSGQeFH@ z{{8kR4-cuI)M3QZhaWCyrf;VonN~ORnWD;(X@j0UyppZ>;HyfORFGFzn%T2kVfQ;% zjotgNysV!(qzx>{=-RPp^nQ#p1Nwk4HIoDs0xQU5;P;RV*mZ^^3v2?hdEN4P{t=&{ zmgBJ<;5etn-U?nHi96UO$U_1$jSxc6oyU#rlHKD-(O^X|TcoaH-AQN}zK=~Cxr|@< zGyj@@$Z{X~<4Op{#!;ECRs|LKF!TvhK7z8_L^G0XaMR+OIUIL=a! zN3;$NX=C5TvJ@$Uu{L=>di_wrjbEHz+wsQ&#oKr||BC@--}O}z0`sg8^MtGpH3Ne9 zjbyUh?Lon>h0lB>*q$m`kz)dVsOCm-9mQ=!)J^L6cA=ZqZllW|C?iin4z1W z^PdS~f=u$FZ&y>_qVGfLKE`vsxB2epvydrnc0rV*^fWMdiz#3D?1vCyC0c<$c{R7qW`(ThxC3;{2T0z3iN(#FWO6yBLq-`QNcZvOLc{o1g1 z>%(u1*>mpmi~Q(a3m$xO{M?l_#XC2@_M%14+C1QsG4Frqcgeb{R#wlucMN8{1~c9c zY~PO9<6Uo9g+eiAlx#-m3KPI;U@o#OG;DX86&psP6gn@?m-ai2poWc>SR@gziHU^! z5f|e~j7&rXfkFqGWM_7Zz>n-$VyFd=iBxnXkTVy6Jz>fcV5CHR@Yy#9_D^+szhhZp zVH2iK8z)b=bL5n%>I{B}|IE+vzbu`NNWzLq(VyvDtK^~)PJYyh=~Upudy2I}D? z@5h7{w3}r`CO3$HJy{skm>M>*0J^YBOtMCVg}@ATGADUI8q5`f^n`MD?kC zJj|fBnWmI11LcPo=S?F$@Ys|P7t8*>bNIONGbd?N=G0G{ z9?7y<3x?gie$HrC|Lgf>8-9LdU69y;d5#tsQ=HV(=Zl6190LfB>Xf6zEK+fim!b8=j`H9=+L;)9Dr9o>DW}%(lqW z^Y|tH7Z!8n2WIxS*B*ax%=XdcJCs$kr%jvPI1sjs4KRcfM6R#sZr_ znW-m&D+JP`DiIhd#-=Gn@ZMQJSa)KS-G#$LaVE`2WUO3%;o}H)PGim*<$upiCJZ;LLAr<8tH>o3^ZCgBI`#}Vg+Y~(a%=>>| zw|vYa@sY#4z9AWDo2I|{p-pX2yZ5aw>)xTiQaWt>_+cNB^j`zry$QR{Nj_(b2pOS6 z1ZEU$EBFco-}MdpvuQR*a?oj~=(!UsOHwER;H#VXk?jvm=SNtU$z-kn*Zz;?C6~7D z^Iw9**_XPgdi|##&@Nw&PS2n}GjucI8_*UM@j-uz0)h)n-e&W-Dc0u5@n(xm6VmX@ zH*Op>Xd~-J9cXi(da6(V2A4WglCRC-k>ZZwQk2xumj{s>^qZR)6t@+uDGi6|EftXb zii)(g2s+XP&cl%wShlc9btTwy@0o*p_bctgvObwA`sa}`7abLY)y)kVukA5SpkV~5 z_zPwgL8x&A!gv6Uf^-CnfP`XS*c^7d2qKbSjemxdZDRWuz&Nesg^1{_;qT0+DO%-G zo7rF<=U>S7-@(`Gk^UlKXJftCQS^iek%)eSaE6T@j1#)qQTjZZ7^`b4zz*_AmD|H< z(;9my7J(%sT2KUoh)!sa3C=Is`f)%r=tXLw4x>Z3dJU{YXhOO=9$qiL;ZC{!E&OZLhfT2^T$V=|I zXUl&7C3WP|(xL0iD)yc5r_*a|wg&kVGl-N5-$3XPuB9;rJ2*#yI-;?X3m}FbWiZjr zoLlv#7;OM>x_PuwPGa4Pk;Jg-j z0Zb6^uz|}p?P+-M(2EFc<&t`gva{urX5Twu;_Q1TDjNTcUwi(Shgbqr@JG(txcS8w zHg4ST0{@YJyo8yzF+1zm5NB$HakMkYEFBf=q==-Nyt^CN9%!mnp{ou1Z_MR42$Kf%NOCOEmo%Nz+8xfPe_&UGx2W7c1I@mxM z9Yj&gYMP*Ek`&bU2!JT@BA@_$Ptg$LA|T1*o7TK9!iz+Ap&E&S3p6oNA+(7xzzDZ$ zgNcTRF^Mw49Ja8e@FcS?g|bkZXlhWo!zFbEbbpk~ONn!~913vBQ|_FoO__aSg8IQ{ zXAg{ju8TPi&hIDT;aO`>E!dd4eKp^@Y2%OZldM>|obtg-f8D{3cbza`u))R3EX>s^ zjS_3NBV5QRvTA?_0L%k45VUHDvth-MJ&dg<1Y#T%jo7L54&l+kH>!Ls;N-wegehia zkj@nQbtyv42KS?4?Uvz6&3$4WKk`l67CEn~Gc5dzkQEF42h@?fN6x_L$o|`c(WMef z5rd(`0{vD%VG0TcLtn&BLGwE$Gc~~IIz>Tp$=-lrWS|rz0E8U~!_<`^D_efNaPOAl zA;$-7Y%{TX-aYx>eEQM5!v{Z6vT*3~`S*5WC0n+;lNwv)jY?_TF)eTStf5b>tNdq5 zyM7s6I_D0*8>4HF(dBC;&`>^K*H9*+@rb;_I>q2rWjaDnhRy90Ou>d@pfIHY(A%sq z=>%GoG$IYuh zf8nhEY>#dj#VS~*fDa*us>KSvfdK#|h{IospaeM7K?c82V^B3s9*xU*6}BCDF%Y!F zA+v?`8IC7_H5~v(1gshKV6b)pV8m@xc4k;Cr?i>|dg!MgJb zb)?qIi_1 zE(je-P)H+CZ)$$Uou-fZPQI6Qn3tHOtBKY>u=4q;%^J>hOS_PVStfsnEo2uO7po(= zZNc{?8-~cy{%@lyYDTo|+t7ynXv{VQvt1!(3md|sgGX^%2wN@@Y=e3&>Hy)%4YQYJ2(pX>UVGyitoCW&5cWBoyRBz+$@J|m-l@4fqww* zng}H0xV8hj16gTs>O_7K=*J{v-XMOW-5%WIU6m4BOIwu9E-ZKG$y`{bxfDf*E8(=k z)kIDuiAN{45KEjt=l%!xUal?HzxuwY?($w1F?9Hkl>^PJ+cR@MS9%xnP2-gyfa|-f;scsPMx0ng zW|_SUmCti$Oy+w-1`qymU=4LyDW|I)l{t`5y#%__38}|$0RbZxAq%Uo!jwMHcZxg| zF;<8zBD^t1S?N!4#IO*!odHi;fG^Omxe%j3c*&C%A}c+O739y!8~aSZdByWa=iZ+; z=GlU~tLMvWdggsIDJd!6*YTT4v8lH~Cb`rr%6{kr%4SOyJ4s*?66+t# zXA}K3%U(!r_MEwjeFeoOJ$%J%`G77xO3Qp*25577^e*b!rC;yvy?gZS-nDNJ-1#@? z666nh6hVOI=#t2G6dmRw=M+3;g7ojsDsme7s3+q-9OKM6oK2PieoU!Y;})=ZrWS9@ z2A`x;aNexxHE8jQ7_5fhIn@GToLUKgg@CRxeS~Q zY)t3C##%|)(rwZTUt~1$xl{)PNGgD+G>9sb3d_xgS*1dqnVD{q_1bWVR^&^Nj_6x# zVHn~t76wuXNUXJF)@Achw3euG&3|cJ<@4ltnUt67y)Eaq4(&2CQj(JrTgJMacB{w` zYsFecKoe?E+s(l;SPTL!1D<^yLLda;I(EjA31-l;7Jc4#^#13b-*@S!cdJSt-BA1X zcVEsZc=_(rO!Bt{vhe=S{yY6Wrrmenqhs!tJtu8!t2{n(%pEhU-rhjq+TdOVr5}x% z@9V*T_zqx0<@xkha;&Nj9R`?oV?Lrt!+6*oVHp$sm1^owE)-aEcQx=7NKx@hwa5`R;-+S#%)lgY+tk7SRs17u$2F;; z2p== zY)MXY+tQL#l0waKnN8s}mJ8?>ajm=*uNNxJo2>#gkyVe!$p~M7T=puB5zoK5d3gr^ zE@~J5_W7kO;>}#<%H6>t9)F&HyDN%+m$7{F_Vp2L_lwIP+0by{^Z86)^X#unwr^kZ z>$7Y4)%l;R9oH{oBkO;n>0q&RXUJ$NLW%`HWO8{w=T z0BiU|qro2nYiw?P1^*jA=H=ge`4N7KC9ilbkwqnLUBx`g3H}ZLg_p4HNH>pSUvl>! zA63kaSC&1=zNGb9$|LpOs0WFWI{4Z~8*&nGxR!}}6-jCXa}7&RMq)de>?)*8p)-$K@-VHlbnTjv4PvU0(;%}5DXY2m6B{U5US;x5HgKCa zlg6Ea$`2LPOOSx~Qw2u|Mj8NG;KdjhU|zC>>Fp$NB=9&HXeQEo2^@489)x0sR7)hF zA>~$06eZedX9hXY3?3VkVvyk)2{{dWJ`9>IfhAZ>B*To{2iPdERRSCiy1>zP0ya`7 z-8r-^ z0XP_U0epPRW|Vy!4Nolq&Lt|~gmh}F-*8I`pBPPpI5S$JswWiL1D+IHN|M=xE$XG< zyh_r|B+Ghw!0@))v4?}Gs(N(>i(u*eAHZAg;HRzKZr}0jU|%P1ZnyklNlN9&CG+R6 z>#HpI_S3J^ zlw^yE5)j3#iQC052+<@~O`8If^-#_ZJI!(h1^k%nLkrjRWe2}Hdp+;Sf8<+UGp2qF zXibQ}*yAGm9Xbg~`ce&*(FvvEDmEc`fnkNQS`G;$#*fErLSYdhfWeXAFZQ2JJ<_`z zslUN(H}5ZB%X0JWc668jo4{_Ao!xDB|N7FLw$VWw+L(<3_+hFWF zd47H>UZJe^uNwEqC!XBipZJjHlYVam<6%(((iypv7(*)U;GoTbYse>zDFid8+)C6# zQLYQ7Ehz)c(9&Wcu40{#T@jRwR!brxA{-HpNTP(pYB9xSI=seiG5Cm~5X@~0nYL_G zhB9~`Ki)WzAD0g%Jv9P}vocFY%3A-168~TV4fK&`xpY{0EifXaGGIi|AD}&cOp7rh z8)@1WVerq9Qb7h42I3;r0770VfrkzsUC;*_3H{^$;1k)*ov4yJiR+Wh$0KpQoxAuM zJhsbM4>4>yM)c^-R+41mv=)Isx3ECH;?8ClJk$-4ug>wn1)^2URDu zW>jh^GELn{qUr=?6ir1ZhP4dwtg4$oeCgl`1Zd9iclM3+PiE78_;%6kZ$DkI;FI?j z&SB9n{mA0gQA>8l=#e{~_~`roOl|8uQ8VsRWqongtRsU;KcrDpF5zj=OJt#i0o)CM z87=|dM9U>23(bUph}(v63nS*uLBbm{UR`R4F0VsE*m=9zU(G>vf48?!s1-5$a;+x>$vjKUZ~2;B}bQM#Cs9Ox3sfskk-a|45Li^USlrH$fi z{1-^dK=Bp%&(Shq1Y%(@FX$GrCmqrNUkJ1#(#PNh2T*kHVt5nVL`d+i*5D> zL@B*10QN+=r0PwQ{Z`EsBX;o3GM}tlzUn3k|LiTKy1}!Qa|oVoAKX=x&xvc8J9s~k zyN7FJw;1hdF1SXjM1bcZC~ysz)o4!{#JGl3z%^tkWmMrh&)5?r!$4mlTdm<{mcNy~3$4|_eSUG=CeKOaP z1vf6l&e}n4{jzWKpad3@QhK`@+julv_S0Ab7Cy!@UW^SLXvi+Ybtf@4$WEPdT|%Ya zhSqXn@z_8^fRb4%S3|gg50P{wKEOsa3D@9Ts5HGUUQ@|Z4*Y6e|G|$pe9VM&{l!13 zNxTY+Tm!#gwveSZSWi$dls5!n0mq|`G!F~wCeDP zqhGSz(K83Gn}xoxSr6`zhx;4HPjF|*O9Q*i^o^J$I9%koyM)ahoWb?siwzbSzIvX0 zz;dq~g(Cfc-3Ih|J5>z|{XqJFSD5$Uo-Kgvml(98L?vY)yb1>R#E`w!&fabRtN zfs_%!cR^Y;@Fpx9F#yEPg=ItCH=`mm#sO0PnrsY3LFyfxINx=OUZn~R{D}PVFrZPS zp%iE+g|IOr7fWa;0kL663yT6+6G^+EInmsZKtA~qXvPY@OkO`*D696Qrd}^66N2pK z>&656ffUnmvH&EA1IQE5VvGjNt=6K#2&AA*UQOXwbZoOx*U2X6pJ30;`z89TYxq$( zGgDb!9a0l={bd85d2G>^p6WCF5OUhkKjh4j@A&93_4P=+M7OjWASY>O^5#9hq+tJ; zd!T!Rm#A+y$q;7fKOlQ)~9Sp6^4w6p3K3OK}!AQ@B ztL4l2rXTkG{L;GzE&hk)yY=_fgSVw$9m}WjKk^lPPBBwUckSYv-z8dHJ8zCbR<0e; z{NmzmF4&@pWMAqqLSd&WK$?WfO1W1gddVX*!ik=yW&xWv=)p8^3X?r}vzuB$P#76q zAU64LU~E+0gSYL;g0V%0vl7@{$QDfsq&q{qChO)H{tDj@Wx73AZ%UjCK+a2ch<^0i;U39G;floR0fbpQgZ z0ggo88McE`6ExCX0ww`JN=OH=Mxb@LEe#shNPMIejTAQx)D}b|w@aycsSaI>kdbvk2r<@=x7Ho`nxDQVp$y=2IqT&6c@wIf56aK6 zd2DHJY%Bgti>%1(9um zcJbGq@ITI$@hS4ur=Uzy8s{0hSw%J&IHV8y#zw>d8Zj!HgnE8qJ4?uCqdHT__LyQ} zEkF}DGoCRuYykWVK9MgX>FzPsnb)y>d>6#`S9t8g^E%d9?k*?#KgZ)+|1LS-e^5Mn z%hBkWDz-g{0=JTie0@ToF97@@lC4Scu%lZ-wrQdg*>HI9HYGhIk;5aRE%45nM5k@U z#UMeAitAblxn|@xLCK^W{2FOk)dX=EabwC{L@_tp@$$0q_m=J}ub%bUAC5MjSv2#Z zt1t3zS5zDx_0*HA*WM*>yRB#t=QA(L|4`0NWZb-Tuxt`5s{f(LGZj32f zLX_DN3NHZ(Ih2G$GzO`$`J-)4XRr^GZbB?LEj=BqDU#&7$qu*f=3iR#GCw$ZFf+@+ zzhdj(OYmCUscl|mYm{l-j!ooY?8@W=g^f$G3ZBvr`>dEhnY|XE@)q{?vyp{4R*(#Ux4#u@dzgE1!@w>?b`N$TNdRL- zSK=)b%@YDesR~X~%n@yjnn;6@j6T$rNOYM%cW+or*^I`W1Gzi6^FU#HQ?3PaZE@X8 z^aSri?HcTf6mhUC^lCsY&3Y1Y%$=)tz zVNDV#w-5J|<6A~KEl}fdJ8%gOfvZU}I}RpUluMyqft23J0J@BF?o^wbP7?wmNkx}LE|;JtDP#RDXj&*C}OijC)ne403-s$Fj$BRRgmkb z(|)yynq9#|0k?x~Sy=gWDY4S{9Yfyy5WF<@iB?JMOR&@K+uHs4WwyrP9~149Q1YgQ zuVL`0n5Hm*F^k_IQ6~4VRA({Eco^e1=0G`MQ%sbHL7oQjKW0Hr2JJjL=Bvp?6VwSf z5zXmCQ*fBv>-i7AUbx=Jnr4)uo+!HlH-nt37o!)55-wF3v^C%sr3xk#x&)jbgt?#@ zZLpna-+A1^c0wg8>=Lq^a)bI_UU7oS|KSe*IlfxW9XswXpTef#&8`5z`x`w0g#Xe-wV}<67$6SR5gt7m1Tbbd@$Y{* z&HvN#AT8P9cxL4L3opL-!V4QV z26$La#CnnkfT~20)yNc4;F;9~*_X6dz+$!8(gORD8M)bDAe)Dd=0N@l!i7bA2WvZV z%FllV6nSLR!O2ydj}{MMyV`D^v34i6{u(yAcYhY!FQ7|CV^5|Di%yqnu%VFI5BW@a z)@jmWUj(umEo5BMst1qzYK^3N#0o5M8^LszVK{t15L#gGftVQZGm_PDzE;f|TVRP> zvf+ZjlkaS$=KuaSS$BgTIDi15j?wW%57L7dgFAr=?NRnCyO7TljcA(K2~9QWRL_l_5KLMP z>;w@Eq{NxvPB47uK#>8R>KCknkeBf9`B?;k+&f>c+&tlq87=pXlKD>%f%{>!K@H7<)4Vx z1KH?kN7e|I9y^L83{IAkJ}KVjgdZMaVX}_Ek&LPqV~+)2F^M`C<82KWRS3D!Cz9Z7 z>$0lX;+A5O;hvDp7>3F~#^5Ff?vwf3cHpI8GuoQL=ad)R>K3iBd8?>Y2@H4L355@D zhXlfjg_uT^o2*C+L9jN@jW#44I}-ekfRm@Ry>Np)>3QtRk34bP=$d&8-o44RG*kf_ zW#|DRjRnAB_h^DF78)h>@g}G1$l;mteV$Dzjn5c~iJKxv_ zAv8#D`tc-*5SlSs+UJ4apd?pEijnfpd_Bn?HXM&aF>FJi8+IevkU`Cb{SEy=`@5xd z`x{YI#TS6NlQ38law$ma;AJ|V5W}L3`+(>{!hN$Q$ZkR`5J!<*Z-8;5ng%~8zo2nL zu?EX8e!E#k6~=FOsa$^P=G|%RO!czZnd<}(kCwIyUKh5c@N>wP)TKiWv}0j`sC&T4 z#+eZabK@vGa&a&%r5bj)2mvAi)eeyO#!gU3A-7}>E~_J1mj8QDj8Oe6sEJAwXpKoKR$>Ij z==JZLy6I{$)an?_^ zG{{%p5*9IwS7eiv*-F+;R>)hZ6ccV?(x+;u8$%i-&QD?qD04w#zbKtRc!^2v+O$Ry z7xZOxq&*@G#R1tYJ0y^vK>$VopB1@t0ey45A|J(q2u4t(21iDwX*|8UaH4NpF-}Oz zK*sam?tHDZbnBhKwBKYIEUf62f{BI0(jIth*S0}JSYF?W+jcHhkGb2P$m+uXz+Z;r zUE8;~xG!7H?q¬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 - - - - - - - - - __name__ - opensansbold.ttf - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff.woff b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff.woff deleted file mode 100644 index 700d06a616abb1eb24f64f829ad1edac8f217624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31512 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 - - - - - - - - - __name__ - opensansbold.woff - - - content_type - application/font-woff - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff2.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansbold.woff2.bin deleted file mode 100644 index 148ed5ef2f125b3a870da03d59efd523a4b6a167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24448 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 X_oN*Czkyx1uK!e!e@>S+ - - - - - - - - - __name__ - opensansbold.woff2 - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.bin deleted file mode 100644 index 5c114547773066a15678322a2aff84b85b94f5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25148 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 diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.xml deleted file mode 100644 index 16b059a45fc..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansextrabold.woff2.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - opensansextrabold.woff2 - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.bin b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.bin deleted file mode 100644 index 439d3657f9a15617b440311e7e9d29be2849f64d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27416 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

G*WVz>ut^Ws_lru*S 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

bcDuZ_-RbnIdc}b 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%0A(x}cu)Tm913 z4LUIFueEk9ZW=4ae|m&nQAbbe`cifgwzv7LsO)I#Li-Fwj27`ERD7@CVWUCU60PYT zBr>NMU27y3%2*4~j@$>Kd|sK8#vft5166aDd6ES z02c5V4q%C>5hH8WxixlcgpE}cAXEupcwFj$z;1>B14||i6eykrK;bjj0gJqO1~_=l zU%?CqEN{glWJ!YsQr7!miRL(AD|8;tA8SZ?z6cJlEPO`+0t$k!ZR@;7fqRK{R$WBn zUc!f3*F^B9_BOdj;ac>MMg{(08J`3b`&YwL3DiMBQ~~x^5MEDC0i3lk{ZDv5JDU@SY>fg9UQ0KaMeJGv4 z*S2+r7GrRaAKh7Js;f%(56tF4SpCjaQBeR;oJsjvO7PHkGl8dqCQ%1D zjy0@aM9rY?QqHj}GxXeENMoYu4@zJC{$!Jqkj*$)Qls(AQY)q93ORi(1O&`cdi^ZH zkBTP6UNtg(;K7H6^=tucw=}ESC8M<7)M_d%gOAlq5}&ZJ<$!3;cc zB2<`gk)lMe($8d^cnK0ENtPm28bP`YnX+Wdp_VI8z5<0CRR2G9u@a@ql&eswO0^o2 zTCzIz8Z>IstVOFf?KIYCwbp6$5yl(5%?GChNuko{3>H>4cGzVPVL}-X!YEGCY@QdT zkV;o|vuL~JO1wV5h(*mKQQtqmfByda4}cJipcqb&6wR<4FNl(?sG4q=mhHHnAB0hy zq*-2+Ro%2*KaA77tlNG((9Zuy-p~8}00_Ydis1xF(G1J+f+)#~s_BMl*^cY^K^VnJ zn&m}V)lJ*=!#K^$y6wk#-Ou~|AOs^Qh7%-3Gc3moq9iM-rW>YZJFe#kVH786mKSAJ zH*MDs<1{bpwjbwpKkxSssh=8wuM)c zagY7M2h17Ie)9RxI9|r3{qY1BW=AA?^>j{N7P2zjYX>1drQXfef*y(vEO$(Qsh(VYVX#FZu4*& zp?Cxn%D9lA9POUDJhxp*gb8I_NKiCC+BKe$8vpt+m!#Ypu1`T5G*7gHXnW1m$SgjGSu-c)%EAj4{R-bDvS_dWbNg zj0*|M(XR1~+~lma)>><=wbojDTl$33e!O8^FV=cUw8+_N^#(QUSEAPY$=Xc2Iiyzeb#Bku(O2QpQ^ diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.xml deleted file mode 100644 index b03e3dbb1c1..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide.master.fonts/opensansitalic.woff2.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - opensansitalic.woff2 - - - content_type - application/octet-stream - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.css b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.css deleted file mode 100644 index 14d48371081..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.css +++ /dev/null @@ -1,4225 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url(iodide.master.fonts/fontawesome-webfont.eot); - src: url(iodide.master.fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'), url(iodide.master.fonts/fontawesome-webfont.woff2) format('woff2'), url(iodide.master.fonts/fontawesome-webfont.woff) format('woff'), url(iodide.master.fonts/fontawesome-webfont.ttf) format('truetype'), url(iodide.master.fonts/fontawesome-webfont.svg#fontawesomeregular) format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.fa-pull-left { - float: left; -} -.fa-pull-right { - float: right; -} -.fa.fa-pull-left { - margin-right: .3em; -} -.fa.fa-pull-right { - margin-left: .3em; -} -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\F000"; -} -.fa-music:before { - content: "\F001"; -} -.fa-search:before { - content: "\F002"; -} -.fa-envelope-o:before { - content: "\F003"; -} -.fa-heart:before { - content: "\F004"; -} -.fa-star:before { - content: "\F005"; -} -.fa-star-o:before { - content: "\F006"; -} -.fa-user:before { - content: "\F007"; -} -.fa-film:before { - content: "\F008"; -} -.fa-th-large:before { - content: "\F009"; -} -.fa-th:before { - content: "\F00A"; -} -.fa-th-list:before { - content: "\F00B"; -} -.fa-check:before { - content: "\F00C"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\F00D"; -} -.fa-search-plus:before { - content: "\F00E"; -} -.fa-search-minus:before { - content: "\F010"; -} -.fa-power-off:before { - content: "\F011"; -} -.fa-signal:before { - content: "\F012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\F013"; -} -.fa-trash-o:before { - content: "\F014"; -} -.fa-home:before { - content: "\F015"; -} -.fa-file-o:before { - content: "\F016"; -} -.fa-clock-o:before { - content: "\F017"; -} -.fa-road:before { - content: "\F018"; -} -.fa-download:before { - content: "\F019"; -} -.fa-arrow-circle-o-down:before { - content: "\F01A"; -} -.fa-arrow-circle-o-up:before { - content: "\F01B"; -} -.fa-inbox:before { - content: "\F01C"; -} -.fa-play-circle-o:before { - content: "\F01D"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\F01E"; -} -.fa-refresh:before { - content: "\F021"; -} -.fa-list-alt:before { - content: "\F022"; -} -.fa-lock:before { - content: "\F023"; -} -.fa-flag:before { - content: "\F024"; -} -.fa-headphones:before { - content: "\F025"; -} -.fa-volume-off:before { - content: "\F026"; -} -.fa-volume-down:before { - content: "\F027"; -} -.fa-volume-up:before { - content: "\F028"; -} -.fa-qrcode:before { - content: "\F029"; -} -.fa-barcode:before { - content: "\F02A"; -} -.fa-tag:before { - content: "\F02B"; -} -.fa-tags:before { - content: "\F02C"; -} -.fa-book:before { - content: "\F02D"; -} -.fa-bookmark:before { - content: "\F02E"; -} -.fa-print:before { - content: "\F02F"; -} -.fa-camera:before { - content: "\F030"; -} -.fa-font:before { - content: "\F031"; -} -.fa-bold:before { - content: "\F032"; -} -.fa-italic:before { - content: "\F033"; -} -.fa-text-height:before { - content: "\F034"; -} -.fa-text-width:before { - content: "\F035"; -} -.fa-align-left:before { - content: "\F036"; -} -.fa-align-center:before { - content: "\F037"; -} -.fa-align-right:before { - content: "\F038"; -} -.fa-align-justify:before { - content: "\F039"; -} -.fa-list:before { - content: "\F03A"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\F03B"; -} -.fa-indent:before { - content: "\F03C"; -} -.fa-video-camera:before { - content: "\F03D"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\F03E"; -} -.fa-pencil:before { - content: "\F040"; -} -.fa-map-marker:before { - content: "\F041"; -} -.fa-adjust:before { - content: "\F042"; -} -.fa-tint:before { - content: "\F043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\F044"; -} -.fa-share-square-o:before { - content: "\F045"; -} -.fa-check-square-o:before { - content: "\F046"; -} -.fa-arrows:before { - content: "\F047"; -} -.fa-step-backward:before { - content: "\F048"; -} -.fa-fast-backward:before { - content: "\F049"; -} -.fa-backward:before { - content: "\F04A"; -} -.fa-play:before { - content: "\F04B"; -} -.fa-pause:before { - content: "\F04C"; -} -.fa-stop:before { - content: "\F04D"; -} -.fa-forward:before { - content: "\F04E"; -} -.fa-fast-forward:before { - content: "\F050"; -} -.fa-step-forward:before { - content: "\F051"; -} -.fa-eject:before { - content: "\F052"; -} -.fa-chevron-left:before { - content: "\F053"; -} -.fa-chevron-right:before { - content: "\F054"; -} -.fa-plus-circle:before { - content: "\F055"; -} -.fa-minus-circle:before { - content: "\F056"; -} -.fa-times-circle:before { - content: "\F057"; -} -.fa-check-circle:before { - content: "\F058"; -} -.fa-question-circle:before { - content: "\F059"; -} -.fa-info-circle:before { - content: "\F05A"; -} -.fa-crosshairs:before { - content: "\F05B"; -} -.fa-times-circle-o:before { - content: "\F05C"; -} -.fa-check-circle-o:before { - content: "\F05D"; -} -.fa-ban:before { - content: "\F05E"; -} -.fa-arrow-left:before { - content: "\F060"; -} -.fa-arrow-right:before { - content: "\F061"; -} -.fa-arrow-up:before { - content: "\F062"; -} -.fa-arrow-down:before { - content: "\F063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\F064"; -} -.fa-expand:before { - content: "\F065"; -} -.fa-compress:before { - content: "\F066"; -} -.fa-plus:before { - content: "\F067"; -} -.fa-minus:before { - content: "\F068"; -} -.fa-asterisk:before { - content: "\F069"; -} -.fa-exclamation-circle:before { - content: "\F06A"; -} -.fa-gift:before { - content: "\F06B"; -} -.fa-leaf:before { - content: "\F06C"; -} -.fa-fire:before { - content: "\F06D"; -} -.fa-eye:before { - content: "\F06E"; -} -.fa-eye-slash:before { - content: "\F070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\F071"; -} -.fa-plane:before { - content: "\F072"; -} -.fa-calendar:before { - content: "\F073"; -} -.fa-random:before { - content: "\F074"; -} -.fa-comment:before { - content: "\F075"; -} -.fa-magnet:before { - content: "\F076"; -} -.fa-chevron-up:before { - content: "\F077"; -} -.fa-chevron-down:before { - content: "\F078"; -} -.fa-retweet:before { - content: "\F079"; -} -.fa-shopping-cart:before { - content: "\F07A"; -} -.fa-folder:before { - content: "\F07B"; -} -.fa-folder-open:before { - content: "\F07C"; -} -.fa-arrows-v:before { - content: "\F07D"; -} -.fa-arrows-h:before { - content: "\F07E"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\F080"; -} -.fa-twitter-square:before { - content: "\F081"; -} -.fa-facebook-square:before { - content: "\F082"; -} -.fa-camera-retro:before { - content: "\F083"; -} -.fa-key:before { - content: "\F084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\F085"; -} -.fa-comments:before { - content: "\F086"; -} -.fa-thumbs-o-up:before { - content: "\F087"; -} -.fa-thumbs-o-down:before { - content: "\F088"; -} -.fa-star-half:before { - content: "\F089"; -} -.fa-heart-o:before { - content: "\F08A"; -} -.fa-sign-out:before { - content: "\F08B"; -} -.fa-linkedin-square:before { - content: "\F08C"; -} -.fa-thumb-tack:before { - content: "\F08D"; -} -.fa-external-link:before { - content: "\F08E"; -} -.fa-sign-in:before { - content: "\F090"; -} -.fa-trophy:before { - content: "\F091"; -} -.fa-github-square:before { - content: "\F092"; -} -.fa-upload:before { - content: "\F093"; -} -.fa-lemon-o:before { - content: "\F094"; -} -.fa-phone:before { - content: "\F095"; -} -.fa-square-o:before { - content: "\F096"; -} -.fa-bookmark-o:before { - content: "\F097"; -} -.fa-phone-square:before { - content: "\F098"; -} -.fa-twitter:before { - content: "\F099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\F09A"; -} -.fa-github:before { - content: "\F09B"; -} -.fa-unlock:before { - content: "\F09C"; -} -.fa-credit-card:before { - content: "\F09D"; -} -.fa-feed:before, -.fa-rss:before { - content: "\F09E"; -} -.fa-hdd-o:before { - content: "\F0A0"; -} -.fa-bullhorn:before { - content: "\F0A1"; -} -.fa-bell:before { - content: "\F0F3"; -} -.fa-certificate:before { - content: "\F0A3"; -} -.fa-hand-o-right:before { - content: "\F0A4"; -} -.fa-hand-o-left:before { - content: "\F0A5"; -} -.fa-hand-o-up:before { - content: "\F0A6"; -} -.fa-hand-o-down:before { - content: "\F0A7"; -} -.fa-arrow-circle-left:before { - content: "\F0A8"; -} -.fa-arrow-circle-right:before { - content: "\F0A9"; -} -.fa-arrow-circle-up:before { - content: "\F0AA"; -} -.fa-arrow-circle-down:before { - content: "\F0AB"; -} -.fa-globe:before { - content: "\F0AC"; -} -.fa-wrench:before { - content: "\F0AD"; -} -.fa-tasks:before { - content: "\F0AE"; -} -.fa-filter:before { - content: "\F0B0"; -} -.fa-briefcase:before { - content: "\F0B1"; -} -.fa-arrows-alt:before { - content: "\F0B2"; -} -.fa-group:before, -.fa-users:before { - content: "\F0C0"; -} -.fa-chain:before, -.fa-link:before { - content: "\F0C1"; -} -.fa-cloud:before { - content: "\F0C2"; -} -.fa-flask:before { - content: "\F0C3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\F0C4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\F0C5"; -} -.fa-paperclip:before { - content: "\F0C6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\F0C7"; -} -.fa-square:before { - content: "\F0C8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\F0C9"; -} -.fa-list-ul:before { - content: "\F0CA"; -} -.fa-list-ol:before { - content: "\F0CB"; -} -.fa-strikethrough:before { - content: "\F0CC"; -} -.fa-underline:before { - content: "\F0CD"; -} -.fa-table:before { - content: "\F0CE"; -} -.fa-magic:before { - content: "\F0D0"; -} -.fa-truck:before { - content: "\F0D1"; -} -.fa-pinterest:before { - content: "\F0D2"; -} -.fa-pinterest-square:before { - content: "\F0D3"; -} -.fa-google-plus-square:before { - content: "\F0D4"; -} -.fa-google-plus:before { - content: "\F0D5"; -} -.fa-money:before { - content: "\F0D6"; -} -.fa-caret-down:before { - content: "\F0D7"; -} -.fa-caret-up:before { - content: "\F0D8"; -} -.fa-caret-left:before { - content: "\F0D9"; -} -.fa-caret-right:before { - content: "\F0DA"; -} -.fa-columns:before { - content: "\F0DB"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\F0DC"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\F0DD"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\F0DE"; -} -.fa-envelope:before { - content: "\F0E0"; -} -.fa-linkedin:before { - content: "\F0E1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\F0E2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\F0E3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\F0E4"; -} -.fa-comment-o:before { - content: "\F0E5"; -} -.fa-comments-o:before { - content: "\F0E6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\F0E7"; -} -.fa-sitemap:before { - content: "\F0E8"; -} -.fa-umbrella:before { - content: "\F0E9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\F0EA"; -} -.fa-lightbulb-o:before { - content: "\F0EB"; -} -.fa-exchange:before { - content: "\F0EC"; -} -.fa-cloud-download:before { - content: "\F0ED"; -} -.fa-cloud-upload:before { - content: "\F0EE"; -} -.fa-user-md:before { - content: "\F0F0"; -} -.fa-stethoscope:before { - content: "\F0F1"; -} -.fa-suitcase:before { - content: "\F0F2"; -} -.fa-bell-o:before { - content: "\F0A2"; -} -.fa-coffee:before { - content: "\F0F4"; -} -.fa-cutlery:before { - content: "\F0F5"; -} -.fa-file-text-o:before { - content: "\F0F6"; -} -.fa-building-o:before { - content: "\F0F7"; -} -.fa-hospital-o:before { - content: "\F0F8"; -} -.fa-ambulance:before { - content: "\F0F9"; -} -.fa-medkit:before { - content: "\F0FA"; -} -.fa-fighter-jet:before { - content: "\F0FB"; -} -.fa-beer:before { - content: "\F0FC"; -} -.fa-h-square:before { - content: "\F0FD"; -} -.fa-plus-square:before { - content: "\F0FE"; -} -.fa-angle-double-left:before { - content: "\F100"; -} -.fa-angle-double-right:before { - content: "\F101"; -} -.fa-angle-double-up:before { - content: "\F102"; -} -.fa-angle-double-down:before { - content: "\F103"; -} -.fa-angle-left:before { - content: "\F104"; -} -.fa-angle-right:before { - content: "\F105"; -} -.fa-angle-up:before { - content: "\F106"; -} -.fa-angle-down:before { - content: "\F107"; -} -.fa-desktop:before { - content: "\F108"; -} -.fa-laptop:before { - content: "\F109"; -} -.fa-tablet:before { - content: "\F10A"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\F10B"; -} -.fa-circle-o:before { - content: "\F10C"; -} -.fa-quote-left:before { - content: "\F10D"; -} -.fa-quote-right:before { - content: "\F10E"; -} -.fa-spinner:before { - content: "\F110"; -} -.fa-circle:before { - content: "\F111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\F112"; -} -.fa-github-alt:before { - content: "\F113"; -} -.fa-folder-o:before { - content: "\F114"; -} -.fa-folder-open-o:before { - content: "\F115"; -} -.fa-smile-o:before { - content: "\F118"; -} -.fa-frown-o:before { - content: "\F119"; -} -.fa-meh-o:before { - content: "\F11A"; -} -.fa-gamepad:before { - content: "\F11B"; -} -.fa-keyboard-o:before { - content: "\F11C"; -} -.fa-flag-o:before { - content: "\F11D"; -} -.fa-flag-checkered:before { - content: "\F11E"; -} -.fa-terminal:before { - content: "\F120"; -} -.fa-code:before { - content: "\F121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\F122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\F123"; -} -.fa-location-arrow:before { - content: "\F124"; -} -.fa-crop:before { - content: "\F125"; -} -.fa-code-fork:before { - content: "\F126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\F127"; -} -.fa-question:before { - content: "\F128"; -} -.fa-info:before { - content: "\F129"; -} -.fa-exclamation:before { - content: "\F12A"; -} -.fa-superscript:before { - content: "\F12B"; -} -.fa-subscript:before { - content: "\F12C"; -} -.fa-eraser:before { - content: "\F12D"; -} -.fa-puzzle-piece:before { - content: "\F12E"; -} -.fa-microphone:before { - content: "\F130"; -} -.fa-microphone-slash:before { - content: "\F131"; -} -.fa-shield:before { - content: "\F132"; -} -.fa-calendar-o:before { - content: "\F133"; -} -.fa-fire-extinguisher:before { - content: "\F134"; -} -.fa-rocket:before { - content: "\F135"; -} -.fa-maxcdn:before { - content: "\F136"; -} -.fa-chevron-circle-left:before { - content: "\F137"; -} -.fa-chevron-circle-right:before { - content: "\F138"; -} -.fa-chevron-circle-up:before { - content: "\F139"; -} -.fa-chevron-circle-down:before { - content: "\F13A"; -} -.fa-html5:before { - content: "\F13B"; -} -.fa-css3:before { - content: "\F13C"; -} -.fa-anchor:before { - content: "\F13D"; -} -.fa-unlock-alt:before { - content: "\F13E"; -} -.fa-bullseye:before { - content: "\F140"; -} -.fa-ellipsis-h:before { - content: "\F141"; -} -.fa-ellipsis-v:before { - content: "\F142"; -} -.fa-rss-square:before { - content: "\F143"; -} -.fa-play-circle:before { - content: "\F144"; -} -.fa-ticket:before { - content: "\F145"; -} -.fa-minus-square:before { - content: "\F146"; -} -.fa-minus-square-o:before { - content: "\F147"; -} -.fa-level-up:before { - content: "\F148"; -} -.fa-level-down:before { - content: "\F149"; -} -.fa-check-square:before { - content: "\F14A"; -} -.fa-pencil-square:before { - content: "\F14B"; -} -.fa-external-link-square:before { - content: "\F14C"; -} -.fa-share-square:before { - content: "\F14D"; -} -.fa-compass:before { - content: "\F14E"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\F150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\F151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\F152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\F153"; -} -.fa-gbp:before { - content: "\F154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\F155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\F156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\F157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\F158"; -} -.fa-won:before, -.fa-krw:before { - content: "\F159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\F15A"; -} -.fa-file:before { - content: "\F15B"; -} -.fa-file-text:before { - content: "\F15C"; -} -.fa-sort-alpha-asc:before { - content: "\F15D"; -} -.fa-sort-alpha-desc:before { - content: "\F15E"; -} -.fa-sort-amount-asc:before { - content: "\F160"; -} -.fa-sort-amount-desc:before { - content: "\F161"; -} -.fa-sort-numeric-asc:before { - content: "\F162"; -} -.fa-sort-numeric-desc:before { - content: "\F163"; -} -.fa-thumbs-up:before { - content: "\F164"; -} -.fa-thumbs-down:before { - content: "\F165"; -} -.fa-youtube-square:before { - content: "\F166"; -} -.fa-youtube:before { - content: "\F167"; -} -.fa-xing:before { - content: "\F168"; -} -.fa-xing-square:before { - content: "\F169"; -} -.fa-youtube-play:before { - content: "\F16A"; -} -.fa-dropbox:before { - content: "\F16B"; -} -.fa-stack-overflow:before { - content: "\F16C"; -} -.fa-instagram:before { - content: "\F16D"; -} -.fa-flickr:before { - content: "\F16E"; -} -.fa-adn:before { - content: "\F170"; -} -.fa-bitbucket:before { - content: "\F171"; -} -.fa-bitbucket-square:before { - content: "\F172"; -} -.fa-tumblr:before { - content: "\F173"; -} -.fa-tumblr-square:before { - content: "\F174"; -} -.fa-long-arrow-down:before { - content: "\F175"; -} -.fa-long-arrow-up:before { - content: "\F176"; -} -.fa-long-arrow-left:before { - content: "\F177"; -} -.fa-long-arrow-right:before { - content: "\F178"; -} -.fa-apple:before { - content: "\F179"; -} -.fa-windows:before { - content: "\F17A"; -} -.fa-android:before { - content: "\F17B"; -} -.fa-linux:before { - content: "\F17C"; -} -.fa-dribbble:before { - content: "\F17D"; -} -.fa-skype:before { - content: "\F17E"; -} -.fa-foursquare:before { - content: "\F180"; -} -.fa-trello:before { - content: "\F181"; -} -.fa-female:before { - content: "\F182"; -} -.fa-male:before { - content: "\F183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\F184"; -} -.fa-sun-o:before { - content: "\F185"; -} -.fa-moon-o:before { - content: "\F186"; -} -.fa-archive:before { - content: "\F187"; -} -.fa-bug:before { - content: "\F188"; -} -.fa-vk:before { - content: "\F189"; -} -.fa-weibo:before { - content: "\F18A"; -} -.fa-renren:before { - content: "\F18B"; -} -.fa-pagelines:before { - content: "\F18C"; -} -.fa-stack-exchange:before { - content: "\F18D"; -} -.fa-arrow-circle-o-right:before { - content: "\F18E"; -} -.fa-arrow-circle-o-left:before { - content: "\F190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\F191"; -} -.fa-dot-circle-o:before { - content: "\F192"; -} -.fa-wheelchair:before { - content: "\F193"; -} -.fa-vimeo-square:before { - content: "\F194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\F195"; -} -.fa-plus-square-o:before { - content: "\F196"; -} -.fa-space-shuttle:before { - content: "\F197"; -} -.fa-slack:before { - content: "\F198"; -} -.fa-envelope-square:before { - content: "\F199"; -} -.fa-wordpress:before { - content: "\F19A"; -} -.fa-openid:before { - content: "\F19B"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\F19C"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\F19D"; -} -.fa-yahoo:before { - content: "\F19E"; -} -.fa-google:before { - content: "\F1A0"; -} -.fa-reddit:before { - content: "\F1A1"; -} -.fa-reddit-square:before { - content: "\F1A2"; -} -.fa-stumbleupon-circle:before { - content: "\F1A3"; -} -.fa-stumbleupon:before { - content: "\F1A4"; -} -.fa-delicious:before { - content: "\F1A5"; -} -.fa-digg:before { - content: "\F1A6"; -} -.fa-pied-piper-pp:before { - content: "\F1A7"; -} -.fa-pied-piper-alt:before { - content: "\F1A8"; -} -.fa-drupal:before { - content: "\F1A9"; -} -.fa-joomla:before { - content: "\F1AA"; -} -.fa-language:before { - content: "\F1AB"; -} -.fa-fax:before { - content: "\F1AC"; -} -.fa-building:before { - content: "\F1AD"; -} -.fa-child:before { - content: "\F1AE"; -} -.fa-paw:before { - content: "\F1B0"; -} -.fa-spoon:before { - content: "\F1B1"; -} -.fa-cube:before { - content: "\F1B2"; -} -.fa-cubes:before { - content: "\F1B3"; -} -.fa-behance:before { - content: "\F1B4"; -} -.fa-behance-square:before { - content: "\F1B5"; -} -.fa-steam:before { - content: "\F1B6"; -} -.fa-steam-square:before { - content: "\F1B7"; -} -.fa-recycle:before { - content: "\F1B8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\F1B9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\F1BA"; -} -.fa-tree:before { - content: "\F1BB"; -} -.fa-spotify:before { - content: "\F1BC"; -} -.fa-deviantart:before { - content: "\F1BD"; -} -.fa-soundcloud:before { - content: "\F1BE"; -} -.fa-database:before { - content: "\F1C0"; -} -.fa-file-pdf-o:before { - content: "\F1C1"; -} -.fa-file-word-o:before { - content: "\F1C2"; -} -.fa-file-excel-o:before { - content: "\F1C3"; -} -.fa-file-powerpoint-o:before { - content: "\F1C4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\F1C5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\F1C6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\F1C7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\F1C8"; -} -.fa-file-code-o:before { - content: "\F1C9"; -} -.fa-vine:before { - content: "\F1CA"; -} -.fa-codepen:before { - content: "\F1CB"; -} -.fa-jsfiddle:before { - content: "\F1CC"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\F1CD"; -} -.fa-circle-o-notch:before { - content: "\F1CE"; -} -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\F1D0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\F1D1"; -} -.fa-git-square:before { - content: "\F1D2"; -} -.fa-git:before { - content: "\F1D3"; -} -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\F1D4"; -} -.fa-tencent-weibo:before { - content: "\F1D5"; -} -.fa-qq:before { - content: "\F1D6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\F1D7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\F1D8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\F1D9"; -} -.fa-history:before { - content: "\F1DA"; -} -.fa-circle-thin:before { - content: "\F1DB"; -} -.fa-header:before { - content: "\F1DC"; -} -.fa-paragraph:before { - content: "\F1DD"; -} -.fa-sliders:before { - content: "\F1DE"; -} -.fa-share-alt:before { - content: "\F1E0"; -} -.fa-share-alt-square:before { - content: "\F1E1"; -} -.fa-bomb:before { - content: "\F1E2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\F1E3"; -} -.fa-tty:before { - content: "\F1E4"; -} -.fa-binoculars:before { - content: "\F1E5"; -} -.fa-plug:before { - content: "\F1E6"; -} -.fa-slideshare:before { - content: "\F1E7"; -} -.fa-twitch:before { - content: "\F1E8"; -} -.fa-yelp:before { - content: "\F1E9"; -} -.fa-newspaper-o:before { - content: "\F1EA"; -} -.fa-wifi:before { - content: "\F1EB"; -} -.fa-calculator:before { - content: "\F1EC"; -} -.fa-paypal:before { - content: "\F1ED"; -} -.fa-google-wallet:before { - content: "\F1EE"; -} -.fa-cc-visa:before { - content: "\F1F0"; -} -.fa-cc-mastercard:before { - content: "\F1F1"; -} -.fa-cc-discover:before { - content: "\F1F2"; -} -.fa-cc-amex:before { - content: "\F1F3"; -} -.fa-cc-paypal:before { - content: "\F1F4"; -} -.fa-cc-stripe:before { - content: "\F1F5"; -} -.fa-bell-slash:before { - content: "\F1F6"; -} -.fa-bell-slash-o:before { - content: "\F1F7"; -} -.fa-trash:before { - content: "\F1F8"; -} -.fa-copyright:before { - content: "\F1F9"; -} -.fa-at:before { - content: "\F1FA"; -} -.fa-eyedropper:before { - content: "\F1FB"; -} -.fa-paint-brush:before { - content: "\F1FC"; -} -.fa-birthday-cake:before { - content: "\F1FD"; -} -.fa-area-chart:before { - content: "\F1FE"; -} -.fa-pie-chart:before { - content: "\F200"; -} -.fa-line-chart:before { - content: "\F201"; -} -.fa-lastfm:before { - content: "\F202"; -} -.fa-lastfm-square:before { - content: "\F203"; -} -.fa-toggle-off:before { - content: "\F204"; -} -.fa-toggle-on:before { - content: "\F205"; -} -.fa-bicycle:before { - content: "\F206"; -} -.fa-bus:before { - content: "\F207"; -} -.fa-ioxhost:before { - content: "\F208"; -} -.fa-angellist:before { - content: "\F209"; -} -.fa-cc:before { - content: "\F20A"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\F20B"; -} -.fa-meanpath:before { - content: "\F20C"; -} -.fa-buysellads:before { - content: "\F20D"; -} -.fa-connectdevelop:before { - content: "\F20E"; -} -.fa-dashcube:before { - content: "\F210"; -} -.fa-forumbee:before { - content: "\F211"; -} -.fa-leanpub:before { - content: "\F212"; -} -.fa-sellsy:before { - content: "\F213"; -} -.fa-shirtsinbulk:before { - content: "\F214"; -} -.fa-simplybuilt:before { - content: "\F215"; -} -.fa-skyatlas:before { - content: "\F216"; -} -.fa-cart-plus:before { - content: "\F217"; -} -.fa-cart-arrow-down:before { - content: "\F218"; -} -.fa-diamond:before { - content: "\F219"; -} -.fa-ship:before { - content: "\F21A"; -} -.fa-user-secret:before { - content: "\F21B"; -} -.fa-motorcycle:before { - content: "\F21C"; -} -.fa-street-view:before { - content: "\F21D"; -} -.fa-heartbeat:before { - content: "\F21E"; -} -.fa-venus:before { - content: "\F221"; -} -.fa-mars:before { - content: "\F222"; -} -.fa-mercury:before { - content: "\F223"; -} -.fa-intersex:before, -.fa-transgender:before { - content: "\F224"; -} -.fa-transgender-alt:before { - content: "\F225"; -} -.fa-venus-double:before { - content: "\F226"; -} -.fa-mars-double:before { - content: "\F227"; -} -.fa-venus-mars:before { - content: "\F228"; -} -.fa-mars-stroke:before { - content: "\F229"; -} -.fa-mars-stroke-v:before { - content: "\F22A"; -} -.fa-mars-stroke-h:before { - content: "\F22B"; -} -.fa-neuter:before { - content: "\F22C"; -} -.fa-genderless:before { - content: "\F22D"; -} -.fa-facebook-official:before { - content: "\F230"; -} -.fa-pinterest-p:before { - content: "\F231"; -} -.fa-whatsapp:before { - content: "\F232"; -} -.fa-server:before { - content: "\F233"; -} -.fa-user-plus:before { - content: "\F234"; -} -.fa-user-times:before { - content: "\F235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\F236"; -} -.fa-viacoin:before { - content: "\F237"; -} -.fa-train:before { - content: "\F238"; -} -.fa-subway:before { - content: "\F239"; -} -.fa-medium:before { - content: "\F23A"; -} -.fa-yc:before, -.fa-y-combinator:before { - content: "\F23B"; -} -.fa-optin-monster:before { - content: "\F23C"; -} -.fa-opencart:before { - content: "\F23D"; -} -.fa-expeditedssl:before { - content: "\F23E"; -} -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\F240"; -} -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\F241"; -} -.fa-battery-2:before, -.fa-battery-half:before { - content: "\F242"; -} -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\F243"; -} -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\F244"; -} -.fa-mouse-pointer:before { - content: "\F245"; -} -.fa-i-cursor:before { - content: "\F246"; -} -.fa-object-group:before { - content: "\F247"; -} -.fa-object-ungroup:before { - content: "\F248"; -} -.fa-sticky-note:before { - content: "\F249"; -} -.fa-sticky-note-o:before { - content: "\F24A"; -} -.fa-cc-jcb:before { - content: "\F24B"; -} -.fa-cc-diners-club:before { - content: "\F24C"; -} -.fa-clone:before { - content: "\F24D"; -} -.fa-balance-scale:before { - content: "\F24E"; -} -.fa-hourglass-o:before { - content: "\F250"; -} -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\F251"; -} -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\F252"; -} -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\F253"; -} -.fa-hourglass:before { - content: "\F254"; -} -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\F255"; -} -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\F256"; -} -.fa-hand-scissors-o:before { - content: "\F257"; -} -.fa-hand-lizard-o:before { - content: "\F258"; -} -.fa-hand-spock-o:before { - content: "\F259"; -} -.fa-hand-pointer-o:before { - content: "\F25A"; -} -.fa-hand-peace-o:before { - content: "\F25B"; -} -.fa-trademark:before { - content: "\F25C"; -} -.fa-registered:before { - content: "\F25D"; -} -.fa-creative-commons:before { - content: "\F25E"; -} -.fa-gg:before { - content: "\F260"; -} -.fa-gg-circle:before { - content: "\F261"; -} -.fa-tripadvisor:before { - content: "\F262"; -} -.fa-odnoklassniki:before { - content: "\F263"; -} -.fa-odnoklassniki-square:before { - content: "\F264"; -} -.fa-get-pocket:before { - content: "\F265"; -} -.fa-wikipedia-w:before { - content: "\F266"; -} -.fa-safari:before { - content: "\F267"; -} -.fa-chrome:before { - content: "\F268"; -} -.fa-firefox:before { - content: "\F269"; -} -.fa-opera:before { - content: "\F26A"; -} -.fa-internet-explorer:before { - content: "\F26B"; -} -.fa-tv:before, -.fa-television:before { - content: "\F26C"; -} -.fa-contao:before { - content: "\F26D"; -} -.fa-500px:before { - content: "\F26E"; -} -.fa-amazon:before { - content: "\F270"; -} -.fa-calendar-plus-o:before { - content: "\F271"; -} -.fa-calendar-minus-o:before { - content: "\F272"; -} -.fa-calendar-times-o:before { - content: "\F273"; -} -.fa-calendar-check-o:before { - content: "\F274"; -} -.fa-industry:before { - content: "\F275"; -} -.fa-map-pin:before { - content: "\F276"; -} -.fa-map-signs:before { - content: "\F277"; -} -.fa-map-o:before { - content: "\F278"; -} -.fa-map:before { - content: "\F279"; -} -.fa-commenting:before { - content: "\F27A"; -} -.fa-commenting-o:before { - content: "\F27B"; -} -.fa-houzz:before { - content: "\F27C"; -} -.fa-vimeo:before { - content: "\F27D"; -} -.fa-black-tie:before { - content: "\F27E"; -} -.fa-fonticons:before { - content: "\F280"; -} -.fa-reddit-alien:before { - content: "\F281"; -} -.fa-edge:before { - content: "\F282"; -} -.fa-credit-card-alt:before { - content: "\F283"; -} -.fa-codiepie:before { - content: "\F284"; -} -.fa-modx:before { - content: "\F285"; -} -.fa-fort-awesome:before { - content: "\F286"; -} -.fa-usb:before { - content: "\F287"; -} -.fa-product-hunt:before { - content: "\F288"; -} -.fa-mixcloud:before { - content: "\F289"; -} -.fa-scribd:before { - content: "\F28A"; -} -.fa-pause-circle:before { - content: "\F28B"; -} -.fa-pause-circle-o:before { - content: "\F28C"; -} -.fa-stop-circle:before { - content: "\F28D"; -} -.fa-stop-circle-o:before { - content: "\F28E"; -} -.fa-shopping-bag:before { - content: "\F290"; -} -.fa-shopping-basket:before { - content: "\F291"; -} -.fa-hashtag:before { - content: "\F292"; -} -.fa-bluetooth:before { - content: "\F293"; -} -.fa-bluetooth-b:before { - content: "\F294"; -} -.fa-percent:before { - content: "\F295"; -} -.fa-gitlab:before { - content: "\F296"; -} -.fa-wpbeginner:before { - content: "\F297"; -} -.fa-wpforms:before { - content: "\F298"; -} -.fa-envira:before { - content: "\F299"; -} -.fa-universal-access:before { - content: "\F29A"; -} -.fa-wheelchair-alt:before { - content: "\F29B"; -} -.fa-question-circle-o:before { - content: "\F29C"; -} -.fa-blind:before { - content: "\F29D"; -} -.fa-audio-description:before { - content: "\F29E"; -} -.fa-volume-control-phone:before { - content: "\F2A0"; -} -.fa-braille:before { - content: "\F2A1"; -} -.fa-assistive-listening-systems:before { - content: "\F2A2"; -} -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; -} -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\F2A4"; -} -.fa-glide:before { - content: "\F2A5"; -} -.fa-glide-g:before { - content: "\F2A6"; -} -.fa-signing:before, -.fa-sign-language:before { - content: "\F2A7"; -} -.fa-low-vision:before { - content: "\F2A8"; -} -.fa-viadeo:before { - content: "\F2A9"; -} -.fa-viadeo-square:before { - content: "\F2AA"; -} -.fa-snapchat:before { - content: "\F2AB"; -} -.fa-snapchat-ghost:before { - content: "\F2AC"; -} -.fa-snapchat-square:before { - content: "\F2AD"; -} -.fa-pied-piper:before { - content: "\F2AE"; -} -.fa-first-order:before { - content: "\F2B0"; -} -.fa-yoast:before { - content: "\F2B1"; -} -.fa-themeisle:before { - content: "\F2B2"; -} -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\F2B3"; -} -.fa-fa:before, -.fa-font-awesome:before { - content: "\F2B4"; -} -.fa-handshake-o:before { - content: "\F2B5"; -} -.fa-envelope-open:before { - content: "\F2B6"; -} -.fa-envelope-open-o:before { - content: "\F2B7"; -} -.fa-linode:before { - content: "\F2B8"; -} -.fa-address-book:before { - content: "\F2B9"; -} -.fa-address-book-o:before { - content: "\F2BA"; -} -.fa-vcard:before, -.fa-address-card:before { - content: "\F2BB"; -} -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\F2BC"; -} -.fa-user-circle:before { - content: "\F2BD"; -} -.fa-user-circle-o:before { - content: "\F2BE"; -} -.fa-user-o:before { - content: "\F2C0"; -} -.fa-id-badge:before { - content: "\F2C1"; -} -.fa-drivers-license:before, -.fa-id-card:before { - content: "\F2C2"; -} -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\F2C3"; -} -.fa-quora:before { - content: "\F2C4"; -} -.fa-free-code-camp:before { - content: "\F2C5"; -} -.fa-telegram:before { - content: "\F2C6"; -} -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\F2C7"; -} -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\F2C8"; -} -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\F2C9"; -} -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\F2CA"; -} -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\F2CB"; -} -.fa-shower:before { - content: "\F2CC"; -} -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\F2CD"; -} -.fa-podcast:before { - content: "\F2CE"; -} -.fa-window-maximize:before { - content: "\F2D0"; -} -.fa-window-minimize:before { - content: "\F2D1"; -} -.fa-window-restore:before { - content: "\F2D2"; -} -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\F2D3"; -} -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\F2D4"; -} -.fa-bandcamp:before { - content: "\F2D5"; -} -.fa-grav:before { - content: "\F2D6"; -} -.fa-etsy:before { - content: "\F2D7"; -} -.fa-imdb:before { - content: "\F2D8"; -} -.fa-ravelry:before { - content: "\F2D9"; -} -.fa-eercast:before { - content: "\F2DA"; -} -.fa-microchip:before { - content: "\F2DB"; -} -.fa-snowflake-o:before { - content: "\F2DC"; -} -.fa-superpowers:before { - content: "\F2DD"; -} -.fa-wpexplorer:before { - content: "\F2DE"; -} -.fa-meetup:before { - content: "\F2E0"; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Light'), - local('OpenSans-Light'), - url(iodide.master.fonts/opensanslight.woff2) format('woff2'), - url(iodide.master.fonts/opensanslight.woff) format('woff'), - url(iodide.master.fonts/opensanslight.ttf) format('truetype'); - font-weight: 300; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Light Italic'), - local('OpenSansLight-Italic'), - url(iodide.master.fonts/opensanslightitalic.woff2) format('woff2'), - url(iodide.master.fonts/opensanslightitalic.woff) format('woff'), - url(iodide.master.fonts/opensanslightitalic.ttf) format('truetype'); - font-weight: 300; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans'), - local('OpenSans'), - url(iodide.master.fonts/opensans.woff2) format('woff2'), - url(iodide.master.fonts/opensans.woff) format('woff'), - url(iodide.master.fonts/opensans.ttf) format('truetype'); - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Italic'), - local('OpenSans-Italic'), - url(iodide.master.fonts/opensansitalic.woff2) format('woff2'), - url(iodide.master.fonts/opensansitalic.woff) format('woff'), - url(iodide.master.fonts/opensansitalic.ttf) format('truetype'); - font-weight: 400; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Semibold'), - local('OpenSans-Semibold'), - url(iodide.master.fonts/opensanssemibold.woff2) format('woff2'), - url(iodide.master.fonts/opensanssemibold.woff) format('woff'), - url(iodide.master.fonts/opensanssemibold.ttf) format('truetype'); - font-weight: 600; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Semibold Italic'), - local('OpenSans-SemiboldItalic'), - url(iodide.master.fonts/opensanssemibolditalic.woff2) format('woff2'), - url(iodide.master.fonts/opensanssemibolditalic.woff) format('woff'), - url(iodide.master.fonts/opensanssemibolditalic.ttf) format('truetype'); - font-weight: 600; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Bold'), - local('OpenSans-Bold'), - url(iodide.master.fonts/opensansbold.woff2) format('woff2'), - url(iodide.master.fonts/opensansbold.woff) format('woff'), - url(iodide.master.fonts/opensansbold.ttf) format('truetype'); - font-weight: 700; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Bold Italic'), - local('OpenSans-BoldItalic'), - url(iodide.master.fonts/opensansbolditalic.woff2) format('woff2'), - url(iodide.master.fonts/opensansbolditalic.woff) format('woff'), - url(iodide.master.fonts/opensansbolditalic.ttf) format('truetype'); - font-weight: 700; - font-style: italic; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Extrabold'), - local('OpenSans-Extrabold'), - url(iodide.master.fonts/opensansextrabold.woff2) format('woff2'), - url(iodide.master.fonts/opensansextrabold.woff) format('woff'), - url(iodide.master.fonts/opensansextrabold.ttf) format('truetype'); - font-weight: 800; - font-style: normal; -} - -@font-face { - font-family: 'Open Sans'; - src: local('Open Sans Extrabold Italic'), - local('OpenSans-ExtraboldItalic'), - url(iodide.master.fonts/opensansextrabolditalic.woff2) format('woff2'), - url(iodide.master.fonts/opensansextrabolditalic.woff) format('woff'), - url(iodide.master.fonts/opensansextrabolditalic.ttf) format('truetype'); - font-weight: 800; - font-style: italic; -} -.cm-s-eclipse span.cm-meta { color: #FF1717; } -.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } -.cm-s-eclipse span.cm-atom { color: #219; } -.cm-s-eclipse span.cm-number { color: #164; } -.cm-s-eclipse span.cm-def { color: #00f; } -.cm-s-eclipse span.cm-variable { color: black; } -.cm-s-eclipse span.cm-variable-2 { color: #0000C0; } -.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; } -.cm-s-eclipse span.cm-property { color: black; } -.cm-s-eclipse span.cm-operator { color: black; } -.cm-s-eclipse span.cm-comment { color: #3F7F5F; } -.cm-s-eclipse span.cm-string { color: #2A00FF; } -.cm-s-eclipse span.cm-string-2 { color: #f50; } -.cm-s-eclipse span.cm-qualifier { color: #555; } -.cm-s-eclipse span.cm-builtin { color: #30a; } -.cm-s-eclipse span.cm-bracket { color: #cc7; } -.cm-s-eclipse span.cm-tag { color: #170; } -.cm-s-eclipse span.cm-attribute { color: #00c; } -.cm-s-eclipse span.cm-link { color: #219; } -.cm-s-eclipse span.cm-error { color: #f00; } - -.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; } -.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; } -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; - color: black; - direction: ltr; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror-cursor { - border-left: 1px solid black; - border-right: none; - width: 0; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.cm-fat-cursor .CodeMirror-cursor { - width: auto; - border: 0 !important; - background: #7e7; -} -.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} -.cm-fat-cursor-mark { - background-color: rgba(20, 255, 20, 0.5); - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7; -} -@-moz-keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} -@-webkit-keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} -@keyframes blink { - 0% {} - 50% { background-color: transparent; } - 100% {} -} - -/* Can style cursor different in overwrite (non-insert) mode */ -.CodeMirror-overwrite .CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-rulers { - position: absolute; - left: 0; right: 0; top: -50px; bottom: -20px; - overflow: hidden; -} -.CodeMirror-ruler { - border-left: 1px solid #ccc; - top: 0; bottom: 0; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -.CodeMirror-composing { border-bottom: 2px solid; } - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - position: relative; - overflow: hidden; - background: white; -} - -.CodeMirror-scroll { - overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actual scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - min-height: 100%; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - vertical-align: top; - margin-bottom: -30px; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - background: none !important; - border: none !important; -} -.CodeMirror-gutter-background { - position: absolute; - top: 0; bottom: 0; - z-index: 4; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} -.CodeMirror-gutter-wrapper ::selection { background-color: transparent } -.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; - -webkit-font-variant-ligatures: contextual; - font-variant-ligatures: contextual; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - padding: 0.1px; /* Force widget margins to stay inside of the container */ -} - -.CodeMirror-widget {} - -.CodeMirror-rtl pre { direction: rtl; } - -.CodeMirror-code { - outline: none; -} - -/* Force content-box sizing for the elements where we expect it */ -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} - -.CodeMirror-cursor { - position: absolute; - pointer-events: none; -} -.CodeMirror-measure pre { position: static; } - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -div.CodeMirror-dragcursors { - visibility: visible; -} - -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } -.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } -.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } - -.cm-searching { - background-color: #ffa; - background-color: rgba(255, 255, 0, .4); -} - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } -.CodeMirror-hints { - position: absolute; - z-index: 10; - overflow: hidden; - list-style: none; - - margin: 0; - padding: 2px; - - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - border-radius: 3px; - border: 1px solid silver; - - background: white; - font-size: 90%; - font-family: monospace; - - max-height: 20em; - overflow-y: auto; -} - -.CodeMirror-hint { - margin: 0; - padding: 0 4px; - border-radius: 2px; - white-space: pre; - color: black; - cursor: pointer; -} - -li.CodeMirror-hint-active { - background: #08f; - color: white; -} -.ReactTable{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:1px solid rgba(0,0,0,0.1);}.ReactTable *{box-sizing:border-box}.ReactTable .rt-table{-webkit-box-flex:1;-ms-flex:auto 1;flex:auto 1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%;border-collapse:collapse;overflow:auto}.ReactTable .rt-thead{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.ReactTable .rt-thead.-headerGroups{background:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.05)}.ReactTable .rt-thead.-filters{border-bottom:1px solid rgba(0,0,0,0.05);}.ReactTable .rt-thead.-filters input,.ReactTable .rt-thead.-filters select{border:1px solid rgba(0,0,0,0.1);background:#fff;padding:5px 7px;font-size:inherit;border-radius:3px;font-weight:normal;outline:none}.ReactTable .rt-thead.-filters .rt-th{border-right:1px solid rgba(0,0,0,0.02)}.ReactTable .rt-thead.-header{box-shadow:0 2px 15px 0 rgba(0,0,0,0.15)}.ReactTable .rt-thead .rt-tr{text-align:center}.ReactTable .rt-thead .rt-th,.ReactTable .rt-thead .rt-td{padding:5px 5px;line-height:normal;position:relative;border-right:1px solid rgba(0,0,0,0.05);transition:box-shadow .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:inset 0 0 0 0 transparent;}.ReactTable .rt-thead .rt-th.-sort-asc,.ReactTable .rt-thead .rt-td.-sort-asc{box-shadow:inset 0 3px 0 0 rgba(0,0,0,0.6)}.ReactTable .rt-thead .rt-th.-sort-desc,.ReactTable .rt-thead .rt-td.-sort-desc{box-shadow:inset 0 -3px 0 0 rgba(0,0,0,0.6)}.ReactTable .rt-thead .rt-th.-cursor-pointer,.ReactTable .rt-thead .rt-td.-cursor-pointer{cursor:pointer}.ReactTable .rt-thead .rt-th:last-child,.ReactTable .rt-thead .rt-td:last-child{border-right:0}.ReactTable .rt-thead .rt-resizable-header{overflow:visible;}.ReactTable .rt-thead .rt-resizable-header:last-child{overflow:hidden}.ReactTable .rt-thead .rt-resizable-header-content{overflow:hidden;text-overflow:ellipsis}.ReactTable .rt-thead .rt-header-pivot{border-right-color:#f7f7f7}.ReactTable .rt-thead .rt-header-pivot:after,.ReactTable .rt-thead .rt-header-pivot:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.ReactTable .rt-thead .rt-header-pivot:after{border-color:rgba(255,255,255,0);border-left-color:#fff;border-width:8px;margin-top:-8px}.ReactTable .rt-thead .rt-header-pivot:before{border-color:rgba(102,102,102,0);border-left-color:#f7f7f7;border-width:10px;margin-top:-10px}.ReactTable .rt-tbody{-webkit-box-flex:99999;-ms-flex:99999 1 auto;flex:99999 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:auto;}.ReactTable .rt-tbody .rt-tr-group{border-bottom:solid 1px rgba(0,0,0,0.05);}.ReactTable .rt-tbody .rt-tr-group:last-child{border-bottom:0}.ReactTable .rt-tbody .rt-td{border-right:1px solid rgba(0,0,0,0.02);}.ReactTable .rt-tbody .rt-td:last-child{border-right:0}.ReactTable .rt-tbody .rt-expandable{cursor:pointer}.ReactTable .rt-tr-group{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.ReactTable .rt-tr{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ReactTable .rt-th,.ReactTable .rt-td{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;white-space:nowrap;text-overflow:ellipsis;padding:7px 5px;overflow:hidden;transition:.3s ease;transition-property:width,min-width,padding,opacity;}.ReactTable .rt-th.-hidden,.ReactTable .rt-td.-hidden{width:0 !important;min-width:0 !important;padding:0 !important;border:0 !important;opacity:0 !important}.ReactTable .rt-expander{display:inline-block;position:relative;margin:0;color:transparent;margin:0 10px;}.ReactTable .rt-expander:after{content:'';position:absolute;width:0;height:0;top:50%;left:50%;-webkit-transform:translate(-50%,-50%) rotate(-90deg);transform:translate(-50%,-50%) rotate(-90deg);border-left:5.04px solid transparent;border-right:5.04px solid transparent;border-top:7px solid rgba(0,0,0,0.8);transition:all .3s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}.ReactTable .rt-expander.-open:after{-webkit-transform:translate(-50%,-50%) rotate(0);transform:translate(-50%,-50%) rotate(0)}.ReactTable .rt-resizer{display:inline-block;position:absolute;width:36px;top:0;bottom:0;right:-18px;cursor:col-resize;z-index:10}.ReactTable .rt-tfoot{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;box-shadow:0 0 15px 0 rgba(0,0,0,0.15);}.ReactTable .rt-tfoot .rt-td{border-right:1px solid rgba(0,0,0,0.05);}.ReactTable .rt-tfoot .rt-td:last-child{border-right:0}.ReactTable.-striped .rt-tr.-odd{background:rgba(0,0,0,0.03)}.ReactTable.-highlight .rt-tbody .rt-tr:not(.-padRow):hover{background:rgba(0,0,0,0.05)}.ReactTable .-pagination{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:3px;box-shadow:0 0 15px 0 rgba(0,0,0,0.1);border-top:2px solid rgba(0,0,0,0.1);}.ReactTable .-pagination input,.ReactTable .-pagination select{border:1px solid rgba(0,0,0,0.1);background:#fff;padding:5px 7px;font-size:inherit;border-radius:3px;font-weight:normal;outline:none}.ReactTable .-pagination .-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:100%;border:0;border-radius:3px;padding:6px;font-size:1em;color:rgba(0,0,0,0.6);background:rgba(0,0,0,0.1);transition:all .1s ease;cursor:pointer;outline:none;}.ReactTable .-pagination .-btn[disabled]{opacity:.5;cursor:default}.ReactTable .-pagination .-btn:not([disabled]):hover{background:rgba(0,0,0,0.3);color:#fff}.ReactTable .-pagination .-previous,.ReactTable .-pagination .-next{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.ReactTable .-pagination .-center{-webkit-box-flex:1.5;-ms-flex:1.5;flex:1.5;text-align:center;margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.ReactTable .-pagination .-pageInfo{display:inline-block;margin:3px 10px;white-space:nowrap}.ReactTable .-pagination .-pageJump{display:inline-block;}.ReactTable .-pagination .-pageJump input{width:70px;text-align:center}.ReactTable .-pagination .-pageSizeOptions{margin:3px 10px}.ReactTable .rt-noData{display:block;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:rgba(255,255,255,0.8);transition:all .3s ease;z-index:1;pointer-events:none;padding:20px;color:rgba(0,0,0,0.5)}.ReactTable .-loading{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(255,255,255,0.8);transition:all .3s ease;z-index:-1;opacity:0;pointer-events:none;}.ReactTable .-loading > div{position:absolute;display:block;text-align:center;width:100%;top:50%;left:0;font-size:15px;color:rgba(0,0,0,0.6);-webkit-transform:translateY(-52%);transform:translateY(-52%);transition:all .3s cubic-bezier(.25,.46,.45,.94)}.ReactTable .-loading.-active{opacity:1;z-index:2;pointer-events:all;}.ReactTable .-loading.-active > div{-webkit-transform:translateY(50%);transform:translateY(50%)}.ReactTable .rt-resizing .rt-th,.ReactTable .rt-resizing .rt-td{transition:none !important;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@font-face{font-family:KaTeX_AMS;src:url(iodide.master.fonts/KaTeX_AMS-Regular.eot);src:url(iodide.master.fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_AMS-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_AMS-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_AMS-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(iodide.master.fonts/KaTeX_Caligraphic-Bold.eot);src:url(iodide.master.fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Caligraphic-Bold.woff) format('woff'),url(iodide.master.fonts/KaTeX_Caligraphic-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(iodide.master.fonts/KaTeX_Caligraphic-Regular.eot);src:url(iodide.master.fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Caligraphic-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Caligraphic-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(iodide.master.fonts/KaTeX_Fraktur-Bold.eot);src:url(iodide.master.fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Fraktur-Bold.woff) format('woff'),url(iodide.master.fonts/KaTeX_Fraktur-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(iodide.master.fonts/KaTeX_Fraktur-Regular.eot);src:url(iodide.master.fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Fraktur-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Fraktur-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(iodide.master.fonts/KaTeX_Main-Bold.eot);src:url(iodide.master.fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Main-Bold.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Main-Bold.woff) format('woff'),url(iodide.master.fonts/KaTeX_Main-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(iodide.master.fonts/KaTeX_Main-Italic.eot);src:url(iodide.master.fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Main-Italic.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Main-Italic.woff) format('woff'),url(iodide.master.fonts/KaTeX_Main-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(iodide.master.fonts/KaTeX_Main-Regular.eot);src:url(iodide.master.fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Main-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Main-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Main-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(iodide.master.fonts/KaTeX_Math-Italic.eot);src:url(iodide.master.fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Math-Italic.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Math-Italic.woff) format('woff'),url(iodide.master.fonts/KaTeX_Math-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(iodide.master.fonts/KaTeX_SansSerif-Regular.eot);src:url(iodide.master.fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_SansSerif-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_SansSerif-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(iodide.master.fonts/KaTeX_Script-Regular.eot);src:url(iodide.master.fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Script-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Script-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Script-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(iodide.master.fonts/KaTeX_Size1-Regular.eot);src:url(iodide.master.fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Size1-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Size1-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Size1-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(iodide.master.fonts/KaTeX_Size2-Regular.eot);src:url(iodide.master.fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Size2-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Size2-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Size2-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(iodide.master.fonts/KaTeX_Size3-Regular.eot);src:url(iodide.master.fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Size3-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Size3-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Size3-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(iodide.master.fonts/KaTeX_Size4-Regular.eot);src:url(iodide.master.fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Size4-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Size4-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Size4-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(iodide.master.fonts/KaTeX_Typewriter-Regular.eot);src:url(iodide.master.fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'),url(iodide.master.fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'),url(iodide.master.fonts/KaTeX_Typewriter-Regular.woff) format('woff'),url(iodide.master.fonts/KaTeX_Typewriter-Regular.ttf) format('ttf');font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:400 1.21em KaTeX_Main;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .textstyle>.mord+.mop{margin-left:.16667em}.katex .textstyle>.mord+.mbin{margin-left:.22222em}.katex .textstyle>.mord+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.mop,.katex .textstyle>.mop+.mord,.katex .textstyle>.mord+.minner{margin-left:.16667em}.katex .textstyle>.mop+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.minner{margin-left:.16667em}.katex .textstyle>.mbin+.minner,.katex .textstyle>.mbin+.mop,.katex .textstyle>.mbin+.mopen,.katex .textstyle>.mbin+.mord{margin-left:.22222em}.katex .textstyle>.mrel+.minner,.katex .textstyle>.mrel+.mop,.katex .textstyle>.mrel+.mopen,.katex .textstyle>.mrel+.mord{margin-left:.27778em}.katex .textstyle>.mclose+.mop{margin-left:.16667em}.katex .textstyle>.mclose+.mbin{margin-left:.22222em}.katex .textstyle>.mclose+.mrel{margin-left:.27778em}.katex .textstyle>.mclose+.minner,.katex .textstyle>.minner+.mop,.katex .textstyle>.minner+.mord,.katex .textstyle>.mpunct+.mclose,.katex .textstyle>.mpunct+.minner,.katex .textstyle>.mpunct+.mop,.katex .textstyle>.mpunct+.mopen,.katex .textstyle>.mpunct+.mord,.katex .textstyle>.mpunct+.mpunct,.katex .textstyle>.mpunct+.mrel{margin-left:.16667em}.katex .textstyle>.minner+.mbin{margin-left:.22222em}.katex .textstyle>.minner+.mrel{margin-left:.27778em}.katex .mclose+.mop,.katex .minner+.mop,.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.mop,.katex .textstyle>.minner+.minner,.katex .textstyle>.minner+.mopen,.katex .textstyle>.minner+.mpunct{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.enspace{width:.5em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{width:100%}.katex .overline .overline-line:before,.katex .underline .underline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after,.katex .underline .underline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right}html, body { - font-family: 'Open Sans', sans-serif; - height: 100%; - margin: 0; - padding: 0; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; - overflow: hidden; - position: relative; -} - -div#page { - height: 100%; - overflow: hidden; -} - -div#notebook-container { - height: 100%; - width: 100%; - display: flex; - flex-direction: column; -} - -div#notebook-container.presentation-mode { - display: block; - overflow-y: auto; -} - -div#cells.editor { - position: fixed; - top: 50px; /*move down by .notebook-toolbar-container height*/ - left: 0px; - box-sizing: border-box; - height: calc(100% - 50px); /*subtract off .notebook-toolbar-container height*/ - width: 100%; - overflow-y: auto; - padding-top: 20px; - padding-left: 40px; - padding-right: 40px; - padding-bottom: 60px; -} - -div#cells.presentation { - position: inherit; - height: inherit; -} - -/************************************************/ -/* cell output styles */ - -.rep-container { - overflow-x: auto; -} - -.array-rep { - overflow-x: auto; -} - -.data-set-info { - color: #888; - font-style: italic; - font-size: 12px; - padding-top: 4px; - padding-bottom: 4px; -} - -div.error-output { -background: #fff1f4; -padding: 5px; -color: #a41c1c; -overflow-x: auto; -} - -div.promise-handler-state { - display:flex; - font-size:12px; - padding: 5px; - width: 180px; - background-color:#f9f9f9; - border: 1px solid #f1f1f1; - margin-top:2px; -} - -div.promise-handler-label { - width: 80px; - padding-left:5px; - font-weight:900; - text-transform:uppercase; -} - -div.promise-handler-status { - width:100px; - padding-left:5px; - text-align:center; - font-style:italic; - color: rgb(40,40,40) -} - -div.promise-handler-value { - margin-top:6px; -} - -.undefined-rep, .null-rep { - display: inline-block; -} - -/************************************************/ -/* header bar styles */ - -.notebook-toolbar-container { - background-color: black; - height: 50px -} - -.notebook-toolbar { - height:50px; - display: flex; - position: relative; - min-height: 56px; - align-items: center; - min-height:50px !important; -} - -div.editor-mode-controls { - width: 300px; -} - -div.view-controls { - width: 375px; - display:flex; - align-items:center; -} - -div.title-field { - width: calc( 100% - 260px - 300px ); -} - -div.title-field-contents { - display: flex; - width: 100%; -} - -.last-saved-text { - font-size: 11px; - color: lightgray; - font-style: italic; - width: 125px; - text-align: right; -} - -@media (max-width:1100px) { - - .last-saved-text { - display:none !important; - } - - div.view-controls { - width:200px; - } - - div.title-field { - width: calc( 100% - 260px - 200px) - } -} - -div.display-title { - color: white; - width: 100%; - text-align: center; -} - -div.display-title span { - padding-left: 15px; - padding-right: 15px; -} - -div.display-title span:after { - content: '\25BC'; - color: red; - padding-left: 5px -} - -input.page-title { - font-family: 'Open Sans'; - font-size: 14px; - border: none; - outline: none; - width:100%; - margin: auto; - text-align: center; - color: white; - background-color: black; -} - -input.page-title:focus { - font-size: 20px -} - -input.page-title.unrendered-title { - color: lightgray; -} - -h1.page-title span { - font-weight: 300; - font-size: 16px; -} - -div.notebook-actions { - display: flex; - justify-content: space-between; - padding: 3px -} - -div.cell-controls { - display: flex; - padding: 3px; - background-color: #fff; - justify-content: space-between -} - -div.page-mode { - margin-left: 10px; - color: #999; - font-size: 12px; - padding: 2px; - width: 150px; - display: flex -} - - - -/************************************************/ -/* et cetera styles */ - -div.iodide-tooltip { - font-size: 0.900rem; -} - -.katex-html { - display: none; -} - -.dependency-output { - padding-top: 10px; -} - -.dependency-container { - margin-bottom: 6px; -} - -.dependency-src { - font-size:13px; - margin: 3px 10px 3px 8px; - -} - -.dependency-src a { - color: black; - font-weight:normal -} - -.dependency-src a:hover { - text-decoration: underline -} -.dependency-status-explanation { - margin-left: 35px; - font-size: 11px; - color: red; - margin-top: -5px; -} - -.dependency-status-explanation:before { -} - -code { - padding: 0.2em 0.4em; - margin: 0; - background-color: rgba(27, 31, 35, 0.05); - border-radius: 3px; -} -.side-pane { - width:auto !important; - top: 50px !important; - border: none !important; - border-left: 2px solid lightgray !important; -} - -.pane-header { - position: sticky; - top: 0; - z-index: 10; - background: #fff; - padding-top: 1px; -} - -.pane-title { - margin: 5px; - margin-right: 0px; - display: flex; - justify-content: space-between; -} - -.pane-title h1 { - margin-top: 10px; - margin-left: 10px; -} - -.pane-title .menu-button { - width: 24px; - height: 24px; - padding-bottom:0px -} - -.pane-title .menu-button:hover { - outline: none; -} - -div.history-cells { - padding-left: 20px; - padding-right: 20px; -} - -div.history-cell { - width: inherit -} - -div.history-cells .CodeMirror { - height: auto; -} - -div.history-cells div.cell-container { - padding-right:0px; -} - -pre.history-item-code { - overflow: scroll; - padding:3px; -} - - - -div.history-content { - outline: 1px solid #f1f1f1; - width: calc(100% - 1px) -} - -div.history-date { - padding-left: 33px; - margin-top: 8px; - margin-bottom: 8px; - font-size: 12px; - color: gray; -} - -div.no-history { - font-size: 20px; - font-weight: bold; - color: lightgray; - margin-top: 60px; - margin-left: 30px; -} - -div.side-pane { - z-index: 200; - position: fixed; - right: 0; - top: 40px; - border: 2px solid gray; - border-right: none; - width: 75%; - overflow: auto; - height: 100%; - background-color: rgba(255, 255, 255); -} - -i.close-side-pane:hover { - outline: 1px solid lightgray; -} - -div.frozen-variables { - display: grid; - grid-template-columns: minmax(100px, min-content) 100px; - grid-column-gap: 0px; -} - -div.frozen-variable-name { - border: 1px solid #f1f1f1; - background: #f9f9f9; - font-family: monospace; - padding-left:5px; - padding-right:20px; - overflow-wrap: break-word; - max-width: calc(100% - 25px); -} - -div.frozen-variable-value { - border: 1px solid #f1f1f1; - background: #f9f9f9; - font-family: monospace; - color:gray; - justify-self: end; - white-space: pre; - padding-left:5px; - padding-right:5px; - width: 100%; -} - -div.declared-variables-list { -padding: 15px; -} - -div.declared-variable { - padding-bottom: 15px; -} - -div.declared-variable-name { - font-size: 14px; - font-family: monospace; - background: #f9f9f9; - border: 1px solid #f1f1f1; - padding: 1px 10px; - color: #000; -} - -div.declared-variable-value { - padding-left: 20px; -} - -div.app-info-message { - padding-left: 20px; - padding-right: 10px; - padding-top: 20px; -} - -div.app-message-when { - font-style:italic; - color:gray; - font-size:12px; -} -.medium-menu { - display: flex !important; - justify-content: space-between; - flex-flow: row wrap; - max-height:32px !important; -} - -.iodide-menu-item { - max-height:32px !important; - line-height:32px !important; - padding-top: 5px !important; - padding-bottom: 5px !important; -} - -.iodide-menu-divider { - margin-top: 6px !important; - margin-bottom: 6px !important; -} - -.secondary-menu-item { - text-align:right; - padding:0px !important; - padding-left:16px !important; -} - -.medium-menu div div { - display: flex !important; - float: none !important; - justify-content: space-between; - flex-flow: row wrap; -} - -.medium-menu div div div:first-child { - order: 1; - width: 20px; - justify-content: flex-end; - font-size: 12px; - - display: block; -} - -.menu-button { - color: #fafafa; - width: 40px !important; - height:40px !important; -} - -.menu-button:hover { - outline: 1px solid #fafafa -} - -.view-mode-toggle-from-presentation { - position: fixed; - right: 20px; - top: 10px; - z-index:100; -} - -.user-avatar { - height: 24px; - border-radius: 50%; -} -/* cell and cell container styles*/ - -div.cell-container { - padding-top: 5px; - padding-bottom: 5px; - padding-right: 5px; - padding-left: 5px; - margin-top: 15px; - margin-bottom: 15px; - outline: #f4f4f4 1px solid; - width: calc(100%); - /* put the .cell-menu-container and .cell-row-container in a row */ - display: flex; - flex-direction: row; -} - -/* These may need to be integrated into the presentation mode style sheets -but I don't see why we would have to do this immediately. -*/ - -div#cells.editor div.raw-dom-element { - overflow-x: scroll -} - -div#cells.presentation div.cell-container { - margin: 0 auto; - outline: none; - padding: 0px; -} - -div#cells.presentation .collapse-button { - display: none; - height: 0px -} - -div#cells.presentation div.cell-row.HIDDEN { - display: none; -} - -div#cells.presentation div.cell-menu-container { - display: none; - height: 0px; - width: 0px !important; -} - -div#cells.presentation div.cell-row.input { - padding:0px; -} - -.cell-menu-container { - width: 76px; - font-size:12px; - flex-shrink: 0; - flex-grow: 0; -} - -.cell-type-label { - text-align: right; - color: hsl(275, 12%, 75%); - cursor: pointer; - height: 18px; - border: 1px solid rgba(0,0,0,0); - display: flex; - align-items: center; - justify-content: flex-end; -} -.cell-type-label:hover { - background: #fbfbfb; - border: 1px solid #ddd; - color: hsl(275, 4%, 40%); -} - -.cell-status-indicators { - text-align: right; - padding-right: 6px; - color: hsla(275, 4%, 51%, 1); -} - -.warning-pill { - background-color: hsla(53, 80%, 86%, 1); - color: hsl(53, 35%, 48%); - height: 18px; - padding: 0 6px; - border: 1px solid hsla(53, 94%, 83%, 1); - border-radius: 3px; - display: inline-block; -} - -.cell-status-icons { - text-align: right; - padding: 0px 6px 0px 0px; -} - -.cell-status-icons svg { - fill: hsl(275, 12%, 75%); -} - - -div.cell-row-container { - width: calc(100% - 76px); /* 100% minus cell-menu-contatiner width*/ - flex-shrink: 0; - flex-grow: 0; -} - -div.cell-row { - display: flex; - padding: 1px; -} - -div#cells.editor div.cell-container.markdown div.cell-row.output { - overflow-x:hidden; -} - -div.collapse-button { - margin-right: 5px; - margin-left: 3px; - width: 18px; - flex-shrink: 0; - flex-grow: 0; -} - -div.collapse-button:hover { - background: #fbfbfb; - outline: 1px solid #ddd; - cursor: pointer; -} - -div.HIDDEN div.collapse-button-tooltip-wrapper { - width: calc(100% - 3px); /* 100% minus a .collapse-button width margin-right*/ - -} - -div.HIDDEN div.collapse-button { - width: calc(100% - 3px); - /* when collapsed, make the button visible*/ - background: #fdfdfd; - outline: 1px solid #ddd; - cursor: pointer; - height: 20px; -} - -div.main-component { - width: calc(100% - 25px); /* 100% minus .collapse-button width (including margins) */ - flex-shrink: 0; - flex-grow: 0; -} - -div.input div.main-component { - outline: 1px solid #f1f1f1; -} - -div.markdown div.input div.main-component { - outline: none; -} - - - -div.HIDDEN div.main-component { - height: 18px; - flex-shrink: 1; - flex-basis: 0px; - flex-grow: 0; - overflow: hidden; - outline: none; -} - - -div.selected-cell.editing-cell div.input div.main-component { - outline: 1px solid #bbb; -} -div.selected-cell.editing-cell { - outline: 1px solid #bbb; -} - -div.selected-cell { - outline: 2px solid #ccc; -} - -div.CodeMirror { - background: #f9f9f9; -} - -div.CodeMirror-gutters { - background: #fff; -} - -div.VISIBLE div.main-component div.CodeMirror { - height: auto -} - -div.SCROLL div.main-component div.CodeMirror { - height: auto; -} - -div.SCROLL div.main-component div.CodeMirror div.CodeMirror-scroll { - max-height: 300px; -} - -div.SCROLL.output .main-component { - max-height: 300px; - outline: 1px solid #ddd; - overflow-y: scroll; -} - - - -/* FIX ME i think this style is never used, double check it*/ -div.hidden-cell { - display: none; -} - -.cm-s-eclipse .CodeMirror-matchingbracket { - outline: 1px dotted #000; -} - - -.dependency-row { - display: flex; - align-items: center; -} - -.dependency-row a { - color: #337ab7; - text-decoration: none; - cursor: pointer; -} - -.dependency-row a:hover, -.dependency-row a:focus { - color: #23527c; - text-decoration: underline; -}/* - DEFAULT PRESENTATION - -loosely based on https://github.com/sindresorhus/github-markdown-css - -The default presentation stylesheet is about as vanilla as you can get for a report. - -We define the maximum width for all block-level elements to be 800px by default, -and allow some methods of breaking that convention when necessary (for instance, -when a user has a full-screen graphic they want to display). - -*/ - -.user-markdown { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - color: #24292e; - font-family: -apple-system, BlinkMacSystemFont, "Open Sans", "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 16px; - line-height: 1.62; - word-wrap: break-word; -} - -/* this resets the div.cell-row-container to not have a margin for collapse + cell label buttons, -which is an additiona 50px. -*/ -div#cells.presentation div.cell-row-container { - width: 100%; -} - -/* in the editor view, there is 24px less room for the collapse-button. Let's get it back. */ -div#cells.presentation div.main-component { - width: 100%; -} - - -/* which side-effects are shown in the report view*/ -div#cells.presentation .side-effect-target { - max-width:800px; - margin: auto; -} - -div#cells.presentation div.side-effect-target div.hide-side-effect { - display: none; -} - - /* div#cells.presentation { - padding-top:30px; -} */ - -#cells.presentation .cell-container:first-child { - padding-top:30px; -} - - #cells.presentation .cell-container:last-child { - margin-bottom:60px; -} - -#cells.presentation .user-markdown { - padding-bottom: 10px; -} - - - -/* establish block-level elements to be a certain width. This -lets us create full width divs using css if necessary, while still -retaining the narrower column view for readability and flow. -*/ - -.user-markdown p, -.user-markdown h1, -.user-markdown h2, -.user-markdown h3, -.user-markdown h4, -.user-markdown h5, -.user-markdown h6, -.user-markdown ol, -.user-markdown ul, -.user-markdown pre, -.user-markdown address, -.user-markdown blockquote, -.user-markdown dl, -.user-markdown div, -.user-markdown fieldset, -.user-markdown form, -.user-markdown hr, -.user-markdown noscript, -.user-markdown table { - max-width:800px; - margin: auto; -} - -div#cells.editor .user-markdown p, -div#cells.editor .user-markdown h1, -div#cells.editor .user-markdown h2, -div#cells.editor .user-markdown h3, -div#cells.editor .user-markdown h4, -div#cells.editor .user-markdown h5, -div#cells.editor .user-markdown h6, -div#cells.editor .user-markdown ol, -div#cells.editor .user-markdown ul, -div#cells.editor .user-markdown pre, -div#cells.editor .user-markdown address, -div#cells.editor .user-markdown blockquote, -div#cells.editor .user-markdown dl, -div#cells.editor .user-markdown div, -div#cells.editor .user-markdown fieldset, -div#cells.editor .user-markdown form, -div#cells.editor .user-markdown hr, -div#cells.editor .user-markdown noscript, -div#cells.editor .user-markdown table { - margin-left: 0px; /* aligned with the */ -} - - -/* establish block-level elements to be a certain width */ - -@media (max-width:800px) { - .user-markdown p, - .user-markdown h1, - .user-markdown h2, - .user-markdown h3, - .user-markdown h4, - .user-markdown h5, - .user-markdown h6, - .user-markdown ol, - .user-markdown ul, - .user-markdown pre, - .user-markdown address, - .user-markdown blockquote, - .user-markdown dl, - .user-markdown div, - .user-markdown fieldset, - .user-markdown form, - .user-markdown hr, - .user-markdown noscript, - .user-markdown table { - max-width: calc(100% - 50px); - } -} - - -.user-markdown a { - background-color: transparent; -} - -.user-markdown a:active, -.user-markdown a:hover { - outline-width: 0; -} - -.user-markdown strong { - font-weight: inherit; -} - -.user-markdown strong { - font-weight: bolder; -} - -.user-markdown img { - border-style: none; -} - -.user-markdown code, -.user-markdown kbd, -.user-markdown pre { - font-family: monospace, monospace; - font-size: 1em; -} - -.user-markdown hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -.user-markdown input { - font: inherit; - margin: 0; -} - -.user-markdown input { - overflow: visible; -} - -.user-markdown [type="checkbox"] { - box-sizing: border-box; - padding: 0; -} - -.user-markdown * { - box-sizing: border-box; -} - -.user-markdown input { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.user-markdown a { - color: #0366d6; - text-decoration: none; -} - -.user-markdown a:hover { - text-decoration: underline; -} - -.user-markdown strong { - font-weight: 600; -} - -.user-markdown hr { - height: 0; - margin-top:15px; - margin-bottom:15px; - overflow: hidden; - background: transparent; - border: 0; - border-bottom: 1px solid #dfe2e5; -} - -.user-markdown hr::before { - display: table; - content: ""; -} - -.user-markdown hr::after { - display: table; - clear: both; - content: ""; -} - -.user-markdown table { - border-spacing: 0; - border-collapse: collapse; -} - -.user-markdown td, -.user-markdown th { - padding: 0; -} - -.user-markdown h1, -.user-markdown h2, -.user-markdown h3, -.user-markdown h4, -.user-markdown h5, -.user-markdown h6 { - margin-top: 0; - margin-bottom: 0; -} - -.user-markdown h1 { - font-size: 36px; - font-weight: 300; - margin-top:20px; -} - -.user-markdown h2 { - font-size: 24px; - font-weight: 900; -} - -.user-markdown h3 { - font-size: 20px; - font-weight: 600; -} - -.user-markdown h4 { - font-size: 16px; - font-weight: 600; -} - -.user-markdown h5 { - font-size: 14px; - font-weight: 600; -} - -.user-markdown h6 { - font-size: 12px; - font-weight: 600; -} - -.user-markdown p { - margin-top: 0; - margin-bottom: 10px; -} - -.user-markdown div+p { - margin-top:10px; /* add a bit of padding if there is a div in this markdown. */ -} - -.user-markdown - -.user-markdown ul, -.user-markdown ol { - padding-left: 0; - margin-top: 0; - margin-bottom: 0; -} - -.user-markdown ol ol, -.user-markdown ul ol { - list-style-type: lower-roman; -} - -.user-markdown ul ul ol, -.user-markdown ul ol ol, -.user-markdown ol ul ol, -.user-markdown ol ol ol { - list-style-type: lower-alpha; -} - -.user-markdown dd { - margin-left: 0; -} - -.user-markdown code { - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; -} - -.user-markdown pre { - margin-top: 0; - margin-bottom: 0; - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 12px; -} - -.user-markdown::before { - display: table; - content: ""; -} - -.user-markdown::after { - display: table; - clear: both; - content: ""; -} - -.user-markdown>*:first-child { - margin-top: 0 !important; -} - -.user-markdown>*:last-child { - margin-bottom: 0 !important; -} - -.user-markdown a:not([href]) { - color: inherit; - text-decoration: none; -} - -.user-markdown .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -.user-markdown .anchor:focus { - outline: none; -} - -.user-markdown p, -.user-markdown blockquote, -.user-markdown ul, -.user-markdown ol, -.user-markdown dl, -.user-markdown table, -.user-markdown pre { - margin-top: 0; - margin-bottom: 16px; -} - -.user-markdown hr { - height: 0.1em; - padding: 0; - background-color: #e1e4e8; - border: 0; -} - -.user-markdown blockquote { - padding: 0 1em; - color: #6a737d; - border-left: 0.15em solid #dfe2e5; -} - -.user-markdown blockquote>:first-child { - margin-top: 0; -} - -.user-markdown blockquote>:last-child { - margin-bottom: 0; -} - -.user-markdown kbd { - display: inline-block; - padding: 3px 5px; - font-size: 11px; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; -} - -.user-markdown h1, -.user-markdown h2, -.user-markdown h3, -.user-markdown h4, -.user-markdown h5, -.user-markdown h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; -} - -.user-markdown h1:hover .anchor, -.user-markdown h2:hover .anchor, -.user-markdown h3:hover .anchor, -.user-markdown h4:hover .anchor, -.user-markdown h5:hover .anchor, -.user-markdown h6:hover .anchor { - text-decoration: none; -} - -.user-markdown h1 { - padding-bottom: 0.4em; - font-size: 2.3em; - font-weight: 300; -} - -.user-markdown h2 { - padding-bottom: 0.3em; - font-size: 1.5em; - font-weight: 300; - -} - -.user-markdown h3 { - font-size: 1.25em; -} - -.user-markdown h4 { - font-size: 1em; -} - -.user-markdown h5 { - font-size: 0.875em; -} - -.user-markdown h6 { - font-size: 0.85em; - color: #6a737d; -} - -.user-markdown ul, -.user-markdown ol { - padding-left: 2em; -} - -.user-markdown ul ul, -.user-markdown ul ol, -.user-markdown ol ol, -.user-markdown ol ul { - margin-top: 0; - margin-bottom: 0; -} - -.user-markdown li { - word-wrap: break-all; -} - -.user-markdown li>p { - margin-top: 16px; -} - -.user-markdown li+li { - margin-top: 0.25em; -} - -.user-markdown dl { - padding: 0; -} - -.user-markdown dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; -} - -.user-markdown dl dd { - padding: 0 16px; - margin-bottom: 16px; -} - -.user-markdown table { - display: block; - width: 100%; - overflow: auto; -} - -.user-markdown table th { - font-weight: 600; -} - -.user-markdown table th, -.user-markdown table td { - padding: 6px 13px; - border: 1px solid #dfe2e5; -} - -.user-markdown table tr { - background-color: #fff; - border-top: 1px solid #c6cbd1; -} - -.user-markdown table tr:nth-child(2n) { - background-color: #f6f8fa; -} - -.user-markdown img { - max-width: 100%; - box-sizing: content-box; - background-color: #fff; -} - -.user-markdown img[align=right] { - padding-left: 20px; -} - -.user-markdown img[align=left] { - padding-right: 20px; -} - -.user-markdown code { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - background-color: rgba(27,31,35,0.05); - border-radius: 3px; -} - -.user-markdown pre { - word-wrap: normal; -} - -.user-markdown pre>code { - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -.user-markdown .highlight { - margin-bottom: 16px; -} - -.user-markdown .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -.user-markdown .highlight pre, -.user-markdown pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - background-color: #f6f8fa; - border-radius: 3px; -} - -.user-markdown pre code { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -.user-markdown .full-commit .btn-outline:not(:disabled):hover { - color: #005cc5; - border-color: #005cc5; -} - -.user-markdown kbd { - display: inline-block; - padding: 3px 5px; - font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - line-height: 10px; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #d1d5da; - border-bottom-color: #c6cbd1; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #c6cbd1; -} - -.user-markdown :checked+.radio-label { - position: relative; - z-index: 1; - border-color: #0366d6; -} - -.user-markdown .task-list-item { - list-style-type: none; -} - -.user-markdown .task-list-item+.task-list-item { - margin-top: 3px; -} - -.user-markdown .task-list-item input { - margin: 0 0.2em 0.25em -1.6em; - vertical-align: middle; -} - -.user-markdown hr { - border-bottom-color: #eee; -} - -/*# sourceMappingURL=iodide.master.css.map*/ \ No newline at end of file diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.xml deleted file mode 100644 index 302deaed7d5..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.css.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - iodide_master.css - - - content_type - text/css - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.js.js deleted file mode 100644 index 0296077a9fe..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/iodide_master.js.js +++ /dev/null @@ -1,121 +0,0 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=330)}([function(e,t,n){"use strict";(function(t){"production"===t.env.NODE_ENV?e.exports=n(331):e.exports=n(332)}).call(t,n(2))},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=n(334)(function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},!0)}else e.exports=n(335)()}).call(t,n(2))},function(e,t){var n,r,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var l,u=[],c=!1,f=-1;function d(){c&&l&&(c=!1,l.length?u=l.concat(u):f=-1,u.length&&p())}function p(){if(!c){var e=s(d);c=!0;for(var t=u.length;t;){for(l=u,u=[];++f1)for(var n=1;n=0||(i[n]=e[n]);if(r){var l=r(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){var r=n(383);function o(){return e.exports=o=r||function(e){for(var t=1;t=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function i(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,c=n(277);var f=/[&<>"]/,d=/[&<>"]/g,p={"&":"&","<":"<",">":">",'"':"""};function h(e){return p[e]}var m=/[.?*+^$[\]\\(){}|-]/g;var v=n(185);t.lib={},t.lib.mdurl=n(278),t.lib.ucmicro=n(590),t.assign=function(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=o,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,function(e,t,n){return t||function(e,t){var n=0;return o(c,t)?c[t]:35===t.charCodeAt(0)&&u.test(t)&&a(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?i(n):e}(e,n)})},t.isValidEntityCode=a,t.fromCodePoint=i,t.escapeHtml=function(e){return f.test(e)?e.replace(d,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return v.test(e)},t.escapeRE=function(e){return e.replace(m,"\\$&")},t.normalizeReference=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){var r; -/*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/*! - Copyright (c) 2016 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t1&&void 0!==arguments[1]?arguments[1]:{};return function(r){var o=n.withTheme,v=void 0!==o&&o,_=n.flip,S=void 0===_?null:_,P=n.name,F=(0,h.default)(n,["withTheme","flip","name"]),z=(0,N.default)(t),U=z.themingEnabled||v||"string"==typeof P;j+=1,z.options.index=j,"production"!==e.env.NODE_ENV&&(0,b.default)(j<0,["Material-UI: you might have a memory leak.","The indexCounter is not supposed to grow that much."].join(" "));var B=function(t){function n(e,t){var r;(0,u.default)(this,n),r=(0,f.default)(this,(n.__proto__||(0,l.default)(n)).call(this,e,t)),Object.defineProperty((0,p.default)(r),"state",{configurable:!0,enumerable:!0,writable:!0,value:{}}),Object.defineProperty((0,p.default)(r),"disableStylesGeneration",{configurable:!0,enumerable:!0,writable:!0,value:!1}),Object.defineProperty((0,p.default)(r),"jss",{configurable:!0,enumerable:!0,writable:!0,value:null}),Object.defineProperty((0,p.default)(r),"sheetOptions",{configurable:!0,enumerable:!0,writable:!0,value:null}),Object.defineProperty((0,p.default)(r),"sheetsManager",{configurable:!0,enumerable:!0,writable:!0,value:D}),Object.defineProperty((0,p.default)(r),"stylesCreatorSaved",{configurable:!0,enumerable:!0,writable:!0,value:null}),Object.defineProperty((0,p.default)(r),"theme",{configurable:!0,enumerable:!0,writable:!0,value:null}),Object.defineProperty((0,p.default)(r),"unsubscribeId",{configurable:!0,enumerable:!0,writable:!0,value:null}),r.jss=r.context[C.jss]||A;var o=r.context.muiThemeProviderOptions;return o&&(o.sheetsManager&&(r.sheetsManager=o.sheetsManager),r.disableStylesGeneration=o.disableStylesGeneration),r.stylesCreatorSaved=z,r.sheetOptions=(0,s.default)({generateClassName:R},r.context[C.sheetOptions]),r.theme=U?T.default.initial(t)||I||(I=(0,O.default)()):L,r.attach(r.theme),r.cacheClasses={value:null,lastProp:null,lastJSS:{}},r}return(0,d.default)(n,t),(0,c.default)(n,[{key:"componentDidMount",value:function(){var e=this;U&&(this.unsubscribeId=T.default.subscribe(this.context,function(t){var n=e.theme;e.theme=t,e.attach(e.theme),e.setState({},function(){e.detach(n)})}))}},{key:"componentDidUpdate",value:function(){this.stylesCreatorSaved!==z&&"production"!==e.env.NODE_ENV&&(this.detach(this.theme),this.stylesCreatorSaved=z,this.attach(this.theme),this.forceUpdate())}},{key:"componentWillUnmount",value:function(){this.detach(this.theme),null!==this.unsubscribeId&&T.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"getClasses",value:function(){var t=this,n=!1;if(!this.disableStylesGeneration){var o=this.sheetsManager.get(this.stylesCreatorSaved).get(this.theme);o.sheet.classes!==this.cacheClasses.lastJSS&&(this.cacheClasses.lastJSS=o.sheet.classes,n=!0)}return this.props.classes!==this.cacheClasses.lastProp&&(this.cacheClasses.lastProp=this.props.classes,n=!0),n&&(this.props.classes?this.cacheClasses.value=(0,s.default)({},this.cacheClasses.lastJSS,(0,i.default)(this.props.classes).reduce(function(n,o){return"production"!==e.env.NODE_ENV&&(0,b.default)(t.cacheClasses.lastJSS[o]||t.disableStylesGeneration,["Material-UI: the key `".concat(o,"` ")+"provided to the classes property is not implemented in ".concat((0,w.default)(r),"."),"You can only override one of the following: ".concat((0,i.default)(t.cacheClasses.lastJSS).join(","))].join("\n")),"production"!==e.env.NODE_ENV&&(0,b.default)(!t.props.classes[o]||"string"==typeof t.props.classes[o],["Material-UI: the key `".concat(o,"` ")+"provided to the classes property is not valid for ".concat((0,w.default)(r),"."),"You need to provide a non empty string instead of: ".concat(t.props.classes[o],".")].join("\n")),t.props.classes[o]&&(n[o]="".concat(t.cacheClasses.lastJSS[o]," ").concat(t.props.classes[o])),n},{})):this.cacheClasses.value=this.cacheClasses.lastJSS),this.cacheClasses.value}},{key:"attach",value:function(t){if(!this.disableStylesGeneration){var n=this.stylesCreatorSaved,o=this.sheetsManager.get(n);o||(o=new m.default,this.sheetsManager.set(n,o));var a=o.get(t);if(a||(a={refs:0,sheet:null},o.set(t,a)),0===a.refs){var i=n.create(t,P),l=P;"production"===e.env.NODE_ENV||l||(l=(0,w.default)(r));var u=this.jss.createStyleSheet(i,(0,s.default)({meta:l,classNamePrefix:l,flip:"boolean"==typeof S?S:"rtl"===t.direction,link:!1},this.sheetOptions,n.options,{name:P},F));a.sheet=u,u.attach();var c=this.context[C.sheetsRegistry];c&&c.add(u)}a.refs+=1}}},{key:"detach",value:function(e){if(!this.disableStylesGeneration){var t=this.stylesCreatorSaved,n=this.sheetsManager.get(t),r=n.get(e);if(r.refs-=1,0===r.refs){n.delete(e),this.jss.removeStyleSheet(r.sheet);var o=this.context[C.sheetsRegistry];o&&o.remove(r.sheet)}}}},{key:"render",value:function(){var e=this.props,t=(e.classes,e.innerRef),n=(0,h.default)(e,["classes","innerRef"]),o=(0,M.default)({theme:this.theme,name:P});return v&&(o.theme=this.theme),g.default.createElement(r,(0,a.default)({},o,{classes:this.getClasses(),ref:t},n))}}]),n}(g.default.Component);return B.propTypes="production"!==e.env.NODE_ENV?{classes:y.default.object,innerRef:y.default.oneOfType([y.default.func,y.default.object])}:{},B.contextTypes=(0,s.default)({muiThemeProviderOptions:y.default.object},k.default,U?T.default.contextTypes:{}),"production"!==e.env.NODE_ENV&&(B.displayName=(0,E.default)(r,"WithStyles")),(0,x.default)(B,r),"production"!==e.env.NODE_ENV&&(B.Naked=r,B.options=n),B}};t.default=F}).call(t,n(2))},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(151);function o(e,t){for(var n=0;n2?r-2:0);for(var o=2;oa.a.dispatch(i[e](...t))));const c=window.navigator.oscpu||window.navigator.platform;let f="Unknown OS";-1!==c.indexOf("Win")&&(f="Windows"),-1!==c.indexOf("Mac")&&(f="MacOS"),-1!==c.indexOf("X11")&&(f="UNIX"),-1!==c.indexOf("Linux")&&(f="Linux");const d=()=>"MacOS"===f?"⌘":"Ctrl",p={};p.evaluateCell=new r.a({title:"Run Cell",keybindings:["mod+enter"],callback(){u.changeMode("command"),u.saveNotebook(!0),u.evaluateCell()}}),p.evaluateAllCells=new r.a({title:"Run All Cells",menuTitle:"Run All Cells",callback(){u.saveNotebook(!0),u.evaluateAllCells(Object(s.e)(),a.a)}}),p.evaluateCellAndSelectBelow=new r.a({title:"Evaluate Cell and Select Below",keybindings:["shift+enter"],keybindingPrecondition:s.h,callback(){u.changeMode("command"),u.saveNotebook(!0),u.evaluateCell();const e=Object(s.c)();null!==e?u.selectCell(e,!0):(u.addCell("code"),u.selectCell(Object(s.c)(),!0))}}),p.moveCellUp=new r.a({title:"Move Cell Up",displayKeybinding:"Shift+Up",keybindings:["shift+up"],keybindingPrecondition:s.f,preventDefaultKeybinding:!0,callback(){u.cellUp()}}),p.moveCellDown=new r.a({title:"Move Cell Down",displayKeybinding:"Shift+Down",keybindings:["shift+down"],keybindingPrecondition:s.f,preventDefaultKeybinding:!0,callback(){u.cellDown()}}),p.loginGithub=new r.a({title:"Login using GitHub",callback(){u.login()}}),p.logoutGithub=new r.a({title:"Logout",callback(){u.logout()}}),p.exportGist=new r.a({title:"Export Gist",callback(){u.exportGist()}}),p.selectUp=new r.a({title:"Select Cell Above",displayKeybinding:"Up",keybindings:["up"],keybindingPrecondition:s.f,preventDefaultKeybinding:!0,callback(){const e=Object(s.b)();null!==e&&u.selectCell(e,!0)}}),p.selectDown=new r.a({title:"Select Cell Down",displayKeybinding:"Down",keybindings:["down"],keybindingPrecondition:s.f,preventDefaultKeybinding:!0,callback(){const e=Object(s.c)();null!==e&&u.selectCell(e,!0)}}),p.addCellAbove=new r.a({title:"Add Cell Above",keybindings:["a"],displayKeybinding:"A",keybindingPrecondition:s.f,callback(){u.insertCell("code","above"),u.selectCell(Object(s.b)(),!0)}}),p.addCellBelow=new r.a({title:"Add Cell Below",keybindings:["b"],displayKeybinding:"B",keybindingPrecondition:s.f,callback(){u.insertCell("code","below"),u.selectCell(Object(s.c)(),!0)}}),p.deleteCell=new r.a({title:"Delete Cell",keybindings:["shift+backspace"],displayKeybinding:"Shift+Backspace",keybindingPrecondition:s.f,callback(){u.deleteCell()}}),p.changeToJavascriptCell=new r.a({title:"Change to Javascript",keybindings:["j"],displayKeybinding:"J",keybindingPrecondition:s.f,callback(){u.changeCellType("code","js")}}),p.changeToMarkdownCell=new r.a({title:"Change to Markdown",keybindings:["m"],displayKeybinding:"M",keybindingPrecondition:s.f,callback(){u.changeCellType("markdown")}}),p.changeToExternalResourceCell=new r.a({title:"Change to External Resource",keybindings:["e"],displayKeybinding:"E",keybindingPrecondition:s.f,callback(){u.changeCellType("external dependencies")}}),p.changeToRawCell=new r.a({title:"Change to Raw",keybindings:["r"],displayKeybinding:"R",keybindingPrecondition:s.f,callback(){u.changeCellType("raw")}}),p.changeToCSSCell=new r.a({title:"Change to CSS",keybindings:["c"],displayKeybinding:"C",keybindingPrecondition:s.f,callback(){u.changeCellType("css")}}),p.changeToPluginCell=new r.a({title:"Change to Plugin Loader",keybindings:["l"],displayKeybinding:"L",keybindingPrecondition:s.f,callback(){u.changeCellType("plugin")}}),p.toggleSkipCellInRunAll=new r.a({title:"Toggle Skipping Cell in Run All",keybindings:["s"],displayKeybinding:"S",keybindingPrecondition:s.f,callback(){u.setCellSkipInRunAll()}}),p.changeMode=new r.a({title:"Change Mode",callback(e){u.changeMode(e)}}),p.changeToMenuMode=new r.a({title:"Change to Menu Mode",callback(){u.changeMode("title-edit")}}),p.changeToEditMode=new r.a({title:"Change to Edit Mode",keybindings:["enter","return"],displayKeybinding:"Enter",keybindingPrecondition:s.f,preventDefaultKeybinding:!0,callback(){u.changeMode("edit")}}),p.changeToCommandMode=new r.a({title:"Change to Command Mode",keybindings:["esc"],preventDefaultKeybinding:!0,callback(){u.changeMode("command")}}),p.changeTitle=new r.a({title:"Change Title",callback(e){u.changePageTitle(e)}}),p.createNewNotebook=new r.a({title:"New Notebook",preventDefaultKeybinding:!0,callback(){u.newNotebook()}}),p.saveNotebook=new r.a({title:"Save Notebook",keybindings:["ctrl+s","meta+s"],displayKeybinding:`${d()}+S`,preventDefaultKeybinding:!0,callback(){u.saveNotebook()}}),p.exportNotebook=new r.a({title:"Export Notebook",keybindings:["ctrl+shift+e","meta+shift+e"],displayKeybinding:`Shift+${d()}+E`,callback(){u.exportNotebook()}}),p.exportNotebookAsReport=new r.a({title:"Export Notebook as Report",callback(){u.exportNotebook(!0,!1)}}),p.exportNotebookToClipboard=new r.a({title:"Export Notebook to Clipboard",callback(){u.exportNotebook(!1,!0),u.updateAppMessages({message:"Notebook copied to clipboard"})}}),p.clearVariables=new r.a({title:"Clear Variables",preventDefaultKeybinding:!0,callback(){u.clearVariables()}}),p.changeSidePaneWidth=new r.a({title:"Change Width of Side Pane",callback(e){u.changeSidePaneWidth(e)}}),p.toggleDeclaredVariablesPane=new r.a({title:"Toggle the Declared Variables Pane",menuTitle:"Declared Variables",keybindings:["ctrl+d","meta+d"],displayKeybinding:`${d()}+D`,preventDefaultKeybinding:!0,keybindingPrecondition:s.f,callback(){"declared variables"!==a.a.getState().sidePaneMode?u.changeSidePaneMode("declared variables"):u.changeSidePaneMode()}}),p.toggleHistoryPane=new r.a({title:"Toggle the History Pane",menuTitle:"History",keybindings:["ctrl+h","meta+h"],displayKeybinding:`${d()}+H`,preventDefaultKeybinding:!0,keybindingPrecondition:s.f,callback(){"history"!==a.a.getState().sidePaneMode?u.changeSidePaneMode("history"):u.changeSidePaneMode()}}),p.toggleAppInfoPane=new r.a({title:"Toggle the Iodide Info Pane",menuTitle:"App Messages",keybindings:["ctrl+i","meta+i"],displayKeybinding:`${d()}+I`,preventDefaultKeybinding:!0,keybindingPrecondition:s.f,callback(){"_APP_INFO"!==a.a.getState().sidePaneMode?u.changeSidePaneMode("_APP_INFO"):u.changeSidePaneMode()}}),p.setViewModeToEditor=new r.a({title:"Set View Mode to Editor",callback(){u.setViewMode("editor")}}),p.setViewModeToPresentation=new r.a({title:"Set View Mode to Presentation",callback(){u.setViewMode("presentation")}}),p.fileAnIssue=new o.a({title:"File an Issue",menuTitle:"File an Issue ...",url:"http://github.com/iodide-project/iodide/issues/new"}),p.seeAllExamples=new o.a({title:"See All Examples",menuTitle:"See All Examples ...",url:"http://github.com/iodide-project/iodide-examples/"}),t.a=p},function(e,t,n){var r;r=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,n=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),o=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),a=/Edge\/(\d+)/.exec(e),i=r||o||a,s=i&&(r?document.documentMode||6:+(a||o)[1]),l=!a&&/WebKit\//.test(e),u=l&&/Qt\/\d+\.\d+/.test(e),c=!a&&/Chrome\//.test(e),f=/Opera\//.test(e),d=/Apple Computer/.test(navigator.vendor),p=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),h=/PhantomJS/.test(e),m=!a&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),v=/Android/.test(e),g=m||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),b=/\bCrOS\b/.test(e),x=/win/i.test(t),w=f&&e.match(/Version\/(\d*\.\d*)/);w&&(w=Number(w[1])),w&&w>=15&&(f=!1,l=!0);var E=y&&(u||f&&(null==w||w<12.11)),k=n||i&&s>=9;function _(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var C,S=function(e,t){var n=e.className,r=_(t).exec(n);if(r){var o=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(o?r[1]+o:"")}};function O(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function T(e,t){return O(e).appendChild(t)}function P(e,t,n,r){var o=document.createElement(e);if(n&&(o.className=n),r&&(o.style.cssText=r),"string"==typeof t)o.appendChild(document.createTextNode(t));else if(t)for(var a=0;a=t)return i+(t-a);i+=s-a,i+=n-i%n,a=s+1}}m?D=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:i&&(D=function(e){try{e.select()}catch(e){}});var z=function(){this.id=null};function U(e,t){for(var n=0;n=t)return r+Math.min(i,t-o);if(o+=a-r,r=a+1,(o+=n-o%n)>=t)return r}}var G=[""];function K(e){for(;G.length<=e;)G.push(Y(G)+" ");return G[e]}function Y(e){return e[e.length-1]}function Q(e,t){for(var n=[],r=0;r"€"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function te(e,t){return t?!!(t.source.indexOf("\\w")>-1&&ee(e))||t.test(e):ee(e)}function ne(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var re=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function oe(e){return e.charCodeAt(0)>=768&&re.test(e)}function ae(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var o=(t+n)/2,a=r<0?Math.ceil(o):Math.floor(o);if(a==t)return e(a)?t:n;e(a)?n=a:t=a+r}}function se(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var o=n.children[r],a=o.chunkSize();if(t=e.first&&tn?me(n,se(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?me(e.line,t):n<0?me(e.line,0):e}(t,se(e,t.line).text.length)}function ke(e,t){for(var n=[],r=0;r=t:a.to>t);(r||(r=[])).push(new Se(i,a.from,s?null:a.to))}}return r}(n,o,i),l=function(e,t,n){var r;if(e)for(var o=0;o=t:a.to>t)||a.from==t&&"bookmark"==i.type&&(!n||a.marker.insertLeft)){var s=null==a.from||(i.inclusiveLeft?a.from<=t:a.from0&&s)for(var b=0;b=0&&f<=0||c<=0&&f>=0)&&(c<=0&&(l.marker.inclusiveRight&&o.inclusiveLeft?ve(u.to,n)>=0:ve(u.to,n)>0)||c>=0&&(l.marker.inclusiveRight&&o.inclusiveLeft?ve(u.from,r)<=0:ve(u.from,r)<0)))return!0}}}function Ue(e){for(var t;t=Le(e);)e=t.find(-1,!0).line;return e}function Be(e,t){var n=se(e,t),r=Ue(n);return n==r?t:fe(r)}function He(e,t){if(t>e.lastLine())return t;var n,r=se(e,t);if(!We(e,r))return t;for(;n=Fe(r);)r=n.find(1,!0).line;return fe(r)+1}function We(e,t){var n=Ce&&t.markedSpans;if(n)for(var r=void 0,o=0;ot.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}var Ke=null;function Ye(e,t,n){var r;Ke=null;for(var o=0;ot)return o;a.to==t&&(a.from!=a.to&&"before"==n?r=o:Ke=o),a.from==t&&(a.from!=a.to&&"before"!=n?r=o:Ke=o)}return null!=r?r:Ke}var Qe=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";var n=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,r=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,i=/[1n]/;function s(e,t,n){this.level=e,this.from=t,this.to=n}return function(l,u){var c="ltr"==u?"L":"R";if(0==l.length||"ltr"==u&&!n.test(l))return!1;for(var f,d=l.length,p=[],h=0;h-1&&(r[t]=o.slice(0,a).concat(o.slice(a+1)))}}}function nt(e,t){var n=et(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),o=0;o0}function it(e){e.prototype.on=function(e,t){Je(this,e,t)},e.prototype.off=function(e,t){tt(this,e,t)}}function st(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function lt(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ut(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ct(e){st(e),lt(e)}function ft(e){return e.target||e.srcElement}function dt(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var pt,ht,mt=function(){if(i&&s<9)return!1;var e=P("div");return"draggable"in e||"dragDrop"in e}();function vt(e){if(null==pt){var t=P("span","​");T(e,P("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(pt=t.offsetWidth<=1&&t.offsetHeight>2&&!(i&&s<8))}var n=pt?P("span","​"):P("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function gt(e){if(null!=ht)return ht;var t=T(e,document.createTextNode("AخA")),n=C(t,0,1).getBoundingClientRect(),r=C(t,1,2).getBoundingClientRect();return O(e),!(!n||n.left==n.right)&&(ht=r.right-n.right<3)}var yt,bt=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var o=e.indexOf("\n",t);-1==o&&(o=e.length);var a=e.slice(t,"\r"==e.charAt(o-1)?o-1:o),i=a.indexOf("\r");-1!=i?(n.push(a.slice(0,i)),t+=i+1):(n.push(a),t=o+1)}return n}:function(e){return e.split(/\r\n?|\n/)},xt=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},wt="oncopy"in(yt=P("div"))||(yt.setAttribute("oncopy","return;"),"function"==typeof yt.oncopy),Et=null;var kt={},_t={};function Ct(e){if("string"==typeof e&&_t.hasOwnProperty(e))e=_t[e];else if(e&&"string"==typeof e.name&&_t.hasOwnProperty(e.name)){var t=_t[e.name];"string"==typeof t&&(t={name:t}),(e=Z(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ct("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ct("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function St(e,t){t=Ct(t);var n=kt[t.name];if(!n)return St(e,"text/plain");var r=n(e,t);if(Ot.hasOwnProperty(t.name)){var o=Ot[t.name];for(var a in o)o.hasOwnProperty(a)&&(r.hasOwnProperty(a)&&(r["_"+a]=r[a]),r[a]=o[a])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var i in t.modeProps)r[i]=t.modeProps[i];return r}var Ot={};function Tt(e,t){L(t,Ot.hasOwnProperty(e)?Ot[e]:Ot[e]={})}function Pt(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var o=t[r];o instanceof Array&&(o=o.concat([])),n[r]=o}return n}function Nt(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Mt(e,t,n){return!e.startState||e.startState(t,n)}var At=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};At.prototype.eol=function(){return this.pos>=this.string.length},At.prototype.sol=function(){return this.pos==this.lineStart},At.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},At.prototype.next=function(){if(this.post},At.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},At.prototype.skipToEnd=function(){this.pos=this.string.length},At.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},At.prototype.backUp=function(e){this.pos-=e},At.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var o=function(e){return n?e.toLowerCase():e};if(o(this.string.substr(this.pos,e.length))==o(e))return!1!==t&&(this.pos+=e.length),!0},At.prototype.current=function(){return this.string.slice(this.start,this.pos)},At.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},At.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},At.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Rt=function(e,t){this.state=e,this.lookAhead=t},jt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function Dt(e,t,n,r){var o=[e.state.modeGen],a={};qt(e,t.text,e.doc.mode,n,function(e,t){return o.push(e,t)},a,r);for(var i=n.state,s=function(r){n.baseTokens=o;var s=e.state.overlays[r],l=1,u=0;n.state=!0,qt(e,t.text,s.mode,n,function(e,t){for(var n=l;ue&&o.splice(l,1,e,o[l+1],r),l+=2,u=Math.min(e,r)}if(t)if(s.opaque)o.splice(n,l-n,e,"overlay "+t),l=n+2;else for(;ne.options.maxHighlightLength&&Pt(e.doc.mode,r.state),a=Dt(e,t,r);o&&(r.state=o),t.stateAfter=r.save(!o),t.styles=a.styles,a.classes?t.styleClasses=a.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Lt(e,t,n){var r=e.doc,o=e.display;if(!r.mode.startState)return new jt(r,!0,t);var a=function(e,t,n){for(var r,o,a=e.doc,i=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>i;--s){if(s<=a.first)return a.first;var l=se(a,s-1),u=l.stateAfter;if(u&&(!n||s+(u instanceof Rt?u.lookAhead:0)<=a.modeFrontier))return s;var c=F(l.text,null,e.options.tabSize);(null==o||r>c)&&(o=s-1,r=c)}return o}(e,t,n),i=a>r.first&&se(r,a-1).stateAfter,s=i?jt.fromSaved(r,i,a):new jt(r,Mt(r.mode),a);return r.iter(a,t,function(n){Ft(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=o.viewFrom&&rt.start)return a}throw new Error("Mode "+e.name+" failed to advance stream.")}jt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},jt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},jt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},jt.fromSaved=function(e,t,n){return t instanceof Rt?new jt(e,Pt(e.mode,t.state),n,t.lookAhead):new jt(e,Pt(e.mode,t),n)},jt.prototype.save=function(e){var t=!1!==e?Pt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Rt(t,this.maxLookAhead):t};var Bt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function Ht(e,t,n,r){var o,a,i=e.doc,s=i.mode,l=se(i,(t=Ee(i,t)).line),u=Lt(e,t.line,n),c=new At(l.text,e.options.tabSize,u);for(r&&(a=[]);(r||c.pose.options.maxHighlightLength?(s=!1,i&&Ft(e,t,r,f.pos),f.pos=t.length,l=null):l=Wt(Ut(n,f,r.state,d),a),d){var p=d[0].name;p&&(l="m-"+(l?p+" "+l:p))}if(!s||c!=l){for(;u1&&!/ /.test(e))return e;for(var n=t,r="",o=0;ou&&f.from<=u);d++);if(f.to>=c)return e(n,r,o,a,i,s,l);e(n,r.slice(0,f.to-u),o,a,null,s,l),a=null,r=r.slice(f.to-u),u=f.to}}}function en(e,t,n,r){var o=!r&&n.widgetNode;o&&e.map.push(e.pos,e.pos+t,o),!r&&e.cm.display.input.needsContentAttribute&&(o||(o=e.content.appendChild(document.createElement("span"))),o.setAttribute("cm-marker",n.id)),o&&(e.cm.display.input.setUneditable(o),e.content.appendChild(o)),e.pos+=t,e.trailingSpace=!1}function tn(e,t,n){var r=e.markedSpans,o=e.text,a=0;if(r)for(var i,s,l,u,c,f,d,p=o.length,h=0,m=1,v="",g=0;;){if(g==h){l=u=c=f=s="",d=null,g=1/0;for(var y=[],b=void 0,x=0;xh||E.collapsed&&w.to==h&&w.from==h)?(null!=w.to&&w.to!=h&&g>w.to&&(g=w.to,u=""),E.className&&(l+=" "+E.className),E.css&&(s=(s?s+";":"")+E.css),E.startStyle&&w.from==h&&(c+=" "+E.startStyle),E.endStyle&&w.to==g&&(b||(b=[])).push(E.endStyle,w.to),E.title&&!f&&(f=E.title),E.collapsed&&(!d||De(d.marker,E)<0)&&(d=w)):w.from>h&&g>w.from&&(g=w.from)}if(b)for(var k=0;k=p)break;for(var C=Math.min(p,g);;){if(v){var S=h+v.length;if(!d){var O=S>C?v.slice(0,C-h):v;t.addToken(t,O,i?i+l:l,c,h+O.length==g?u:"",f,s)}if(S>=C){v=v.slice(C-h),h=C;break}h=S,c=""}v=o.slice(a,a=n[m++]),i=Yt(n[m++],t.cm.options)}}else for(var T=1;Tn)return{map:e.measure.maps[o],cache:e.measure.caches[o],before:!0}}function Pn(e,t,n,r){return An(e,Mn(e,t),n,r)}function Nn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&a.push((l.bottom+u.top)/2-n.top)}}a.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(a=function(e,t,n,r){var o,a=Dn(t.map,n,r),l=a.node,u=a.start,c=a.end,f=a.collapse;if(3==l.nodeType){for(var d=0;d<4;d++){for(;u&&oe(t.line.text.charAt(a.coverStart+u));)--u;for(;a.coverStart+c1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,o))}else{var p;u>0&&(f=r="right"),o=e.options.lineWrapping&&(p=l.getClientRects()).length>1?p["right"==r?p.length-1:0]:l.getBoundingClientRect()}if(i&&s<9&&!u&&(!o||!o.left&&!o.right)){var h=l.parentNode.getClientRects()[0];o=h?{left:h.left,right:h.left+tr(e.display),top:h.top,bottom:h.bottom}:jn}for(var m=o.top-t.rect.top,v=o.bottom-t.rect.top,g=(m+v)/2,y=t.view.measure.heights,b=0;bt)&&(o=(a=l-s)-1,t>=l&&(i="right")),null!=o){if(r=e[u+2],s==l&&n==(r.insertLeft?"left":"right")&&(i=n),"left"==n&&0==o)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],i="left";if("right"==n&&o==l-s)for(;u=0&&(n=e[o]).left==n.right;o--);return n}function Ln(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(l=r.text.length,u="before"):l<=0&&(l=0,u="after"),!s)return i("before"==u?l-1:l,"before"==u);function c(e,t,n){var r=1==s[t].level;return i(n?e-1:e,r!=n)}var f=Ye(s,l,u),d=Ke,p=c(l,f,"before"==u);return null!=d&&(p.other=c(l,d,"before"!=u)),p}function Gn(e,t){var n=0;t=Ee(e.doc,t),e.options.lineWrapping||(n=tr(e.display)*t.ch);var r=se(e.doc,t.line),o=Ve(r)+En(e.display);return{left:n,right:n,top:o,bottom:o+r.height}}function Kn(e,t,n,r,o){var a=me(e,t,n);return a.xRel=o,r&&(a.outside=!0),a}function Yn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Kn(r.first,0,null,!0,-1);var o=de(r,n),a=r.first+r.size-1;if(o>a)return Kn(r.first+r.size-1,se(r,a).text.length,null,!0,1);t<0&&(t=0);for(var i=se(r,o);;){var s=Jn(e,i,o,t,n),l=Fe(i),u=l&&l.find(0,!0);if(!l||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;o=fe(i=u.to.line)}}function Qn(e,t,n,r){r-=Hn(t);var o=t.text.length,a=ie(function(t){return An(e,n,t-1).bottom<=r},o,0);return{begin:a,end:o=ie(function(t){return An(e,n,t).top>r},a,o)}}function Xn(e,t,n,r){return n||(n=Mn(e,t)),Qn(e,t,n,Wn(e,t,An(e,n,r),"line").top)}function Zn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Jn(e,t,n,r,o){o-=Ve(t);var a=Mn(e,t),i=Hn(t),s=0,l=t.text.length,u=!0,c=Xe(t,e.doc.direction);if(c){var f=(e.options.lineWrapping?function(e,t,n,r,o,a,i){var s=Qn(e,t,r,i),l=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,f=null,d=0;d=u||p.to<=l)){var h=1!=p.level,m=An(e,r,h?Math.min(u,p.to)-1:Math.max(l,p.from)).right,v=mv)&&(c=p,f=v)}}c||(c=o[o.length-1]);c.fromu&&(c={from:c.from,to:u,level:c.level});return c}:function(e,t,n,r,o,a,i){var s=ie(function(s){var l=o[s],u=1!=l.level;return Zn($n(e,me(n,u?l.to:l.from,u?"before":"after"),"line",t,r),a,i,!0)},0,o.length-1),l=o[s];if(s>0){var u=1!=l.level,c=$n(e,me(n,u?l.from:l.to,u?"after":"before"),"line",t,r);Zn(c,a,i,!0)&&c.top>i&&(l=o[s-1])}return l})(e,t,n,a,c,r,o);s=(u=1!=f.level)?f.from:f.to-1,l=u?f.to:f.from-1}var d,p,h=null,m=null,v=ie(function(t){var n=An(e,a,t);return n.top+=i,n.bottom+=i,!!Zn(n,r,o,!1)&&(n.top<=o&&n.left<=r&&(h=t,m=n),!0)},s,l),g=!1;if(m){var y=r-m.left=x.bottom}return Kn(n,v=ae(t.text,v,1),p,g,r-d)}function er(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Rn){Rn=P("pre");for(var t=0;t<49;++t)Rn.appendChild(document.createTextNode("x")),Rn.appendChild(P("br"));Rn.appendChild(document.createTextNode("x"))}T(e.measure,Rn);var n=Rn.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),O(e.measure),n||1}function tr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=P("span","xxxxxxxxxx"),n=P("pre",[t]);T(e.measure,n);var r=t.getBoundingClientRect(),o=(r.right-r.left)/10;return o>2&&(e.cachedCharWidth=o),o||10}function nr(e){for(var t=e.display,n={},r={},o=t.gutters.clientLeft,a=t.gutters.firstChild,i=0;a;a=a.nextSibling,++i)n[e.options.gutters[i]]=a.offsetLeft+a.clientLeft+o,r[e.options.gutters[i]]=a.clientWidth;return{fixedPos:rr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function rr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function or(e){var t=er(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/tr(e.display)-3);return function(o){if(We(e.doc,o))return 0;var a=0;if(o.widgets)for(var i=0;i=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r=e.display.viewTo||s.to().linet||t==n&&i.to==t)&&(r(Math.max(i.from,t),Math.min(i.to,n),1==i.level?"rtl":"ltr",a),o=!0)}o||r(t,n,"ltr")}(m,n||0,null==r?d:r,function(e,t,o,f){var v="ltr"==o,g=p(e,v?"left":"right"),y=p(t-1,v?"right":"left"),b=null==n&&0==e,x=null==r&&t==d,w=0==f,E=!m||f==m.length-1;if(y.top-g.top<=3){var k=(u?x:b)&&E,_=(u?b:x)&&w?s:(v?g:y).left,C=k?l:(v?y:g).right;c(_,g.top,C-_,g.bottom)}else{var S,O,T,P;v?(S=u&&b&&w?s:g.left,O=u?l:h(e,o,"before"),T=u?s:h(t,o,"after"),P=u&&x&&E?l:y.right):(S=u?h(e,o,"before"):s,O=!u&&b&&w?l:g.right,T=!u&&x&&E?s:y.left,P=u?h(t,o,"after"):l),c(S,g.top,O-S,g.bottom),g.bottom0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function hr(e){e.state.focused||(e.display.input.focus(),vr(e))}function mr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,gr(e))},100)}function vr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(nt(e,"focus",e,t),e.state.focused=!0,R(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),l&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),pr(e))}function gr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(nt(e,"blur",e,t),e.state.focused=!1,S(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function yr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r.005||c<-.005)&&(ce(o.line,a),br(o.line),o.rest))for(var f=0;f=i&&(a=de(t,Ve(se(t,l))-e.wrapper.clientHeight),i=l)}return{from:a,to:Math.max(i,a+1)}}function wr(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=rr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,o=t.gutters.offsetWidth,a=r+"px",i=0;ia&&(t.bottom=t.top+a);var s=e.doc.height+kn(n),l=t.tops-r;if(t.topo+a){var c=Math.min(t.top,(u?s:t.bottom)-a);c!=o&&(i.scrollTop=c)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,d=Sn(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),p=t.right-t.left>d;return p&&(t.right=t.left+d),t.left<10?i.scrollLeft=0:t.leftd+f-3&&(i.scrollLeft=t.right+(p?0:10)-d),i}function _r(e,t){null!=t&&(Or(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Cr(e){Or(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Sr(e,t,n){null==t&&null==n||Or(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Or(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Tr(e,Gn(e,t.from),Gn(e,t.to),t.margin))}function Tr(e,t,n,r){var o=kr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Sr(e,o.scrollLeft,o.scrollTop)}function Pr(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||io(e,{top:t}),Nr(e,t,!0),n&&io(e),to(e,100))}function Nr(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Mr(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,wr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Ar(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+kn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Cn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Rr=function(e,t,n){this.cm=n;var r=this.vert=P("div",[P("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=P("div",[P("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(o),Je(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Je(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,i&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Rr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var o=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+o)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var a=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+a)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Rr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Rr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Rr.prototype.zeroWidthHack=function(){var e=y&&!p?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new z,this.disableVert=new z},Rr.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents="auto",t.set(1e3,function r(){var o=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(o.right-1,(o.top+o.bottom)/2):document.elementFromPoint((o.right+o.left)/2,o.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)})},Rr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var jr=function(){};function Dr(e,t){t||(t=Ar(e));var n=e.display.barWidth,r=e.display.barHeight;Ir(e,t);for(var o=0;o<4&&n!=e.display.barWidth||r!=e.display.barHeight;o++)n!=e.display.barWidth&&e.options.lineWrapping&&yr(e),Ir(e,Ar(e)),n=e.display.barWidth,r=e.display.barHeight}function Ir(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}jr.prototype.update=function(){return{bottom:0,right:0}},jr.prototype.setScrollLeft=function(){},jr.prototype.setScrollTop=function(){},jr.prototype.clear=function(){};var Lr={native:Rr,null:jr};function Fr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&S(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Lr[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Je(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?Mr(e,t):Pr(e,t)},e),e.display.scrollbars.addClass&&R(e.display.wrapper,e.display.scrollbars.addClass)}var zr=0;function Ur(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++zr},t=e.curOp,on?on.ops.push(t):t.ownsGroup=on={ops:[t],delayedCallbacks:[]}}function Br(e){!function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ro(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Wr(e){var t=e.cm,n=t.display;e.updatedDisplay&&yr(t),e.barMeasure=Ar(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Pn(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Cn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Sn(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function qr(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!h){var a=P("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-En(e.display))+"px;\n height: "+(t.bottom-t.top+Cn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}(t,function(e,t,n,r){var o;null==r&&(r=0),e.options.lineWrapping||t!=n||(n="before"==(t=t.ch?me(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?me(t.line,t.ch+1,"before"):t);for(var a=0;a<5;a++){var i=!1,s=$n(e,t),l=n&&n!=t?$n(e,n):s,u=kr(e,o={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),c=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=u.scrollTop&&(Pr(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(i=!0)),null!=u.scrollLeft&&(Mr(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(i=!0)),!i)break}return o}(t,Ee(r,e.scrollToPos.from),Ee(r,e.scrollToPos.to),e.scrollToPos.margin));var o=e.maybeHiddenMarkers,a=e.maybeUnhiddenMarkers;if(o)for(var i=0;it)&&(o.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=o.viewTo)Ce&&Be(e.doc,t)o.viewFrom?Zr(e):(o.viewFrom+=r,o.viewTo+=r);else if(t<=o.viewFrom&&n>=o.viewTo)Zr(e);else if(t<=o.viewFrom){var a=Jr(e,n,n+r,1);a?(o.view=o.view.slice(a.index),o.viewFrom=a.lineN,o.viewTo+=r):Zr(e)}else if(n>=o.viewTo){var i=Jr(e,t,t,-1);i?(o.view=o.view.slice(0,i.index),o.viewTo=i.lineN):Zr(e)}else{var s=Jr(e,t,t,-1),l=Jr(e,n,n+r,1);s&&l?(o.view=o.view.slice(0,s.index).concat(rn(e,s.lineN,l.lineN)).concat(o.view.slice(l.index)),o.viewTo+=r):Zr(e)}var u=o.externalMeasured;u&&(n=o.lineN&&t=r.viewTo)){var a=r.view[sr(e,t)];if(null!=a.node){var i=a.changes||(a.changes=[]);-1==U(i,n)&&i.push(n)}}}function Zr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Jr(e,t,n,r){var o,a=sr(e,t),i=e.display.view;if(!Ce||n==e.doc.first+e.doc.size)return{index:a,lineN:n};for(var s=e.display.viewFrom,l=0;l0){if(a==i.length-1)return null;o=s+i[a].size-t,a++}else o=s-t;t+=o,n+=o}for(;Be(e.doc,n)!=n;){if(a==(r<0?0:i.length-1))return null;n+=r*i[a-(r<0?1:0)].size,a+=r}return{index:a,lineN:n}}function eo(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo)){var n=+new Date+e.options.workTime,r=Lt(e,t.highlightFrontier),o=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(a){if(r.line>=e.display.viewFrom){var i=a.styles,s=a.text.length>e.options.maxHighlightLength?Pt(t.mode,r.state):null,l=Dt(e,a,r,!0);s&&(r.state=s),a.styles=l.styles;var u=a.styleClasses,c=l.classes;c?a.styleClasses=c:u&&(a.styleClasses=null);for(var f=!i||i.length!=a.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),d=0;!f&&dn)return to(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),o.length&&$r(e,function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==eo(e))return!1;Er(e)&&(Zr(e),t.dims=nr(e));var o=r.first+r.size,a=Math.max(t.visible.from-e.options.viewportMargin,r.first),i=Math.min(o,t.visible.to+e.options.viewportMargin);n.viewFromi&&n.viewTo-i<20&&(i=Math.min(o,n.viewTo)),Ce&&(a=Be(e.doc,a),i=He(e.doc,i));var s=a!=n.viewFrom||i!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=rn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=rn(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,sr(e,n)))),r.viewTo=n}(e,a,i),n.viewOffset=Ve(se(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=eo(e);if(!s&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=A();if(!t||!M(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&M(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return u>4&&(n.lineDiv.style.display="none"),function(e,t,n){var r=e.display,o=e.options.lineNumbers,a=r.lineDiv,i=a.firstChild;function s(t){var n=t.nextSibling;return l&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var u=r.view,c=r.viewFrom,f=0;f-1&&(p=!1),un(e,d,c,n)),p&&(O(d.lineNumber),d.lineNumber.appendChild(document.createTextNode(he(e.options,c)))),i=d.node.nextSibling}else{var h=vn(e,d,c,n);a.insertBefore(h,i)}c+=d.size}for(;i;)i=s(i)}(e,n.updateLineNumbers,t.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=A()&&(e.activeElt.focus(),e.anchorNode&&M(document.body,e.anchorNode)&&M(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(c),O(n.cursorDiv),O(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,to(e,400)),n.updateLineNumbers=null,!0}function ao(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Sn(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+kn(e.display)-On(e),n.top)}),t.visible=xr(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&oo(e,t);r=!1){yr(e);var o=Ar(e);lr(e),Dr(e,o),lo(e,o),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function io(e,t){var n=new ro(e,t);if(oo(e,n)){yr(e),ao(e,n);var r=Ar(e);lr(e),Dr(e,r),lo(e,r),n.finish()}}function so(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function lo(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Cn(e)+"px"}function uo(e){var t=e.display.gutters,n=e.options.gutters;O(t);for(var r=0;r-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}ro.prototype.signal=function(e,t){at(e,t)&&this.events.push(arguments)},ro.prototype.finish=function(){for(var e=0;es.clientWidth,c=s.scrollHeight>s.clientHeight;if(o&&u||a&&c){if(a&&y&&l)e:for(var d=t.target,p=i.view;d!=s;d=d.parentNode)for(var h=0;h=0&&ve(e,r.to())<=0)return n}return-1};var yo=function(e,t){this.anchor=e,this.head=t};function bo(e,t){var n=e[t];e.sort(function(e,t){return ve(e.from(),t.from())}),t=U(e,n);for(var r=1;r=0){var i=xe(a.from(),o.from()),s=be(a.to(),o.to()),l=a.empty()?o.from()==o.head:a.from()==a.head;r<=t&&--t,e.splice(--r,2,new yo(l?s:i,l?i:s))}}return new go(e,t)}function xo(e,t){return new go([new yo(e,t||e)],0)}function wo(e){return e.text?me(e.from.line+e.text.length-1,Y(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Eo(e,t){if(ve(e,t.from)<0)return e;if(ve(e,t.to)<=0)return wo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=wo(t).ch-t.to.ch),me(n,r)}function ko(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,g)}sn(e,"change",e,t)}function Po(e,t,n){!function e(r,o,a){if(r.linked)for(var i=0;is-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(a=function(e,t){return t?(jo(e.done),Y(e.done)):e.done.length&&!Y(e.done).ranges?Y(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),Y(e.done)):void 0}(o,o.lastOp==r)))i=Y(a.changes),0==ve(t.from,t.to)&&0==ve(t.from,i.to)?i.to=wo(t):a.changes.push(Ro(e,t));else{var l=Y(o.done);for(l&&l.ranges||Lo(e.sel,o.done),a={changes:[Ro(e,t)],generation:o.generation},o.done.push(a);o.done.length>o.undoDepth;)o.done.shift(),o.done[0].ranges||o.done.shift()}o.done.push(n),o.generation=++o.maxGeneration,o.lastModTime=o.lastSelTime=s,o.lastOp=o.lastSelOp=r,o.lastOrigin=o.lastSelOrigin=t.origin,i||nt(e,"historyAdded")}function Io(e,t,n,r){var o=e.history,a=r&&r.origin;n==o.lastSelOp||a&&o.lastSelOrigin==a&&(o.lastModTime==o.lastSelTime&&o.lastOrigin==a||function(e,t,n,r){var o=t.charAt(0);return"*"==o||"+"==o&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,a,Y(o.done),t))?o.done[o.done.length-1]=t:Lo(t,o.done),o.lastSelTime=+new Date,o.lastSelOrigin=a,o.lastSelOp=n,r&&!1!==r.clearRedo&&jo(o.undone)}function Lo(e,t){var n=Y(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Fo(e,t,n,r){var o=t["spans_"+e.id],a=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((o||(o=t["spans_"+e.id]={}))[a]=n.markedSpans),++a})}function zo(e){if(!e)return null;for(var t,n=0;n-1&&(Y(s)[f]=u[f],delete u[f])}}}return r}function Ho(e,t,n,r){if(r){var o=e.anchor;if(n){var a=ve(t,o)<0;a!=ve(n,o)<0?(o=t,t=n):a!=ve(t,n)<0&&(t=n)}return new yo(o,t)}return new yo(n||t,t)}function Wo(e,t,n,r,o){null==o&&(o=e.cm&&(e.cm.display.shift||e.extend)),Ko(e,new go([Ho(e.sel.primary(),t,n,o)],0),r)}function qo(e,t,n){for(var r=[],o=e.cm&&(e.cm.display.shift||e.extend),a=0;a=t.ch:s.to>t.ch))){if(o&&(nt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(a.markedSpans){--i;continue}break}if(!l.atomic)continue;if(n){var u=l.find(r<0?1:-1),c=void 0;if((r<0?l.inclusiveRight:l.inclusiveLeft)&&(u=ta(e,u,-r,u&&u.line==t.line?a:null)),u&&u.line==t.line&&(c=ve(u,n))&&(r<0?c<0:c>0))return Jo(e,u,t,r,o)}var f=l.find(r<0?-1:1);return(r<0?l.inclusiveLeft:l.inclusiveRight)&&(f=ta(e,f,r,f.line==t.line?a:null)),f?Jo(e,f,t,r,o):null}}return t}function ea(e,t,n,r,o){var a=r||1,i=Jo(e,t,n,a,o)||!o&&Jo(e,t,n,a,!0)||Jo(e,t,n,-a,o)||!o&&Jo(e,t,n,-a,!0);return i||(e.cantEdit=!0,me(e.first,0))}function ta(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?Ee(e,me(t.line-1)):null:n>0&&t.ch==(r||se(e,t.line)).text.length?t.line0)){var c=[l,1],f=ve(u.from,s.from),d=ve(u.to,s.to);(f<0||!i.inclusiveLeft&&!f)&&c.push({from:u.from,to:s.from}),(d>0||!i.inclusiveRight&&!d)&&c.push({from:s.to,to:u.to}),o.splice.apply(o,c),l+=c.length-3}}return o}(e,t.from,t.to);if(r)for(var o=r.length-1;o>=0;--o)aa(e,{from:r[o].from,to:r[o].to,text:o?[""]:t.text,origin:t.origin});else aa(e,t)}}function aa(e,t){if(1!=t.text.length||""!=t.text[0]||0!=ve(t.from,t.to)){var n=ko(e,t);Do(e,t,n,e.cm?e.cm.curOp.id:NaN),la(e,t,n,Pe(e,t));var r=[];Po(e,function(e,n){n||-1!=U(r,e.history)||(da(e.history,t),r.push(e.history)),la(e,t,null,Pe(e,t))})}}function ia(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var o,a=e.history,i=e.sel,s="undo"==t?a.done:a.undone,l="undo"==t?a.undone:a.done,u=0;u=0;--p){var h=d(p);if(h)return h.v}}}}function sa(e,t){if(0!=t&&(e.first+=t,e.sel=new go(Q(e.sel.ranges,function(e){return new yo(me(e.anchor.line+t,e.anchor.ch),me(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Qr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.linea&&(t={from:t.from,to:me(a,se(e,a).text.length),text:[t.text[0]],origin:t.origin}),t.removed=le(e,t.from,t.to),n||(n=ko(e,t)),e.cm?function(e,t,n){var r=e.doc,o=e.display,a=t.from,i=t.to,s=!1,l=a.line;e.options.lineWrapping||(l=fe(Ue(se(r,a.line))),r.iter(l,i.line+1,function(e){if(e==o.maxLine)return s=!0,!0}));r.sel.contains(t.from,t.to)>-1&&ot(e);To(r,t,n,or(e)),e.options.lineWrapping||(r.iter(l,a.line+t.text.length,function(e){var t=$e(e);t>o.maxLineLength&&(o.maxLine=e,o.maxLineLength=t,o.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var o=se(e,r).stateAfter;if(o&&(!(o instanceof Rt)||r+o.lookAhead1||!(this.children[0]instanceof ha))){var s=[];this.collapse(s),this.children=[new ha(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var i=o.lines.length%25+25,s=i;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==i&&!1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=N("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ze(e,t.line,t,n,a)||t.line!=n.line&&ze(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ce=!0}a.addToHistory&&Do(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,l=t.line,u=e.cm;if(e.iter(l,n.line+1,function(e){u&&a.collapsed&&!u.options.lineWrapping&&Ue(e)==u.display.maxLine&&(s=!0),a.collapsed&&l!=t.line&&ce(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new Se(a,l==t.line?t.ch:null,l==n.line?n.ch:null)),++l}),a.collapsed&&e.iter(t.line,n.line+1,function(t){We(e,t)&&ce(t,0)}),a.clearOnEnter&&Je(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(_e=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++ya,a.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),a.collapsed)Qr(u,t.line,n.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var c=t.line;c<=n.line;c++)Xr(u,c,"text");a.atomic&&Xo(u.doc),sn(u,"markerAdded",u,a)}return a}ba.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Ur(e),at(this,"clear")){var n=this.find();n&&sn(this,"clear",n.from,n.to)}for(var r=null,o=null,a=0;ae.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&Qr(e,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Xo(e.doc)),e&&sn(e,"markerCleared",e,this,r,o),t&&Br(e),this.parent&&this.parent.clear()}},ba.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var o=0;o=0;l--)oa(this,r[l]);s?Go(this,s):this.cm&&Cr(this.cm)}),undo:Yr(function(){ia(this,"undo")}),redo:Yr(function(){ia(this,"redo")}),undoSelection:Yr(function(){ia(this,"undo",!0)}),redoSelection:Yr(function(){ia(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(o.marker.parent||o.marker)}return t},findMarks:function(e,t,n){e=Ee(this,e),t=Ee(this,t);var r=[],o=e.line;return this.iter(e.line,t.line+1,function(a){var i=a.markedSpans;if(i)for(var s=0;s=l.to||null==l.from&&o!=e.line||null!=l.from&&o==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++o}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=a,++n}),Ee(this,me(n,t))},indexFromPos:function(e){var t=(e=Ee(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),Yo(t.doc,xo(n,n)),f)for(var d=0;d=0;t--)ua(e.doc,"",r[t].from,r[t].to,"+delete");Cr(e)})}function $a(e,t,n){var r=ae(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Ga(e,t,n){var r=$a(e,t.ch,n);return null==r?null:new me(t.line,r,n<0?"after":"before")}function Ka(e,t,n,r,o){if(e){var a=Xe(n,t.doc.direction);if(a){var i,s=o<0?Y(a):a[0],l=o<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=Mn(t,n);i=o<0?n.text.length-1:0;var c=An(t,u,i).top;i=ie(function(e){return An(t,u,e).top==c},o<0==(1==s.level)?s.from:s.to-1,i),"before"==l&&(i=$a(n,i,1))}else i=o<0?s.to:s.from;return new me(r,i,l)}}return new me(r,o<0?n.text.length:0,o<0?"before":"after")}La.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},La.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},La.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},La.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},La.default=y?La.macDefault:La.pcDefault;var Ya={selectAll:na,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),W)},killLine:function(e){return Va(e,function(t){if(t.empty()){var n=se(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)o=new me(o.line,o.ch+1),e.replaceRange(a.charAt(o.ch-1)+a.charAt(o.ch-2),me(o.line,o.ch-2),o,"+transpose");else if(o.line>e.doc.first){var i=se(e.doc,o.line-1).text;i&&(o=new me(o.line,1),e.replaceRange(a.charAt(0)+e.doc.lineSeparator()+i.charAt(i.length-1),me(o.line-1,i.length-1),o,"+transpose"))}n.push(new yo(o,o))}e.setSelections(n)})},newlineAndIndent:function(e){return $r(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(ve((o=u.ranges[o]).from(),t)<0||t.xRel>0)&&(ve(o.to(),t)>0||t.xRel<0)?function(e,t,n,r){var o=e.display,a=!1,u=Gr(e,function(t){l&&(o.scroller.draggable=!1),e.state.draggingText=!1,tt(o.wrapper.ownerDocument,"mouseup",u),tt(o.wrapper.ownerDocument,"mousemove",c),tt(o.scroller,"dragstart",f),tt(o.scroller,"drop",u),a||(st(t),r.addNew||Wo(e.doc,n,null,null,r.extend),l||i&&9==s?setTimeout(function(){o.wrapper.ownerDocument.body.focus(),o.input.focus()},20):o.input.focus())}),c=function(e){a=a||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},f=function(){return a=!0};l&&(o.scroller.draggable=!0);e.state.draggingText=u,u.copy=!r.moveOnDrag,o.scroller.dragDrop&&o.scroller.dragDrop();Je(o.wrapper.ownerDocument,"mouseup",u),Je(o.wrapper.ownerDocument,"mousemove",c),Je(o.scroller,"dragstart",f),Je(o.scroller,"drop",u),mr(e),setTimeout(function(){return o.input.focus()},20)}(e,r,t,a):function(e,t,n,r){var o=e.display,a=e.doc;st(t);var i,s,l=a.sel,u=l.ranges;r.addNew&&!r.extend?(s=a.sel.contains(n),i=s>-1?u[s]:new yo(n,n)):(i=a.sel.primary(),s=a.sel.primIndex);if("rectangle"==r.unit)r.addNew||(i=new yo(n,n)),n=ir(e,t,!0,!0),s=-1;else{var c=fi(e,n,r.unit);i=r.extend?Ho(i,c.anchor,c.head,r.extend):c}r.addNew?-1==s?(s=u.length,Ko(a,bo(u.concat([i]),s),{scroll:!1,origin:"*mouse"})):u.length>1&&u[s].empty()&&"char"==r.unit&&!r.extend?(Ko(a,bo(u.slice(0,s).concat(u.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),l=a.sel):Vo(a,s,i,q):(s=0,Ko(a,new go([i],0),q),l=a.sel);var f=n;function d(t){if(0!=ve(f,t))if(f=t,"rectangle"==r.unit){for(var o=[],u=e.options.tabSize,c=F(se(a,n.line).text,n.ch,u),d=F(se(a,t.line).text,t.ch,u),p=Math.min(c,d),h=Math.max(c,d),m=Math.min(n.line,t.line),v=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=v;m++){var g=se(a,m).text,y=$(g,p,u);p==h?o.push(new yo(me(m,y),me(m,y))):g.length>y&&o.push(new yo(me(m,y),me(m,$(g,h,u))))}o.length||o.push(new yo(n,n)),Ko(a,bo(l.ranges.slice(0,s).concat(o),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,x=i,w=fi(e,t,r.unit),E=x.anchor;ve(w.anchor,E)>0?(b=w.head,E=xe(x.from(),w.anchor)):(b=w.anchor,E=be(x.to(),w.head));var k=l.ranges.slice(0);k[s]=function(e,t){var n=t.anchor,r=t.head,o=se(e.doc,n.line);if(0==ve(n,r)&&n.sticky==r.sticky)return t;var a=Xe(o);if(!a)return t;var i=Ye(a,n.ch,n.sticky),s=a[i];if(s.from!=n.ch&&s.to!=n.ch)return t;var l,u=i+(s.from==n.ch==(1!=s.level)?0:1);if(0==u||u==a.length)return t;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=Ye(a,r.ch,r.sticky),f=c-i||(r.ch-n.ch)*(1==s.level?-1:1);l=c==u-1||c==u?f<0:f>0}var d=a[u+(l?-1:0)],p=l==(1==d.level),h=p?d.from:d.to,m=p?"after":"before";return n.ch==h&&n.sticky==m?t:new yo(new me(n.line,h,m),r)}(e,new yo(Ee(a,E),b)),Ko(a,bo(k,s),q)}}var p=o.wrapper.getBoundingClientRect(),h=0;function m(t){e.state.selectingText=!1,h=1/0,st(t),o.input.focus(),tt(o.wrapper.ownerDocument,"mousemove",v),tt(o.wrapper.ownerDocument,"mouseup",g),a.history.lastSelOrigin=null}var v=Gr(e,function(t){dt(t)?function t(n){var i=++h;var s=ir(e,n,!0,"rectangle"==r.unit);if(!s)return;if(0!=ve(s,f)){e.curOp.focus=A(),d(s);var l=xr(o,a);(s.line>=l.to||s.linep.bottom?20:0;u&&setTimeout(Gr(e,function(){h==i&&(o.scroller.scrollTop+=u,t(n))}),50)}}(t):m(t)}),g=Gr(e,m);e.state.selectingText=g,Je(o.wrapper.ownerDocument,"mousemove",v),Je(o.wrapper.ownerDocument,"mouseup",g)}(e,r,t,a)}(t,r,a,e):ft(e)==n.scroller&&st(e):2==o?(r&&Wo(t.doc,r),setTimeout(function(){return n.input.focus()},20)):3==o&&(k?hi(t,e):mr(t)))}}function fi(e,t,n){if("char"==n)return new yo(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new yo(me(t.line,0),Ee(e.doc,me(t.line+1,0)));var r=n(e,t);return new yo(r.from,r.to)}function di(e,t,n,r){var o,a;if(t.touches)o=t.touches[0].clientX,a=t.touches[0].clientY;else try{o=t.clientX,a=t.clientY}catch(t){return!1}if(o>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&st(t);var i=e.display,s=i.lineDiv.getBoundingClientRect();if(a>s.bottom||!at(e,n))return ut(t);a-=s.top-i.viewOffset;for(var l=0;l=o)return nt(e,n,e,de(e.doc,a),e.options.gutters[l],t),ut(t)}}function pi(e,t){return di(e,t,"gutterClick",!0)}function hi(e,t){wn(e.display,t)||function(e,t){if(!at(e,"gutterContextMenu"))return!1;return di(e,t,"gutterContextMenu",!1)}(e,t)||rt(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function mi(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),zn(e)}ui.prototype.compare=function(e,t,n){return this.time+400>e&&0==ve(t,this.pos)&&n==this.button};var vi={toString:function(){return"CodeMirror.Init"}},gi={},yi={};function bi(e){uo(e),Qr(e),wr(e)}function xi(e,t,n){if(!t!=!(n&&n!=vi)){var r=e.display.dragFunctions,o=t?Je:tt;o(e.display.scroller,"dragstart",r.start),o(e.display.scroller,"dragenter",r.enter),o(e.display.scroller,"dragover",r.over),o(e.display.scroller,"dragleave",r.leave),o(e.display.scroller,"drop",r.drop)}}function wi(e){e.options.lineWrapping?(R(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(S(e.display.wrapper,"CodeMirror-wrap"),Ge(e)),ar(e),Qr(e),zn(e),setTimeout(function(){return Dr(e)},100)}function Ei(e,t){var r=this;if(!(this instanceof Ei))return new Ei(e,t);this.options=t=t?L(t):{},L(gi,t,!1),co(t);var o=t.value;"string"==typeof o&&(o=new Ca(o,t.mode,null,t.lineSeparator,t.direction)),this.doc=o;var a=new Ei.inputStyles[t.inputStyle](this),u=this.display=new function(e,t,r){var o=this;this.input=r,o.scrollbarFiller=P("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=P("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=N("div",null,"CodeMirror-code"),o.selectionDiv=P("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=P("div",null,"CodeMirror-cursors"),o.measure=P("div",null,"CodeMirror-measure"),o.lineMeasure=P("div",null,"CodeMirror-measure"),o.lineSpace=N("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=N("div",[o.lineSpace],"CodeMirror-lines");o.mover=P("div",[a],null,"position: relative"),o.sizer=P("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=P("div",null,null,"position: absolute; height: "+B+"px; width: 1px;"),o.gutters=P("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=P("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=P("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),i&&s<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),l||n&&g||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,r.init(o)}(e,o,a);for(var c in u.wrapper.CodeMirror=this,uo(this),mi(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Fr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new z,keySeq:null,specialChars:null},t.autofocus&&!g&&u.input.focus(),i&&s<11&&setTimeout(function(){return r.display.input.reset(!0)},20),function(e){var t=e.display;Je(t.scroller,"mousedown",Gr(e,ci)),Je(t.scroller,"dblclick",i&&s<11?Gr(e,function(t){if(!rt(e,t)){var n=ir(e,t);if(n&&!pi(e,t)&&!wn(e.display,t)){st(t);var r=e.findWordAt(n);Wo(e.doc,r.anchor,r.head)}}}):function(t){return rt(e,t)||st(t)});k||Je(t.scroller,"contextmenu",function(t){return hi(e,t)});var n,r={end:0};function o(){t.activeTouch&&(n=setTimeout(function(){return t.activeTouch=null},1e3),(r=t.activeTouch).end=+new Date)}function a(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}Je(t.scroller,"touchstart",function(o){if(!rt(e,o)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(o)&&!pi(e,o)){t.input.ensurePolled(),clearTimeout(n);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==o.touches.length&&(t.activeTouch.left=o.touches[0].pageX,t.activeTouch.top=o.touches[0].pageY)}}),Je(t.scroller,"touchmove",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),Je(t.scroller,"touchend",function(n){var r=t.activeTouch;if(r&&!wn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var i,s=e.coordsChar(t.activeTouch,"page");i=!r.prev||a(r,r.prev)?new yo(s,s):!r.prev.prev||a(r,r.prev.prev)?e.findWordAt(s):new yo(me(s.line,0),Ee(e.doc,me(s.line+1,0))),e.setSelection(i.anchor,i.head),e.focus(),st(n)}o()}),Je(t.scroller,"touchcancel",o),Je(t.scroller,"scroll",function(){t.scroller.clientHeight&&(Pr(e,t.scroller.scrollTop),Mr(e,t.scroller.scrollLeft,!0),nt(e,"scroll",e))}),Je(t.scroller,"mousewheel",function(t){return vo(e,t)}),Je(t.scroller,"DOMMouseScroll",function(t){return vo(e,t)}),Je(t.wrapper,"scroll",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){rt(e,t)||ct(t)},over:function(t){rt(e,t)||(!function(e,t){var n=ir(e,t);if(n){var r=document.createDocumentFragment();cr(e,n,r),e.display.dragCursor||(e.display.dragCursor=P("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),T(e.display.dragCursor,r)}}(e,t),ct(t))},start:function(t){return function(e,t){if(i&&(!e.state.draggingText||+new Date-Sa<100))ct(t);else if(!rt(e,t)&&!wn(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!d)){var n=P("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",f&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),f&&n.parentNode.removeChild(n)}}(e,t)},drop:Gr(e,Oa),leave:function(t){rt(e,t)||Ta(e)}};var l=t.input.getField();Je(l,"keyup",function(t){return ai.call(e,t)}),Je(l,"keydown",Gr(e,oi)),Je(l,"keypress",Gr(e,ii)),Je(l,"focus",function(t){return vr(e,t)}),Je(l,"blur",function(t){return gr(e,t)})}(this),Ma(),Ur(this),this.curOp.forceUpdate=!0,No(this,o),t.autofocus&&!g||this.hasFocus()?setTimeout(I(vr,this),20):gr(this),yi)yi.hasOwnProperty(c)&&yi[c](r,t[c],vi);Er(this),t.finishInit&&t.finishInit(this);for(var p=0;p150)){if(!r)return;n="prev"}}else u=0,n="not";"prev"==n?u=t>a.first?F(se(a,t-1).text,null,i):0:"add"==n?u=l+e.options.indentUnit:"subtract"==n?u=l-e.options.indentUnit:"number"==typeof n&&(u=l+n),u=Math.max(0,u);var f="",d=0;if(e.options.indentWithTabs)for(var p=Math.floor(u/i);p;--p)d+=i,f+="\t";if(d1)if(Ci&&Ci.text.join("\n")==t){if(r.ranges.length%Ci.text.length==0){u=[];for(var c=0;c=0;f--){var d=r.ranges[f],p=d.from(),h=d.to();d.empty()&&(n&&n>0?p=me(p.line,p.ch-n):e.state.overwrite&&!s?h=me(h.line,Math.min(se(a,h.line).text.length,h.ch+Y(l).length)):Ci&&Ci.lineWise&&Ci.text.join("\n")==t&&(p=h=me(p.line,0))),i=e.curOp.updateInput;var m={from:p,to:h,text:u?u[f%u.length]:l,origin:o||(s?"paste":e.state.cutIncoming?"cut":"+input")};oa(e.doc,m),sn(e,"inputRead",e,m)}t&&!s&&Pi(e,t),Cr(e),e.curOp.updateInput=i,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ti(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||$r(t,function(){return Oi(t,n,0,null,"paste")}),!0}function Pi(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var o=n.ranges[r];if(!(o.head.ch>100||r&&n.ranges[r-1].head.line==o.head.line)){var a=e.getModeAt(o.head),i=!1;if(a.electricChars){for(var s=0;s-1){i=_i(e,o.head.line,"smart");break}}else a.electricInput&&a.electricInput.test(se(e.doc,o.head.line).text.slice(0,o.head.ch))&&(i=_i(e,o.head.line,"smart"));i&&sn(e,"electricInput",e,o.head.line)}}}function Ni(e){for(var t=[],n=[],r=0;r=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var a=Ye(o,n.ch,n.sticky),i=o[a];if("ltr"==e.doc.direction&&i.level%2==0&&(r>0?i.to>n.ch:i.from=i.from&&d>=c.begin)){var p=f?"before":"after";return new me(n.line,d,p)}}var h=function(e,t,r){for(var a=function(e,t){return t?new me(n.line,l(e,1),"before"):new me(n.line,e,"after")};e>=0&&e0==(1!=i.level),u=s?r.begin:l(r.end,-1);if(i.from<=u&&u0?c.end:l(c.begin,-1);return null==v||r>0&&v==t.text.length||!(m=h(r>0?0:o.length-1,r,u(v)))?null:m}(e.cm,s,t,n):Ga(s,t,n))){if(r||(i=t.line+n)=e.first+e.size||(t=new me(i,t.ch,t.sticky),!(s=se(e,i))))return!1;t=Ka(o,e.cm,s,t.line,n)}else t=a;return!0}if("char"==r)l();else if("column"==r)l(!0);else if("word"==r||"group"==r)for(var u=null,c="group"==r,f=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(n<0)||l(!d);d=!1){var p=s.text.charAt(t.ch)||"\n",h=te(p,f)?"w":c&&"\n"==p?"n":!c||/\s/.test(p)?null:"p";if(!c||d||h||(h="s"),u&&u!=h){n<0&&(n=1,l(),t.sticky="after");break}if(h&&(u=h),n>0&&!l(!d))break}var m=ea(e,t,a,i,!0);return ge(a,m)&&(m.hitSide=!0),m}function ji(e,t,n,r){var o,a,i=e.doc,s=t.left;if("page"==r){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(l-.5*er(e.display),3);o=(n>0?t.bottom:t.top)+n*u}else"line"==r&&(o=n>0?t.bottom+3:t.top-3);for(;(a=Yn(e,s,o)).outside;){if(n<0?o<=0:o>=i.height){a.hitSide=!0;break}o+=5*n}return a}var Di=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new z,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Ii(e,t){var n=Nn(e,t.line);if(!n||n.hidden)return null;var r=se(e.doc,t.line),o=Tn(n,r,t.line),a=Xe(r,e.doc.direction),i="left";a&&(i=Ye(a,t.ch)%2?"right":"left");var s=Dn(o.map,t.ch,i);return s.offset="right"==s.collapse?s.end:s.start,s}function Li(e,t){return t&&(e.bad=!0),e}function Fi(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Li(e.clipPos(me(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var o=0;o=t.display.viewTo||a.line=t.display.viewFrom&&Ii(t,o)||{node:l[0].measure.map[2],offset:0},c=a.liner.firstLine()&&(i=me(i.line-1,se(r.doc,i.line-1).length)),s.ch==se(r.doc,s.line).text.length&&s.lineo.viewTo-1)return!1;i.line==o.viewFrom||0==(e=sr(r,i.line))?(t=fe(o.view[0].line),n=o.view[0].node):(t=fe(o.view[e].line),n=o.view[e-1].node.nextSibling);var l,u,c=sr(r,s.line);if(c==o.view.length-1?(l=o.viewTo-1,u=o.lineDiv.lastChild):(l=fe(o.view[c+1].line)-1,u=o.view[c+1].node.previousSibling),!n)return!1;for(var f=r.doc.splitLines(function(e,t,n,r,o){var a="",i=!1,s=e.doc.lineSeparator();function l(){i&&(a+=s,i=!1)}function u(e){e&&(l(),a+=e)}function c(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void u(n||t.textContent.replace(/\u200b/g,""));var a,f=t.getAttribute("cm-marker");if(f){var d=e.findMarks(me(r,0),me(o+1,0),(m=+f,function(e){return e.id==m}));return void(d.length&&(a=d[0].find(0))&&u(le(e.doc,a.from,a.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&l();for(var h=0;h1&&d.length>1;)if(Y(f)==Y(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),t++}for(var p=0,h=0,m=f[0],v=d[0],g=Math.min(m.length,v.length);pi.ch&&y.charCodeAt(y.length-h-1)==b.charCodeAt(b.length-h-1);)p--,h++;f[f.length-1]=y.slice(0,y.length-h).replace(/^\u200b+/,""),f[0]=f[0].slice(p).replace(/\u200b+$/,"");var w=me(t,p),E=me(l,d.length?Y(d).length-h:0);return f.length>1||f[0]||ve(w,E)?(ua(r.doc,f,w,E,"+input"),!0):void 0},Di.prototype.ensurePolled=function(){this.forceCompositionEnd()},Di.prototype.reset=function(){this.forceCompositionEnd()},Di.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Di.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Di.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||$r(this.cm,function(){return Qr(e.cm)})},Di.prototype.setUneditable=function(e){e.contentEditable="false"},Di.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Gr(this.cm,Oi)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Di.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Di.prototype.onContextMenu=function(){},Di.prototype.resetPosition=function(){},Di.prototype.needsContentAttribute=!0;var Ui=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new z,this.hasSelection=!1,this.composing=null};Ui.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var o=this.textarea;function a(e){if(!rt(r,e)){if(r.somethingSelected())Si({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Ni(r);Si({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,W):(n.prevInput="",o.value=t.text.join("\n"),D(o))}"cut"==e.type&&(r.state.cutIncoming=!0)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(o.style.width="0px"),Je(o,"input",function(){i&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()}),Je(o,"paste",function(e){rt(r,e)||Ti(e,r)||(r.state.pasteIncoming=!0,n.fastPoll())}),Je(o,"cut",a),Je(o,"copy",a),Je(e.scroller,"paste",function(t){wn(e,t)||rt(r,t)||(r.state.pasteIncoming=!0,n.focus())}),Je(e.lineSpace,"selectstart",function(t){wn(e,t)||st(t)}),Je(o,"compositionstart",function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Je(o,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Ui.prototype.createField=function(e){this.wrapper=Ai(),this.textarea=this.wrapper.firstChild},Ui.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=ur(e);if(e.options.moveInputWithCursor){var o=$n(e,n.sel.primary().head,"div"),a=t.wrapper.getBoundingClientRect(),i=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,o.top+i.top-a.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,o.left+i.left-a.left))}return r},Ui.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Ui.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&D(this.textarea),i&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",i&&s>=9&&(this.hasSelection=null))}},Ui.prototype.getField=function(){return this.textarea},Ui.prototype.supportsTouch=function(){return!1},Ui.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!g||A()!=this.textarea))try{this.textarea.focus()}catch(e){}},Ui.prototype.blur=function(){this.textarea.blur()},Ui.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ui.prototype.receivedFocus=function(){this.slowPoll()},Ui.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Ui.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))})},Ui.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||xt(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var o=n.value;if(o==r&&!t.somethingSelected())return!1;if(i&&s>=9&&this.hasSelection===o||y&&/[\uf700-\uf7ff]/.test(o))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var a=o.charCodeAt(0);if(8203!=a||r||(r="​"),8666==a)return this.reset(),this.cm.execCommand("undo")}for(var l=0,u=Math.min(r.length,o.length);l1e3||o.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=o,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Ui.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ui.prototype.onKeyPress=function(){i&&s>=9&&(this.hasSelection=null),this.fastPoll()},Ui.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,o=t.textarea,a=ir(n,e),u=r.scroller.scrollTop;if(a&&!f){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(a)&&Gr(n,Ko)(n.doc,xo(a),W);var c=o.style.cssText,d=t.wrapper.style.cssText;t.wrapper.style.cssText="position: absolute";var p,h=t.wrapper.getBoundingClientRect();if(o.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(i?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(p=window.scrollY),r.input.focus(),l&&window.scrollTo(null,p),r.input.reset(),n.somethingSelected()||(o.value=t.prevInput=" "),t.contextMenuPending=!0,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),i&&s>=9&&v(),k){ct(e);var m=function(){tt(window,"mouseup",m),setTimeout(g,20)};Je(window,"mouseup",m)}else setTimeout(g,50)}function v(){if(null!=o.selectionStart){var e=n.somethingSelected(),a="​"+(e?o.value:"");o.value="⇚",o.value=a,t.prevInput=e?"":"​",o.selectionStart=1,o.selectionEnd=a.length,r.selForContextMenu=n.doc.sel}}function g(){if(t.contextMenuPending=!1,t.wrapper.style.cssText=d,o.style.cssText=c,i&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=u),null!=o.selectionStart){(!i||i&&s<9)&&v();var e=0,a=function(){r.selForContextMenu==n.doc.sel&&0==o.selectionStart&&o.selectionEnd>0&&"​"==t.prevInput?Gr(n,na)(n):e++<10?r.detectingSelectAll=setTimeout(a,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(a,200)}}},Ui.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Ui.prototype.setUneditable=function(){},Ui.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,o,a){e.defaults[n]=r,o&&(t[n]=a?function(e,t,n){n!=vi&&o(e,t,n)}:o)}e.defineOption=n,e.Init=vi,n("value","",function(e,t){return e.setValue(t)},!0),n("mode",null,function(e,t){e.doc.modeOption=t,Co(e)},!0),n("indentUnit",2,Co,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,function(e){So(e),zn(e),Qr(e)},!0),n("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var o=0;;){var a=e.text.indexOf(t,o);if(-1==a)break;o=a+t.length,n.push(me(r,a))}r++});for(var o=n.length-1;o>=0;o--)ua(e.doc,t,n[o],me(n[o].line,n[o].ch+t.length))}}),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=vi&&e.refresh()}),n("specialCharPlaceholder",Xt,function(e){return e.refresh()},!0),n("electricChars",!0),n("inputStyle",g?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),n("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),n("rtlMoveVisually",!x),n("wholeLineUpdateBefore",!0),n("theme","default",function(e){mi(e),bi(e)},!0),n("keyMap","default",function(e,t,n){var r=qa(t),o=n!=vi&&qa(n);o&&o.detach&&o.detach(e,r),r.attach&&r.attach(e,o||null)}),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,wi,!0),n("gutters",[],function(e){co(e.options),bi(e)},!0),n("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?rr(e.display)+"px":"0",e.refresh()},!0),n("coverGutterNextToScrollbar",!1,function(e){return Dr(e)},!0),n("scrollbarStyle","native",function(e){Fr(e),Dr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),n("lineNumbers",!1,function(e){co(e.options),bi(e)},!0),n("firstLineNumber",1,bi,!0),n("lineNumberFormatter",function(e){return e},bi,!0),n("showCursorWhenSelecting",!1,lr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("readOnly",!1,function(e,t){"nocursor"==t&&(gr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),n("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),n("dragDrop",!0,xi),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,lr,!0),n("singleCursorHeightPerLine",!0,lr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,So,!0),n("addModeClass",!1,So,!0),n("pollInterval",100),n("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),n("historyEventDelay",1250),n("viewportMargin",10,function(e){return e.refresh()},!0),n("maxHighlightLength",1e4,So,!0),n("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),n("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),n("autofocus",null),n("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Ei),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,o=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&Gr(this,t[e])(this,n,o),nt(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](qa(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(_i(this,o.head.line,e,!0),n=o.head.line,r==this.doc.sel.primIndex&&Cr(this));else{var a=o.from(),i=o.to(),s=Math.max(n,a.line);n=Math.min(this.lastLine(),i.line-(i.ch?0:1))+1;for(var l=s;l0&&Vo(this.doc,r,new yo(a,u[r].to()),W)}}}),getTokenAt:function(e,t){return Ht(this,e,t)},getLineTokens:function(e,t){return Ht(this,me(e),t,!0)},getTokenTypeAt:function(e){e=Ee(this.doc,e);var t,n=It(this,se(this.doc,e.line)),r=0,o=(n.length-1)/2,a=e.ch;if(0==a)t=n[2];else for(;;){var i=r+o>>1;if((i?n[2*i-1]:0)>=a)o=i;else{if(!(n[2*i+1]a&&(e=a,o=!0),r=se(this.doc,e)}else r=e;return Wn(this,r,{top:0,left:0},t||"page",n||o).top+(o?this.doc.height-Ve(r):0)},defaultTextHeight:function(){return er(this.display)},defaultCharWidth:function(){return tr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,o){var a,i,s,l=this.display,u=(e=$n(this,Ee(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),l.sizer.appendChild(t),"over"==r)u=e.top;else if("above"==r||"near"==r){var f=Math.max(l.wrapper.clientHeight,this.doc.height),d=Math.max(l.sizer.clientWidth,l.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>f)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=f&&(u=e.bottom),c+t.offsetWidth>d&&(c=d-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==o?(c=l.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==o?c=0:"middle"==o&&(c=(l.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),n&&(a=this,i={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=kr(a,i)).scrollTop&&Pr(a,s.scrollTop),null!=s.scrollLeft&&Mr(a,s.scrollLeft))},triggerOnKeyDown:Kr(oi),triggerOnKeyPress:Kr(ii),triggerOnKeyUp:ai,triggerOnMouseDown:Kr(ci),execCommand:function(e){if(Ya.hasOwnProperty(e))return Ya[e].call(null,this)},triggerElectric:Kr(function(e){Pi(this,e)}),findPosH:function(e,t,n,r){var o=1;t<0&&(o=-1,t=-t);for(var a=Ee(this.doc,e),i=0;i0&&i(t.charAt(n-1));)--n;for(;r.5)&&ar(this),nt(this,"refresh",this)}),swapDoc:Kr(function(e){var t=this.doc;return t.cm=null,No(this,e),zn(this),this.display.input.reset(),Sr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sn(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},it(e),e.registerHelper=function(t,r,o){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=o},e.registerGlobalHelper=function(t,r,o,a){e.registerHelper(t,r,a),n[t]._global.push({pred:o,val:a})}}(Ei);var Bi,Hi="iter insert remove copy getEditor constructor".split(" ");for(var Wi in Ca.prototype)Ca.prototype.hasOwnProperty(Wi)&&U(Hi,Wi)<0&&(Ei.prototype[Wi]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ca.prototype[Wi]));return it(Ca),Ei.inputStyles={textarea:Ui,contenteditable:Di},Ei.defineMode=function(e){Ei.defaults.mode||"null"==e||(Ei.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),kt[e]=t}.apply(this,arguments)},Ei.defineMIME=function(e,t){_t[e]=t},Ei.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Ei.defineMIME("text/plain","null"),Ei.defineExtension=function(e,t){Ei.prototype[e]=t},Ei.defineDocExtension=function(e,t){Ca.prototype[e]=t},Ei.fromTextArea=function(e,t){if((t=t?L(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=A();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=s.getValue()}var o;if(e.form&&(Je(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var a=e.form;o=a.submit;try{var i=a.submit=function(){r(),a.submit=o,a.submit(),a.submit=i}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(tt(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=o))}},e.style.display="none";var s=Ei(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},(Bi=Ei).off=tt,Bi.on=Je,Bi.wheelEventPixels=mo,Bi.Doc=Ca,Bi.splitLines=bt,Bi.countColumn=F,Bi.findColumn=$,Bi.isWordChar=ee,Bi.Pass=H,Bi.signal=nt,Bi.Line=Vt,Bi.changeEnd=wo,Bi.scrollbarModel=Lr,Bi.Pos=me,Bi.cmpPos=ve,Bi.modes=kt,Bi.mimeModes=_t,Bi.resolveMode=Ct,Bi.getMode=St,Bi.modeExtensions=Ot,Bi.extendMode=Tt,Bi.copyState=Pt,Bi.startState=Mt,Bi.innerMode=Nt,Bi.commands=Ya,Bi.keyMap=La,Bi.keyName=Wa,Bi.isModifierKey=Ba,Bi.lookupKey=Ua,Bi.normalizeKeyMap=za,Bi.StringStream=At,Bi.SharedTextMarker=wa,Bi.TextMarker=ba,Bi.LineWidget=va,Bi.e_preventDefault=st,Bi.e_stopPropagation=lt,Bi.e_stop=ct,Bi.addClass=R,Bi.contains=M,Bi.rmClass=S,Bi.keyNames=Ra,Ei.version="5.37.0",Ei},e.exports=r()},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var r=s(n(702)),o=s(n(705)),a=s(n(304)),i=s(n(305));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(t){var n=(0,r.default)(function(e,t){return!(0,o.default)(e,t)});return"production"!==e.env.NODE_ENV?(0,a.default)((0,i.default)(t,"pure"))(n(t)):n(t)}}).call(t,n(2))},function(e,t,n){"use strict";var r=n(3);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.default}});var o=r(n(706))},function(e,t,n){var r=n(39),o=n(21),a=n(57),i=n(49),s=n(60),l=function(e,t,n){var u,c,f,d=e&l.F,p=e&l.G,h=e&l.S,m=e&l.P,v=e&l.B,g=e&l.W,y=p?o:o[t]||(o[t]={}),b=y.prototype,x=p?r:h?r[t]:(r[t]||{}).prototype;for(u in p&&(n=t),n)(c=!d&&x&&void 0!==x[u])&&s(y,u)||(f=c?x[u]:n[u],y[u]=p&&"function"!=typeof x[u]?n[u]:v&&c?a(f,r):g&&x[u]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):m&&"function"==typeof f?a(Function.call,f):f,m&&((y.virtual||(y.virtual={}))[u]=f,e&l.R&&b&&!b[u]&&i(b,u,f)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,n){var r=n(142)("wks"),o=n(103),a=n(39).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";n.d(t,"e",function(){return i}),n.d(t,"g",function(){return c}),n.d(t,"a",function(){return f}),n.d(t,"d",function(){return u}),n.d(t,"c",function(){return s}),n.d(t,"b",function(){return l}),n.d(t,"f",function(){return a}),n.d(t,"h",function(){return o});var r=n(66);function o(){return"editor"===r.a.getState().viewMode}function a(){return"command"===r.a.getState().mode&&o()}function i(){return r.a.getState().cells}function s(){const{cells:e}=r.a.getState(),t=e.findIndex(e=>e.selected);if(t===e.length-1)return null;if(t>=0&&te.selected);if(0===t)return null;if(t>0&&t<=e.length-1)return e[t-1].id;throw new Error("no cell currently selected")}function u(e,t){return e[e.findIndex(e=>e.id===t)]}function c(e){const t=new Date(e),n=((new Date).getTime()-t.getTime())/1e3,r=Math.floor(n/86400);return Number.isNaN(r)||r<0||r>0?`${t.getDate()} ${t.toDateString().split(" ")[1]}`:0===r&&((n<60?"just now":n<120&&"1 minute ago")||n<3600&&`${Math.floor(n/60)} minutes ago`||n<7200&&"1 hour ago"||n<86400&&`${Math.floor(n/3600)} hours ago`)||1===r&&"Yesterday"||r<7&&`${r} days ago`||r<31&&`${Math.ceil(r/7)} weeks ago`}function f(e){return new Date(e).toUTCString()}},function(e,t,n){var r=n(58),o=n(216),a=n(136),i=Object.defineProperty;t.f=n(40)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(34),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,a.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(232)),o=i(n(433)),a="function"==typeof o.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function i(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===a(r.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":a(e)}},function(e,t,n){var r=n(156)("wks"),o=n(107),a=n(51).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(442)),o=i(n(446)),a=i(n(34));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,a.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e&&e.ownerDocument||document},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.temporarilySaveRunningCellID=g,t.updateAppMessages=y,t.importNotebook=b,t.importFromURL=function(e){return t=>(t(b(e)),t(y({message:"Notebook successfully imported from URL."})),Promise.resolve())},t.exportNotebook=function(e=!1,t=!1){return{type:"EXPORT_NOTEBOOK",exportAsReport:e,exportToClipboard:t}},t.saveNotebook=function(e=!1){return{type:"SAVE_NOTEBOOK",autosave:e}},t.loadNotebook=function(e){return{type:"LOAD_NOTEBOOK",title:e}},t.deleteNotebook=function(e){return{type:"DELETE_NOTEBOOK",title:e}},t.newNotebook=function(){return{type:"NEW_NOTEBOOK"}},t.clearVariables=function(){return{type:"CLEAR_VARIABLES"}},t.changePageTitle=function(e){return{type:"CHANGE_PAGE_TITLE",title:e}},t.changeMode=function(e){return{type:"CHANGE_MODE",mode:e}},t.setViewMode=function(e){return{type:"SET_VIEW_MODE",viewMode:e}},t.updateInputContent=function(e){return{type:"UPDATE_INPUT_CONTENT",content:e}},t.changeCellType=x,t.appendToEvalHistory=w,t.updateCellProperties=E,t.incrementExecutionNumber=k,t.updateUserVariables=_,t.addLanguage=C,t.evaluateCell=S,t.evaluateAllCells=function(e){return t=>{let n=Promise.resolve();e.forEach(e=>{"css"!==e.cellType||e.skipInRunAll||(n=n.then(()=>t(S(e.id))))}),e.forEach(e=>{"markdown"!==e.cellType||e.skipInRunAll||(n=n.then(()=>t(S(e.id))))}),e.forEach(e=>{"markdown"===e.cellType||"css"===e.cellType||e.skipInRunAll||(n=n.then(()=>t(S(e.id))))})}},t.setCellRowCollapsedState=function(e,t,n,r){return{type:"SET_CELL_ROW_COLLAPSE_STATE",viewMode:e,rowType:t,rowOverflow:n,cellId:r}},t.markCellNotRendered=function(){return{type:"MARK_CELL_NOT_RENDERED"}},t.login=function(){return window.open("/oauth/login/github","github_login","width=500,height=600").focus(),e=>{window.loginSuccess=(t=>{e((t=t,e=>{e({type:"LOGIN_SUCCESS",userData:t}),e(y({message:"You are logged in"}))}))}),window.loginFailure=(()=>e(e=>{e(y({message:"Login Failed"}))}))};var e},t.logout=function(){return e=>{fetch("/logout/").then(t=>{t.ok?(e({type:"LOGOUT"}),e(y({message:"Logged Out"}))):e(y({message:"Logout Failed"}))})}},t.exportGist=function(){const e="https://api.github.com";return(t,n)=>{const r=n(),o=Object(u.e)(r.title);let a,i=!1;const s={description:r.title,public:!0,files:{[o]:{content:Object(u.a)(r)}}};fetch(`${e}/gists?access_token=${r.userData.accessToken}`).then(e=>e.json()).then(t=>{if(!(a=t.filter(e=>e.description===s.description&&1===Object.keys(e.files).length&&Object.keys(e.files)[0]===o)).length)return fetch(`${e}/gists?access_token=${r.userData.accessToken}`,{body:JSON.stringify(s),method:"POST"});i=!0;const n=a[0].id;return fetch(`${e}/gists/${n}?access_token=${r.userData.accessToken}`,{body:JSON.stringify(s),method:"PATCH"})}).then(e=>e.json()).then(e=>{const n=i?"Updated Gist":"Exported to GitHub Gist";t(y({message:n,details:`${n}
Gist -\n Runnable notebook`}))})}},t.cellUp=function(){return{type:"CELL_UP"}},t.cellDown=function(){return{type:"CELL_DOWN"}},t.insertCell=function(e,t){return{type:"INSERT_CELL",cellType:e,direction:t}},t.addCell=function(e){return{type:"ADD_CELL",cellType:e}},t.selectCell=function(e,t=!1){return{type:"SELECT_CELL",id:e,scrollToCell:t}},t.deleteCell=function(){return{type:"DELETE_CELL"}},t.changeElementType=function(e){return{type:"CHANGE_ELEMENT_TYPE",elementType:e}},t.changeDOMElementID=function(e){return{type:"CHANGE_DOM_ELEMENT_ID",elemID:e}},t.changeSidePaneMode=function(e){return{type:"CHANGE_SIDE_PANE_MODE",mode:e}},t.changeSidePaneWidth=function(e){return{type:"CHANGE_SIDE_PANE_WIDTH",widthShift:e}},t.setCellSkipInRunAll=function(e){return(t,n)=>{let r=e;void 0===r&&(r=!Object(f.c)(n()).skipInRunAll),t(E(Object(f.c)(n()).id,{skipInRunAll:r}))}},t.saveEnvironment=function(e,t){return{type:"SAVE_ENVIRONMENT",updateObj:e,update:t}};var r=n(276),o=n.n(r),a=n(285),i=n.n(a),s=n(289),l=n.n(s),u=n(93),c=n(30),f=n(290),d=n(291),p=n(292);let h=Promise.resolve();const m=o()({html:!0});m.use(i.a).use(l.a);const v=n(25);function g(e){return{type:"TEMPORARILY_SAVE_RUNNING_CELL_ID",cellID:e}}function y(e){const{message:t}=e;let{details:n,when:r}=e;return void 0===r&&(r=(new Date).toString()),void 0===n&&(n=t),{type:"UPDATE_APP_MESSAGES",message:{message:t,details:n,when:r}}}function b(e){return{type:"IMPORT_NOTEBOOK",newState:e}}function x(e,t="js"){return(n,r)=>{Object(c.f)(r())&&n({type:"CHANGE_CELL_TYPE",cellType:e,language:t})}}function w(e,t){return{type:"APPEND_TO_EVAL_HISTORY",cellId:e,content:t}}function E(e,t){return{type:"UPDATE_CELL_PROPERTIES",cellId:e,updatedProperties:t}}function k(){return{type:"INCREMENT_EXECUTION_NUMBER"}}function _(){return{type:"UPDATE_USER_VARIABLES"}}function C(e){return{type:"ADD_LANGUAGE",languageDefinition:e}}function S(e){return(t,n)=>{let r,o;return"code"===(o=void 0===e?Object(f.c)(n()):Object(c.d)(n().cells,e)).cellType?r=h=h.then(()=>t((o=o,(e,t)=>{const n=t();let r,a;const i=o.content,s=n.languages[o.language].module,{evaluator:l}=n.languages[o.language];document.getElementById(`cell-${o.id}-side-effect-target`).innerHTML="",e(g(o.id));try{r=window[s][l](i)}catch(e){r=e,a="ERROR"}return Promise.resolve().then(()=>{const t={value:r,rendered:!0};"ERROR"===a&&(t.evalStatus=a),e(E(o.id,t)),e({type:"INCREMENT_EXECUTION_NUMBER"}),e(w(o.id,o.content)),e({type:"UPDATE_USER_VARIABLES"})}).then(d.b).then(()=>e(g(void 0)))}))):"markdown"===o.cellType?r=t(function(e){return t=>t(E(e.id,{value:m.render(e.content),rendered:!0,evalStatus:"SUCCESS"}))}(o)):"external dependencies"===o.cellType?r=t(function(e){return(t,n)=>{const r=[...n().externalDependencies],o=e.content.split("\n").filter(e=>"//"!==e.trim().slice(0,2)).filter(e=>!r.includes(e)).map(f.a);o.forEach(e=>{r.includes(e.src)||r.push(e.src)});const a=o.map(e=>e.status).includes("error")?"ERROR":"SUCCESS";t(E(e.id,{value:new Array(...[...e.value||[],...o]),rendered:!0,evalStatus:a})),o.length&&t(w(e.id,`// added external dependencies:\n${o.map(e=>`// ${e.src}`).join("\n")}`)),t({type:"INCREMENT_EXECUTION_NUMBER"}),t({type:"UPDATE_USER_VARIABLES"})}}(o)):"css"===o.cellType?r=t(function(e){return t=>{t(E(e.id,{value:e.content,rendered:!0,evalStatus:"SUCCESS"}))}}(o)):"plugin"===o.cellType?r="language"===JSON.parse(o.content).pluginType?h=h.then(()=>t(function(e){return t=>{let n,r,o,a;try{n=JSON.parse(e.content)}catch(e){r=`plugin definition failed to parse:\n${e.message}`,o="ERROR"}if(void 0===n.url)r='plugin definition missing "url"',o="ERROR",t(E(e.id,{value:r,evalStatus:o,rendered:!0}));else{const{url:i,keybinding:s,languageId:l,displayName:u}=n;a=new Promise((a,c)=>{const f=new XMLHttpRequest;f.addEventListener("progress",n=>{r=`downloading plugin: ${n.loaded} bytes loaded`,n.total>0&&(r+=`out of ${n.total} (${n.loaded/n.total}%)`),o="ASYNC_PENDING",t(E(e.id,{value:r,evalStatus:o,rendered:!0}))}),f.addEventListener("load",()=>{r=`${u} plugin downloaded, initializing`,t(E(e.id,{value:r,evalStatus:o,rendered:!0})),Promise.resolve(window.eval(f.responseText)).then(()=>{r=`${u} plugin ready`,o="SUCCESS",t(C(n)),1===s.length&&"string"==typeof s&&Object(p.a)([s],()=>t(x("code",l))),t(E(e.id,{value:r,evalStatus:o,rendered:!0})),a()})}),f.addEventListener("error",()=>{r=`${u} plugin failed to load`,o="ERROR",t(E(e.id,{value:r,evalStatus:o,rendered:!0})),c()}),f.open("GET",i,!0),f.send(),v.requireMode(n.codeMirrorMode,()=>{})})}return a}}(o))):t(y({message:'No loader for plugin type or missing "pluginType" entry'})):o.rendered=!1,r};var t}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){e.exports=!n(59)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(51),o=n(23),a=n(158),i=n(72),s=function(e,t,n){var l,u,c,f=e&s.F,d=e&s.G,p=e&s.S,h=e&s.P,m=e&s.B,v=e&s.W,g=d?o:o[t]||(o[t]={}),y=g.prototype,b=d?r:p?r[t]:(r[t]||{}).prototype;for(l in d&&(n=t),n)(u=!f&&b&&void 0!==b[l])&&l in g||(c=u?b[l]:n[l],g[l]=d&&"function"!=typeof b[l]?n[l]:m&&u?a(c,r):v&&b[l]==c?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):h&&"function"==typeof c?a(Function.call,c):c,h&&((g.virtual||(g.virtual={}))[l]=c,e&s.R&&y&&!y[l]&&i(y,l,c)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t,n){"use strict";(function(e){var r=n(3);Object.defineProperty(t,"__esModule",{value:!0}),t.capitalize=function(t){if("production"!==e.env.NODE_ENV&&"string"!=typeof t)throw new Error("Material-UI: capitalize(string) expects a string argument.");return t.charAt(0).toUpperCase()+t.slice(1)},t.contains=s,t.findIndex=l,t.find=function(e,t){var n=l(e,t);return n>-1?e[n]:void 0},t.createChainedFunction=function(){for(var t=arguments.length,n=new Array(t),r=0;r":">","<":"<",'"':""","'":"'"},s=/[&><"']/g;function l(e){return i[e]}if("undefined"!=typeof document){var u=document.createElement("span");n="textContent"in u?function(e,t){e.textContent=t}:function(e,t){e.innerText=t}}e.exports={contains:function(e,t){return-1!==o(e,t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return(""+e).replace(s,l)},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},indexOf:o,setTextContent:n,clearNode:function(e){n(e,"")}}},function(e,t,n){"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,i,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l{if("values"===e||"contains"===e)throw Error(`disallowed enum name: ${e}`);this[e]=e}),Object.freeze(this)}values(){return Object.keys(this)}contains(e){return Object.keys(this).indexOf(e)>=0}},o=new r("VISIBLE","SCROLL","HIDDEN"),a=new r("code","markdown","raw","css","external dependencies","plugin");t.b=a;const i=new r("UNEVALUATED","PENDING","ASYNC_PENDING","SUCCESS","ERROR");a.values(),i.values();function s(e){return{HIDDEN:"VISIBLE",VISIBLE:"SCROLL",SCROLL:"HIDDEN"}[e]}const l='{\n "pluginType": ""\n "languageId": "",\n "displayName": "",\n "codeMirrorMode": "",\n "keybinding": "",\n "url": "",\n "module": "",\n "evaluator": ""\n}';function u(e,t,n="js"){return{content:"plugin"===t?l:"",id:e,cellType:t,value:void 0,rendered:!1,selected:!1,asyncProcessCount:0,executionStatus:" ",evalStatus:"UNEVALUATED",rowSettings:function(e){switch(e){case"code":return{EXPLORE:{input:"VISIBLE",sideeffect:"VISIBLE",output:"VISIBLE"},REPORT:{input:"HIDDEN",sideeffect:"VISIBLE",output:"HIDDEN"}};case"markdown":return{EXPLORE:{input:"VISIBLE",output:"VISIBLE"},REPORT:{input:"VISIBLE",output:"VISIBLE"}};case"external dependencies":case"plugin":return{EXPLORE:{input:"VISIBLE",output:"VISIBLE"},REPORT:{input:"HIDDEN",output:"HIDDEN"}};case"css":case"raw":return{EXPLORE:{input:"VISIBLE"},REPORT:{input:"HIDDEN"}};default:throw Error(`Unsupported cellType: ${e}`)}}(t),skipInRunAll:!1,language:n}}const c={pluginType:"language",languageId:"js",displayName:"Javascript",codeMirrorMode:"javascript",module:"window",evaluator:"eval",keybinding:"j",url:""};function f(){return{title:"untitled",cells:[],languages:{js:c},languageLastUsed:"js",userDefinedVarNames:[],lastSaved:void 0,userData:{},mode:"command",viewMode:"editor",sidePaneMode:void 0,sidePaneWidth:562,history:[],externalDependencies:[],executionNumber:0,appMessages:[],autoSave:void 0,locallySaved:[],savedEnvironment:{},runningCellID:void 0}}function d(e){return Math.max(-1,...e.map(e=>e.id))+1}function p(){const e=function(e,t="code",n="js"){const r=d(e.cells);return e.cells.push(u(r,t,n)),e}(f());return e.cells[0].selected=!0,Object.assign(e)}},function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(8),i=n(48),s=n(1),l=n.n(s),u=n(69),c=n.n(u),f=n(30),d=n(38),p=n(67);class h extends o.a.Component{constructor(e){super(e),this.handleCollapseButtonClick=this.handleCollapseButtonClick.bind(this)}componentDidUpdate(){this.props.uncollapseOnUpdate&&this.props.actions.setCellRowCollapsedState("editor","input",p.g.SCROLL)}handleCollapseButtonClick(){"editor"===this.props.viewMode&&this.props.actions.setCellRowCollapsedState("editor",this.props.rowType,Object(p.f)(this.props.rowOverflow))}render(){return o.a.createElement("div",{className:`cell-row ${this.props.rowType} ${this.props.rowOverflow}`},o.a.createElement(c.a,{classes:{root:"collapse-button-tooltip-wrapper",tooltip:"iodide-tooltip"},placement:this.props.collapseTooltipPlacement,title:this.props.tooltipText,enterDelay:600},o.a.createElement("div",{className:"collapse-button",onClick:this.handleCollapseButtonClick})),o.a.createElement("div",{className:"main-component"},this.props.children))}}h.propTypes={executionString:l.a.string,viewMode:l.a.oneOf(["editor","presentation"]),rowOverflow:l.a.oneOf(p.g.values()),rowType:l.a.string,collapseTooltipPlacement:l.a.string.isRequired,actions:l.a.shape({setCellRowCollapsedState:l.a.func.isRequired}).isRequired,children:l.a.node},t.a=Object(a.b)(function(e,t){const n=Object(f.d)(e.cells,t.cellId);let r;switch(e.viewMode){case"editor":r="EXPLORE";break;case"presentation":r="REPORT";break;default:throw Error(`Unsupported viewMode: ${e.viewMode}`)}const o=n.rowSettings[r][t.rowType],a="input"===t.rowType&&"code"===n.cellType?`[${n.executionStatus}]`:"",i=n.selected&&"editor"===e.viewMode&&"edit"===e.mode&&"input"===t.rowType&&o===p.g.HIDDEN,s=o===p.g.HIDDEN?"bottom":"right",l=`click to ${{HIDDEN:"expand",VISIBLE:"scroll",SCROLL:"collapse"}[o]} this ${t.rowType}`;return{cellId:t.cellId,viewMode:e.viewMode,uncollapseOnUpdate:i,executionString:a,rowOverflow:o,collapseTooltipPlacement:s,tooltipText:l}},function(e){return{actions:Object(i.b)(d,e)}})(h)},function(e,t,n){"use strict";var r=n(3);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.default}});var o=r(n(382))},function(e,t,n){var r=n(139);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){var r=n(52),o=n(87);e.exports=n(65)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports={}},function(e,t,n){var r=n(236),o=n(154);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=t)throw new Error("Cannot access property/index "+r+" levels up, current level is "+t);return n[t-r]}if(r>t)throw new Error("Cannot access data "+r+" levels up, current level is "+t);if(a="data"+(t-r||""),!o)return a}for(var s=a,u=o.split("/"),c=0;c{if("editor"===this.props.viewMode){const e=!1;this.props.selected||this.props.actions.selectCell(this.props.cellId,e)}}),t}render(){const e=`cell-container ${this.props.cellType}${this.props.selected?" selected-cell":""}${this.props.editingCell?" editing-cell":""}`;return o.a.createElement("div",{id:`cell-${this.props.cellId}`,className:e,onMouseDown:this.handleCellClick},o.a.createElement(d.a,{cellId:this.props.cellId}),o.a.createElement("div",{className:"cell-row-container"},this.props.children))}}p.propTypes={selected:l.a.bool.isRequired,cellId:l.a.number.isRequired,children:l.a.node,editingCell:l.a.bool.isRequired,viewMode:l.a.oneOf(["editor","presentation"]),cellType:l.a.oneOf(f.b.values()),actions:l.a.shape({selectCell:l.a.func.isRequired}).isRequired};const h=Object(a.b)(function(e,t){const n=Object(c.d)(e.cells,t.cellId);return{cellId:n.id,selected:n.selected,editingCell:n.selected&&"edit"===e.mode,viewMode:e.viewMode,cellType:n.cellType}},function(e){return{actions:Object(i.b)(u,e)}})(p)},function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(8),i=n(48),s=n(1),l=n.n(s),u=n(306),c=n.n(u),f=n(713),d=(n.n(f),n(714)),p=(n.n(d),n(717)),h=(n.n(p),n(307)),m=(n.n(h),n(718)),v=(n.n(m),n(719)),g=(n.n(v),n(720)),y=(n.n(g),n(721)),b=(n.n(y),n(722)),x=(n.n(b),n(723)),w=(n.n(x),n(30)),E=n(38);{const e=n(25);e.modeUrl=`https://cdnjs.cloudflare.com/ajax/libs/codemirror/${e.version}/mode/%N/%N.js`,window.CodeMirror=e;const t={};function k(t,n){const r=e.modes[t].dependencies;if(!r)return n();const o=[];for(let t=0;t{0==(n-=1)&&e()}}(n,o.length);for(let t=0;t{if(Object.prototype.hasOwnProperty.call(e.modes,n))return k(n,r);if(Object.prototype.hasOwnProperty.call(t,n))return t[n].push(r);const o=e.modeUrl.replace(/%N/g,n),a=document.createElement("script");a.src=o;const i=document.getElementsByTagName("script")[0];t[n]=[r];const s=t[n];e.on(a,"load",()=>{k(n,()=>{for(let e=0;e{const t=this.editor.getCodeMirrorInstance();t.showHint(e,t.hint.javascript,{disableKeywords:!0,completeSingle:!1,completeOnSingleClick:!1})}),this.storeEditorElementRef=this.storeEditorElementRef.bind(this),this.handleFocusChange=this.handleFocusChange.bind(this),this.updateInputContent=this.updateInputContent.bind(this),this.storeEditorElementRef=this.storeEditorElementRef.bind(this)}componentDidMount(){this.props.thisCellBeingEdited&&this.refs.hasOwnProperty("editor")&&this.editor.focus()}componentDidUpdate(){this.props.thisCellBeingEdited?this.editor.focus():void 0!==this.editor.getCodeMirror().display.input.textarea&&this.editor.getCodeMirror().display.input.textarea.blur()}handleFocusChange(e){e&&"editor"===this.props.viewMode?this.props.thisCellBeingEdited||(this.props.actions.selectCell(this.props.cellId),this.props.actions.changeMode("edit")):e||"editor"!==this.props.viewMode||this.props.actions.changeMode("command")}storeEditorElementRef(e){this.editor=e,this.props.inputRef&&this.props.inputRef(e)}updateInputContent(e){this.props.actions.updateInputContent(e)}render(){const e=Object.assign({},{mode:this.props.languageIsAvailable?this.props.codeMirrorMode:"",lineWrapping:!1,matchBrackets:!0,autoCloseBrackets:!0,theme:"eclipse",autoRefresh:!0,lineNumbers:!0,keyMap:"sublime",extraKeys:{"Ctrl-Space":"javascript"===this.props.codeMirrorMode?this.autoComplete:void 0},comment:"javascript"===this.props.codeMirrorMode,readOnly:"presentation"===this.props.viewMode},this.props.editorOptions);return o.a.createElement("div",{className:"editor",style:this.props.containerStyle},o.a.createElement(c.a,{ref:this.storeEditorElementRef,value:this.props.content,options:e,onChange:this.updateInputContent,onFocusChange:this.handleFocusChange}))}}_.propTypes={cellId:l.a.number.isRequired,cellType:l.a.string,content:l.a.string,viewMode:l.a.oneOf(["editor","presentation"]),languageIsAvailable:l.a.bool,actions:l.a.shape({selectCell:l.a.func.isRequired,changeMode:l.a.func.isRequired,updateInputContent:l.a.func.isRequired}).isRequired,inputRef:l.a.func,containerStyle:l.a.object,editorOptions:l.a.object},t.a=Object(a.b)(function(e,t){const{cellId:n}=t,r=Object(w.d)(e.cells,n),o=r.language in e.languages?e.languages[r.language].module:null,a="code"===r.cellType?e.languages[r.language].codeMirrorMode:r.cellType;return{thisCellBeingEdited:r.selected&&"edit"===e.mode,viewMode:e.viewMode,cellType:r.cellType,content:r.content,cellId:n,codeMirrorMode:a,languageIsAvailable:"code"!==r.cellType||void 0!==window[o]}},function(e){return{actions:Object(i.b)(E,e)}})(_)},function(e,t,n){"use strict";t.c=g,t.b=function(e){b.unshift(e)};var r=n(0),o=n.n(r),a=n(1),i=n.n(a),s=n(732),l=n(733),u=n(734),c=n(741),f=n(743),d=n(744),p=n(745),h=n(746),m=n(747),v=n(781);function g(e,t=!1){for(const n of b)if(n.shouldHandle(e,t)){const r=n.render(e,t);if("string"==typeof r)return o.a.createElement("div",null,r);if(void 0!==r.tagName)return o.a.createElement("div",{dangerouslySetInnerHTML:{__html:r.outerHTML}});if(void 0!==r.type)return r;console.warn(`Unknown output handler result type from ${n}`)}}const y={shouldHandle:e=>void 0!==e&&"function"==typeof e.iodideRender,render:(e,t)=>{const n=e.iodideRender(t);if("string"==typeof n)return o.a.createElement("div",{dangerouslySetInnerHTML:{__html:n}})}},b=[{shouldHandle:e=>e instanceof Error,render:e=>{let{stack:t}=e;return e.lineNumber&&(t=`${e.name}: ${e.message}\n${t}`),o.a.createElement("div",{className:"error-output"},o.a.createElement("pre",null,t))}},s.a,l.a,y,u.a,c.a,f.a,d.a,p.a,m.a,h.a,v.a];class x extends o.a.Component{render(){if(!this.props.render||void 0===this.props.valueToRender)return o.a.createElement("div",{className:"empty-resultset"});const e=g(this.props.valueToRender);return void 0!==e?o.a.createElement("div",{className:"rep-container"},e):o.a.createElement("div",{className:"empty-resultset"})}}t.a=x,x.propTypes={render:i.a.bool.isRequired,valueToRender:i.a.any}},function(e,t,n){"use strict";(function(t){var n={};"production"!==t.env.NODE_ENV&&Object.freeze(n),e.exports=n}).call(t,n(2))},function(e,t,n){"use strict";(function(t){var r=n(56);if("production"!==t.env.NODE_ENV){r=function(e,t){if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:.15;return u(e)>.5?c(e,t):f(e,t)},t.fade=function(t,n){if("production"!==e.env.NODE_ENV&&(0,o.default)(t,"Material-UI: missing color argument in fade(".concat(t,", ").concat(n,").")),!t)return t;t=s(t),n=a(n),("rgb"===t.type||"hsl"===t.type)&&(t.type+="a");return t.values[3]=n,l(t)},t.darken=c,t.lighten=f;var o=r(n(14));function a(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return"production"!==e.env.NODE_ENV&&(0,o.default)(t>=n&&t<=r,"Material-UI: the value provided ".concat(t," is out of range [").concat(n,", ").concat(r,"].")),tr?r:t}function i(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map(function(e){return e+e})),n?"rgb(".concat(n.map(function(e){return parseInt(e,16)}).join(", "),")"):""}function s(t){if("#"===t.charAt(0))return s(i(t));var n=t.indexOf("("),r=t.substring(0,n),o=t.substring(n+1,t.length-1).split(",");if(o=o.map(function(e){return parseFloat(e)}),"production"!==e.env.NODE_ENV&&-1===["rgb","rgba","hsl","hsla"].indexOf(r))throw new Error(["Material-UI: unsupported `".concat(t,"` color."),"We support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()."].join("\n"));return{type:r,values:o}}function l(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")&&(n=n.map(function(e,t){return t<3?parseInt(e,10):e})),-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(e.type,"(").concat(n.join(", "),")")}function u(e){var t=s(e);if(-1!==t.type.indexOf("rgb")){var n=t.values.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)});return Number((.2126*n[0]+.7152*n[1]+.0722*n[2]).toFixed(3))}return t.values[2]/100}function c(t,n){if("production"!==e.env.NODE_ENV&&(0,o.default)(t,"Material-UI: missing color argument in darken(".concat(t,", ").concat(n,").")),!t)return t;if(t=s(t),n=a(n),-1!==t.type.indexOf("hsl"))t.values[2]*=1-n;else if(-1!==t.type.indexOf("rgb"))for(var r=0;r<3;r+=1)t.values[r]*=1-n;return l(t)}function f(t,n){if("production"!==e.env.NODE_ENV&&(0,o.default)(t,"Material-UI: missing color argument in lighten(".concat(t,", ").concat(n,").")),!t)return t;if(t=s(t),n=a(n),-1!==t.type.indexOf("hsl"))t.values[2]+=(100-t.values[2])*n;else if(-1!==t.type.indexOf("rgb"))for(var r=0;r<3;r+=1)t.values[r]+=(255-t.values[r])*n;return l(t)}}).call(t,n(2))},function(e,t,n){"use strict";(function(e){var r=n(3);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isNumber=t.isString=t.formatMs=t.duration=t.easing=void 0;var o=r(n(50)),a=r(n(4)),i=r(n(530)),s=r(n(14)),l={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"};t.easing=l;var u={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};t.duration=u;var c=function(e){return"".concat(Math.round(e),"ms")};t.formatMs=c;var f=function(e){return"string"==typeof e};t.isString=f;var d=function(e){return!(0,i.default)(parseFloat(e))};t.isNumber=d;var p={easing:l,duration:u,create:function(){var t,n,r,i,p,h,m,v=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],g=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t=g.duration,n=void 0===t?u.standard:t,r=g.easing,i=void 0===r?l.easeInOut:r,p=g.delay,h=void 0===p?0:p,m=(0,a.default)(g,["duration","easing","delay"]),"production"!==e.env.NODE_ENV&&(0,s.default)(f(v)||Array.isArray(v),'Material-UI: argument "props" must be a string or Array.'),"production"!==e.env.NODE_ENV&&(0,s.default)(d(n)||f(n),'Material-UI: argument "duration" must be a number or a string but found '.concat(n,".")),"production"!==e.env.NODE_ENV&&(0,s.default)(f(i),'Material-UI: argument "easing" must be a string.'),"production"!==e.env.NODE_ENV&&(0,s.default)(d(h)||f(h),'Material-UI: argument "delay" must be a number or a string.'),"production"!==e.env.NODE_ENV&&(0,s.default)(0===(0,o.default)(m).length,"Material-UI: unrecognized argument(s) [".concat((0,o.default)(m).join(","),"]")),(Array.isArray(v)?v:[v]).map(function(e){return"".concat(e," ").concat("string"==typeof n?n:c(n)," ").concat(i," ").concat("string"==typeof h?h:c(h))}).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}};t.default=p}).call(t,n(2))},function(e,t,n){"use strict";n.d(t,"c",function(){return v}),n.d(t,"d",function(){return g}),n.d(t,"a",function(){return y}),n.d(t,"b",function(){return b}),n.d(t,"e",function(){return x});var r=n(100),o=n.n(r),a=n(94),i=n.n(a),s=n(67),l=n(582),u=n.n(l);const c=["md","js","code","raw","resource","css","plugin"],f=new Map([["js","code"],["code","code"],["md","markdown"],["plugin","plugin"],["markdown","markdown"],["external","external dependencies"],["resource","external dependencies"],["raw","raw"],["css","css"]]),d=new Map([["plugin","plugin"],["code","code"],["markdown","md"],["external dependencies","resource"],["raw","raw"],["css","css"]]),p=["title","viewMode","lastSaved","languages","savedEnvironment"],h=["language","rowSettings.REPORT.input","rowSettings.REPORT.output","skipInRunAll"];function m(e,t,n){let r,o,a,l={};const u=e.indexOf("\n");-1===u?(a=e,o=""):(a=e.substring(0,u).trim(),o=e.substring(u+1).trim());const d=a.indexOf(" ");if(-1===d)r=a.toLowerCase();else{r=a.substring(0,d).toLowerCase();try{l=JSON.parse(a.substring(d+1))}catch(e){n.push({parseError:"failed to parse cell settings, using defaults",details:a,jsError:`${e.name}: ${e.message}`})}}let p;return p="meta"===r?function(e,t){let n;try{n=JSON.parse(e)}catch(r){t.push({parseError:"Failed to parse notebook settings from meta cell. Using default settings.",details:e,jsError:`${r.name}: ${r.message}`}),n={}}return{chunkType:"meta",iodideSettings:n}}(o,n):function(e,t,n,r,o,a){let l=f.get(e);-1===c.indexOf(e)&&(a.push({parseError:"invalid cell type, converted to js cell",details:`chunkType: ${e} chunkNum:${o} raw string: ${r}`}),l="code");const u=Object(s.c)(o,l);return u.content=t,Object.keys(n).forEach(e=>{i.a.includes(h,e)?i.a.set(u,e,n[e]):a.push({parseError:"invalid cell setting path",details:e})}),{chunkType:"cell",cell:u}}(r,o,l,e,t,n)}function v(e){const t=function(e){const t=[];return{chunkObjects:e.split("\n%%").map((e,t)=>{let n;return n=0===t&&"%%"===e.substring(0,2)?e.substring(2):e}).map(e=>e.trim()).filter(e=>""!==e).map((e,n)=>m(e,n,t)),parseWarnings:t}}(e),{chunkObjects:n}=t,{parseWarnings:r}=t;r.length>0&&console.warn("JSMD parse errors",r);const o=Object(s.a)(),a=n.filter(e=>"meta"===e.chunkType)[0];return a&&Object.assign(o,a.iodideSettings),n.filter(e=>"meta"!==e.chunkType).forEach(e=>{o.cells.push(e.cell)}),0===o.cells.length&&o.cells.push(Object(s.c)(0,"code")),o.cells[0].selected=!0,o}function g(e,t){const n=Object(s.e)(),r=e.cells.map(e=>{const t=Object(s.c)(0,e.cellType),n=function(e,t,n){const r={};return e.forEach(e=>{i.a.get(t,e)!==i.a.get(n,e)&&(r[e]=i.a.get(t,e))}),r}(h,e,t);let r=JSON.stringify(n),o=d.get(e.cellType);return`\n%% ${o="code"===o&&void 0===n.language?"js":o}${r="{}"===r?"":` ${r}`}\n${e.content}`}).join("\n").trim(),a={};for(const t of p)Object.prototype.hasOwnProperty.call(e,t)&&!o()(e[t],n[t])&&(a[t]=e[t]);a.lastExport=t;let l=JSON.stringify(a,void 0,2);return(l="{}"===l?"":`%% meta\n${l}\n\n`)+r}function y(e){return i.a.template(u.a)({NOTEBOOK_TITLE:e.title,APP_PATH_STRING:"https://iodide.io/master/",CSS_PATH_STRING:"https://iodide.io/master/",APP_VERSION_STRING:"master",JSMD:g(e,(new Date).toISOString())})}function b(e){return g(e,(new Date).toISOString())}function x(e){return`${e.replace(/[^a-z0-9]/gi,"-").toLowerCase()}.html`}},function(e,t,n){(function(e,r){var o; -/** - * @license - * Lodash - * Copyright JS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(){var a,i=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",l="Expected a function",u="__lodash_hash_undefined__",c=500,f="__lodash_placeholder__",d=1,p=2,h=4,m=1,v=2,g=1,y=2,b=4,x=8,w=16,E=32,k=64,_=128,C=256,S=512,O=30,T="...",P=800,N=16,M=1,A=2,R=1/0,j=9007199254740991,D=1.7976931348623157e308,I=NaN,L=4294967295,F=L-1,z=L>>>1,U=[["ary",_],["bind",g],["bindKey",y],["curry",x],["curryRight",w],["flip",S],["partial",E],["partialRight",k],["rearg",C]],B="[object Arguments]",H="[object Array]",W="[object AsyncFunction]",q="[object Boolean]",V="[object Date]",$="[object DOMException]",G="[object Error]",K="[object Function]",Y="[object GeneratorFunction]",Q="[object Map]",X="[object Number]",Z="[object Null]",J="[object Object]",ee="[object Proxy]",te="[object RegExp]",ne="[object Set]",re="[object String]",oe="[object Symbol]",ae="[object Undefined]",ie="[object WeakMap]",se="[object WeakSet]",le="[object ArrayBuffer]",ue="[object DataView]",ce="[object Float32Array]",fe="[object Float64Array]",de="[object Int8Array]",pe="[object Int16Array]",he="[object Int32Array]",me="[object Uint8Array]",ve="[object Uint8ClampedArray]",ge="[object Uint16Array]",ye="[object Uint32Array]",be=/\b__p \+= '';/g,xe=/\b(__p \+=) '' \+/g,we=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ee=/&(?:amp|lt|gt|quot|#39);/g,ke=/[&<>"']/g,_e=RegExp(Ee.source),Ce=RegExp(ke.source),Se=/<%-([\s\S]+?)%>/g,Oe=/<%([\s\S]+?)%>/g,Te=/<%=([\s\S]+?)%>/g,Pe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ne=/^\w*$/,Me=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ae=/[\\^$.*+?()[\]{}|]/g,Re=RegExp(Ae.source),je=/^\s+|\s+$/g,De=/^\s+/,Ie=/\s+$/,Le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Fe=/\{\n\/\* \[wrapped with (.+)\] \*/,ze=/,? & /,Ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Be=/\\(\\)?/g,He=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,We=/\w*$/,qe=/^[-+]0x[0-9a-f]+$/i,Ve=/^0b[01]+$/i,$e=/^\[object .+?Constructor\]$/,Ge=/^0o[0-7]+$/i,Ke=/^(?:0|[1-9]\d*)$/,Ye=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qe=/($^)/,Xe=/['\n\r\u2028\u2029\\]/g,Ze="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Je="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",et="[\\ud800-\\udfff]",tt="["+Je+"]",nt="["+Ze+"]",rt="\\d+",ot="[\\u2700-\\u27bf]",at="[a-z\\xdf-\\xf6\\xf8-\\xff]",it="[^\\ud800-\\udfff"+Je+rt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",st="\\ud83c[\\udffb-\\udfff]",lt="[^\\ud800-\\udfff]",ut="(?:\\ud83c[\\udde6-\\uddff]){2}",ct="[\\ud800-\\udbff][\\udc00-\\udfff]",ft="[A-Z\\xc0-\\xd6\\xd8-\\xde]",dt="(?:"+at+"|"+it+")",pt="(?:"+ft+"|"+it+")",ht="(?:"+nt+"|"+st+")"+"?",mt="[\\ufe0e\\ufe0f]?"+ht+("(?:\\u200d(?:"+[lt,ut,ct].join("|")+")[\\ufe0e\\ufe0f]?"+ht+")*"),vt="(?:"+[ot,ut,ct].join("|")+")"+mt,gt="(?:"+[lt+nt+"?",nt,ut,ct,et].join("|")+")",yt=RegExp("['’]","g"),bt=RegExp(nt,"g"),xt=RegExp(st+"(?="+st+")|"+gt+mt,"g"),wt=RegExp([ft+"?"+at+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[tt,ft,"$"].join("|")+")",pt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[tt,ft+dt,"$"].join("|")+")",ft+"?"+dt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ft+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rt,vt].join("|"),"g"),Et=RegExp("[\\u200d\\ud800-\\udfff"+Ze+"\\ufe0e\\ufe0f]"),kt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,_t=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ct=-1,St={};St[ce]=St[fe]=St[de]=St[pe]=St[he]=St[me]=St[ve]=St[ge]=St[ye]=!0,St[B]=St[H]=St[le]=St[q]=St[ue]=St[V]=St[G]=St[K]=St[Q]=St[X]=St[J]=St[te]=St[ne]=St[re]=St[ie]=!1;var Ot={};Ot[B]=Ot[H]=Ot[le]=Ot[ue]=Ot[q]=Ot[V]=Ot[ce]=Ot[fe]=Ot[de]=Ot[pe]=Ot[he]=Ot[Q]=Ot[X]=Ot[J]=Ot[te]=Ot[ne]=Ot[re]=Ot[oe]=Ot[me]=Ot[ve]=Ot[ge]=Ot[ye]=!0,Ot[G]=Ot[K]=Ot[ie]=!1;var Tt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Pt=parseFloat,Nt=parseInt,Mt="object"==typeof e&&e&&e.Object===Object&&e,At="object"==typeof self&&self&&self.Object===Object&&self,Rt=Mt||At||Function("return this")(),jt="object"==typeof t&&t&&!t.nodeType&&t,Dt=jt&&"object"==typeof r&&r&&!r.nodeType&&r,It=Dt&&Dt.exports===jt,Lt=It&&Mt.process,Ft=function(){try{var e=Dt&&Dt.require&&Dt.require("util").types;return e||Lt&&Lt.binding&&Lt.binding("util")}catch(e){}}(),zt=Ft&&Ft.isArrayBuffer,Ut=Ft&&Ft.isDate,Bt=Ft&&Ft.isMap,Ht=Ft&&Ft.isRegExp,Wt=Ft&&Ft.isSet,qt=Ft&&Ft.isTypedArray;function Vt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function $t(e,t,n,r){for(var o=-1,a=null==e?0:e.length;++o-1}function Zt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function wn(e,t){for(var n=e.length;n--&&ln(t,e[n],0)>-1;);return n}var En=pn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),kn=pn({"&":"&","<":"<",">":">",'"':""","'":"'"});function _n(e){return"\\"+Tt[e]}function Cn(e){return Et.test(e)}function Sn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function On(e,t){return function(n){return e(t(n))}}function Tn(e,t){for(var n=-1,r=e.length,o=0,a=[];++n",""":'"',"'":"'"});var Dn=function e(t){var n,r=(t=null==t?Rt:Dn.defaults(Rt.Object(),t,Dn.pick(Rt,_t))).Array,o=t.Date,Ze=t.Error,Je=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,rt=t.String,ot=t.TypeError,at=r.prototype,it=Je.prototype,st=tt.prototype,lt=t["__core-js_shared__"],ut=it.toString,ct=st.hasOwnProperty,ft=0,dt=(n=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",pt=st.toString,ht=ut.call(tt),mt=Rt._,vt=nt("^"+ut.call(ct).replace(Ae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gt=It?t.Buffer:a,xt=t.Symbol,Et=t.Uint8Array,Tt=gt?gt.allocUnsafe:a,Mt=On(tt.getPrototypeOf,tt),At=tt.create,jt=st.propertyIsEnumerable,Dt=at.splice,Lt=xt?xt.isConcatSpreadable:a,Ft=xt?xt.iterator:a,on=xt?xt.toStringTag:a,pn=function(){try{var e=Ua(tt,"defineProperty");return e({},"",{}),e}catch(e){}}(),In=t.clearTimeout!==Rt.clearTimeout&&t.clearTimeout,Ln=o&&o.now!==Rt.Date.now&&o.now,Fn=t.setTimeout!==Rt.setTimeout&&t.setTimeout,zn=et.ceil,Un=et.floor,Bn=tt.getOwnPropertySymbols,Hn=gt?gt.isBuffer:a,Wn=t.isFinite,qn=at.join,Vn=On(tt.keys,tt),$n=et.max,Gn=et.min,Kn=o.now,Yn=t.parseInt,Qn=et.random,Xn=at.reverse,Zn=Ua(t,"DataView"),Jn=Ua(t,"Map"),er=Ua(t,"Promise"),tr=Ua(t,"Set"),nr=Ua(t,"WeakMap"),rr=Ua(tt,"create"),or=nr&&new nr,ar={},ir=fi(Zn),sr=fi(Jn),lr=fi(er),ur=fi(tr),cr=fi(nr),fr=xt?xt.prototype:a,dr=fr?fr.valueOf:a,pr=fr?fr.toString:a;function hr(e){if(Ts(e)&&!gs(e)&&!(e instanceof yr)){if(e instanceof gr)return e;if(ct.call(e,"__wrapped__"))return di(e)}return new gr(e)}var mr=function(){function e(){}return function(t){if(!Os(t))return{};if(At)return At(t);e.prototype=t;var n=new e;return e.prototype=a,n}}();function vr(){}function gr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=a}function yr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=L,this.__views__=[]}function br(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Ir(e,t,n,r,o,i){var s,l=t&d,u=t&p,c=t&h;if(n&&(s=o?n(e,r,o,i):n(e)),s!==a)return s;if(!Os(e))return e;var f=gs(e);if(f){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ct.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return oa(e,s)}else{var m=Wa(e),v=m==K||m==Y;if(ws(e))return Zo(e,l);if(m==J||m==B||v&&!o){if(s=u||v?{}:Va(e),!l)return u?function(e,t){return aa(e,Ha(e),t)}(e,function(e,t){return e&&aa(t,al(t),e)}(s,e)):function(e,t){return aa(e,Ba(e),t)}(e,Ar(s,e))}else{if(!Ot[m])return o?e:{};s=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case le:return Jo(e);case q:case V:return new i(+e);case ue:return function(e,t){var n=t?Jo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case ce:case fe:case de:case pe:case he:case me:case ve:case ge:case ye:return ea(e,n);case Q:return new i;case X:case re:return new i(e);case te:return(a=new(o=e).constructor(o.source,We.exec(o))).lastIndex=o.lastIndex,a;case ne:return new i;case oe:return r=e,dr?tt(dr.call(r)):{}}}(e,m,l)}}i||(i=new kr);var g=i.get(e);if(g)return g;if(i.set(e,s),Rs(e))return e.forEach(function(r){s.add(Ir(r,t,n,r,e,i))}),s;if(Ps(e))return e.forEach(function(r,o){s.set(o,Ir(r,t,n,o,e,i))}),s;var y=f?a:(c?u?Ra:Aa:u?al:ol)(e);return Gt(y||e,function(r,o){y&&(r=e[o=r]),Pr(s,o,Ir(r,t,n,o,e,i))}),s}function Lr(e,t,n){var r=n.length;if(null==e)return!r;for(e=tt(e);r--;){var o=n[r],i=t[o],s=e[o];if(s===a&&!(o in e)||!i(s))return!1}return!0}function Fr(e,t,n){if("function"!=typeof e)throw new ot(l);return oi(function(){e.apply(a,n)},t)}function zr(e,t,n,r){var o=-1,a=Xt,s=!0,l=e.length,u=[],c=t.length;if(!l)return u;n&&(t=Jt(t,gn(n))),r?(a=Zt,s=!1):t.length>=i&&(a=bn,s=!1,t=new Er(t));e:for(;++o-1},xr.prototype.set=function(e,t){var n=this.__data__,r=Nr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},wr.prototype.clear=function(){this.size=0,this.__data__={hash:new br,map:new(Jn||xr),string:new br}},wr.prototype.delete=function(e){var t=Fa(this,e).delete(e);return this.size-=t?1:0,t},wr.prototype.get=function(e){return Fa(this,e).get(e)},wr.prototype.has=function(e){return Fa(this,e).has(e)},wr.prototype.set=function(e,t){var n=Fa(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Er.prototype.add=Er.prototype.push=function(e){return this.__data__.set(e,u),this},Er.prototype.has=function(e){return this.__data__.has(e)},kr.prototype.clear=function(){this.__data__=new xr,this.size=0},kr.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},kr.prototype.get=function(e){return this.__data__.get(e)},kr.prototype.has=function(e){return this.__data__.has(e)},kr.prototype.set=function(e,t){var n=this.__data__;if(n instanceof xr){var r=n.__data__;if(!Jn||r.length0&&n(s)?t>1?Vr(s,t-1,n,r,o):en(o,s):r||(o[o.length]=s)}return o}var $r=ua(),Gr=ua(!0);function Kr(e,t){return e&&$r(e,t,ol)}function Yr(e,t){return e&&Gr(e,t,ol)}function Qr(e,t){return Qt(t,function(t){return _s(e[t])})}function Xr(e,t){for(var n=0,r=(t=Ko(t,e)).length;null!=e&&nt}function to(e,t){return null!=e&&ct.call(e,t)}function no(e,t){return null!=e&&t in tt(e)}function ro(e,t,n){for(var o=n?Zt:Xt,i=e[0].length,s=e.length,l=s,u=r(s),c=1/0,f=[];l--;){var d=e[l];l&&t&&(d=Jt(d,gn(t))),c=Gn(d.length,c),u[l]=!n&&(t||i>=120&&d.length>=120)?new Er(l&&d):a}d=e[0];var p=-1,h=u[0];e:for(;++p=s)return l;var u=n[r];return l*("desc"==u?-1:1)}}return e.index-t.index}(e,t,n)})}function xo(e,t,n){for(var r=-1,o=t.length,a={};++r-1;)s!==e&&Dt.call(s,l,1),Dt.call(e,l,1);return e}function Eo(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==a){var a=o;Ga(o)?Dt.call(e,o,1):Uo(e,o)}}return e}function ko(e,t){return e+Un(Qn()*(t-e+1))}function _o(e,t){var n="";if(!e||t<1||t>j)return n;do{t%2&&(n+=e),(t=Un(t/2))&&(e+=e)}while(t);return n}function Co(e,t){return ai(ti(e,t,Nl),e+"")}function So(e){return Cr(pl(e))}function Oo(e,t){var n=pl(e);return li(n,Dr(t,0,n.length))}function To(e,t,n,r){if(!Os(e))return e;for(var o=-1,i=(t=Ko(t,e)).length,s=i-1,l=e;null!=l&&++oa?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var i=r(a);++o>>1,i=e[a];null!==i&&!Ds(i)&&(n?i<=t:i=i){var c=t?null:_a(e);if(c)return Nn(c);s=!1,o=bn,u=new Er}else u=t?[]:l;e:for(;++r=r?e:Ao(e,t,n)}var Xo=In||function(e){return Rt.clearTimeout(e)};function Zo(e,t){if(t)return e.slice();var n=e.length,r=Tt?Tt(n):new e.constructor(n);return e.copy(r),r}function Jo(e){var t=new e.constructor(e.byteLength);return new Et(t).set(new Et(e)),t}function ea(e,t){var n=t?Jo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ta(e,t){if(e!==t){var n=e!==a,r=null===e,o=e==e,i=Ds(e),s=t!==a,l=null===t,u=t==t,c=Ds(t);if(!l&&!c&&!i&&e>t||i&&s&&u&&!l&&!c||r&&s&&u||!n&&u||!o)return 1;if(!r&&!i&&!c&&e1?n[o-1]:a,s=o>2?n[2]:a;for(i=e.length>3&&"function"==typeof i?(o--,i):a,s&&Ka(n[0],n[1],s)&&(i=o<3?a:i,o=1),t=tt(t);++r-1?o[i?t[s]:s]:a}}function ha(e){return Ma(function(t){var n=t.length,r=n,o=gr.prototype.thru;for(e&&t.reverse();r--;){var i=t[r];if("function"!=typeof i)throw new ot(l);if(o&&!s&&"wrapper"==Da(i))var s=new gr([],!0)}for(r=s?r:n;++r1&&x.reverse(),d&&cl))return!1;var c=i.get(e);if(c&&i.get(t))return c==t;var f=-1,d=!0,p=n&v?new Er:a;for(i.set(e,t),i.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Le,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Gt(U,function(n){var r="_."+n[0];t&n[1]&&!Xt(e,r)&&e.push(r)}),e.sort()}(function(e){var t=e.match(Fe);return t?t[1].split(ze):[]}(r),n)))}function si(e){var t=0,n=0;return function(){var r=Kn(),o=N-(r-n);if(n=r,o>0){if(++t>=P)return arguments[0]}else t=0;return e.apply(a,arguments)}}function li(e,t){var n=-1,r=e.length,o=r-1;for(t=t===a?r:t;++n1?e[t-1]:a;return Ai(e,n="function"==typeof n?(e.pop(),n):a)});function zi(e){var t=hr(e);return t.__chain__=!0,t}function Ui(e,t){return t(e)}var Bi=Ma(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return jr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof yr&&Ga(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:Ui,args:[o],thisArg:a}),new gr(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(a),e})):this.thru(o)});var Hi=ia(function(e,t,n){ct.call(e,n)?++e[n]:Rr(e,n,1)});var Wi=pa(vi),qi=pa(gi);function Vi(e,t){return(gs(e)?Gt:Ur)(e,La(t,3))}function $i(e,t){return(gs(e)?Kt:Br)(e,La(t,3))}var Gi=ia(function(e,t,n){ct.call(e,n)?e[n].push(t):Rr(e,n,[t])});var Ki=Co(function(e,t,n){var o=-1,a="function"==typeof t,i=bs(e)?r(e.length):[];return Ur(e,function(e){i[++o]=a?Vt(t,e,n):oo(e,t,n)}),i}),Yi=ia(function(e,t,n){Rr(e,n,t)});function Qi(e,t){return(gs(e)?Jt:ho)(e,La(t,3))}var Xi=ia(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});var Zi=Co(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ka(e,t[0],t[1])?t=[]:n>2&&Ka(t[0],t[1],t[2])&&(t=[t[0]]),bo(e,Vr(t,1),[])}),Ji=Ln||function(){return Rt.Date.now()};function es(e,t,n){return t=n?a:t,t=e&&null==t?e.length:t,Sa(e,_,a,a,a,a,t)}function ts(e,t){var n;if("function"!=typeof t)throw new ot(l);return e=Bs(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=a),n}}var ns=Co(function(e,t,n){var r=g;if(n.length){var o=Tn(n,Ia(ns));r|=E}return Sa(e,r,t,n,o)}),rs=Co(function(e,t,n){var r=g|y;if(n.length){var o=Tn(n,Ia(rs));r|=E}return Sa(t,r,e,n,o)});function os(e,t,n){var r,o,i,s,u,c,f=0,d=!1,p=!1,h=!0;if("function"!=typeof e)throw new ot(l);function m(t){var n=r,i=o;return r=o=a,f=t,s=e.apply(i,n)}function v(e){var n=e-c;return c===a||n>=t||n<0||p&&e-f>=i}function g(){var e=Ji();if(v(e))return y(e);u=oi(g,function(e){var n=t-(e-c);return p?Gn(n,i-(e-f)):n}(e))}function y(e){return u=a,h&&r?m(e):(r=o=a,s)}function b(){var e=Ji(),n=v(e);if(r=arguments,o=this,c=e,n){if(u===a)return function(e){return f=e,u=oi(g,t),d?m(e):s}(c);if(p)return u=oi(g,t),m(c)}return u===a&&(u=oi(g,t)),s}return t=Ws(t)||0,Os(n)&&(d=!!n.leading,i=(p="maxWait"in n)?$n(Ws(n.maxWait)||0,t):i,h="trailing"in n?!!n.trailing:h),b.cancel=function(){u!==a&&Xo(u),f=0,r=c=o=u=a},b.flush=function(){return u===a?s:y(Ji())},b}var as=Co(function(e,t){return Fr(e,1,t)}),is=Co(function(e,t,n){return Fr(e,Ws(t)||0,n)});function ss(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ot(l);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(ss.Cache||wr),n}function ls(e){if("function"!=typeof e)throw new ot(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ss.Cache=wr;var us=Yo(function(e,t){var n=(t=1==t.length&&gs(t[0])?Jt(t[0],gn(La())):Jt(Vr(t,1),gn(La()))).length;return Co(function(r){for(var o=-1,a=Gn(r.length,n);++o=t}),vs=ao(function(){return arguments}())?ao:function(e){return Ts(e)&&ct.call(e,"callee")&&!jt.call(e,"callee")},gs=r.isArray,ys=zt?gn(zt):function(e){return Ts(e)&&Jr(e)==le};function bs(e){return null!=e&&Ss(e.length)&&!_s(e)}function xs(e){return Ts(e)&&bs(e)}var ws=Hn||Wl,Es=Ut?gn(Ut):function(e){return Ts(e)&&Jr(e)==V};function ks(e){if(!Ts(e))return!1;var t=Jr(e);return t==G||t==$||"string"==typeof e.message&&"string"==typeof e.name&&!Ms(e)}function _s(e){if(!Os(e))return!1;var t=Jr(e);return t==K||t==Y||t==W||t==ee}function Cs(e){return"number"==typeof e&&e==Bs(e)}function Ss(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=j}function Os(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ts(e){return null!=e&&"object"==typeof e}var Ps=Bt?gn(Bt):function(e){return Ts(e)&&Wa(e)==Q};function Ns(e){return"number"==typeof e||Ts(e)&&Jr(e)==X}function Ms(e){if(!Ts(e)||Jr(e)!=J)return!1;var t=Mt(e);if(null===t)return!0;var n=ct.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ut.call(n)==ht}var As=Ht?gn(Ht):function(e){return Ts(e)&&Jr(e)==te};var Rs=Wt?gn(Wt):function(e){return Ts(e)&&Wa(e)==ne};function js(e){return"string"==typeof e||!gs(e)&&Ts(e)&&Jr(e)==re}function Ds(e){return"symbol"==typeof e||Ts(e)&&Jr(e)==oe}var Is=qt?gn(qt):function(e){return Ts(e)&&Ss(e.length)&&!!St[Jr(e)]};var Ls=wa(po),Fs=wa(function(e,t){return e<=t});function zs(e){if(!e)return[];if(bs(e))return js(e)?Rn(e):oa(e);if(Ft&&e[Ft])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Ft]());var t=Wa(e);return(t==Q?Sn:t==ne?Nn:pl)(e)}function Us(e){return e?(e=Ws(e))===R||e===-R?(e<0?-1:1)*D:e==e?e:0:0===e?e:0}function Bs(e){var t=Us(e),n=t%1;return t==t?n?t-n:t:0}function Hs(e){return e?Dr(Bs(e),0,L):0}function Ws(e){if("number"==typeof e)return e;if(Ds(e))return I;if(Os(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Os(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(je,"");var n=Ve.test(e);return n||Ge.test(e)?Nt(e.slice(2),n?2:8):qe.test(e)?I:+e}function qs(e){return aa(e,al(e))}function Vs(e){return null==e?"":Fo(e)}var $s=sa(function(e,t){if(Za(t)||bs(t))aa(t,ol(t),e);else for(var n in t)ct.call(t,n)&&Pr(e,n,t[n])}),Gs=sa(function(e,t){aa(t,al(t),e)}),Ks=sa(function(e,t,n,r){aa(t,al(t),e,r)}),Ys=sa(function(e,t,n,r){aa(t,ol(t),e,r)}),Qs=Ma(jr);var Xs=Co(function(e,t){e=tt(e);var n=-1,r=t.length,o=r>2?t[2]:a;for(o&&Ka(t[0],t[1],o)&&(r=1);++n1),t}),aa(e,Ra(e),n),r&&(n=Ir(n,d|p|h,Pa));for(var o=t.length;o--;)Uo(n,t[o]);return n});var ul=Ma(function(e,t){return null==e?{}:function(e,t){return xo(e,t,function(t,n){return el(e,n)})}(e,t)});function cl(e,t){if(null==e)return{};var n=Jt(Ra(e),function(e){return[e]});return t=La(t),xo(e,n,function(e,n){return t(e,n[0])})}var fl=Ca(ol),dl=Ca(al);function pl(e){return null==e?[]:yn(e,ol(e))}var hl=fa(function(e,t,n){return t=t.toLowerCase(),e+(n?ml(t):t)});function ml(e){return kl(Vs(e).toLowerCase())}function vl(e){return(e=Vs(e))&&e.replace(Ye,En).replace(bt,"")}var gl=fa(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),yl=fa(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),bl=ca("toLowerCase");var xl=fa(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});var wl=fa(function(e,t,n){return e+(n?" ":"")+kl(t)});var El=fa(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),kl=ca("toUpperCase");function _l(e,t,n){return e=Vs(e),(t=n?a:t)===a?function(e){return kt.test(e)}(e)?function(e){return e.match(wt)||[]}(e):function(e){return e.match(Ue)||[]}(e):e.match(t)||[]}var Cl=Co(function(e,t){try{return Vt(e,a,t)}catch(e){return ks(e)?e:new Ze(e)}}),Sl=Ma(function(e,t){return Gt(t,function(t){t=ci(t),Rr(e,t,ns(e[t],e))}),e});function Ol(e){return function(){return e}}var Tl=ha(),Pl=ha(!0);function Nl(e){return e}function Ml(e){return uo("function"==typeof e?e:Ir(e,d))}var Al=Co(function(e,t){return function(n){return oo(n,e,t)}}),Rl=Co(function(e,t){return function(n){return oo(e,n,t)}});function jl(e,t,n){var r=ol(t),o=Qr(t,r);null!=n||Os(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=Qr(t,ol(t)));var a=!(Os(n)&&"chain"in n&&!n.chain),i=_s(e);return Gt(o,function(n){var r=t[n];e[n]=r,i&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__);return(n.__actions__=oa(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,en([this.value()],arguments))})}),e}function Dl(){}var Il=ya(Jt),Ll=ya(Yt),Fl=ya(rn);function zl(e){return Ya(e)?dn(ci(e)):function(e){return function(t){return Xr(t,e)}}(e)}var Ul=xa(),Bl=xa(!0);function Hl(){return[]}function Wl(){return!1}var ql=ga(function(e,t){return e+t},0),Vl=ka("ceil"),$l=ga(function(e,t){return e/t},1),Gl=ka("floor");var Kl,Yl=ga(function(e,t){return e*t},1),Ql=ka("round"),Xl=ga(function(e,t){return e-t},0);return hr.after=function(e,t){if("function"!=typeof t)throw new ot(l);return e=Bs(e),function(){if(--e<1)return t.apply(this,arguments)}},hr.ary=es,hr.assign=$s,hr.assignIn=Gs,hr.assignInWith=Ks,hr.assignWith=Ys,hr.at=Qs,hr.before=ts,hr.bind=ns,hr.bindAll=Sl,hr.bindKey=rs,hr.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return gs(e)?e:[e]},hr.chain=zi,hr.chunk=function(e,t,n){t=(n?Ka(e,t,n):t===a)?1:$n(Bs(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var i=0,s=0,l=r(zn(o/t));io?0:o+n),(r=r===a||r>o?o:Bs(r))<0&&(r+=o),r=n>r?0:Hs(r);n>>0)?(e=Vs(e))&&("string"==typeof t||null!=t&&!As(t))&&!(t=Fo(t))&&Cn(e)?Qo(Rn(e),0,n):e.split(t,n):[]},hr.spread=function(e,t){if("function"!=typeof e)throw new ot(l);return t=null==t?0:$n(Bs(t),0),Co(function(n){var r=n[t],o=Qo(n,0,t);return r&&en(o,r),Vt(e,this,o)})},hr.tail=function(e){var t=null==e?0:e.length;return t?Ao(e,1,t):[]},hr.take=function(e,t,n){return e&&e.length?Ao(e,0,(t=n||t===a?1:Bs(t))<0?0:t):[]},hr.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Ao(e,(t=r-(t=n||t===a?1:Bs(t)))<0?0:t,r):[]},hr.takeRightWhile=function(e,t){return e&&e.length?Ho(e,La(t,3),!1,!0):[]},hr.takeWhile=function(e,t){return e&&e.length?Ho(e,La(t,3)):[]},hr.tap=function(e,t){return t(e),e},hr.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new ot(l);return Os(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),os(e,t,{leading:r,maxWait:t,trailing:o})},hr.thru=Ui,hr.toArray=zs,hr.toPairs=fl,hr.toPairsIn=dl,hr.toPath=function(e){return gs(e)?Jt(e,ci):Ds(e)?[e]:oa(ui(Vs(e)))},hr.toPlainObject=qs,hr.transform=function(e,t,n){var r=gs(e),o=r||ws(e)||Is(e);if(t=La(t,4),null==n){var a=e&&e.constructor;n=o?r?new a:[]:Os(e)&&_s(a)?mr(Mt(e)):{}}return(o?Gt:Kr)(e,function(e,r,o){return t(n,e,r,o)}),n},hr.unary=function(e){return es(e,1)},hr.union=Ti,hr.unionBy=Pi,hr.unionWith=Ni,hr.uniq=function(e){return e&&e.length?zo(e):[]},hr.uniqBy=function(e,t){return e&&e.length?zo(e,La(t,2)):[]},hr.uniqWith=function(e,t){return t="function"==typeof t?t:a,e&&e.length?zo(e,a,t):[]},hr.unset=function(e,t){return null==e||Uo(e,t)},hr.unzip=Mi,hr.unzipWith=Ai,hr.update=function(e,t,n){return null==e?e:Bo(e,t,Go(n))},hr.updateWith=function(e,t,n,r){return r="function"==typeof r?r:a,null==e?e:Bo(e,t,Go(n),r)},hr.values=pl,hr.valuesIn=function(e){return null==e?[]:yn(e,al(e))},hr.without=Ri,hr.words=_l,hr.wrap=function(e,t){return cs(Go(t),e)},hr.xor=ji,hr.xorBy=Di,hr.xorWith=Ii,hr.zip=Li,hr.zipObject=function(e,t){return Vo(e||[],t||[],Pr)},hr.zipObjectDeep=function(e,t){return Vo(e||[],t||[],To)},hr.zipWith=Fi,hr.entries=fl,hr.entriesIn=dl,hr.extend=Gs,hr.extendWith=Ks,jl(hr,hr),hr.add=ql,hr.attempt=Cl,hr.camelCase=hl,hr.capitalize=ml,hr.ceil=Vl,hr.clamp=function(e,t,n){return n===a&&(n=t,t=a),n!==a&&(n=(n=Ws(n))==n?n:0),t!==a&&(t=(t=Ws(t))==t?t:0),Dr(Ws(e),t,n)},hr.clone=function(e){return Ir(e,h)},hr.cloneDeep=function(e){return Ir(e,d|h)},hr.cloneDeepWith=function(e,t){return Ir(e,d|h,t="function"==typeof t?t:a)},hr.cloneWith=function(e,t){return Ir(e,h,t="function"==typeof t?t:a)},hr.conformsTo=function(e,t){return null==t||Lr(e,t,ol(t))},hr.deburr=vl,hr.defaultTo=function(e,t){return null==e||e!=e?t:e},hr.divide=$l,hr.endsWith=function(e,t,n){e=Vs(e),t=Fo(t);var r=e.length,o=n=n===a?r:Dr(Bs(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},hr.eq=ps,hr.escape=function(e){return(e=Vs(e))&&Ce.test(e)?e.replace(ke,kn):e},hr.escapeRegExp=function(e){return(e=Vs(e))&&Re.test(e)?e.replace(Ae,"\\$&"):e},hr.every=function(e,t,n){var r=gs(e)?Yt:Hr;return n&&Ka(e,t,n)&&(t=a),r(e,La(t,3))},hr.find=Wi,hr.findIndex=vi,hr.findKey=function(e,t){return an(e,La(t,3),Kr)},hr.findLast=qi,hr.findLastIndex=gi,hr.findLastKey=function(e,t){return an(e,La(t,3),Yr)},hr.floor=Gl,hr.forEach=Vi,hr.forEachRight=$i,hr.forIn=function(e,t){return null==e?e:$r(e,La(t,3),al)},hr.forInRight=function(e,t){return null==e?e:Gr(e,La(t,3),al)},hr.forOwn=function(e,t){return e&&Kr(e,La(t,3))},hr.forOwnRight=function(e,t){return e&&Yr(e,La(t,3))},hr.get=Js,hr.gt=hs,hr.gte=ms,hr.has=function(e,t){return null!=e&&qa(e,t,to)},hr.hasIn=el,hr.head=bi,hr.identity=Nl,hr.includes=function(e,t,n,r){e=bs(e)?e:pl(e),n=n&&!r?Bs(n):0;var o=e.length;return n<0&&(n=$n(o+n,0)),js(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&ln(e,t,n)>-1},hr.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:Bs(n);return o<0&&(o=$n(r+o,0)),ln(e,t,o)},hr.inRange=function(e,t,n){return t=Us(t),n===a?(n=t,t=0):n=Us(n),function(e,t,n){return e>=Gn(t,n)&&e<$n(t,n)}(e=Ws(e),t,n)},hr.invoke=rl,hr.isArguments=vs,hr.isArray=gs,hr.isArrayBuffer=ys,hr.isArrayLike=bs,hr.isArrayLikeObject=xs,hr.isBoolean=function(e){return!0===e||!1===e||Ts(e)&&Jr(e)==q},hr.isBuffer=ws,hr.isDate=Es,hr.isElement=function(e){return Ts(e)&&1===e.nodeType&&!Ms(e)},hr.isEmpty=function(e){if(null==e)return!0;if(bs(e)&&(gs(e)||"string"==typeof e||"function"==typeof e.splice||ws(e)||Is(e)||vs(e)))return!e.length;var t=Wa(e);if(t==Q||t==ne)return!e.size;if(Za(e))return!co(e).length;for(var n in e)if(ct.call(e,n))return!1;return!0},hr.isEqual=function(e,t){return io(e,t)},hr.isEqualWith=function(e,t,n){var r=(n="function"==typeof n?n:a)?n(e,t):a;return r===a?io(e,t,a,n):!!r},hr.isError=ks,hr.isFinite=function(e){return"number"==typeof e&&Wn(e)},hr.isFunction=_s,hr.isInteger=Cs,hr.isLength=Ss,hr.isMap=Ps,hr.isMatch=function(e,t){return e===t||so(e,t,za(t))},hr.isMatchWith=function(e,t,n){return n="function"==typeof n?n:a,so(e,t,za(t),n)},hr.isNaN=function(e){return Ns(e)&&e!=+e},hr.isNative=function(e){if(Xa(e))throw new Ze(s);return lo(e)},hr.isNil=function(e){return null==e},hr.isNull=function(e){return null===e},hr.isNumber=Ns,hr.isObject=Os,hr.isObjectLike=Ts,hr.isPlainObject=Ms,hr.isRegExp=As,hr.isSafeInteger=function(e){return Cs(e)&&e>=-j&&e<=j},hr.isSet=Rs,hr.isString=js,hr.isSymbol=Ds,hr.isTypedArray=Is,hr.isUndefined=function(e){return e===a},hr.isWeakMap=function(e){return Ts(e)&&Wa(e)==ie},hr.isWeakSet=function(e){return Ts(e)&&Jr(e)==se},hr.join=function(e,t){return null==e?"":qn.call(e,t)},hr.kebabCase=gl,hr.last=ki,hr.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return n!==a&&(o=(o=Bs(n))<0?$n(r+o,0):Gn(o,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):sn(e,cn,o,!0)},hr.lowerCase=yl,hr.lowerFirst=bl,hr.lt=Ls,hr.lte=Fs,hr.max=function(e){return e&&e.length?Wr(e,Nl,eo):a},hr.maxBy=function(e,t){return e&&e.length?Wr(e,La(t,2),eo):a},hr.mean=function(e){return fn(e,Nl)},hr.meanBy=function(e,t){return fn(e,La(t,2))},hr.min=function(e){return e&&e.length?Wr(e,Nl,po):a},hr.minBy=function(e,t){return e&&e.length?Wr(e,La(t,2),po):a},hr.stubArray=Hl,hr.stubFalse=Wl,hr.stubObject=function(){return{}},hr.stubString=function(){return""},hr.stubTrue=function(){return!0},hr.multiply=Yl,hr.nth=function(e,t){return e&&e.length?yo(e,Bs(t)):a},hr.noConflict=function(){return Rt._===this&&(Rt._=mt),this},hr.noop=Dl,hr.now=Ji,hr.pad=function(e,t,n){e=Vs(e);var r=(t=Bs(t))?An(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return ba(Un(o),n)+e+ba(zn(o),n)},hr.padEnd=function(e,t,n){e=Vs(e);var r=(t=Bs(t))?An(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=Qn();return Gn(e+o*(t-e+Pt("1e-"+((o+"").length-1))),t)}return ko(e,t)},hr.reduce=function(e,t,n){var r=gs(e)?tn:hn,o=arguments.length<3;return r(e,La(t,4),n,o,Ur)},hr.reduceRight=function(e,t,n){var r=gs(e)?nn:hn,o=arguments.length<3;return r(e,La(t,4),n,o,Br)},hr.repeat=function(e,t,n){return t=(n?Ka(e,t,n):t===a)?1:Bs(t),_o(Vs(e),t)},hr.replace=function(){var e=arguments,t=Vs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},hr.result=function(e,t,n){var r=-1,o=(t=Ko(t,e)).length;for(o||(o=1,e=a);++rj)return[];var n=L,r=Gn(e,L);t=La(t),e-=L;for(var o=vn(r,t);++n=i)return e;var l=n-An(r);if(l<1)return r;var u=s?Qo(s,0,l).join(""):e.slice(0,l);if(o===a)return u+r;if(s&&(l+=u.length-l),As(o)){if(e.slice(l).search(o)){var c,f=u;for(o.global||(o=nt(o.source,Vs(We.exec(o))+"g")),o.lastIndex=0;c=o.exec(f);)var d=c.index;u=u.slice(0,d===a?l:d)}}else if(e.indexOf(Fo(o),l)!=l){var p=u.lastIndexOf(o);p>-1&&(u=u.slice(0,p))}return u+r},hr.unescape=function(e){return(e=Vs(e))&&_e.test(e)?e.replace(Ee,jn):e},hr.uniqueId=function(e){var t=++ft;return Vs(e)+t},hr.upperCase=El,hr.upperFirst=kl,hr.each=Vi,hr.eachRight=$i,hr.first=bi,jl(hr,(Kl={},Kr(hr,function(e,t){ct.call(hr.prototype,t)||(Kl[t]=e)}),Kl),{chain:!1}),hr.VERSION="4.17.10",Gt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){hr[e].placeholder=hr}),Gt(["drop","take"],function(e,t){yr.prototype[e]=function(n){n=n===a?1:$n(Bs(n),0);var r=this.__filtered__&&!t?new yr(this):this.clone();return r.__filtered__?r.__takeCount__=Gn(n,r.__takeCount__):r.__views__.push({size:Gn(n,L),type:e+(r.__dir__<0?"Right":"")}),r},yr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),Gt(["filter","map","takeWhile"],function(e,t){var n=t+1,r=n==M||3==n;yr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:La(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Gt(["head","last"],function(e,t){var n="take"+(t?"Right":"");yr.prototype[e]=function(){return this[n](1).value()[0]}}),Gt(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");yr.prototype[e]=function(){return this.__filtered__?new yr(this):this[n](1)}}),yr.prototype.compact=function(){return this.filter(Nl)},yr.prototype.find=function(e){return this.filter(e).head()},yr.prototype.findLast=function(e){return this.reverse().find(e)},yr.prototype.invokeMap=Co(function(e,t){return"function"==typeof e?new yr(this):this.map(function(n){return oo(n,e,t)})}),yr.prototype.reject=function(e){return this.filter(ls(La(e)))},yr.prototype.slice=function(e,t){e=Bs(e);var n=this;return n.__filtered__&&(e>0||t<0)?new yr(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==a&&(n=(t=Bs(t))<0?n.dropRight(-t):n.take(t-e)),n)},yr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},yr.prototype.toArray=function(){return this.take(L)},Kr(yr.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=hr[r?"take"+("last"==t?"Right":""):t],i=r||/^find/.test(t);o&&(hr.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof yr,u=s[0],c=l||gs(t),f=function(e){var t=o.apply(hr,en([e],s));return r&&d?t[0]:t};c&&n&&"function"==typeof u&&1!=u.length&&(l=c=!1);var d=this.__chain__,p=!!this.__actions__.length,h=i&&!d,m=l&&!p;if(!i&&c){t=m?t:new yr(this);var v=e.apply(t,s);return v.__actions__.push({func:Ui,args:[f],thisArg:a}),new gr(v,d)}return h&&m?e.apply(this,s):(v=this.thru(f),h?r?v.value()[0]:v.value():v)})}),Gt(["pop","push","shift","sort","splice","unshift"],function(e){var t=at[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);hr.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(gs(o)?o:[],e)}return this[n](function(n){return t.apply(gs(n)?n:[],e)})}}),Kr(yr.prototype,function(e,t){var n=hr[t];if(n){var r=n.name+"";(ar[r]||(ar[r]=[])).push({name:t,func:n})}}),ar[ma(a,y).name]=[{name:"wrapper",func:a}],yr.prototype.clone=function(){var e=new yr(this.__wrapped__);return e.__actions__=oa(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=oa(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=oa(this.__views__),e},yr.prototype.reverse=function(){if(this.__filtered__){var e=new yr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},yr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=gs(e),r=t<0,o=n?e.length:0,a=function(e,t,n){for(var r=-1,o=n.length;++r=this.__values__.length;return{done:e,value:e?a:this.__values__[this.__index__++]}},hr.prototype.plant=function(e){for(var t,n=this;n instanceof vr;){var r=di(n);r.__index__=0,r.__values__=a,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},hr.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof yr){var t=e;return this.__actions__.length&&(t=new yr(this)),(t=t.reverse()).__actions__.push({func:Ui,args:[Oi],thisArg:a}),new gr(t,this.__chain__)}return this.thru(Oi)},hr.prototype.toJSON=hr.prototype.valueOf=hr.prototype.value=function(){return Wo(this.__wrapped__,this.__actions__)},hr.prototype.first=hr.prototype.head,Ft&&(hr.prototype[Ft]=function(){return this}),hr}();Rt._=Dn,(o=function(){return Dn}.call(t,n,t,r))===a||(r.exports=o)}).call(this)}).call(t,n(9),n(182)(e))},function(e,t,n){var r=n(116),o={xHeight:.431,quad:1,num1:.677,num2:.394,num3:.444,denom1:.686,denom2:.345,sup1:.413,sup2:.363,sup3:.289,sub1:.15,sub2:.247,supDrop:.386,subDrop:.05,axisHeight:.25,defaultRuleThickness:.04,bigOpSpacing1:.111,bigOpSpacing2:.166,bigOpSpacing3:.2,bigOpSpacing4:.6,bigOpSpacing5:.1,ptPerEm:10,emPerEx:.431,doubleRuleSep:.2,delim1:2.39,getDelim2:function(e){if(e.size===r.TEXT.size)return 1.01;if(e.size===r.SCRIPT.size)return.81;if(e.size===r.SCRIPTSCRIPT.size)return.71;throw new Error("Unexpected style size: "+e.size)}},a=n(640);e.exports={metrics:o,getCharacterMetrics:function(e,t){var n=a[t][e.charCodeAt(0)];if(n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}}},function(e,t,n){"use strict";const r={noCallback:"you must provide either a callback, a keybindingCalblack, or both (if the callbacks differ)",noKeybindingsWithCallback:"keybindingCallback supplied, but no keybindings were declared",argumentMustBeObject:"must provide an object as an argument",noTitleSupplied:"no title supplied",callbackIsNotFunction:"the callback supplied is not a function",keybindingsNotArray:"keybindings must be in the form of an array"};t.a=class{constructor(e){if(!(e instanceof Object&&e.constructor===Object))throw new TypeError(r.argumentMustBeObject);if(!e.keybindingCallback&&!e.callback)throw new TypeError(r.noCallback);if(e.keybindingCallback&&!e.keybindings)throw new TypeError(r.noKeybindingsWithCallback);if(e.keybindings&&!Array.isArray(e.keybindings))throw new TypeError(r.keybindingsNotArray);if("function"!=typeof e.callback&&void 0!==e.callback)throw new TypeError(r.callbackIsNotFunction);if(!e.title)throw new TypeError(r.noTitleSupplied);this.args=e,this.args.callback&&(this.args.callback=this.args.callback.bind(this)),this.args.keybindingCallback&&(this.args.keybindingCallback=this.args.keybindingCallback.bind(this))}get keybindingCallback(){return this.args.keybindingCallback||(e=>{"keybindingPrecondition"in this.args&&!this.args.keybindingPrecondition()||(this.args.preventDefaultKeybinding&&((e=e).preventDefault?e.preventDefault():e.returnValue=!1),this.args.callback())});var e}get keybindings(){return this.args.keybindings}get secondaryText(){return this.args.secondaryText}hasKeybinding(){return void 0!==this.args.keybindings&&0!==this.args.keybindings.length}get displayKeybinding(){return this.args.displayKeybinding||""}get callback(){return this.args.callback}get title(){return this.args.title}get menuTitle(){return this.args.menuTitle||this.args.title}}},function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(1),i=n.n(a),s=n(193),l=n.n(s),u=n(191),c=(n.n(u),n(96)),f=n(119),d=Object.assign||function(e){for(var t=1;t{["task","submenuOnClick","onClick"].includes(e)||(this.extraMenuProps[e]=this.props[e])})}render(){return o.a.createElement(l.a,d({},this.extraMenuProps,{classes:{root:"iodide-menu-item"},key:this.props.task.title,onClick:()=>{this.props.task.callback(),this.props.onClick&&this.props.onClick(),this.props.submenuOnClick&&this.props.submenuOnClick(),document.querySelectorAll('div[class^="MuiBackdrop-"]').forEach(e=>{e.click()})}}),o.a.createElement(u.ListItemText,{classes:{root:"primary-menu-item"},primary:this.props.task.menuTitle}),o.a.createElement(u.ListItemText,{style:{marginRight:5},classes:{root:"secondary-menu-item"},primary:this.props.task.displayKeybinding||this.props.task.secondaryText}))}}t.a=p,p.propTypes={className:i.a.string,onClick:i.a.func,submenuOnClick:i.a.func,task:i.a.oneOfType([i.a.instanceOf(c.a),i.a.instanceOf(f.a)])},p.muiName="MenuItem"},function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(708),i=n.n(a);t.a=class extends o.a.Component{render(){return o.a.createElement(i.a,{className:"iodide-menu-divider"})}}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var i=0;i=0;u--)if(f[u]!=d[u])return!1;for(u=f.length-1;u>=0;u--)if(c=f[u],!i(e[c],t[c],n))return!1;return typeof e==typeof t}(e,t,n))};function s(e){return null===e||void 0===e}function l(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}},function(e,t,n){var r=n(140),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(31).f,o=n(60),a=n(29)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(404)(!0);n(152)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){"use strict";var r=n(424)(!0);n(233)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(57),o=n(251),a=n(252),i=n(58),s=n(101),l=n(253),u={},c={};(t=e.exports=function(e,t,n,f,d){var p,h,m,v,g=d?function(){return e}:l(e),y=r(n,f,t?2:1),b=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(a(g)){for(p=s(e.length);p>b;b++)if((v=t?y(i(h=e[b])[0],h[1]):y(e[b]))===u||v===c)return v}else for(m=g.call(e);!(h=m.next()).done;)if((v=o(m,y,h.value,t))===u||v===c)return v}).BREAK=u,t.RETURN=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!Array.isArray(e))return e;var n="";if(Array.isArray(e[0]))for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:"unnamed",t=arguments[1],n=arguments[2],i=n.jss,s=(0,a.default)(t),l=i.plugins.onCreateRule(e,s,n);if(l)return l;"@"===e[0]&&(0,r.default)(!1,"[JSS] Unknown at-rule %s",e);return new o.default(e,s,n)};var r=i(n(14)),o=i(n(76)),a=i(n(494));function i(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"isBrowser",function(){return o});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o="object"===("undefined"==typeof window?"undefined":r(window))&&"object"===("undefined"==typeof document?"undefined":r(document))&&9===document.nodeType;t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===o}(e)}(e)};var o="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map(function(e){return a(e,n)})}function s(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||i,n.isMergeableObject=n.isMergeableObject||r;var o=Array.isArray(t);return o===Array.isArray(e)?o?n.arrayMerge(e,t,n):function(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach(function(t){r[t]=a(e[t],n)}),Object.keys(t).forEach(function(o){n.isMergeableObject(t[o])&&e[o]?r[o]=s(e[o],t[o],n):r[o]=a(t[o],n)}),r}(e,t,n):a(t,n)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,n){return s(e,n,t)},{})};var l=s;t.default=l},function(e,t,n){"use strict";t.g=u,t.f=c,t.e=g,t.h=E,t.k=k,t.j=_,t.i=function(e,t,n){const r=Object(s.a)({scheme:"null"},n);return k(_(g(e,r),g(t,r),r,!0),r)},t.d=function(e,t){"string"==typeof e?e=k(g(e,t),t):"object"===Object(s.f)(e)&&(e=g(k(e,t),t));return e},t.b=function(e,t,n){"string"==typeof e?e=k(g(e,n),n):"object"===Object(s.f)(e)&&(e=k(e,n));"string"==typeof t?t=k(g(t,n),n):"object"===Object(s.f)(t)&&(t=k(t,n));return e===t},t.c=function(e,t){return e&&e.toString().replace(t&&t.iri?o.a.ESCAPE:r.b.ESCAPE,u)},t.l=function(e,t){return e&&e.toString().replace(t&&t.iri?o.a.PCT_ENCODED:r.b.PCT_ENCODED,c)};var r=n(266),o=n(543),a=n(181),i=n.n(a),s=n(180);const l={};function u(e){const t=e.charCodeAt(0);let n;return n=t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function c(e){let t="",n=0;const r=e.length;for(;n=194&&o<224){if(r-n>=6){const r=parseInt(e.substr(n+4,2),16);t+=String.fromCharCode((31&o)<<6|63&r)}else t+=e.substr(n,6);n+=6}else if(o>=224){if(r-n>=9){const r=parseInt(e.substr(n+4,2),16),a=parseInt(e.substr(n+7,2),16);t+=String.fromCharCode((15&o)<<12|(63&r)<<6|63&a)}else t+=e.substr(n,9);n+=9}else t+=e.substr(n,3),n+=3}return t}function f(e,t){function n(e){const n=c(e);return n.match(t.UNRESERVED)?n:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,n).replace(t.NOT_USERINFO,u).replace(t.PCT_ENCODED,s.e)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_HOST,u).replace(t.PCT_ENCODED,s.e)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,n).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,u).replace(t.PCT_ENCODED,s.e)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,n).replace(t.NOT_QUERY,u).replace(t.PCT_ENCODED,s.e)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,n).replace(t.NOT_FRAGMENT,u).replace(t.PCT_ENCODED,s.e)),e}function d(e){return e.replace(/^0*(.*)/,"$1")||"0"}function p(e,t){const n=e.match(t.IPV4ADDRESS)||[],[,r]=n;return r?r.split(".").map(d).join("."):e}function h(e,t){const n=e.match(t.IPV6ADDRESS)||[],[,r,o]=n;if(r){const[e,n]=r.toLowerCase().split("::").reverse(),a=n?n.split(":").map(d):[],i=e.split(":").map(d),s=t.IPV4ADDRESS.test(i[i.length-1]),l=s?7:8,u=i.length-l,c=Array(l);for(let e=0;e{if(!t||"0"===t){const t=e[e.length-1];t&&t.index+t.length===n?t.length++:e.push({index:n,length:1})}return e},[]).sort((e,t)=>t.length-e.length)[0];let h;if(f&&f.length>1){const e=c.slice(0,f.index),t=c.slice(f.index+f.length);h=e.join(":")+"::"+t.join(":")}else h=c.join(":");return o&&(h+="%"+o),h}return e}t.a=l;const m=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,v=void 0==="".match(/(){0}/)[1];function g(e,t={}){const n={},a=!1!==t.iri?o.a:r.b;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);const s=e.match(m);if(s){v?(n.scheme=s[1],n.userinfo=s[3],n.host=s[4],n.port=parseInt(s[5],10),n.path=s[6]||"",n.query=s[7],n.fragment=s[8],isNaN(n.port)&&(n.port=s[5])):(n.scheme=s[1]||void 0,n.userinfo=-1!==e.indexOf("@")?s[3]:void 0,n.host=-1!==e.indexOf("//")?s[4]:void 0,n.port=parseInt(s[5],10),n.path=s[6]||"",n.query=-1!==e.indexOf("?")?s[7]:void 0,n.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(n.port)&&(n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),n.host&&(n.host=h(p(n.host,a),a)),void 0!==n.scheme||void 0!==n.userinfo||void 0!==n.host||void 0!==n.port||n.path||void 0!==n.query?void 0===n.scheme?n.reference="relative":void 0===n.fragment?n.reference="absolute":n.reference="uri":n.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==n.reference&&(n.error=n.error||"URI is not a "+t.reference+" reference.");const o=l[(t.scheme||n.scheme||"").toLowerCase()];if(t.unicodeSupport||o&&o.unicodeSupport)f(n,a);else{if(n.host&&(t.domainHost||o&&o.domainHost))try{n.host=i.a.toASCII(n.host.replace(a.PCT_ENCODED,c).toLowerCase())}catch(e){n.error=n.error||"Host's domain name can not be converted to ASCII via punycode: "+e}f(n,r.b)}o&&o.parse&&o.parse(n,t)}else n.error=n.error||"URI can not be parsed.";return n}const y=/^\.\.?\//,b=/^\/\.(\/|$)/,x=/^\/\.\.(\/|$)/,w=/^\/?(?:.|\n)*?(?=\/|$)/;function E(e){const t=[];for(;e.length;)if(e.match(y))e=e.replace(y,"");else if(e.match(b))e=e.replace(b,"/");else if(e.match(x))e=e.replace(x,"/"),t.pop();else if("."===e||".."===e)e="";else{const n=e.match(w);if(!n)throw new Error("Unexpected dot segment condition");{const r=n[0];e=e.slice(r.length),t.push(r)}}return t.join("")}function k(e,t={}){const n=t.iri?o.a:r.b,a=[],s=l[(t.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(e,t),e.host)if(n.IPV6ADDRESS.test(e.host));else if(t.domainHost||s&&s.domainHost)try{e.host=t.iri?i.a.toUnicode(e.host):i.a.toASCII(e.host.replace(n.PCT_ENCODED,c).toLowerCase())}catch(n){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+n}f(e,n),"suffix"!==t.reference&&e.scheme&&(a.push(e.scheme),a.push(":"));const u=function(e,t){const n=!1!==t.iri?o.a:r.b,a=[];return void 0!==e.userinfo&&(a.push(e.userinfo),a.push("@")),void 0!==e.host&&a.push(h(p(String(e.host),n),n).replace(n.IPV6ADDRESS,(e,t,n)=>"["+t+(n?"%25"+n:"")+"]")),"number"==typeof e.port&&(a.push(":"),a.push(e.port.toString(10))),a.length?a.join(""):void 0}(e,t);if(void 0!==u&&("suffix"!==t.reference&&a.push("//"),a.push(u),e.path&&"/"!==e.path.charAt(0)&&a.push("/")),void 0!==e.path){let n=e.path;t.absolutePath||s&&s.absolutePath||(n=E(n)),void 0===u&&(n=n.replace(/^\/\//,"/%2F")),a.push(n)}return void 0!==e.query&&(a.push("?"),a.push(e.query)),void 0!==e.fragment&&(a.push("#"),a.push(e.fragment)),a.join("")}function _(e,t,n={},r){const o={};return r||(e=g(k(e,n),n),t=g(k(t,n),n)),!(n=n||{}).tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=E(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=E(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=E(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=E(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}},function(e,t){function n(e,t,n,r){this.id=e,this.size=t,this.cramped=r,this.sizeMultiplier=n}n.prototype.sup=function(){return a[i[this.id]]},n.prototype.sub=function(){return a[s[this.id]]},n.prototype.fracNum=function(){return a[l[this.id]]},n.prototype.fracDen=function(){return a[u[this.id]]},n.prototype.cramp=function(){return a[c[this.id]]},n.prototype.cls=function(){return r[this.size]+(this.cramped?" cramped":" uncramped")},n.prototype.reset=function(){return o[this.size]};var r=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"],o=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"],a=[new n(0,0,1,!1),new n(1,0,1,!0),new n(2,1,1,!1),new n(3,1,1,!0),new n(4,2,.7,!1),new n(5,2,.7,!0),new n(6,3,.5,!1),new n(7,3,.5,!0)],i=[4,5,4,5,6,7,6,7],s=[5,5,5,5,7,7,7,7],l=[2,3,4,5,6,7,6,7],u=[3,3,5,5,7,7,7,7],c=[1,1,3,3,5,5,7,7];e.exports={DISPLAY:a[0],TEXT:a[2],SCRIPT:a[4],SCRIPTSCRIPT:a[6]}},function(e,t,n){var r=n(287),o=n(95),a=n(118),i=n(45),s=["\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma","\\Upsilon","\\Phi","\\Psi","\\Omega"],l=["ı","ȷ"],u=function(e,t,n,i,s){a[n][e]&&a[n][e].replace&&(e=a[n][e].replace);var l,u=o.getCharacterMetrics(e,t);return u?l=new r.symbolNode(e,u.height,u.depth,u.italic,u.skew,s):("undefined"!=typeof console&&console.warn("No character metrics for '"+e+"' in style '"+t+"'"),l=new r.symbolNode(e,0,0,0,0,s)),i&&(l.style.color=i),l},c=function(e,t,n,r,o){if("mathord"===o)return f(e,t,n,r);if("textord"===o)return u(e,"Main-Regular",t,n,r.concat(["mathrm"]));throw new Error("unexpected type: "+o+" in mathDefault")},f=function(e,t,n,r){return/[0-9]/.test(e.charAt(0))||i.contains(l,e)||i.contains(s,e)?u(e,"Main-Italic",t,n,r.concat(["mainit"])):u(e,"Math-Italic",t,n,r.concat(["mathit"]))},d=function(e){var t=0,n=0,r=0;if(e.children)for(var o=0;ot&&(t=e.children[o].height),e.children[o].depth>n&&(n=e.children[o].depth),e.children[o].maxFontSize>r&&(r=e.children[o].maxFontSize);e.height=t,e.depth=n,e.maxFontSize=r},p=function(e,t,n){var o=new r.span(e,t);return d(o),n&&(o.style.color=n),o},h={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}};e.exports={fontMap:h,makeSymbol:u,mathsym:function(e,t,n,r){return"\\"===e||"main"===a[t][e].font?u(e,"Main-Regular",t,n,r):u(e,"AMS-Regular",t,n,r.concat(["amsrm"]))},makeSpan:p,makeFragment:function(e){var t=new r.documentFragment(e);return d(t),t},makeVList:function(e,t,n,o){var a,i,s;if("individualShift"===t){var l=e;for(e=[l[0]],i=a=-l[0].shift-l[0].elem.depth,s=1;s",">"),n(a,i,h,":",":"),n(a,i,h,"≈","\\approx"),n(a,i,h,"≅","\\cong"),n(a,i,h,"≥","\\ge"),n(a,i,h,"≥","\\geq"),n(a,i,h,"←","\\gets"),n(a,i,h,">","\\gt"),n(a,i,h,"∈","\\in"),n(a,i,h,"∉","\\notin"),n(a,i,h,"⊂","\\subset"),n(a,i,h,"⊃","\\supset"),n(a,i,h,"⊆","\\subseteq"),n(a,i,h,"⊇","\\supseteq"),n(a,s,h,"⊈","\\nsubseteq"),n(a,s,h,"⊉","\\nsupseteq"),n(a,i,h,"⊨","\\models"),n(a,i,h,"←","\\leftarrow"),n(a,i,h,"≤","\\le"),n(a,i,h,"≤","\\leq"),n(a,i,h,"<","\\lt"),n(a,i,h,"≠","\\ne"),n(a,i,h,"≠","\\neq"),n(a,i,h,"→","\\rightarrow"),n(a,i,h,"→","\\to"),n(a,s,h,"≱","\\ngeq"),n(a,s,h,"≰","\\nleq"),n(a,i,m,null,"\\!"),n(a,i,m," ","\\ "),n(a,i,m," ","~"),n(a,i,m,null,"\\,"),n(a,i,m,null,"\\:"),n(a,i,m,null,"\\;"),n(a,i,m,null,"\\enspace"),n(a,i,m,null,"\\qquad"),n(a,i,m,null,"\\quad"),n(a,i,m," ","\\space"),n(a,i,"punct",",",","),n(a,i,"punct",";",";"),n(a,i,"punct",":","\\colon"),n(a,s,u,"⊼","\\barwedge"),n(a,s,u,"⊻","\\veebar"),n(a,i,u,"⊙","\\odot"),n(a,i,u,"⊕","\\oplus"),n(a,i,u,"⊗","\\otimes"),n(a,i,v,"∂","\\partial"),n(a,i,u,"⊘","\\oslash"),n(a,s,u,"⊚","\\circledcirc"),n(a,s,u,"⊡","\\boxdot"),n(a,i,u,"△","\\bigtriangleup"),n(a,i,u,"▽","\\bigtriangledown"),n(a,i,u,"†","\\dagger"),n(a,i,u,"⋄","\\diamond"),n(a,i,u,"⋆","\\star"),n(a,i,u,"◃","\\triangleleft"),n(a,i,u,"▹","\\triangleright"),n(a,i,p,"{","\\{"),n(a,i,c,"}","\\}"),n(a,i,p,"{","\\lbrace"),n(a,i,c,"}","\\rbrace"),n(a,i,p,"[","\\lbrack"),n(a,i,c,"]","\\rbrack"),n(a,i,p,"⌊","\\lfloor"),n(a,i,c,"⌋","\\rfloor"),n(a,i,p,"⌈","\\lceil"),n(a,i,c,"⌉","\\rceil"),n(a,i,v,"\\","\\backslash"),n(a,i,v,"∣","|"),n(a,i,v,"∣","\\vert"),n(a,i,v,"∥","\\|"),n(a,i,v,"∥","\\Vert"),n(a,i,h,"↑","\\uparrow"),n(a,i,h,"⇑","\\Uparrow"),n(a,i,h,"↓","\\downarrow"),n(a,i,h,"⇓","\\Downarrow"),n(a,i,h,"↕","\\updownarrow"),n(a,i,h,"⇕","\\Updownarrow"),n(a,a,d,"∐","\\coprod"),n(a,a,d,"⋁","\\bigvee"),n(a,a,d,"⋀","\\bigwedge"),n(a,a,d,"⨄","\\biguplus"),n(a,a,d,"⋂","\\bigcap"),n(a,a,d,"⋃","\\bigcup"),n(a,a,d,"∫","\\int"),n(a,a,d,"∫","\\intop"),n(a,a,d,"∬","\\iint"),n(a,a,d,"∭","\\iiint"),n(a,a,d,"∏","\\prod"),n(a,a,d,"∑","\\sum"),n(a,a,d,"⨂","\\bigotimes"),n(a,a,d,"⨁","\\bigoplus"),n(a,a,d,"⨀","\\bigodot"),n(a,a,d,"∮","\\oint"),n(a,a,d,"⨆","\\bigsqcup"),n(a,a,d,"∫","\\smallint"),n(a,i,"inner","…","\\ldots"),n(a,i,"inner","⋯","\\cdots"),n(a,i,"inner","⋱","\\ddots"),n(a,i,v,"⋮","\\vdots"),n(a,i,l,"´","\\acute"),n(a,i,l,"`","\\grave"),n(a,i,l,"¨","\\ddot"),n(a,i,l,"~","\\tilde"),n(a,i,l,"¯","\\bar"),n(a,i,l,"˘","\\breve"),n(a,i,l,"ˇ","\\check"),n(a,i,l,"^","\\hat"),n(a,i,l,"⃗","\\vec"),n(a,i,l,"˙","\\dot"),n(a,i,f,"ı","\\imath"),n(a,i,f,"ȷ","\\jmath"),n("text",i,m," ","\\ "),n("text",i,m," "," "),n("text",i,m," ","~");for(r=0;r<'0123456789/@."'.length;r++)n(a,i,v,o='0123456789/@."'.charAt(r),o);for(r=0;r<"0123456789`!@*()-=+[]'\";:?/.,".length;r++)n("text",i,v,o="0123456789`!@*()-=+[]'\";:?/.,".charAt(r),o);var g="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(r=0;r1&&void 0!==arguments[1]?arguments[1]:window,n=(0,o.default)(e);return n.defaultView||n.parentView||t};t.default=a},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!==n&&void 0!==n?n:null}.bind(this))}function a(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function i(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,i=null,s=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?i="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(i="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?s="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==n||null!==i||null!==s){var l=e.displayName||e.name,u="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+l+" uses "+u+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==i?"\n "+i:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=a;var c=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;c.call(this,e,t,r)}}return e}Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"polyfill",function(){return i}),r.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0},function(e,t){function n(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return i[e];var n,a=String(e);return(n=r[a.toLowerCase()])?n:(n=o[a.toLowerCase()])||(1===a.length?a.charCodeAt(0):void 0)}n.isEventKey=function(e,t){if(e&&"object"==typeof e){var n=e.which||e.keyCode||e.charCode;if(null===n||void 0===n)return!1;if("string"==typeof t){var a;if(a=r[t.toLowerCase()])return a===n;if(a=o[t.toLowerCase()])return a===n}else if("number"==typeof t)return t===n;return!1}};var r=(t=e.exports=n).code=t.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,"left command":91,"right command":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},o=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91}; -/*! - * Programatically add the following - */ -for(a=97;a<123;a++)r[String.fromCharCode(a)]=a-32;for(var a=48;a<58;a++)r[a-48]=a;for(a=1;a<13;a++)r["f"+a]=a+111;for(a=0;a<10;a++)r["numpad "+a]=a+96;var i=t.names=t.title={};for(a in r)i[r[a]]=a;for(var s in o)r[s]=o[s]},function(e,t,n){"use strict";(function(e){t.__esModule=!0,t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),o=s(n(0)),a=s(n(22)),i=n(674);function s(e){return e&&e.__esModule?e:{default:e}}var l=t.UNMOUNTED="unmounted",u=t.EXITED="exited",c=t.ENTERING="entering",f=t.ENTERED="entered",d=t.EXITING="exiting",p=function(e){function t(n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,r)),a=r.transitionGroup,i=a&&!a.isMounting?n.enter:n.appear,s=void 0;return o.nextStatus=null,n.in?i?(s=u,o.nextStatus=c):s=f:s=n.unmountOnExit||n.mountOnEnter?l:u,o.state={status:s},o.nextCallback=null,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getChildContext=function(){return{transitionGroup:null}},t.prototype.componentDidMount=function(){this.updateStatus(!0)},t.prototype.componentWillReceiveProps=function(e){var t=(this.pendingState||this.state).status;e.in?(t===l&&this.setState({status:u}),t!==c&&t!==f&&(this.nextStatus=c)):t!==c&&t!==f||(this.nextStatus=d)},t.prototype.componentDidUpdate=function(){this.updateStatus()},t.prototype.componentWillUnmount=function(){this.cancelNextCallback()},t.prototype.getTimeouts=function(){var e=this.props.timeout,t=void 0,n=void 0,r=void 0;return t=n=r=e,null!=e&&"number"!=typeof e&&(t=e.exit,n=e.enter,r=e.appear),{exit:t,enter:n,appear:r}},t.prototype.updateStatus=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.nextStatus;if(null!==t){this.nextStatus=null,this.cancelNextCallback();var n=a.default.findDOMNode(this);t===c?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===u&&this.setState({status:l})},t.prototype.performEnter=function(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,a=this.getTimeouts();t||r?(this.props.onEnter(e,o),this.safeSetState({status:c},function(){n.props.onEntering(e,o),n.onTransitionEnd(e,a.enter,function(){n.safeSetState({status:f},function(){n.props.onEntered(e,o)})})})):this.safeSetState({status:f},function(){n.props.onEntered(e)})},t.prototype.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:d},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:u},function(){t.props.onExited(e)})})})):this.safeSetState({status:u},function(){t.props.onExited(e)})},t.prototype.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},t.prototype.safeSetState=function(e,t){var n=this;this.pendingState=e,t=this.setNextCallback(t),this.setState(e,function(){n.pendingState=null,t()})},t.prototype.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},t.prototype.onTransitionEnd=function(e,t,n){this.setNextCallback(n),e?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},t.prototype.render=function(){var e=this.state.status;if(e===l)return null;var t=this.props,n=t.children,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var a=o.default.Children.only(n);return o.default.cloneElement(a,r)},t}(o.default.Component);function h(){}p.contextTypes={transitionGroup:r.object},p.childContextTypes={transitionGroup:function(){}},p.propTypes="production"!==e.env.NODE_ENV?{children:r.oneOfType([r.func.isRequired,r.element.isRequired]).isRequired,in:r.bool,mountOnEnter:r.bool,unmountOnExit:r.bool,appear:r.bool,enter:r.bool,exit:r.bool,timeout:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r0?r:n)(e)}},function(e,t,n){var r=n(142)("keys"),o=n(103);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(21),o=n(39),a=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(102)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(104),o=n(83),a=n(61),i=n(136),s=n(60),l=n(216),u=Object.getOwnPropertyDescriptor;t.f=n(40)?u:function(e,t){if(e=a(e),t=i(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){var r=n(28),o=n(21),a=n(59);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],i={};i[e]=t(n),r(r.S+r.F*a(function(){n(1)}),"Object",i)}},function(e,t,n){var r=n(103)("meta"),o=n(42),a=n(60),i=n(31).f,s=0,l=Object.isExtensible||function(){return!0},u=!n(59)(function(){return l(Object.preventExtensions({}))}),c=function(e){i(e,r,{value:{i:"O"+ ++s,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[r].w},onFreeze:function(e){return u&&f.NEED&&l(e)&&!a(e,r)&&c(e),e}}},function(e,t,n){t.f=n(29)},function(e,t,n){var r=n(39),o=n(21),a=n(102),i=n(148),s=n(31).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=a?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:i.f(e)})}},function(e,t,n){var r=n(58),o=n(393),a=n(143),i=n(141)("IE_PROTO"),s=function(){},l=function(){var e,t=n(217)("iframe"),r=a.length;for(t.style.display="none",n(394).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" -

- - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python.html.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python.html.xml deleted file mode 100644 index 81c072079c8..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python.html.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - python.html - - - content_type - text/html - - - precondition - - - - title - - - - - - diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.css b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.css deleted file mode 100644 index 3fa60daac7c..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.css +++ /dev/null @@ -1,209 +0,0 @@ -.rendered_html { - overflow: auto; - max-height: 30em; - color: black; - /* any extras will just be numbers: */ -} -.rendered_html em { - font-style: italic; -} -.rendered_html strong { - font-weight: bold; -} -.rendered_html u { - text-decoration: underline; -} -.rendered_html :link { - text-decoration: underline; -} -.rendered_html :visited { - text-decoration: underline; -} -.rendered_html h1 { - font-size: 185.7%; - margin: 1.08em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h2 { - font-size: 157.1%; - margin: 1.27em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h3 { - font-size: 128.6%; - margin: 1.55em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h4 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h5 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; - font-style: italic; -} -.rendered_html h6 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; - font-style: italic; -} -.rendered_html h1:first-child { - margin-top: 0.538em; -} -.rendered_html h2:first-child { - margin-top: 0.636em; -} -.rendered_html h3:first-child { - margin-top: 0.777em; -} -.rendered_html h4:first-child { - margin-top: 1em; -} -.rendered_html h5:first-child { - margin-top: 1em; -} -.rendered_html h6:first-child { - margin-top: 1em; -} -.rendered_html ul:not(.list-inline), -.rendered_html ol:not(.list-inline) { - padding-left: 2em; -} -.rendered_html ul { - list-style: disc; -} -.rendered_html ul ul { - list-style: square; - margin-top: 0; -} -.rendered_html ul ul ul { - list-style: circle; -} -.rendered_html ol { - list-style: decimal; -} -.rendered_html ol ol { - list-style: upper-alpha; - margin-top: 0; -} -.rendered_html ol ol ol { - list-style: lower-alpha; -} -.rendered_html ol ol ol ol { - list-style: lower-roman; -} -.rendered_html ol ol ol ol ol { - list-style: decimal; -} -.rendered_html * + ul { - margin-top: 1em; -} -.rendered_html * + ol { - margin-top: 1em; -} -.rendered_html hr { - color: black; - background-color: black; -} -.rendered_html pre { - margin: 1em 2em; - padding: 0px; - background-color: white; -} -.rendered_html code { - background-color: #eff0f1; -} -.rendered_html p code { - padding: 1px 5px; -} -.rendered_html pre code { - background-color: white; -} -.rendered_html pre, -.rendered_html code { - border: 0; - color: black; - font-size: 100%; -} -.rendered_html blockquote { - margin: 1em 2em; -} -.rendered_html table { - margin-left: auto; - margin-right: auto; - border: none; - border-collapse: collapse; - border-spacing: 0; - color: black; - font-size: 12px; - table-layout: fixed; -} -.rendered_html thead { - border-bottom: 1px solid black; - vertical-align: bottom; -} -.rendered_html tr, -.rendered_html th, -.rendered_html td { - text-align: right; - vertical-align: middle; - padding: 0.5em 0.5em; - line-height: normal; - white-space: normal; - max-width: none; - border: none; -} -.rendered_html th { - font-weight: bold; -} -.rendered_html tbody tr:nth-child(odd) { - background: #f5f5f5; -} -.rendered_html tbody tr:hover { - background: rgba(66, 165, 245, 0.2); -} -.rendered_html * + table { - margin-top: 1em; -} -.rendered_html p { - text-align: left; -} -.rendered_html * + p { - margin-top: 1em; -} -.rendered_html img { - display: block; - margin-left: auto; - margin-right: auto; -} -.rendered_html * + img { - margin-top: 1em; -} -.rendered_html img, -.rendered_html svg { - max-width: 100%; - height: auto; -} -.rendered_html img.unconfined, -.rendered_html svg.unconfined { - max-width: none; -} -.rendered_html .alert { - margin-bottom: initial; -} -.rendered_html * + .alert { - margin-top: 1em; -} -[dir="rtl"] .rendered_html p { - text-align: right; -} diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.xml deleted file mode 100644 index b880eefc27a..00000000000 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/renderedhtml.css.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - __name__ - renderedhtml.css - - - content_type - text/css - - - precondition - - - - title - - - - - - -- 2.30.9 From ba581824aa360d14b6bf3504e85660eaf40b2b61 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Fri, 31 May 2019 18:16:14 +0200 Subject: [PATCH 06/16] erp5_notebook: delay the python package loading after the main content loaded --- .../erp5_notebook/gadget_jsmd_eval.js.js | 79 ++++++++++++------- 1 file changed, 52 insertions(+), 27 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 63ff15c3f7b..81459efcb3e 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -3,17 +3,6 @@ (function (window) { "use strict"; - function sideEffectDiv(sideEffectClass, reportSideEffect) { - // appends a side effect div to the side effect area - var div = document.createElement("div"); - div.setAttribute("class", sideEffectClass); - if (reportSideEffect === undefined) { - div.setAttribute("style", "display:"); - } - document.body.appendChild(div); - return div; - } - var IODide = function createIODide() { var iodide = { output: { @@ -49,6 +38,10 @@ Module = {}, packages, loadedPackages = [], + py_div_id_prefix = "py_div_id_", + py_div_id_count = 0, + py_div_id_count_2 = 0, + props = {}, // Regexp for validating package name and URI package_name_regexp = '[a-z0-9_][a-z0-9_\-]*', package_uri_regexp = new RegExp('^https?://.*?(' + package_name_regexp + ').js$', 'i'); @@ -60,6 +53,20 @@ return; }; + function sideEffectDiv(sideEffectClass, reportSideEffect) { + var div = document.getElementById(py_div_id_prefix + py_div_id_count_2), + pre = div.getElementsByTagName('pre')[0], + result = pre.getElementsByTagName('code')[0]; + + py_div_id_count_2 += 1; + div.removeChild(div.firstChild); + div.setAttribute("class", sideEffectClass); + if (reportSideEffect === undefined) { + div.setAttribute("style", "display:"); + } + return div; + } + // Copied from jio function ajax(param) { var xhr = new XMLHttpRequest(); @@ -419,24 +426,36 @@ }) .push(undefined, function(error) { console.log(error); - }) + }); return queue; } function renderCodeblock(result_text) { + if (result_text !== undefined) { + var div = document.getElementById(py_div_id_prefix + py_div_id_count_2), + pre = div.getElementsByTagName('pre')[0], + result = pre.getElementsByTagName('code')[0]; + + py_div_id_count_2 += 1; + result.innerHTML = result_text; + } + } + + function addPyCellStub() { var div = document.createElement('div'), pre = document.createElement('pre'), result = document.createElement('code'); + div.setAttribute("id", py_div_id_prefix + py_div_id_count); + py_div_id_count += 1; + div.style.border = '1px solid #C3CCD0'; div.style.margin = '40px 10px'; div.style.paddingLeft = '10px'; - if (result_text !== undefined) { - result.innerHTML = result_text; - pre.appendChild(result); - div.appendChild(pre); - document.body.appendChild(div); - } + result.innerHTML = "Loading pyodide"; + pre.appendChild(result); + div.appendChild(pre); + document.body.appendChild(div); } function executePyCell(line_list) { @@ -518,23 +537,22 @@ // empty block, do nothing. return; } - - var queue = new RSVP.Queue(); - + addPyCellStub(); if (!is_pyodide_loaded) { - console.log("Loading pyodide"); - queue.push(function () { - return initPyodide(); - }) + props.queue = new RSVP.Queue() + .push(function () { + return initPyodide(); + }) .push(function () { return pyodideLoadPackage('matplotlib'); }); is_pyodide_loaded = true; } - queue.push(function () { + + props.queue.push(function () { return executePyCell(cell._line_list); }); - return queue; + return; } return executeUnknownCellType(cell); } @@ -557,6 +575,13 @@ for (i = 0; i < len; i += 1) { queue.push(deferCellExecution(cell_list[i])); } + + // Python packages loading and execution + queue + .push(function () { + return props.queue; + }); + return queue .push(function () { console.info('JSMD executed.'); -- 2.30.9 From d92bf7137d2dbffad47ffda6f5f0d86b9987f612 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 10 Jun 2019 11:47:37 +0200 Subject: [PATCH 07/16] erp5_notebook: jsmd_eval code refinement --- .../erp5_notebook/gadget_jsmd_eval.js.js | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 81459efcb3e..3c4d14ac904 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -8,7 +8,6 @@ output: { text: function (s, reportSideEffect) { var i, div, line_list; - console.log("Inside output.text"); console.log(s); line_list = s.toString().split("\n"); for (i = 0; i < line_list.length; i += 1) { @@ -145,15 +144,12 @@ package_uri = 'default channel'; } - console.log("Loading " + package_name + " from " + package_uri); - console.log("Loaded packages"); - console.log(loadedPackages); if (package_name in loadedPackages) { if (package_uri !== loadedPackages[package_name]) { throw new Error( "URI mismatch, attempting to load package " + - package_name + " from " + package_uri + " while it is already " + - "loaded from " + loadedPackages[package_name] + " ! " + package_name + " from " + package_uri + " while it is already " + + "loaded from " + loadedPackages[package_name] + " ! " ); } } else { @@ -166,7 +162,7 @@ } } } else { - console.log("Unknown package " + package_name); + throw new Error("Unknown package " + package_name); } } } @@ -207,7 +203,7 @@ // see the new files. This is done here so it happens in parallel // with the fetching over the network. window.pyodide.runPython('import importlib as _importlib\n' + - '_importlib.invalidate_caches()\n'); + '_importlib.invalidate_caches()\n'); }); return promise; } @@ -227,7 +223,7 @@ function pushNewCell() { if (current_type !== undefined) { cell_list.push(new JSMDCell(current_type[1], - current_text_list)); + current_text_list)); } } @@ -347,7 +343,9 @@ console.log(line_split); return new RSVP.Queue() .push(function () { - return ajax({url: url}); + return ajax({ + url: url + }); }) .push(function (evt) { window[variable] = evt.target.responseText; @@ -398,9 +396,10 @@ function executeMarkdownCell(line_list) { var renderer = new marked.Renderer(); return new RSVP.Promise(function (resolve, reject) { - marked(line_list.join('\n'), - {renderer: renderer}, - function (err, content) { + marked(line_list.join('\n'), { + renderer: renderer + }, + function (err, content) { if (err) { reject(err); } @@ -416,15 +415,18 @@ function loadPyodide(info, receiveInstance) { var queue = new RSVP.Queue(); queue.push(function () { - return ajax({url: "pyodide.asm.wasm", dataType: "arraybuffer"}) - }) + return ajax({ + url: "pyodide.asm.wasm", + dataType: "arraybuffer" + }) + }) .push(function (evt) { return WebAssembly.instantiate(evt.target.response, info); }) .push(function (results) { return receiveInstance(results.instance); }) - .push(undefined, function(error) { + .push(undefined, function (error) { console.log(error); }); return queue; @@ -460,7 +462,7 @@ function executePyCell(line_list) { var result, code_text = line_list.join('\n'); - result = pyodide.runPython(code_text); + result = window.pyodide.runPython(code_text); renderCodeblock(result); } @@ -468,7 +470,8 @@ window.pyodide = pyodide(Module); window.pyodide.loadPackage = pyodideLoadPackage; - var defer = RSVP.defer(), promise = defer.promise; + var defer = RSVP.defer(), + promise = defer.promise; Module.postRun = defer.resolve; promise.then(function () { @@ -479,12 +482,21 @@ return defer.promise; } + Module.checkABI = function(ABI_number) { + if (ABI_number !== parseInt('1')) { + var ABI_mismatch_exception = `ABI numbers differ. Expected 1, got ${ABI_number}`; + console.error(ABI_mismatch_exception); + throw ABI_mismatch_exception; + } + return true; + }; + function initPyodide() { var queue = new RSVP.Queue(); queue.push(function () { - Module.instantiateWasm = loadPyodide; - window.Module = Module; - }) + Module.instantiateWasm = loadPyodide; + window.Module = Module; + }) .push(function () { return loadJSResource('pyodide.asm.data.js'); }) @@ -495,7 +507,9 @@ return pyodideSetting(); }) .push(function () { - return ajax({url: 'packages.json'}); + return ajax({ + url: 'packages.json' + }); }) .push(function (evt) { return JSON.parse(evt.target.response); @@ -506,7 +520,7 @@ window.pyodide._module.packages = json; return; }) - .push(undefined, function(error) { + .push(undefined, function (error) { console.log(error); }); return queue; -- 2.30.9 From 383b35ca23e56ea1083ed906c52c51b42084db2f Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 10 Jun 2019 17:01:44 +0200 Subject: [PATCH 08/16] erp5_notebook: Switch from webworker to single thread implementation --- .../erp5_notebook/gadget_jsmd_eval.js.js | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 3c4d14ac904..7d3cddd1c5a 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -53,16 +53,13 @@ }; function sideEffectDiv(sideEffectClass, reportSideEffect) { - var div = document.getElementById(py_div_id_prefix + py_div_id_count_2), - pre = div.getElementsByTagName('pre')[0], - result = pre.getElementsByTagName('code')[0]; - - py_div_id_count_2 += 1; - div.removeChild(div.firstChild); + // appends a side effect div to the side effect area + var div = document.createElement("div"); div.setAttribute("class", sideEffectClass); if (reportSideEffect === undefined) { div.setAttribute("style", "display:"); } + document.body.appendChild(div); return div; } @@ -433,13 +430,18 @@ } function renderCodeblock(result_text) { - if (result_text !== undefined) { - var div = document.getElementById(py_div_id_prefix + py_div_id_count_2), - pre = div.getElementsByTagName('pre')[0], - result = pre.getElementsByTagName('code')[0]; + var div = document.createElement('div'), + pre = document.createElement('pre'), + result = document.createElement('code'); + div.style.border = '1px solid #C3CCD0'; + div.style.margin = '40px 10px'; + div.style.paddingLeft = '10px'; - py_div_id_count_2 += 1; + if (result_text !== undefined) { result.innerHTML = result_text; + pre.appendChild(result); + div.appendChild(pre); + document.body.appendChild(div); } } @@ -551,11 +553,10 @@ // empty block, do nothing. return; } - addPyCellStub(); - if (!is_pyodide_loaded) { - props.queue = new RSVP.Queue() - .push(function () { - return initPyodide(); + var queue = new RSVP.Queue(); + if (is_pyodide_loaded === false) { + queue.push(function () { + return initPyodide(); }) .push(function () { return pyodideLoadPackage('matplotlib'); @@ -563,10 +564,10 @@ is_pyodide_loaded = true; } - props.queue.push(function () { + queue.push(function () { return executePyCell(cell._line_list); }); - return; + return queue } return executeUnknownCellType(cell); } @@ -590,12 +591,6 @@ queue.push(deferCellExecution(cell_list[i])); } - // Python packages loading and execution - queue - .push(function () { - return props.queue; - }); - return queue .push(function () { console.info('JSMD executed.'); -- 2.30.9 From b14231fc496a87c2f8b8c29dac78509439953fb1 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 10 Jun 2019 17:02:25 +0200 Subject: [PATCH 09/16] erp5_notebook: Preload webassembly module on Chrome --- .../erp5_notebook/gadget_jsmd_eval.js.js | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 7d3cddd1c5a..b2c5caeb45a 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -122,6 +122,50 @@ return null; } + function preloadWasm() { + // On Chrome, we have to instantiate wasm asynchronously. Since that + // can't be done synchronously within the call to dlopen, we instantiate + // every .so that comes our way up front, caching it in the + // `preloadedWasm` dictionary. + + let promise = new Promise((resolve) => resolve()); + let FS = pyodide._module.FS; + + function recurseDir(rootpath) { + let dirs; + var entry; + try { + dirs = FS.readdir(rootpath); + } catch { + return; + } + for (entry of dirs) { + if (entry.startsWith('.')) { + continue; + } + const path = rootpath + entry; + if (entry.endsWith('.so')) { + if (Module['preloadedWasm'][path] === undefined) { + promise = promise + .then(() => Module['loadWebAssemblyModule']( + FS.readFile(path), { + loadAsync: true + })) + .then((module) => { + Module['preloadedWasm'][path] = module; + }); + } + } else if (FS.isDir(FS.lookupPath(path).node.mode)) { + recurseDir(path + '/'); + } + } + } + + recurseDir('/'); + + return promise; + } + function pyodideLoadPackage(names) { // DFS to find all dependencies of the requested packages var queue, toLoad, package_uri, package_name, k, @@ -176,7 +220,9 @@ } delete pyodide.monitorRunDependencies; packageList = Array.from(Object.keys(toLoad)).join(', '); - resolve("Loaded " + packageList); + preloadWasm().then(() => { + resolve(`Loaded ${packageList}`) + }); } }; -- 2.30.9 From f9495a51cfa39168f6e8909a63bec954fbe2f656 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 15 Jul 2019 10:08:42 +0000 Subject: [PATCH 10/16] erp5_notebook: Use RSVP.defer to avoid create Promise manually --- .../erp5_notebook/gadget_jsmd_eval.css.css | 7 ++ .../erp5_notebook/gadget_jsmd_eval.css.xml | 28 +++++ .../erp5_notebook/gadget_jsmd_eval.html.html | 1 + .../erp5_notebook/gadget_jsmd_eval.js.js | 118 +++++++++--------- 4 files changed, 92 insertions(+), 62 deletions(-) create mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.css create mode 100644 bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.css b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.css new file mode 100644 index 00000000000..34ca782a241 --- /dev/null +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.css @@ -0,0 +1,7 @@ +div.code-block { + border-width: 1px; + border-style: solid; + border-color: #C3CCD0; + margin: 40px 10px; + padding-left: 10px; +} diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml new file mode 100644 index 00000000000..c8c4ec44032 --- /dev/null +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml @@ -0,0 +1,28 @@ + + + + + + + + + + __name__ + gadget_jsmd_eval.css + + + content_type + text/css + + + precondition + + + + title + + + + + + diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.html b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.html index 6897c1c58fe..681b08a5703 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.html +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.html @@ -8,6 +8,7 @@ JSMD Eval Gadget + diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index b2c5caeb45a..10808efe54b 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -127,13 +127,12 @@ // can't be done synchronously within the call to dlopen, we instantiate // every .so that comes our way up front, caching it in the // `preloadedWasm` dictionary. - - let promise = new Promise((resolve) => resolve()); - let FS = pyodide._module.FS; + var queue, FS; + queue = new RSVP.Queue(); + FS = pyodide._module.FS; function recurseDir(rootpath) { - let dirs; - var entry; + var entry, dirs; try { dirs = FS.readdir(rootpath); } catch { @@ -146,14 +145,16 @@ const path = rootpath + entry; if (entry.endsWith('.so')) { if (Module['preloadedWasm'][path] === undefined) { - promise = promise - .then(() => Module['loadWebAssemblyModule']( + queue.push(function () { + return Module['loadWebAssemblyModule']( FS.readFile(path), { loadAsync: true - })) - .then((module) => { - Module['preloadedWasm'][path] = module; - }); + } + ) + }) + .push(function (module) { + Module['preloadedWasm'][path] = module; + }); } } else if (FS.isDir(FS.lookupPath(path).node.mode)) { recurseDir(path + '/'); @@ -163,16 +164,17 @@ recurseDir('/'); - return promise; + return queue; } function pyodideLoadPackage(names) { // DFS to find all dependencies of the requested packages var queue, toLoad, package_uri, package_name, k, - subpackage, promise, packageList, script; + subpackage, packageList, script, defer; packages = window.pyodide.packages.dependencies; queue = new Array(names); toLoad = []; + defer = RSVP.defer(); while (queue.length) { package_uri = queue.pop(); package_name = _uri_to_package_name(package_uri); @@ -208,47 +210,49 @@ } } - promise = new RSVP.Promise(function (resolve, reject) { - if (Object.keys(toLoad).length === 0) { - resolve('No new packages to load'); - } + if (Object.keys(toLoad).length === 0) { + console.log('No new packages to load'); + return; + } - pyodide.monitorRunDependencies = function (n) { - if (n === 0) { - for (package_name in toLoad) { - loadedPackages[package_name] = toLoad[package_name]; - } - delete pyodide.monitorRunDependencies; - packageList = Array.from(Object.keys(toLoad)).join(', '); - preloadWasm().then(() => { - resolve(`Loaded ${packageList}`) - }); + pyodide.monitorRunDependencies = function (n) { + if (n === 0) { + for (package_name in toLoad) { + loadedPackages[package_name] = toLoad[package_name]; } - }; - - function script_reject(e) { - reject(e); + delete pyodide.monitorRunDependencies; + packageList = Array.from(Object.keys(toLoad)).join(', '); + return preloadWasm() + .push(function () { + defer.resolve(); + console.log('Loaded ' + packageList); + return; + }); } + }; - for (package_name in toLoad) { - script = document.createElement('script'); - package_uri = toLoad[package_name]; - if (package_uri === 'default channel') { - script.src = package_name + ".js"; - } else { - script.src = package_uri; - } - script.onerror = script_reject; - document.body.appendChild(script); + function script_reject(e) { + defer.reject(e); + } + + for (package_name in toLoad) { + script = document.createElement('script'); + package_uri = toLoad[package_name]; + if (package_uri === 'default channel') { + script.src = package_name + ".js"; + } else { + script.src = package_uri; } + script.onerror = script_reject; + document.body.appendChild(script); + } - // We have to invalidate Python's import caches, or it won't - // see the new files. This is done here so it happens in parallel - // with the fetching over the network. - window.pyodide.runPython('import importlib as _importlib\n' + - '_importlib.invalidate_caches()\n'); - }); - return promise; + // We have to invalidate Python's import caches, or it won't + // see the new files. This is done here so it happens in parallel + // with the fetching over the network. + window.pyodide.runPython('import importlib as _importlib\n' + + '_importlib.invalidate_caches()\n'); + return defer.promise; } function parseJSMDCellList(jsmd) { @@ -479,9 +483,7 @@ var div = document.createElement('div'), pre = document.createElement('pre'), result = document.createElement('code'); - div.style.border = '1px solid #C3CCD0'; - div.style.margin = '40px 10px'; - div.style.paddingLeft = '10px'; + div.classList.add('code-block'); if (result_text !== undefined) { result.innerHTML = result_text; @@ -497,10 +499,7 @@ result = document.createElement('code'); div.setAttribute("id", py_div_id_prefix + py_div_id_count); py_div_id_count += 1; - - div.style.border = '1px solid #C3CCD0'; - div.style.margin = '40px 10px'; - div.style.paddingLeft = '10px'; + div.classList.add('code-block'); result.innerHTML = "Loading pyodide"; pre.appendChild(result); @@ -518,14 +517,8 @@ window.pyodide = pyodide(Module); window.pyodide.loadPackage = pyodideLoadPackage; - var defer = RSVP.defer(), - promise = defer.promise; - + var defer = RSVP.defer(); Module.postRun = defer.resolve; - promise.then(function () { - console.log("postRun get called"); - delete window.Module; - }); return defer.promise; } @@ -555,6 +548,7 @@ return pyodideSetting(); }) .push(function () { + delete window.Module; return ajax({ url: 'packages.json' }); -- 2.30.9 From 7b177111988c2c7ff18e8634bfb349e27f2037ba Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 15 Jul 2019 23:04:41 +0000 Subject: [PATCH 11/16] erp5_notebook: Make jslint happy... --- .../erp5_notebook/gadget_jsmd_eval.js.js | 190 ++++++++---------- 1 file changed, 86 insertions(+), 104 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 10808efe54b..9bf0aea49da 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -1,15 +1,26 @@ /*global window, console, RSVP, document, URL, eval, XMLHttpRequest, marked, pyodide, WebAssembly, fetch*/ -/*jslint nomen: true, indent: 2, maxerr: 3 */ +/*jslint nomen: true, indent: 2, maxerr: 3, regexp: true */ (function (window) { "use strict"; + function sideEffectDiv(sideEffectClass, reportSideEffect) { + // appends a side effect div to the side effect area + var div = document.createElement("div"); + div.setAttribute("class", sideEffectClass); + if (reportSideEffect === undefined) { + div.setAttribute("style", "display:"); + } + document.body.appendChild(div); + return div; + } + var IODide = function createIODide() { var iodide = { output: { - text: function (s, reportSideEffect) { + text: function (content, reportSideEffect) { var i, div, line_list; - console.log(s); - line_list = s.toString().split("\n"); + console.log(content); + line_list = content.toString().split("\n"); for (i = 0; i < line_list.length; i += 1) { div = sideEffectDiv("side-effect-print", reportSideEffect); div.textContent = line_list[i]; @@ -37,32 +48,18 @@ Module = {}, packages, loadedPackages = [], - py_div_id_prefix = "py_div_id_", - py_div_id_count = 0, - py_div_id_count_2 = 0, - props = {}, // Regexp for validating package name and URI - package_name_regexp = '[a-z0-9_][a-z0-9_\-]*', - package_uri_regexp = new RegExp('^https?://.*?(' + package_name_regexp + ').js$', 'i'); + package_uri_regexp = /^https?:\/\/.*?([a-z0-9_][a-z0-9_\-]*).js$/, + package_name_regexp = /^[a-z0-9_][a-z0-9_\-]*$/; - package_name_regexp = new RegExp('^' + package_name_regexp + '$', 'i'); + package_uri_regexp = new RegExp(package_uri_regexp, 'i'); + package_name_regexp = new RegExp(package_name_regexp, 'i'); window.iodide = new IODide(); IODide.prototype.addOutputHandler = function () { return; }; - function sideEffectDiv(sideEffectClass, reportSideEffect) { - // appends a side effect div to the side effect area - var div = document.createElement("div"); - div.setAttribute("class", sideEffectClass); - if (reportSideEffect === undefined) { - div.setAttribute("style", "display:"); - } - document.body.appendChild(div); - return div; - } - // Copied from jio function ajax(param) { var xhr = new XMLHttpRequest(); @@ -132,32 +129,33 @@ FS = pyodide._module.FS; function recurseDir(rootpath) { - var entry, dirs; + var i, entry, dirs, path; try { dirs = FS.readdir(rootpath); - } catch { + } catch (e) { return; } - for (entry of dirs) { - if (entry.startsWith('.')) { - continue; - } - const path = rootpath + entry; - if (entry.endsWith('.so')) { - if (Module['preloadedWasm'][path] === undefined) { - queue.push(function () { - return Module['loadWebAssemblyModule']( - FS.readFile(path), { - loadAsync: true - } - ) - }) - .push(function (module) { - Module['preloadedWasm'][path] = module; - }); + + for (i = 0; i < dirs.length; i += 1) { + entry = dirs[i]; + if (!entry.startsWith('.')) { + const path = rootpath + entry; + if (entry.endsWith('.so')) { + if (Module.preloadedWasm[path] === undefined) { + queue.push(function () { + return Module.loadWebAssemblyModule( + FS.readFile(path), { + loadAsync: true + } + ) + }) + .push(function (module) { + Module.preloadedWasm[path] = module; + }); + } + } else if (FS.isDir(FS.lookupPath(path).node.mode)) { + recurseDir(path + '/'); } - } else if (FS.isDir(FS.lookupPath(path).node.mode)) { - recurseDir(path + '/'); } } } @@ -187,20 +185,20 @@ package_uri = 'default channel'; } - if (package_name in loadedPackages) { + if (loadedPackages.indexOf(package_name) !== -1) { if (package_uri !== loadedPackages[package_name]) { throw new Error( "URI mismatch, attempting to load package " + - package_name + " from " + package_uri + " while it is already " + - "loaded from " + loadedPackages[package_name] + " ! " + package_name + " from " + package_uri + " while it is already " + + "loaded from " + loadedPackages[package_name] + " ! " ); } } else { toLoad[package_name] = package_uri; if (packages.hasOwnProperty(package_name)) { - for (k in packages[package_name]) { + for (k = 0; k < packages[package_name].length; k += 1) { subpackage = packages[package_name][k]; - if (!(subpackage in loadedPackages) && !(subpackage in toLoad)) { + if (loadedPackages.indexOf(subpackage) === -1 && toLoad.indexOf(subpackage) === -1) { queue.push(subpackage); } } @@ -211,13 +209,14 @@ } if (Object.keys(toLoad).length === 0) { - console.log('No new packages to load'); - return; + // No new packages to load + return; } pyodide.monitorRunDependencies = function (n) { if (n === 0) { - for (package_name in toLoad) { + for (k = 0; k < toLoad.length; k += 1) { + package_name = toLoad[k]; loadedPackages[package_name] = toLoad[package_name]; } delete pyodide.monitorRunDependencies; @@ -225,9 +224,8 @@ return preloadWasm() .push(function () { defer.resolve(); - console.log('Loaded ' + packageList); return; - }); + }); } }; @@ -235,7 +233,9 @@ defer.reject(e); } - for (package_name in toLoad) { + packageList = Object.keys(toLoad); + for (k = 0; k < packageList.length; k += 1) { + package_name = packageList[k]; script = document.createElement('script'); package_uri = toLoad[package_name]; if (package_uri === 'default channel') { @@ -270,7 +270,7 @@ function pushNewCell() { if (current_type !== undefined) { cell_list.push(new JSMDCell(current_type[1], - current_text_list)); + current_text_list)); } } @@ -300,6 +300,20 @@ throw new Error('Unsupported cell: ' + cell._type); } + function renderCodeblock(result_text) { + var div = document.createElement('div'), + pre = document.createElement('pre'), + result = document.createElement('code'); + div.classList.add('code-block'); + + if (result_text !== undefined) { + result.innerHTML = result_text; + pre.appendChild(result); + div.appendChild(pre); + document.body.appendChild(div); + } + } + function executeJSCell(line_list) { // console.info('eval', line_list); var text = line_list.join('\n'), @@ -443,10 +457,9 @@ function executeMarkdownCell(line_list) { var renderer = new marked.Renderer(); return new RSVP.Promise(function (resolve, reject) { - marked(line_list.join('\n'), { - renderer: renderer - }, - function (err, content) { + marked(line_list.join('\n'), + {renderer: renderer}, + function (err, content) { if (err) { reject(err); } @@ -462,11 +475,11 @@ function loadPyodide(info, receiveInstance) { var queue = new RSVP.Queue(); queue.push(function () { - return ajax({ - url: "pyodide.asm.wasm", - dataType: "arraybuffer" - }) - }) + return ajax({ + url: "pyodide.asm.wasm", + dataType: "arraybuffer" + }); + }) .push(function (evt) { return WebAssembly.instantiate(evt.target.response, info); }) @@ -479,34 +492,6 @@ return queue; } - function renderCodeblock(result_text) { - var div = document.createElement('div'), - pre = document.createElement('pre'), - result = document.createElement('code'); - div.classList.add('code-block'); - - if (result_text !== undefined) { - result.innerHTML = result_text; - pre.appendChild(result); - div.appendChild(pre); - document.body.appendChild(div); - } - } - - function addPyCellStub() { - var div = document.createElement('div'), - pre = document.createElement('pre'), - result = document.createElement('code'); - div.setAttribute("id", py_div_id_prefix + py_div_id_count); - py_div_id_count += 1; - div.classList.add('code-block'); - - result.innerHTML = "Loading pyodide"; - pre.appendChild(result); - div.appendChild(pre); - document.body.appendChild(div); - } - function executePyCell(line_list) { var result, code_text = line_list.join('\n'); result = window.pyodide.runPython(code_text); @@ -523,9 +508,9 @@ return defer.promise; } - Module.checkABI = function(ABI_number) { - if (ABI_number !== parseInt('1')) { - var ABI_mismatch_exception = `ABI numbers differ. Expected 1, got ${ABI_number}`; + Module.checkABI = function (ABI_number) { + if (ABI_number !== parseInt('1', 10)) { + var ABI_mismatch_exception = 'ABI numbers differ. Expected 1, got ' + ABI_number; console.error(ABI_mismatch_exception); throw ABI_mismatch_exception; } @@ -535,9 +520,9 @@ function initPyodide() { var queue = new RSVP.Queue(); queue.push(function () { - Module.instantiateWasm = loadPyodide; - window.Module = Module; - }) + Module.instantiateWasm = loadPyodide; + window.Module = Module; + }) .push(function () { return loadJSResource('pyodide.asm.data.js'); }) @@ -561,9 +546,6 @@ window.pyodide.loadedPackages = []; window.pyodide._module.packages = json; return; - }) - .push(undefined, function (error) { - console.log(error); }); return queue; } @@ -596,8 +578,8 @@ var queue = new RSVP.Queue(); if (is_pyodide_loaded === false) { queue.push(function () { - return initPyodide(); - }) + return initPyodide(); + }) .push(function () { return pyodideLoadPackage('matplotlib'); }); @@ -607,7 +589,7 @@ queue.push(function () { return executePyCell(cell._line_list); }); - return queue + return queue; } return executeUnknownCellType(cell); } -- 2.30.9 From 79e8085d34a7ef777e0f2c378dfad6ee655b9da6 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Wed, 17 Jul 2019 08:28:03 +0000 Subject: [PATCH 12/16] erp5_notebook: Don't make function inside a loop... --- .../erp5_notebook/gadget_jsmd_eval.js.js | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 9bf0aea49da..3ae0c2ca151 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -124,34 +124,41 @@ // can't be done synchronously within the call to dlopen, we instantiate // every .so that comes our way up front, caching it in the // `preloadedWasm` dictionary. - var queue, FS; + var queue, FS, path; queue = new RSVP.Queue(); FS = pyodide._module.FS; function recurseDir(rootpath) { - var i, entry, dirs, path; + var i, entry, dirs; try { dirs = FS.readdir(rootpath); } catch (e) { return; } + function readModuleFile(path) { + return function () { + return Module.loadWebAssemblyModule( + FS.readFile(path), + {loadAsync: true} + ); + }; + } + function setModule(path) { + return function (module) { + Module.preloadedWasm[path] = module; + }; + } + for (i = 0; i < dirs.length; i += 1) { entry = dirs[i]; if (!entry.startsWith('.')) { - const path = rootpath + entry; + path = rootpath + entry; + if (entry.endsWith('.so')) { if (Module.preloadedWasm[path] === undefined) { - queue.push(function () { - return Module.loadWebAssemblyModule( - FS.readFile(path), { - loadAsync: true - } - ) - }) - .push(function (module) { - Module.preloadedWasm[path] = module; - }); + queue.push(readModuleFile(path)) + .push(setModule(path)); } } else if (FS.isDir(FS.lookupPath(path).node.mode)) { recurseDir(path + '/'); -- 2.30.9 From d45d58329df8f2b83902d01301d0874c3a72ffc9 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Fri, 19 Jul 2019 10:57:03 +0200 Subject: [PATCH 13/16] erp5_notebook: Add must_reinvalidate_htttp_cache --- .../portal_skins/erp5_notebook/cycler.data.xml | 6 +++++- .../portal_skins/erp5_notebook/cycler.js.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_eval.html.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_eval.js.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_viewer.css.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_viewer.html.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_jsmd_viewer.js.xml | 4 ++++ .../portal_skins/erp5_notebook/gadget_notebook.html.xml | 4 ++++ .../erp5_notebook/gadget_officejs_jio_notebook.js.xml | 4 ++++ .../portal_skins/erp5_notebook/kiwisolver.data.xml | 6 +++++- .../portal_skins/erp5_notebook/kiwisolver.js.xml | 4 ++++ .../portal_skins/erp5_notebook/marked.js.xml | 4 ++++ .../portal_skins/erp5_notebook/matplotlib.data.xml | 6 +++++- .../portal_skins/erp5_notebook/matplotlib.js.xml | 4 ++++ .../portal_skins/erp5_notebook/numpy.data.xml | 6 +++++- .../portal_skins/erp5_notebook/numpy.js.xml | 4 ++++ .../portal_skins/erp5_notebook/packages.json.xml | 4 ++++ .../portal_skins/erp5_notebook/pyodide.asm.data.js.xml | 4 ++++ .../portal_skins/erp5_notebook/pyodide.asm.data.xml | 6 ++---- .../portal_skins/erp5_notebook/pyodide.asm.js.xml | 4 ++++ .../portal_skins/erp5_notebook/pyodide.asm.wasm.xml | 4 ++++ .../portal_skins/erp5_notebook/pyodide.js.xml | 4 ++++ .../portal_skins/erp5_notebook/pyparsing.data.xml | 6 +++++- .../portal_skins/erp5_notebook/pyparsing.js.xml | 4 ++++ .../portal_skins/erp5_notebook/python-dateutil.data.xml | 6 +++++- .../portal_skins/erp5_notebook/python-dateutil.js.xml | 4 ++++ .../portal_skins/erp5_notebook/pytz.data.xml | 6 +++++- .../SkinTemplateItem/portal_skins/erp5_notebook/pytz.js.xml | 4 ++++ 29 files changed, 121 insertions(+), 11 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.data.xml index ba3a526cf59..fb6eef164ee 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ cycler.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.js.xml index 46a27fdd701..03192c7c9d4 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/cycler.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ cycler.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml index c8c4ec44032..e16ecfdda49 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.css.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_eval.css diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.xml index b30a9eb6e1b..3dd78f2a9bc 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.html.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_eval.html diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.xml index 35ac36d6879..1ceebe53c23 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_eval.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.css.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.css.xml index 393f137992b..da7bb5fa307 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.css.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.css.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_viewer.css diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.html.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.html.xml index a36ccda15b3..ae809e6eec3 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.html.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.html.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_viewer.html diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.js.xml index 37b65a09bf8..673a440ee0e 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_viewer.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_jsmd_viewer.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_notebook.html.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_notebook.html.xml index 57a958d17fb..6c9cc8dba8a 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_notebook.html.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_notebook.html.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_notebook.html diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_officejs_jio_notebook.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_officejs_jio_notebook.js.xml index 08f0359c7c2..5c933a7aa9f 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_officejs_jio_notebook.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_officejs_jio_notebook.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ gadget_officejs_jio_notebook.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.data.xml index 0a307d045a5..ae4a4f271e7 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ kiwisolver.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.js.xml index 5e357e26b8f..0c7fd53ae70 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/kiwisolver.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ kiwisolver.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/marked.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/marked.js.xml index a2f85b0e54e..7728d1d8df1 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/marked.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/marked.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ marked.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.data.xml index 06ada12764b..5cc10ee3931 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ matplotlib.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.js.xml index fcecb71c032..931bd5c20e1 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/matplotlib.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ matplotlib.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.data.xml index b933ec66887..7ccfb28b221 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ numpy.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.js.xml index af175ac6d3d..d0019cf8768 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/numpy.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ numpy.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/packages.json.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/packages.json.xml index 4c52ee39f35..899a3e0c19b 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/packages.json.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/packages.json.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ packages.json diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.js.xml index 55696515c2d..ab98694320b 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyodide.asm.data.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.xml index 77b57b79454..668514a70b4 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.data.xml @@ -8,9 +8,7 @@ _Cacheable__manager_id - - - + must_revalidate_http_cache __name__ @@ -18,7 +16,7 @@ content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.js.xml index 1d11698995d..8513497d4f9 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyodide.asm.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.wasm.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.wasm.xml index b7186ca4079..beb500bea7a 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.wasm.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.asm.wasm.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyodide.asm.wasm diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.js.xml index 1b286ceddd6..48daff47633 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyodide.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyodide.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.data.xml index 0e2c8f3935f..1e800f9624f 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyparsing.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.js.xml index 709a72070ae..71841cc9a20 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pyparsing.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pyparsing.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.data.xml index 35f38d9aab4..1907c64a10c 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ python-dateutil.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.js.xml index 20fcefbe89b..8fb628ccbfa 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/python-dateutil.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ python-dateutil.js diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.data.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.data.xml index bf003b11da7..ff7142e7a0c 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.data.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.data.xml @@ -6,13 +6,17 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pytz.data content_type - application/octet-stream + application/wasm precondition diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.js.xml b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.js.xml index 6d03ea41711..e3e3533091c 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.js.xml +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/pytz.js.xml @@ -6,6 +6,10 @@ + + _Cacheable__manager_id + must_revalidate_http_cache + __name__ pytz.js -- 2.30.9 From 8c3a3154549aa2a666a7150e50aa7374448346c3 Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 22 Jul 2019 14:04:15 +0000 Subject: [PATCH 14/16] erp5_notebook: Follow the nexedi JS coding style --- .../erp5_notebook/gadget_jsmd_eval.js.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 3ae0c2ca151..494e3a43ee2 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -3,11 +3,11 @@ (function (window) { "use strict"; - function sideEffectDiv(sideEffectClass, reportSideEffect) { + function sideEffectDiv(side_effect_class, report_side_effect) { // appends a side effect div to the side effect area var div = document.createElement("div"); - div.setAttribute("class", sideEffectClass); - if (reportSideEffect === undefined) { + div.setAttribute("class", side_effect_class); + if (report_side_effect === undefined) { div.setAttribute("style", "display:"); } document.body.appendChild(div); @@ -17,19 +17,19 @@ var IODide = function createIODide() { var iodide = { output: { - text: function (content, reportSideEffect) { + text: function (content, report_side_effect) { var i, div, line_list; console.log(content); line_list = content.toString().split("\n"); for (i = 0; i < line_list.length; i += 1) { - div = sideEffectDiv("side-effect-print", reportSideEffect); + div = sideEffectDiv("side-effect-print", report_side_effect); div.textContent = line_list[i]; } }, - element: function (nodeType, reportSideEffect) { + element: function (node_type, report_side_effect) { var div, node; - div = sideEffectDiv("side-effect-element", reportSideEffect); - node = document.createElement(nodeType); + div = sideEffectDiv("side-effect-element", report_side_effect); + node = document.createElement(node_type); div.append(node); return node; } @@ -479,7 +479,7 @@ }); } - function loadPyodide(info, receiveInstance) { + function loadPyodide(info, receive_instance) { var queue = new RSVP.Queue(); queue.push(function () { return ajax({ @@ -491,7 +491,7 @@ return WebAssembly.instantiate(evt.target.response, info); }) .push(function (results) { - return receiveInstance(results.instance); + return receive_instance(results.instance); }) .push(undefined, function (error) { console.log(error); -- 2.30.9 From aa95e1a02e53f9972cfeea44180605bb9fac431e Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 22 Jul 2019 14:21:25 +0000 Subject: [PATCH 15/16] erp5_notebook: Revert changes in gadget_jsmd_eval.js --- .../erp5_notebook/gadget_jsmd_eval.js.js | 344 +----------------- 1 file changed, 9 insertions(+), 335 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 494e3a43ee2..3e8228b9d17 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -1,59 +1,18 @@ -/*global window, console, RSVP, document, URL, eval, XMLHttpRequest, marked, pyodide, WebAssembly, fetch*/ -/*jslint nomen: true, indent: 2, maxerr: 3, regexp: true */ +/*global window, console, RSVP, document, URL, eval, XMLHttpRequest, marked */ +/*jslint nomen: true, indent: 2, maxerr: 3 */ (function (window) { "use strict"; - function sideEffectDiv(side_effect_class, report_side_effect) { - // appends a side effect div to the side effect area - var div = document.createElement("div"); - div.setAttribute("class", side_effect_class); - if (report_side_effect === undefined) { - div.setAttribute("style", "display:"); - } - document.body.appendChild(div); - return div; - } - var IODide = function createIODide() { - var iodide = { - output: { - text: function (content, report_side_effect) { - var i, div, line_list; - console.log(content); - line_list = content.toString().split("\n"); - for (i = 0; i < line_list.length; i += 1) { - div = sideEffectDiv("side-effect-print", report_side_effect); - div.textContent = line_list[i]; - } - }, - element: function (node_type, report_side_effect) { - var div, node; - div = sideEffectDiv("side-effect-element", report_side_effect); - node = document.createElement(node_type); - div.append(node); - return node; - } - } - }; - return iodide; + return; }, JSMDCell = function createJSMDCell(type, line_list) { this._type = type; this._line_list = line_list; }, split_line_regex = /[\r\n|\n|\r]/, - cell_type_regexp = /^\%\% (\w+)\b/, - language_type_regexp = /\{[\S\s]+\}/, - is_pyodide_loaded = false, - Module = {}, - packages, - loadedPackages = [], - // Regexp for validating package name and URI - package_uri_regexp = /^https?:\/\/.*?([a-z0-9_][a-z0-9_\-]*).js$/, - package_name_regexp = /^[a-z0-9_][a-z0-9_\-]*$/; + cell_type_regexp = /^\%\% (\w+)$/; - package_uri_regexp = new RegExp(package_uri_regexp, 'i'); - package_name_regexp = new RegExp(package_name_regexp, 'i'); window.iodide = new IODide(); IODide.prototype.addOutputHandler = function () { @@ -103,165 +62,6 @@ }); } - // Pyodide package loading - function _uri_to_package_name(package_uri) { - // Generate a unique package name from URI - if (package_name_regexp.test(package_uri)) { - return package_uri; - } - - if (package_uri_regexp.test(package_uri)) { - var match = package_uri_regexp.exec(package_uri); - // Get the regexp group corresponding to the package name - return match[1]; - } - - return null; - } - - function preloadWasm() { - // On Chrome, we have to instantiate wasm asynchronously. Since that - // can't be done synchronously within the call to dlopen, we instantiate - // every .so that comes our way up front, caching it in the - // `preloadedWasm` dictionary. - var queue, FS, path; - queue = new RSVP.Queue(); - FS = pyodide._module.FS; - - function recurseDir(rootpath) { - var i, entry, dirs; - try { - dirs = FS.readdir(rootpath); - } catch (e) { - return; - } - - function readModuleFile(path) { - return function () { - return Module.loadWebAssemblyModule( - FS.readFile(path), - {loadAsync: true} - ); - }; - } - function setModule(path) { - return function (module) { - Module.preloadedWasm[path] = module; - }; - } - - for (i = 0; i < dirs.length; i += 1) { - entry = dirs[i]; - if (!entry.startsWith('.')) { - path = rootpath + entry; - - if (entry.endsWith('.so')) { - if (Module.preloadedWasm[path] === undefined) { - queue.push(readModuleFile(path)) - .push(setModule(path)); - } - } else if (FS.isDir(FS.lookupPath(path).node.mode)) { - recurseDir(path + '/'); - } - } - } - } - - recurseDir('/'); - - return queue; - } - - function pyodideLoadPackage(names) { - // DFS to find all dependencies of the requested packages - var queue, toLoad, package_uri, package_name, k, - subpackage, packageList, script, defer; - packages = window.pyodide.packages.dependencies; - queue = new Array(names); - toLoad = []; - defer = RSVP.defer(); - while (queue.length) { - package_uri = queue.pop(); - package_name = _uri_to_package_name(package_uri); - - if (package_name === null) { - throw new Error("Invalid package name or URI " + package_uri); - } - - if (package_name === package_uri) { - package_uri = 'default channel'; - } - - if (loadedPackages.indexOf(package_name) !== -1) { - if (package_uri !== loadedPackages[package_name]) { - throw new Error( - "URI mismatch, attempting to load package " + - package_name + " from " + package_uri + " while it is already " + - "loaded from " + loadedPackages[package_name] + " ! " - ); - } - } else { - toLoad[package_name] = package_uri; - if (packages.hasOwnProperty(package_name)) { - for (k = 0; k < packages[package_name].length; k += 1) { - subpackage = packages[package_name][k]; - if (loadedPackages.indexOf(subpackage) === -1 && toLoad.indexOf(subpackage) === -1) { - queue.push(subpackage); - } - } - } else { - throw new Error("Unknown package " + package_name); - } - } - } - - if (Object.keys(toLoad).length === 0) { - // No new packages to load - return; - } - - pyodide.monitorRunDependencies = function (n) { - if (n === 0) { - for (k = 0; k < toLoad.length; k += 1) { - package_name = toLoad[k]; - loadedPackages[package_name] = toLoad[package_name]; - } - delete pyodide.monitorRunDependencies; - packageList = Array.from(Object.keys(toLoad)).join(', '); - return preloadWasm() - .push(function () { - defer.resolve(); - return; - }); - } - }; - - function script_reject(e) { - defer.reject(e); - } - - packageList = Object.keys(toLoad); - for (k = 0; k < packageList.length; k += 1) { - package_name = packageList[k]; - script = document.createElement('script'); - package_uri = toLoad[package_name]; - if (package_uri === 'default channel') { - script.src = package_name + ".js"; - } else { - script.src = package_uri; - } - script.onerror = script_reject; - document.body.appendChild(script); - } - - // We have to invalidate Python's import caches, or it won't - // see the new files. This is done here so it happens in parallel - // with the fetching over the network. - window.pyodide.runPython('import importlib as _importlib\n' + - '_importlib.invalidate_caches()\n'); - return defer.promise; - } - function parseJSMDCellList(jsmd) { // Split the text into a list of Iodide cells var line_list = jsmd.split(split_line_regex), @@ -269,7 +69,6 @@ len = line_list.length, current_line, current_type, - language_type, current_text_list, next_type, cell_list = []; @@ -286,11 +85,6 @@ next_type = current_line.match(cell_type_regexp); if (next_type) { // New type detexted - if (next_type[1] === 'code') { - // language detected - language_type = JSON.parse(current_line.match(language_type_regexp)).language; - next_type[1] = next_type[1] + '_' + language_type; - } pushNewCell(); current_type = next_type; current_text_list = []; @@ -307,32 +101,14 @@ throw new Error('Unsupported cell: ' + cell._type); } - function renderCodeblock(result_text) { - var div = document.createElement('div'), - pre = document.createElement('pre'), - result = document.createElement('code'); - div.classList.add('code-block'); - - if (result_text !== undefined) { - result.innerHTML = result_text; - pre.appendChild(result); - div.appendChild(pre); - document.body.appendChild(div); - } - } - function executeJSCell(line_list) { // console.info('eval', line_list); var text = line_list.join('\n'), pre, br, - code, - result; - + code; try { - result = eval.call(window, text); - renderCodeblock(result); - return result; + return eval.call(window, text); } catch (e) { console.error(e); pre = document.createElement('pre'); @@ -411,9 +187,7 @@ console.log(line_split); return new RSVP.Queue() .push(function () { - return ajax({ - url: url - }); + return ajax({url: url}); }) .push(function (evt) { window[variable] = evt.target.responseText; @@ -479,90 +253,12 @@ }); } - function loadPyodide(info, receive_instance) { - var queue = new RSVP.Queue(); - queue.push(function () { - return ajax({ - url: "pyodide.asm.wasm", - dataType: "arraybuffer" - }); - }) - .push(function (evt) { - return WebAssembly.instantiate(evt.target.response, info); - }) - .push(function (results) { - return receive_instance(results.instance); - }) - .push(undefined, function (error) { - console.log(error); - }); - return queue; - } - - function executePyCell(line_list) { - var result, code_text = line_list.join('\n'); - result = window.pyodide.runPython(code_text); - renderCodeblock(result); - } - - function pyodideSetting() { - window.pyodide = pyodide(Module); - window.pyodide.loadPackage = pyodideLoadPackage; - - var defer = RSVP.defer(); - Module.postRun = defer.resolve; - - return defer.promise; - } - - Module.checkABI = function (ABI_number) { - if (ABI_number !== parseInt('1', 10)) { - var ABI_mismatch_exception = 'ABI numbers differ. Expected 1, got ' + ABI_number; - console.error(ABI_mismatch_exception); - throw ABI_mismatch_exception; - } - return true; - }; - - function initPyodide() { - var queue = new RSVP.Queue(); - queue.push(function () { - Module.instantiateWasm = loadPyodide; - window.Module = Module; - }) - .push(function () { - return loadJSResource('pyodide.asm.data.js'); - }) - .push(function () { - return loadJSResource('pyodide.asm.js'); - }) - .push(function () { - return pyodideSetting(); - }) - .push(function () { - delete window.Module; - return ajax({ - url: 'packages.json' - }); - }) - .push(function (evt) { - return JSON.parse(evt.target.response); - }) - .push(function (json) { - window.pyodide._module = Module; - window.pyodide.loadedPackages = []; - window.pyodide._module.packages = json; - return; - }); - return queue; - } - function executeCell(cell) { - if (['raw', 'meta', 'plugin'].indexOf(cell._type) !== -1) { + if (cell._type === 'raw') { // Do nothing... return; } - if (cell._type === 'js' || cell._type === 'code_js') { + if (cell._type === 'js') { return executeJSCell(cell._line_list); } if (cell._type === 'resource') { @@ -577,27 +273,6 @@ if (cell._type === 'css') { return executeCssCell(cell._line_list); } - if (cell._type === 'code_py') { - if (cell._line_list.length === 0) { - // empty block, do nothing. - return; - } - var queue = new RSVP.Queue(); - if (is_pyodide_loaded === false) { - queue.push(function () { - return initPyodide(); - }) - .push(function () { - return pyodideLoadPackage('matplotlib'); - }); - is_pyodide_loaded = true; - } - - queue.push(function () { - return executePyCell(cell._line_list); - }); - return queue; - } return executeUnknownCellType(cell); } @@ -619,7 +294,6 @@ for (i = 0; i < len; i += 1) { queue.push(deferCellExecution(cell_list[i])); } - return queue .push(function () { console.info('JSMD executed.'); -- 2.30.9 From cf0731f90e6f8f17e3e97aa510bebc96c07b8e4e Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Mon, 22 Jul 2019 16:50:07 +0000 Subject: [PATCH 16/16] erp5_notebook: Process Python code block We follow the standard jsmd format. --- .../erp5_notebook/gadget_jsmd_eval.js.js | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js index 3e8228b9d17..189102950d7 100644 --- a/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js +++ b/bt5/erp5_notebook/SkinTemplateItem/portal_skins/erp5_notebook/gadget_jsmd_eval.js.js @@ -6,12 +6,13 @@ var IODide = function createIODide() { return; }, - JSMDCell = function createJSMDCell(type, line_list) { + JSMDCell = function createJSMDCell(type, line_list, option) { this._type = type; this._line_list = line_list; + this._option = option; }, split_line_regex = /[\r\n|\n|\r]/, - cell_type_regexp = /^\%\% (\w+)$/; + cell_type_regexp = /^\%\% (\w+)/; window.iodide = new IODide(); @@ -67,16 +68,24 @@ var line_list = jsmd.split(split_line_regex), i, len = line_list.length, + code_type, current_line, current_type, + current_header, current_text_list, + option, next_type, cell_list = []; function pushNewCell() { if (current_type !== undefined) { + option = current_header.slice(current_type[0].length); + if (option !== '') { + option = JSON.parse(option); + } + cell_list.push(new JSMDCell(current_type[1], - current_text_list)); + current_text_list, option)); } } @@ -84,9 +93,10 @@ current_line = line_list[i]; next_type = current_line.match(cell_type_regexp); if (next_type) { - // New type detexted + // New type detected pushNewCell(); current_type = next_type; + current_header = current_line; current_text_list = []; } else if (current_text_list !== undefined) { current_text_list.push(current_line); @@ -253,8 +263,17 @@ }); } + function executeCodeCell(line_list, language) { + if (language === 'py') { + console.log(line_list); + console.log("We are processing Python code!!!"); + } else { + throw new Error('Unsupported code language: ' + language); + } + } + function executeCell(cell) { - if (cell._type === 'raw') { + if (cell._type === 'raw' || cell._type === 'meta' || cell._type === 'plugin') { // Do nothing... return; } @@ -273,6 +292,9 @@ if (cell._type === 'css') { return executeCssCell(cell._line_list); } + if (cell._type === 'code') { + return executeCodeCell(cell._line_list, cell._option.language); + } return executeUnknownCellType(cell); } -- 2.30.9