8004 lines
486 KiB
HTML
8004 lines
486 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="PINA Workflow" src="../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>You are using the plain ModelCheckpoint callback. Consider using LitModelCheckpoint which with seamless uploading to 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="05dd19c2-9f33-4eae-b4f3-ce462c88181a" tabindex="0">
|
||
<script type="text/javascript">
|
||
var element = document.getElementById('05dd19c2-9f33-4eae-b4f3-ce462c88181a');
|
||
</script>
|
||
<script type="application/vnd.jupyter.widget-view+json">
|
||
{"version_major": 2, "version_minor": 0, "model_id": "9c89525747c742f5adc81ad3ffc17481"}
|
||
</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,iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVCElEQVR4nOzdd5xcVf3/8de9d+rO7M72mk3vIQlJgNB7LyKgFFEpCqKoqHwt6E8BvyqCBawg+gVsVAUBpUd6DYFASO/ZlO1ldvrMvef3x52Z3cnuJrtha/g8H4+bmblzy5nd7Mx7zjn3HE0ppRBCCCGE2E/oI10AIYQQQojBJOFGCCGEEPsVCTdCCCGE2K9IuBFCCCHEfkXCjRBCCCH2KxJuhBBCCLFfkXAjhBBCiP2KhBshhBBC7Fck3AghhBBivyLhRggxIPfccw+apvH222/vddtjjz2WY489dugLJYQQ3Ui4EWKQZT78+1reeOONkS7imPfCCy9w7rnnUllZicvlory8nLPOOouHH354pIsmhBgFHCNdACH2Vz/84Q+ZNGlSj/VTp04dgdLsP66//np++MMfMm3aNL7whS8wYcIEWlpaeOKJJzjvvPP4+9//zqc+9amRLqYQYgRJuBFiiJx22mkcdNBBI12M/co//vEPfvjDH/KJT3yCe++9F6fTmX3um9/8Jk8//TTJZHIES/jhhcNhfD7fSBdDiDFNmqWEGCFbtmxB0zR+/vOfc+eddzJlyhTcbjcHH3wwS5cuzdm2vr6eyy67jHHjxuF2u6mqquLss89my5YtOds9+eSTHHXUUfh8PvLz8znjjDNYuXJlzjaXXnopfr+fbdu2ceaZZ+L3+6mpqeF3v/sdACtWrOD444/H5/MxYcIE7r333l7LH4lE+MIXvkBJSQkFBQV89rOfpa2tba+vOx6Pc/311zN16lTcbje1tbV861vfIh6P73Xf73//+xQXF3PXXXflBJuMU045hTPPPDP7uLGxkc997nNUVFTg8XiYP38+f/7zn3P26e/v4ec//zmaprF169Ye573uuutwuVw5r//NN9/k1FNPJRAIkJeXxzHHHMOrr76as98NN9yApmmsWrWKT33qUxQVFXHkkUcCYFkWN9xwA9XV1eTl5XHcccexatUqJk6cyKWXXppznPb2dr72ta9RW1uL2+1m6tSp3HzzzViWNeDXmbFmzRrOP/98ysrK8Hq9zJgxg+9973s52+zYsYPLL7+ciooK3G43c+bM4a677upxLCGGm9TcCDFEOjo6aG5uzlmnaRolJSU56+699146Ozv5whe+gKZp3HLLLZx77rls2rQp+wF+3nnnsXLlSr7yla8wceJEGhsbefbZZ9m2bRsTJ04E4K9//SuXXHIJp5xyCjfffDORSITbb7+dI488knfffTe7HYBpmpx22mkcffTR3HLLLfz973/ny1/+Mj6fj+9973tcfPHFnHvuudxxxx189rOf5bDDDuvRxPblL3+ZwsJCbrjhBtauXcvtt9/O1q1beeGFF9A0rdefiWVZfOxjH+OVV17hyiuvZNasWaxYsYJbb72VdevW8a9//avPn+f69etZs2YNl19+Ofn5+Xv9+UejUY499lg2bNjAl7/8ZSZNmsRDDz3EpZdeSnt7O9dcc82Afg/nn38+3/rWt3jwwQf55je/mbPvgw8+yMknn0xRUREA//3vfznttNNYtGgR119/Pbquc/fdd3P88cfz8ssvc8ghh+Ts/8lPfpJp06bxk5/8BKUUYAemW265hbPOOotTTjmF9957j1NOOYVYLJazbyQS4ZhjjmHHjh184QtfYPz48bz22mtcd9117Nq1i9tuu21ArxPg/fff56ijjsLpdHLllVcyceJENm7cyOOPP86Pf/xjABoaGjj00EPRNI0vf/nLlJWV8eSTT/K5z32OYDDI1772tb3+joQYMkoIMajuvvtuBfS6uN3u7HabN29WgCopKVGtra3Z9Y8++qgC1OOPP66UUqqtrU0B6mc/+1mf5+zs7FSFhYXqiiuuyFlfX1+vAoFAzvpLLrlEAeonP/lJdl1bW5vyer1K0zR1//33Z9evWbNGAer666/v8foWLVqkEolEdv0tt9yiAPXoo49m1x1zzDHqmGOOyT7+61//qnRdVy+//HJOOe+44w4FqFdffbXP15j5udx66619btPdbbfdpgD1t7/9LbsukUioww47TPn9fhUMBpVS/f89KKXUYYcdphYtWpRznrfeeksB6i9/+YtSSinLstS0adPUKaecoizLym4XiUTUpEmT1EknnZRdd/311ytAXXTRRTnHrK+vVw6HQ3384x/PWX/DDTcoQF1yySXZdf/7v/+rfD6fWrduXc623/nOd5RhGGrbtm0Dfp1HH320ys/PV1u3bs05ZvfX87nPfU5VVVWp5ubmnG0uvPBCFQgEVCQSUUKMFGmWEmKI/O53v+PZZ5/NWZ588ske211wwQXZb/wARx11FACbNm0CwOv14nK5eOGFF/ps9nn22Wdpb2/noosuorm5ObsYhsHixYt5/vnne+zz+c9/Pnu/sLCQGTNm4PP5OP/887PrZ8yYQWFhYbYs3V155ZU5TUNf/OIXcTgcPPHEE33+TB566CFmzZrFzJkzc8p5/PHHA/RazoxgMAjQr1obgCeeeILKykouuuii7Dqn08lXv/pVQqEQL774Ys72e/s9ZLZZtmwZGzduzK574IEHcLvdnH322QAsX76c9evX86lPfYqWlpbsawyHw5xwwgm89NJLOc1FAFdddVXO4yVLlpBKpfjSl76Us/4rX/lKj9f50EMPcdRRR1FUVJTzMz3xxBMxTZOXXnppQK+zqamJl156icsvv5zx48fn7JupkVNK8c9//pOzzjoLpVTOeU855RQ6Ojp45513epRViOEizVJCDJFDDjmkXx2Kd/8AyXzwZIKM2+3m5ptv5tprr6WiooJDDz2UM888k89+9rNUVlYCdpMNkA0JuysoKMh57PF4KCsry1kXCAQYN25cjyalQCDQa6iaNm1azmO/309VVVWPfkDdrV+/ntWrV/c4d0ZjY2Of+2ZeQ2dnZ5/bdLd161amTZuGrud+h5s1a1b2+e729nsAu/noG9/4Bg888ADf/e53UUrx0EMPcdppp2XLl/ldXHLJJX2WraOjIydg7N7klynb7lfWFRcX5+yXOd/777/f75/p3l5nJuQccMABfZa/qamJ9vZ27rzzTu68885+nVeI4SThRogRZhhGr+tVuu8FwNe+9jXOOuss/vWvf/H000/z/e9/n5tuuon//ve/LFiwIFsT8Ne//jUbeLpzOHL/1Ps6Z3/K8mFYlsXcuXP55S9/2evztbW1fe47c+ZMwO7wPBT689qrq6s56qijePDBB/nud7/LG2+8wbZt27j55puz22R+Fz/72c848MADez2m3+/Peez1eve53JZlcdJJJ/Gtb32r1+enT5+e83gwfseZ1/jpT3+6zxA3b968fh9PiMEm4UaIMWLKlClce+21XHvttaxfv54DDzyQX/ziF/ztb39jypQpAJSXl3PiiScOS3nWr1/Pcccdl30cCoXYtWsXp59+ep/7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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, 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": {"4f9c72ba84bb42d4950b5f6cfe4c2c16": {"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}}, "3b32d4ad975a4b52b10ab6e3ee49acf4": {"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": ""}}, "9681725037a54c38a76cb3d636b1f05e": {"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_4f9c72ba84bb42d4950b5f6cfe4c2c16", "max": 1.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_3b32d4ad975a4b52b10ab6e3ee49acf4", "tabbable": null, "tooltip": null, "value": 1.0}}, "5a3eb5e4b31d4e82aa38cdee77aa5d79": {"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}}, "b30a292e87cf46bea5b532d092c2b6b0": {"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}}, "5d7dc0d4e65945efba544e7a9b39727d": {"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_5a3eb5e4b31d4e82aa38cdee77aa5d79", "placeholder": "\u200b", "style": "IPY_MODEL_b30a292e87cf46bea5b532d092c2b6b0", "tabbable": null, "tooltip": null, "value": "Epoch\u2007499:\u2007100%"}}, "029d53f02ef2475b956933a52cae167b": {"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}}, "54ac9f7570ab479bb57c48210441d927": {"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}}, "dad65eebc5ca4bc29ad52379c82082bd": {"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_029d53f02ef2475b956933a52cae167b", "placeholder": "\u200b", "style": "IPY_MODEL_54ac9f7570ab479bb57c48210441d927", "tabbable": null, "tooltip": null, "value": "\u20071\/1\u2007[00:00<00:00,\u2007\u20077.66it\/s,\u2007v_num=0,\u2007interior_loss=2.860,\u2007train_loss=2.860]"}}, "632f927137564d24b159103c6540421f": {"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%"}}, "9c89525747c742f5adc81ad3ffc17481": {"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_5d7dc0d4e65945efba544e7a9b39727d", "IPY_MODEL_9681725037a54c38a76cb3d636b1f05e", "IPY_MODEL_dad65eebc5ca4bc29ad52379c82082bd"], "layout": "IPY_MODEL_632f927137564d24b159103c6540421f", "tabbable": null, "tooltip": null}}}, "version_major": 2, "version_minor": 0}
|
||
</script>
|
||
</html>
|