8009 lines
504 KiB
HTML
8009 lines
504 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en">
|
||
<head><meta charset="utf-8"/>
|
||
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
||
<title>tutorial</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script><script>
|
||
(function() {
|
||
function addWidgetsRenderer() {
|
||
var mimeElement = document.querySelector('script[type="application/vnd.jupyter.widget-view+json"]');
|
||
var scriptElement = document.createElement('script');
|
||
|
||
var widgetRendererSrc = 'https://unpkg.com/@jupyter-widgets/html-manager@*/dist/embed-amd.js';
|
||
|
||
var widgetState;
|
||
|
||
// Fallback for older version:
|
||
try {
|
||
widgetState = mimeElement && JSON.parse(mimeElement.innerHTML);
|
||
|
||
if (widgetState && (widgetState.version_major < 2 || !widgetState.version_major)) {
|
||
|
||
var widgetRendererSrc = 'https://unpkg.com/@jupyter-js-widgets@*/dist/embed.js';
|
||
|
||
}
|
||
} catch(e) {}
|
||
|
||
scriptElement.src = widgetRendererSrc;
|
||
document.body.appendChild(scriptElement);
|
||
}
|
||
|
||
document.addEventListener('DOMContentLoaded', addWidgetsRenderer);
|
||
}());
|
||
</script>
|
||
<style type="text/css">
|
||
pre { line-height: 125%; }
|
||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||
.highlight .hll { background-color: var(--jp-cell-editor-active-background) }
|
||
.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
|
||
.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
|
||
.highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
|
||
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
|
||
.highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
|
||
.highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
|
||
.highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
|
||
.highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
|
||
.highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
|
||
.highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
|
||
.highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
|
||
.highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
|
||
.highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
|
||
.highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
|
||
.highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
|
||
.highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
|
||
.highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
|
||
.highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
|
||
.highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
|
||
.highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
|
||
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
|
||
.highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */
|
||
.highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
|
||
.highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
|
||
.highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
|
||
.highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
|
||
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
|
||
.highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
|
||
.highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
|
||
.highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
|
||
.highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
|
||
.highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
|
||
.highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
|
||
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
|
||
.highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
|
||
.highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
|
||
.highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
|
||
.highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
|
||
.highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
|
||
.highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
|
||
.highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
|
||
.highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
|
||
</style>
|
||
<style type="text/css">
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*
|
||
* Mozilla scrollbar styling
|
||
*/
|
||
|
||
/* use standard opaque scrollbars for most nodes */
|
||
[data-jp-theme-scrollbars='true'] {
|
||
scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
|
||
var(--jp-scrollbar-background-color);
|
||
}
|
||
|
||
/* for code nodes, use a transparent style of scrollbar. These selectors
|
||
* will match lower in the tree, and so will override the above */
|
||
[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,
|
||
[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {
|
||
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
|
||
}
|
||
|
||
/* tiny scrollbar */
|
||
|
||
.jp-scrollbar-tiny {
|
||
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
|
||
scrollbar-width: thin;
|
||
}
|
||
|
||
/* tiny scrollbar */
|
||
|
||
.jp-scrollbar-tiny::-webkit-scrollbar,
|
||
.jp-scrollbar-tiny::-webkit-scrollbar-corner {
|
||
background-color: transparent;
|
||
height: 4px;
|
||
width: 4px;
|
||
}
|
||
|
||
.jp-scrollbar-tiny::-webkit-scrollbar-thumb {
|
||
background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
|
||
}
|
||
|
||
.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
|
||
border-left: 0 solid transparent;
|
||
border-right: 0 solid transparent;
|
||
}
|
||
|
||
.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
|
||
border-top: 0 solid transparent;
|
||
border-bottom: 0 solid transparent;
|
||
}
|
||
|
||
/*
|
||
* Lumino
|
||
*/
|
||
|
||
.lm-ScrollBar[data-orientation='horizontal'] {
|
||
min-height: 16px;
|
||
max-height: 16px;
|
||
min-width: 45px;
|
||
border-top: 1px solid #a0a0a0;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='vertical'] {
|
||
min-width: 16px;
|
||
max-width: 16px;
|
||
min-height: 45px;
|
||
border-left: 1px solid #a0a0a0;
|
||
}
|
||
|
||
.lm-ScrollBar-button {
|
||
background-color: #f0f0f0;
|
||
background-position: center center;
|
||
min-height: 15px;
|
||
max-height: 15px;
|
||
min-width: 15px;
|
||
max-width: 15px;
|
||
}
|
||
|
||
.lm-ScrollBar-button:hover {
|
||
background-color: #dadada;
|
||
}
|
||
|
||
.lm-ScrollBar-button.lm-mod-active {
|
||
background-color: #cdcdcd;
|
||
}
|
||
|
||
.lm-ScrollBar-track {
|
||
background: #f0f0f0;
|
||
}
|
||
|
||
.lm-ScrollBar-thumb {
|
||
background: #cdcdcd;
|
||
}
|
||
|
||
.lm-ScrollBar-thumb:hover {
|
||
background: #bababa;
|
||
}
|
||
|
||
.lm-ScrollBar-thumb.lm-mod-active {
|
||
background: #a0a0a0;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {
|
||
height: 100%;
|
||
min-width: 15px;
|
||
border-left: 1px solid #a0a0a0;
|
||
border-right: 1px solid #a0a0a0;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {
|
||
width: 100%;
|
||
min-height: 15px;
|
||
border-top: 1px solid #a0a0a0;
|
||
border-bottom: 1px solid #a0a0a0;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='horizontal']
|
||
.lm-ScrollBar-button[data-action='decrement'] {
|
||
background-image: var(--jp-icon-caret-left);
|
||
background-size: 17px;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='horizontal']
|
||
.lm-ScrollBar-button[data-action='increment'] {
|
||
background-image: var(--jp-icon-caret-right);
|
||
background-size: 17px;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='vertical']
|
||
.lm-ScrollBar-button[data-action='decrement'] {
|
||
background-image: var(--jp-icon-caret-up);
|
||
background-size: 17px;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='vertical']
|
||
.lm-ScrollBar-button[data-action='increment'] {
|
||
background-image: var(--jp-icon-caret-down);
|
||
background-size: 17px;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-Widget {
|
||
box-sizing: border-box;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.lm-Widget.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.lm-AccordionPanel[data-orientation='horizontal'] > .lm-AccordionPanel-title {
|
||
/* Title is rotated for horizontal accordion panel using CSS */
|
||
display: block;
|
||
transform-origin: top left;
|
||
transform: rotate(-90deg) translate(-100%);
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-CommandPalette {
|
||
display: flex;
|
||
flex-direction: column;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.lm-CommandPalette-search {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-CommandPalette-content {
|
||
flex: 1 1 auto;
|
||
margin: 0;
|
||
padding: 0;
|
||
min-height: 0;
|
||
overflow: auto;
|
||
list-style-type: none;
|
||
}
|
||
|
||
.lm-CommandPalette-header {
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.lm-CommandPalette-item {
|
||
display: flex;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.lm-CommandPalette-itemIcon {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-CommandPalette-itemContent {
|
||
flex: 1 1 auto;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.lm-CommandPalette-itemShortcut {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-CommandPalette-itemLabel {
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.lm-close-icon {
|
||
border: 1px solid transparent;
|
||
background-color: transparent;
|
||
position: absolute;
|
||
z-index: 1;
|
||
right: 3%;
|
||
top: 0;
|
||
bottom: 0;
|
||
margin: auto;
|
||
padding: 7px 0;
|
||
display: none;
|
||
vertical-align: middle;
|
||
outline: 0;
|
||
cursor: pointer;
|
||
}
|
||
.lm-close-icon:after {
|
||
content: 'X';
|
||
display: block;
|
||
width: 15px;
|
||
height: 15px;
|
||
text-align: center;
|
||
color: #000;
|
||
font-weight: normal;
|
||
font-size: 12px;
|
||
cursor: pointer;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-DockPanel {
|
||
z-index: 0;
|
||
}
|
||
|
||
.lm-DockPanel-widget {
|
||
z-index: 0;
|
||
}
|
||
|
||
.lm-DockPanel-tabBar {
|
||
z-index: 1;
|
||
}
|
||
|
||
.lm-DockPanel-handle {
|
||
z-index: 2;
|
||
}
|
||
|
||
.lm-DockPanel-handle.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
.lm-DockPanel-handle:after {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
content: '';
|
||
}
|
||
|
||
.lm-DockPanel-handle[data-orientation='horizontal'] {
|
||
cursor: ew-resize;
|
||
}
|
||
|
||
.lm-DockPanel-handle[data-orientation='vertical'] {
|
||
cursor: ns-resize;
|
||
}
|
||
|
||
.lm-DockPanel-handle[data-orientation='horizontal']:after {
|
||
left: 50%;
|
||
min-width: 8px;
|
||
transform: translateX(-50%);
|
||
}
|
||
|
||
.lm-DockPanel-handle[data-orientation='vertical']:after {
|
||
top: 50%;
|
||
min-height: 8px;
|
||
transform: translateY(-50%);
|
||
}
|
||
|
||
.lm-DockPanel-overlay {
|
||
z-index: 3;
|
||
box-sizing: border-box;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.lm-DockPanel-overlay.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-Menu {
|
||
z-index: 10000;
|
||
position: absolute;
|
||
white-space: nowrap;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
outline: none;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.lm-Menu-content {
|
||
margin: 0;
|
||
padding: 0;
|
||
display: table;
|
||
list-style-type: none;
|
||
}
|
||
|
||
.lm-Menu-item {
|
||
display: table-row;
|
||
}
|
||
|
||
.lm-Menu-item.lm-mod-hidden,
|
||
.lm-Menu-item.lm-mod-collapsed {
|
||
display: none !important;
|
||
}
|
||
|
||
.lm-Menu-itemIcon,
|
||
.lm-Menu-itemSubmenuIcon {
|
||
display: table-cell;
|
||
text-align: center;
|
||
}
|
||
|
||
.lm-Menu-itemLabel {
|
||
display: table-cell;
|
||
text-align: left;
|
||
}
|
||
|
||
.lm-Menu-itemShortcut {
|
||
display: table-cell;
|
||
text-align: right;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-MenuBar {
|
||
outline: none;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.lm-MenuBar-content {
|
||
margin: 0;
|
||
padding: 0;
|
||
display: flex;
|
||
flex-direction: row;
|
||
list-style-type: none;
|
||
}
|
||
|
||
.lm-MenuBar-item {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.lm-MenuBar-itemIcon,
|
||
.lm-MenuBar-itemLabel {
|
||
display: inline-block;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-ScrollBar {
|
||
display: flex;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='horizontal'] {
|
||
flex-direction: row;
|
||
}
|
||
|
||
.lm-ScrollBar[data-orientation='vertical'] {
|
||
flex-direction: column;
|
||
}
|
||
|
||
.lm-ScrollBar-button {
|
||
box-sizing: border-box;
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-ScrollBar-track {
|
||
box-sizing: border-box;
|
||
position: relative;
|
||
overflow: hidden;
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
.lm-ScrollBar-thumb {
|
||
box-sizing: border-box;
|
||
position: absolute;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-SplitPanel-child {
|
||
z-index: 0;
|
||
}
|
||
|
||
.lm-SplitPanel-handle {
|
||
z-index: 1;
|
||
}
|
||
|
||
.lm-SplitPanel-handle.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
.lm-SplitPanel-handle:after {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
content: '';
|
||
}
|
||
|
||
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle {
|
||
cursor: ew-resize;
|
||
}
|
||
|
||
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle {
|
||
cursor: ns-resize;
|
||
}
|
||
|
||
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle:after {
|
||
left: 50%;
|
||
min-width: 8px;
|
||
transform: translateX(-50%);
|
||
}
|
||
|
||
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle:after {
|
||
top: 50%;
|
||
min-height: 8px;
|
||
transform: translateY(-50%);
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-TabBar {
|
||
display: flex;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.lm-TabBar[data-orientation='horizontal'] {
|
||
flex-direction: row;
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.lm-TabBar[data-orientation='vertical'] {
|
||
flex-direction: column;
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.lm-TabBar-content {
|
||
margin: 0;
|
||
padding: 0;
|
||
display: flex;
|
||
flex: 1 1 auto;
|
||
list-style-type: none;
|
||
}
|
||
|
||
.lm-TabBar[data-orientation='horizontal'] > .lm-TabBar-content {
|
||
flex-direction: row;
|
||
}
|
||
|
||
.lm-TabBar[data-orientation='vertical'] > .lm-TabBar-content {
|
||
flex-direction: column;
|
||
}
|
||
|
||
.lm-TabBar-tab {
|
||
display: flex;
|
||
flex-direction: row;
|
||
box-sizing: border-box;
|
||
overflow: hidden;
|
||
touch-action: none; /* Disable native Drag/Drop */
|
||
}
|
||
|
||
.lm-TabBar-tabIcon,
|
||
.lm-TabBar-tabCloseIcon {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-TabBar-tabLabel {
|
||
flex: 1 1 auto;
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.lm-TabBar-tabInput {
|
||
user-select: all;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.lm-TabBar-tab.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
.lm-TabBar-addButton.lm-mod-hidden {
|
||
display: none !important;
|
||
}
|
||
|
||
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
|
||
position: relative;
|
||
}
|
||
|
||
.lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab {
|
||
left: 0;
|
||
transition: left 150ms ease;
|
||
}
|
||
|
||
.lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab {
|
||
top: 0;
|
||
transition: top 150ms ease;
|
||
}
|
||
|
||
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
|
||
transition: none;
|
||
}
|
||
|
||
.lm-TabBar-tabLabel .lm-TabBar-tabInput {
|
||
user-select: all;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
background: inherit;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-TabPanel-tabBar {
|
||
z-index: 1;
|
||
}
|
||
|
||
.lm-TabPanel-stackedPanel {
|
||
z-index: 0;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Collapse {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.jp-Collapse-header {
|
||
padding: 1px 12px;
|
||
background-color: var(--jp-layout-color1);
|
||
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
|
||
color: var(--jp-ui-font-color1);
|
||
cursor: pointer;
|
||
display: flex;
|
||
align-items: center;
|
||
font-size: var(--jp-ui-font-size0);
|
||
font-weight: 600;
|
||
text-transform: uppercase;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-Collapser-icon {
|
||
height: 16px;
|
||
}
|
||
|
||
.jp-Collapse-header-collapsed .jp-Collapser-icon {
|
||
transform: rotate(-90deg);
|
||
margin: auto 0;
|
||
}
|
||
|
||
.jp-Collapser-title {
|
||
line-height: 25px;
|
||
}
|
||
|
||
.jp-Collapse-contents {
|
||
padding: 0 12px;
|
||
background-color: var(--jp-layout-color1);
|
||
color: var(--jp-ui-font-color1);
|
||
overflow: auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */
|
||
|
||
/**
|
||
* (DEPRECATED) Support for consuming icons as CSS background images
|
||
*/
|
||
|
||
/* Icons urls */
|
||
|
||
:root {
|
||
--jp-icon-add-above: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5MikiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik00Ljc1IDQuOTMwNjZINi42MjVWNi44MDU2NkM2LjYyNSA3LjAxMTkxIDYuNzkzNzUgNy4xODA2NiA3IDcuMTgwNjZDNy4yMDYyNSA3LjE4MDY2IDcuMzc1IDcuMDExOTEgNy4zNzUgNi44MDU2NlY0LjkzMDY2SDkuMjVDOS40NTYyNSA0LjkzMDY2IDkuNjI1IDQuNzYxOTEgOS42MjUgNC41NTU2NkM5LjYyNSA0LjM0OTQxIDkuNDU2MjUgNC4xODA2NiA5LjI1IDQuMTgwNjZINy4zNzVWMi4zMDU2NkM3LjM3NSAyLjA5OTQxIDcuMjA2MjUgMS45MzA2NiA3IDEuOTMwNjZDNi43OTM3NSAxLjkzMDY2IDYuNjI1IDIuMDk5NDEgNi42MjUgMi4zMDU2NlY0LjE4MDY2SDQuNzVDNC41NDM3NSA0LjE4MDY2IDQuMzc1IDQuMzQ5NDEgNC4zNzUgNC41NTU2NkM0LjM3NSA0Ljc2MTkxIDQuNTQzNzUgNC45MzA2NiA0Ljc1IDQuOTMwNjZaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC43Ii8+CjwvZz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjUgOS41VjExLjVMMi41IDExLjVWOS41TDExLjUgOS41Wk0xMiA4QzEyLjU1MjMgOCAxMyA4LjQ0NzcyIDEzIDlWMTJDMTMgMTIuNTUyMyAxMi41NTIzIDEzIDEyIDEzTDIgMTNDMS40NDc3MiAxMyAxIDEyLjU1MjMgMSAxMlY5QzEgOC40NDc3MiAxLjQ0NzcxIDggMiA4TDEyIDhaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5MiI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgMCAxIDEwIDEuNTU1NjYpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==);
|
||
--jp-icon-add-below: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5OCkiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik05LjI1IDEwLjA2OTNMNy4zNzUgMTAuMDY5M0w3LjM3NSA4LjE5NDM0QzcuMzc1IDcuOTg4MDkgNy4yMDYyNSA3LjgxOTM0IDcgNy44MTkzNEM2Ljc5Mzc1IDcuODE5MzQgNi42MjUgNy45ODgwOSA2LjYyNSA4LjE5NDM0TDYuNjI1IDEwLjA2OTNMNC43NSAxMC4wNjkzQzQuNTQzNzUgMTAuMDY5MyA0LjM3NSAxMC4yMzgxIDQuMzc1IDEwLjQ0NDNDNC4zNzUgMTAuNjUwNiA0LjU0Mzc1IDEwLjgxOTMgNC43NSAxMC44MTkzTDYuNjI1IDEwLjgxOTNMNi42MjUgMTIuNjk0M0M2LjYyNSAxMi45MDA2IDYuNzkzNzUgMTMuMDY5MyA3IDEzLjA2OTNDNy4yMDYyNSAxMy4wNjkzIDcuMzc1IDEyLjkwMDYgNy4zNzUgMTIuNjk0M0w3LjM3NSAxMC44MTkzTDkuMjUgMTAuODE5M0M5LjQ1NjI1IDEwLjgxOTMgOS42MjUgMTAuNjUwNiA5LjYyNSAxMC40NDQzQzkuNjI1IDEwLjIzODEgOS40NTYyNSAxMC4wNjkzIDkuMjUgMTAuMDY5M1oiIGZpbGw9IiM2MTYxNjEiIHN0cm9rZT0iIzYxNjE2MSIgc3Ryb2tlLXdpZHRoPSIwLjciLz4KPC9nPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDUuNUwyLjUgMy41TDExLjUgMy41TDExLjUgNS41TDIuNSA1LjVaTTIgN0MxLjQ0NzcyIDcgMSA2LjU1MjI4IDEgNkwxIDNDMSAyLjQ0NzcyIDEuNDQ3NzIgMiAyIDJMMTIgMkMxMi41NTIzIDIgMTMgMi40NDc3MiAxMyAzTDEzIDZDMTMgNi41NTIyOSAxMi41NTIzIDcgMTIgN0wyIDdaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5OCI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMS43NDg0NmUtMDcgMS43NDg0NmUtMDcgLTEgNCAxMy40NDQzKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=);
|
||
--jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-bell: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiPgogICA8cGF0aCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzMzMzMzIgogICAgICBkPSJtOCAwLjI5Yy0xLjQgMC0yLjcgMC43My0zLjYgMS44LTEuMiAxLjUtMS40IDMuNC0xLjUgNS4yLTAuMTggMi4yLTAuNDQgNC0yLjMgNS4zbDAuMjggMS4zaDVjMC4wMjYgMC42NiAwLjMyIDEuMSAwLjcxIDEuNSAwLjg0IDAuNjEgMiAwLjYxIDIuOCAwIDAuNTItMC40IDAuNi0xIDAuNzEtMS41aDVsMC4yOC0xLjNjLTEuOS0wLjk3LTIuMi0zLjMtMi4zLTUuMy0wLjEzLTEuOC0wLjI2LTMuNy0xLjUtNS4yLTAuODUtMS0yLjItMS44LTMuNi0xLjh6bTAgMS40YzAuODggMCAxLjkgMC41NSAyLjUgMS4zIDAuODggMS4xIDEuMSAyLjcgMS4yIDQuNCAwLjEzIDEuNyAwLjIzIDMuNiAxLjMgNS4yaC0xMGMxLjEtMS42IDEuMi0zLjQgMS4zLTUuMiAwLjEzLTEuNyAwLjMtMy4zIDEuMi00LjQgMC41OS0wLjcyIDEuNi0xLjMgMi41LTEuM3ptLTAuNzQgMTJoMS41Yy0wLjAwMTUgMC4yOCAwLjAxNSAwLjc5LTAuNzQgMC43OS0wLjczIDAuMDAxNi0wLjcyLTAuNTMtMC43NC0wLjc5eiIgLz4KPC9zdmc+Cg==);
|
||
--jp-icon-bug-dot: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuMTkgOEgyMFYxMEgxNy45MUMxNy45NiAxMC4zMyAxOCAxMC42NiAxOCAxMVYxMkgyMFYxNEgxOC41SDE4VjE0LjAyNzVDMTUuNzUgMTQuMjc2MiAxNCAxNi4xODM3IDE0IDE4LjVDMTQgMTkuMjA4IDE0LjE2MzUgMTkuODc3OSAxNC40NTQ5IDIwLjQ3MzlDMTMuNzA2MyAyMC44MTE3IDEyLjg3NTcgMjEgMTIgMjFDOS43OCAyMSA3Ljg1IDE5Ljc5IDYuODEgMThINFYxNkg2LjA5QzYuMDQgMTUuNjcgNiAxNS4zNCA2IDE1VjE0SDRWMTJINlYxMUM2IDEwLjY2IDYuMDQgMTAuMzMgNi4wOSAxMEg0VjhINi44MUM3LjI2IDcuMjIgNy44OCA2LjU1IDguNjIgNi4wNEw3IDQuNDFMOC40MSAzTDEwLjU5IDUuMTdDMTEuMDQgNS4wNiAxMS41MSA1IDEyIDVDMTIuNDkgNSAxMi45NiA1LjA2IDEzLjQyIDUuMTdMMTUuNTkgM0wxNyA0LjQxTDE1LjM3IDYuMDRDMTYuMTIgNi41NSAxNi43NCA3LjIyIDE3LjE5IDhaTTEwIDE2SDE0VjE0SDEwVjE2Wk0xMCAxMkgxNFYxMEgxMFYxMloiIGZpbGw9IiM2MTYxNjEiLz4KICAgICAgICA8cGF0aCBkPSJNMjIgMTguNUMyMiAyMC40MzMgMjAuNDMzIDIyIDE4LjUgMjJDMTYuNTY3IDIyIDE1IDIwLjQzMyAxNSAxOC41QzE1IDE2LjU2NyAxNi41NjcgMTUgMTguNSAxNUMyMC40MzMgMTUgMjIgMTYuNTY3IDIyIDE4LjVaIiBmaWxsPSIjNjE2MTYxIi8+CiAgICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-code-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICA8cGF0aCBkPSJNNi41OSwzLjQxTDIsOEw2LjU5LDEyLjZMOCwxMS4xOEw0LjgyLDhMOCw0LjgyTDYuNTksMy40MU0xMi40MSwzLjQxTDExLDQuODJMMTQuMTgsOEwxMSwxMS4xOEwxMi40MSwxMi42TDE3LDhMMTIuNDEsMy40MU0yMS41OSwxMS41OUwxMy41LDE5LjY4TDkuODMsMTZMOC40MiwxNy40MUwxMy41LDIyLjVMMjMsMTNMMjEuNTksMTEuNTlaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-collapse-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNNiAxM3YyaDh2LTJ6IiAvPgogICAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1jb25zb2xlLWljb24tYmFja2dyb3VuZC1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtY29uc29sZS1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik0xMDUgMTI3LjNoNDB2MTIuOGgtNDB6TTUxLjEgNzdMNzQgOTkuOWwtMjMuMyAyMy4zIDEwLjUgMTAuNSAyMy4zLTIzLjNMOTUgOTkuOSA4NC41IDg5LjQgNjEuNiA2Ni41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-copy: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTExLjksMUgzLjJDMi40LDEsMS43LDEuNywxLjcsMi41djEwLjJoMS41VjIuNWg4LjdWMXogTTE0LjEsMy45aC04Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MTAuMmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoOCBjMC44LDAsMS41LTAuNywxLjUtMS41VjUuNEMxNS41LDQuNiwxNC45LDMuOSwxNC4xLDMuOXogTTE0LjEsMTUuNWgtOFY1LjRoOFYxNS41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-copyright: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+CiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0xMS44OCw5LjE0YzEuMjgsMC4wNiwxLjYxLDEuMTUsMS42MywxLjY2aDEuNzljLTAuMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQsNy42MSw4LDksOCwxMi4xNCBjMCwxLjk0LDAuOTMsNC4yNCwzLjg0LDQuMjRjMi4yMiwwLDMuNDEtMS42NSwzLjQ0LTIuOTVoLTEuNzljLTAuMDMsMC41OS0wLjQ1LDEuMzgtMS42MywxLjQ0QzEwLjU1LDE0LjgzLDEwLDEzLjgxLDEwLDEyLjE0IEMxMCw5LjI1LDExLjI4LDkuMTYsMTEuODgsOS4xNHogTTEyLDJDNi40OCwyLDIsNi40OCwyLDEyczQuNDgsMTAsMTAsMTBzMTAtNC40OCwxMC0xMFMxNy41MiwyLDEyLDJ6IE0xMiwyMGMtNC40MSwwLTgtMy41OS04LTggczMuNTktOCw4LThzOCwzLjU5LDgsOFMxNi40MSwyMCwxMiwyMHoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-cut: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-delete: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjI2MjYyIiBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIgLz4KPC9zdmc+Cg==);
|
||
--jp-icon-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-duplicate: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNzk5OTggMC44NzVIOC44OTU4MkM5LjIwMDYxIDAuODc1IDkuNDQ5OTggMS4xMzkxNCA5LjQ0OTk4IDEuNDYxOThDOS40NDk5OCAxLjc4NDgyIDkuMjAwNjEgMi4wNDg5NiA4Ljg5NTgyIDIuMDQ4OTZIMy4zNTQxNUMzLjA0OTM2IDIuMDQ4OTYgMi43OTk5OCAyLjMxMzEgMi43OTk5OCAyLjYzNTk0VjkuNjc5NjlDMi43OTk5OCAxMC4wMDI1IDIuNTUwNjEgMTAuMjY2NyAyLjI0NTgyIDEwLjI2NjdDMS45NDEwMyAxMC4yNjY3IDEuNjkxNjUgMTAuMDAyNSAxLjY5MTY1IDkuNjc5NjlWMi4wNDg5NkMxLjY5MTY1IDEuNDAzMjggMi4xOTA0IDAuODc1IDIuNzk5OTggMC44NzVaTTUuMzY2NjUgMTEuOVY0LjU1SDExLjA4MzNWMTEuOUg1LjM2NjY1Wk00LjE0MTY1IDQuMTQxNjdDNC4xNDE2NSAzLjY5MDYzIDQuNTA3MjggMy4zMjUgNC45NTgzMiAzLjMyNUgxMS40OTE3QzExLjk0MjcgMy4zMjUgMTIuMzA4MyAzLjY5MDYzIDEyLjMwODMgNC4xNDE2N1YxMi4zMDgzQzEyLjMwODMgMTIuNzU5NCAxMS45NDI3IDEzLjEyNSAxMS40OTE3IDEzLjEyNUg0Ljk1ODMyQzQuNTA3MjggMTMuMTI1IDQuMTQxNjUgMTIuNzU5NCA0LjE0MTY1IDEyLjMwODNWNC4xNDE2N1oiIGZpbGw9IiM2MTYxNjEiLz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNOS40MzU3NCA4LjI2NTA3SDguMzY0MzFWOS4zMzY1QzguMzY0MzEgOS40NTQzNSA4LjI2Nzg4IDkuNTUwNzggOC4xNTAwMiA5LjU1MDc4QzguMDMyMTcgOS41NTA3OCA3LjkzNTc0IDkuNDU0MzUgNy45MzU3NCA5LjMzNjVWOC4yNjUwN0g2Ljg2NDMxQzYuNzQ2NDUgOC4yNjUwNyA2LjY1MDAyIDguMTY4NjQgNi42NTAwMiA4LjA1MDc4QzYuNjUwMDIgNy45MzI5MiA2Ljc0NjQ1IDcuODM2NSA2Ljg2NDMxIDcuODM2NUg3LjkzNTc0VjYuNzY1MDdDNy45MzU3NCA2LjY0NzIxIDguMDMyMTcgNi41NTA3OCA4LjE1MDAyIDYuNTUwNzhDOC4yNjc4OCA2LjU1MDc4IDguMzY0MzEgNi42NDcyMSA4LjM2NDMxIDYuNzY1MDdWNy44MzY1SDkuNDM1NzRDOS41NTM2IDcuODM2NSA5LjY1MDAyIDcuOTMyOTIgOS42NTAwMiA4LjA1MDc4QzkuNjUwMDIgOC4xNjg2NCA5LjU1MzYgOC4yNjUwNyA5LjQzNTc0IDguMjY1MDdaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC41Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-edit: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-ellipses: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEyIiByPSIyIi8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-error: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIyIi8+PHBhdGggZD0iTTEwIDNoNHYxMmgtNHoiLz48L2c+CjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-expand-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNMTEgMTBIOXYzSDZ2MmgzdjNoMnYtM2gzdi0yaC0zeiIgLz4KICAgIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-filter-dot: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWRvdCIgZmlsbD0iI0ZGRiI+CiAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3IiByPSIzIj48L2NpcmNsZT4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-filter: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-folder-favorite: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggY2xhc3M9ImpwLWljb24zIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxNjE2MSIgZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yLjA2IDExTDE1IDE1LjI4IDEyLjA2IDE3bC43OC0zLjMzLTIuNTktMi4yNCAzLjQxLS4yOUwxNSA4bDEuMzQgMy4xNCAzLjQxLjI5LTIuNTkgMi4yNC43OCAzLjMzeiIvPgo8L3N2Zz4K);
|
||
--jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-home: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-html5: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMDAiIGQ9Ik0xMDguNCAwaDIzdjIyLjhoMjEuMlYwaDIzdjY5aC0yM1Y0NmgtMjF2MjNoLTIzLjJNMjA2IDIzaC0yMC4zVjBoNjMuN3YyM0gyMjl2NDZoLTIzbTUzLjUtNjloMjQuMWwxNC44IDI0LjNMMzEzLjIgMGgyNC4xdjY5aC0yM1YzNC44bC0xNi4xIDI0LjgtMTYuMS0yNC44VjY5aC0yMi42bTg5LjItNjloMjN2NDYuMmgzMi42VjY5aC01NS42Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2U0NGQyNiIgZD0iTTEwNy42IDQ3MWwtMzMtMzcwLjRoMzYyLjhsLTMzIDM3MC4yTDI1NS43IDUxMiIvPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNmMTY1MjkiIGQ9Ik0yNTYgNDgwLjVWMTMxaDE0OC4zTDM3NiA0NDciLz4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNlYmViZWIiIGQ9Ik0xNDIgMTc2LjNoMTE0djQ1LjRoLTY0LjJsNC4yIDQ2LjVoNjB2NDUuM0gxNTQuNG0yIDIyLjhIMjAybDMuMiAzNi4zIDUwLjggMTMuNnY0Ny40bC05My4yLTI2Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIiBkPSJNMzY5LjYgMTc2LjNIMjU1Ljh2NDUuNGgxMDkuNm0tNC4xIDQ2LjVIMjU1Ljh2NDUuNGg1NmwtNS4zIDU5LTUwLjcgMTMuNnY0Ny4ybDkzLTI1LjgiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1icmFuZDQganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNGRkYiIGQ9Ik0yLjIgMi4yaDE3LjV2MTcuNUgyLjJ6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzNGNTFCNSIgZD0iTTIuMiAyLjJ2MTcuNWgxNy41bC4xLTE3LjVIMi4yem0xMi4xIDIuMmMxLjIgMCAyLjIgMSAyLjIgMi4ycy0xIDIuMi0yLjIgMi4yLTIuMi0xLTIuMi0yLjIgMS0yLjIgMi4yLTIuMnpNNC40IDE3LjZsMy4zLTguOCAzLjMgNi42IDIuMi0zLjIgNC40IDUuNEg0LjR6Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUwLjk3OCA1MC45NzgiPgoJPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KCQk8cGF0aCBkPSJNNDMuNTIsNy40NThDMzguNzExLDIuNjQ4LDMyLjMwNywwLDI1LjQ4OSwwQzE4LjY3LDAsMTIuMjY2LDIuNjQ4LDcuNDU4LDcuNDU4CgkJCWMtOS45NDMsOS45NDEtOS45NDMsMjYuMTE5LDAsMzYuMDYyYzQuODA5LDQuODA5LDExLjIxMiw3LjQ1NiwxOC4wMzEsNy40NThjMCwwLDAuMDAxLDAsMC4wMDIsMAoJCQljNi44MTYsMCwxMy4yMjEtMi42NDgsMTguMDI5LTcuNDU4YzQuODA5LTQuODA5LDcuNDU3LTExLjIxMiw3LjQ1Ny0xOC4wM0M1MC45NzcsMTguNjcsNDguMzI4LDEyLjI2Niw0My41Miw3LjQ1OHoKCQkJIE00Mi4xMDYsNDIuMTA1Yy00LjQzMiw0LjQzMS0xMC4zMzIsNi44NzItMTYuNjE1LDYuODcyaC0wLjAwMmMtNi4yODUtMC4wMDEtMTIuMTg3LTIuNDQxLTE2LjYxNy02Ljg3MgoJCQljLTkuMTYyLTkuMTYzLTkuMTYyLTI0LjA3MSwwLTMzLjIzM0MxMy4zMDMsNC40NCwxOS4yMDQsMiwyNS40ODksMmM2LjI4NCwwLDEyLjE4NiwyLjQ0LDE2LjYxNyw2Ljg3MgoJCQljNC40MzEsNC40MzEsNi44NzEsMTAuMzMyLDYuODcxLDE2LjYxN0M0OC45NzcsMzEuNzcyLDQ2LjUzNiwzNy42NzUsNDIuMTA2LDQyLjEwNXoiLz4KCQk8cGF0aCBkPSJNMjMuNTc4LDMyLjIxOGMtMC4wMjMtMS43MzQsMC4xNDMtMy4wNTksMC40OTYtMy45NzJjMC4zNTMtMC45MTMsMS4xMS0xLjk5NywyLjI3Mi0zLjI1MwoJCQljMC40NjgtMC41MzYsMC45MjMtMS4wNjIsMS4zNjctMS41NzVjMC42MjYtMC43NTMsMS4xMDQtMS40NzgsMS40MzYtMi4xNzVjMC4zMzEtMC43MDcsMC40OTUtMS41NDEsMC40OTUtMi41CgkJCWMwLTEuMDk2LTAuMjYtMi4wODgtMC43NzktMi45NzljLTAuNTY1LTAuODc5LTEuNTAxLTEuMzM2LTIuODA2LTEuMzY5Yy0xLjgwMiwwLjA1Ny0yLjk4NSwwLjY2Ny0zLjU1LDEuODMyCgkJCWMtMC4zMDEsMC41MzUtMC41MDMsMS4xNDEtMC42MDcsMS44MTRjLTAuMTM5LDAuNzA3LTAuMjA3LDEuNDMyLTAuMjA3LDIuMTc0aC0yLjkzN2MtMC4wOTEtMi4yMDgsMC40MDctNC4xMTQsMS40OTMtNS43MTkKCQkJYzEuMDYyLTEuNjQsMi44NTUtMi40ODEsNS4zNzgtMi41MjdjMi4xNiwwLjAyMywzLjg3NCwwLjYwOCw1LjE0MSwxLjc1OGMxLjI3OCwxLjE2LDEuOTI5LDIuNzY0LDEuOTUsNC44MTEKCQkJYzAsMS4xNDItMC4xMzcsMi4xMTEtMC40MSwyLjkxMWMtMC4zMDksMC44NDUtMC43MzEsMS41OTMtMS4yNjgsMi4yNDNjLTAuNDkyLDAuNjUtMS4wNjgsMS4zMTgtMS43MywyLjAwMgoJCQljLTAuNjUsMC42OTctMS4zMTMsMS40NzktMS45ODcsMi4zNDZjLTAuMjM5LDAuMzc3LTAuNDI5LDAuNzc3LTAuNTY1LDEuMTk5Yy0wLjE2LDAuOTU5LTAuMjE3LDEuOTUxLTAuMTcxLDIuOTc5CgkJCUMyNi41ODksMzIuMjE4LDIzLjU3OCwzMi4yMTgsMjMuNTc4LDMyLjIxOHogTTIzLjU3OCwzOC4yMnYtMy40ODRoMy4wNzZ2My40ODRIMjMuNTc4eiIvPgoJPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaW5zcGVjdG9yLWljb24tY29sb3IganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K);
|
||
--jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtanNvbi1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0Y5QTgyNSI+CiAgICA8cGF0aCBkPSJNMjAuMiAxMS44Yy0xLjYgMC0xLjcuNS0xLjcgMSAwIC40LjEuOS4xIDEuMy4xLjUuMS45LjEgMS4zIDAgMS43LTEuNCAyLjMtMy41IDIuM2gtLjl2LTEuOWguNWMxLjEgMCAxLjQgMCAxLjQtLjggMC0uMyAwLS42LS4xLTEgMC0uNC0uMS0uOC0uMS0xLjIgMC0xLjMgMC0xLjggMS4zLTItMS4zLS4yLTEuMy0uNy0xLjMtMiAwLS40LjEtLjguMS0xLjIuMS0uNC4xLS43LjEtMSAwLS44LS40LS43LTEuNC0uOGgtLjVWNC4xaC45YzIuMiAwIDMuNS43IDMuNSAyLjMgMCAuNC0uMS45LS4xIDEuMy0uMS41LS4xLjktLjEgMS4zIDAgLjUuMiAxIDEuNyAxdjEuOHpNMS44IDEwLjFjMS42IDAgMS43LS41IDEuNy0xIDAtLjQtLjEtLjktLjEtMS4zLS4xLS41LS4xLS45LS4xLTEuMyAwLTEuNiAxLjQtMi4zIDMuNS0yLjNoLjl2MS45aC0uNWMtMSAwLTEuNCAwLTEuNC44IDAgLjMgMCAuNi4xIDEgMCAuMi4xLjYuMSAxIDAgMS4zIDAgMS44LTEuMyAyQzYgMTEuMiA2IDExLjcgNiAxM2MwIC40LS4xLjgtLjEgMS4yLS4xLjMtLjEuNy0uMSAxIDAgLjguMy44IDEuNC44aC41djEuOWgtLjljLTIuMSAwLTMuNS0uNi0zLjUtMi4zIDAtLjQuMS0uOS4xLTEuMy4xLS41LjEtLjkuMS0xLjMgMC0uNS0uMi0xLTEuNy0xdi0xLjl6Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzLjgiIHI9IjIuMSIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSI4LjIiIHI9IjIuMSIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-julia: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDMyNSAzMDAiPgogIDxnIGNsYXNzPSJqcC1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjY2IzYzMzIj4KICAgIDxwYXRoIGQ9Ik0gMTUwLjg5ODQzOCAyMjUgQyAxNTAuODk4NDM4IDI2Ni40MjE4NzUgMTE3LjMyMDMxMiAzMDAgNzUuODk4NDM4IDMwMCBDIDM0LjQ3NjU2MiAzMDAgMC44OTg0MzggMjY2LjQyMTg3NSAwLjg5ODQzOCAyMjUgQyAwLjg5ODQzOCAxODMuNTc4MTI1IDM0LjQ3NjU2MiAxNTAgNzUuODk4NDM4IDE1MCBDIDExNy4zMjAzMTIgMTUwIDE1MC44OTg0MzggMTgzLjU3ODEyNSAxNTAuODk4NDM4IDIyNSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzM4OTgyNiI+CiAgICA8cGF0aCBkPSJNIDIzNy41IDc1IEMgMjM3LjUgMTE2LjQyMTg3NSAyMDMuOTIxODc1IDE1MCAxNjIuNSAxNTAgQyAxMjEuMDc4MTI1IDE1MCA4Ny41IDExNi40MjE4NzUgODcuNSA3NSBDIDg3LjUgMzMuNTc4MTI1IDEyMS4wNzgxMjUgMCAxNjIuNSAwIEMgMjAzLjkyMTg3NSAwIDIzNy41IDMzLjU3ODEyNSAyMzcuNSA3NSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzk1NThiMiI+CiAgICA8cGF0aCBkPSJNIDMyNC4xMDE1NjIgMjI1IEMgMzI0LjEwMTU2MiAyNjYuNDIxODc1IDI5MC41MjM0MzggMzAwIDI0OS4xMDE1NjIgMzAwIEMgMjA3LjY3OTY4OCAzMDAgMTc0LjEwMTU2MiAyNjYuNDIxODc1IDE3NC4xMDE1NjIgMjI1IEMgMTc0LjEwMTU2MiAxODMuNTc4MTI1IDIwNy42Nzk2ODggMTUwIDI0OS4xMDE1NjIgMTUwIEMgMjkwLjUyMzQzOCAxNTAgMzI0LjEwMTU2MiAxODMuNTc4MTI1IDMyNC4xMDE1NjIgMjI1Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgPGcgY2xhc3M9ImpwLWp1cHl0ZXItaWNvbi1jb2xvciIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgIDxnIGNsYXNzPSJqcC1qdXB5dGVyLWljb24tY29sb3IiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+CiAgICA8L2c+CiAgICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjY5LjMgMjI4MS4zMSkiIGQ9Ik0gNS44OTM1MyAyLjg0NEMgNS45MTg4OSAzLjQzMTY1IDUuNzcwODUgNC4wMTM2NyA1LjQ2ODE1IDQuNTE2NDVDIDUuMTY1NDUgNS4wMTkyMiA0LjcyMTY4IDUuNDIwMTUgNC4xOTI5OSA1LjY2ODUxQyAzLjY2NDMgNS45MTY4OCAzLjA3NDQ0IDYuMDAxNTEgMi40OTgwNSA1LjkxMTcxQyAxLjkyMTY2IDUuODIxOSAxLjM4NDYzIDUuNTYxNyAwLjk1NDg5OCA1LjE2NDAxQyAwLjUyNTE3IDQuNzY2MzMgMC4yMjIwNTYgNC4yNDkwMyAwLjA4MzkwMzcgMy42Nzc1N0MgLTAuMDU0MjQ4MyAzLjEwNjExIC0wLjAyMTIzIDIuNTA2MTcgMC4xNzg3ODEgMS45NTM2NEMgMC4zNzg3OTMgMS40MDExIDAuNzM2ODA5IDAuOTIwODE3IDEuMjA3NTQgMC41NzM1MzhDIDEuNjc4MjYgMC4yMjYyNTkgMi4yNDA1NSAwLjAyNzU5MTkgMi44MjMyNiAwLjAwMjY3MjI5QyAzLjYwMzg5IC0wLjAzMDcxMTUgNC4zNjU3MyAwLjI0OTc4OSA0Ljk0MTQyIDAuNzgyNTUxQyA1LjUxNzExIDEuMzE1MzEgNS44NTk1NiAyLjA1Njc2IDUuODkzNTMgMi44NDRaIi8+CiAgICAgIDxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MzkuOCAyMzIzLjgxKSIgZD0iTSA3LjQyNzg5IDMuNTgzMzhDIDcuNDYwMDggNC4zMjQzIDcuMjczNTUgNS4wNTgxOSA2Ljg5MTkzIDUuNjkyMTNDIDYuNTEwMzEgNi4zMjYwNyA1Ljk1MDc1IDYuODMxNTYgNS4yODQxMSA3LjE0NDZDIDQuNjE3NDcgNy40NTc2MyAzLjg3MzcxIDcuNTY0MTQgMy4xNDcwMiA3LjQ1MDYzQyAyLjQyMDMyIDcuMzM3MTIgMS43NDMzNiA3LjAwODcgMS4yMDE4NCA2LjUwNjk1QyAwLjY2MDMyOCA2LjAwNTIgMC4yNzg2MSA1LjM1MjY4IDAuMTA1MDE3IDQuNjMyMDJDIC0wLjA2ODU3NTcgMy45MTEzNSAtMC4wMjYyMzYxIDMuMTU0OTQgMC4yMjY2NzUgMi40NTg1NkMgMC40Nzk1ODcgMS43NjIxNyAwLjkzMTY5NyAxLjE1NzEzIDEuNTI1NzYgMC43MjAwMzNDIDIuMTE5ODMgMC4yODI5MzUgMi44MjkxNCAwLjAzMzQzOTUgMy41NjM4OSAwLjAwMzEzMzQ0QyA0LjU0NjY3IC0wLjAzNzQwMzMgNS41MDUyOSAwLjMxNjcwNiA2LjIyOTYxIDAuOTg3ODM1QyA2Ljk1MzkzIDEuNjU4OTYgNy4zODQ4NCAyLjU5MjM1IDcuNDI3ODkgMy41ODMzOEwgNy40Mjc4OSAzLjU4MzM4WiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM4LjM2IDIyODYuMDYpIiBkPSJNIDIuMjc0NzEgNC4zOTYyOUMgMS44NDM2MyA0LjQxNTA4IDEuNDE2NzEgNC4zMDQ0NSAxLjA0Nzk5IDQuMDc4NDNDIDAuNjc5MjY4IDMuODUyNCAwLjM4NTMyOCAzLjUyMTE0IDAuMjAzMzcxIDMuMTI2NTZDIDAuMDIxNDEzNiAyLjczMTk4IC0wLjA0MDM3OTggMi4yOTE4MyAwLjAyNTgxMTYgMS44NjE4MUMgMC4wOTIwMDMxIDEuNDMxOCAwLjI4MzIwNCAxLjAzMTI2IDAuNTc1MjEzIDAuNzEwODgzQyAwLjg2NzIyMiAwLjM5MDUxIDEuMjQ2OTEgMC4xNjQ3MDggMS42NjYyMiAwLjA2MjA1OTJDIDIuMDg1NTMgLTAuMDQwNTg5NyAyLjUyNTYxIC0wLjAxNTQ3MTQgMi45MzA3NiAwLjEzNDIzNUMgMy4zMzU5MSAwLjI4Mzk0MSAzLjY4NzkyIDAuNTUxNTA1IDMuOTQyMjIgMC45MDMwNkMgNC4xOTY1MiAxLjI1NDYyIDQuMzQxNjkgMS42NzQzNiA0LjM1OTM1IDIuMTA5MTZDIDQuMzgyOTkgMi42OTEwNyA0LjE3Njc4IDMuMjU4NjkgMy43ODU5NyAzLjY4NzQ2QyAzLjM5NTE2IDQuMTE2MjQgMi44NTE2NiA0LjM3MTE2IDIuMjc0NzEgNC4zOTYyOUwgMi4yNzQ3MSA0LjM5NjI5WiIvPgogICAgPC9nPgogIDwvZz4+Cjwvc3ZnPgo=);
|
||
--jp-icon-jupyterlab-wordmark: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIHZpZXdCb3g9IjAgMCAxODYwLjggNDc1Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0RTRFNEUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4MC4xMzY0MDEsIDY0LjI3MTQ5MykiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDU4Ljg3NTU2NikiPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA4NzYwMywgMC4xNDAyOTQpIj4KICAgICAgICA8cGF0aCBkPSJNLTQyNi45LDE2OS44YzAsNDguNy0zLjcsNjQuNy0xMy42LDc2LjRjLTEwLjgsMTAtMjUsMTUuNS0zOS43LDE1LjVsMy43LDI5IGMyMi44LDAuMyw0NC44LTcuOSw2MS45LTIzLjFjMTcuOC0xOC41LDI0LTQ0LjEsMjQtODMuM1YwSC00Mjd2MTcwLjFMLTQyNi45LDE2OS44TC00MjYuOSwxNjkuOHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU1LjA0NTI5NiwgNTYuODM3MTA0KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNTYyNDUzLCAxLjc5OTg0MikiPgogICAgICAgIDxwYXRoIGQ9Ik0tMzEyLDE0OGMwLDIxLDAsMzkuNSwxLjcsNTUuNGgtMzEuOGwtMi4xLTMzLjNoLTAuOGMtNi43LDExLjYtMTYuNCwyMS4zLTI4LDI3LjkgYy0xMS42LDYuNi0yNC44LDEwLTM4LjIsOS44Yy0zMS40LDAtNjktMTcuNy02OS04OVYwaDM2LjR2MTEyLjdjMCwzOC43LDExLjYsNjQuNyw0NC42LDY0LjdjMTAuMy0wLjIsMjAuNC0zLjUsMjguOS05LjQgYzguNS01LjksMTUuMS0xNC4zLDE4LjktMjMuOWMyLjItNi4xLDMuMy0xMi41LDMuMy0xOC45VjAuMmgzNi40VjE0OEgtMzEyTC0zMTIsMTQ4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTAuMDEzMzIyLCA1My40Nzk2MzgpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS43MDY0NTgsIDAuMjMxNDI1KSI+CiAgICAgICAgPHBhdGggZD0iTS00NzguNiw3MS40YzAtMjYtMC44LTQ3LTEuNy02Ni43aDMyLjdsMS43LDM0LjhoMC44YzcuMS0xMi41LDE3LjUtMjIuOCwzMC4xLTI5LjcgYzEyLjUtNywyNi43LTEwLjMsNDEtOS44YzQ4LjMsMCw4NC43LDQxLjcsODQuNywxMDMuM2MwLDczLjEtNDMuNywxMDkuMi05MSwxMDkuMmMtMTIuMSwwLjUtMjQuMi0yLjItMzUtNy44IGMtMTAuOC01LjYtMTkuOS0xMy45LTI2LjYtMjQuMmgtMC44VjI5MWgtMzZ2LTIyMEwtNDc4LjYsNzEuNEwtNDc4LjYsNzEuNHogTS00NDIuNiwxMjUuNmMwLjEsNS4xLDAuNiwxMC4xLDEuNywxNS4xIGMzLDEyLjMsOS45LDIzLjMsMTkuOCwzMS4xYzkuOSw3LjgsMjIuMSwxMi4xLDM0LjcsMTIuMWMzOC41LDAsNjAuNy0zMS45LDYwLjctNzguNWMwLTQwLjctMjEuMS03NS42LTU5LjUtNzUuNiBjLTEyLjksMC40LTI1LjMsNS4xLTM1LjMsMTMuNGMtOS45LDguMy0xNi45LDE5LjctMTkuNiwzMi40Yy0xLjUsNC45LTIuMywxMC0yLjUsMTUuMVYxMjUuNkwtNDQyLjYsMTI1LjZMLTQ0Mi42LDEyNS42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MDYuNzQwNzI2LCA1Ni44MzcxMDQpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC43NTEyMjYsIDEuOTg5Mjk5KSI+CiAgICAgICAgPHBhdGggZD0iTS00NDAuOCwwbDQzLjcsMTIwLjFjNC41LDEzLjQsOS41LDI5LjQsMTIuOCw0MS43aDAuOGMzLjctMTIuMiw3LjktMjcuNywxMi44LTQyLjQgbDM5LjctMTE5LjJoMzguNUwtMzQ2LjksMTQ1Yy0yNiw2OS43LTQzLjcsMTA1LjQtNjguNiwxMjcuMmMtMTIuNSwxMS43LTI3LjksMjAtNDQuNiwyMy45bC05LjEtMzEuMSBjMTEuNy0zLjksMjIuNS0xMC4xLDMxLjgtMTguMWMxMy4yLTExLjEsMjMuNy0yNS4yLDMwLjYtNDEuMmMxLjUtMi44LDIuNS01LjcsMi45LTguOGMtMC4zLTMuMy0xLjItNi42LTIuNS05LjdMLTQ4MC4yLDAuMSBoMzkuN0wtNDQwLjgsMEwtNDQwLjgsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIyLjc0ODEwNCwgMC4wMDAwMDApIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NjQwNTAsIDAuMzc4OTE0KSI+CiAgICAgICAgPHBhdGggZD0iTS00MTMuNywwdjU4LjNoNTJ2MjguMmgtNTJWMTk2YzAsMjUsNywzOS41LDI3LjMsMzkuNWM3LjEsMC4xLDE0LjItMC43LDIxLjEtMi41IGwxLjcsMjcuN2MtMTAuMywzLjctMjEuMyw1LjQtMzIuMiw1Yy03LjMsMC40LTE0LjYtMC43LTIxLjMtMy40Yy02LjgtMi43LTEyLjktNi44LTE3LjktMTIuMWMtMTAuMy0xMC45LTE0LjEtMjktMTQuMS01Mi45IFY4Ni41aC0zMVY1OC4zaDMxVjkuNkwtNDEzLjcsMEwtNDEzLjcsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTc0LjQzMzI4NiwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTkwMDM0LCAwLjYxMDMzOSkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDQ1LjgsMTEzYzAuOCw1MCwzMi4yLDcwLjYsNjguNiw3MC42YzE5LDAuNiwzNy45LTMsNTUuMy0xMC41bDYuMiwyNi40IGMtMjAuOSw4LjktNDMuNSwxMy4xLTY2LjIsMTIuNmMtNjEuNSwwLTk4LjMtNDEuMi05OC4zLTEwMi41Qy00ODAuMiw0OC4yLTQ0NC43LDAtMzg2LjUsMGM2NS4yLDAsODIuNyw1OC4zLDgyLjcsOTUuNyBjLTAuMSw1LjgtMC41LDExLjUtMS4yLDE3LjJoLTE0MC42SC00NDUuOEwtNDQ1LjgsMTEzeiBNLTMzOS4yLDg2LjZjMC40LTIzLjUtOS41LTYwLjEtNTAuNC02MC4xIGMtMzYuOCwwLTUyLjgsMzQuNC01NS43LDYwLjFILTMzOS4yTC0zMzkuMiw4Ni42TC0zMzkuMiw4Ni42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAxLjk2MTA1OCwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMTc5NjQwLCAwLjcwNTA2OCkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDc4LjYsNjhjMC0yMy45LTAuNC00NC41LTEuNy02My40aDMxLjhsMS4yLDM5LjloMS43YzkuMS0yNy4zLDMxLTQ0LjUsNTUuMy00NC41IGMzLjUtMC4xLDcsMC40LDEwLjMsMS4ydjM0LjhjLTQuMS0wLjktOC4yLTEuMy0xMi40LTEuMmMtMjUuNiwwLTQzLjcsMTkuNy00OC43LDQ3LjRjLTEsNS43LTEuNiwxMS41LTEuNywxNy4ydjEwOC4zaC0zNlY2OCBMLTQ3OC42LDY4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCBkPSJNMTM1Mi4zLDMyNi4yaDM3VjI4aC0zN1YzMjYuMnogTTE2MDQuOCwzMjYuMmMtMi41LTEzLjktMy40LTMxLjEtMy40LTQ4Ljd2LTc2IGMwLTQwLjctMTUuMS04My4xLTc3LjMtODMuMWMtMjUuNiwwLTUwLDcuMS02Ni44LDE4LjFsOC40LDI0LjRjMTQuMy05LjIsMzQtMTUuMSw1My0xNS4xYzQxLjYsMCw0Ni4yLDMwLjIsNDYuMiw0N3Y0LjIgYy03OC42LTAuNC0xMjIuMywyNi41LTEyMi4zLDc1LjZjMCwyOS40LDIxLDU4LjQsNjIuMiw1OC40YzI5LDAsNTAuOS0xNC4zLDYyLjItMzAuMmgxLjNsMi45LDI1LjZIMTYwNC44eiBNMTU2NS43LDI1Ny43IGMwLDMuOC0wLjgsOC0yLjEsMTEuOGMtNS45LDE3LjItMjIuNywzNC00OS4yLDM0Yy0xOC45LDAtMzQuOS0xMS4zLTM0LjktMzUuM2MwLTM5LjUsNDUuOC00Ni42LDg2LjItNDUuOFYyNTcuN3ogTTE2OTguNSwzMjYuMiBsMS43LTMzLjZoMS4zYzE1LjEsMjYuOSwzOC43LDM4LjIsNjguMSwzOC4yYzQ1LjQsMCw5MS4yLTM2LjEsOTEuMi0xMDguOGMwLjQtNjEuNy0zNS4zLTEwMy43LTg1LjctMTAzLjcgYy0zMi44LDAtNTYuMywxNC43LTY5LjMsMzcuNGgtMC44VjI4aC0zNi42djI0NS43YzAsMTguMS0wLjgsMzguNi0xLjcsNTIuNUgxNjk4LjV6IE0xNzA0LjgsMjA4LjJjMC01LjksMS4zLTEwLjksMi4xLTE1LjEgYzcuNi0yOC4xLDMxLjEtNDUuNCw1Ni4zLTQ1LjRjMzkuNSwwLDYwLjUsMzQuOSw2MC41LDc1LjZjMCw0Ni42LTIzLjEsNzguMS02MS44LDc4LjFjLTI2LjksMC00OC4zLTE3LjYtNTUuNS00My4zIGMtMC44LTQuMi0xLjctOC44LTEuNy0xMy40VjIwOC4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzYxNjE2MSIgZD0iTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEweiIvPgo8L3N2Zz4K);
|
||
--jp-icon-keyboard: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMlY4em0wIDNoMnYyaC0ydi0yek04IDhoMnYySDhWOHptMCAzaDJ2Mkg4di0yem0tMSAySDV2LTJoMnYyem0wLTNINVY4aDJ2MnptOSA3SDh2LTJoOHYyem0wLTRoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6bTMgM2gtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-launch: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yNiwyOEg2YTIuMDAyNywyLjAwMjcsMCwwLDEtMi0yVjZBMi4wMDI3LDIuMDAyNywwLDAsMSw2LDRIMTZWNkg2VjI2SDI2VjE2aDJWMjZBMi4wMDI3LDIuMDAyNywwLDAsMSwyNiwyOFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMjAgMiAyMCA0IDI2LjU4NiA0IDE4IDEyLjU4NiAxOS40MTQgMTQgMjggNS40MTQgMjggMTIgMzAgMTIgMzAgMiAyMCAyIi8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-launcher: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-line-form: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS44OCA0LjEyTDEzLjc2IDEybC03Ljg4IDcuODhMOCAyMmwxMC0xMEw4IDJ6Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-link: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4K);
|
||
--jp-icon-markdown: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjN0IxRkEyIiBkPSJNNSAxNC45aDEybC02LjEgNnptOS40LTYuOGMwLTEuMy0uMS0yLjktLjEtNC41LS40IDEuNC0uOSAyLjktMS4zIDQuM2wtMS4zIDQuM2gtMkw4LjUgNy45Yy0uNC0xLjMtLjctMi45LTEtNC4zLS4xIDEuNi0uMSAzLjItLjIgNC42TDcgMTIuNEg0LjhsLjctMTFoMy4zTDEwIDVjLjQgMS4yLjcgMi43IDEgMy45LjMtMS4yLjctMi42IDEtMy45bDEuMi0zLjdoMy4zbC42IDExaC0yLjRsLS4zLTQuMnoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-move-down: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMTIuNDcxIDcuNTI4OTlDMTIuNzYzMiA3LjIzNjg0IDEyLjc2MzIgNi43NjMxNiAxMi40NzEgNi40NzEwMVY2LjQ3MTAxQzEyLjE3OSA2LjE3OTA1IDExLjcwNTcgNi4xNzg4NCAxMS40MTM1IDYuNDcwNTRMNy43NSAxMC4xMjc1VjEuNzVDNy43NSAxLjMzNTc5IDcuNDE0MjEgMSA3IDFWMUM2LjU4NTc5IDEgNi4yNSAxLjMzNTc5IDYuMjUgMS43NVYxMC4xMjc1TDIuNTk3MjYgNi40NjgyMkMyLjMwMzM4IDYuMTczODEgMS44MjY0MSA2LjE3MzU5IDEuNTMyMjYgNi40Njc3NFY2LjQ2Nzc0QzEuMjM4MyA2Ljc2MTcgMS4yMzgzIDcuMjM4MyAxLjUzMjI2IDcuNTMyMjZMNi4yOTI4OSAxMi4yOTI5QzYuNjgzNDIgMTIuNjgzNCA3LjMxNjU4IDEyLjY4MzQgNy43MDcxMSAxMi4yOTI5TDEyLjQ3MSA3LjUyODk5WiIgZmlsbD0iIzYxNjE2MSIvPgo8L3N2Zz4K);
|
||
--jp-icon-move-up: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMS41Mjg5OSA2LjQ3MTAxQzEuMjM2ODQgNi43NjMxNiAxLjIzNjg0IDcuMjM2ODQgMS41Mjg5OSA3LjUyODk5VjcuNTI4OTlDMS44MjA5NSA3LjgyMDk1IDIuMjk0MjYgNy44MjExNiAyLjU4NjQ5IDcuNTI5NDZMNi4yNSAzLjg3MjVWMTIuMjVDNi4yNSAxMi42NjQyIDYuNTg1NzkgMTMgNyAxM1YxM0M3LjQxNDIxIDEzIDcuNzUgMTIuNjY0MiA3Ljc1IDEyLjI1VjMuODcyNUwxMS40MDI3IDcuNTMxNzhDMTEuNjk2NiA3LjgyNjE5IDEyLjE3MzYgNy44MjY0MSAxMi40Njc3IDcuNTMyMjZWNy41MzIyNkMxMi43NjE3IDcuMjM4MyAxMi43NjE3IDYuNzYxNyAxMi40Njc3IDYuNDY3NzRMNy43MDcxMSAxLjcwNzExQzcuMzE2NTggMS4zMTY1OCA2LjY4MzQyIDEuMzE2NTggNi4yOTI4OSAxLjcwNzExTDEuNTI4OTkgNi40NzEwMVoiIGZpbGw9IiM2MTYxNjEiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-new-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-not-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI1IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMTkgMTcuMTg0NCAyLjk2OTY4IDE0LjMwMzIgMS44NjA5NCAxMS40NDA5WiIvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24yIiBzdHJva2U9IiMzMzMzMzMiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4zMTU5MiA5LjMyMDMxKSIgZD0iTTcuMzY4NDIgMEwwIDcuMzY0NzkiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzE1OTIgMTYuNjgzNikgc2NhbGUoMSAtMSkiIGQ9Ik03LjM2ODQyIDBMMCA3LjM2NDc5Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtbm90ZWJvb2staWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-numbering: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTQgMTlINlYxOS41SDVWMjAuNUg2VjIxSDRWMjJIN1YxOEg0VjE5Wk01IDEwSDZWNkg0VjdINVYxMFpNNCAxM0g1LjhMNCAxNS4xVjE2SDdWMTVINS4yTDcgMTIuOVYxMkg0VjEzWk05IDdWOUgyM1Y3SDlaTTkgMjFIMjNWMTlIOVYyMVpNOSAxNUgyM1YxM0g5VjE1WiIvPgoJPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-offline-bolt: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-palette: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE4IDEzVjIwSDRWNkg5LjAyQzkuMDcgNS4yOSA5LjI0IDQuNjIgOS41IDRINEMyLjkgNCAyIDQuOSAyIDZWMjBDMiAyMS4xIDIuOSAyMiA0IDIySDE4QzE5LjEgMjIgMjAgMjEuMSAyMCAyMFYxNUwxOCAxM1pNMTkuMyA4Ljg5QzE5Ljc0IDguMTkgMjAgNy4zOCAyMCA2LjVDMjAgNC4wMSAxNy45OSAyIDE1LjUgMkMxMy4wMSAyIDExIDQuMDEgMTEgNi41QzExIDguOTkgMTMuMDEgMTEgMTUuNDkgMTFDMTYuMzcgMTEgMTcuMTkgMTAuNzQgMTcuODggMTAuM0wyMSAxMy40MkwyMi40MiAxMkwxOS4zIDguODlaTTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41QzEzIDUuMTIgMTQuMTIgNCAxNS41IDRDMTYuODggNCAxOCA1LjEyIDE4IDYuNUMxOCA3Ljg4IDE2Ljg4IDkgMTUuNSA5WiIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDZIOS4wMTg5NEM5LjAwNjM5IDYuMTY1MDIgOSA2LjMzMTc2IDkgNi41QzkgOC44MTU3NyAxMC4yMTEgMTAuODQ4NyAxMi4wMzQzIDEySDlWMTRIMTZWMTIuOTgxMUMxNi41NzAzIDEyLjkzNzcgMTcuMTIgMTIuODIwNyAxNy42Mzk2IDEyLjYzOTZMMTggMTNWMjBINFY2Wk04IDhINlYxMEg4VjhaTTYgMTJIOFYxNEg2VjEyWk04IDE2SDZWMThIOFYxNlpNOSAxNkgxNlYxOEg5VjE2WiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-paste: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-pdf: url(data:image/svg+xml;base64,PHN2ZwogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAyMiIgd2lkdGg9IjE2Ij4KICAgIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0ZGMkEyQSIKICAgICAgIGQ9Im0gMjIuMzQ0MzY5LC0zLjAxNjM2NDIgaCA1LjYzODYwNCB2IDEuNTc5MjQzMyBoIC0zLjU0OTIyNyB2IDEuNTA4NjkyOTkgaCAzLjMzNzU3NiBWIDEuNjUwODE1NCBoIC0zLjMzNzU3NiB2IDMuNDM1MjYxMyBoIC0yLjA4OTM3NyB6IG0gLTcuMTM2NDQ0LDEuNTc5MjQzMyB2IDQuOTQzOTU0MyBoIDAuNzQ4OTIgcSAxLjI4MDc2MSwwIDEuOTUzNzAzLC0wLjYzNDk1MzUgMC42NzgzNjksLTAuNjM0OTUzNSAwLjY3ODM2OSwtMS44NDUxNjQxIDAsLTEuMjA0NzgzNTUgLTAuNjcyOTQyLC0xLjgzNDMxMDExIC0wLjY3Mjk0MiwtMC42Mjk1MjY1OSAtMS45NTkxMywtMC42Mjk1MjY1OSB6IG0gLTIuMDg5Mzc3LC0xLjU3OTI0MzMgaCAyLjIwMzM0MyBxIDEuODQ1MTY0LDAgMi43NDYwMzksMC4yNjU5MjA3IDAuOTA2MzAxLDAuMjYwNDkzNyAxLjU1MjEwOCwwLjg5MDAyMDMgMC41Njk4MywwLjU0ODEyMjMgMC44NDY2MDUsMS4yNjQ0ODAwNiAwLjI3Njc3NCwwLjcxNjM1NzgxIDAuMjc2Nzc0LDEuNjIyNjU4OTQgMCwwLjkxNzE1NTEgLTAuMjc2Nzc0LDEuNjM4OTM5OSAtMC4yNzY3NzUsMC43MTYzNTc4IC0wLjg0NjYwNSwxLjI2NDQ4IC0wLjY1MTIzNCwwLjYyOTUyNjYgLTEuNTYyOTYyLDAuODk1NDQ3MyAtMC45MTE3MjgsMC4yNjA0OTM3IC0yLjczNTE4NSwwLjI2MDQ5MzcgaCAtMi4yMDMzNDMgeiBtIC04LjE0NTg1NjUsMCBoIDMuNDY3ODIzIHEgMS41NDY2ODE2LDAgMi4zNzE1Nzg1LDAuNjg5MjIzIDAuODMwMzI0LDAuNjgzNzk2MSAwLjgzMDMyNCwxLjk1MzcwMzE0IDAsMS4yNzUzMzM5NyAtMC44MzAzMjQsMS45NjQ1NTcwNiBRIDkuOTg3MTk2MSwyLjI3NDkxNSA4LjQ0MDUxNDUsMi4yNzQ5MTUgSCA3LjA2MjA2ODQgViA1LjA4NjA3NjcgSCA0Ljk3MjY5MTUgWiBtIDIuMDg5Mzc2OSwxLjUxNDExOTkgdiAyLjI2MzAzOTQzIGggMS4xNTU5NDEgcSAwLjYwNzgxODgsMCAwLjkzODg2MjksLTAuMjkzMDU1NDcgMC4zMzEwNDQxLC0wLjI5ODQ4MjQxIDAuMzMxMDQ0MSwtMC44NDExNzc3MiAwLC0wLjU0MjY5NTMxIC0wLjMzMTA0NDEsLTAuODM1NzUwNzQgLTAuMzMxMDQ0MSwtMC4yOTMwNTU1IC0wLjkzODg2MjksLTAuMjkzMDU1NSB6IgovPgo8L3N2Zz4K);
|
||
--jp-icon-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iLTEwIC0xMCAxMzEuMTYxMzYxNjk0MzM1OTQgMTMyLjM4ODk5OTkzODk2NDg0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzA2OTk4IiBkPSJNIDU0LjkxODc4NSw5LjE5Mjc0MjFlLTQgQyA1MC4zMzUxMzIsMC4wMjIyMTcyNyA0NS45NTc4NDYsMC40MTMxMzY5NyA0Mi4xMDYyODUsMS4wOTQ2NjkzIDMwLjc2MDA2OSwzLjA5OTE3MzEgMjguNzAwMDM2LDcuMjk0NzcxNCAyOC43MDAwMzUsMTUuMDMyMTY5IHYgMTAuMjE4NzUgaCAyNi44MTI1IHYgMy40MDYyNSBoIC0yNi44MTI1IC0xMC4wNjI1IGMgLTcuNzkyNDU5LDAgLTE0LjYxNTc1ODgsNC42ODM3MTcgLTE2Ljc0OTk5OTgsMTMuNTkzNzUgLTIuNDYxODE5OTgsMTAuMjEyOTY2IC0yLjU3MTAxNTA4LDE2LjU4NjAyMyAwLDI3LjI1IDEuOTA1OTI4Myw3LjkzNzg1MiA2LjQ1NzU0MzIsMTMuNTkzNzQ4IDE0LjI0OTk5OTgsMTMuNTkzNzUgaCA5LjIxODc1IHYgLTEyLjI1IGMgMCwtOC44NDk5MDIgNy42NTcxNDQsLTE2LjY1NjI0OCAxNi43NSwtMTYuNjU2MjUgaCAyNi43ODEyNSBjIDcuNDU0OTUxLDAgMTMuNDA2MjUzLC02LjEzODE2NCAxMy40MDYyNSwtMTMuNjI1IHYgLTI1LjUzMTI1IGMgMCwtNy4yNjYzMzg2IC02LjEyOTk4LC0xMi43MjQ3NzcxIC0xMy40MDYyNSwtMTMuOTM3NDk5NyBDIDY0LjI4MTU0OCwwLjMyNzk0Mzk3IDU5LjUwMjQzOCwtMC4wMjAzNzkwMyA1NC45MTg3ODUsOS4xOTI3NDIxZS00IFogbSAtMTQuNSw4LjIxODc1MDEyNTc5IGMgMi43Njk1NDcsMCA1LjAzMTI1LDIuMjk4NjQ1NiA1LjAzMTI1LDUuMTI0OTk5NiAtMmUtNiwyLjgxNjMzNiAtMi4yNjE3MDMsNS4wOTM3NSAtNS4wMzEyNSw1LjA5Mzc1IC0yLjc3OTQ3NiwtMWUtNiAtNS4wMzEyNSwtMi4yNzc0MTUgLTUuMDMxMjUsLTUuMDkzNzUgLTEwZS03LC0yLjgyNjM1MyAyLjI1MTc3NCwtNS4xMjQ5OTk2IDUuMDMxMjUsLTUuMTI0OTk5NiB6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2ZmZDQzYiIgZD0ibSA4NS42Mzc1MzUsMjguNjU3MTY5IHYgMTEuOTA2MjUgYyAwLDkuMjMwNzU1IC03LjgyNTg5NSwxNi45OTk5OTkgLTE2Ljc1LDE3IGggLTI2Ljc4MTI1IGMgLTcuMzM1ODMzLDAgLTEzLjQwNjI0OSw2LjI3ODQ4MyAtMTMuNDA2MjUsMTMuNjI1IHYgMjUuNTMxMjQ3IGMgMCw3LjI2NjM0NCA2LjMxODU4OCwxMS41NDAzMjQgMTMuNDA2MjUsMTMuNjI1MDA0IDguNDg3MzMxLDIuNDk1NjEgMTYuNjI2MjM3LDIuOTQ2NjMgMjYuNzgxMjUsMCA2Ljc1MDE1NSwtMS45NTQzOSAxMy40MDYyNTMsLTUuODg3NjEgMTMuNDA2MjUsLTEzLjYyNTAwNCBWIDg2LjUwMDkxOSBoIC0yNi43ODEyNSB2IC0zLjQwNjI1IGggMjYuNzgxMjUgMTMuNDA2MjU0IGMgNy43OTI0NjEsMCAxMC42OTYyNTEsLTUuNDM1NDA4IDEzLjQwNjI0MSwtMTMuNTkzNzUgMi43OTkzMywtOC4zOTg4ODYgMi42ODAyMiwtMTYuNDc1Nzc2IDAsLTI3LjI1IC0xLjkyNTc4LC03Ljc1NzQ0MSAtNS42MDM4NywtMTMuNTkzNzUgLTEzLjQwNjI0MSwtMTMuNTkzNzUgeiBtIC0xNS4wNjI1LDY0LjY1NjI1IGMgMi43Nzk0NzgsM2UtNiA1LjAzMTI1LDIuMjc3NDE3IDUuMDMxMjUsNS4wOTM3NDcgLTJlLTYsMi44MjYzNTQgLTIuMjUxNzc1LDUuMTI1MDA0IC01LjAzMTI1LDUuMTI1MDA0IC0yLjc2OTU1LDAgLTUuMDMxMjUsLTIuMjk4NjUgLTUuMDMxMjUsLTUuMTI1MDA0IDJlLTYsLTIuODE2MzMgMi4yNjE2OTcsLTUuMDkzNzQ3IDUuMDMxMjUsLTUuMDkzNzQ3IHoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-r-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjE5NkYzIiBkPSJNNC40IDIuNWMxLjItLjEgMi45LS4zIDQuOS0uMyAyLjUgMCA0LjEuNCA1LjIgMS4zIDEgLjcgMS41IDEuOSAxLjUgMy41IDAgMi0xLjQgMy41LTIuOSA0LjEgMS4yLjQgMS43IDEuNiAyLjIgMyAuNiAxLjkgMSAzLjkgMS4zIDQuNmgtMy44Yy0uMy0uNC0uOC0xLjctMS4yLTMuN3MtMS4yLTIuNi0yLjYtMi42aC0uOXY2LjRINC40VjIuNXptMy43IDYuOWgxLjRjMS45IDAgMi45LS45IDIuOS0yLjNzLTEtMi4zLTIuOC0yLjNjLS43IDAtMS4zIDAtMS42LjJ2NC41aC4xdi0uMXoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-react: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMTUwIDE1MCA1NDEuOSAyOTUuMyI+CiAgPGcgY2xhc3M9ImpwLWljb24tYnJhbmQyIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxREFGQiI+CiAgICA8cGF0aCBkPSJNNjY2LjMgMjk2LjVjMC0zMi41LTQwLjctNjMuMy0xMDMuMS04Mi40IDE0LjQtNjMuNiA4LTExNC4yLTIwLjItMTMwLjQtNi41LTMuOC0xNC4xLTUuNi0yMi40LTUuNnYyMi4zYzQuNiAwIDguMy45IDExLjQgMi42IDEzLjYgNy44IDE5LjUgMzcuNSAxNC45IDc1LjctMS4xIDkuNC0yLjkgMTkuMy01LjEgMjkuNC0xOS42LTQuOC00MS04LjUtNjMuNS0xMC45LTEzLjUtMTguNS0yNy41LTM1LjMtNDEuNi01MCAzMi42LTMwLjMgNjMuMi00Ni45IDg0LTQ2LjlWNzhjLTI3LjUgMC02My41IDE5LjYtOTkuOSA1My42LTM2LjQtMzMuOC03Mi40LTUzLjItOTkuOS01My4ydjIyLjNjMjAuNyAwIDUxLjQgMTYuNSA4NCA0Ni42LTE0IDE0LjctMjggMzEuNC00MS4zIDQ5LjktMjIuNiAyLjQtNDQgNi4xLTYzLjYgMTEtMi4zLTEwLTQtMTkuNy01LjItMjktNC43LTM4LjIgMS4xLTY3LjkgMTQuNi03NS44IDMtMS44IDYuOS0yLjYgMTEuNS0yLjZWNzguNWMtOC40IDAtMTYgMS44LTIyLjYgNS42LTI4LjEgMTYuMi0zNC40IDY2LjctMTkuOSAxMzAuMS02Mi4yIDE5LjItMTAyLjcgNDkuOS0xMDIuNyA4Mi4zIDAgMzIuNSA0MC43IDYzLjMgMTAzLjEgODIuNC0xNC40IDYzLjYtOCAxMTQuMiAyMC4yIDEzMC40IDYuNSAzLjggMTQuMSA1LjYgMjIuNSA1LjYgMjcuNSAwIDYzLjUtMTkuNiA5OS45LTUzLjYgMzYuNCAzMy44IDcyLjQgNTMuMiA5OS45IDUzLjIgOC40IDAgMTYtMS44IDIyLjYtNS42IDI4LjEtMTYuMiAzNC40LTY2LjcgMTkuOS0xMzAuMSA2Mi0xOS4xIDEwMi41LTQ5LjkgMTAyLjUtODIuM3ptLTEzMC4yLTY2LjdjLTMuNyAxMi45LTguMyAyNi4yLTEzLjUgMzkuNS00LjEtOC04LjQtMTYtMTMuMS0yNC00LjYtOC05LjUtMTUuOC0xNC40LTIzLjQgMTQuMiAyLjEgMjcuOSA0LjcgNDEgNy45em0tNDUuOCAxMDYuNWMtNy44IDEzLjUtMTUuOCAyNi4zLTI0LjEgMzguMi0xNC45IDEuMy0zMCAyLTQ1LjIgMi0xNS4xIDAtMzAuMi0uNy00NS0xLjktOC4zLTExLjktMTYuNC0yNC42LTI0LjItMzgtNy42LTEzLjEtMTQuNS0yNi40LTIwLjgtMzkuOCA2LjItMTMuNCAxMy4yLTI2LjggMjAuNy0zOS45IDcuOC0xMy41IDE1LjgtMjYuMyAyNC4xLTM4LjIgMTQuOS0xLjMgMzAtMiA0NS4yLTIgMTUuMSAwIDMwLjIuNyA0NSAxLjkgOC4zIDExLjkgMTYuNCAyNC42IDI0LjIgMzggNy42IDEzLjEgMTQuNSAyNi40IDIwLjggMzkuOC02LjMgMTMuNC0xMy4yIDI2LjgtMjAuNyAzOS45em0zMi4zLTEzYzUuNCAxMy40IDEwIDI2LjggMTMuOCAzOS44LTEzLjEgMy4yLTI2LjkgNS45LTQxLjIgOCA0LjktNy43IDkuOC0xNS42IDE0LjQtMjMuNyA0LjYtOCA4LjktMTYuMSAxMy0yNC4xek00MjEuMiA0MzBjLTkuMy05LjYtMTguNi0yMC4zLTI3LjgtMzIgOSAuNCAxOC4yLjcgMjcuNS43IDkuNCAwIDE4LjctLjIgMjcuOC0uNy05IDExLjctMTguMyAyMi40LTI3LjUgMzJ6bS03NC40LTU4LjljLTE0LjItMi4xLTI3LjktNC43LTQxLTcuOSAzLjctMTIuOSA4LjMtMjYuMiAxMy41LTM5LjUgNC4xIDggOC40IDE2IDEzLjEgMjQgNC43IDggOS41IDE1LjggMTQuNCAyMy40ek00MjAuNyAxNjNjOS4zIDkuNiAxOC42IDIwLjMgMjcuOCAzMi05LS40LTE4LjItLjctMjcuNS0uNy05LjQgMC0xOC43LjItMjcuOC43IDktMTEuNyAxOC4zLTIyLjQgMjcuNS0zMnptLTc0IDU4LjljLTQuOSA3LjctOS44IDE1LjYtMTQuNCAyMy43LTQuNiA4LTguOSAxNi0xMyAyNC01LjQtMTMuNC0xMC0yNi44LTEzLjgtMzkuOCAxMy4xLTMuMSAyNi45LTUuOCA0MS4yLTcuOXptLTkwLjUgMTI1LjJjLTM1LjQtMTUuMS01OC4zLTM0LjktNTguMy01MC42IDAtMTUuNyAyMi45LTM1LjYgNTguMy01MC42IDguNi0zLjcgMTgtNyAyNy43LTEwLjEgNS43IDE5LjYgMTMuMiA0MCAyMi41IDYwLjktOS4yIDIwLjgtMTYuNiA0MS4xLTIyLjIgNjAuNi05LjktMy4xLTE5LjMtNi41LTI4LTEwLjJ6TTMxMCA0OTBjLTEzLjYtNy44LTE5LjUtMzcuNS0xNC45LTc1LjcgMS4xLTkuNCAyLjktMTkuMyA1LjEtMjkuNCAxOS42IDQuOCA0MSA4LjUgNjMuNSAxMC45IDEzLjUgMTguNSAyNy41IDM1LjMgNDEuNiA1MC0zMi42IDMwLjMtNjMuMiA0Ni45LTg0IDQ2LjktNC41LS4xLTguMy0xLTExLjMtMi43em0yMzcuMi03Ni4yYzQuNyAzOC4yLTEuMSA2Ny45LTE0LjYgNzUuOC0zIDEuOC02LjkgMi42LTExLjUgMi42LTIwLjcgMC01MS40LTE2LjUtODQtNDYuNiAxNC0xNC43IDI4LTMxLjQgNDEuMy00OS45IDIyLjYtMi40IDQ0LTYuMSA2My42LTExIDIuMyAxMC4xIDQuMSAxOS44IDUuMiAyOS4xem0zOC41LTY2LjdjLTguNiAzLjctMTggNy0yNy43IDEwLjEtNS43LTE5LjYtMTMuMi00MC0yMi41LTYwLjkgOS4yLTIwLjggMTYuNi00MS4xIDIyLjItNjAuNiA5LjkgMy4xIDE5LjMgNi41IDI4LjEgMTAuMiAzNS40IDE1LjEgNTguMyAzNC45IDU4LjMgNTAuNi0uMSAxNS43LTIzIDM1LjYtNTguNCA1MC42ek0zMjAuOCA3OC40eiIvPgogICAgPGNpcmNsZSBjeD0iNDIwLjkiIGN5PSIyOTYuNSIgcj0iNDUuNyIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-redo: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
|
||
--jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-share: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTSAxOCAyIEMgMTYuMzU0OTkgMiAxNSAzLjM1NDk5MDQgMTUgNSBDIDE1IDUuMTkwOTUyOSAxNS4wMjE3OTEgNS4zNzcxMjI0IDE1LjA1NjY0MSA1LjU1ODU5MzggTCA3LjkyMTg3NSA5LjcyMDcwMzEgQyA3LjM5ODUzOTkgOS4yNzc4NTM5IDYuNzMyMDc3MSA5IDYgOSBDIDQuMzU0OTkwNCA5IDMgMTAuMzU0OTkgMyAxMiBDIDMgMTMuNjQ1MDEgNC4zNTQ5OTA0IDE1IDYgMTUgQyA2LjczMjA3NzEgMTUgNy4zOTg1Mzk5IDE0LjcyMjE0NiA3LjkyMTg3NSAxNC4yNzkyOTcgTCAxNS4wNTY2NDEgMTguNDM5NDUzIEMgMTUuMDIxNTU1IDE4LjYyMTUxNCAxNSAxOC44MDgzODYgMTUgMTkgQyAxNSAyMC42NDUwMSAxNi4zNTQ5OSAyMiAxOCAyMiBDIDE5LjY0NTAxIDIyIDIxIDIwLjY0NTAxIDIxIDE5IEMgMjEgMTcuMzU0OTkgMTkuNjQ1MDEgMTYgMTggMTYgQyAxNy4yNjc0OCAxNiAxNi42MDE1OTMgMTYuMjc5MzI4IDE2LjA3ODEyNSAxNi43MjI2NTYgTCA4Ljk0MzM1OTQgMTIuNTU4NTk0IEMgOC45NzgyMDk1IDEyLjM3NzEyMiA5IDEyLjE5MDk1MyA5IDEyIEMgOSAxMS44MDkwNDcgOC45NzgyMDk1IDExLjYyMjg3OCA4Ljk0MzM1OTQgMTEuNDQxNDA2IEwgMTYuMDc4MTI1IDcuMjc5Mjk2OSBDIDE2LjYwMTQ2IDcuNzIyMTQ2MSAxNy4yNjc5MjMgOCAxOCA4IEMgMTkuNjQ1MDEgOCAyMSA2LjY0NTAwOTYgMjEgNSBDIDIxIDMuMzU0OTkwNCAxOS42NDUwMSAyIDE4IDIgeiBNIDE4IDQgQyAxOC41NjQxMjkgNCAxOSA0LjQzNTg3MDYgMTkgNSBDIDE5IDUuNTY0MTI5NCAxOC41NjQxMjkgNiAxOCA2IEMgMTcuNDM1ODcxIDYgMTcgNS41NjQxMjk0IDE3IDUgQyAxNyA0LjQzNTg3MDYgMTcuNDM1ODcxIDQgMTggNCB6IE0gNiAxMSBDIDYuNTY0MTI5NCAxMSA3IDExLjQzNTg3MSA3IDEyIEMgNyAxMi41NjQxMjkgNi41NjQxMjk0IDEzIDYgMTMgQyA1LjQzNTg3MDYgMTMgNSAxMi41NjQxMjkgNSAxMiBDIDUgMTEuNDM1ODcxIDUuNDM1ODcwNiAxMSA2IDExIHogTSAxOCAxOCBDIDE4LjU2NDEyOSAxOCAxOSAxOC40MzU4NzEgMTkgMTkgQyAxOSAxOS41NjQxMjkgMTguNTY0MTI5IDIwIDE4IDIwIEMgMTcuNDM1ODcxIDIwIDE3IDE5LjU2NDEyOSAxNyAxOSBDIDE3IDE4LjQzNTg3MSAxNy40MzU4NzEgMTggMTggMTggeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-spreadsheet: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNENBRjUwIiBkPSJNMi4yIDIuMnYxNy42aDE3LjZWMi4ySDIuMnptMTUuNCA3LjdoLTUuNVY0LjRoNS41djUuNXpNOS45IDQuNHY1LjVINC40VjQuNGg1LjV6bS01LjUgNy43aDUuNXY1LjVINC40di01LjV6bTcuNyA1LjV2LTUuNWg1LjV2NS41aC01LjV6Ii8+Cjwvc3ZnPgo=);
|
||
--jp-icon-stop: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik02IDZoMTJ2MTJINnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-tab: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-table-rows: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-tag: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA0MyAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTI4LjgzMzIgMTIuMzM0TDMyLjk5OTggMTYuNTAwN0wzNy4xNjY1IDEyLjMzNEgyOC44MzMyWiIvPgoJCTxwYXRoIGQ9Ik0xNi4yMDk1IDIxLjYxMDRDMTUuNjg3MyAyMi4xMjk5IDE0Ljg0NDMgMjIuMTI5OSAxNC4zMjQ4IDIxLjYxMDRMNi45ODI5IDE0LjcyNDVDNi41NzI0IDE0LjMzOTQgNi4wODMxMyAxMy42MDk4IDYuMDQ3ODYgMTMuMDQ4MkM1Ljk1MzQ3IDExLjUyODggNi4wMjAwMiA4LjYxOTQ0IDYuMDY2MjEgNy4wNzY5NUM2LjA4MjgxIDYuNTE0NzcgNi41NTU0OCA2LjA0MzQ3IDcuMTE4MDQgNi4wMzA1NUM5LjA4ODYzIDUuOTg0NzMgMTMuMjYzOCA1LjkzNTc5IDEzLjY1MTggNi4zMjQyNUwyMS43MzY5IDEzLjYzOUMyMi4yNTYgMTQuMTU4NSAyMS43ODUxIDE1LjQ3MjQgMjEuMjYyIDE1Ljk5NDZMMTYuMjA5NSAyMS42MTA0Wk05Ljc3NTg1IDguMjY1QzkuMzM1NTEgNy44MjU2NiA4LjYyMzUxIDcuODI1NjYgOC4xODI4IDguMjY1QzcuNzQzNDYgOC43MDU3MSA3Ljc0MzQ2IDkuNDE3MzMgOC4xODI4IDkuODU2NjdDOC42MjM4MiAxMC4yOTY0IDkuMzM1ODIgMTAuMjk2NCA5Ljc3NTg1IDkuODU2NjdDMTAuMjE1NiA5LjQxNzMzIDEwLjIxNTYgOC43MDUzMyA5Ljc3NTg1IDguMjY1WiIvPgoJPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDIpIiBmaWxsPSIjMzMzMzMzIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUtaW52ZXJzZSIgZD0iTTUuMDU2NjQgOC43NjE3MkM1LjA1NjY0IDguNTk3NjYgNS4wMzEyNSA4LjQ1MzEyIDQuOTgwNDcgOC4zMjgxMkM0LjkzMzU5IDguMTk5MjIgNC44NTU0NyA4LjA4MjAzIDQuNzQ2MDkgNy45NzY1NkM0LjY0MDYyIDcuODcxMDkgNC41IDcuNzc1MzkgNC4zMjQyMiA3LjY4OTQ1QzQuMTUyMzQgNy41OTk2MSAzLjk0MzM2IDcuNTExNzIgMy42OTcyNyA3LjQyNTc4QzMuMzAyNzMgNy4yODUxNiAyLjk0MzM2IDcuMTM2NzIgMi42MTkxNCA2Ljk4MDQ3QzIuMjk0OTIgNi44MjQyMiAyLjAxNzU4IDYuNjQyNTggMS43ODcxMSA2LjQzNTU1QzEuNTYwNTUgNi4yMjg1MiAxLjM4NDc3IDUuOTg4MjggMS4yNTk3NyA1LjcxNDg0QzEuMTM0NzcgNS40Mzc1IDEuMDcyMjcgNS4xMDkzOCAxLjA3MjI3IDQuNzMwNDdDMS4wNzIyNyA0LjM5ODQ0IDEuMTI4OTEgNC4wOTU3IDEuMjQyMTkgMy44MjIyN0MxLjM1NTQ3IDMuNTQ0OTIgMS41MTU2MiAzLjMwNDY5IDEuNzIyNjYgMy4xMDE1NkMxLjkyOTY5IDIuODk4NDQgMi4xNzk2OSAyLjczNDM3IDIuNDcyNjYgMi42MDkzOEMyLjc2NTYyIDIuNDg0MzggMy4wOTE4IDIuNDA0MyAzLjQ1MTE3IDIuMzY5MTRWMS4xMDkzOEg0LjM4ODY3VjIuMzgwODZDNC43NDAyMyAyLjQyNzczIDUuMDU2NjQgMi41MjM0NCA1LjMzNzg5IDIuNjY3OTdDNS42MTkxNCAyLjgxMjUgNS44NTc0MiAzLjAwMTk1IDYuMDUyNzMgMy4yMzYzM0M2LjI1MTk1IDMuNDY2OCA2LjQwNDMgMy43NDAyMyA2LjUwOTc3IDQuMDU2NjRDNi42MTkxNCA0LjM2OTE0IDYuNjczODMgNC43MjA3IDYuNjczODMgNS4xMTEzM0g1LjA0NDkyQzUuMDQ0OTIgNC42Mzg2NyA0LjkzNzUgNC4yODEyNSA0LjcyMjY2IDQuMDM5MDZDNC41MDc4MSAzLjc5Mjk3IDQuMjE2OCAzLjY2OTkyIDMuODQ5NjEgMy42Njk5MkMzLjY1MDM5IDMuNjY5OTIgMy40NzY1NiAzLjY5NzI3IDMuMzI4MTIgMy43NTE5NUMzLjE4MzU5IDMuODAyNzMgMy4wNjQ0NSAzLjg3Njk1IDIuOTcwNyAzLjk3NDYxQzIuODc2OTUgNC4wNjgzNiAyLjgwNjY0IDQuMTc5NjkgMi43NTk3NyA0LjMwODU5QzIuNzE2OCA0LjQzNzUgMi42OTUzMSA0LjU3ODEyIDIuNjk1MzEgNC43MzA0N0MyLjY5NTMxIDQuODgyODEgMi43MTY4IDUuMDE5NTMgMi43NTk3NyA1LjE0MDYyQzIuODA2NjQgNS4yNTc4MSAyLjg4MjgxIDUuMzY3MTkgMi45ODgyOCA1LjQ2ODc1QzMuMDk3NjYgNS41NzAzMSAzLjI0MDIzIDUuNjY3OTcgMy40MTYwMiA1Ljc2MTcyQzMuNTkxOCA1Ljg1MTU2IDMuODEwNTUgNS45NDMzNiA0LjA3MjI3IDYuMDM3MTFDNC40NjY4IDYuMTg1NTUgNC44MjQyMiA2LjMzOTg0IDUuMTQ0NTMgNi41QzUuNDY0ODQgNi42NTYyNSA1LjczODI4IDYuODM5ODQgNS45NjQ4NCA3LjA1MDc4QzYuMTk1MzEgNy4yNTc4MSA2LjM3MTA5IDcuNSA2LjQ5MjE5IDcuNzc3MzRDNi42MTcxOSA4LjA1MDc4IDYuNjc5NjkgOC4zNzUgNi42Nzk2OSA4Ljc1QzYuNjc5NjkgOS4wOTM3NSA2LjYyMzA1IDkuNDA0MyA2LjUwOTc3IDkuNjgxNjRDNi4zOTY0OCA5Ljk1NTA4IDYuMjM0MzggMTAuMTkxNCA2LjAyMzQ0IDEwLjM5MDZDNS44MTI1IDEwLjU4OTggNS41NTg1OSAxMC43NSA1LjI2MTcyIDEwLjg3MTFDNC45NjQ4NCAxMC45ODgzIDQuNjMyODEgMTEuMDY0NSA0LjI2NTYyIDExLjA5OTZWMTIuMjQ4SDMuMzMzOThWMTEuMDk5NkMzLjAwMTk1IDExLjA2ODQgMi42Nzk2OSAxMC45OTYxIDIuMzY3MTkgMTAuODgyOEMyLjA1NDY5IDEwLjc2NTYgMS43NzczNCAxMC41OTc3IDEuNTM1MTYgMTAuMzc4OUMxLjI5Njg4IDEwLjE2MDIgMS4xMDU0NyA5Ljg4NDc3IDAuOTYwOTM4IDkuNTUyNzNDMC44MTY0MDYgOS4yMTY4IDAuNzQ0MTQxIDguODE0NDUgMC43NDQxNDEgOC4zNDU3SDIuMzc4OTFDMi4zNzg5MSA4LjYyNjk1IDIuNDE5OTIgOC44NjMyOCAyLjUwMTk1IDkuMDU0NjlDMi41ODM5OCA5LjI0MjE5IDIuNjg5NDUgOS4zOTI1OCAyLjgxODM2IDkuNTA1ODZDMi45NTExNyA5LjYxNTIzIDMuMTAxNTYgOS42OTMzNiAzLjI2OTUzIDkuNzQwMjNDMy40Mzc1IDkuNzg3MTEgMy42MDkzOCA5LjgxMDU1IDMuNzg1MTYgOS44MTA1NUM0LjIwMzEyIDkuODEwNTUgNC41MTk1MyA5LjcxMjg5IDQuNzM0MzggOS41MTc1OEM0Ljk0OTIyIDkuMzIyMjcgNS4wNTY2NCA5LjA3MDMxIDUuMDU2NjQgOC43NjE3MlpNMTMuNDE4IDEyLjI3MTVIOC4wNzQyMlYxMUgxMy40MThWMTIuMjcxNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTUyNjQgNikiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=);
|
||
--jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtdGV4dC1lZGl0b3ItaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3oiLz4KPC9zdmc+Cg==);
|
||
--jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4K);
|
||
--jp-icon-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMiAxNy4xODQ0IDIuOTY5NjggMTQuMzAzMiAxLjg2MDk0IDExLjQ0MDlaIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiMzMzMzMzMiIHN0cm9rZT0iIzMzMzMzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA5Ljg2NzE5KSIgZD0iTTIuODYwMTUgNC44NjUzNUwwLjcyNjU0OSAyLjk5OTU5TDAgMy42MzA0NUwyLjg2MDE1IDYuMTMxNTdMOCAwLjYzMDg3Mkw3LjI3ODU3IDBMMi44NjAxNSA0Ljg2NTM1WiIvPgo8L3N2Zz4K);
|
||
--jp-icon-undo: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-user: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE2IDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0xMiAxNGE3IDcgMCAwMC03IDdoMTRhNyA3IDAgMDAtNy03eiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-users: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPGcgY2xhc3M9ImpwLWljb24zIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjczMjcgMCAwIDEuNzMyNyAtMy42MjgyIC4wOTk1NzcpIiBmaWxsPSIjNjE2MTYxIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgxLjUsMCwwLDEuNSwwLC02KSIgZD0ibTEyLjE4NiA3LjUwOThjLTEuMDUzNSAwLTEuOTc1NyAwLjU2NjUtMi40Nzg1IDEuNDEwMiAwLjc1MDYxIDAuMzEyNzcgMS4zOTc0IDAuODI2NDggMS44NzMgMS40NzI3aDMuNDg2M2MwLTEuNTkyLTEuMjg4OS0yLjg4MjgtMi44ODA5LTIuODgyOHoiLz4KICA8cGF0aCBkPSJtMjAuNDY1IDIuMzg5NWEyLjE4ODUgMi4xODg1IDAgMCAxLTIuMTg4NCAyLjE4ODUgMi4xODg1IDIuMTg4NSAwIDAgMS0yLjE4ODUtMi4xODg1IDIuMTg4NSAyLjE4ODUgMCAwIDEgMi4xODg1LTIuMTg4NSAyLjE4ODUgMi4xODg1IDAgMCAxIDIuMTg4NCAyLjE4ODV6Ii8+CiAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMS41LDAsMCwxLjUsMCwtNikiIGQ9Im0zLjU4OTggOC40MjE5Yy0xLjExMjYgMC0yLjAxMzcgMC45MDExMS0yLjAxMzcgMi4wMTM3aDIuODE0NWMwLjI2Nzk3LTAuMzczMDkgMC41OTA3LTAuNzA0MzUgMC45NTg5OC0wLjk3ODUyLTAuMzQ0MzMtMC42MTY4OC0xLjAwMzEtMS4wMzUyLTEuNzU5OC0xLjAzNTJ6Ii8+CiAgPHBhdGggZD0ibTYuOTE1NCA0LjYyM2ExLjUyOTQgMS41Mjk0IDAgMCAxLTEuNTI5NCAxLjUyOTQgMS41Mjk0IDEuNTI5NCAwIDAgMS0xLjUyOTQtMS41Mjk0IDEuNTI5NCAxLjUyOTQgMCAwIDEgMS41Mjk0LTEuNTI5NCAxLjUyOTQgMS41Mjk0IDAgMCAxIDEuNTI5NCAxLjUyOTR6Ii8+CiAgPHBhdGggZD0ibTYuMTM1IDEzLjUzNWMwLTMuMjM5MiAyLjYyNTktNS44NjUgNS44NjUtNS44NjUgMy4yMzkyIDAgNS44NjUgMi42MjU5IDUuODY1IDUuODY1eiIvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMy43Njg1IiByPSIyLjk2ODUiLz4KIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-vega: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbjEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjEyMTIxIj4KICAgIDxwYXRoIGQ9Ik0xMC42IDUuNGwyLjItMy4ySDIuMnY3LjNsNC02LjZ6Ii8+CiAgICA8cGF0aCBkPSJNMTUuOCAyLjJsLTQuNCA2LjZMNyA2LjNsLTQuOCA4djUuNWgxNy42VjIuMmgtNHptLTcgMTUuNEg1LjV2LTQuNGgzLjN2NC40em00LjQgMEg5LjhWOS44aDMuNHY3Ljh6bTQuNCAwaC0zLjRWNi41aDMuNHYxMS4xeiIvPgogIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-word: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KIDxnIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzQxNDE0MSI+CiAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiA8L2c+CiA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSguNDMgLjA0MDEpIiBmaWxsPSIjZmZmIj4KICA8cGF0aCBkPSJtNC4xNCA4Ljc2cTAuMDY4Mi0xLjg5IDIuNDItMS44OSAxLjE2IDAgMS42OCAwLjQyIDAuNTY3IDAuNDEgMC41NjcgMS4xNnYzLjQ3cTAgMC40NjIgMC41MTQgMC40NjIgMC4xMDMgMCAwLjItMC4wMjMxdjAuNzE0cS0wLjM5OSAwLjEwMy0wLjY1MSAwLjEwMy0wLjQ1MiAwLTAuNjkzLTAuMjItMC4yMzEtMC4yLTAuMjg0LTAuNjYyLTAuOTU2IDAuODcyLTIgMC44NzItMC45MDMgMC0xLjQ3LTAuNDcyLTAuNTI1LTAuNDcyLTAuNTI1LTEuMjYgMC0wLjI2MiAwLjA0NTItMC40NzIgMC4wNTY3LTAuMjIgMC4xMTYtMC4zNzggMC4wNjgyLTAuMTY4IDAuMjMxLTAuMzA0IDAuMTU4LTAuMTQ3IDAuMjYyLTAuMjQyIDAuMTE2LTAuMDkxNCAwLjM2OC0wLjE2OCAwLjI2Mi0wLjA5MTQgMC4zOTktMC4xMjYgMC4xMzYtMC4wNDUyIDAuNDcyLTAuMTAzIDAuMzM2LTAuMDU3OCAwLjUwNC0wLjA3OTggMC4xNTgtMC4wMjMxIDAuNTY3LTAuMDc5OCAwLjU1Ni0wLjA2ODIgMC43NzctMC4yMjEgMC4yMi0wLjE1MiAwLjIyLTAuNDQxdi0wLjI1MnEwLTAuNDMtMC4zNTctMC42NjItMC4zMzYtMC4yMzEtMC45NzYtMC4yMzEtMC42NjIgMC0wLjk5OCAwLjI2Mi0wLjMzNiAwLjI1Mi0wLjM5OSAwLjc5OHptMS44OSAzLjY4cTAuNzg4IDAgMS4yNi0wLjQxIDAuNTA0LTAuNDIgMC41MDQtMC45MDN2LTEuMDVxLTAuMjg0IDAuMTM2LTAuODYxIDAuMjMxLTAuNTY3IDAuMDkxNC0wLjk4NyAwLjE1OC0wLjQyIDAuMDY4Mi0wLjc2NiAwLjMyNi0wLjMzNiAwLjI1Mi0wLjMzNiAwLjcwNHQwLjMwNCAwLjcwNCAwLjg2MSAwLjI1MnoiIHN0cm9rZS13aWR0aD0iMS4wNSIvPgogIDxwYXRoIGQ9Im0xMCA0LjU2aDAuOTQ1djMuMTVxMC42NTEtMC45NzYgMS44OS0wLjk3NiAxLjE2IDAgMS44OSAwLjg0IDAuNjgyIDAuODQgMC42ODIgMi4zMSAwIDEuNDctMC43MDQgMi40Mi0wLjcwNCAwLjg4Mi0xLjg5IDAuODgyLTEuMjYgMC0xLjg5LTEuMDJ2MC43NjZoLTAuODV6bTIuNjIgMy4wNHEtMC43NDYgMC0xLjE2IDAuNjQtMC40NTIgMC42My0wLjQ1MiAxLjY4IDAgMS4wNSAwLjQ1MiAxLjY4dDEuMTYgMC42M3EwLjc3NyAwIDEuMjYtMC42MyAwLjQ5NC0wLjY0IDAuNDk0LTEuNjggMC0xLjA1LTAuNDcyLTEuNjgtMC40NjItMC42NC0xLjI2LTAuNjR6IiBzdHJva2Utd2lkdGg9IjEuMDUiLz4KICA8cGF0aCBkPSJtMi43MyAxNS44IDEzLjYgMC4wMDgxYzAuMDA2OSAwIDAtMi42IDAtMi42IDAtMC4wMDc4LTEuMTUgMC0xLjE1IDAtMC4wMDY5IDAtMC4wMDgzIDEuNS0wLjAwODMgMS41LTJlLTMgLTAuMDAxNC0xMS4zLTAuMDAxNC0xMS4zLTAuMDAxNGwtMC4wMDU5Mi0xLjVjMC0wLjAwNzgtMS4xNyAwLjAwMTMtMS4xNyAwLjAwMTN6IiBzdHJva2Utd2lkdGg9Ii45NzUiLz4KIDwvZz4KPC9zdmc+Cg==);
|
||
--jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
|
||
}
|
||
|
||
/* Icon CSS class declarations */
|
||
|
||
.jp-AddAboveIcon {
|
||
background-image: var(--jp-icon-add-above);
|
||
}
|
||
|
||
.jp-AddBelowIcon {
|
||
background-image: var(--jp-icon-add-below);
|
||
}
|
||
|
||
.jp-AddIcon {
|
||
background-image: var(--jp-icon-add);
|
||
}
|
||
|
||
.jp-BellIcon {
|
||
background-image: var(--jp-icon-bell);
|
||
}
|
||
|
||
.jp-BugDotIcon {
|
||
background-image: var(--jp-icon-bug-dot);
|
||
}
|
||
|
||
.jp-BugIcon {
|
||
background-image: var(--jp-icon-bug);
|
||
}
|
||
|
||
.jp-BuildIcon {
|
||
background-image: var(--jp-icon-build);
|
||
}
|
||
|
||
.jp-CaretDownEmptyIcon {
|
||
background-image: var(--jp-icon-caret-down-empty);
|
||
}
|
||
|
||
.jp-CaretDownEmptyThinIcon {
|
||
background-image: var(--jp-icon-caret-down-empty-thin);
|
||
}
|
||
|
||
.jp-CaretDownIcon {
|
||
background-image: var(--jp-icon-caret-down);
|
||
}
|
||
|
||
.jp-CaretLeftIcon {
|
||
background-image: var(--jp-icon-caret-left);
|
||
}
|
||
|
||
.jp-CaretRightIcon {
|
||
background-image: var(--jp-icon-caret-right);
|
||
}
|
||
|
||
.jp-CaretUpEmptyThinIcon {
|
||
background-image: var(--jp-icon-caret-up-empty-thin);
|
||
}
|
||
|
||
.jp-CaretUpIcon {
|
||
background-image: var(--jp-icon-caret-up);
|
||
}
|
||
|
||
.jp-CaseSensitiveIcon {
|
||
background-image: var(--jp-icon-case-sensitive);
|
||
}
|
||
|
||
.jp-CheckIcon {
|
||
background-image: var(--jp-icon-check);
|
||
}
|
||
|
||
.jp-CircleEmptyIcon {
|
||
background-image: var(--jp-icon-circle-empty);
|
||
}
|
||
|
||
.jp-CircleIcon {
|
||
background-image: var(--jp-icon-circle);
|
||
}
|
||
|
||
.jp-ClearIcon {
|
||
background-image: var(--jp-icon-clear);
|
||
}
|
||
|
||
.jp-CloseIcon {
|
||
background-image: var(--jp-icon-close);
|
||
}
|
||
|
||
.jp-CodeCheckIcon {
|
||
background-image: var(--jp-icon-code-check);
|
||
}
|
||
|
||
.jp-CodeIcon {
|
||
background-image: var(--jp-icon-code);
|
||
}
|
||
|
||
.jp-CollapseAllIcon {
|
||
background-image: var(--jp-icon-collapse-all);
|
||
}
|
||
|
||
.jp-ConsoleIcon {
|
||
background-image: var(--jp-icon-console);
|
||
}
|
||
|
||
.jp-CopyIcon {
|
||
background-image: var(--jp-icon-copy);
|
||
}
|
||
|
||
.jp-CopyrightIcon {
|
||
background-image: var(--jp-icon-copyright);
|
||
}
|
||
|
||
.jp-CutIcon {
|
||
background-image: var(--jp-icon-cut);
|
||
}
|
||
|
||
.jp-DeleteIcon {
|
||
background-image: var(--jp-icon-delete);
|
||
}
|
||
|
||
.jp-DownloadIcon {
|
||
background-image: var(--jp-icon-download);
|
||
}
|
||
|
||
.jp-DuplicateIcon {
|
||
background-image: var(--jp-icon-duplicate);
|
||
}
|
||
|
||
.jp-EditIcon {
|
||
background-image: var(--jp-icon-edit);
|
||
}
|
||
|
||
.jp-EllipsesIcon {
|
||
background-image: var(--jp-icon-ellipses);
|
||
}
|
||
|
||
.jp-ErrorIcon {
|
||
background-image: var(--jp-icon-error);
|
||
}
|
||
|
||
.jp-ExpandAllIcon {
|
||
background-image: var(--jp-icon-expand-all);
|
||
}
|
||
|
||
.jp-ExtensionIcon {
|
||
background-image: var(--jp-icon-extension);
|
||
}
|
||
|
||
.jp-FastForwardIcon {
|
||
background-image: var(--jp-icon-fast-forward);
|
||
}
|
||
|
||
.jp-FileIcon {
|
||
background-image: var(--jp-icon-file);
|
||
}
|
||
|
||
.jp-FileUploadIcon {
|
||
background-image: var(--jp-icon-file-upload);
|
||
}
|
||
|
||
.jp-FilterDotIcon {
|
||
background-image: var(--jp-icon-filter-dot);
|
||
}
|
||
|
||
.jp-FilterIcon {
|
||
background-image: var(--jp-icon-filter);
|
||
}
|
||
|
||
.jp-FilterListIcon {
|
||
background-image: var(--jp-icon-filter-list);
|
||
}
|
||
|
||
.jp-FolderFavoriteIcon {
|
||
background-image: var(--jp-icon-folder-favorite);
|
||
}
|
||
|
||
.jp-FolderIcon {
|
||
background-image: var(--jp-icon-folder);
|
||
}
|
||
|
||
.jp-HomeIcon {
|
||
background-image: var(--jp-icon-home);
|
||
}
|
||
|
||
.jp-Html5Icon {
|
||
background-image: var(--jp-icon-html5);
|
||
}
|
||
|
||
.jp-ImageIcon {
|
||
background-image: var(--jp-icon-image);
|
||
}
|
||
|
||
.jp-InfoIcon {
|
||
background-image: var(--jp-icon-info);
|
||
}
|
||
|
||
.jp-InspectorIcon {
|
||
background-image: var(--jp-icon-inspector);
|
||
}
|
||
|
||
.jp-JsonIcon {
|
||
background-image: var(--jp-icon-json);
|
||
}
|
||
|
||
.jp-JuliaIcon {
|
||
background-image: var(--jp-icon-julia);
|
||
}
|
||
|
||
.jp-JupyterFaviconIcon {
|
||
background-image: var(--jp-icon-jupyter-favicon);
|
||
}
|
||
|
||
.jp-JupyterIcon {
|
||
background-image: var(--jp-icon-jupyter);
|
||
}
|
||
|
||
.jp-JupyterlabWordmarkIcon {
|
||
background-image: var(--jp-icon-jupyterlab-wordmark);
|
||
}
|
||
|
||
.jp-KernelIcon {
|
||
background-image: var(--jp-icon-kernel);
|
||
}
|
||
|
||
.jp-KeyboardIcon {
|
||
background-image: var(--jp-icon-keyboard);
|
||
}
|
||
|
||
.jp-LaunchIcon {
|
||
background-image: var(--jp-icon-launch);
|
||
}
|
||
|
||
.jp-LauncherIcon {
|
||
background-image: var(--jp-icon-launcher);
|
||
}
|
||
|
||
.jp-LineFormIcon {
|
||
background-image: var(--jp-icon-line-form);
|
||
}
|
||
|
||
.jp-LinkIcon {
|
||
background-image: var(--jp-icon-link);
|
||
}
|
||
|
||
.jp-ListIcon {
|
||
background-image: var(--jp-icon-list);
|
||
}
|
||
|
||
.jp-MarkdownIcon {
|
||
background-image: var(--jp-icon-markdown);
|
||
}
|
||
|
||
.jp-MoveDownIcon {
|
||
background-image: var(--jp-icon-move-down);
|
||
}
|
||
|
||
.jp-MoveUpIcon {
|
||
background-image: var(--jp-icon-move-up);
|
||
}
|
||
|
||
.jp-NewFolderIcon {
|
||
background-image: var(--jp-icon-new-folder);
|
||
}
|
||
|
||
.jp-NotTrustedIcon {
|
||
background-image: var(--jp-icon-not-trusted);
|
||
}
|
||
|
||
.jp-NotebookIcon {
|
||
background-image: var(--jp-icon-notebook);
|
||
}
|
||
|
||
.jp-NumberingIcon {
|
||
background-image: var(--jp-icon-numbering);
|
||
}
|
||
|
||
.jp-OfflineBoltIcon {
|
||
background-image: var(--jp-icon-offline-bolt);
|
||
}
|
||
|
||
.jp-PaletteIcon {
|
||
background-image: var(--jp-icon-palette);
|
||
}
|
||
|
||
.jp-PasteIcon {
|
||
background-image: var(--jp-icon-paste);
|
||
}
|
||
|
||
.jp-PdfIcon {
|
||
background-image: var(--jp-icon-pdf);
|
||
}
|
||
|
||
.jp-PythonIcon {
|
||
background-image: var(--jp-icon-python);
|
||
}
|
||
|
||
.jp-RKernelIcon {
|
||
background-image: var(--jp-icon-r-kernel);
|
||
}
|
||
|
||
.jp-ReactIcon {
|
||
background-image: var(--jp-icon-react);
|
||
}
|
||
|
||
.jp-RedoIcon {
|
||
background-image: var(--jp-icon-redo);
|
||
}
|
||
|
||
.jp-RefreshIcon {
|
||
background-image: var(--jp-icon-refresh);
|
||
}
|
||
|
||
.jp-RegexIcon {
|
||
background-image: var(--jp-icon-regex);
|
||
}
|
||
|
||
.jp-RunIcon {
|
||
background-image: var(--jp-icon-run);
|
||
}
|
||
|
||
.jp-RunningIcon {
|
||
background-image: var(--jp-icon-running);
|
||
}
|
||
|
||
.jp-SaveIcon {
|
||
background-image: var(--jp-icon-save);
|
||
}
|
||
|
||
.jp-SearchIcon {
|
||
background-image: var(--jp-icon-search);
|
||
}
|
||
|
||
.jp-SettingsIcon {
|
||
background-image: var(--jp-icon-settings);
|
||
}
|
||
|
||
.jp-ShareIcon {
|
||
background-image: var(--jp-icon-share);
|
||
}
|
||
|
||
.jp-SpreadsheetIcon {
|
||
background-image: var(--jp-icon-spreadsheet);
|
||
}
|
||
|
||
.jp-StopIcon {
|
||
background-image: var(--jp-icon-stop);
|
||
}
|
||
|
||
.jp-TabIcon {
|
||
background-image: var(--jp-icon-tab);
|
||
}
|
||
|
||
.jp-TableRowsIcon {
|
||
background-image: var(--jp-icon-table-rows);
|
||
}
|
||
|
||
.jp-TagIcon {
|
||
background-image: var(--jp-icon-tag);
|
||
}
|
||
|
||
.jp-TerminalIcon {
|
||
background-image: var(--jp-icon-terminal);
|
||
}
|
||
|
||
.jp-TextEditorIcon {
|
||
background-image: var(--jp-icon-text-editor);
|
||
}
|
||
|
||
.jp-TocIcon {
|
||
background-image: var(--jp-icon-toc);
|
||
}
|
||
|
||
.jp-TreeViewIcon {
|
||
background-image: var(--jp-icon-tree-view);
|
||
}
|
||
|
||
.jp-TrustedIcon {
|
||
background-image: var(--jp-icon-trusted);
|
||
}
|
||
|
||
.jp-UndoIcon {
|
||
background-image: var(--jp-icon-undo);
|
||
}
|
||
|
||
.jp-UserIcon {
|
||
background-image: var(--jp-icon-user);
|
||
}
|
||
|
||
.jp-UsersIcon {
|
||
background-image: var(--jp-icon-users);
|
||
}
|
||
|
||
.jp-VegaIcon {
|
||
background-image: var(--jp-icon-vega);
|
||
}
|
||
|
||
.jp-WordIcon {
|
||
background-image: var(--jp-icon-word);
|
||
}
|
||
|
||
.jp-YamlIcon {
|
||
background-image: var(--jp-icon-yaml);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/**
|
||
* (DEPRECATED) Support for consuming icons as CSS background images
|
||
*/
|
||
|
||
.jp-Icon,
|
||
.jp-MaterialIcon {
|
||
background-position: center;
|
||
background-repeat: no-repeat;
|
||
background-size: 16px;
|
||
min-width: 16px;
|
||
min-height: 16px;
|
||
}
|
||
|
||
.jp-Icon-cover {
|
||
background-position: center;
|
||
background-repeat: no-repeat;
|
||
background-size: cover;
|
||
}
|
||
|
||
/**
|
||
* (DEPRECATED) Support for specific CSS icon sizes
|
||
*/
|
||
|
||
.jp-Icon-16 {
|
||
background-size: 16px;
|
||
min-width: 16px;
|
||
min-height: 16px;
|
||
}
|
||
|
||
.jp-Icon-18 {
|
||
background-size: 18px;
|
||
min-width: 18px;
|
||
min-height: 18px;
|
||
}
|
||
|
||
.jp-Icon-20 {
|
||
background-size: 20px;
|
||
min-width: 20px;
|
||
min-height: 20px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-TabBar .lm-TabBar-addButton {
|
||
align-items: center;
|
||
display: flex;
|
||
padding: 4px;
|
||
padding-bottom: 5px;
|
||
margin-right: 1px;
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.lm-TabBar .lm-TabBar-addButton:hover {
|
||
background-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.lm-DockPanel-tabBar .lm-TabBar-tab {
|
||
width: var(--jp-private-horizontal-tab-width);
|
||
}
|
||
|
||
.lm-DockPanel-tabBar .lm-TabBar-content {
|
||
flex: unset;
|
||
}
|
||
|
||
.lm-DockPanel-tabBar[data-orientation='horizontal'] {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/**
|
||
* Support for icons as inline SVG HTMLElements
|
||
*/
|
||
|
||
/* recolor the primary elements of an icon */
|
||
.jp-icon0[fill] {
|
||
fill: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon1[fill] {
|
||
fill: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon2[fill] {
|
||
fill: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon3[fill] {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon4[fill] {
|
||
fill: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
.jp-icon0[stroke] {
|
||
stroke: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon1[stroke] {
|
||
stroke: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon2[stroke] {
|
||
stroke: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon3[stroke] {
|
||
stroke: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon4[stroke] {
|
||
stroke: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
/* recolor the accent elements of an icon */
|
||
.jp-icon-accent0[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-accent1[fill] {
|
||
fill: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-accent2[fill] {
|
||
fill: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-accent3[fill] {
|
||
fill: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-accent4[fill] {
|
||
fill: var(--jp-layout-color4);
|
||
}
|
||
|
||
.jp-icon-accent0[stroke] {
|
||
stroke: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-accent1[stroke] {
|
||
stroke: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-accent2[stroke] {
|
||
stroke: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-accent3[stroke] {
|
||
stroke: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-accent4[stroke] {
|
||
stroke: var(--jp-layout-color4);
|
||
}
|
||
|
||
/* set the color of an icon to transparent */
|
||
.jp-icon-none[fill] {
|
||
fill: none;
|
||
}
|
||
|
||
.jp-icon-none[stroke] {
|
||
stroke: none;
|
||
}
|
||
|
||
/* brand icon colors. Same for light and dark */
|
||
.jp-icon-brand0[fill] {
|
||
fill: var(--jp-brand-color0);
|
||
}
|
||
|
||
.jp-icon-brand1[fill] {
|
||
fill: var(--jp-brand-color1);
|
||
}
|
||
|
||
.jp-icon-brand2[fill] {
|
||
fill: var(--jp-brand-color2);
|
||
}
|
||
|
||
.jp-icon-brand3[fill] {
|
||
fill: var(--jp-brand-color3);
|
||
}
|
||
|
||
.jp-icon-brand4[fill] {
|
||
fill: var(--jp-brand-color4);
|
||
}
|
||
|
||
.jp-icon-brand0[stroke] {
|
||
stroke: var(--jp-brand-color0);
|
||
}
|
||
|
||
.jp-icon-brand1[stroke] {
|
||
stroke: var(--jp-brand-color1);
|
||
}
|
||
|
||
.jp-icon-brand2[stroke] {
|
||
stroke: var(--jp-brand-color2);
|
||
}
|
||
|
||
.jp-icon-brand3[stroke] {
|
||
stroke: var(--jp-brand-color3);
|
||
}
|
||
|
||
.jp-icon-brand4[stroke] {
|
||
stroke: var(--jp-brand-color4);
|
||
}
|
||
|
||
/* warn icon colors. Same for light and dark */
|
||
.jp-icon-warn0[fill] {
|
||
fill: var(--jp-warn-color0);
|
||
}
|
||
|
||
.jp-icon-warn1[fill] {
|
||
fill: var(--jp-warn-color1);
|
||
}
|
||
|
||
.jp-icon-warn2[fill] {
|
||
fill: var(--jp-warn-color2);
|
||
}
|
||
|
||
.jp-icon-warn3[fill] {
|
||
fill: var(--jp-warn-color3);
|
||
}
|
||
|
||
.jp-icon-warn0[stroke] {
|
||
stroke: var(--jp-warn-color0);
|
||
}
|
||
|
||
.jp-icon-warn1[stroke] {
|
||
stroke: var(--jp-warn-color1);
|
||
}
|
||
|
||
.jp-icon-warn2[stroke] {
|
||
stroke: var(--jp-warn-color2);
|
||
}
|
||
|
||
.jp-icon-warn3[stroke] {
|
||
stroke: var(--jp-warn-color3);
|
||
}
|
||
|
||
/* icon colors that contrast well with each other and most backgrounds */
|
||
.jp-icon-contrast0[fill] {
|
||
fill: var(--jp-icon-contrast-color0);
|
||
}
|
||
|
||
.jp-icon-contrast1[fill] {
|
||
fill: var(--jp-icon-contrast-color1);
|
||
}
|
||
|
||
.jp-icon-contrast2[fill] {
|
||
fill: var(--jp-icon-contrast-color2);
|
||
}
|
||
|
||
.jp-icon-contrast3[fill] {
|
||
fill: var(--jp-icon-contrast-color3);
|
||
}
|
||
|
||
.jp-icon-contrast0[stroke] {
|
||
stroke: var(--jp-icon-contrast-color0);
|
||
}
|
||
|
||
.jp-icon-contrast1[stroke] {
|
||
stroke: var(--jp-icon-contrast-color1);
|
||
}
|
||
|
||
.jp-icon-contrast2[stroke] {
|
||
stroke: var(--jp-icon-contrast-color2);
|
||
}
|
||
|
||
.jp-icon-contrast3[stroke] {
|
||
stroke: var(--jp-icon-contrast-color3);
|
||
}
|
||
|
||
.jp-icon-dot[fill] {
|
||
fill: var(--jp-warn-color0);
|
||
}
|
||
|
||
.jp-jupyter-icon-color[fill] {
|
||
fill: var(--jp-jupyter-icon-color, var(--jp-warn-color0));
|
||
}
|
||
|
||
.jp-notebook-icon-color[fill] {
|
||
fill: var(--jp-notebook-icon-color, var(--jp-warn-color0));
|
||
}
|
||
|
||
.jp-json-icon-color[fill] {
|
||
fill: var(--jp-json-icon-color, var(--jp-warn-color1));
|
||
}
|
||
|
||
.jp-console-icon-color[fill] {
|
||
fill: var(--jp-console-icon-color, white);
|
||
}
|
||
|
||
.jp-console-icon-background-color[fill] {
|
||
fill: var(--jp-console-icon-background-color, var(--jp-brand-color1));
|
||
}
|
||
|
||
.jp-terminal-icon-color[fill] {
|
||
fill: var(--jp-terminal-icon-color, var(--jp-layout-color2));
|
||
}
|
||
|
||
.jp-terminal-icon-background-color[fill] {
|
||
fill: var(
|
||
--jp-terminal-icon-background-color,
|
||
var(--jp-inverse-layout-color2)
|
||
);
|
||
}
|
||
|
||
.jp-text-editor-icon-color[fill] {
|
||
fill: var(--jp-text-editor-icon-color, var(--jp-inverse-layout-color3));
|
||
}
|
||
|
||
.jp-inspector-icon-color[fill] {
|
||
fill: var(--jp-inspector-icon-color, var(--jp-inverse-layout-color3));
|
||
}
|
||
|
||
/* CSS for icons in selected filebrowser listing items */
|
||
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
|
||
fill: #fff;
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
|
||
fill: var(--jp-brand-color1);
|
||
}
|
||
|
||
/* stylelint-disable selector-max-class, selector-max-compound-selectors */
|
||
|
||
/**
|
||
* TODO: come up with non css-hack solution for showing the busy icon on top
|
||
* of the close icon
|
||
* CSS for complex behavior of close icon of tabs in the main area tabbar
|
||
*/
|
||
.lm-DockPanel-tabBar
|
||
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
|
||
> .lm-TabBar-tabCloseIcon
|
||
> :not(:hover)
|
||
> .jp-icon3[fill] {
|
||
fill: none;
|
||
}
|
||
|
||
.lm-DockPanel-tabBar
|
||
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
|
||
> .lm-TabBar-tabCloseIcon
|
||
> :not(:hover)
|
||
> .jp-icon-busy[fill] {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
/* stylelint-enable selector-max-class, selector-max-compound-selectors */
|
||
|
||
/* CSS for icons in status bar */
|
||
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
|
||
fill: #fff;
|
||
}
|
||
|
||
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
|
||
fill: var(--jp-brand-color1);
|
||
}
|
||
|
||
/* special handling for splash icon CSS. While the theme CSS reloads during
|
||
splash, the splash icon can loose theming. To prevent that, we set a
|
||
default for its color variable */
|
||
:root {
|
||
--jp-warn-color0: var(--md-orange-700);
|
||
}
|
||
|
||
/* not sure what to do with this one, used in filebrowser listing */
|
||
.jp-DragIcon {
|
||
margin-right: 4px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/**
|
||
* Support for alt colors for icons as inline SVG HTMLElements
|
||
*/
|
||
|
||
/* alt recolor the primary elements of an icon */
|
||
.jp-icon-alt .jp-icon0[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon1[fill] {
|
||
fill: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon2[fill] {
|
||
fill: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon3[fill] {
|
||
fill: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon4[fill] {
|
||
fill: var(--jp-layout-color4);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon0[stroke] {
|
||
stroke: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon1[stroke] {
|
||
stroke: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon2[stroke] {
|
||
stroke: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon3[stroke] {
|
||
stroke: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon4[stroke] {
|
||
stroke: var(--jp-layout-color4);
|
||
}
|
||
|
||
/* alt recolor the accent elements of an icon */
|
||
.jp-icon-alt .jp-icon-accent0[fill] {
|
||
fill: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent1[fill] {
|
||
fill: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent2[fill] {
|
||
fill: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent3[fill] {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent4[fill] {
|
||
fill: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent0[stroke] {
|
||
stroke: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent1[stroke] {
|
||
stroke: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent2[stroke] {
|
||
stroke: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent3[stroke] {
|
||
stroke: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-alt .jp-icon-accent4[stroke] {
|
||
stroke: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-icon-hoverShow:not(:hover) .jp-icon-hoverShow-content {
|
||
display: none !important;
|
||
}
|
||
|
||
/**
|
||
* Support for hover colors for icons as inline SVG HTMLElements
|
||
*/
|
||
|
||
/**
|
||
* regular colors
|
||
*/
|
||
|
||
/* recolor the primary elements of an icon */
|
||
.jp-icon-hover :hover .jp-icon0-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon1-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon2-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon3-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon4-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon0-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon1-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon2-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon3-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon4-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
/* recolor the accent elements of an icon */
|
||
.jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
|
||
fill: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
|
||
fill: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
|
||
fill: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
|
||
fill: var(--jp-layout-color4);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
|
||
stroke: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
|
||
stroke: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
|
||
stroke: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
|
||
stroke: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
|
||
stroke: var(--jp-layout-color4);
|
||
}
|
||
|
||
/* set the color of an icon to transparent */
|
||
.jp-icon-hover :hover .jp-icon-none-hover[fill] {
|
||
fill: none;
|
||
}
|
||
|
||
.jp-icon-hover :hover .jp-icon-none-hover[stroke] {
|
||
stroke: none;
|
||
}
|
||
|
||
/**
|
||
* inverse colors
|
||
*/
|
||
|
||
/* inverse recolor the primary elements of an icon */
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
|
||
fill: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
|
||
fill: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
|
||
fill: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
|
||
fill: var(--jp-layout-color4);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
|
||
stroke: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
|
||
stroke: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
|
||
stroke: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
|
||
stroke: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
|
||
stroke: var(--jp-layout-color4);
|
||
}
|
||
|
||
/* inverse recolor the accent elements of an icon */
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
|
||
fill: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color0);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color2);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
|
||
stroke: var(--jp-inverse-layout-color4);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-IFrame {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-IFrame > iframe {
|
||
border: none;
|
||
}
|
||
|
||
/*
|
||
When drag events occur, `lm-mod-override-cursor` is added to the body.
|
||
Because iframes steal all cursor events, the following two rules are necessary
|
||
to suppress pointer events while resize drags are occurring. There may be a
|
||
better solution to this problem.
|
||
*/
|
||
body.lm-mod-override-cursor .jp-IFrame {
|
||
position: relative;
|
||
}
|
||
|
||
body.lm-mod-override-cursor .jp-IFrame::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: transparent;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2016, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-HoverBox {
|
||
position: fixed;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-FormGroup-content fieldset {
|
||
border: none;
|
||
padding: 0;
|
||
min-width: 0;
|
||
width: 100%;
|
||
}
|
||
|
||
/* stylelint-disable selector-max-type */
|
||
|
||
.jp-FormGroup-content fieldset .jp-inputFieldWrapper input,
|
||
.jp-FormGroup-content fieldset .jp-inputFieldWrapper select,
|
||
.jp-FormGroup-content fieldset .jp-inputFieldWrapper textarea {
|
||
font-size: var(--jp-content-font-size2);
|
||
border-color: var(--jp-input-border-color);
|
||
border-style: solid;
|
||
border-radius: var(--jp-border-radius);
|
||
border-width: 1px;
|
||
padding: 6px 8px;
|
||
background: none;
|
||
color: var(--jp-ui-font-color0);
|
||
height: inherit;
|
||
}
|
||
|
||
.jp-FormGroup-content fieldset input[type='checkbox'] {
|
||
position: relative;
|
||
top: 2px;
|
||
margin-left: 0;
|
||
}
|
||
|
||
.jp-FormGroup-content button.jp-mod-styled {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-FormGroup-content .checkbox label {
|
||
cursor: pointer;
|
||
font-size: var(--jp-content-font-size1);
|
||
}
|
||
|
||
.jp-FormGroup-content .jp-root > fieldset > legend {
|
||
display: none;
|
||
}
|
||
|
||
.jp-FormGroup-content .jp-root > fieldset > p {
|
||
display: none;
|
||
}
|
||
|
||
/** copy of `input.jp-mod-styled:focus` style */
|
||
.jp-FormGroup-content fieldset input:focus,
|
||
.jp-FormGroup-content fieldset select:focus {
|
||
-moz-outline-radius: unset;
|
||
outline: var(--jp-border-width) solid var(--md-blue-500);
|
||
outline-offset: -1px;
|
||
box-shadow: inset 0 0 4px var(--md-blue-300);
|
||
}
|
||
|
||
.jp-FormGroup-content fieldset input:hover:not(:focus),
|
||
.jp-FormGroup-content fieldset select:hover:not(:focus) {
|
||
background-color: var(--jp-border-color2);
|
||
}
|
||
|
||
/* stylelint-enable selector-max-type */
|
||
|
||
.jp-FormGroup-content .checkbox .field-description {
|
||
/* Disable default description field for checkbox:
|
||
because other widgets do not have description fields,
|
||
we add descriptions to each widget on the field level.
|
||
*/
|
||
display: none;
|
||
}
|
||
|
||
.jp-FormGroup-content #root__description {
|
||
display: none;
|
||
}
|
||
|
||
.jp-FormGroup-content .jp-modifiedIndicator {
|
||
width: 5px;
|
||
background-color: var(--jp-brand-color2);
|
||
margin-top: 0;
|
||
margin-left: calc(var(--jp-private-settingeditor-modifier-indent) * -1);
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.jp-FormGroup-content .jp-modifiedIndicator.jp-errorIndicator {
|
||
background-color: var(--jp-error-color0);
|
||
margin-right: 0.5em;
|
||
}
|
||
|
||
/* RJSF ARRAY style */
|
||
|
||
.jp-arrayFieldWrapper legend {
|
||
font-size: var(--jp-content-font-size2);
|
||
color: var(--jp-ui-font-color0);
|
||
flex-basis: 100%;
|
||
padding: 4px 0;
|
||
font-weight: var(--jp-content-heading-font-weight);
|
||
border-bottom: 1px solid var(--jp-border-color2);
|
||
}
|
||
|
||
.jp-arrayFieldWrapper .field-description {
|
||
padding: 4px 0;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.jp-arrayFieldWrapper .array-item {
|
||
width: 100%;
|
||
border: 1px solid var(--jp-border-color2);
|
||
border-radius: 4px;
|
||
margin: 4px;
|
||
}
|
||
|
||
.jp-ArrayOperations {
|
||
display: flex;
|
||
margin-left: 8px;
|
||
}
|
||
|
||
.jp-ArrayOperationsButton {
|
||
margin: 2px;
|
||
}
|
||
|
||
.jp-ArrayOperationsButton .jp-icon3[fill] {
|
||
fill: var(--jp-ui-font-color0);
|
||
}
|
||
|
||
button.jp-ArrayOperationsButton.jp-mod-styled:disabled {
|
||
cursor: not-allowed;
|
||
opacity: 0.5;
|
||
}
|
||
|
||
/* RJSF form validation error */
|
||
|
||
.jp-FormGroup-content .validationErrors {
|
||
color: var(--jp-error-color0);
|
||
}
|
||
|
||
/* Hide panel level error as duplicated the field level error */
|
||
.jp-FormGroup-content .panel.errors {
|
||
display: none;
|
||
}
|
||
|
||
/* RJSF normal content (settings-editor) */
|
||
|
||
.jp-FormGroup-contentNormal {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .jp-FormGroup-contentItem {
|
||
margin-left: 7px;
|
||
color: var(--jp-ui-font-color0);
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .jp-FormGroup-description {
|
||
flex-basis: 100%;
|
||
padding: 4px 7px;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .jp-FormGroup-default {
|
||
flex-basis: 100%;
|
||
padding: 4px 7px;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .jp-FormGroup-fieldLabel {
|
||
font-size: var(--jp-content-font-size1);
|
||
font-weight: normal;
|
||
min-width: 120px;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal fieldset:not(:first-child) {
|
||
margin-left: 7px;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .field-array-of-string .array-item {
|
||
/* Display `jp-ArrayOperations` buttons side-by-side with content except
|
||
for small screens where flex-wrap will place them one below the other.
|
||
*/
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.jp-FormGroup-contentNormal .jp-objectFieldWrapper .form-group {
|
||
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
|
||
margin-top: 2px;
|
||
}
|
||
|
||
/* RJSF compact content (metadata-form) */
|
||
|
||
.jp-FormGroup-content.jp-FormGroup-contentCompact {
|
||
width: 100%;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact .form-group {
|
||
display: flex;
|
||
padding: 0.5em 0.2em 0.5em 0;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact
|
||
.jp-FormGroup-compactTitle
|
||
.jp-FormGroup-description {
|
||
font-size: var(--jp-ui-font-size1);
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact .jp-FormGroup-fieldLabel {
|
||
padding-bottom: 0.3em;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact .jp-inputFieldWrapper .form-control {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact .jp-arrayFieldWrapper .jp-FormGroup-compactTitle {
|
||
padding-bottom: 7px;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact
|
||
.jp-objectFieldWrapper
|
||
.jp-objectFieldWrapper
|
||
.form-group {
|
||
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
|
||
margin-top: 2px;
|
||
}
|
||
|
||
.jp-FormGroup-contentCompact ul.error-detail {
|
||
margin-block-start: 0.5em;
|
||
margin-block-end: 0.5em;
|
||
padding-inline-start: 1em;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.jp-SidePanel {
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-width: var(--jp-sidebar-min-width);
|
||
overflow-y: auto;
|
||
color: var(--jp-ui-font-color1);
|
||
background: var(--jp-layout-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
}
|
||
|
||
.jp-SidePanel-header {
|
||
flex: 0 0 auto;
|
||
display: flex;
|
||
border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
|
||
font-size: var(--jp-ui-font-size0);
|
||
font-weight: 600;
|
||
letter-spacing: 1px;
|
||
margin: 0;
|
||
padding: 2px;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.jp-SidePanel-toolbar {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.jp-SidePanel-content {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
.jp-SidePanel-toolbar,
|
||
.jp-AccordionPanel-toolbar {
|
||
height: var(--jp-private-toolbar-height);
|
||
}
|
||
|
||
.jp-SidePanel-toolbar.jp-Toolbar-micro {
|
||
display: none;
|
||
}
|
||
|
||
.lm-AccordionPanel .jp-AccordionPanel-title {
|
||
box-sizing: border-box;
|
||
line-height: 25px;
|
||
margin: 0;
|
||
display: flex;
|
||
align-items: center;
|
||
background: var(--jp-layout-color1);
|
||
color: var(--jp-ui-font-color1);
|
||
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
|
||
box-shadow: var(--jp-toolbar-box-shadow);
|
||
font-size: var(--jp-ui-font-size0);
|
||
}
|
||
|
||
.jp-AccordionPanel-title {
|
||
cursor: pointer;
|
||
user-select: none;
|
||
-moz-user-select: none;
|
||
-webkit-user-select: none;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.lm-AccordionPanel[data-orientation='horizontal'] > .jp-AccordionPanel-title {
|
||
/* Title is rotated for horizontal accordion panel using CSS */
|
||
display: block;
|
||
transform-origin: top left;
|
||
transform: rotate(-90deg) translate(-100%);
|
||
}
|
||
|
||
.jp-AccordionPanel-title .lm-AccordionPanel-titleLabel {
|
||
user-select: none;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.jp-AccordionPanel-title .lm-AccordionPanel-titleCollapser {
|
||
transform: rotate(-90deg);
|
||
margin: auto 0;
|
||
height: 16px;
|
||
}
|
||
|
||
.jp-AccordionPanel-title.lm-mod-expanded .lm-AccordionPanel-titleCollapser {
|
||
transform: rotate(0deg);
|
||
}
|
||
|
||
.lm-AccordionPanel .jp-AccordionPanel-toolbar {
|
||
background: none;
|
||
box-shadow: none;
|
||
border: none;
|
||
margin-left: auto;
|
||
}
|
||
|
||
.lm-AccordionPanel .lm-SplitPanel-handle:hover {
|
||
background: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-text-truncated {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2017, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Spinner {
|
||
position: absolute;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
left: 0;
|
||
top: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: var(--jp-layout-color0);
|
||
outline: none;
|
||
}
|
||
|
||
.jp-SpinnerContent {
|
||
font-size: 10px;
|
||
margin: 50px auto;
|
||
text-indent: -9999em;
|
||
width: 3em;
|
||
height: 3em;
|
||
border-radius: 50%;
|
||
background: var(--jp-brand-color3);
|
||
background: linear-gradient(
|
||
to right,
|
||
#f37626 10%,
|
||
rgba(255, 255, 255, 0) 42%
|
||
);
|
||
position: relative;
|
||
animation: load3 1s infinite linear, fadeIn 1s;
|
||
}
|
||
|
||
.jp-SpinnerContent::before {
|
||
width: 50%;
|
||
height: 50%;
|
||
background: #f37626;
|
||
border-radius: 100% 0 0;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
content: '';
|
||
}
|
||
|
||
.jp-SpinnerContent::after {
|
||
background: var(--jp-layout-color0);
|
||
width: 75%;
|
||
height: 75%;
|
||
border-radius: 50%;
|
||
content: '';
|
||
margin: auto;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
bottom: 0;
|
||
right: 0;
|
||
}
|
||
|
||
@keyframes fadeIn {
|
||
0% {
|
||
opacity: 0;
|
||
}
|
||
|
||
100% {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
@keyframes load3 {
|
||
0% {
|
||
transform: rotate(0deg);
|
||
}
|
||
|
||
100% {
|
||
transform: rotate(360deg);
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2017, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
button.jp-mod-styled {
|
||
font-size: var(--jp-ui-font-size1);
|
||
color: var(--jp-ui-font-color0);
|
||
border: none;
|
||
box-sizing: border-box;
|
||
text-align: center;
|
||
line-height: 32px;
|
||
height: 32px;
|
||
padding: 0 12px;
|
||
letter-spacing: 0.8px;
|
||
outline: none;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
}
|
||
|
||
input.jp-mod-styled {
|
||
background: var(--jp-input-background);
|
||
height: 28px;
|
||
box-sizing: border-box;
|
||
border: var(--jp-border-width) solid var(--jp-border-color1);
|
||
padding-left: 7px;
|
||
padding-right: 7px;
|
||
font-size: var(--jp-ui-font-size2);
|
||
color: var(--jp-ui-font-color0);
|
||
outline: none;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
}
|
||
|
||
input[type='checkbox'].jp-mod-styled {
|
||
appearance: checkbox;
|
||
-webkit-appearance: checkbox;
|
||
-moz-appearance: checkbox;
|
||
height: auto;
|
||
}
|
||
|
||
input.jp-mod-styled:focus {
|
||
border: var(--jp-border-width) solid var(--md-blue-500);
|
||
box-shadow: inset 0 0 4px var(--md-blue-300);
|
||
}
|
||
|
||
.jp-select-wrapper {
|
||
display: flex;
|
||
position: relative;
|
||
flex-direction: column;
|
||
padding: 1px;
|
||
background-color: var(--jp-layout-color1);
|
||
box-sizing: border-box;
|
||
margin-bottom: 12px;
|
||
}
|
||
|
||
.jp-select-wrapper:not(.multiple) {
|
||
height: 28px;
|
||
}
|
||
|
||
.jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
|
||
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
|
||
box-shadow: var(--jp-input-box-shadow);
|
||
background-color: var(--jp-input-active-background);
|
||
}
|
||
|
||
select.jp-mod-styled:hover {
|
||
cursor: pointer;
|
||
color: var(--jp-ui-font-color0);
|
||
background-color: var(--jp-input-hover-background);
|
||
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
select.jp-mod-styled {
|
||
flex: 1 1 auto;
|
||
width: 100%;
|
||
font-size: var(--jp-ui-font-size2);
|
||
background: var(--jp-input-background);
|
||
color: var(--jp-ui-font-color0);
|
||
padding: 0 25px 0 8px;
|
||
border: var(--jp-border-width) solid var(--jp-input-border-color);
|
||
border-radius: 0;
|
||
outline: none;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
}
|
||
|
||
select.jp-mod-styled:not([multiple]) {
|
||
height: 32px;
|
||
}
|
||
|
||
select.jp-mod-styled[multiple] {
|
||
max-height: 200px;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-switch {
|
||
display: flex;
|
||
align-items: center;
|
||
padding-left: 4px;
|
||
padding-right: 4px;
|
||
font-size: var(--jp-ui-font-size1);
|
||
background-color: transparent;
|
||
color: var(--jp-ui-font-color1);
|
||
border: none;
|
||
height: 20px;
|
||
}
|
||
|
||
.jp-switch:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-switch-label {
|
||
margin-right: 5px;
|
||
font-family: var(--jp-ui-font-family);
|
||
}
|
||
|
||
.jp-switch-track {
|
||
cursor: pointer;
|
||
background-color: var(--jp-switch-color, var(--jp-border-color1));
|
||
-webkit-transition: 0.4s;
|
||
transition: 0.4s;
|
||
border-radius: 34px;
|
||
height: 16px;
|
||
width: 35px;
|
||
position: relative;
|
||
}
|
||
|
||
.jp-switch-track::before {
|
||
content: '';
|
||
position: absolute;
|
||
height: 10px;
|
||
width: 10px;
|
||
margin: 3px;
|
||
left: 0;
|
||
background-color: var(--jp-ui-inverse-font-color1);
|
||
-webkit-transition: 0.4s;
|
||
transition: 0.4s;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.jp-switch[aria-checked='true'] .jp-switch-track {
|
||
background-color: var(--jp-switch-true-position-color, var(--jp-warn-color0));
|
||
}
|
||
|
||
.jp-switch[aria-checked='true'] .jp-switch-track::before {
|
||
/* track width (35) - margins (3 + 3) - thumb width (10) */
|
||
left: 19px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2016, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-private-toolbar-height: calc(
|
||
28px + var(--jp-border-width)
|
||
); /* leave 28px for content */
|
||
}
|
||
|
||
.jp-Toolbar {
|
||
color: var(--jp-ui-font-color1);
|
||
flex: 0 0 auto;
|
||
display: flex;
|
||
flex-direction: row;
|
||
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
|
||
box-shadow: var(--jp-toolbar-box-shadow);
|
||
background: var(--jp-toolbar-background);
|
||
min-height: var(--jp-toolbar-micro-height);
|
||
padding: 2px;
|
||
z-index: 8;
|
||
overflow-x: hidden;
|
||
}
|
||
|
||
/* Toolbar items */
|
||
|
||
.jp-Toolbar > .jp-Toolbar-item.jp-Toolbar-spacer {
|
||
flex-grow: 1;
|
||
flex-shrink: 1;
|
||
}
|
||
|
||
.jp-Toolbar-item.jp-Toolbar-kernelStatus {
|
||
display: inline-block;
|
||
width: 32px;
|
||
background-repeat: no-repeat;
|
||
background-position: center;
|
||
background-size: 16px;
|
||
}
|
||
|
||
.jp-Toolbar > .jp-Toolbar-item {
|
||
flex: 0 0 auto;
|
||
display: flex;
|
||
padding-left: 1px;
|
||
padding-right: 1px;
|
||
font-size: var(--jp-ui-font-size1);
|
||
line-height: var(--jp-private-toolbar-height);
|
||
height: 100%;
|
||
}
|
||
|
||
/* Toolbar buttons */
|
||
|
||
/* This is the div we use to wrap the react component into a Widget */
|
||
div.jp-ToolbarButton {
|
||
color: transparent;
|
||
border: none;
|
||
box-sizing: border-box;
|
||
outline: none;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
padding: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
button.jp-ToolbarButtonComponent {
|
||
background: var(--jp-layout-color1);
|
||
border: none;
|
||
box-sizing: border-box;
|
||
outline: none;
|
||
appearance: none;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
padding: 0 6px;
|
||
margin: 0;
|
||
height: 24px;
|
||
border-radius: var(--jp-border-radius);
|
||
display: flex;
|
||
align-items: center;
|
||
text-align: center;
|
||
font-size: 14px;
|
||
min-width: unset;
|
||
min-height: unset;
|
||
}
|
||
|
||
button.jp-ToolbarButtonComponent:disabled {
|
||
opacity: 0.4;
|
||
}
|
||
|
||
button.jp-ToolbarButtonComponent > span {
|
||
padding: 0;
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
|
||
font-size: var(--jp-ui-font-size1);
|
||
line-height: 100%;
|
||
padding-left: 2px;
|
||
color: var(--jp-ui-font-color1);
|
||
font-family: var(--jp-ui-font-family);
|
||
}
|
||
|
||
#jp-main-dock-panel[data-mode='single-document']
|
||
.jp-MainAreaWidget
|
||
> .jp-Toolbar.jp-Toolbar-micro {
|
||
padding: 0;
|
||
min-height: 0;
|
||
}
|
||
|
||
#jp-main-dock-panel[data-mode='single-document']
|
||
.jp-MainAreaWidget
|
||
> .jp-Toolbar {
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.jp-WindowedPanel-outer {
|
||
position: relative;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
.jp-WindowedPanel-inner {
|
||
position: relative;
|
||
}
|
||
|
||
.jp-WindowedPanel-window {
|
||
position: absolute;
|
||
left: 0;
|
||
right: 0;
|
||
overflow: visible;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* Sibling imports */
|
||
|
||
body {
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
}
|
||
|
||
/* Disable native link decoration styles everywhere outside of dialog boxes */
|
||
a {
|
||
text-decoration: unset;
|
||
color: unset;
|
||
}
|
||
|
||
a:hover {
|
||
text-decoration: unset;
|
||
color: unset;
|
||
}
|
||
|
||
/* Accessibility for links inside dialog box text */
|
||
.jp-Dialog-content a {
|
||
text-decoration: revert;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
.jp-Dialog-content a:hover {
|
||
text-decoration: revert;
|
||
}
|
||
|
||
/* Styles for ui-components */
|
||
.jp-Button {
|
||
color: var(--jp-ui-font-color2);
|
||
border-radius: var(--jp-border-radius);
|
||
padding: 0 12px;
|
||
font-size: var(--jp-ui-font-size1);
|
||
|
||
/* Copy from blueprint 3 */
|
||
display: inline-flex;
|
||
flex-direction: row;
|
||
border: none;
|
||
cursor: pointer;
|
||
align-items: center;
|
||
justify-content: center;
|
||
text-align: left;
|
||
vertical-align: middle;
|
||
min-height: 30px;
|
||
min-width: 30px;
|
||
}
|
||
|
||
.jp-Button:disabled {
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
.jp-Button:empty {
|
||
padding: 0 !important;
|
||
}
|
||
|
||
.jp-Button.jp-mod-small {
|
||
min-height: 24px;
|
||
min-width: 24px;
|
||
font-size: 12px;
|
||
padding: 0 7px;
|
||
}
|
||
|
||
/* Use our own theme for hover styles */
|
||
.jp-Button.jp-mod-minimal:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-Button.jp-mod-minimal {
|
||
background: none;
|
||
}
|
||
|
||
.jp-InputGroup {
|
||
display: block;
|
||
position: relative;
|
||
}
|
||
|
||
.jp-InputGroup input {
|
||
box-sizing: border-box;
|
||
border: none;
|
||
border-radius: 0;
|
||
background-color: transparent;
|
||
color: var(--jp-ui-font-color0);
|
||
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
|
||
padding-bottom: 0;
|
||
padding-top: 0;
|
||
padding-left: 10px;
|
||
padding-right: 28px;
|
||
position: relative;
|
||
width: 100%;
|
||
-webkit-appearance: none;
|
||
-moz-appearance: none;
|
||
appearance: none;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
height: 30px;
|
||
line-height: 30px;
|
||
outline: none;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
.jp-InputGroup input:focus {
|
||
box-shadow: inset 0 0 0 var(--jp-border-width)
|
||
var(--jp-input-active-box-shadow-color),
|
||
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
|
||
}
|
||
|
||
.jp-InputGroup input:disabled {
|
||
cursor: not-allowed;
|
||
resize: block;
|
||
background-color: var(--jp-layout-color2);
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.jp-InputGroup input:disabled ~ span {
|
||
cursor: not-allowed;
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.jp-InputGroup input::placeholder,
|
||
input::placeholder {
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.jp-InputGroupAction {
|
||
position: absolute;
|
||
bottom: 1px;
|
||
right: 0;
|
||
padding: 6px;
|
||
}
|
||
|
||
.jp-HTMLSelect.jp-DefaultStyle select {
|
||
background-color: initial;
|
||
border: none;
|
||
border-radius: 0;
|
||
box-shadow: none;
|
||
color: var(--jp-ui-font-color0);
|
||
display: block;
|
||
font-size: var(--jp-ui-font-size1);
|
||
font-family: var(--jp-ui-font-family);
|
||
height: 24px;
|
||
line-height: 14px;
|
||
padding: 0 25px 0 10px;
|
||
text-align: left;
|
||
-moz-appearance: none;
|
||
-webkit-appearance: none;
|
||
}
|
||
|
||
.jp-HTMLSelect.jp-DefaultStyle select:disabled {
|
||
background-color: var(--jp-layout-color2);
|
||
color: var(--jp-ui-font-color2);
|
||
cursor: not-allowed;
|
||
resize: block;
|
||
}
|
||
|
||
.jp-HTMLSelect.jp-DefaultStyle select:disabled ~ span {
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
/* Use our own theme for hover and option styles */
|
||
/* stylelint-disable-next-line selector-max-type */
|
||
.jp-HTMLSelect.jp-DefaultStyle select:hover,
|
||
.jp-HTMLSelect.jp-DefaultStyle select > option {
|
||
background-color: var(--jp-layout-color2);
|
||
color: var(--jp-ui-font-color0);
|
||
}
|
||
|
||
select {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Styles
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-StatusBar-Widget {
|
||
display: flex;
|
||
align-items: center;
|
||
background: var(--jp-layout-color2);
|
||
min-height: var(--jp-statusbar-height);
|
||
justify-content: space-between;
|
||
padding: 0 10px;
|
||
}
|
||
|
||
.jp-StatusBar-Left {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.jp-StatusBar-Middle {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.jp-StatusBar-Right {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-direction: row-reverse;
|
||
}
|
||
|
||
.jp-StatusBar-Item {
|
||
max-height: var(--jp-statusbar-height);
|
||
margin: 0 2px;
|
||
height: var(--jp-statusbar-height);
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
color: var(--jp-ui-font-color1);
|
||
padding: 0 6px;
|
||
}
|
||
|
||
.jp-mod-highlighted:hover {
|
||
background-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-mod-clicked {
|
||
background-color: var(--jp-brand-color1);
|
||
}
|
||
|
||
.jp-mod-clicked:hover {
|
||
background-color: var(--jp-brand-color0);
|
||
}
|
||
|
||
.jp-mod-clicked .jp-StatusBar-TextItem {
|
||
color: var(--jp-ui-inverse-font-color1);
|
||
}
|
||
|
||
.jp-StatusBar-HoverItem {
|
||
box-shadow: '0px 4px 4px rgba(0, 0, 0, 0.25)';
|
||
}
|
||
|
||
.jp-StatusBar-TextItem {
|
||
font-size: var(--jp-ui-font-size1);
|
||
font-family: var(--jp-ui-font-family);
|
||
line-height: 24px;
|
||
color: var(--jp-ui-font-color1);
|
||
}
|
||
|
||
.jp-StatusBar-GroupItem {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.jp-Statusbar-ProgressCircle svg {
|
||
display: block;
|
||
margin: 0 auto;
|
||
width: 16px;
|
||
height: 24px;
|
||
align-self: normal;
|
||
}
|
||
|
||
.jp-Statusbar-ProgressCircle path {
|
||
fill: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-Statusbar-ProgressBar-progress-bar {
|
||
height: 10px;
|
||
width: 100px;
|
||
border: solid 0.25px var(--jp-brand-color2);
|
||
border-radius: 3px;
|
||
overflow: hidden;
|
||
align-self: center;
|
||
}
|
||
|
||
.jp-Statusbar-ProgressBar-progress-bar > div {
|
||
background-color: var(--jp-brand-color2);
|
||
background-image: linear-gradient(
|
||
-45deg,
|
||
rgba(255, 255, 255, 0.2) 25%,
|
||
transparent 25%,
|
||
transparent 50%,
|
||
rgba(255, 255, 255, 0.2) 50%,
|
||
rgba(255, 255, 255, 0.2) 75%,
|
||
transparent 75%,
|
||
transparent
|
||
);
|
||
background-size: 40px 40px;
|
||
float: left;
|
||
width: 0%;
|
||
height: 100%;
|
||
font-size: 12px;
|
||
line-height: 14px;
|
||
color: #fff;
|
||
text-align: center;
|
||
animation: jp-Statusbar-ExecutionTime-progress-bar 2s linear infinite;
|
||
}
|
||
|
||
.jp-Statusbar-ProgressBar-progress-bar p {
|
||
color: var(--jp-ui-font-color1);
|
||
font-family: var(--jp-ui-font-family);
|
||
font-size: var(--jp-ui-font-size1);
|
||
line-height: 10px;
|
||
width: 100px;
|
||
}
|
||
|
||
@keyframes jp-Statusbar-ExecutionTime-progress-bar {
|
||
0% {
|
||
background-position: 0 0;
|
||
}
|
||
|
||
100% {
|
||
background-position: 40px 40px;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-private-commandpalette-search-height: 28px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Overall styles
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-CommandPalette {
|
||
padding-bottom: 0;
|
||
color: var(--jp-ui-font-color1);
|
||
background: var(--jp-layout-color1);
|
||
|
||
/* This is needed so that all font sizing of children done in ems is
|
||
* relative to this base size */
|
||
font-size: var(--jp-ui-font-size1);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Modal variant
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-ModalCommandPalette {
|
||
position: absolute;
|
||
z-index: 10000;
|
||
top: 38px;
|
||
left: 30%;
|
||
margin: 0;
|
||
padding: 4px;
|
||
width: 40%;
|
||
box-shadow: var(--jp-elevation-z4);
|
||
border-radius: 4px;
|
||
background: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-ModalCommandPalette .lm-CommandPalette {
|
||
max-height: 40vh;
|
||
}
|
||
|
||
.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
|
||
display: none;
|
||
}
|
||
|
||
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
|
||
display: none;
|
||
}
|
||
|
||
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
|
||
margin-left: 4px;
|
||
margin-right: 4px;
|
||
}
|
||
|
||
.jp-ModalCommandPalette
|
||
.lm-CommandPalette
|
||
.lm-CommandPalette-item.lm-mod-disabled {
|
||
display: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Search
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-CommandPalette-search {
|
||
padding: 4px;
|
||
background-color: var(--jp-layout-color1);
|
||
z-index: 2;
|
||
}
|
||
|
||
.lm-CommandPalette-wrapper {
|
||
overflow: overlay;
|
||
padding: 0 9px;
|
||
background-color: var(--jp-input-active-background);
|
||
height: 30px;
|
||
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
|
||
}
|
||
|
||
.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
|
||
box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
|
||
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
|
||
}
|
||
|
||
.jp-SearchIconGroup {
|
||
color: white;
|
||
background-color: var(--jp-brand-color1);
|
||
position: absolute;
|
||
top: 4px;
|
||
right: 4px;
|
||
padding: 5px 5px 1px;
|
||
}
|
||
|
||
.jp-SearchIconGroup svg {
|
||
height: 20px;
|
||
width: 20px;
|
||
}
|
||
|
||
.jp-SearchIconGroup .jp-icon3[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.lm-CommandPalette-input {
|
||
background: transparent;
|
||
width: calc(100% - 18px);
|
||
float: left;
|
||
border: none;
|
||
outline: none;
|
||
font-size: var(--jp-ui-font-size1);
|
||
color: var(--jp-ui-font-color0);
|
||
line-height: var(--jp-private-commandpalette-search-height);
|
||
}
|
||
|
||
.lm-CommandPalette-input::-webkit-input-placeholder,
|
||
.lm-CommandPalette-input::-moz-placeholder,
|
||
.lm-CommandPalette-input:-ms-input-placeholder {
|
||
color: var(--jp-ui-font-color2);
|
||
font-size: var(--jp-ui-font-size1);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Results
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-CommandPalette-header:first-child {
|
||
margin-top: 0;
|
||
}
|
||
|
||
.lm-CommandPalette-header {
|
||
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
|
||
color: var(--jp-ui-font-color1);
|
||
cursor: pointer;
|
||
display: flex;
|
||
font-size: var(--jp-ui-font-size0);
|
||
font-weight: 600;
|
||
letter-spacing: 1px;
|
||
margin-top: 8px;
|
||
padding: 8px 0 8px 12px;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
.lm-CommandPalette-header.lm-mod-active {
|
||
background: var(--jp-layout-color2);
|
||
}
|
||
|
||
.lm-CommandPalette-header > mark {
|
||
background-color: transparent;
|
||
font-weight: bold;
|
||
color: var(--jp-ui-font-color1);
|
||
}
|
||
|
||
.lm-CommandPalette-item {
|
||
padding: 4px 12px 4px 4px;
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
font-weight: 400;
|
||
display: flex;
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-disabled {
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-active {
|
||
color: var(--jp-ui-inverse-font-color1);
|
||
background: var(--jp-brand-color1);
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
|
||
color: var(--jp-ui-inverse-font-color0);
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
|
||
fill: var(--jp-layout-color0);
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
|
||
color: var(--jp-ui-inverse-font-color1);
|
||
background: var(--jp-brand-color1);
|
||
}
|
||
|
||
.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
|
||
background: var(--jp-layout-color2);
|
||
}
|
||
|
||
.lm-CommandPalette-itemContent {
|
||
overflow: hidden;
|
||
}
|
||
|
||
.lm-CommandPalette-itemLabel > mark {
|
||
color: var(--jp-ui-font-color0);
|
||
background-color: transparent;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-disabled mark {
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.lm-CommandPalette-item .lm-CommandPalette-itemIcon {
|
||
margin: 0 4px 0 0;
|
||
position: relative;
|
||
width: 16px;
|
||
top: 2px;
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
|
||
opacity: 0.6;
|
||
}
|
||
|
||
.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.lm-CommandPalette-itemCaption {
|
||
display: none;
|
||
}
|
||
|
||
.lm-CommandPalette-content {
|
||
background-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.lm-CommandPalette-content:empty::after {
|
||
content: 'No results';
|
||
margin: auto;
|
||
margin-top: 20px;
|
||
width: 100px;
|
||
display: block;
|
||
font-size: var(--jp-ui-font-size2);
|
||
font-family: var(--jp-ui-font-family);
|
||
font-weight: lighter;
|
||
}
|
||
|
||
.lm-CommandPalette-emptyMessage {
|
||
text-align: center;
|
||
margin-top: 24px;
|
||
line-height: 1.32;
|
||
padding: 0 8px;
|
||
color: var(--jp-content-font-color3);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2017, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Dialog {
|
||
position: absolute;
|
||
z-index: 10000;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
top: 0;
|
||
left: 0;
|
||
margin: 0;
|
||
padding: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: var(--jp-dialog-background);
|
||
}
|
||
|
||
.jp-Dialog-content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
background: var(--jp-layout-color1);
|
||
padding: 24px 24px 12px;
|
||
min-width: 300px;
|
||
min-height: 150px;
|
||
max-width: 1000px;
|
||
max-height: 500px;
|
||
box-sizing: border-box;
|
||
box-shadow: var(--jp-elevation-z20);
|
||
word-wrap: break-word;
|
||
border-radius: var(--jp-border-radius);
|
||
|
||
/* This is needed so that all font sizing of children done in ems is
|
||
* relative to this base size */
|
||
font-size: var(--jp-ui-font-size1);
|
||
color: var(--jp-ui-font-color1);
|
||
resize: both;
|
||
}
|
||
|
||
.jp-Dialog-content.jp-Dialog-content-small {
|
||
max-width: 500px;
|
||
}
|
||
|
||
.jp-Dialog-button {
|
||
overflow: visible;
|
||
}
|
||
|
||
button.jp-Dialog-button:focus {
|
||
outline: 1px solid var(--jp-brand-color1);
|
||
outline-offset: 4px;
|
||
-moz-outline-radius: 0;
|
||
}
|
||
|
||
button.jp-Dialog-button:focus::-moz-focus-inner {
|
||
border: 0;
|
||
}
|
||
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
|
||
outline-offset: 4px;
|
||
-moz-outline-radius: 0;
|
||
}
|
||
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {
|
||
outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));
|
||
}
|
||
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {
|
||
outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));
|
||
}
|
||
|
||
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
|
||
outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600));
|
||
}
|
||
|
||
button.jp-Dialog-close-button {
|
||
padding: 0;
|
||
height: 100%;
|
||
min-width: unset;
|
||
min-height: unset;
|
||
}
|
||
|
||
.jp-Dialog-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
flex: 0 0 auto;
|
||
padding-bottom: 12px;
|
||
font-size: var(--jp-ui-font-size3);
|
||
font-weight: 400;
|
||
color: var(--jp-ui-font-color1);
|
||
}
|
||
|
||
.jp-Dialog-body {
|
||
display: flex;
|
||
flex-direction: column;
|
||
flex: 1 1 auto;
|
||
font-size: var(--jp-ui-font-size1);
|
||
background: var(--jp-layout-color1);
|
||
color: var(--jp-ui-font-color1);
|
||
overflow: auto;
|
||
}
|
||
|
||
.jp-Dialog-footer {
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: flex-end;
|
||
align-items: center;
|
||
flex: 0 0 auto;
|
||
margin-left: -12px;
|
||
margin-right: -12px;
|
||
padding: 12px;
|
||
}
|
||
|
||
.jp-Dialog-checkbox {
|
||
padding-right: 5px;
|
||
}
|
||
|
||
.jp-Dialog-checkbox > input:focus-visible {
|
||
outline: 1px solid var(--jp-input-active-border-color);
|
||
outline-offset: 1px;
|
||
}
|
||
|
||
.jp-Dialog-spacer {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
.jp-Dialog-title {
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.jp-Dialog-body > .jp-select-wrapper {
|
||
width: 100%;
|
||
}
|
||
|
||
.jp-Dialog-body > button {
|
||
padding: 0 16px;
|
||
}
|
||
|
||
.jp-Dialog-body > label {
|
||
line-height: 1.4;
|
||
color: var(--jp-ui-font-color0);
|
||
}
|
||
|
||
.jp-Dialog-button.jp-mod-styled:not(:last-child) {
|
||
margin-right: 12px;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.jp-Input-Boolean-Dialog {
|
||
flex-direction: row-reverse;
|
||
align-items: end;
|
||
width: 100%;
|
||
}
|
||
|
||
.jp-Input-Boolean-Dialog > label {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2016, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-MainAreaWidget > :focus {
|
||
outline: none;
|
||
}
|
||
|
||
.jp-MainAreaWidget .jp-MainAreaWidget-error {
|
||
padding: 6px;
|
||
}
|
||
|
||
.jp-MainAreaWidget .jp-MainAreaWidget-error > pre {
|
||
width: auto;
|
||
padding: 10px;
|
||
background: var(--jp-error-color3);
|
||
border: var(--jp-border-width) solid var(--jp-error-color1);
|
||
border-radius: var(--jp-border-radius);
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
white-space: pre-wrap;
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/**
|
||
* google-material-color v1.2.6
|
||
* https://github.com/danlevan/google-material-color
|
||
*/
|
||
:root {
|
||
--md-red-50: #ffebee;
|
||
--md-red-100: #ffcdd2;
|
||
--md-red-200: #ef9a9a;
|
||
--md-red-300: #e57373;
|
||
--md-red-400: #ef5350;
|
||
--md-red-500: #f44336;
|
||
--md-red-600: #e53935;
|
||
--md-red-700: #d32f2f;
|
||
--md-red-800: #c62828;
|
||
--md-red-900: #b71c1c;
|
||
--md-red-A100: #ff8a80;
|
||
--md-red-A200: #ff5252;
|
||
--md-red-A400: #ff1744;
|
||
--md-red-A700: #d50000;
|
||
--md-pink-50: #fce4ec;
|
||
--md-pink-100: #f8bbd0;
|
||
--md-pink-200: #f48fb1;
|
||
--md-pink-300: #f06292;
|
||
--md-pink-400: #ec407a;
|
||
--md-pink-500: #e91e63;
|
||
--md-pink-600: #d81b60;
|
||
--md-pink-700: #c2185b;
|
||
--md-pink-800: #ad1457;
|
||
--md-pink-900: #880e4f;
|
||
--md-pink-A100: #ff80ab;
|
||
--md-pink-A200: #ff4081;
|
||
--md-pink-A400: #f50057;
|
||
--md-pink-A700: #c51162;
|
||
--md-purple-50: #f3e5f5;
|
||
--md-purple-100: #e1bee7;
|
||
--md-purple-200: #ce93d8;
|
||
--md-purple-300: #ba68c8;
|
||
--md-purple-400: #ab47bc;
|
||
--md-purple-500: #9c27b0;
|
||
--md-purple-600: #8e24aa;
|
||
--md-purple-700: #7b1fa2;
|
||
--md-purple-800: #6a1b9a;
|
||
--md-purple-900: #4a148c;
|
||
--md-purple-A100: #ea80fc;
|
||
--md-purple-A200: #e040fb;
|
||
--md-purple-A400: #d500f9;
|
||
--md-purple-A700: #a0f;
|
||
--md-deep-purple-50: #ede7f6;
|
||
--md-deep-purple-100: #d1c4e9;
|
||
--md-deep-purple-200: #b39ddb;
|
||
--md-deep-purple-300: #9575cd;
|
||
--md-deep-purple-400: #7e57c2;
|
||
--md-deep-purple-500: #673ab7;
|
||
--md-deep-purple-600: #5e35b1;
|
||
--md-deep-purple-700: #512da8;
|
||
--md-deep-purple-800: #4527a0;
|
||
--md-deep-purple-900: #311b92;
|
||
--md-deep-purple-A100: #b388ff;
|
||
--md-deep-purple-A200: #7c4dff;
|
||
--md-deep-purple-A400: #651fff;
|
||
--md-deep-purple-A700: #6200ea;
|
||
--md-indigo-50: #e8eaf6;
|
||
--md-indigo-100: #c5cae9;
|
||
--md-indigo-200: #9fa8da;
|
||
--md-indigo-300: #7986cb;
|
||
--md-indigo-400: #5c6bc0;
|
||
--md-indigo-500: #3f51b5;
|
||
--md-indigo-600: #3949ab;
|
||
--md-indigo-700: #303f9f;
|
||
--md-indigo-800: #283593;
|
||
--md-indigo-900: #1a237e;
|
||
--md-indigo-A100: #8c9eff;
|
||
--md-indigo-A200: #536dfe;
|
||
--md-indigo-A400: #3d5afe;
|
||
--md-indigo-A700: #304ffe;
|
||
--md-blue-50: #e3f2fd;
|
||
--md-blue-100: #bbdefb;
|
||
--md-blue-200: #90caf9;
|
||
--md-blue-300: #64b5f6;
|
||
--md-blue-400: #42a5f5;
|
||
--md-blue-500: #2196f3;
|
||
--md-blue-600: #1e88e5;
|
||
--md-blue-700: #1976d2;
|
||
--md-blue-800: #1565c0;
|
||
--md-blue-900: #0d47a1;
|
||
--md-blue-A100: #82b1ff;
|
||
--md-blue-A200: #448aff;
|
||
--md-blue-A400: #2979ff;
|
||
--md-blue-A700: #2962ff;
|
||
--md-light-blue-50: #e1f5fe;
|
||
--md-light-blue-100: #b3e5fc;
|
||
--md-light-blue-200: #81d4fa;
|
||
--md-light-blue-300: #4fc3f7;
|
||
--md-light-blue-400: #29b6f6;
|
||
--md-light-blue-500: #03a9f4;
|
||
--md-light-blue-600: #039be5;
|
||
--md-light-blue-700: #0288d1;
|
||
--md-light-blue-800: #0277bd;
|
||
--md-light-blue-900: #01579b;
|
||
--md-light-blue-A100: #80d8ff;
|
||
--md-light-blue-A200: #40c4ff;
|
||
--md-light-blue-A400: #00b0ff;
|
||
--md-light-blue-A700: #0091ea;
|
||
--md-cyan-50: #e0f7fa;
|
||
--md-cyan-100: #b2ebf2;
|
||
--md-cyan-200: #80deea;
|
||
--md-cyan-300: #4dd0e1;
|
||
--md-cyan-400: #26c6da;
|
||
--md-cyan-500: #00bcd4;
|
||
--md-cyan-600: #00acc1;
|
||
--md-cyan-700: #0097a7;
|
||
--md-cyan-800: #00838f;
|
||
--md-cyan-900: #006064;
|
||
--md-cyan-A100: #84ffff;
|
||
--md-cyan-A200: #18ffff;
|
||
--md-cyan-A400: #00e5ff;
|
||
--md-cyan-A700: #00b8d4;
|
||
--md-teal-50: #e0f2f1;
|
||
--md-teal-100: #b2dfdb;
|
||
--md-teal-200: #80cbc4;
|
||
--md-teal-300: #4db6ac;
|
||
--md-teal-400: #26a69a;
|
||
--md-teal-500: #009688;
|
||
--md-teal-600: #00897b;
|
||
--md-teal-700: #00796b;
|
||
--md-teal-800: #00695c;
|
||
--md-teal-900: #004d40;
|
||
--md-teal-A100: #a7ffeb;
|
||
--md-teal-A200: #64ffda;
|
||
--md-teal-A400: #1de9b6;
|
||
--md-teal-A700: #00bfa5;
|
||
--md-green-50: #e8f5e9;
|
||
--md-green-100: #c8e6c9;
|
||
--md-green-200: #a5d6a7;
|
||
--md-green-300: #81c784;
|
||
--md-green-400: #66bb6a;
|
||
--md-green-500: #4caf50;
|
||
--md-green-600: #43a047;
|
||
--md-green-700: #388e3c;
|
||
--md-green-800: #2e7d32;
|
||
--md-green-900: #1b5e20;
|
||
--md-green-A100: #b9f6ca;
|
||
--md-green-A200: #69f0ae;
|
||
--md-green-A400: #00e676;
|
||
--md-green-A700: #00c853;
|
||
--md-light-green-50: #f1f8e9;
|
||
--md-light-green-100: #dcedc8;
|
||
--md-light-green-200: #c5e1a5;
|
||
--md-light-green-300: #aed581;
|
||
--md-light-green-400: #9ccc65;
|
||
--md-light-green-500: #8bc34a;
|
||
--md-light-green-600: #7cb342;
|
||
--md-light-green-700: #689f38;
|
||
--md-light-green-800: #558b2f;
|
||
--md-light-green-900: #33691e;
|
||
--md-light-green-A100: #ccff90;
|
||
--md-light-green-A200: #b2ff59;
|
||
--md-light-green-A400: #76ff03;
|
||
--md-light-green-A700: #64dd17;
|
||
--md-lime-50: #f9fbe7;
|
||
--md-lime-100: #f0f4c3;
|
||
--md-lime-200: #e6ee9c;
|
||
--md-lime-300: #dce775;
|
||
--md-lime-400: #d4e157;
|
||
--md-lime-500: #cddc39;
|
||
--md-lime-600: #c0ca33;
|
||
--md-lime-700: #afb42b;
|
||
--md-lime-800: #9e9d24;
|
||
--md-lime-900: #827717;
|
||
--md-lime-A100: #f4ff81;
|
||
--md-lime-A200: #eeff41;
|
||
--md-lime-A400: #c6ff00;
|
||
--md-lime-A700: #aeea00;
|
||
--md-yellow-50: #fffde7;
|
||
--md-yellow-100: #fff9c4;
|
||
--md-yellow-200: #fff59d;
|
||
--md-yellow-300: #fff176;
|
||
--md-yellow-400: #ffee58;
|
||
--md-yellow-500: #ffeb3b;
|
||
--md-yellow-600: #fdd835;
|
||
--md-yellow-700: #fbc02d;
|
||
--md-yellow-800: #f9a825;
|
||
--md-yellow-900: #f57f17;
|
||
--md-yellow-A100: #ffff8d;
|
||
--md-yellow-A200: #ff0;
|
||
--md-yellow-A400: #ffea00;
|
||
--md-yellow-A700: #ffd600;
|
||
--md-amber-50: #fff8e1;
|
||
--md-amber-100: #ffecb3;
|
||
--md-amber-200: #ffe082;
|
||
--md-amber-300: #ffd54f;
|
||
--md-amber-400: #ffca28;
|
||
--md-amber-500: #ffc107;
|
||
--md-amber-600: #ffb300;
|
||
--md-amber-700: #ffa000;
|
||
--md-amber-800: #ff8f00;
|
||
--md-amber-900: #ff6f00;
|
||
--md-amber-A100: #ffe57f;
|
||
--md-amber-A200: #ffd740;
|
||
--md-amber-A400: #ffc400;
|
||
--md-amber-A700: #ffab00;
|
||
--md-orange-50: #fff3e0;
|
||
--md-orange-100: #ffe0b2;
|
||
--md-orange-200: #ffcc80;
|
||
--md-orange-300: #ffb74d;
|
||
--md-orange-400: #ffa726;
|
||
--md-orange-500: #ff9800;
|
||
--md-orange-600: #fb8c00;
|
||
--md-orange-700: #f57c00;
|
||
--md-orange-800: #ef6c00;
|
||
--md-orange-900: #e65100;
|
||
--md-orange-A100: #ffd180;
|
||
--md-orange-A200: #ffab40;
|
||
--md-orange-A400: #ff9100;
|
||
--md-orange-A700: #ff6d00;
|
||
--md-deep-orange-50: #fbe9e7;
|
||
--md-deep-orange-100: #ffccbc;
|
||
--md-deep-orange-200: #ffab91;
|
||
--md-deep-orange-300: #ff8a65;
|
||
--md-deep-orange-400: #ff7043;
|
||
--md-deep-orange-500: #ff5722;
|
||
--md-deep-orange-600: #f4511e;
|
||
--md-deep-orange-700: #e64a19;
|
||
--md-deep-orange-800: #d84315;
|
||
--md-deep-orange-900: #bf360c;
|
||
--md-deep-orange-A100: #ff9e80;
|
||
--md-deep-orange-A200: #ff6e40;
|
||
--md-deep-orange-A400: #ff3d00;
|
||
--md-deep-orange-A700: #dd2c00;
|
||
--md-brown-50: #efebe9;
|
||
--md-brown-100: #d7ccc8;
|
||
--md-brown-200: #bcaaa4;
|
||
--md-brown-300: #a1887f;
|
||
--md-brown-400: #8d6e63;
|
||
--md-brown-500: #795548;
|
||
--md-brown-600: #6d4c41;
|
||
--md-brown-700: #5d4037;
|
||
--md-brown-800: #4e342e;
|
||
--md-brown-900: #3e2723;
|
||
--md-grey-50: #fafafa;
|
||
--md-grey-100: #f5f5f5;
|
||
--md-grey-200: #eee;
|
||
--md-grey-300: #e0e0e0;
|
||
--md-grey-400: #bdbdbd;
|
||
--md-grey-500: #9e9e9e;
|
||
--md-grey-600: #757575;
|
||
--md-grey-700: #616161;
|
||
--md-grey-800: #424242;
|
||
--md-grey-900: #212121;
|
||
--md-blue-grey-50: #eceff1;
|
||
--md-blue-grey-100: #cfd8dc;
|
||
--md-blue-grey-200: #b0bec5;
|
||
--md-blue-grey-300: #90a4ae;
|
||
--md-blue-grey-400: #78909c;
|
||
--md-blue-grey-500: #607d8b;
|
||
--md-blue-grey-600: #546e7a;
|
||
--md-blue-grey-700: #455a64;
|
||
--md-blue-grey-800: #37474f;
|
||
--md-blue-grey-900: #263238;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2017, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| RenderedText
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
/* This is the padding value to fill the gaps between lines containing spans with background color. */
|
||
--jp-private-code-span-padding: calc(
|
||
(var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
|
||
);
|
||
}
|
||
|
||
.jp-RenderedText {
|
||
text-align: left;
|
||
padding-left: var(--jp-code-padding);
|
||
line-height: var(--jp-code-line-height);
|
||
font-family: var(--jp-code-font-family);
|
||
}
|
||
|
||
.jp-RenderedText pre,
|
||
.jp-RenderedJavaScript pre,
|
||
.jp-RenderedHTMLCommon pre {
|
||
color: var(--jp-content-font-color1);
|
||
font-size: var(--jp-code-font-size);
|
||
border: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
.jp-RenderedText pre a:link {
|
||
text-decoration: none;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
.jp-RenderedText pre a:hover {
|
||
text-decoration: underline;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
.jp-RenderedText pre a:visited {
|
||
text-decoration: none;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
/* console foregrounds and backgrounds */
|
||
.jp-RenderedText pre .ansi-black-fg {
|
||
color: #3e424d;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-red-fg {
|
||
color: #e75c58;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-green-fg {
|
||
color: #00a250;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-yellow-fg {
|
||
color: #ddb62b;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-blue-fg {
|
||
color: #208ffb;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-magenta-fg {
|
||
color: #d160c4;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-cyan-fg {
|
||
color: #60c6c8;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-white-fg {
|
||
color: #c5c1b4;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-black-bg {
|
||
background-color: #3e424d;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-red-bg {
|
||
background-color: #e75c58;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-green-bg {
|
||
background-color: #00a250;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-yellow-bg {
|
||
background-color: #ddb62b;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-blue-bg {
|
||
background-color: #208ffb;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-magenta-bg {
|
||
background-color: #d160c4;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-cyan-bg {
|
||
background-color: #60c6c8;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-white-bg {
|
||
background-color: #c5c1b4;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-black-intense-fg {
|
||
color: #282c36;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-red-intense-fg {
|
||
color: #b22b31;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-green-intense-fg {
|
||
color: #007427;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-yellow-intense-fg {
|
||
color: #b27d12;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-blue-intense-fg {
|
||
color: #0065ca;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-magenta-intense-fg {
|
||
color: #a03196;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-cyan-intense-fg {
|
||
color: #258f8f;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-white-intense-fg {
|
||
color: #a1a6b2;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-black-intense-bg {
|
||
background-color: #282c36;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-red-intense-bg {
|
||
background-color: #b22b31;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-green-intense-bg {
|
||
background-color: #007427;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-yellow-intense-bg {
|
||
background-color: #b27d12;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-blue-intense-bg {
|
||
background-color: #0065ca;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-magenta-intense-bg {
|
||
background-color: #a03196;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-cyan-intense-bg {
|
||
background-color: #258f8f;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-white-intense-bg {
|
||
background-color: #a1a6b2;
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-default-inverse-fg {
|
||
color: var(--jp-ui-inverse-font-color0);
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-default-inverse-bg {
|
||
background-color: var(--jp-inverse-layout-color0);
|
||
padding: var(--jp-private-code-span-padding) 0;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-bold {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jp-RenderedText pre .ansi-underline {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
|
||
background: var(--jp-rendermime-error-background);
|
||
padding-top: var(--jp-code-padding);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| RenderedLatex
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-RenderedLatex {
|
||
color: var(--jp-content-font-color1);
|
||
font-size: var(--jp-content-font-size1);
|
||
line-height: var(--jp-content-line-height);
|
||
}
|
||
|
||
/* Left-justify outputs.*/
|
||
.jp-OutputArea-output.jp-RenderedLatex {
|
||
padding: var(--jp-code-padding);
|
||
text-align: left;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| RenderedHTML
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-RenderedHTMLCommon {
|
||
color: var(--jp-content-font-color1);
|
||
font-family: var(--jp-content-font-family);
|
||
font-size: var(--jp-content-font-size1);
|
||
line-height: var(--jp-content-line-height);
|
||
|
||
/* Give a bit more R padding on Markdown text to keep line lengths reasonable */
|
||
padding-right: 20px;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon em {
|
||
font-style: italic;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon strong {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon u {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon a:link {
|
||
text-decoration: none;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon a:hover {
|
||
text-decoration: underline;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon a:visited {
|
||
text-decoration: none;
|
||
color: var(--jp-content-link-color);
|
||
}
|
||
|
||
/* Headings */
|
||
|
||
.jp-RenderedHTMLCommon h1,
|
||
.jp-RenderedHTMLCommon h2,
|
||
.jp-RenderedHTMLCommon h3,
|
||
.jp-RenderedHTMLCommon h4,
|
||
.jp-RenderedHTMLCommon h5,
|
||
.jp-RenderedHTMLCommon h6 {
|
||
line-height: var(--jp-content-heading-line-height);
|
||
font-weight: var(--jp-content-heading-font-weight);
|
||
font-style: normal;
|
||
margin: var(--jp-content-heading-margin-top) 0
|
||
var(--jp-content-heading-margin-bottom) 0;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h1:first-child,
|
||
.jp-RenderedHTMLCommon h2:first-child,
|
||
.jp-RenderedHTMLCommon h3:first-child,
|
||
.jp-RenderedHTMLCommon h4:first-child,
|
||
.jp-RenderedHTMLCommon h5:first-child,
|
||
.jp-RenderedHTMLCommon h6:first-child {
|
||
margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h1:last-child,
|
||
.jp-RenderedHTMLCommon h2:last-child,
|
||
.jp-RenderedHTMLCommon h3:last-child,
|
||
.jp-RenderedHTMLCommon h4:last-child,
|
||
.jp-RenderedHTMLCommon h5:last-child,
|
||
.jp-RenderedHTMLCommon h6:last-child {
|
||
margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h1 {
|
||
font-size: var(--jp-content-font-size5);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h2 {
|
||
font-size: var(--jp-content-font-size4);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h3 {
|
||
font-size: var(--jp-content-font-size3);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h4 {
|
||
font-size: var(--jp-content-font-size2);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h5 {
|
||
font-size: var(--jp-content-font-size1);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon h6 {
|
||
font-size: var(--jp-content-font-size0);
|
||
}
|
||
|
||
/* Lists */
|
||
|
||
/* stylelint-disable selector-max-type, selector-max-compound-selectors */
|
||
|
||
.jp-RenderedHTMLCommon ul:not(.list-inline),
|
||
.jp-RenderedHTMLCommon ol:not(.list-inline) {
|
||
padding-left: 2em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ul {
|
||
list-style: disc;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ul ul {
|
||
list-style: square;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ul ul ul {
|
||
list-style: circle;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol {
|
||
list-style: decimal;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol ol {
|
||
list-style: upper-alpha;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol ol ol {
|
||
list-style: lower-alpha;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol ol ol ol {
|
||
list-style: lower-roman;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol ol ol ol ol {
|
||
list-style: decimal;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ol,
|
||
.jp-RenderedHTMLCommon ul {
|
||
margin-bottom: 1em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon ul ul,
|
||
.jp-RenderedHTMLCommon ul ol,
|
||
.jp-RenderedHTMLCommon ol ul,
|
||
.jp-RenderedHTMLCommon ol ol {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
/* stylelint-enable selector-max-type, selector-max-compound-selectors */
|
||
|
||
.jp-RenderedHTMLCommon hr {
|
||
color: var(--jp-border-color2);
|
||
background-color: var(--jp-border-color1);
|
||
margin-top: 1em;
|
||
margin-bottom: 1em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon > pre {
|
||
margin: 1.5em 2em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon pre,
|
||
.jp-RenderedHTMLCommon code {
|
||
border: 0;
|
||
background-color: var(--jp-layout-color0);
|
||
color: var(--jp-content-font-color1);
|
||
font-family: var(--jp-code-font-family);
|
||
font-size: inherit;
|
||
line-height: var(--jp-code-line-height);
|
||
padding: 0;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon :not(pre) > code {
|
||
background-color: var(--jp-layout-color2);
|
||
padding: 1px 5px;
|
||
}
|
||
|
||
/* Tables */
|
||
|
||
.jp-RenderedHTMLCommon table {
|
||
border-collapse: collapse;
|
||
border-spacing: 0;
|
||
border: none;
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
table-layout: fixed;
|
||
margin-left: auto;
|
||
margin-bottom: 1em;
|
||
margin-right: auto;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon thead {
|
||
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
|
||
vertical-align: bottom;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon td,
|
||
.jp-RenderedHTMLCommon th,
|
||
.jp-RenderedHTMLCommon tr {
|
||
vertical-align: middle;
|
||
padding: 0.5em;
|
||
line-height: normal;
|
||
white-space: normal;
|
||
max-width: none;
|
||
border: none;
|
||
}
|
||
|
||
.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
|
||
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
|
||
max-width: none;
|
||
}
|
||
|
||
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
|
||
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
|
||
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
|
||
text-align: right;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon th {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
|
||
background: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
|
||
background: var(--jp-rendermime-table-row-background);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon tbody tr:hover {
|
||
background: var(--jp-rendermime-table-row-hover-background);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon p {
|
||
text-align: left;
|
||
margin: 0;
|
||
margin-bottom: 1em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon img {
|
||
-moz-force-broken-image-icon: 1;
|
||
}
|
||
|
||
/* Restrict to direct children as other images could be nested in other content. */
|
||
.jp-RenderedHTMLCommon > img {
|
||
display: block;
|
||
margin-left: 0;
|
||
margin-right: 0;
|
||
margin-bottom: 1em;
|
||
}
|
||
|
||
/* Change color behind transparent images if they need it... */
|
||
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
|
||
background-color: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
|
||
background-color: var(--jp-inverse-layout-color1);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon img,
|
||
.jp-RenderedImage img,
|
||
.jp-RenderedHTMLCommon svg,
|
||
.jp-RenderedSVG svg {
|
||
max-width: 100%;
|
||
height: auto;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon img.jp-mod-unconfined,
|
||
.jp-RenderedImage img.jp-mod-unconfined,
|
||
.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
|
||
.jp-RenderedSVG svg.jp-mod-unconfined {
|
||
max-width: none;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert {
|
||
padding: var(--jp-notebook-padding);
|
||
border: var(--jp-border-width) solid transparent;
|
||
border-radius: var(--jp-border-radius);
|
||
margin-bottom: 1em;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-info {
|
||
color: var(--jp-info-color0);
|
||
background-color: var(--jp-info-color3);
|
||
border-color: var(--jp-info-color2);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-info hr {
|
||
border-color: var(--jp-info-color3);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-info > p:last-child,
|
||
.jp-RenderedHTMLCommon .alert-info > ul:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-warning {
|
||
color: var(--jp-warn-color0);
|
||
background-color: var(--jp-warn-color3);
|
||
border-color: var(--jp-warn-color2);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-warning hr {
|
||
border-color: var(--jp-warn-color3);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-warning > p:last-child,
|
||
.jp-RenderedHTMLCommon .alert-warning > ul:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-success {
|
||
color: var(--jp-success-color0);
|
||
background-color: var(--jp-success-color3);
|
||
border-color: var(--jp-success-color2);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-success hr {
|
||
border-color: var(--jp-success-color3);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-success > p:last-child,
|
||
.jp-RenderedHTMLCommon .alert-success > ul:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-danger {
|
||
color: var(--jp-error-color0);
|
||
background-color: var(--jp-error-color3);
|
||
border-color: var(--jp-error-color2);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-danger hr {
|
||
border-color: var(--jp-error-color3);
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon .alert-danger > p:last-child,
|
||
.jp-RenderedHTMLCommon .alert-danger > ul:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon blockquote {
|
||
margin: 1em 2em;
|
||
padding: 0 1em;
|
||
border-left: 5px solid var(--jp-border-color2);
|
||
}
|
||
|
||
a.jp-InternalAnchorLink {
|
||
visibility: hidden;
|
||
margin-left: 8px;
|
||
color: var(--md-blue-800);
|
||
}
|
||
|
||
h1:hover .jp-InternalAnchorLink,
|
||
h2:hover .jp-InternalAnchorLink,
|
||
h3:hover .jp-InternalAnchorLink,
|
||
h4:hover .jp-InternalAnchorLink,
|
||
h5:hover .jp-InternalAnchorLink,
|
||
h6:hover .jp-InternalAnchorLink {
|
||
visibility: visible;
|
||
}
|
||
|
||
.jp-RenderedHTMLCommon kbd {
|
||
background-color: var(--jp-rendermime-table-row-background);
|
||
border: 1px solid var(--jp-border-color0);
|
||
border-bottom-color: var(--jp-border-color2);
|
||
border-radius: 3px;
|
||
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||
display: inline-block;
|
||
font-size: var(--jp-ui-font-size0);
|
||
line-height: 1em;
|
||
padding: 0.2em 0.5em;
|
||
}
|
||
|
||
/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
|
||
* At the bottom of cells this is a bit too much as there is also spacing
|
||
* between cells. Going all the way to 0 gets too tight between markdown and
|
||
* code cells.
|
||
*/
|
||
.jp-RenderedHTMLCommon > *:last-child {
|
||
margin-bottom: 0.5em;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
||
|
|
||
| Distributed under the terms of the BSD 3-Clause License.
|
||
|
|
||
| The full license is in the file LICENSE, distributed with this software.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.lm-cursor-backdrop {
|
||
position: fixed;
|
||
width: 200px;
|
||
height: 200px;
|
||
margin-top: -100px;
|
||
margin-left: -100px;
|
||
will-change: transform;
|
||
z-index: 100;
|
||
}
|
||
|
||
.lm-mod-drag-image {
|
||
will-change: transform;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.jp-lineFormSearch {
|
||
padding: 4px 12px;
|
||
background-color: var(--jp-layout-color2);
|
||
box-shadow: var(--jp-toolbar-box-shadow);
|
||
z-index: 2;
|
||
font-size: var(--jp-ui-font-size1);
|
||
}
|
||
|
||
.jp-lineFormCaption {
|
||
font-size: var(--jp-ui-font-size0);
|
||
line-height: var(--jp-ui-font-size1);
|
||
margin-top: 4px;
|
||
color: var(--jp-ui-font-color0);
|
||
}
|
||
|
||
.jp-baseLineForm {
|
||
border: none;
|
||
border-radius: 0;
|
||
position: absolute;
|
||
background-size: 16px;
|
||
background-repeat: no-repeat;
|
||
background-position: center;
|
||
outline: none;
|
||
}
|
||
|
||
.jp-lineFormButtonContainer {
|
||
top: 4px;
|
||
right: 8px;
|
||
height: 24px;
|
||
padding: 0 12px;
|
||
width: 12px;
|
||
}
|
||
|
||
.jp-lineFormButtonIcon {
|
||
top: 0;
|
||
right: 0;
|
||
background-color: var(--jp-brand-color1);
|
||
height: 100%;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 4px 6px;
|
||
}
|
||
|
||
.jp-lineFormButton {
|
||
top: 0;
|
||
right: 0;
|
||
background-color: transparent;
|
||
height: 100%;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.jp-lineFormWrapper {
|
||
overflow: hidden;
|
||
padding: 0 8px;
|
||
border: 1px solid var(--jp-border-color0);
|
||
background-color: var(--jp-input-active-background);
|
||
height: 22px;
|
||
}
|
||
|
||
.jp-lineFormWrapperFocusWithin {
|
||
border: var(--jp-border-width) solid var(--md-blue-500);
|
||
box-shadow: inset 0 0 4px var(--md-blue-300);
|
||
}
|
||
|
||
.jp-lineFormInput {
|
||
background: transparent;
|
||
width: 200px;
|
||
height: 100%;
|
||
border: none;
|
||
outline: none;
|
||
color: var(--jp-ui-font-color0);
|
||
line-height: 28px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) 2014-2016, Jupyter Development Team.
|
||
|
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-JSONEditor {
|
||
display: flex;
|
||
flex-direction: column;
|
||
width: 100%;
|
||
}
|
||
|
||
.jp-JSONEditor-host {
|
||
flex: 1 1 auto;
|
||
border: var(--jp-border-width) solid var(--jp-input-border-color);
|
||
border-radius: 0;
|
||
background: var(--jp-layout-color0);
|
||
min-height: 50px;
|
||
padding: 1px;
|
||
}
|
||
|
||
.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
|
||
border-color: red;
|
||
outline-color: red;
|
||
}
|
||
|
||
.jp-JSONEditor-header {
|
||
display: flex;
|
||
flex: 1 0 auto;
|
||
padding: 0 0 0 12px;
|
||
}
|
||
|
||
.jp-JSONEditor-header label {
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.jp-JSONEditor-commitButton {
|
||
height: 16px;
|
||
width: 16px;
|
||
background-size: 18px;
|
||
background-repeat: no-repeat;
|
||
background-position: center;
|
||
}
|
||
|
||
.jp-JSONEditor-host.jp-mod-focused {
|
||
background-color: var(--jp-input-active-background);
|
||
border: 1px solid var(--jp-input-active-border-color);
|
||
box-shadow: var(--jp-input-box-shadow);
|
||
}
|
||
|
||
.jp-Editor.jp-mod-dropTarget {
|
||
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
|
||
box-shadow: var(--jp-input-box-shadow);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
.jp-DocumentSearch-input {
|
||
border: none;
|
||
outline: none;
|
||
color: var(--jp-ui-font-color0);
|
||
font-size: var(--jp-ui-font-size1);
|
||
background-color: var(--jp-layout-color0);
|
||
font-family: var(--jp-ui-font-family);
|
||
padding: 2px 1px;
|
||
resize: none;
|
||
}
|
||
|
||
.jp-DocumentSearch-overlay {
|
||
position: absolute;
|
||
background-color: var(--jp-toolbar-background);
|
||
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
|
||
border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);
|
||
top: 0;
|
||
right: 0;
|
||
z-index: 7;
|
||
min-width: 405px;
|
||
padding: 2px;
|
||
font-size: var(--jp-ui-font-size1);
|
||
|
||
--jp-private-document-search-button-height: 20px;
|
||
}
|
||
|
||
.jp-DocumentSearch-overlay button {
|
||
background-color: var(--jp-toolbar-background);
|
||
outline: 0;
|
||
}
|
||
|
||
.jp-DocumentSearch-overlay button:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DocumentSearch-overlay button:active {
|
||
background-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-DocumentSearch-overlay-row {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 2px;
|
||
}
|
||
|
||
.jp-DocumentSearch-button-content {
|
||
display: inline-block;
|
||
cursor: pointer;
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-DocumentSearch-button-content svg {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-DocumentSearch-input-wrapper {
|
||
border: var(--jp-border-width) solid var(--jp-border-color0);
|
||
display: flex;
|
||
background-color: var(--jp-layout-color0);
|
||
margin: 2px;
|
||
}
|
||
|
||
.jp-DocumentSearch-input-wrapper:focus-within {
|
||
border-color: var(--jp-cell-editor-active-border-color);
|
||
}
|
||
|
||
.jp-DocumentSearch-toggle-wrapper,
|
||
.jp-DocumentSearch-button-wrapper {
|
||
all: initial;
|
||
overflow: hidden;
|
||
display: inline-block;
|
||
border: none;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.jp-DocumentSearch-toggle-wrapper {
|
||
width: 14px;
|
||
height: 14px;
|
||
}
|
||
|
||
.jp-DocumentSearch-button-wrapper {
|
||
width: var(--jp-private-document-search-button-height);
|
||
height: var(--jp-private-document-search-button-height);
|
||
}
|
||
|
||
.jp-DocumentSearch-toggle-wrapper:focus,
|
||
.jp-DocumentSearch-button-wrapper:focus {
|
||
outline: var(--jp-border-width) solid
|
||
var(--jp-cell-editor-active-border-color);
|
||
outline-offset: -1px;
|
||
}
|
||
|
||
.jp-DocumentSearch-toggle-wrapper,
|
||
.jp-DocumentSearch-button-wrapper,
|
||
.jp-DocumentSearch-button-content:focus {
|
||
outline: none;
|
||
}
|
||
|
||
.jp-DocumentSearch-toggle-placeholder {
|
||
width: 5px;
|
||
}
|
||
|
||
.jp-DocumentSearch-input-button::before {
|
||
display: block;
|
||
padding-top: 100%;
|
||
}
|
||
|
||
.jp-DocumentSearch-input-button-off {
|
||
opacity: var(--jp-search-toggle-off-opacity);
|
||
}
|
||
|
||
.jp-DocumentSearch-input-button-off:hover {
|
||
opacity: var(--jp-search-toggle-hover-opacity);
|
||
}
|
||
|
||
.jp-DocumentSearch-input-button-on {
|
||
opacity: var(--jp-search-toggle-on-opacity);
|
||
}
|
||
|
||
.jp-DocumentSearch-index-counter {
|
||
padding-left: 10px;
|
||
padding-right: 10px;
|
||
user-select: none;
|
||
min-width: 35px;
|
||
display: inline-block;
|
||
}
|
||
|
||
.jp-DocumentSearch-up-down-wrapper {
|
||
display: inline-block;
|
||
padding-right: 2px;
|
||
margin-left: auto;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.jp-DocumentSearch-spacer {
|
||
margin-left: auto;
|
||
}
|
||
|
||
.jp-DocumentSearch-up-down-wrapper button {
|
||
outline: 0;
|
||
border: none;
|
||
width: var(--jp-private-document-search-button-height);
|
||
height: var(--jp-private-document-search-button-height);
|
||
vertical-align: middle;
|
||
margin: 1px 5px 2px;
|
||
}
|
||
|
||
.jp-DocumentSearch-up-down-button:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DocumentSearch-up-down-button:active {
|
||
background-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-DocumentSearch-filter-button {
|
||
border-radius: var(--jp-border-radius);
|
||
}
|
||
|
||
.jp-DocumentSearch-filter-button:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DocumentSearch-filter-button-enabled {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DocumentSearch-filter-button-enabled:hover {
|
||
background-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-DocumentSearch-search-options {
|
||
padding: 0 8px;
|
||
margin-left: 3px;
|
||
width: 100%;
|
||
display: grid;
|
||
justify-content: start;
|
||
grid-template-columns: 1fr 1fr;
|
||
align-items: center;
|
||
justify-items: stretch;
|
||
}
|
||
|
||
.jp-DocumentSearch-search-filter-disabled {
|
||
color: var(--jp-ui-font-color2);
|
||
}
|
||
|
||
.jp-DocumentSearch-search-filter {
|
||
display: flex;
|
||
align-items: center;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-DocumentSearch-regex-error {
|
||
color: var(--jp-error-color0);
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-button-wrapper {
|
||
overflow: hidden;
|
||
display: inline-block;
|
||
box-sizing: border-box;
|
||
border: var(--jp-border-width) solid var(--jp-border-color0);
|
||
margin: auto 2px;
|
||
padding: 1px 4px;
|
||
height: calc(var(--jp-private-document-search-button-height) + 2px);
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-button-wrapper:focus {
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-button {
|
||
display: inline-block;
|
||
text-align: center;
|
||
cursor: pointer;
|
||
box-sizing: border-box;
|
||
color: var(--jp-ui-font-color1);
|
||
|
||
/* height - 2 * (padding of wrapper) */
|
||
line-height: calc(var(--jp-private-document-search-button-height) - 2px);
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-button:focus {
|
||
outline: none;
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-wrapper-class {
|
||
margin-left: 14px;
|
||
display: flex;
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-toggle {
|
||
border: none;
|
||
background-color: var(--jp-toolbar-background);
|
||
border-radius: var(--jp-border-radius);
|
||
}
|
||
|
||
.jp-DocumentSearch-replace-toggle:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.cm-editor {
|
||
line-height: var(--jp-code-line-height);
|
||
font-size: var(--jp-code-font-size);
|
||
font-family: var(--jp-code-font-family);
|
||
border: 0;
|
||
border-radius: 0;
|
||
height: auto;
|
||
|
||
/* Changed to auto to autogrow */
|
||
}
|
||
|
||
.cm-editor pre {
|
||
padding: 0 var(--jp-code-padding);
|
||
}
|
||
|
||
.jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
|
||
background-color: var(--jp-layout-color0);
|
||
color: var(--jp-content-font-color1);
|
||
}
|
||
|
||
.jp-CodeMirrorEditor {
|
||
cursor: text;
|
||
}
|
||
|
||
/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
|
||
@media screen and (min-width: 2138px) and (max-width: 4319px) {
|
||
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
|
||
border-left: var(--jp-code-cursor-width1) solid
|
||
var(--jp-editor-cursor-color);
|
||
}
|
||
}
|
||
|
||
/* When zoomed out less than 33% */
|
||
@media screen and (min-width: 4320px) {
|
||
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
|
||
border-left: var(--jp-code-cursor-width2) solid
|
||
var(--jp-editor-cursor-color);
|
||
}
|
||
}
|
||
|
||
.cm-editor.jp-mod-readOnly .cm-cursor {
|
||
display: none;
|
||
}
|
||
|
||
.jp-CollaboratorCursor {
|
||
border-left: 5px solid transparent;
|
||
border-right: 5px solid transparent;
|
||
border-top: none;
|
||
border-bottom: 3px solid;
|
||
background-clip: content-box;
|
||
margin-left: -5px;
|
||
margin-right: -5px;
|
||
}
|
||
|
||
.cm-searching,
|
||
.cm-searching span {
|
||
/* `.cm-searching span`: we need to override syntax highlighting */
|
||
background-color: var(--jp-search-unselected-match-background-color);
|
||
color: var(--jp-search-unselected-match-color);
|
||
}
|
||
|
||
.cm-searching::selection,
|
||
.cm-searching span::selection {
|
||
background-color: var(--jp-search-unselected-match-background-color);
|
||
color: var(--jp-search-unselected-match-color);
|
||
}
|
||
|
||
.jp-current-match > .cm-searching,
|
||
.jp-current-match > .cm-searching span,
|
||
.cm-searching > .jp-current-match,
|
||
.cm-searching > .jp-current-match span {
|
||
background-color: var(--jp-search-selected-match-background-color);
|
||
color: var(--jp-search-selected-match-color);
|
||
}
|
||
|
||
.jp-current-match > .cm-searching::selection,
|
||
.cm-searching > .jp-current-match::selection,
|
||
.jp-current-match > .cm-searching span::selection {
|
||
background-color: var(--jp-search-selected-match-background-color);
|
||
color: var(--jp-search-selected-match-color);
|
||
}
|
||
|
||
.cm-trailingspace {
|
||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
|
||
background-position: center left;
|
||
background-repeat: repeat-x;
|
||
}
|
||
|
||
.jp-CollaboratorCursor-hover {
|
||
position: absolute;
|
||
z-index: 1;
|
||
transform: translateX(-50%);
|
||
color: white;
|
||
border-radius: 3px;
|
||
padding-left: 4px;
|
||
padding-right: 4px;
|
||
padding-top: 1px;
|
||
padding-bottom: 1px;
|
||
text-align: center;
|
||
font-size: var(--jp-ui-font-size1);
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.jp-CodeMirror-ruler {
|
||
border-left: 1px dashed var(--jp-border-color2);
|
||
}
|
||
|
||
/* Styles for shared cursors (remote cursor locations and selected ranges) */
|
||
.jp-CodeMirrorEditor .cm-ySelectionCaret {
|
||
position: relative;
|
||
border-left: 1px solid black;
|
||
margin-left: -1px;
|
||
margin-right: -1px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
|
||
white-space: nowrap;
|
||
position: absolute;
|
||
top: -1.15em;
|
||
padding-bottom: 0.05em;
|
||
left: -1px;
|
||
font-size: 0.95em;
|
||
font-family: var(--jp-ui-font-family);
|
||
font-weight: bold;
|
||
line-height: normal;
|
||
user-select: none;
|
||
color: white;
|
||
padding-left: 2px;
|
||
padding-right: 2px;
|
||
z-index: 101;
|
||
transition: opacity 0.3s ease-in-out;
|
||
}
|
||
|
||
.jp-CodeMirrorEditor .cm-ySelectionInfo {
|
||
transition-delay: 0.7s;
|
||
opacity: 0;
|
||
}
|
||
|
||
.jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
|
||
opacity: 1;
|
||
transition-delay: 0s;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-MimeDocument {
|
||
outline: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-private-filebrowser-button-height: 28px;
|
||
--jp-private-filebrowser-button-width: 48px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-FileBrowser .jp-SidePanel-content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.jp-FileBrowser-toolbar.jp-Toolbar {
|
||
flex-wrap: wrap;
|
||
row-gap: 12px;
|
||
border-bottom: none;
|
||
height: auto;
|
||
margin: 8px 12px 0;
|
||
box-shadow: none;
|
||
padding: 0;
|
||
justify-content: flex-start;
|
||
}
|
||
|
||
.jp-FileBrowser-Panel {
|
||
flex: 1 1 auto;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.jp-BreadCrumbs {
|
||
flex: 0 0 auto;
|
||
margin: 8px 12px;
|
||
}
|
||
|
||
.jp-BreadCrumbs-item {
|
||
margin: 0 2px;
|
||
padding: 0 2px;
|
||
border-radius: var(--jp-border-radius);
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-BreadCrumbs-item:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-BreadCrumbs-item:first-child {
|
||
margin-left: 0;
|
||
}
|
||
|
||
.jp-BreadCrumbs-item.jp-mod-dropTarget {
|
||
background-color: var(--jp-brand-color2);
|
||
opacity: 0.7;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Buttons
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-FileBrowser-toolbar > .jp-Toolbar-item {
|
||
flex: 0 0 auto;
|
||
padding-left: 0;
|
||
padding-right: 2px;
|
||
align-items: center;
|
||
height: unset;
|
||
}
|
||
|
||
.jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent {
|
||
width: 40px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Other styles
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-FileDialog.jp-mod-conflict input {
|
||
color: var(--jp-error-color1);
|
||
}
|
||
|
||
.jp-FileDialog .jp-new-name-title {
|
||
margin-top: 12px;
|
||
}
|
||
|
||
.jp-LastModified-hidden {
|
||
display: none;
|
||
}
|
||
|
||
.jp-FileSize-hidden {
|
||
display: none;
|
||
}
|
||
|
||
.jp-FileBrowser .lm-AccordionPanel > h3:first-child {
|
||
display: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| DirListing
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-DirListing {
|
||
flex: 1 1 auto;
|
||
display: flex;
|
||
flex-direction: column;
|
||
outline: 0;
|
||
}
|
||
|
||
.jp-DirListing-header {
|
||
flex: 0 0 auto;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
overflow: hidden;
|
||
border-top: var(--jp-border-width) solid var(--jp-border-color2);
|
||
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
|
||
box-shadow: var(--jp-toolbar-box-shadow);
|
||
z-index: 2;
|
||
}
|
||
|
||
.jp-DirListing-headerItem {
|
||
padding: 4px 12px 2px;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.jp-DirListing-headerItem:hover {
|
||
background: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DirListing-headerItem.jp-id-name {
|
||
flex: 1 0 84px;
|
||
}
|
||
|
||
.jp-DirListing-headerItem.jp-id-modified {
|
||
flex: 0 0 112px;
|
||
border-left: var(--jp-border-width) solid var(--jp-border-color2);
|
||
text-align: right;
|
||
}
|
||
|
||
.jp-DirListing-headerItem.jp-id-filesize {
|
||
flex: 0 0 75px;
|
||
border-left: var(--jp-border-width) solid var(--jp-border-color2);
|
||
text-align: right;
|
||
}
|
||
|
||
.jp-id-narrow {
|
||
display: none;
|
||
flex: 0 0 5px;
|
||
padding: 4px;
|
||
border-left: var(--jp-border-width) solid var(--jp-border-color2);
|
||
text-align: right;
|
||
color: var(--jp-border-color2);
|
||
}
|
||
|
||
.jp-DirListing-narrow .jp-id-narrow {
|
||
display: block;
|
||
}
|
||
|
||
.jp-DirListing-narrow .jp-id-modified,
|
||
.jp-DirListing-narrow .jp-DirListing-itemModified {
|
||
display: none;
|
||
}
|
||
|
||
.jp-DirListing-headerItem.jp-mod-selected {
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* increase specificity to override bundled default */
|
||
.jp-DirListing-content {
|
||
flex: 1 1 auto;
|
||
margin: 0;
|
||
padding: 0;
|
||
list-style-type: none;
|
||
overflow: auto;
|
||
background-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-DirListing-content mark {
|
||
color: var(--jp-ui-font-color0);
|
||
background-color: transparent;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
|
||
color: var(--jp-ui-inverse-font-color0);
|
||
}
|
||
|
||
/* Style the directory listing content when a user drops a file to upload */
|
||
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
|
||
outline: 5px dashed rgba(128, 128, 128, 0.5);
|
||
outline-offset: -10px;
|
||
cursor: copy;
|
||
}
|
||
|
||
.jp-DirListing-item {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
padding: 4px 12px;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-DirListing-checkboxWrapper {
|
||
/* Increases hit area of checkbox. */
|
||
padding: 4px;
|
||
}
|
||
|
||
.jp-DirListing-header
|
||
.jp-DirListing-checkboxWrapper
|
||
+ .jp-DirListing-headerItem {
|
||
padding-left: 4px;
|
||
}
|
||
|
||
.jp-DirListing-content .jp-DirListing-checkboxWrapper {
|
||
position: relative;
|
||
left: -4px;
|
||
margin: -4px 0 -4px -8px;
|
||
}
|
||
|
||
.jp-DirListing-checkboxWrapper.jp-mod-visible {
|
||
visibility: visible;
|
||
}
|
||
|
||
/* For devices that support hovering, hide checkboxes until hovered, selected...
|
||
*/
|
||
@media (hover: hover) {
|
||
.jp-DirListing-checkboxWrapper {
|
||
visibility: hidden;
|
||
}
|
||
|
||
.jp-DirListing-item:hover .jp-DirListing-checkboxWrapper,
|
||
.jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper {
|
||
visibility: visible;
|
||
}
|
||
}
|
||
|
||
.jp-DirListing-item[data-is-dot] {
|
||
opacity: 75%;
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-selected {
|
||
color: var(--jp-ui-inverse-font-color1);
|
||
background: var(--jp-brand-color1);
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-dropTarget {
|
||
background: var(--jp-brand-color3);
|
||
}
|
||
|
||
.jp-DirListing-item:hover:not(.jp-mod-selected) {
|
||
background: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-DirListing-itemIcon {
|
||
flex: 0 0 20px;
|
||
margin-right: 4px;
|
||
}
|
||
|
||
.jp-DirListing-itemText {
|
||
flex: 1 0 64px;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-DirListing-itemText:focus {
|
||
outline-width: 2px;
|
||
outline-color: var(--jp-inverse-layout-color1);
|
||
outline-style: solid;
|
||
outline-offset: 1px;
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-selected .jp-DirListing-itemText:focus {
|
||
outline-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-DirListing-itemModified {
|
||
flex: 0 0 125px;
|
||
text-align: right;
|
||
}
|
||
|
||
.jp-DirListing-itemFileSize {
|
||
flex: 0 0 90px;
|
||
text-align: right;
|
||
}
|
||
|
||
.jp-DirListing-editor {
|
||
flex: 1 0 64px;
|
||
outline: none;
|
||
border: none;
|
||
color: var(--jp-ui-font-color1);
|
||
background-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before {
|
||
color: var(--jp-success-color1);
|
||
content: '\25CF';
|
||
font-size: 8px;
|
||
position: absolute;
|
||
left: -8px;
|
||
}
|
||
|
||
.jp-DirListing-item.jp-mod-running.jp-mod-selected
|
||
.jp-DirListing-itemIcon::before {
|
||
color: var(--jp-ui-inverse-font-color1);
|
||
}
|
||
|
||
.jp-DirListing-item.lm-mod-drag-image,
|
||
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
|
||
font-size: var(--jp-ui-font-size1);
|
||
padding-left: 4px;
|
||
margin-left: 4px;
|
||
width: 160px;
|
||
background-color: var(--jp-ui-inverse-font-color2);
|
||
box-shadow: var(--jp-elevation-z2);
|
||
border-radius: 0;
|
||
color: var(--jp-ui-font-color1);
|
||
transform: translateX(-40%) translateY(-58%);
|
||
}
|
||
|
||
.jp-Document {
|
||
min-width: 120px;
|
||
min-height: 120px;
|
||
outline: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Main OutputArea
|
||
| OutputArea has a list of Outputs
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-OutputArea {
|
||
overflow-y: auto;
|
||
}
|
||
|
||
.jp-OutputArea-child {
|
||
display: table;
|
||
table-layout: fixed;
|
||
width: 100%;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.jp-OutputPrompt {
|
||
width: var(--jp-cell-prompt-width);
|
||
color: var(--jp-cell-outprompt-font-color);
|
||
font-family: var(--jp-cell-prompt-font-family);
|
||
padding: var(--jp-code-padding);
|
||
letter-spacing: var(--jp-cell-prompt-letter-spacing);
|
||
line-height: var(--jp-code-line-height);
|
||
font-size: var(--jp-code-font-size);
|
||
border: var(--jp-border-width) solid transparent;
|
||
opacity: var(--jp-cell-prompt-opacity);
|
||
|
||
/* Right align prompt text, don't wrap to handle large prompt numbers */
|
||
text-align: right;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
|
||
/* Disable text selection */
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-OutputArea-prompt {
|
||
display: table-cell;
|
||
vertical-align: top;
|
||
}
|
||
|
||
.jp-OutputArea-output {
|
||
display: table-cell;
|
||
width: 100%;
|
||
height: auto;
|
||
overflow: auto;
|
||
user-select: text;
|
||
-moz-user-select: text;
|
||
-webkit-user-select: text;
|
||
-ms-user-select: text;
|
||
}
|
||
|
||
.jp-OutputArea .jp-RenderedText {
|
||
padding-left: 1ch;
|
||
}
|
||
|
||
/**
|
||
* Prompt overlay.
|
||
*/
|
||
|
||
.jp-OutputArea-promptOverlay {
|
||
position: absolute;
|
||
top: 0;
|
||
width: var(--jp-cell-prompt-width);
|
||
height: 100%;
|
||
opacity: 0.5;
|
||
}
|
||
|
||
.jp-OutputArea-promptOverlay:hover {
|
||
background: var(--jp-layout-color2);
|
||
box-shadow: inset 0 0 1px var(--jp-inverse-layout-color0);
|
||
cursor: zoom-out;
|
||
}
|
||
|
||
.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay:hover {
|
||
cursor: zoom-in;
|
||
}
|
||
|
||
/**
|
||
* Isolated output.
|
||
*/
|
||
.jp-OutputArea-output.jp-mod-isolated {
|
||
width: 100%;
|
||
display: block;
|
||
}
|
||
|
||
/*
|
||
When drag events occur, `lm-mod-override-cursor` is added to the body.
|
||
Because iframes steal all cursor events, the following two rules are necessary
|
||
to suppress pointer events while resize drags are occurring. There may be a
|
||
better solution to this problem.
|
||
*/
|
||
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
|
||
position: relative;
|
||
}
|
||
|
||
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: transparent;
|
||
}
|
||
|
||
/* pre */
|
||
|
||
.jp-OutputArea-output pre {
|
||
border: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
overflow-x: auto;
|
||
overflow-y: auto;
|
||
word-break: break-all;
|
||
word-wrap: break-word;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
/* tables */
|
||
|
||
.jp-OutputArea-output.jp-RenderedHTMLCommon table {
|
||
margin-left: 0;
|
||
margin-right: 0;
|
||
}
|
||
|
||
/* description lists */
|
||
|
||
.jp-OutputArea-output dl,
|
||
.jp-OutputArea-output dt,
|
||
.jp-OutputArea-output dd {
|
||
display: block;
|
||
}
|
||
|
||
.jp-OutputArea-output dl {
|
||
width: 100%;
|
||
overflow: hidden;
|
||
padding: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
.jp-OutputArea-output dt {
|
||
font-weight: bold;
|
||
float: left;
|
||
width: 20%;
|
||
padding: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
.jp-OutputArea-output dd {
|
||
float: left;
|
||
width: 80%;
|
||
padding: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
.jp-TrimmedOutputs pre {
|
||
background: var(--jp-layout-color3);
|
||
font-size: calc(var(--jp-code-font-size) * 1.4);
|
||
text-align: center;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
/* Hide the gutter in case of
|
||
* - nested output areas (e.g. in the case of output widgets)
|
||
* - mirrored output areas
|
||
*/
|
||
.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
|
||
display: none;
|
||
}
|
||
|
||
/* Hide empty lines in the output area, for instance due to cleared widgets */
|
||
.jp-OutputArea-prompt:empty {
|
||
padding: 0;
|
||
border: 0;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| executeResult is added to any Output-result for the display of the object
|
||
| returned by a cell
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-OutputArea-output.jp-OutputArea-executeResult {
|
||
margin-left: 0;
|
||
width: 100%;
|
||
}
|
||
|
||
/* Text output with the Out[] prompt needs a top padding to match the
|
||
* alignment of the Out[] prompt itself.
|
||
*/
|
||
.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
|
||
padding-top: var(--jp-code-padding);
|
||
border-top: var(--jp-border-width) solid transparent;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| The Stdin output
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Stdin-prompt {
|
||
color: var(--jp-content-font-color0);
|
||
padding-right: var(--jp-code-padding);
|
||
vertical-align: baseline;
|
||
flex: 0 0 auto;
|
||
}
|
||
|
||
.jp-Stdin-input {
|
||
font-family: var(--jp-code-font-family);
|
||
font-size: inherit;
|
||
color: inherit;
|
||
background-color: inherit;
|
||
width: 42%;
|
||
min-width: 200px;
|
||
|
||
/* make sure input baseline aligns with prompt */
|
||
vertical-align: baseline;
|
||
|
||
/* padding + margin = 0.5em between prompt and cursor */
|
||
padding: 0 0.25em;
|
||
margin: 0 0.25em;
|
||
flex: 0 0 70%;
|
||
}
|
||
|
||
.jp-Stdin-input::placeholder {
|
||
opacity: 0;
|
||
}
|
||
|
||
.jp-Stdin-input:focus {
|
||
box-shadow: none;
|
||
}
|
||
|
||
.jp-Stdin-input:focus::placeholder {
|
||
opacity: 1;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Output Area View
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-LinkedOutputView .jp-OutputArea {
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
|
||
.jp-LinkedOutputView .jp-OutputArea-output:only-child {
|
||
height: 100%;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Printing
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
@media print {
|
||
.jp-OutputArea-child {
|
||
break-inside: avoid-page;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Mobile
|
||
|----------------------------------------------------------------------------*/
|
||
@media only screen and (max-width: 760px) {
|
||
.jp-OutputPrompt {
|
||
display: table-row;
|
||
text-align: left;
|
||
}
|
||
|
||
.jp-OutputArea-child .jp-OutputArea-output {
|
||
display: table-row;
|
||
margin-left: var(--jp-notebook-padding);
|
||
}
|
||
}
|
||
|
||
/* Trimmed outputs warning */
|
||
.jp-TrimmedOutputs > a {
|
||
margin: 10px;
|
||
text-decoration: none;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-TrimmedOutputs > a:hover {
|
||
text-decoration: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Table of Contents
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-private-toc-active-width: 4px;
|
||
}
|
||
|
||
.jp-TableOfContents {
|
||
display: flex;
|
||
flex-direction: column;
|
||
background: var(--jp-layout-color1);
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-TableOfContents-placeholder {
|
||
text-align: center;
|
||
}
|
||
|
||
.jp-TableOfContents-placeholderContent {
|
||
color: var(--jp-content-font-color2);
|
||
padding: 8px;
|
||
}
|
||
|
||
.jp-TableOfContents-placeholderContent > h3 {
|
||
margin-bottom: var(--jp-content-heading-margin-bottom);
|
||
}
|
||
|
||
.jp-TableOfContents .jp-SidePanel-content {
|
||
overflow-y: auto;
|
||
}
|
||
|
||
.jp-TableOfContents-tree {
|
||
margin: 4px;
|
||
}
|
||
|
||
.jp-TableOfContents ol {
|
||
list-style-type: none;
|
||
}
|
||
|
||
/* stylelint-disable-next-line selector-max-type */
|
||
.jp-TableOfContents li > ol {
|
||
/* Align left border with triangle icon center */
|
||
padding-left: 11px;
|
||
}
|
||
|
||
.jp-TableOfContents-content {
|
||
/* left margin for the active heading indicator */
|
||
margin: 0 0 0 var(--jp-private-toc-active-width);
|
||
padding: 0;
|
||
background-color: var(--jp-layout-color1);
|
||
}
|
||
|
||
.jp-tocItem {
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.jp-tocItem-heading {
|
||
display: flex;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-tocItem-heading:hover {
|
||
background-color: var(--jp-layout-color2);
|
||
}
|
||
|
||
.jp-tocItem-content {
|
||
display: block;
|
||
padding: 4px 0;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
overflow-x: hidden;
|
||
}
|
||
|
||
.jp-tocItem-collapser {
|
||
height: 20px;
|
||
margin: 2px 2px 0;
|
||
padding: 0;
|
||
background: none;
|
||
border: none;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-tocItem-collapser:hover {
|
||
background-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
/* Active heading indicator */
|
||
|
||
.jp-tocItem-heading::before {
|
||
content: ' ';
|
||
background: transparent;
|
||
width: var(--jp-private-toc-active-width);
|
||
height: 24px;
|
||
position: absolute;
|
||
left: 0;
|
||
border-radius: var(--jp-border-radius);
|
||
}
|
||
|
||
.jp-tocItem-heading.jp-tocItem-active::before {
|
||
background-color: var(--jp-brand-color1);
|
||
}
|
||
|
||
.jp-tocItem-heading:hover.jp-tocItem-active::before {
|
||
background: var(--jp-brand-color0);
|
||
opacity: 1;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Collapser {
|
||
flex: 0 0 var(--jp-cell-collapser-width);
|
||
padding: 0;
|
||
margin: 0;
|
||
border: none;
|
||
outline: none;
|
||
background: transparent;
|
||
border-radius: var(--jp-border-radius);
|
||
opacity: 1;
|
||
}
|
||
|
||
.jp-Collapser-child {
|
||
display: block;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
|
||
/* height: 100% doesn't work because the height of its parent is computed from content */
|
||
position: absolute;
|
||
top: 0;
|
||
bottom: 0;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Printing
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*
|
||
Hiding collapsers in print mode.
|
||
|
||
Note: input and output wrappers have "display: block" propery in print mode.
|
||
*/
|
||
|
||
@media print {
|
||
.jp-Collapser {
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Header/Footer
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* Hidden by zero height by default */
|
||
.jp-CellHeader,
|
||
.jp-CellFooter {
|
||
height: 0;
|
||
width: 100%;
|
||
padding: 0;
|
||
margin: 0;
|
||
border: none;
|
||
outline: none;
|
||
background: transparent;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Input
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* All input areas */
|
||
.jp-InputArea {
|
||
display: table;
|
||
table-layout: fixed;
|
||
width: 100%;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.jp-InputArea-editor {
|
||
display: table-cell;
|
||
overflow: hidden;
|
||
vertical-align: top;
|
||
|
||
/* This is the non-active, default styling */
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
|
||
border-radius: 0;
|
||
background: var(--jp-cell-editor-background);
|
||
}
|
||
|
||
.jp-InputPrompt {
|
||
display: table-cell;
|
||
vertical-align: top;
|
||
width: var(--jp-cell-prompt-width);
|
||
color: var(--jp-cell-inprompt-font-color);
|
||
font-family: var(--jp-cell-prompt-font-family);
|
||
padding: var(--jp-code-padding);
|
||
letter-spacing: var(--jp-cell-prompt-letter-spacing);
|
||
opacity: var(--jp-cell-prompt-opacity);
|
||
line-height: var(--jp-code-line-height);
|
||
font-size: var(--jp-code-font-size);
|
||
border: var(--jp-border-width) solid transparent;
|
||
|
||
/* Right align prompt text, don't wrap to handle large prompt numbers */
|
||
text-align: right;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
|
||
/* Disable text selection */
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Mobile
|
||
|----------------------------------------------------------------------------*/
|
||
@media only screen and (max-width: 760px) {
|
||
.jp-InputArea-editor {
|
||
display: table-row;
|
||
margin-left: var(--jp-notebook-padding);
|
||
}
|
||
|
||
.jp-InputPrompt {
|
||
display: table-row;
|
||
text-align: left;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Placeholder
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Placeholder {
|
||
display: table;
|
||
table-layout: fixed;
|
||
width: 100%;
|
||
}
|
||
|
||
.jp-Placeholder-prompt {
|
||
display: table-cell;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.jp-Placeholder-content {
|
||
display: table-cell;
|
||
padding: 4px 6px;
|
||
border: 1px solid transparent;
|
||
border-radius: 0;
|
||
background: none;
|
||
box-sizing: border-box;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-Placeholder-contentContainer {
|
||
display: flex;
|
||
}
|
||
|
||
.jp-Placeholder-content:hover,
|
||
.jp-InputPlaceholder > .jp-Placeholder-content:hover {
|
||
border-color: var(--jp-layout-color3);
|
||
}
|
||
|
||
.jp-Placeholder-content .jp-MoreHorizIcon {
|
||
width: 32px;
|
||
height: 16px;
|
||
border: 1px solid transparent;
|
||
border-radius: var(--jp-border-radius);
|
||
}
|
||
|
||
.jp-Placeholder-content .jp-MoreHorizIcon:hover {
|
||
border: 1px solid var(--jp-border-color1);
|
||
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.25);
|
||
background-color: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-PlaceholderText {
|
||
white-space: nowrap;
|
||
overflow-x: hidden;
|
||
color: var(--jp-inverse-layout-color3);
|
||
font-family: var(--jp-code-font-family);
|
||
}
|
||
|
||
.jp-InputPlaceholder > .jp-Placeholder-content {
|
||
border-color: var(--jp-cell-editor-border-color);
|
||
background: var(--jp-cell-editor-background);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Private CSS variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-private-cell-scrolling-output-offset: 5px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Cell
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Cell {
|
||
padding: var(--jp-cell-padding);
|
||
margin: 0;
|
||
border: none;
|
||
outline: none;
|
||
background: transparent;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Common input/output
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Cell-inputWrapper,
|
||
.jp-Cell-outputWrapper {
|
||
display: flex;
|
||
flex-direction: row;
|
||
padding: 0;
|
||
margin: 0;
|
||
|
||
/* Added to reveal the box-shadow on the input and output collapsers. */
|
||
overflow: visible;
|
||
}
|
||
|
||
/* Only input/output areas inside cells */
|
||
.jp-Cell-inputArea,
|
||
.jp-Cell-outputArea {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Collapser
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* Make the output collapser disappear when there is not output, but do so
|
||
* in a manner that leaves it in the layout and preserves its width.
|
||
*/
|
||
.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
|
||
border: none !important;
|
||
background: transparent !important;
|
||
}
|
||
|
||
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
|
||
min-height: var(--jp-cell-collapser-min-height);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Output
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* Put a space between input and output when there IS output */
|
||
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
|
||
margin-top: 5px;
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
|
||
overflow-y: auto;
|
||
max-height: 24em;
|
||
margin-left: var(--jp-private-cell-scrolling-output-offset);
|
||
resize: vertical;
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {
|
||
max-height: unset;
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {
|
||
content: ' ';
|
||
box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);
|
||
width: 100%;
|
||
height: 100%;
|
||
position: sticky;
|
||
bottom: 0;
|
||
top: 0;
|
||
margin-top: -50%;
|
||
float: left;
|
||
display: block;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {
|
||
padding-top: 6px;
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
|
||
width: calc(
|
||
var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
|
||
);
|
||
}
|
||
|
||
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {
|
||
left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| CodeCell
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| MarkdownCell
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-MarkdownOutput {
|
||
display: table-cell;
|
||
width: 100%;
|
||
margin-top: 0;
|
||
margin-bottom: 0;
|
||
padding-left: var(--jp-code-padding);
|
||
}
|
||
|
||
.jp-MarkdownOutput.jp-RenderedHTMLCommon {
|
||
overflow: auto;
|
||
}
|
||
|
||
/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */
|
||
.jp-collapseHeadingButton {
|
||
display: flex;
|
||
min-height: var(--jp-cell-collapser-min-height);
|
||
font-size: var(--jp-code-font-size);
|
||
position: absolute;
|
||
background-color: transparent;
|
||
background-size: 25px;
|
||
background-repeat: no-repeat;
|
||
background-position-x: center;
|
||
background-position-y: top;
|
||
background-image: var(--jp-icon-caret-down);
|
||
right: 0;
|
||
top: 0;
|
||
bottom: 0;
|
||
}
|
||
|
||
.jp-collapseHeadingButton.jp-mod-collapsed {
|
||
background-image: var(--jp-icon-caret-right);
|
||
}
|
||
|
||
/*
|
||
set the container font size to match that of content
|
||
so that the nested collapse buttons have the right size
|
||
*/
|
||
.jp-MarkdownCell .jp-InputPrompt {
|
||
font-size: var(--jp-content-font-size1);
|
||
}
|
||
|
||
/*
|
||
Align collapseHeadingButton with cell top header
|
||
The font sizes are identical to the ones in packages/rendermime/style/base.css
|
||
*/
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {
|
||
font-size: var(--jp-content-font-size5);
|
||
background-position-y: calc(0.3 * var(--jp-content-font-size5));
|
||
}
|
||
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {
|
||
font-size: var(--jp-content-font-size4);
|
||
background-position-y: calc(0.3 * var(--jp-content-font-size4));
|
||
}
|
||
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {
|
||
font-size: var(--jp-content-font-size3);
|
||
background-position-y: calc(0.3 * var(--jp-content-font-size3));
|
||
}
|
||
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {
|
||
font-size: var(--jp-content-font-size2);
|
||
background-position-y: calc(0.3 * var(--jp-content-font-size2));
|
||
}
|
||
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {
|
||
font-size: var(--jp-content-font-size1);
|
||
background-position-y: top;
|
||
}
|
||
|
||
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {
|
||
font-size: var(--jp-content-font-size0);
|
||
background-position-y: top;
|
||
}
|
||
|
||
/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */
|
||
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {
|
||
display: none;
|
||
}
|
||
|
||
.jp-Notebook.jp-mod-showHiddenCellsButton
|
||
:is(.jp-MarkdownCell:hover, .jp-mod-active)
|
||
.jp-collapseHeadingButton {
|
||
display: flex;
|
||
}
|
||
|
||
/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which
|
||
is a consequence of the showHiddenCellsButton option in Notebook Settings)*/
|
||
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {
|
||
margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
|
||
margin-top: var(--jp-code-padding);
|
||
border: 1px solid var(--jp-border-color2);
|
||
background-color: var(--jp-border-color3) !important;
|
||
color: var(--jp-content-font-color0) !important;
|
||
display: flex;
|
||
}
|
||
|
||
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {
|
||
background-color: var(--jp-border-color2) !important;
|
||
}
|
||
|
||
.jp-showHiddenCellsButton {
|
||
display: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Printing
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*
|
||
Using block instead of flex to allow the use of the break-inside CSS property for
|
||
cell outputs.
|
||
*/
|
||
|
||
@media print {
|
||
.jp-Cell-inputWrapper,
|
||
.jp-Cell-outputWrapper {
|
||
display: block;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-notebook-toolbar-padding: 2px 5px 2px 2px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Styles
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-NotebookPanel-toolbar {
|
||
padding: var(--jp-notebook-toolbar-padding);
|
||
|
||
/* disable paint containment from lumino 2.0 default strict CSS containment */
|
||
contain: style size !important;
|
||
}
|
||
|
||
.jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
|
||
border: none;
|
||
box-shadow: none;
|
||
}
|
||
|
||
.jp-Notebook-toolbarCellTypeDropdown select {
|
||
height: 24px;
|
||
font-size: var(--jp-ui-font-size1);
|
||
line-height: 14px;
|
||
border-radius: 0;
|
||
display: block;
|
||
}
|
||
|
||
.jp-Notebook-toolbarCellTypeDropdown span {
|
||
top: 5px !important;
|
||
}
|
||
|
||
.jp-Toolbar-responsive-popup {
|
||
position: absolute;
|
||
height: fit-content;
|
||
display: flex;
|
||
flex-direction: row;
|
||
flex-wrap: wrap;
|
||
justify-content: flex-end;
|
||
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
|
||
box-shadow: var(--jp-toolbar-box-shadow);
|
||
background: var(--jp-toolbar-background);
|
||
min-height: var(--jp-toolbar-micro-height);
|
||
padding: var(--jp-notebook-toolbar-padding);
|
||
z-index: 1;
|
||
right: 0;
|
||
top: 0;
|
||
}
|
||
|
||
.jp-Toolbar > .jp-Toolbar-responsive-opener {
|
||
margin-left: auto;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Styles
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Notebook-ExecutionIndicator {
|
||
position: relative;
|
||
display: inline-block;
|
||
height: 100%;
|
||
z-index: 9997;
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator-tooltip {
|
||
visibility: hidden;
|
||
height: auto;
|
||
width: max-content;
|
||
width: -moz-max-content;
|
||
background-color: var(--jp-layout-color2);
|
||
color: var(--jp-ui-font-color1);
|
||
text-align: justify;
|
||
border-radius: 6px;
|
||
padding: 0 5px;
|
||
position: fixed;
|
||
display: table;
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator-tooltip.up {
|
||
transform: translateX(-50%) translateY(-100%) translateY(-32px);
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator-tooltip.down {
|
||
transform: translateX(calc(-100% + 16px)) translateY(5px);
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator-tooltip.hidden {
|
||
display: none;
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator:hover .jp-Notebook-ExecutionIndicator-tooltip {
|
||
visibility: visible;
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator span {
|
||
font-size: var(--jp-ui-font-size1);
|
||
font-family: var(--jp-ui-font-family);
|
||
color: var(--jp-ui-font-color1);
|
||
line-height: 24px;
|
||
display: block;
|
||
}
|
||
|
||
.jp-Notebook-ExecutionIndicator-progress-bar {
|
||
display: flex;
|
||
justify-content: center;
|
||
height: 100%;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
/*
|
||
* Execution indicator
|
||
*/
|
||
.jp-tocItem-content::after {
|
||
content: '';
|
||
|
||
/* Must be identical to form a circle */
|
||
width: 12px;
|
||
height: 12px;
|
||
background: none;
|
||
border: none;
|
||
position: absolute;
|
||
right: 0;
|
||
}
|
||
|
||
.jp-tocItem-content[data-running='0']::after {
|
||
border-radius: 50%;
|
||
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
|
||
background: none;
|
||
}
|
||
|
||
.jp-tocItem-content[data-running='1']::after {
|
||
border-radius: 50%;
|
||
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
|
||
background-color: var(--jp-inverse-layout-color3);
|
||
}
|
||
|
||
.jp-tocItem-content[data-running='0'],
|
||
.jp-tocItem-content[data-running='1'] {
|
||
margin-right: 12px;
|
||
}
|
||
|
||
/*
|
||
* Copyright (c) Jupyter Development Team.
|
||
* Distributed under the terms of the Modified BSD License.
|
||
*/
|
||
|
||
.jp-Notebook-footer {
|
||
height: 27px;
|
||
margin-left: calc(
|
||
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
|
||
var(--jp-cell-padding)
|
||
);
|
||
width: calc(
|
||
100% -
|
||
(
|
||
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
|
||
var(--jp-cell-padding) + var(--jp-cell-padding)
|
||
)
|
||
);
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
|
||
color: var(--jp-ui-font-color3);
|
||
margin-top: 6px;
|
||
background: none;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.jp-Notebook-footer:focus {
|
||
border-color: var(--jp-cell-editor-active-border-color);
|
||
}
|
||
|
||
/* For devices that support hovering, hide footer until hover */
|
||
@media (hover: hover) {
|
||
.jp-Notebook-footer {
|
||
opacity: 0;
|
||
}
|
||
|
||
.jp-Notebook-footer:focus,
|
||
.jp-Notebook-footer:hover {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Imports
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| CSS variables
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
:root {
|
||
--jp-side-by-side-output-size: 1fr;
|
||
--jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size);
|
||
--jp-private-notebook-dragImage-width: 304px;
|
||
--jp-private-notebook-dragImage-height: 36px;
|
||
--jp-private-notebook-selected-color: var(--md-blue-400);
|
||
--jp-private-notebook-active-color: var(--md-green-400);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Notebook
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* stylelint-disable selector-max-class */
|
||
|
||
.jp-NotebookPanel {
|
||
display: block;
|
||
height: 100%;
|
||
}
|
||
|
||
.jp-NotebookPanel.jp-Document {
|
||
min-width: 240px;
|
||
min-height: 120px;
|
||
}
|
||
|
||
.jp-Notebook {
|
||
padding: var(--jp-notebook-padding);
|
||
outline: none;
|
||
overflow: auto;
|
||
background: var(--jp-layout-color0);
|
||
}
|
||
|
||
.jp-Notebook.jp-mod-scrollPastEnd::after {
|
||
display: block;
|
||
content: '';
|
||
min-height: var(--jp-notebook-scroll-padding);
|
||
}
|
||
|
||
.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
|
||
contain: strict;
|
||
}
|
||
|
||
.jp-Notebook .jp-Cell {
|
||
overflow: visible;
|
||
}
|
||
|
||
.jp-Notebook .jp-Cell .jp-InputPrompt {
|
||
cursor: move;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Notebook state related styling
|
||
|
|
||
| The notebook and cells each have states, here are the possibilities:
|
||
|
|
||
| - Notebook
|
||
| - Command
|
||
| - Edit
|
||
| - Cell
|
||
| - None
|
||
| - Active (only one can be active)
|
||
| - Selected (the cells actions are applied to)
|
||
| - Multiselected (when multiple selected, the cursor)
|
||
| - No outputs
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/* Command or edit modes */
|
||
|
||
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
|
||
opacity: var(--jp-cell-prompt-not-active-opacity);
|
||
color: var(--jp-cell-prompt-not-active-font-color);
|
||
}
|
||
|
||
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
|
||
opacity: var(--jp-cell-prompt-not-active-opacity);
|
||
color: var(--jp-cell-prompt-not-active-font-color);
|
||
}
|
||
|
||
/* cell is active */
|
||
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
|
||
background: var(--jp-brand-color1);
|
||
}
|
||
|
||
/* cell is dirty */
|
||
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
|
||
color: var(--jp-warn-color1);
|
||
}
|
||
|
||
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before {
|
||
color: var(--jp-warn-color1);
|
||
content: '•';
|
||
}
|
||
|
||
.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
|
||
background: var(--jp-warn-color1);
|
||
}
|
||
|
||
/* collapser is hovered */
|
||
.jp-Notebook .jp-Cell .jp-Collapser:hover {
|
||
box-shadow: var(--jp-elevation-z2);
|
||
background: var(--jp-brand-color1);
|
||
opacity: var(--jp-cell-collapser-not-active-hover-opacity);
|
||
}
|
||
|
||
/* cell is active and collapser is hovered */
|
||
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
|
||
background: var(--jp-brand-color0);
|
||
opacity: 1;
|
||
}
|
||
|
||
/* Command mode */
|
||
|
||
.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
|
||
background: var(--jp-notebook-multiselected-color);
|
||
}
|
||
|
||
.jp-Notebook.jp-mod-commandMode
|
||
.jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
|
||
background: transparent;
|
||
}
|
||
|
||
/* Edit mode */
|
||
|
||
.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
|
||
box-shadow: var(--jp-input-box-shadow);
|
||
background-color: var(--jp-cell-editor-active-background);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Notebook drag and drop
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Notebook-cell.jp-mod-dropSource {
|
||
opacity: 0.5;
|
||
}
|
||
|
||
.jp-Notebook-cell.jp-mod-dropTarget,
|
||
.jp-Notebook.jp-mod-commandMode
|
||
.jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
|
||
border-top-color: var(--jp-private-notebook-selected-color);
|
||
border-top-style: solid;
|
||
border-top-width: 2px;
|
||
}
|
||
|
||
.jp-dragImage {
|
||
display: block;
|
||
flex-direction: row;
|
||
width: var(--jp-private-notebook-dragImage-width);
|
||
height: var(--jp-private-notebook-dragImage-height);
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
|
||
background: var(--jp-cell-editor-background);
|
||
overflow: visible;
|
||
}
|
||
|
||
.jp-dragImage-singlePrompt {
|
||
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
|
||
}
|
||
|
||
.jp-dragImage .jp-dragImage-content {
|
||
flex: 1 1 auto;
|
||
z-index: 2;
|
||
font-size: var(--jp-code-font-size);
|
||
font-family: var(--jp-code-font-family);
|
||
line-height: var(--jp-code-line-height);
|
||
padding: var(--jp-code-padding);
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
|
||
background: var(--jp-cell-editor-background-color);
|
||
color: var(--jp-content-font-color3);
|
||
text-align: left;
|
||
margin: 4px 4px 4px 0;
|
||
}
|
||
|
||
.jp-dragImage .jp-dragImage-prompt {
|
||
flex: 0 0 auto;
|
||
min-width: 36px;
|
||
color: var(--jp-cell-inprompt-font-color);
|
||
padding: var(--jp-code-padding);
|
||
padding-left: 12px;
|
||
font-family: var(--jp-cell-prompt-font-family);
|
||
letter-spacing: var(--jp-cell-prompt-letter-spacing);
|
||
line-height: 1.9;
|
||
font-size: var(--jp-code-font-size);
|
||
border: var(--jp-border-width) solid transparent;
|
||
}
|
||
|
||
.jp-dragImage-multipleBack {
|
||
z-index: -1;
|
||
position: absolute;
|
||
height: 32px;
|
||
width: 300px;
|
||
top: 8px;
|
||
left: 8px;
|
||
background: var(--jp-layout-color2);
|
||
border: var(--jp-border-width) solid var(--jp-input-border-color);
|
||
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Cell toolbar
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-NotebookTools {
|
||
display: block;
|
||
min-width: var(--jp-sidebar-min-width);
|
||
color: var(--jp-ui-font-color1);
|
||
background: var(--jp-layout-color1);
|
||
|
||
/* This is needed so that all font sizing of children done in ems is
|
||
* relative to this base size */
|
||
font-size: var(--jp-ui-font-size1);
|
||
overflow: auto;
|
||
}
|
||
|
||
.jp-ActiveCellTool {
|
||
padding: 12px 0;
|
||
display: flex;
|
||
}
|
||
|
||
.jp-ActiveCellTool-Content {
|
||
flex: 1 1 auto;
|
||
}
|
||
|
||
.jp-ActiveCellTool .jp-ActiveCellTool-CellContent {
|
||
background: var(--jp-cell-editor-background);
|
||
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
|
||
border-radius: 0;
|
||
min-height: 29px;
|
||
}
|
||
|
||
.jp-ActiveCellTool .jp-InputPrompt {
|
||
min-width: calc(var(--jp-cell-prompt-width) * 0.75);
|
||
}
|
||
|
||
.jp-ActiveCellTool-CellContent > pre {
|
||
padding: 5px 4px;
|
||
margin: 0;
|
||
white-space: normal;
|
||
}
|
||
|
||
.jp-MetadataEditorTool {
|
||
flex-direction: column;
|
||
padding: 12px 0;
|
||
}
|
||
|
||
.jp-RankedPanel > :not(:first-child) {
|
||
margin-top: 12px;
|
||
}
|
||
|
||
.jp-KeySelector select.jp-mod-styled {
|
||
font-size: var(--jp-ui-font-size1);
|
||
color: var(--jp-ui-font-color0);
|
||
border: var(--jp-border-width) solid var(--jp-border-color1);
|
||
}
|
||
|
||
.jp-KeySelector label,
|
||
.jp-MetadataEditorTool label,
|
||
.jp-NumberSetter label {
|
||
line-height: 1.4;
|
||
}
|
||
|
||
.jp-NotebookTools .jp-select-wrapper {
|
||
margin-top: 4px;
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.jp-NumberSetter input {
|
||
width: 100%;
|
||
margin-top: 4px;
|
||
}
|
||
|
||
.jp-NotebookTools .jp-Collapse {
|
||
margin-top: 16px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Presentation Mode (.jp-mod-presentationMode)
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-mod-presentationMode .jp-Notebook {
|
||
--jp-content-font-size1: var(--jp-content-presentation-font-size1);
|
||
--jp-code-font-size: var(--jp-code-presentation-font-size);
|
||
}
|
||
|
||
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
|
||
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
|
||
flex: 0 0 110px;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Side-by-side Mode (.jp-mod-sideBySide)
|
||
|----------------------------------------------------------------------------*/
|
||
.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {
|
||
margin-top: 3em;
|
||
margin-bottom: 3em;
|
||
margin-left: 5%;
|
||
margin-right: 5%;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 1fr) min-content minmax(
|
||
0,
|
||
var(--jp-side-by-side-output-size)
|
||
);
|
||
grid-template-rows: auto minmax(0, 1fr) auto;
|
||
grid-template-areas:
|
||
'header header header'
|
||
'input handle output'
|
||
'footer footer footer';
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell {
|
||
grid-template-columns: minmax(0, 1fr) min-content minmax(
|
||
0,
|
||
var(--jp-side-by-side-resized-cell)
|
||
);
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader {
|
||
grid-area: header;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper {
|
||
grid-area: input;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper {
|
||
/* overwrite the default margin (no vertical separation needed in side by side move */
|
||
margin-top: 0;
|
||
grid-area: output;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter {
|
||
grid-area: footer;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle {
|
||
grid-area: handle;
|
||
user-select: none;
|
||
display: block;
|
||
height: 100%;
|
||
cursor: ew-resize;
|
||
padding: 0 var(--jp-cell-padding);
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after {
|
||
content: '';
|
||
display: block;
|
||
background: var(--jp-border-color2);
|
||
height: 100%;
|
||
width: 5px;
|
||
}
|
||
|
||
.jp-mod-sideBySide.jp-Notebook
|
||
.jp-CodeCell.jp-mod-resizedCell
|
||
.jp-CellResizeHandle::after {
|
||
background: var(--jp-border-color0);
|
||
}
|
||
|
||
.jp-CellResizeHandle {
|
||
display: none;
|
||
}
|
||
|
||
/*-----------------------------------------------------------------------------
|
||
| Placeholder
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
.jp-Cell-Placeholder {
|
||
padding-left: 55px;
|
||
}
|
||
|
||
.jp-Cell-Placeholder-wrapper {
|
||
background: #fff;
|
||
border: 1px solid;
|
||
border-color: #e5e6e9 #dfe0e4 #d0d1d5;
|
||
border-radius: 4px;
|
||
-webkit-border-radius: 4px;
|
||
margin: 10px 15px;
|
||
}
|
||
|
||
.jp-Cell-Placeholder-wrapper-inner {
|
||
padding: 15px;
|
||
position: relative;
|
||
}
|
||
|
||
.jp-Cell-Placeholder-wrapper-body {
|
||
background-repeat: repeat;
|
||
background-size: 50% auto;
|
||
}
|
||
|
||
.jp-Cell-Placeholder-wrapper-body div {
|
||
background: #f6f7f8;
|
||
background-image: -webkit-linear-gradient(
|
||
left,
|
||
#f6f7f8 0%,
|
||
#edeef1 20%,
|
||
#f6f7f8 40%,
|
||
#f6f7f8 100%
|
||
);
|
||
background-repeat: no-repeat;
|
||
background-size: 800px 104px;
|
||
height: 104px;
|
||
position: absolute;
|
||
right: 15px;
|
||
left: 15px;
|
||
top: 15px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-h1 {
|
||
top: 20px;
|
||
height: 20px;
|
||
left: 15px;
|
||
width: 150px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-h2 {
|
||
left: 15px;
|
||
top: 50px;
|
||
height: 10px;
|
||
width: 100px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-content-1,
|
||
div.jp-Cell-Placeholder-content-2,
|
||
div.jp-Cell-Placeholder-content-3 {
|
||
left: 15px;
|
||
right: 15px;
|
||
height: 10px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-content-1 {
|
||
top: 100px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-content-2 {
|
||
top: 120px;
|
||
}
|
||
|
||
div.jp-Cell-Placeholder-content-3 {
|
||
top: 140px;
|
||
}
|
||
|
||
</style>
|
||
<style type="text/css">
|
||
/*-----------------------------------------------------------------------------
|
||
| Copyright (c) Jupyter Development Team.
|
||
| Distributed under the terms of the Modified BSD License.
|
||
|----------------------------------------------------------------------------*/
|
||
|
||
/*
|
||
The following CSS variables define the main, public API for styling JupyterLab.
|
||
These variables should be used by all plugins wherever possible. In other
|
||
words, plugins should not define custom colors, sizes, etc unless absolutely
|
||
necessary. This enables users to change the visual theme of JupyterLab
|
||
by changing these variables.
|
||
|
||
Many variables appear in an ordered sequence (0,1,2,3). These sequences
|
||
are designed to work well together, so for example, `--jp-border-color1` should
|
||
be used with `--jp-layout-color1`. The numbers have the following meanings:
|
||
|
||
* 0: super-primary, reserved for special emphasis
|
||
* 1: primary, most important under normal situations
|
||
* 2: secondary, next most important under normal situations
|
||
* 3: tertiary, next most important under normal situations
|
||
|
||
Throughout JupyterLab, we are mostly following principles from Google's
|
||
Material Design when selecting colors. We are not, however, following
|
||
all of MD as it is not optimized for dense, information rich UIs.
|
||
*/
|
||
|
||
:root {
|
||
/* Elevation
|
||
*
|
||
* We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
|
||
*
|
||
* https://github.com/material-components/material-components-web
|
||
* https://material-components-web.appspot.com/elevation.html
|
||
*/
|
||
|
||
--jp-shadow-base-lightness: 0;
|
||
--jp-shadow-umbra-color: rgba(
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
0.2
|
||
);
|
||
--jp-shadow-penumbra-color: rgba(
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
0.14
|
||
);
|
||
--jp-shadow-ambient-color: rgba(
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
var(--jp-shadow-base-lightness),
|
||
0.12
|
||
);
|
||
--jp-elevation-z0: none;
|
||
--jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color),
|
||
0 1px 1px 0 var(--jp-shadow-penumbra-color),
|
||
0 1px 3px 0 var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color),
|
||
0 2px 2px 0 var(--jp-shadow-penumbra-color),
|
||
0 1px 5px 0 var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color),
|
||
0 4px 5px 0 var(--jp-shadow-penumbra-color),
|
||
0 1px 10px 0 var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color),
|
||
0 6px 10px 0 var(--jp-shadow-penumbra-color),
|
||
0 1px 18px 0 var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color),
|
||
0 8px 10px 1px var(--jp-shadow-penumbra-color),
|
||
0 3px 14px 2px var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color),
|
||
0 12px 17px 2px var(--jp-shadow-penumbra-color),
|
||
0 5px 22px 4px var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color),
|
||
0 16px 24px 2px var(--jp-shadow-penumbra-color),
|
||
0 6px 30px 5px var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color),
|
||
0 20px 31px 3px var(--jp-shadow-penumbra-color),
|
||
0 8px 38px 7px var(--jp-shadow-ambient-color);
|
||
--jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color),
|
||
0 24px 38px 3px var(--jp-shadow-penumbra-color),
|
||
0 9px 46px 8px var(--jp-shadow-ambient-color);
|
||
|
||
/* Borders
|
||
*
|
||
* The following variables, specify the visual styling of borders in JupyterLab.
|
||
*/
|
||
|
||
--jp-border-width: 1px;
|
||
--jp-border-color0: var(--md-grey-400);
|
||
--jp-border-color1: var(--md-grey-400);
|
||
--jp-border-color2: var(--md-grey-300);
|
||
--jp-border-color3: var(--md-grey-200);
|
||
--jp-inverse-border-color: var(--md-grey-600);
|
||
--jp-border-radius: 2px;
|
||
|
||
/* UI Fonts
|
||
*
|
||
* The UI font CSS variables are used for the typography all of the JupyterLab
|
||
* user interface elements that are not directly user generated content.
|
||
*
|
||
* The font sizing here is done assuming that the body font size of --jp-ui-font-size1
|
||
* is applied to a parent element. When children elements, such as headings, are sized
|
||
* in em all things will be computed relative to that body size.
|
||
*/
|
||
|
||
--jp-ui-font-scale-factor: 1.2;
|
||
--jp-ui-font-size0: 0.83333em;
|
||
--jp-ui-font-size1: 13px; /* Base font size */
|
||
--jp-ui-font-size2: 1.2em;
|
||
--jp-ui-font-size3: 1.44em;
|
||
--jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI',
|
||
helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
|
||
'Segoe UI Symbol';
|
||
|
||
/*
|
||
* Use these font colors against the corresponding main layout colors.
|
||
* In a light theme, these go from dark to light.
|
||
*/
|
||
|
||
/* Defaults use Material Design specification */
|
||
--jp-ui-font-color0: rgba(0, 0, 0, 1);
|
||
--jp-ui-font-color1: rgba(0, 0, 0, 0.87);
|
||
--jp-ui-font-color2: rgba(0, 0, 0, 0.54);
|
||
--jp-ui-font-color3: rgba(0, 0, 0, 0.38);
|
||
|
||
/*
|
||
* Use these against the brand/accent/warn/error colors.
|
||
* These will typically go from light to darker, in both a dark and light theme.
|
||
*/
|
||
|
||
--jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
|
||
--jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
|
||
--jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
|
||
--jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);
|
||
|
||
/* Content Fonts
|
||
*
|
||
* Content font variables are used for typography of user generated content.
|
||
*
|
||
* The font sizing here is done assuming that the body font size of --jp-content-font-size1
|
||
* is applied to a parent element. When children elements, such as headings, are sized
|
||
* in em all things will be computed relative to that body size.
|
||
*/
|
||
|
||
--jp-content-line-height: 1.6;
|
||
--jp-content-font-scale-factor: 1.2;
|
||
--jp-content-font-size0: 0.83333em;
|
||
--jp-content-font-size1: 14px; /* Base font size */
|
||
--jp-content-font-size2: 1.2em;
|
||
--jp-content-font-size3: 1.44em;
|
||
--jp-content-font-size4: 1.728em;
|
||
--jp-content-font-size5: 2.0736em;
|
||
|
||
/* This gives a magnification of about 125% in presentation mode over normal. */
|
||
--jp-content-presentation-font-size1: 17px;
|
||
--jp-content-heading-line-height: 1;
|
||
--jp-content-heading-margin-top: 1.2em;
|
||
--jp-content-heading-margin-bottom: 0.8em;
|
||
--jp-content-heading-font-weight: 500;
|
||
|
||
/* Defaults use Material Design specification */
|
||
--jp-content-font-color0: rgba(0, 0, 0, 1);
|
||
--jp-content-font-color1: rgba(0, 0, 0, 0.87);
|
||
--jp-content-font-color2: rgba(0, 0, 0, 0.54);
|
||
--jp-content-font-color3: rgba(0, 0, 0, 0.38);
|
||
--jp-content-link-color: var(--md-blue-900);
|
||
--jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont,
|
||
'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji',
|
||
'Segoe UI Emoji', 'Segoe UI Symbol';
|
||
|
||
/*
|
||
* Code Fonts
|
||
*
|
||
* Code font variables are used for typography of code and other monospaces content.
|
||
*/
|
||
|
||
--jp-code-font-size: 13px;
|
||
--jp-code-line-height: 1.3077; /* 17px for 13px base */
|
||
--jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
|
||
--jp-code-font-family-default: menlo, consolas, 'DejaVu Sans Mono', monospace;
|
||
--jp-code-font-family: var(--jp-code-font-family-default);
|
||
|
||
/* This gives a magnification of about 125% in presentation mode over normal. */
|
||
--jp-code-presentation-font-size: 16px;
|
||
|
||
/* may need to tweak cursor width if you change font size */
|
||
--jp-code-cursor-width0: 1.4px;
|
||
--jp-code-cursor-width1: 2px;
|
||
--jp-code-cursor-width2: 4px;
|
||
|
||
/* Layout
|
||
*
|
||
* The following are the main layout colors use in JupyterLab. In a light
|
||
* theme these would go from light to dark.
|
||
*/
|
||
|
||
--jp-layout-color0: white;
|
||
--jp-layout-color1: white;
|
||
--jp-layout-color2: var(--md-grey-200);
|
||
--jp-layout-color3: var(--md-grey-400);
|
||
--jp-layout-color4: var(--md-grey-600);
|
||
|
||
/* Inverse Layout
|
||
*
|
||
* The following are the inverse layout colors use in JupyterLab. In a light
|
||
* theme these would go from dark to light.
|
||
*/
|
||
|
||
--jp-inverse-layout-color0: #111;
|
||
--jp-inverse-layout-color1: var(--md-grey-900);
|
||
--jp-inverse-layout-color2: var(--md-grey-800);
|
||
--jp-inverse-layout-color3: var(--md-grey-700);
|
||
--jp-inverse-layout-color4: var(--md-grey-600);
|
||
|
||
/* Brand/accent */
|
||
|
||
--jp-brand-color0: var(--md-blue-900);
|
||
--jp-brand-color1: var(--md-blue-700);
|
||
--jp-brand-color2: var(--md-blue-300);
|
||
--jp-brand-color3: var(--md-blue-100);
|
||
--jp-brand-color4: var(--md-blue-50);
|
||
--jp-accent-color0: var(--md-green-900);
|
||
--jp-accent-color1: var(--md-green-700);
|
||
--jp-accent-color2: var(--md-green-300);
|
||
--jp-accent-color3: var(--md-green-100);
|
||
|
||
/* State colors (warn, error, success, info) */
|
||
|
||
--jp-warn-color0: var(--md-orange-900);
|
||
--jp-warn-color1: var(--md-orange-700);
|
||
--jp-warn-color2: var(--md-orange-300);
|
||
--jp-warn-color3: var(--md-orange-100);
|
||
--jp-error-color0: var(--md-red-900);
|
||
--jp-error-color1: var(--md-red-700);
|
||
--jp-error-color2: var(--md-red-300);
|
||
--jp-error-color3: var(--md-red-100);
|
||
--jp-success-color0: var(--md-green-900);
|
||
--jp-success-color1: var(--md-green-700);
|
||
--jp-success-color2: var(--md-green-300);
|
||
--jp-success-color3: var(--md-green-100);
|
||
--jp-info-color0: var(--md-cyan-900);
|
||
--jp-info-color1: var(--md-cyan-700);
|
||
--jp-info-color2: var(--md-cyan-300);
|
||
--jp-info-color3: var(--md-cyan-100);
|
||
|
||
/* Cell specific styles */
|
||
|
||
--jp-cell-padding: 5px;
|
||
--jp-cell-collapser-width: 8px;
|
||
--jp-cell-collapser-min-height: 20px;
|
||
--jp-cell-collapser-not-active-hover-opacity: 0.6;
|
||
--jp-cell-editor-background: var(--md-grey-100);
|
||
--jp-cell-editor-border-color: var(--md-grey-300);
|
||
--jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
|
||
--jp-cell-editor-active-background: var(--jp-layout-color0);
|
||
--jp-cell-editor-active-border-color: var(--jp-brand-color1);
|
||
--jp-cell-prompt-width: 64px;
|
||
--jp-cell-prompt-font-family: var(--jp-code-font-family-default);
|
||
--jp-cell-prompt-letter-spacing: 0;
|
||
--jp-cell-prompt-opacity: 1;
|
||
--jp-cell-prompt-not-active-opacity: 0.5;
|
||
--jp-cell-prompt-not-active-font-color: var(--md-grey-700);
|
||
|
||
/* A custom blend of MD grey and blue 600
|
||
* See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
|
||
--jp-cell-inprompt-font-color: #307fc1;
|
||
|
||
/* A custom blend of MD grey and orange 600
|
||
* https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
|
||
--jp-cell-outprompt-font-color: #bf5b3d;
|
||
|
||
/* Notebook specific styles */
|
||
|
||
--jp-notebook-padding: 10px;
|
||
--jp-notebook-select-background: var(--jp-layout-color1);
|
||
--jp-notebook-multiselected-color: var(--md-blue-50);
|
||
|
||
/* The scroll padding is calculated to fill enough space at the bottom of the
|
||
notebook to show one single-line cell (with appropriate padding) at the top
|
||
when the notebook is scrolled all the way to the bottom. We also subtract one
|
||
pixel so that no scrollbar appears if we have just one single-line cell in the
|
||
notebook. This padding is to enable a 'scroll past end' feature in a notebook.
|
||
*/
|
||
--jp-notebook-scroll-padding: calc(
|
||
100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
|
||
var(--jp-code-padding) - var(--jp-cell-padding) - 1px
|
||
);
|
||
|
||
/* Rendermime styles */
|
||
|
||
--jp-rendermime-error-background: #fdd;
|
||
--jp-rendermime-table-row-background: var(--md-grey-100);
|
||
--jp-rendermime-table-row-hover-background: var(--md-light-blue-50);
|
||
|
||
/* Dialog specific styles */
|
||
|
||
--jp-dialog-background: rgba(0, 0, 0, 0.25);
|
||
|
||
/* Console specific styles */
|
||
|
||
--jp-console-padding: 10px;
|
||
|
||
/* Toolbar specific styles */
|
||
|
||
--jp-toolbar-border-color: var(--jp-border-color1);
|
||
--jp-toolbar-micro-height: 8px;
|
||
--jp-toolbar-background: var(--jp-layout-color1);
|
||
--jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24);
|
||
--jp-toolbar-header-margin: 4px 4px 0 4px;
|
||
--jp-toolbar-active-background: var(--md-grey-300);
|
||
|
||
/* Statusbar specific styles */
|
||
|
||
--jp-statusbar-height: 24px;
|
||
|
||
/* Input field styles */
|
||
|
||
--jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
|
||
--jp-input-active-background: var(--jp-layout-color1);
|
||
--jp-input-hover-background: var(--jp-layout-color1);
|
||
--jp-input-background: var(--md-grey-100);
|
||
--jp-input-border-color: var(--jp-inverse-border-color);
|
||
--jp-input-active-border-color: var(--jp-brand-color1);
|
||
--jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);
|
||
|
||
/* General editor styles */
|
||
|
||
--jp-editor-selected-background: #d9d9d9;
|
||
--jp-editor-selected-focused-background: #d7d4f0;
|
||
--jp-editor-cursor-color: var(--jp-ui-font-color0);
|
||
|
||
/* Code mirror specific styles */
|
||
|
||
--jp-mirror-editor-keyword-color: #008000;
|
||
--jp-mirror-editor-atom-color: #88f;
|
||
--jp-mirror-editor-number-color: #080;
|
||
--jp-mirror-editor-def-color: #00f;
|
||
--jp-mirror-editor-variable-color: var(--md-grey-900);
|
||
--jp-mirror-editor-variable-2-color: rgb(0, 54, 109);
|
||
--jp-mirror-editor-variable-3-color: #085;
|
||
--jp-mirror-editor-punctuation-color: #05a;
|
||
--jp-mirror-editor-property-color: #05a;
|
||
--jp-mirror-editor-operator-color: #a2f;
|
||
--jp-mirror-editor-comment-color: #408080;
|
||
--jp-mirror-editor-string-color: #ba2121;
|
||
--jp-mirror-editor-string-2-color: #708;
|
||
--jp-mirror-editor-meta-color: #a2f;
|
||
--jp-mirror-editor-qualifier-color: #555;
|
||
--jp-mirror-editor-builtin-color: #008000;
|
||
--jp-mirror-editor-bracket-color: #997;
|
||
--jp-mirror-editor-tag-color: #170;
|
||
--jp-mirror-editor-attribute-color: #00c;
|
||
--jp-mirror-editor-header-color: blue;
|
||
--jp-mirror-editor-quote-color: #090;
|
||
--jp-mirror-editor-link-color: #00c;
|
||
--jp-mirror-editor-error-color: #f00;
|
||
--jp-mirror-editor-hr-color: #999;
|
||
|
||
/*
|
||
RTC user specific colors.
|
||
These colors are used for the cursor, username in the editor,
|
||
and the icon of the user.
|
||
*/
|
||
|
||
--jp-collaborator-color1: #ffad8e;
|
||
--jp-collaborator-color2: #dac83d;
|
||
--jp-collaborator-color3: #72dd76;
|
||
--jp-collaborator-color4: #00e4d0;
|
||
--jp-collaborator-color5: #45d4ff;
|
||
--jp-collaborator-color6: #e2b1ff;
|
||
--jp-collaborator-color7: #ff9de6;
|
||
|
||
/* Vega extension styles */
|
||
|
||
--jp-vega-background: white;
|
||
|
||
/* Sidebar-related styles */
|
||
|
||
--jp-sidebar-min-width: 250px;
|
||
|
||
/* Search-related styles */
|
||
|
||
--jp-search-toggle-off-opacity: 0.5;
|
||
--jp-search-toggle-hover-opacity: 0.8;
|
||
--jp-search-toggle-on-opacity: 1;
|
||
--jp-search-selected-match-background-color: rgb(245, 200, 0);
|
||
--jp-search-selected-match-color: black;
|
||
--jp-search-unselected-match-background-color: var(
|
||
--jp-inverse-layout-color0
|
||
);
|
||
--jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);
|
||
|
||
/* Icon colors that work well with light or dark backgrounds */
|
||
--jp-icon-contrast-color0: var(--md-purple-600);
|
||
--jp-icon-contrast-color1: var(--md-green-600);
|
||
--jp-icon-contrast-color2: var(--md-pink-600);
|
||
--jp-icon-contrast-color3: var(--md-blue-600);
|
||
|
||
/* Button colors */
|
||
--jp-accept-color-normal: var(--md-blue-700);
|
||
--jp-accept-color-hover: var(--md-blue-800);
|
||
--jp-accept-color-active: var(--md-blue-900);
|
||
--jp-warn-color-normal: var(--md-red-700);
|
||
--jp-warn-color-hover: var(--md-red-800);
|
||
--jp-warn-color-active: var(--md-red-900);
|
||
--jp-reject-color-normal: var(--md-grey-600);
|
||
--jp-reject-color-hover: var(--md-grey-700);
|
||
--jp-reject-color-active: var(--md-grey-800);
|
||
|
||
/* File or activity icons and switch semantic variables */
|
||
--jp-jupyter-icon-color: #f37626;
|
||
--jp-notebook-icon-color: #f37626;
|
||
--jp-json-icon-color: var(--md-orange-700);
|
||
--jp-console-icon-background-color: var(--md-blue-700);
|
||
--jp-console-icon-color: white;
|
||
--jp-terminal-icon-background-color: var(--md-grey-800);
|
||
--jp-terminal-icon-color: var(--md-grey-200);
|
||
--jp-text-editor-icon-color: var(--md-grey-700);
|
||
--jp-inspector-icon-color: var(--md-grey-700);
|
||
--jp-switch-color: var(--md-grey-400);
|
||
--jp-switch-true-position-color: var(--md-orange-900);
|
||
}
|
||
</style>
|
||
<style type="text/css">
|
||
/* Force rendering true colors when outputing to pdf */
|
||
* {
|
||
-webkit-print-color-adjust: exact;
|
||
}
|
||
|
||
/* Misc */
|
||
a.anchor-link {
|
||
display: none;
|
||
}
|
||
|
||
/* Input area styling */
|
||
.jp-InputArea {
|
||
overflow: hidden;
|
||
}
|
||
|
||
.jp-InputArea-editor {
|
||
overflow: hidden;
|
||
}
|
||
|
||
.cm-editor.cm-s-jupyter .highlight pre {
|
||
/* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.cm-line */
|
||
padding: var(--jp-code-padding) 4px;
|
||
margin: 0;
|
||
|
||
font-family: inherit;
|
||
font-size: inherit;
|
||
line-height: inherit;
|
||
color: inherit;
|
||
|
||
}
|
||
|
||
.jp-OutputArea-output pre {
|
||
line-height: inherit;
|
||
font-family: inherit;
|
||
}
|
||
|
||
.jp-RenderedText pre {
|
||
color: var(--jp-content-font-color1);
|
||
font-size: var(--jp-code-font-size);
|
||
}
|
||
|
||
/* Hiding the collapser by default */
|
||
.jp-Collapser {
|
||
display: none;
|
||
}
|
||
|
||
@page {
|
||
margin: 0.5in; /* Margin for each printed piece of paper */
|
||
}
|
||
|
||
@media print {
|
||
.jp-Cell-inputWrapper,
|
||
.jp-Cell-outputWrapper {
|
||
display: block;
|
||
}
|
||
}
|
||
</style>
|
||
<!-- Load mathjax -->
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
|
||
<!-- MathJax configuration -->
|
||
<script type="text/x-mathjax-config">
|
||
init_mathjax = function() {
|
||
if (window.MathJax) {
|
||
// MathJax loaded
|
||
MathJax.Hub.Config({
|
||
TeX: {
|
||
equationNumbers: {
|
||
autoNumber: "AMS",
|
||
useLabelIds: true
|
||
}
|
||
},
|
||
tex2jax: {
|
||
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
|
||
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
|
||
processEscapes: true,
|
||
processEnvironments: true
|
||
},
|
||
displayAlign: 'center',
|
||
messageStyle: 'none',
|
||
CommonHTML: {
|
||
linebreaks: {
|
||
automatic: true
|
||
}
|
||
}
|
||
});
|
||
|
||
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
|
||
}
|
||
}
|
||
init_mathjax();
|
||
</script>
|
||
<!-- End of mathjax configuration --><script type="module">
|
||
document.addEventListener("DOMContentLoaded", async () => {
|
||
const diagrams = document.querySelectorAll(".jp-Mermaid > pre.mermaid");
|
||
// do not load mermaidjs if not needed
|
||
if (!diagrams.length) {
|
||
return;
|
||
}
|
||
const mermaid = (await import("https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs")).default;
|
||
const parser = new DOMParser();
|
||
|
||
mermaid.initialize({
|
||
maxTextSize: 100000,
|
||
maxEdges: 100000,
|
||
startOnLoad: false,
|
||
fontFamily: window
|
||
.getComputedStyle(document.body)
|
||
.getPropertyValue("--jp-ui-font-family"),
|
||
theme: document.querySelector("body[data-jp-theme-light='true']")
|
||
? "default"
|
||
: "dark",
|
||
});
|
||
|
||
let _nextMermaidId = 0;
|
||
|
||
function makeMermaidImage(svg) {
|
||
const img = document.createElement("img");
|
||
const doc = parser.parseFromString(svg, "image/svg+xml");
|
||
const svgEl = doc.querySelector("svg");
|
||
const { maxWidth } = svgEl?.style || {};
|
||
const firstTitle = doc.querySelector("title");
|
||
const firstDesc = doc.querySelector("desc");
|
||
|
||
img.setAttribute("src", `data:image/svg+xml,${encodeURIComponent(svg)}`);
|
||
if (maxWidth) {
|
||
img.width = parseInt(maxWidth);
|
||
}
|
||
if (firstTitle) {
|
||
img.setAttribute("alt", firstTitle.textContent);
|
||
}
|
||
if (firstDesc) {
|
||
const caption = document.createElement("figcaption");
|
||
caption.className = "sr-only";
|
||
caption.textContent = firstDesc.textContent;
|
||
return [img, caption];
|
||
}
|
||
return [img];
|
||
}
|
||
|
||
async function makeMermaidError(text) {
|
||
let errorMessage = "";
|
||
try {
|
||
await mermaid.parse(text);
|
||
} catch (err) {
|
||
errorMessage = `${err}`;
|
||
}
|
||
|
||
const result = document.createElement("details");
|
||
result.className = 'jp-RenderedMermaid-Details';
|
||
const summary = document.createElement("summary");
|
||
summary.className = 'jp-RenderedMermaid-Summary';
|
||
const pre = document.createElement("pre");
|
||
const code = document.createElement("code");
|
||
code.innerText = text;
|
||
pre.appendChild(code);
|
||
summary.appendChild(pre);
|
||
result.appendChild(summary);
|
||
|
||
const warning = document.createElement("pre");
|
||
warning.innerText = errorMessage;
|
||
result.appendChild(warning);
|
||
return [result];
|
||
}
|
||
|
||
async function renderOneMarmaid(src) {
|
||
const id = `jp-mermaid-${_nextMermaidId++}`;
|
||
const parent = src.parentNode;
|
||
let raw = src.textContent.trim();
|
||
const el = document.createElement("div");
|
||
el.style.visibility = "hidden";
|
||
document.body.appendChild(el);
|
||
let results = null;
|
||
let output = null;
|
||
try {
|
||
let { svg } = await mermaid.render(id, raw, el);
|
||
svg = cleanMermaidSvg(svg);
|
||
results = makeMermaidImage(svg);
|
||
output = document.createElement("figure");
|
||
results.map(output.appendChild, output);
|
||
} catch (err) {
|
||
parent.classList.add("jp-mod-warning");
|
||
results = await makeMermaidError(raw);
|
||
output = results[0];
|
||
} finally {
|
||
el.remove();
|
||
}
|
||
parent.classList.add("jp-RenderedMermaid");
|
||
parent.appendChild(output);
|
||
}
|
||
|
||
|
||
/**
|
||
* Post-process to ensure mermaid diagrams contain only valid SVG and XHTML.
|
||
*/
|
||
function cleanMermaidSvg(svg) {
|
||
return svg.replace(RE_VOID_ELEMENT, replaceVoidElement);
|
||
}
|
||
|
||
|
||
/**
|
||
* A regular expression for all void elements, which may include attributes and
|
||
* a slash.
|
||
*
|
||
* @see https://developer.mozilla.org/en-US/docs/Glossary/Void_element
|
||
*
|
||
* Of these, only `<br>` is generated by Mermaid in place of `\n`,
|
||
* but _any_ "malformed" tag will break the SVG rendering entirely.
|
||
*/
|
||
const RE_VOID_ELEMENT =
|
||
/<\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^>]*?)\s*>/gi;
|
||
|
||
/**
|
||
* Ensure a void element is closed with a slash, preserving any attributes.
|
||
*/
|
||
function replaceVoidElement(match, tag, rest) {
|
||
rest = rest.trim();
|
||
if (!rest.endsWith('/')) {
|
||
rest = `${rest} /`;
|
||
}
|
||
return `<${tag} ${rest}>`;
|
||
}
|
||
|
||
void Promise.all([...diagrams].map(renderOneMarmaid));
|
||
});
|
||
</script>
|
||
<style>
|
||
.jp-Mermaid:not(.jp-RenderedMermaid) {
|
||
display: none;
|
||
}
|
||
|
||
.jp-RenderedMermaid {
|
||
overflow: auto;
|
||
display: flex;
|
||
}
|
||
|
||
.jp-RenderedMermaid.jp-mod-warning {
|
||
width: auto;
|
||
padding: 0.5em;
|
||
margin-top: 0.5em;
|
||
border: var(--jp-border-width) solid var(--jp-warn-color2);
|
||
border-radius: var(--jp-border-radius);
|
||
color: var(--jp-ui-font-color1);
|
||
font-size: var(--jp-ui-font-size1);
|
||
white-space: pre-wrap;
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
.jp-RenderedMermaid figure {
|
||
margin: 0;
|
||
overflow: auto;
|
||
max-width: 100%;
|
||
}
|
||
|
||
.jp-RenderedMermaid img {
|
||
max-width: 100%;
|
||
}
|
||
|
||
.jp-RenderedMermaid-Details > pre {
|
||
margin-top: 1em;
|
||
}
|
||
|
||
.jp-RenderedMermaid-Summary {
|
||
color: var(--jp-warn-color2);
|
||
}
|
||
|
||
.jp-RenderedMermaid:not(.jp-mod-warning) pre {
|
||
display: none;
|
||
}
|
||
|
||
.jp-RenderedMermaid-Summary > pre {
|
||
display: inline-block;
|
||
white-space: normal;
|
||
}
|
||
</style>
|
||
<!-- End of mermaid configuration --></head>
|
||
<body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
|
||
<main>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<h1 id="Tutorial:-One-dimensional-Helmholtz-equation-using-Periodic-Boundary-Conditions">Tutorial: One dimensional Helmholtz equation using Periodic Boundary Conditions<a class="anchor-link" href="#Tutorial:-One-dimensional-Helmholtz-equation-using-Periodic-Boundary-Conditions">¶</a></h1><p><a href="https://colab.research.google.com/github/mathLab/PINA/blob/master/tutorials/tutorial9/tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a></p>
|
||
<p>This tutorial presents how to solve with Physics-Informed Neural Networks (PINNs)
|
||
a one dimensional Helmholtz equation with periodic boundary conditions (PBC).
|
||
We will train with standard PINN's training by augmenting the input with
|
||
periodic expansion as presented in <a href="https://arxiv.org/abs/2308.08468"><em>An expert’s guide to training
|
||
physics-informed neural networks</em></a>.</p>
|
||
<p>First of all, some useful imports.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [1]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="c1">## routine needed to run the notebook on Google Colab</span>
|
||
<span class="k">try</span><span class="p">:</span>
|
||
<span class="kn">import</span><span class="w"> </span><span class="nn">google.colab</span>
|
||
|
||
<span class="n">IN_COLAB</span> <span class="o">=</span> <span class="kc">True</span>
|
||
<span class="k">except</span><span class="p">:</span>
|
||
<span class="n">IN_COLAB</span> <span class="o">=</span> <span class="kc">False</span>
|
||
<span class="k">if</span> <span class="n">IN_COLAB</span><span class="p">:</span>
|
||
<span class="o">!</span>pip<span class="w"> </span>install<span class="w"> </span><span class="s2">"pina-mathlab"</span>
|
||
|
||
<span class="kn">import</span><span class="w"> </span><span class="nn">torch</span>
|
||
<span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
|
||
<span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
|
||
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina</span><span class="w"> </span><span class="kn">import</span> <span class="n">Condition</span><span class="p">,</span> <span class="n">Trainer</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.problem</span><span class="w"> </span><span class="kn">import</span> <span class="n">SpatialProblem</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.operator</span><span class="w"> </span><span class="kn">import</span> <span class="n">laplacian</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.model</span><span class="w"> </span><span class="kn">import</span> <span class="n">FeedForward</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.model.block</span><span class="w"> </span><span class="kn">import</span> <span class="n">PeriodicBoundaryEmbedding</span> <span class="c1"># The PBC module</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.solver</span><span class="w"> </span><span class="kn">import</span> <span class="n">PINN</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.domain</span><span class="w"> </span><span class="kn">import</span> <span class="n">CartesianDomain</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.equation</span><span class="w"> </span><span class="kn">import</span> <span class="n">Equation</span>
|
||
<span class="kn">from</span><span class="w"> </span><span class="nn">pina.callback</span><span class="w"> </span><span class="kn">import</span> <span class="n">MetricTracker</span>
|
||
|
||
<span class="n">warnings</span><span class="o">.</span><span class="n">filterwarnings</span><span class="p">(</span><span class="s2">"ignore"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<h2 id="The-problem-definition">The problem definition<a class="anchor-link" href="#The-problem-definition">¶</a></h2><p>The one-dimensional Helmholtz problem is mathematically written as:
|
||
$$
|
||
\begin{cases}
|
||
\frac{d^2}{dx^2}u(x) - \lambda u(x) -f(x) &= 0 \quad x\in(0,2)\\
|
||
u^{(m)}(x=0) - u^{(m)}(x=2) &= 0 \quad m\in[0, 1, \cdots]\\
|
||
\end{cases}
|
||
$$
|
||
In this case we are asking the solution to be $C^{\infty}$ periodic with
|
||
period $2$, on the infinite domain $x\in(-\infty, \infty)$. Notice that the
|
||
classical PINN would need infinite conditions to evaluate the PBC loss function,
|
||
one for each derivative, which is of course infeasible...
|
||
A possible solution, diverging from the original PINN formulation,
|
||
is to use <em>coordinates augmentation</em>. In coordinates augmentation you seek for
|
||
a coordinates transformation $v$ such that $x\rightarrow v(x)$ such that
|
||
the periodicity condition $ u^{(m)}(x=0) - u^{(m)}(x=2) = 0 \quad m\in[0, 1, \cdots] $ is
|
||
satisfied.</p>
|
||
<p>For demonstration purposes, the problem specifics are $\lambda=-10\pi^2$,
|
||
and $f(x)=-6\pi^2\sin(3\pi x)\cos(\pi x)$ which give a solution that can be
|
||
computed analytically $u(x) = \sin(\pi x)\cos(3\pi x)$.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [2]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">helmholtz_equation</span><span class="p">(</span><span class="n">input_</span><span class="p">,</span> <span class="n">output_</span><span class="p">):</span>
|
||
<span class="n">x</span> <span class="o">=</span> <span class="n">input_</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span><span class="s2">"x"</span><span class="p">)</span>
|
||
<span class="n">u_xx</span> <span class="o">=</span> <span class="n">laplacian</span><span class="p">(</span><span class="n">output_</span><span class="p">,</span> <span class="n">input_</span><span class="p">,</span> <span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="s2">"u"</span><span class="p">],</span> <span class="n">d</span><span class="o">=</span><span class="p">[</span><span class="s2">"x"</span><span class="p">])</span>
|
||
<span class="n">f</span> <span class="o">=</span> <span class="p">(</span>
|
||
<span class="o">-</span><span class="mf">6.0</span>
|
||
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">2</span>
|
||
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="mi">3</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span>
|
||
<span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">x</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
<span class="n">lambda_</span> <span class="o">=</span> <span class="o">-</span><span class="mf">10.0</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span><span class="o">**</span><span class="mi">2</span>
|
||
<span class="k">return</span> <span class="n">u_xx</span> <span class="o">-</span> <span class="n">lambda_</span> <span class="o">*</span> <span class="n">output_</span> <span class="o">-</span> <span class="n">f</span>
|
||
|
||
|
||
<span class="k">class</span><span class="w"> </span><span class="nc">Helmholtz</span><span class="p">(</span><span class="n">SpatialProblem</span><span class="p">):</span>
|
||
<span class="n">output_variables</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"u"</span><span class="p">]</span>
|
||
<span class="n">spatial_domain</span> <span class="o">=</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"x"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">]})</span>
|
||
|
||
<span class="c1"># here we write the problem conditions</span>
|
||
<span class="n">conditions</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s2">"phys_cond"</span><span class="p">:</span> <span class="n">Condition</span><span class="p">(</span>
|
||
<span class="n">domain</span><span class="o">=</span><span class="n">spatial_domain</span><span class="p">,</span> <span class="n">equation</span><span class="o">=</span><span class="n">Equation</span><span class="p">(</span><span class="n">helmholtz_equation</span><span class="p">)</span>
|
||
<span class="p">),</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pts</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="n">torch</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">pts</span><span class="p">)</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="mf">3.0</span> <span class="o">*</span> <span class="n">torch</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">pts</span><span class="p">)</span>
|
||
|
||
|
||
<span class="n">problem</span> <span class="o">=</span> <span class="n">Helmholtz</span><span class="p">()</span>
|
||
|
||
<span class="c1"># let's discretise the domain</span>
|
||
<span class="n">problem</span><span class="o">.</span><span class="n">discretise_domain</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="s2">"grid"</span><span class="p">,</span> <span class="n">domains</span><span class="o">=</span><span class="p">[</span><span class="s2">"phys_cond"</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>As usual, the Helmholtz problem is written in <strong>PINA</strong> code as a class.
|
||
The equations are written as <code>conditions</code> that should be satisfied in the
|
||
corresponding domains. The <code>solution</code>
|
||
is the exact solution which will be compared with the predicted one. We used
|
||
Latin Hypercube Sampling for choosing the collocation points.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<h2 id="Solving-the-problem-with-a-Periodic-Network">Solving the problem with a Periodic Network<a class="anchor-link" href="#Solving-the-problem-with-a-Periodic-Network">¶</a></h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>Any $\mathcal{C}^{\infty}$ periodic function
|
||
$u : \mathbb{R} \rightarrow \mathbb{R}$ with period
|
||
$L\in\mathbb{N}$ can be constructed by composition of an
|
||
arbitrary smooth function $f : \mathbb{R}^n \rightarrow \mathbb{R}$ and a
|
||
given smooth periodic function $v : \mathbb{R} \rightarrow \mathbb{R}^n$ with
|
||
period $L$, that is $u(x) = f(v(x))$. The formulation is generalizable for
|
||
arbitrary dimension, see <a href="https://arxiv.org/pdf/2007.07442"><em>A method for representing periodic functions and
|
||
enforcing exactly periodic boundary conditions with
|
||
deep neural networks</em></a>.</p>
|
||
<p>In our case, we rewrite
|
||
$v(x) = \left[1, \cos\left(\frac{2\pi}{L} x\right),
|
||
\sin\left(\frac{2\pi}{L} x\right)\right]$, i.e
|
||
the coordinates augmentation, and $f(\cdot) = NN_{\theta}(\cdot)$ i.e. a neural
|
||
network. The resulting neural network obtained by composing $f$ with $v$ gives
|
||
the PINN approximate solution, that is
|
||
$u(x) \approx u_{\theta}(x)=NN_{\theta}(v(x))$.</p>
|
||
<p>In <strong>PINA</strong> this translates in using the <code>PeriodicBoundaryEmbedding</code> layer for $v$, and any
|
||
<code>pina.model</code> for $NN_{\theta}$. Let's see it in action!</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># we encapsulate all modules in a torch.nn.Sequential container</span>
|
||
<span class="n">model</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span>
|
||
<span class="n">PeriodicBoundaryEmbedding</span><span class="p">(</span><span class="n">input_dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">periods</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
|
||
<span class="n">FeedForward</span><span class="p">(</span>
|
||
<span class="n">input_dimensions</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="c1"># output of PeriodicBoundaryEmbedding = 3 * input_dimension</span>
|
||
<span class="n">output_dimensions</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
||
<span class="n">layers</span><span class="o">=</span><span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||
<span class="p">),</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>As simple as that! Notice that in higher dimension you can specify different periods
|
||
for all dimensions using a dictionary, e.g. <code>periods={'x':2, 'y':3, ...}</code>
|
||
would indicate a periodicity of $2$ in $x$, $3$ in $y$, and so on...</p>
|
||
<p>We will now solve the problem as usually with the <code>PINN</code> and <code>Trainer</code> class, then we will look at the losses using the <code>MetricTracker</code> callback from <code>pina.callback</code>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [4]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="n">pinn</span> <span class="o">=</span> <span class="n">PINN</span><span class="p">(</span>
|
||
<span class="n">problem</span><span class="o">=</span><span class="n">problem</span><span class="p">,</span>
|
||
<span class="n">model</span><span class="o">=</span><span class="n">model</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">trainer</span> <span class="o">=</span> <span class="n">Trainer</span><span class="p">(</span>
|
||
<span class="n">pinn</span><span class="p">,</span>
|
||
<span class="n">max_epochs</span><span class="o">=</span><span class="mi">5000</span><span class="p">,</span>
|
||
<span class="n">accelerator</span><span class="o">=</span><span class="s2">"cpu"</span><span class="p">,</span>
|
||
<span class="n">enable_model_summary</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">callbacks</span><span class="o">=</span><span class="p">[</span><span class="n">MetricTracker</span><span class="p">()],</span>
|
||
<span class="n">train_size</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
|
||
<span class="n">val_size</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
||
<span class="n">test_size</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">trainer</span><span class="o">.</span><span class="n">train</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell-outputWrapper">
|
||
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
|
||
</div>
|
||
<div class="jp-OutputArea jp-Cell-outputArea">
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
|
||
<pre>GPU available: False, used: False
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
|
||
<pre>TPU available: False, using: 0 TPU cores
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
|
||
<pre>HPU available: False, using: 0 HPUs
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
|
||
<pre>Missing logger folder: /home/runner/work/PINA/PINA/tutorials/tutorial9/lightning_logs
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jupyter-widgets jp-OutputArea-output" id="29cc13fa-b22c-40de-bd88-95baba67e10e" tabindex="0">
|
||
<script type="text/javascript">
|
||
var element = document.getElementById('29cc13fa-b22c-40de-bd88-95baba67e10e');
|
||
</script>
|
||
<script type="application/vnd.jupyter.widget-view+json">
|
||
{"version_major": 2, "version_minor": 0, "model_id": "fab964d8d7b24c87a5a92c220a52e130"}
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr" tabindex="0">
|
||
<pre>`Trainer.fit` stopped: `max_epochs=5000` reached.
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [5]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># plot loss</span>
|
||
<span class="n">trainer_metrics</span> <span class="o">=</span> <span class="n">trainer</span><span class="o">.</span><span class="n">callbacks</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">metrics</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span>
|
||
<span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">trainer_metrics</span><span class="p">[</span><span class="s2">"train_loss"</span><span class="p">])),</span> <span class="n">trainer_metrics</span><span class="p">[</span><span class="s2">"train_loss"</span><span class="p">]</span>
|
||
<span class="p">)</span>
|
||
<span class="c1"># plotting</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"epoch"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"loss"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">yscale</span><span class="p">(</span><span class="s2">"log"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell-outputWrapper">
|
||
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
|
||
</div>
|
||
<div class="jp-OutputArea jp-Cell-outputArea">
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
|
||
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,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z7v7cbYYhmGc+7gSAACA52GOEAAA8FoUIQAA4LUoQgAAwGtRhAAAgNeiCAEAAK9FEQIAAF6LIgQAALwWRQgAAHgtihAAnIElS5bIYrGccBNJAJ6JIgQAALwWRQgAAHgtihAAj+JwODR16lR169ZNQUFBSk1N1UcffSTph9NW8+fP14ABAxQYGKgLL7xQmzdvbvYaH3/8sfr16yer1ark5GS99NJLzZ6vq6vT73//eyUmJspqtapHjx76xz/+0WyfrKwsDRo0SMHBwRo2bJh27NjRuh8cQKugCAHwKFOnTtV7772nmTNnasuWLXrooYf061//WkuXLnXu8+ijj+qll17S2rVr1alTJ40dO1YNDQ2SmgrMTTfdpF/+8pfatGmT/vjHP+rpp5/WrFmznL9/66236v3339f06dO1bds2vfHGGwoJCWmW46mnntJLL72kdevWyc/PT7fffnubfH4ArsXd5wF4jLq6OkVFRWnRokUaOnSoc/sdd9yhw4cP66677tLIkSM1e/ZsTZgwQZJUVlamhIQEzZo1SzfddJNuueUWHTp0SAsXLnT+/mOPPab58+dry5YtysnJUe/evfXVV18pMzPzhAxLlizRyJEjtWjRIo0aNUqS9MUXX+iqq67SkSNHFBgY2MpHAYArMSIEwGPk5ubq8OHDuuyyyxQSEuJ8vPfee9q1a5dzvx+XpKioKPXu3Vvbtm2TJG3btk3Dhw9v9rrDhw/Xzp07ZbfblZ2dLV9fX11yySWnzDJgwADnnzt37ixJKi4uPufPCKBt+ZkdAABOV01NjSRp/vz56tKlS7PnrFZrszJ0toKCgk5rP39/f+efLRaLpKb5SwA8CyNCADxGSkqKrFar9u7dqx49ejR7JCYmOvf77rvvnH8uLy9XTk6O+vbtK0nq27evVqxY0ex1V6xYoV69esnX11fnn3++HA5HszlHANovRoQAeIzQ0FA98sgjeuihh+RwOHTRRRepsrJSK1asUFhYmLp27SpJ+vOf/6yOHTsqNjZWTz31lKKjo3XttddKkh5++GENHjxYzz77rCZMmKBVq1ZpxowZeu211yRJycnJmjhxom6//XZNnz5dqampys/PV3FxsW666SazPjqAVkIRAuBRnn32WXXq1ElTp07V7t27FRERoYEDB+rJJ590npp6/vnn9cADD2jnzp1KS0vTf/7zHwUEBEiSBg4cqA8++EB/+MMf9Oyzz6pz587685//rNtuu835Hq+//rqefPJJ3XPPPSotLVVSUpKefPJJMz4ugFbGqjEA7cbxFV3l5eWKiIgwOw4AD8AcIQAA4LUoQgAAwGtxagwAAHgtRoQAAIDXoggBAACvRRECAABeiyIEAAC8FkUIAAB4LYoQAADwWhQhAADgtShCAADAa/3/MvixcwTY8T4AAAAASUVORK5CYII="/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>We are going to plot the solution now!</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="n">pts</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">problem</span><span class="o">.</span><span class="n">spatial_domain</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">256</span><span class="p">,</span> <span class="s2">"grid"</span><span class="p">,</span> <span class="n">variables</span><span class="o">=</span><span class="s2">"x"</span><span class="p">)</span>
|
||
<span class="n">predicted_output</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">forward</span><span class="p">(</span><span class="n">pts</span><span class="p">)</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span><span class="s2">"u"</span><span class="p">)</span><span class="o">.</span><span class="n">tensor</span><span class="o">.</span><span class="n">detach</span><span class="p">()</span>
|
||
<span class="n">true_output</span> <span class="o">=</span> <span class="n">pinn</span><span class="o">.</span><span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">pts</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">pts</span><span class="o">.</span><span class="n">extract</span><span class="p">([</span><span class="s2">"x"</span><span class="p">]),</span> <span class="n">predicted_output</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"Neural Network solution"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">pts</span><span class="o">.</span><span class="n">extract</span><span class="p">([</span><span class="s2">"x"</span><span class="p">]),</span> <span class="n">true_output</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"True solution"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell-outputWrapper">
|
||
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
|
||
</div>
|
||
<div class="jp-OutputArea jp-Cell-outputArea">
|
||
<div class="jp-OutputArea-child jp-OutputArea-executeResult">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt">Out[6]:</div>
|
||
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
|
||
<pre><matplotlib.legend.Legend at 0x7f5b65b36fd0></pre>
|
||
</div>
|
||
</div>
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
|
||
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,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MbE3sQFYtGgRBoOB9evXD/g+ra2tOByOPokNwE9/+lNSU1OZN28eTz31FKqqHvE+LpcLp9PZ5yH6Shun/b8aoTRQXFquczTBl+jWatzY08foHIkQGoNBodauVeltL438SsWdtdrsVLNVloZF4AUluampqSE9vW+XZZPJRHJyMjU1NQO6R0NDA3fdddchS1l33nknL7/8MqtWreL888/n6quv5pFHHjnive655x4SEhJ6Hzk5Um7/65SYRGqMWiGt2r0DT0CHI7/PT4avDoDkEVLyXYSP7hStoKahbofOkQSfr6f9SVesJDci8AaV3Nxyyy39bug9+LF797F3l3Y6nZxzzjlMnjyZO+64o8/3br31Vk444QRmzpzJzTffzE033cT9999/xPutWLGC1tbW3kd5eeTPTAxFs0M7iuquiOxKxQ21FcQobvyqQtpImbkR4cM6sgCAlPY9+gYSAmZnGQBqUp6+gYiINKg9Nz//+c+57LLLjnhNfn4+mZmZ1NXV9fm61+ulqanpqHtl2traWLJkCfHx8fzrX//CbDYf8fr58+dz11134XK5sFr772httVoP+z3xX2rGNGj+EFtTZFdIbajYSzpQb0gmw2LTOxwhemWMmw2fQ7KvAToaITZF75CCJr6rEgBL6midIxGRaFDJTVpaGmlpaUe9bsGCBbS0tLBx40Zmz9aON/7nP//B7/czf/78wz7P6XSyePFirFYr//73v7HZjv6DZ/PmzSQlJUnyEgCJo2fBbsjqKsTvVzEYFL1DCor2Gq3GTZM5iwydYxHiYONysihVM8hTamku2UjS1DP1DiloUr1ajRtHliwNi8ALyp6bSZMmsWTJEpYtW8aGDRv47LPPWL58ORdeeGHvSanKykomTpzIhg1a0Tin08mZZ55JR0cHTz75JE6nk5qaGmpqavD5tJoPb775Jk888QTbt2+nqKiIP//5z9x9991cc801wXgZUSd9vLapOJ9K9tc26hxN8HgaSgHotI/UNxAhvibGYqTMrLVhaCyO3ErFne0tpKDVMEvLnahzNCISBeUoOMDzzz/P8uXLOf300zEYDJx//vk8/PDDvd/3eDzs2bOHzs5OADZt2tR7kmrs2L7VKktKSsjLy8NsNvPoo4/yv//7v6iqytixY3nwwQdZtmxZsF5GVDEljsSpOHDgpGLvV4zOOkPvkILC1KoV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"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>Great, they overlap perfectly! This seems a good result, considering the simple neural network used to some this (complex) problem. We will now test the neural network on the domain $[-4, 4]$ without retraining. In principle the periodicity should be present since the $v$ function ensures the periodicity in $(-\infty, \infty)$.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea">
|
||
<div class="jp-InputPrompt jp-InputArea-prompt">In [7]:</div>
|
||
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
|
||
<div class="cm-editor cm-s-jupyter">
|
||
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># plotting solution</span>
|
||
<span class="k">with</span> <span class="n">torch</span><span class="o">.</span><span class="n">no_grad</span><span class="p">():</span>
|
||
<span class="c1"># Notice here we put [-4, 4]!!!</span>
|
||
<span class="n">new_domain</span> <span class="o">=</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"x"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">]})</span>
|
||
<span class="n">x</span> <span class="o">=</span> <span class="n">new_domain</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">"grid"</span><span class="p">)</span>
|
||
<span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
|
||
<span class="c1"># Plot 1</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$u(x)$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"blue"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"True solution $u(x)$"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
|
||
<span class="c1"># Plot 2</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">pinn</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$u_{\theta}(x)$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"green"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"PINN solution $u_{\theta}(x)$"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
|
||
<span class="c1"># Plot 3</span>
|
||
<span class="n">diff</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">problem</span><span class="o">.</span><span class="n">solution</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">-</span> <span class="n">pinn</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">diff</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">"$|u(x) - u_{\theta}(x)|$"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"red"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">r</span><span class="s2">"Absolute difference $|u(x) - u_{\theta}(x)|$"</span><span class="p">)</span>
|
||
<span class="n">axes</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"upper right"</span><span class="p">)</span>
|
||
<span class="c1"># Adjust layout</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
|
||
<span class="c1"># Show the plots</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell-outputWrapper">
|
||
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
|
||
</div>
|
||
<div class="jp-OutputArea jp-Cell-outputArea">
|
||
<div class="jp-OutputArea-child">
|
||
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
|
||
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
|
||
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdIAAAHqCAYAAAAAkLx0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydeXxU1d3/PzOTZZKQjS0JCCQgyKKAgCBUa22pwGNVbOv6sypFrQtVy/Noa0WwuOCudXlErUtttVhtRZ+quKBYLQgogivIEnYSCJA9mcnM3N8fhzP3TjLLXc65907m+3698ppk5s7cOzlz7pn7OZ/z+XoURVFAEARBEARBEARBEARBEARBEERcvE4fAEEQBEEQBEEQBEEQBEEQBEG4GRLSCYIgCIIgCIIgCIIgCIIgCCIJJKQTBEEQBEEQBEEQBEEQBEEQRBJISCcIgiAIgiAIgiAIgiAIgiCIJJCQThAEQRAEQRAEQRAEQRAEQRBJICGdIAiCIAiCIAiCIAiCIAiCIJJAQjpBEARBEARBEARBEARBEARBJIGEdIIgCIIgCIIgCIIgCIIgCIJIAgnpBEEQBEEQBEEQBEEQBEEQBJEEEtIJgiAIgiAIgiAIgiAIgiAIIgkkpBMEQRAEQRAEQRAEQRAEQRBEEkhIJwgiKc899xw8Hg+2b9+eFq8rg3vuuQfDhw9HJBIx/NzFixdj4MCBCAQCEo6MIAiCIBg0XqfG7HhOYzlBEG7n1ltvhcfjQV1dnW37TKfxgf9/tCQ6/rVr12LKlCkoKCiAx+PB+vXr496X6VRWVuLWW2+19BqZOC7L0hZEtAehDxLSCUInHo9H18+KFSucPlRXsXLlStx6662or693+lBM0djYiLvvvhu//e1v4fUaP2VeeumlCAaDeOKJJyQcHUEQBKGFXxTzH7/fj2HDhmHOnDmora3tst2nn34a87ff78eePXu6vO4PfvADHHvssXH3ZeQ5bibdx+tUWBnPaSwnCMJp/vd//xcejweTJk1y+lCE4NYxp6OjA+eccw4OHTqEBx98EH/5y1/Qv3//LvcNGjTI6UNNezJxXCZtoXtAQjpB6OQvf/lLzM+Pf/zjuPePGDHC4SN1FytXrsQf/vCHLl+SfvGLX6Ctrc31X0KeeeYZhEIhXHDBBaae7/f7cckll+CBBx6AoiiCj44gCIKIx8KFC/GXv/wFjz76KKZMmYLHH38ckydPRmtra9LnBQIB3HXXXYb2ZeY5biTdx+tUWBnPaSwnCMJpXnjhBVRWVmLNmjXYsmWL04djmURjjp3EG9+2bt2KHTt24H/+539wxRVX4KKLLsLBgwe73FdaWurYcXcXMnFcJm2he0BCOkHo5KKLLor5GTZsWNz7y8rK4j6/paXFzsN1PT6fD36/v8sSO7fx7LPP4swzz4Tf7zf9Gueeey527NiBDz74QOCREQRBEImYMWMGLrroIlx22WV47rnncP3116O6uhqvvfZa0ueNHTsWTz31FPbu3at7X2aek06ky3idCqvjOY3lBEE4RXV1NVauXIkHHngAffr0wQsvvOD0IXUL4o1v+/fvBwCUlJQkvU8Ema4PZOK4TNpC94CEdIKQAM9g++abb3DhhReitLQUJ510Ei699FJUVlYm3L4ze/bswS9/+UuUlZUhNzcXo0aNwjPPPKPrGJqamnD99dejsrISubm56Nu3L3784x9j3bp10W0+//xzzJgxA0VFRejRowd+9KMf4ZNPPkn52nrfx6233oobbrgBAFBVVRVdar99+/aEmXR6jonvZ8uWLbj00ktRUlKC4uJizJo1K6XbkNOnTx/MmTOny/0TJkzA6aefDoB9af3iiy8wderULtvt2bMHfr8fv/zlL2Puf++995CdnY3f/OY30fvGjx+Pnj17phRwCIIgCDn88Ic/BMDO68n4/e9/j3A4bMhhbuY5Wmi8To6e8ToVicZzGssJgkgHXnjhBZSWluL000/Hz3/+86RCel1dHc4991wUFRWhV69euO6669De3h59XM+YA8gdd5KNORwr18Eff/wxTjjhBPj9fgwZMiRhDEbn8e3SSy/FKaecAgA455xz4PF4UFlZ2eW+H/zgB4aPM5E+YOY19Iype/bswezZs9GvXz/k5uaiqqoKV111FYLBoJD/cSL0jtnpNi7L/C4CuPd9E/HJcvoACKI7c84552Do0KG48847oSgK1qxZo/u5tbW1OPHEE+HxeDBnzhz06dMHb731FmbPno3GxkZcf/31SZ9/5ZVX4pVXXsGcOXMwcuRIHDx4EB9//DG+/fZbjBs3Dl9//TVOPvlkFBUV4cYbb0R2djaeeOIJ/OAHP8CHH34oJH/vpz/9Kb777jv87W9/w4MPPojevXsDYANRPIwe07nnnouqqiosWrQI69atw5/+9Cf07dsXd999d9Lj2rt3L+rq6jBmzJiY+8PhML7++utobM/KlSsBAOPGjevyGv3798dll12GJ598EgsWLMCgQYOwceNGnHPOOZgxYwbuv//+mO3HjRuH//znP0mPiyAIgpDD1q1bAQC9evVKul1VVRUuvvhiPPXUU/jd736Hfv36pXxtM8/RQuN1YvSO16lINJ7TWE4QRDrwwgsv4Kc//SlycnJwwQUX4PHHH8fatWtxwgkndNn23HPPRWVlJRYtWoRPPvkEDz/8MA4fPoznn38eQOoxBzB+jjdKqjHHynXwl19+idNOOw19+vTBrbfeilAohAULFiRcNa7lV7/6Ffr3748777wT1157LU444QRUV1ejvb095j7+WmaOs7M+YOY1Uo2pe/fuxcSJE1FfX48rrrgCw4cPx549e/DKK6+gtbUVOTk5lrWGeBgZs9NpXJb9XQRw5/smkqAQBGGKa665RknUhRYsWKAAUC644IKY+y+55BJl0KBBCbfXMnv2bKWiokKpq6uLuf/8889XiouLldbW1qTHV1xcrFxzzTUJH585c6aSk5OjbN26NXrf3r17lcLCQuX73/9+9L5nn31WAaBUV1ebeh/33ntvl+cnel29x8T388tf/jLmNc8++2ylV69eCd8z56233lIAKKtXr465/6uvvlIAKC+88IKiKIoyb948BYDS1NQU93V2796t5ObmKldddZVSV1enDBkyRBk7dqzS3NzcZdsrrrhCycvLS3lsBEEQhHn42PLee+8pBw4cUHbt2qUsWbJE6dWrl5KXl6fs3r07Zru1a9d2+Xvr1q1KVlaWcu2110Zf95RTTlFGjRoVd19GnhMPGq8To3e8TkWy8ZzGcoIg3Mynn36qAFDeffddRVEUJRKJKEcddZRy3XXXxWzHz7dnnnlmzP1XX321AkDZsGGDoiipxxxFsWfcSTTmKIq16+CZM2cqfr9f2bFjR/S+b775RvH5fF3GvXjH/8EHHygAlJdffjnpfUaPM5E+YOY1Uo2pF198seL1eqPfcbREIhHD+03EoEGDlAULFkT/NjJmp9O4bMd3EUWx/r47twchD4p2IQiJXHnllaaepygK/vGPf+CMM86Aoiioq6uL/kybNg0NDQ1dlt91pqSkBKtXr46b2RoOh/HOO+9g5syZGDx4cPT+iooKXHjh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iBq7SUgnCIIghEHL6IxD/zOCIAjCDmi8EQf9LwmCINwFnZeJVIj6jJCQThAEQRAEQRAEQRAEQRAEQRBJICGdIAiCIAiCIAiCIAiCIAiCIJJAQjpBEARBEARBEATRLTl48CD69u2L7du369r+/PPPx/333y/3oAiCIAiCSEtISCcIgiAIHRi9EAfoYpwgCIIgnOaOO+7AWWedhcrKSl3bz5s3D3fccQcaGhrkHhhBEASR8axYsUL3+KSlO12binovZv+XRiEhnSAIgiB0YPRCHKCLcYIgCIJwktbWVjz99NOYPXu27ucce+yxGDJkCP76179KPDKCIAiCME93ujZNt/dCQjpBEARBpMDMhThAF+MEQRAEYZVly5ahoKAAkUgket9XX30Fj8eDurq6pM998803kZubixNPPDF639/+9jfk5eVh37590ftmzZqF0aNHRy/IzzjjDCxZskTwOyEIgiAI63Sna9N0fC8kpBOm2boVuP9+YMMGp48kc2luBh59FHjtNUBRnD6azERRgFdeARYvBtranD4ad6EoQEuLPT/79wPbtgGHDrG/jfaHVBfp8S7EAboYJwjCOM3BZjyy+hG8tvE1KDR4ExlMS7AFNc01CIQCSbf7/PPPceyxx8LrVS9d169fj379+qF3795Jn/vRRx9h/PjxMfedf/75GDZsGO68804AwIIFC/Dee+/hrbfeQnFxMQBg4sSJWLNmDQKB5MdGELbxxhvshyAymYYG4JFH2IVfMuy8EO38Y/G7nZ7JY7OTxICca1PRE96Au6+zs2zfI9EtqKkBTjwRqKsD8vKATz8FRo50+qgyC0UBfvpT4N132d+PPw5ceaWzx5SJPPgg8N//zX5ftgxYutTRw3EVra1Ajx7O7Lu5GSgo0L99qov0eBfiALsYv+uuu3DnnXfikUceiV6Mf/LJJzEX43fccQcCgQByc3MtvzeCINIXRVFw9ktn471t7wEAHj/9cVw5gQZvwn4URUFrR6vt+83PzofH40FLsAUb6zZCgYLa5lqM6jsKWd74l6br16/HmDFjYu7bsGFD9L5gMIhrrrkG//nPf1BcXIw33ngDPXv2BADs2LED/fr1i3mux+PBHXfcgZ///OcoLy/HI488go8++gj9+/ePbtOvXz8Eg0HU1NRg0KBBIv8FBGGcDz4AfvIT9vvSpcBZZzl6OAThGJdc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Ixw6dAiXXnopGhsb0dzcjCuvvBI9PT3SX1to6BCy3egQr77+deC884AHHwx/3+5scp1xGhddBDz8sC2amIAuR3RVlV3E6tln9XwWx4yxnYdi+XKYuCd1dLz/995r/169Ovx9C9wTODqF9HHj7JifSZOy3eklBIX0Esc9oXf++UBfnx19NW+e3nZVGuefb/9es8YW0wH7+woJj0svtX//8pfA7bfbf//VX+lrTyWyaBEwdaodbXTBBfZt556bXZibEGLTWtuKZ/7+Gdz9kbvx3IrncOIEZoGFzSdO/gQA4GtPfA0b37KXk503hyfvsPn0GZ/G+kvX496P3osH/0aD0FPhvH/6+zG+bjzae9px4U8vBGCL6zVxQ5ybBADw0EMPYdWqVbjpppvw/PPP45RTTsHSpUuxf//+nNs//fTTuOSSS3DllVfihRdewPLly7F8+XK85BISv/Wtb+HOO+/E2rVrsXnzZtTX12Pp0qUYGBhwtrn00kvx8ssvY8OGDfj1r3+Np556CldddZXy16uMShTSW1qA//qvjCs7TNxCus6l2pEI8Dd/Axx7rL42uJk1S9++43G90SY1NXr27x57TU3h73/5cmDPHuAb3wh/3wL3e6DzWBiL2RECb71VsjE7FNLLgM9+1v796qv276uuYmG/sPm7v7O/G2zfDiST9uQGC42Gy0kn2e97KgXs3m1H8n3sY7pbVVnE48BnPmP/vXOn/fvv/15fewgxnSmNU/C5BZ+jiK6JT578ScSjcbzd+TZSVgofmPEBHDfuON3NqkiWzl6KK069guKtBhLxBD5zhn3y3tlpn7xXnLZCZ5NIDm6//XasWLECV1xxBU444QSsXbsWdXV1uFe4HEfw3e9+F8uWLcO1116LuXPn4tZbb8Vpp52Gu+++G4DtRr/jjjtwww034IILLsDJJ5+M++67D3v27MG6desAAK+88grWr1+PH/zgB1i4cCHOPvts3HXXXXjwwQexZ8+esF66XGbM0Lv/Slsqm05n/qZAAfzqV8CnPgVcd53ullQm3/kO8PnP68t+nTTJnHGgO4O4utqcqKUioJBeBnz848Df/q3991lnAV/6kt72VCKTJwN33WWvlmlrA/71X3W3qDK55x5g/Hi7H+66K7ueCgmHz3/edqYDwCc+AVx4od72EEJIPqY1TcPtH74dsUgMUxqm4J7z7tHd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0uk0rrnmGpx11lk46aST8m5n2lhw4/U1mDYWXnzxRYwZMwaJRAKf/vSn8cgjj+CEE07Iua2p77+f12Da+w8ADz74IJ5//nmsWbPG0/am9kM5w3O3OePFDzx3q4Xnbp67g8Bztxn9UM7w3G3OePEDz91q4bmb5+4g8Nytrh/i0p+RlDyLFi3Kmqk688wzMXfuXHzve9/DrbfeqrFllcNxxx2H4447zvn/zDPPxLZt2/Av//Iv+I//+A+NLbNnBV966SX87//+r9Z2BMHrazBtLBx33HHYunUrOjs78bOf/QyXX345nnzyybwnRBPx8xpMe/937dqFq6++Ghs2bDCq+AohgHnjpRLhuVstPHfrg+duQtRg2nipRHjuVgvP3frguVsdFNILMG7cOMRiMezbty/r9n379qGtrS3nY9ra2nxtr5piXsNIqqqqcOqpp+LNN99U0UTp5OuDxsZG1NbWampVcBYsWKD9JLpy5Ur8+te/xlNPPYWpU6cW3Na0sSDw8xpGonssVFdXY/bs2QCA008/Hc8++yy++93v4nvf+95R25r6/vt5DSPR/f5v2bIF+/fvx2mnnebclkql8NRTT+Huu+/G4OAgYrFY1mNM7YdyhuduG93jxS88d6uD526eu4PCc7cZ/VDO8Nxto3u8+IXnbnXw3M1zd1B47lbXD4x2KUB1dTVOP/10bNy40bktnU5j48aNebOFFi1alLU9AGzYsKFgFpFKinkNI0mlUnjxxRcxadIkVc2Uiml9IIutW7dq6wPLsrBy5Uo88sgjePzxxzFz5sxRH2NaPxTzGkZi2lhIp9MYHBzMeZ9p738+Cr2Gkeh+/xcvXowXX3wRW7dudX7OOOMMXHrppdi6detRJ3OgdPqhnOC520b3ePGLaX0gC567g8Fzt5njgOduIhueu210jxe/mNYHsuC5Oxg8d5s5Dnjuloj08qVlxoMPPmglEgnrRz/6kfXnP//Zuuqqq6zm5marvb3dsizL+uQnP2ldf/31zva///3vrXg8bt12223WK6+8Yt10001WVVWV9eKLL+p6Cb5fw80332z95je/sbZt22Zt2bLF+vjHP27V1NRYL7/8spb2d3d3Wy+88IL1wgsvWACs22+/3XrhhRest99+27Isy7r++uutT37yk872b731llVXV2dde+211iuvvGLdc889ViwWs9avX6+l/Zbl/zX8y7/8i7Vu3TrrjTfesF588UXr6quvtqLRqPXb3/5WS/s/85nPWE1NTdYTTzxh7d271/np6+tztjF9LBTzGkwaC9dff7315JNPWtu3b7f+9Kc/Wddff70ViUSsxx57LGfbTXv/Lcv/azDp/c/HyOrhpdAPlQDP3frHC8/dPHfLgOdu/ccinrvN6IdKgOdu/eOF526eu2XAc7f+YxHP3Wr7gUK6B+666y7rmGOOsaqrq60FCxZYf/jDH5z7zjnnHOvyyy/P2v6nP/2p9Z73vMeqrq62TjzxROu//uu/Qm7x0fh5Dddcc42z7cSJE63zzjvPev755zW02uZ3v/udBeCoH9Hmyy+/3DrnnHOOesz8+fOt6upqa9asWdYPf/jD0Ns9sj1+XsM///M/W8cee6xVU1Njtba2Wueee671+OOP62m8ZeVsO4Cs99X0sVDMazBpLPzd3/2dNX36dKu6utoaP368tXjxYudEaFnmv/+W5f81mPT+52PkCb0U+qFS4Lmb5+6g8Nytfyzw3K3/WMRztxn9UCnw3M1zd1B47tY/Fnju1n8s4rlbbT9ELMuyivezE0IIIYQQQgghhBBCCCHlDTPSCSGEEEIIIYQQQgghhJACUEgnhBBCCCGEEEIIIYQQQgpAIZ0QQgghhBBCCCGEEEIIKQCFdEIIIYQQQgghhBBCCCGkABTSCSGEEEIIIYQQQgghhJACUEgnhBBCCCGEEEIIIYQQQgpAIZ0QQgghhBBCCCGEEEIIKQCFdEIIIYQQQgghhBBCCCGkABTSCSGEEEIIIYQQQgghhJACUEgnhBBCCCGEEEIIIYQQQgpAIZ0QQgghhBBCCCGEEEIIKQCFdEIIIYQQQgghhBBCCCGkAP8/EiEFkAJs1hEAAAAASUVORK5CYII="/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
|
||
<div class="jp-Cell-inputWrapper" tabindex="0">
|
||
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
|
||
</div>
|
||
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
|
||
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
|
||
<p>It is pretty clear that the network is periodic, with also the error following a periodic pattern. Obviously a longer training and a more expressive neural network could improve the results!</p>
|
||
<h2 id="What's-next?">What's next?<a class="anchor-link" href="#What's-next?">¶</a></h2><p>Congratulations on completing the one dimensional Helmholtz tutorial of <strong>PINA</strong>! There are multiple directions you can go now:</p>
|
||
<ol>
|
||
<li><p>Train the network for longer or with different layer sizes and assert the finaly accuracy</p>
|
||
</li>
|
||
<li><p>Apply the <code>PeriodicBoundaryEmbedding</code> layer for a time-dependent problem (see reference in the documentation)</p>
|
||
</li>
|
||
<li><p>Exploit extrafeature training ?</p>
|
||
</li>
|
||
<li><p>Many more...</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
</body>
|
||
<script type="application/vnd.jupyter.widget-state+json">
|
||
{"state": {"6f4b012a39fe4cd1bbeb3ef7dbbf0282": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": "2", "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "09d3c47ab2c24041a2c284f2feb1c4a6": {"model_name": "ProgressStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": ""}}, "fe575cf02b574a98af9eade4df308265": {"model_name": "FloatProgressModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_6f4b012a39fe4cd1bbeb3ef7dbbf0282", "max": 1.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_09d3c47ab2c24041a2c284f2feb1c4a6", "tabbable": null, "tooltip": null, "value": 1.0}}, "44a18074dc8f48fa84f56a0f62bf606a": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "ececf19b12b940708fde40db4121e00f": {"model_name": "HTMLStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null}}, "199e1a62fd644c63a03e05207d2a06b6": {"model_name": "HTMLModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_44a18074dc8f48fa84f56a0f62bf606a", "placeholder": "\u200b", "style": "IPY_MODEL_ececf19b12b940708fde40db4121e00f", "tabbable": null, "tooltip": null, "value": "Epoch\u20074999:\u2007100%"}}, "43066119e443443aa76cd08cec303a5d": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null}}, "fcbb0f9a96644d2abdf8efe9143d3228": {"model_name": "HTMLStyleModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null}}, "0b167cc5a84d4678819fff63589a9415": {"model_name": "HTMLModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_43066119e443443aa76cd08cec303a5d", "placeholder": "\u200b", "style": "IPY_MODEL_fcbb0f9a96644d2abdf8efe9143d3228", "tabbable": null, "tooltip": null, "value": "\u20071\/1\u2007[00:00<00:00,\u200771.82it\/s,\u2007v_num=0,\u2007phys_cond_loss=0.135,\u2007train_loss=0.135]"}}, "b771f52661f74adeaaa38abae99e3836": {"model_name": "LayoutModel", "model_module": "@jupyter-widgets\/base", "model_module_version": "2.0.0", "state": {"_model_module": "@jupyter-widgets\/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets\/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": "inline-flex", "flex": null, "flex_flow": "row wrap", "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": "100%"}}, "fab964d8d7b24c87a5a92c220a52e130": {"model_name": "HBoxModel", "model_module": "@jupyter-widgets\/controls", "model_module_version": "2.0.0", "state": {"_dom_classes": [], "_model_module": "@jupyter-widgets\/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets\/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": ["IPY_MODEL_199e1a62fd644c63a03e05207d2a06b6", "IPY_MODEL_fe575cf02b574a98af9eade4df308265", "IPY_MODEL_0b167cc5a84d4678819fff63589a9415"], "layout": "IPY_MODEL_b771f52661f74adeaaa38abae99e3836", "tabbable": null, "tooltip": null}}}, "version_major": 2, "version_minor": 0}
|
||
</script>
|
||
</html>
|