8004 lines
471 KiB
HTML
8004 lines
471 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:-Learning-Bifurcating-PDE-Solutions-with-Physics-Informed-Deep-Ensembles">Tutorial: Learning Bifurcating PDE Solutions with Physics-Informed Deep Ensembles<a class="anchor-link" href="#Tutorial:-Learning-Bifurcating-PDE-Solutions-with-Physics-Informed-Deep-Ensembles">¶</a></h1><p><a href="https://colab.research.google.com/github/mathLab/PINA/blob/master/tutorials/tutorial14/tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a></p>
|
||
<p>This tutorial demonstrates how to use the Deep Ensemble Physics Informed Network (DeepEnsemblePINN) to learn PDEs exhibiting bifurcating behavior, as discussed in <a href="https://arxiv.org/abs/2503.06320"><em>Learning and Discovering Multiple Solutions Using Physics-Informed Neural Networks with Random Initialization and Deep Ensemble</em></a>.</p>
|
||
<p>Let’s begin by importing the necessary libraries.</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[tutorial]"</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">lightning.pytorch.callbacks</span><span class="w"> </span><span class="kn">import</span> <span class="n">Callback</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">Trainer</span><span class="p">,</span> <span class="n">Condition</span><span class="p">,</span> <span class="n">LabelTensor</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">DeepEnsemblePINN</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.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.problem</span><span class="w"> </span><span class="kn">import</span> <span class="n">TimeDependentProblem</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.optim</span><span class="w"> </span><span class="kn">import</span> <span class="n">TorchOptimizer</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="Deep-Ensemble">Deep Ensemble<a class="anchor-link" href="#Deep-Ensemble">¶</a></h2><p>Deep Ensemble methods improve model performance by leveraging the diversity of predictions generated by multiple neural networks trained on the same problem. Each network in the ensemble is trained independently—typically with different weight initializations or even slight variations in the architecture or data sampling. By combining their outputs (e.g., via averaging or majority voting), ensembles reduce overfitting, increase robustness, and improve generalization.</p>
|
||
<p>This approach allows the ensemble to capture different perspectives of the problem, leading to more accurate and reliable predictions.</p>
|
||
<p align="center">
|
||
<img alt="Deep ensemble" src="http://raw.githubusercontent.com/mathLab/PINA/master/tutorials/static/deep_ensemble.png" width="600"/>
|
||
</p>
|
||
<p>The image above illustrates a Deep Ensemble setup, where multiple models attempt to predict the text from an image. While individual models may make errors (e.g., predicting "PONY" instead of "PINA"), combining their outputs—such as taking the majority vote—often leads to the correct result. This ensemble effect improves reliability by mitigating the impact of individual model biases.</p>
|
||
<h2 id="Deep-Ensemble-Physics-Informed-Networks">Deep Ensemble Physics-Informed Networks<a class="anchor-link" href="#Deep-Ensemble-Physics-Informed-Networks">¶</a></h2><p>In the context of Physics-Informed Neural Networks (PINNs), Deep Ensembles help the network discover different branches or multiple solutions of a PDE that exhibits bifurcating behavior.</p>
|
||
<p>By training a diverse set of models with different initializations, Deep Ensemble methods overcome the limitations of single-initialization models, which may converge to only one of the possible solutions. This approach is particularly useful when the solution space of the problem contains multiple valid physical states or behaviors.</p>
|
||
<h2 id="The-Bratu-Problem">The Bratu Problem<a class="anchor-link" href="#The-Bratu-Problem">¶</a></h2><p>In this tutorial, we'll train a <code>DeepEnsemblePINN</code> solver to solve a bifurcating ODE known as the <strong>Bratu problem</strong>. The ODE is given by:</p>
|
||
<p>$$
|
||
\frac{d^2u}{dt^2} + \lambda e^u = 0, \quad t \in (0, 1)
|
||
$$</p>
|
||
<p>with boundary conditions:</p>
|
||
<p>$$
|
||
u(0) = u(1) = 0,
|
||
$$</p>
|
||
<p>where $\lambda > 0$ is a scalar parameter. The analytical solutions to the 1D Bratu problem can be expressed as:</p>
|
||
<p>$$
|
||
u(t, \alpha) = 2 \log\left(\frac{\cosh(\alpha)}{\cosh(\alpha(1 - 2t))}\right),
|
||
$$</p>
|
||
<p>where $\alpha$ satisfies:</p>
|
||
<p>$$
|
||
\cosh(\alpha) - 2\sqrt{2}\alpha = 0.
|
||
$$</p>
|
||
<p>When $\lambda < 3.513830719$, the equation admits two solutions $\alpha_1$ and $\alpha_2$, which correspond to two distinct solutions of the original ODE: $u_1$ and $u_2$.</p>
|
||
<p>In this tutorial, we set $\lambda = 1$, which leads to:</p>
|
||
<ul>
|
||
<li>$\alpha_1 \approx 0.37929$</li>
|
||
<li>$\alpha_2 \approx 2.73468$</li>
|
||
</ul>
|
||
<p>We first write the problem class, we do not write the boundary conditions as we will hard impose them.</p>
|
||
<blockquote>
|
||
<p><strong>👉 We have a dedicated <a href="https://mathlab.github.io/PINA/tutorial16/tutorial.html">tutorial</a> to teach how to build a Problem — have a look if you're interested!</strong></p>
|
||
</blockquote>
|
||
<blockquote>
|
||
<p><strong>👉 We have a dedicated <a href="https://mathlab.github.io/PINA/tutorial3/tutorial.html">tutorial</a> to teach how to impose hard constraints — have a look if you're interested!</strong></p>
|
||
</blockquote>
|
||
</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="c1"># define bratu equation</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">bratu_eq</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">u_tt</span> <span class="o">=</span> <span class="n">laplacian</span><span class="p">(</span><span class="n">output_</span><span class="o">=</span><span class="n">output_</span><span class="p">,</span> <span class="n">input_</span><span class="o">=</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">"t"</span><span class="p">])</span>
|
||
<span class="k">return</span> <span class="n">u_tt</span> <span class="o">+</span> <span class="n">torch</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">output_</span><span class="p">)</span>
|
||
|
||
|
||
<span class="c1"># define true solution</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">true_solution</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
|
||
<span class="n">alpha1</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">tensor</span><span class="p">([</span><span class="mf">0.37929</span><span class="p">])</span>
|
||
<span class="n">alpha2</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">tensor</span><span class="p">([</span><span class="mf">2.73468</span><span class="p">])</span>
|
||
<span class="n">u1</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">log</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">cosh</span><span class="p">(</span><span class="n">alpha1</span><span class="p">)</span> <span class="o">/</span> <span class="n">torch</span><span class="o">.</span><span class="n">cosh</span><span class="p">(</span><span class="n">alpha1</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">x</span><span class="p">)))</span>
|
||
<span class="n">u2</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">log</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">cosh</span><span class="p">(</span><span class="n">alpha2</span><span class="p">)</span> <span class="o">/</span> <span class="n">torch</span><span class="o">.</span><span class="n">cosh</span><span class="p">(</span><span class="n">alpha2</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">x</span><span class="p">)))</span>
|
||
<span class="k">return</span> <span class="n">u1</span><span class="p">,</span> <span class="n">u2</span>
|
||
|
||
|
||
<span class="c1"># build problem class</span>
|
||
<span class="k">class</span><span class="w"> </span><span class="nc">BratuProblem</span><span class="p">(</span><span class="n">TimeDependentProblem</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">temporal_domain</span> <span class="o">=</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"t"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">]})</span>
|
||
<span class="n">domains</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s2">"interior"</span><span class="p">:</span> <span class="n">CartesianDomain</span><span class="p">({</span><span class="s2">"t"</span><span class="p">:</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">]}),</span>
|
||
<span class="p">}</span>
|
||
<span class="n">conditions</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s2">"interior"</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="s2">"interior"</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">bratu_eq</span><span class="p">))</span>
|
||
<span class="p">}</span>
|
||
|
||
|
||
<span class="c1"># define problem and discretise domain</span>
|
||
<span class="n">problem</span> <span class="o">=</span> <span class="n">BratuProblem</span><span class="p">()</span>
|
||
<span class="n">problem</span><span class="o">.</span><span class="n">discretise_domain</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="mi">101</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">domains</span><span class="o">=</span><span class="s2">"interior"</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="Defining-the-Deep-Ensemble-Models">Defining the Deep Ensemble Models<a class="anchor-link" href="#Defining-the-Deep-Ensemble-Models">¶</a></h2><p>Now that the problem setup is complete, we move on to creating an <strong>ensemble of models</strong>. Each ensemble member will be a standard <code>FeedForward</code> neural network, wrapped inside a custom <code>Model</code> class.</p>
|
||
<p>Each model's weights are initialized using a <strong>normal distribution</strong> with mean 0 and standard deviation 2. This random initialization is crucial to promote diversity across the ensemble members, allowing the models to converge to potentially different solutions of the PDE.</p>
|
||
<p>The final ensemble is simply a <strong>list of PyTorch models</strong>, which we will later pass to the <code>DeepEnsemblePINN</code></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"># define a single model (ensemble member)</span>
|
||
<span class="k">class</span><span class="w"> </span><span class="nc">Model</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">Module</span><span class="p">):</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">FeedForward</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">init_weights_gaussian</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">forward</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="n">x</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">x</span><span class="p">)</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
||
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">init_weights_gaussian</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">parameters</span><span class="p">():</span>
|
||
<span class="k">if</span> <span class="n">param</span><span class="o">.</span><span class="n">requires_grad</span><span class="p">:</span>
|
||
<span class="n">torch</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">init</span><span class="o">.</span><span class="n">normal_</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="n">mean</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">std</span><span class="o">=</span><span class="mf">2.0</span><span class="p">)</span>
|
||
|
||
|
||
<span class="c1"># define a list of models with different initializations</span>
|
||
<span class="n">models</span> <span class="o">=</span> <span class="p">[</span><span class="n">Model</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">inner_size</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">n_layers</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</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>Let's visualize the networks output before strated training</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="c1"># plot 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="n">pts</span> <span class="o">=</span> <span class="n">problem</span><span class="o">.</span><span class="n">input_pts</span><span class="p">[</span><span class="s2">"interior"</span><span class="p">]</span>
|
||
<span class="k">for</span> <span class="n">model</span> <span class="ow">in</span> <span class="n">models</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="p">,</span> <span class="n">model</span><span class="p">(</span><span class="n">pts</span><span class="p">),</span> <span class="s2">"--"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">plot</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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"/>
|
||
</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 you can see we get different output since the neural networks are initialized differently.</p>
|
||
<h2 id="Training-with-DeepEnsemblePINN">Training with <code>DeepEnsemblePINN</code><a class="anchor-link" href="#Training-with-DeepEnsemblePINN">¶</a></h2><p>Now that everything is ready, we can train the models using the <code>DeepEnsemblePINN</code> solver! 🎯</p>
|
||
<p>This solver is constructed by combining multiple neural network models that all aim to solve the same PDE. Each model $\mathcal{M}_{i \in \{1, \dots, 10\}}$ in the ensemble contributes a unique perspective due to different random initializations.</p>
|
||
<p>This diversity allows the ensemble to <strong>capture multiple branches or bifurcating solutions</strong> of the problem, making it especially powerful for PDEs like the Bratu problem.</p>
|
||
<p>Once the <code>DeepEnsemblePINN</code> solver is defined with all the models, we train them using the <code>Trainer</code> class, as with any other solver in <strong>PINA</strong>. We also build a callback to store the value of <code>u(0.5)</code> during training iterations.</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 [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"># define the optimizers, one per model</span>
|
||
<span class="n">optimizers</span> <span class="o">=</span> <span class="p">[</span><span class="n">TorchOptimizer</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">optim</span><span class="o">.</span><span class="n">Adam</span><span class="p">,</span> <span class="n">lr</span><span class="o">=</span><span class="mf">0.006</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">)]</span>
|
||
|
||
<span class="c1"># define solver</span>
|
||
<span class="n">solver</span> <span class="o">=</span> <span class="n">DeepEnsemblePINN</span><span class="p">(</span>
|
||
<span class="n">problem</span><span class="p">,</span>
|
||
<span class="n">models</span><span class="p">,</span>
|
||
<span class="n">optimizers</span><span class="o">=</span><span class="n">optimizers</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
|
||
<span class="c1"># callback</span>
|
||
<span class="k">class</span><span class="w"> </span><span class="nc">StoreValue</span><span class="p">(</span><span class="n">Callback</span><span class="p">):</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">on_train_epoch_start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trainer</span><span class="p">,</span> <span class="n">pl_module</span><span class="p">):</span>
|
||
<span class="nb">input</span> <span class="o">=</span> <span class="n">LabelTensor</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">tensor</span><span class="p">([[</span><span class="mf">0.5</span><span class="p">]]),</span> <span class="s2">"t"</span><span class="p">)</span>
|
||
<span class="n">output</span> <span class="o">=</span> <span class="n">pl_module</span><span class="p">(</span><span class="nb">input</span><span class="p">)</span><span class="o">.</span><span class="n">tensor</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
|
||
<span class="k">if</span> <span class="n">trainer</span><span class="o">.</span><span class="n">current_epoch</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">store</span> <span class="o">=</span> <span class="p">[</span><span class="n">output</span><span class="p">]</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">store</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
|
||
|
||
|
||
<span class="c1"># define trainer</span>
|
||
<span class="n">trainer</span> <span class="o">=</span> <span class="n">Trainer</span><span class="p">(</span>
|
||
<span class="n">solver</span><span class="p">,</span>
|
||
<span class="n">max_epochs</span><span class="o">=</span><span class="mi">500</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">StoreValue</span><span class="p">()],</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="c1"># train</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>Using default `ModelCheckpoint`. Consider installing `litmodels` package to enable `LitModelCheckpoint` for automatic upload to the Lightning model registry.
|
||
</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>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="jupyter-widgets jp-OutputArea-output" id="271449b9-cb72-4bed-9b19-816c72e83a3b" tabindex="0">
|
||
<script type="text/javascript">
|
||
var element = document.getElementById('271449b9-cb72-4bed-9b19-816c72e83a3b');
|
||
</script>
|
||
<script type="application/vnd.jupyter.widget-view+json">
|
||
{"version_major": 2, "version_minor": 0, "model_id": "0cb170eee38c4e45ad0433f32f42776d"}
|
||
</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=500` reached.
|
||
</pre>
|
||
</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>The training finished, let's first plot how the value of $u(0.5)$ changed during training</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="k">with</span> <span class="n">torch</span><span class="o">.</span><span class="n">no_grad</span><span class="p">():</span>
|
||
<span class="n">metrics</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">stack</span><span class="p">(</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">store</span><span class="p">,</span> <span class="n">dim</span><span class="o">=</span><span class="mi">0</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="nb">range</span><span class="p">(</span><span class="n">metrics</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">metrics</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Ensemble Convergence"</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="sa">r</span><span class="s2">"$u(0.5)$"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"epochs"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">plot</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,iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/TElEQVR4nO3dd3yV5f3/8dd99jk5OdkTAgl77yHDBSgu3HXURW21tmhdX63UWrW24q7Vtq5f1Vrrtm5xFBQVAQHZI2wCIXudnCRnX78/TnJIIIEA5+Qk4fN8PM7jnHPPz7kPcN5c13Xft6aUUgghhBBCdBO6WBcghBBCCBFJEm6EEEII0a1IuBFCCCFEtyLhRgghhBDdioQbIYQQQnQrEm6EEEII0a1IuBFCCCFEtyLhRgghhBDdioQbIYQQQnQrEm6EEEfk5ZdfRtM0VqxYcdhlTznlFE455ZToFyWEEM1IuBEiwpp+/Nt6LF26NNYldnlff/01F154IZmZmZhMJtLT05k1axb//e9/Y12aEKITMMS6ACG6qz/+8Y/k5eUdNL1fv34xqKb7uPfee/njH/9I//79+eUvf0nv3r2pqKjg008/5aKLLuI///kPP/3pT2NdphAihiTcCBElZ555JuPGjYt1Gd3KO++8wx//+EcuvvhiXnvtNYxGY3jeHXfcweeff47P54thhceurq6OuLi4WJchRJcm3VJCxMiuXbvQNI3HHnuM559/nr59+2I2mxk/fjzLly9vsWxxcTE/+9nP6NmzJ2azmaysLM477zx27drVYrn58+dz4oknEhcXR3x8PGeffTYbNmxosczs2bOx2+0UFBRwzjnnYLfb6dGjB3//+98BWLduHdOmTSMuLo7evXvz2muvtVp/fX09v/zlL0lJScHhcHD11VdTVVV12M/t8Xi499576devH2azmZycHO688048Hs9h173nnntITk7mxRdfbBFsmsycOZNzzjkn/L60tJSf//znZGRkYLFYGDlyJP/6179arNPe7+Gxxx5D0zR279590H7nzp2LyWRq8fmXLVvGGWecQUJCAjabjZNPPpnFixe3WO++++5D0zQ2btzIT3/6U5KSkpg6dSoAwWCQ++67j+zsbGw2G6eeeiobN24kNzeX2bNnt9hOdXU1t9xyCzk5OZjNZvr168fDDz9MMBg84s/ZZPPmzVxyySWkpaVhtVoZOHAgd999d4tlCgsLufbaa8nIyMBsNjN06FBefPHFg7YlREeTlhshoqSmpoby8vIW0zRNIyUlpcW01157jdraWn75y1+iaRqPPPIIF154ITt27Aj/gF900UVs2LCBm266idzcXEpLS/nyyy8pKCggNzcXgH//+99cc801zJw5k4cffpj6+nqeeeYZpk6dyqpVq8LLAQQCAc4880xOOukkHnnkEf7zn/9w4403EhcXx913380VV1zBhRdeyLPPPsvVV1/NpEmTDupiu/HGG0lMTOS+++4jPz+fZ555ht27d/P111+jaVqrxyQYDHLuuefy3Xffcf311zN48GDWrVvHX/7yF7Zs2cL777/f5vHcunUrmzdv5tprryU+Pv6wx7+hoYFTTjmFbdu2ceONN5KXl8fbb7/N7Nmzqa6u5uabbz6i7+GSSy7hzjvv5K233uKOO+5ose5bb73F6aefTlJSEgALFy7kzDPPZOzYsdx7773odDpeeuklpk2bxrfffsuECRNarP+Tn/yE/v378+CDD6KUAkKB6ZFHHmHWrFnMnDmTNWvWMHPmTNxud4t16+vrOfnkkyksLOSXv/wlvXr14vvvv2fu3LkUFRXx5JNPHtHnBFi7di0nnngiRqOR66+/ntzcXLZv385HH33En//8ZwBKSko44YQT0DSNG2+8kbS0NObPn8/Pf/5znE4nt9xyy2G/IyGiRgkhIuqll15SQKsPs9kcXm7nzp0KUCkpKaqysjI8/YMPPlCA+uijj5RSSlVVVSlAPfroo23us7a2ViUmJqrrrruuxfTi4mKVkJDQYvo111yjAPXggw+Gp1VVVSmr1ao0TVNvvPFGePrmzZsVoO69996DPt/YsWOV1+sNT3/kkUcUoD744IPwtJNPPlmdfPLJ4ff//ve/lU6nU99++22LOp999lkFqMWLF7f5GZuOy1/+8pc2l2nuySefVIB69dVXw9O8Xq+aNGmSstvtyul0KqXa/z0opdSkSZPU2LFjW+znhx9+UIB65ZVXlFJKBYNB1b9/fzVz5kwVDAbDy9XX16u8vDx12mmnhafde++9ClCXX355i20WFxcrg8Ggzj///BbT77vvPgWoa665JjztgQceUHFxcWrLli0tlr3rrruUXq9XBQUFR/w5TzrpJBUfH692797dYpvNP8/Pf/5zlZWVpcrLy1ssc9lll6mEhARVX1+vhIgV6ZYSIkr+/ve/8+WXX7Z4zJ8//6DlLr300vD/+AFOPPFEAHbs2AGA1WrFZDLx9ddft9nt8+WXX1JdXc3ll19OeXl5+KHX65k4cSJfffXVQev84he/CL9OTExk4MCBxMXFcckll4SnDxw4kMTExHAtzV1//fUtuoZ+9atfYTAY+PTTT9s8Jm+//TaDBw9m0KBBLeqcNm0aQKt1NnE6nQDtarUB+PTTT8nMzOTyyy8PTzMajfzmN7/B5XKxaNGiFssf7ntoWmblypVs3749PO3NN9/EbDZz3nnnAbB69Wq2bt3KT3/6UyoqKsKfsa6ujunTp/PNN9+06C4CuOGGG1q8X7BgAX6/n1//+tctpt90000Hfc63336bE088kaSkpBbHdMaMGQQCAb755psj+pxlZWV88803XHvttfTq1avFuk0tckop3n33XWbNmoVSqsV+Z86cSU1NDT/++ONBtQrRUaRbSogomTBhQrsGFB/4A9L0w9MUZMxmMw8//DC33347GRkZnHDCCZxzzjlcffXVZGZmAqEuGyAcEg7kcDhavLdYLKSlpbWYlpCQQM+ePQ/qUkpISGg1VPXv37/Fe7vdTlZW1kHjgJrbunUrmzZtOmjfTUpLS9tct+kz1NbWtrlMc7t376Z///7odC3/Dzd48ODw/OYO9z1AqPvotttu48033+R3v/sdSinefvttzjzzzHB9Td/FNddc02ZtNTU1LQLGgV1+TbUdeGZdcnJyi/Wa9rd27dp2H9PDfc6mkDNs2LA26y8rK6O6uprnn3+e559/vl37FaIjSbgRIsb0en2r01Xj2AuAW265hVmzZvH+++/z+eefc8899zBv3jwWLlzI6NGjwy0B//73v8OBpzmDoeVf9bb22Z5ajkUwGGT48OE88cQTrc7Pyclpc91BgwYBoQHP0dCez56dnc2JJ57IW2+9xe9+9zuWLl1KQUEBDz/8cHiZpu/i0UcfZdSoUa1u0263t3hvtVqPuu5gMMhpp53GnXfe2er8AQMGtHgfie+46TNeeeWVbYa4ESNGtHt7QkSahBshuoi+ffty++23c/vtt7N161ZGjRrF448/zquvvkrfvn0BSE9PZ8aMGR1Sz9atWzn11FPD710uF0VFRZx11lltrtO3b1/WrFnD9OnT2xx03JYBAwYwcOBAPvjgA/76178eFBAO1Lt3b9auXUswGGzRerN58+bw/KNx6aWX8utf/5r8/HzefPNNbDYbs2bNCs9v+i4cDsdRfxdNtW3btq1Fq05FRcVBrWh9+/bF5XJF7Hvv06cPAOvXr29zmbS0NOLj4wkEAh32502IIyFjboTo5Orr6w86Q6Zv377Ex8eHT5+eOXMmDoeDBx98sNXrvJSVlUW8rueff77Fvp555hn8fj9nnnlmm+tccsklFBYW8sILLxw0r6Ghgbq6ukPu8/7776eiooJf/OIX+P3+g+Z/8cUXfPzxxwCcddZZFBcX8+abb4bn+/1+nn76aex2OyeffPJhP2NrLrroIvR6Pa+//jpvv/0255xzTovr0owdO5a+ffvy2GOP4XK5Dlq/Pd/F9OnTMRgMPPPMMy2m/+1vfzto2UsuuYQlS5bw+eefHzSvurq61eN0KGlpaZx00km8+OKLFBQUtJjX1Lqj1+u56KKLePfdd1sNQdH48ybEkZCWGyGiZP78+eFWguYmT54c/t9xe2zZsoXp06dzySWXMGTIEAwGA++99x4lJSVcdtllQKiV4JlnnuGqq65izJgxXHbZZaSlpVFQUMAnn3zClClTWv1hPBZerzdcV35+Pv/4xz+YOnUq5557bpvrXHXVVbz11lvccMMNfPXVV0yZMoVAIMDmzZt56623+Pzzzw85TunSSy9l3bp1/PnPf2bVqlVcfvnl4SsUf/bZZyxYsCB8XZ7rr7+e5557jtmzZ7Ny5Upyc3N55513WLx4MU8++WS7ByYfKD09nVNPPZUnnniC2tpaLr300hbzdTod/+///T/OPPNMhg4dys9+9jN69OhBYWEhX331FQ6Hg48++uiQ+8jIyODmm2/m8ccf59xzz+WMM85gzZo1zJ8/n9TU1BatXnfccQcffvgh55xzDrNnz2bs2LHU1dWxbt063nnnHXbt2kVqauoRfcannnqKqVOnMmbMGK6//nry8vLYtWsXn3zyCatXrwbgoYce4quvvmLixIlcd911DBkyhMrKSn788Uf+97//UVlZeUT7FCKiYneilhDd06FOBQfUSy+9pJTaf2pua6d40+z06/LycjVnzhw1aNAgFRcXpxISEtTEiRPVW2+9ddB6X331lZo5c6ZKSEhQFotF9e3bV82ePVutWLEivMw111yj4uLiDlr35JNPVkOHDj1oeu/evdXZ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EUIIIUS3IuFGCCGEEN2KhBshhBBCdCsSboQQQgjRrUi4EUIIIUS3IuFGCHFc+vrrr9E07aB74Qghuj4JN0IIIYToViTcCCGEEKJbkXAjhIiJYDDIvHnzyMvLw2q1MnLkSN555x1gf5fRJ598wogRI7BYLJxwwgmsX7++xTbeffddhg4ditlsJjc3l8cff7zFfI/Hw29/+1tycnIwm83069ePf/7zny2WWblyJePGjcNmszF58mTy8/PD89asWcOpp55KfHw8DoeDsWPHsmLFiigdESFEpEi4EULExLx583jllVd49tln2bBhA7feeitXXnklixYtCi9zxx138Pjjj7N8+XLS0tKYNWsWPp8PCIWSSy65hMsuu4x169Zx3333cc899/Dyyy+H17/66qt5/fXXeeqpp9i0aRPPPfccdru9RR133303jz/+OCtWrMBgMHDttdeG511xxRX07NmT5cuXs3LlSu666y6MRmN0D4wQ4thF/FacQghxGG63W9lsNvX999+3mP7zn/9cXX755eE7xL/xxhvheRUVFcpqtao333xTKaXUT3/6U3Xaaae1WP+OO+5QQ4YMUUoplZ+frwD15ZdftlpD0z7+97//had98sknClANDQ1KKaXi4+PVyy+/fOwfWAjRoaTlRgjR4bZt20Z9fT2nnXYadrs9/HjllVfYvn17eLlJkyaFXycnJzNw4EA2bdoEwKZNm5gyZUqL7U6ZMoWtW7cSCARYvXo1er2ek08++ZC1jBgxIvw6KysLgNLSUgBuu+02fvGLXzBjxgweeuihFrUJITovCTdCiA7ncrkA+OSTT1i9enX4sXHjxvC4m2NltVrbtVzzbiZN04DQeCCA++67jw0bNnD22WezcOFChgwZwnvvvReR+oQQ0SPhRgjR4YYMGYLZbKagoIB+/fq1eOTk5ISXW7p0afh1VVUVW7ZsYfDgwQAMHjyYxYsXt9ju4sWLGTBgAHq9nuHDhxMMBluM4TkaAwYM4NZbb+WLL77gwgsv5KWXXjqm7Qkhos8Q6wKEEMef+Ph4/u///o9bb72VYDDI1KlTqampYfHixTgcDnr37g3AH//4R1JSUsjIyODuu+8mNTWV888/H4Dbb7+d8ePH88ADD3DppZeyZMkS/va3v/GPf/wDgNzcXK655hquvfZannrqKUaOHMnu3bspLS3lkksuOWyNDQ0N3HHHHVx88cXk5eWxd+9eli9fzkUXXRS14yKEiJBYD/oRQhyfgsGgevLJJ9XAgQOV0WhUaWlpaubMmWrRokXhwb4fffSRGjp0qDKZTGrChAlqzZo1LbbxzjvvqCFDhiij0ah69eqlHn300RbzGxoa1K233qqysrKUyWRS/fr1Uy+++KJSav+A4qqqqvDyq1atUoDauXOn8ng86rLLLlM5OTnKZDKp7OxsdeONN4YHGwshOi9NKaVinK+EEKKFr7/+mlNPPZWqqioSExNjXY4QoouRMTdCCCGE6FYk3AghhBCiW5FuKSGEEEJ0K9JyI4QQQohuRcKNEEIIIboVCTdCCCGE6FYk3AghhBCiW5FwI4QQQohuRcKNEEIIIboVCTdCCCGE6FYk3AghhBCiW5FwI4QQQohu5f8Dr1ALRwhpCxkAAAAASUVORK5CYII="/>
|
||
</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 you can see, different networks in the ensemble converge to different values pf $u(0.5)$ — this means we can actually <strong>spot the bifurcation</strong> in the solution space!</p>
|
||
<p>This is a powerful demonstration of how <strong>Deep Ensemble Physics-Informed Neural Networks</strong> are capable of learning <strong>multiple valid solutions</strong> of a PDE that exhibits bifurcating behavior.</p>
|
||
<p>We can also visualize the ensemble predictions to better observe the multiple branches:</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"># plot 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="n">pts</span> <span class="o">=</span> <span class="n">problem</span><span class="o">.</span><span class="n">input_pts</span><span class="p">[</span><span class="s2">"interior"</span><span class="p">]</span>
|
||
<span class="n">u_ensemble</span> <span class="o">=</span> <span class="n">solver</span><span class="p">(</span><span class="n">pts</span><span class="p">)</span>
|
||
<span class="n">u1</span><span class="p">,</span> <span class="n">u2</span> <span class="o">=</span> <span class="n">true_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="p">,</span> <span class="n">u1</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"Reference solution u1"</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="p">,</span> <span class="n">u2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"Reference solution u2"</span><span class="p">)</span>
|
||
<span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">sol</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">u_ensemble</span><span class="p">):</span>
|
||
<span class="k">if</span> <span class="n">idx</span> <span class="o">==</span> <span class="mi">0</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="p">,</span> <span class="n">sol</span><span class="p">,</span> <span class="s2">"--"</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"PINNs"</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="s2">"k"</span><span class="p">)</span>
|
||
<span class="k">else</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="p">,</span> <span class="n">sol</span><span class="p">,</span> <span class="s2">"--"</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="s2">"k"</span><span class="p">)</span>
|
||
<span class="n">plt</span><span class="o">.</span><span class="n">legend</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">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,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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">
|
||
<h2 id="What's-Next?">What's Next?<a class="anchor-link" href="#What's-Next?">¶</a></h2><p>You have completed the tutorial on deep ensemble PINNs for bifurcating PDEs, well don! There are many potential next steps you can explore:</p>
|
||
<ol>
|
||
<li><p><strong>Train the network longer or with different hyperparameters</strong>: Experiment with different configurations of the single model, you can compose an ensemble by also stacking models with different layers, activation, ... to improve accuracy.</p>
|
||
</li>
|
||
<li><p><strong>Solve more complex problems</strong>: The original paper provides very complex problems that can be solved with PINA, we suggest you to try implement and solve them!</p>
|
||
</li>
|
||
<li><p><strong>...and many more!</strong>: There are countless directions to further explore, for example, what does it happen when you vary the network initialization hyperparameters?</p>
|
||
</li>
|
||
</ol>
|
||
<p>For more resources and tutorials, check out the <a href="https://mathlab.github.io/PINA/">PINA Documentation</a>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
</body>
|
||
<script type="application/vnd.jupyter.widget-state+json">
|
||
{"state": {"275088b6976e486baed2ceaf46373858": {"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}}, "80457764a74746ee822b797217a8af3b": {"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": ""}}, "8fb06175928a42b081302a69f411eb0f": {"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_275088b6976e486baed2ceaf46373858", "max": 1.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_80457764a74746ee822b797217a8af3b", "tabbable": null, "tooltip": null, "value": 1.0}}, "7a415176e9aa432c99a501c745530825": {"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}}, "03c43421fdd4476e8a46ea4fd58f1a48": {"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}}, "8b3777446b854f1abe20d4905c3834dd": {"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_7a415176e9aa432c99a501c745530825", "placeholder": "\u200b", "style": "IPY_MODEL_03c43421fdd4476e8a46ea4fd58f1a48", "tabbable": null, "tooltip": null, "value": "Epoch\u2007499:\u2007100%"}}, "026c754e970945abb8fe1a6e49e87037": {"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}}, "15923d8e32c549f3865fb56c8ce50201": {"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}}, "8478d359479d4d75903c3372e325fa21": {"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_026c754e970945abb8fe1a6e49e87037", "placeholder": "\u200b", "style": "IPY_MODEL_15923d8e32c549f3865fb56c8ce50201", "tabbable": null, "tooltip": null, "value": "\u20071\/1\u2007[00:00<00:00,\u2007\u20077.96it\/s,\u2007v_num=0,\u2007interior_loss=1.000,\u2007train_loss=1.000]"}}, "6926c267df7d45c88011e0d088337715": {"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%"}}, "0cb170eee38c4e45ad0433f32f42776d": {"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_8b3777446b854f1abe20d4905c3834dd", "IPY_MODEL_8fb06175928a42b081302a69f411eb0f", "IPY_MODEL_8478d359479d4d75903c3372e325fa21"], "layout": "IPY_MODEL_6926c267df7d45c88011e0d088337715", "tabbable": null, "tooltip": null}}}, "version_major": 2, "version_minor": 0}
|
||
</script>
|
||
</html>
|