From 9a3c8dbd4c6228a818d594c65a523ae2d96b6721 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Tue, 15 Aug 2023 11:43:48 +0200 Subject: [PATCH] Saving changes --- docs/src/notebook-html/jacobi_2D.html | 979 +++-------- docs/src/notebook-html/jacobi_method.html | 1450 ++++++----------- docs/src/notebook-html/julia_async.html | 1091 ++++--------- docs/src/notebook-html/julia_basics.html | 1257 +++++--------- docs/src/notebook-html/julia_distributed.html | 1191 ++++---------- docs/src/notebook-html/julia_intro.html | 1087 ++++-------- docs/src/notebook-html/julia_jacobi.html | 1041 +++--------- docs/src/notebook-html/julia_tutorial.html | 993 +++-------- docs/src/notebook-html/matrix_matrix.html | 1117 ++++--------- docs/src/notebook-html/mpi_tutorial.html | 991 +++-------- docs/src/notebook-html/notebook-hello.html | 985 +++-------- docs/src/notebook-html/solutions.html | 977 +++-------- docs/src/notebook-html/tsp.html | 969 +++-------- docs/src/notebooks/jacobi_method.ipynb | 367 +++-- notebooks/figures/fig_jacobi.svg | 399 ++++- notebooks/jacobi_method.ipynb | 32 +- 16 files changed, 4386 insertions(+), 10540 deletions(-) diff --git a/docs/src/notebook-html/jacobi_2D.html b/docs/src/notebook-html/jacobi_2D.html index 0615cbc..093518b 100644 --- a/docs/src/notebook-html/jacobi_2D.html +++ b/docs/src/notebook-html/jacobi_2D.html @@ -279,8 +279,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-Widget, /* */ + +/* */ .p-Widget, /* */ .lm-Widget { box-sizing: border-box; position: relative; @@ -288,19 +288,12 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: cursor: default; } -/* */ -.p-Widget.p-mod-hidden, /* */ + +/* */ .p-Widget.p-mod-hidden, /* */ .lm-Widget.lm-mod-hidden { display: none !important; } -.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. | Copyright (c) 2014-2017, PhosphorJS Contributors @@ -310,8 +303,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-CommandPalette, /* */ + +/* */ .p-CommandPalette, /* */ .lm-CommandPalette { display: flex; flex-direction: column; @@ -321,14 +314,14 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: user-select: none; } -/* */ -.p-CommandPalette-search, /* */ + +/* */ .p-CommandPalette-search, /* */ .lm-CommandPalette-search { flex: 0 0 auto; } -/* */ -.p-CommandPalette-content, /* */ + +/* */ .p-CommandPalette-content, /* */ .lm-CommandPalette-content { flex: 1 1 auto; margin: 0; @@ -338,42 +331,42 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: list-style-type: none; } -/* */ -.p-CommandPalette-header, /* */ + +/* */ .p-CommandPalette-header, /* */ .lm-CommandPalette-header { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } -/* */ -.p-CommandPalette-item, /* */ + +/* */ .p-CommandPalette-item, /* */ .lm-CommandPalette-item { display: flex; flex-direction: row; } -/* */ -.p-CommandPalette-itemIcon, /* */ + +/* */ .p-CommandPalette-itemIcon, /* */ .lm-CommandPalette-itemIcon { flex: 0 0 auto; } -/* */ -.p-CommandPalette-itemContent, /* */ + +/* */ .p-CommandPalette-itemContent, /* */ .lm-CommandPalette-itemContent { flex: 1 1 auto; overflow: hidden; } -/* */ -.p-CommandPalette-itemShortcut, /* */ + +/* */ .p-CommandPalette-itemShortcut, /* */ .lm-CommandPalette-itemShortcut { flex: 0 0 auto; } -/* */ -.p-CommandPalette-itemLabel, /* */ + +/* */ .p-CommandPalette-itemLabel, /* */ .lm-CommandPalette-itemLabel { overflow: hidden; white-space: nowrap; @@ -381,30 +374,30 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: } .lm-close-icon { - border: 1px solid transparent; + 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; + 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; + content: "X"; + display: block; + width: 15px; + height: 15px; + text-align: center; + color:#000; + font-weight: normal; + font-size: 12px; + cursor: pointer; } /*----------------------------------------------------------------------------- @@ -416,38 +409,38 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-DockPanel, /* */ + +/* */ .p-DockPanel, /* */ .lm-DockPanel { z-index: 0; } -/* */ -.p-DockPanel-widget, /* */ + +/* */ .p-DockPanel-widget, /* */ .lm-DockPanel-widget { z-index: 0; } -/* */ -.p-DockPanel-tabBar, /* */ + +/* */ .p-DockPanel-tabBar, /* */ .lm-DockPanel-tabBar { z-index: 1; } -/* */ -.p-DockPanel-handle, /* */ + +/* */ .p-DockPanel-handle, /* */ .lm-DockPanel-handle { z-index: 2; } -/* */ -.p-DockPanel-handle.p-mod-hidden, /* */ + +/* */ .p-DockPanel-handle.p-mod-hidden, /* */ .lm-DockPanel-handle.lm-mod-hidden { display: none !important; } -/* */ -.p-DockPanel-handle:after, /* */ + +/* */ .p-DockPanel-handle:after, /* */ .lm-DockPanel-handle:after { position: absolute; top: 0; @@ -457,6 +450,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: content: ''; } + /* */ .p-DockPanel-handle[data-orientation='horizontal'], /* */ @@ -464,6 +458,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: cursor: ew-resize; } + /* */ .p-DockPanel-handle[data-orientation='vertical'], /* */ @@ -471,6 +466,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: cursor: ns-resize; } + /* */ .p-DockPanel-handle[data-orientation='horizontal']:after, /* */ @@ -480,6 +476,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: transform: translateX(-50%); } + /* */ .p-DockPanel-handle[data-orientation='vertical']:after, /* */ @@ -489,16 +486,16 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: transform: translateY(-50%); } -/* */ -.p-DockPanel-overlay, /* */ + +/* */ .p-DockPanel-overlay, /* */ .lm-DockPanel-overlay { z-index: 3; box-sizing: border-box; pointer-events: none; } -/* */ -.p-DockPanel-overlay.p-mod-hidden, /* */ + +/* */ .p-DockPanel-overlay.p-mod-hidden, /* */ .lm-DockPanel-overlay.lm-mod-hidden { display: none !important; } @@ -512,8 +509,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-Menu, /* */ + +/* */ .p-Menu, /* */ .lm-Menu { z-index: 10000; position: absolute; @@ -527,8 +524,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: user-select: none; } -/* */ -.p-Menu-content, /* */ + +/* */ .p-Menu-content, /* */ .lm-Menu-content { margin: 0; padding: 0; @@ -536,12 +533,13 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: list-style-type: none; } -/* */ -.p-Menu-item, /* */ + +/* */ .p-Menu-item, /* */ .lm-Menu-item { display: table-row; } + /* */ .p-Menu-item.p-mod-hidden, .p-Menu-item.p-mod-collapsed, @@ -551,6 +549,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: display: none !important; } + /* */ .p-Menu-itemIcon, .p-Menu-itemSubmenuIcon, @@ -561,15 +560,15 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: text-align: center; } -/* */ -.p-Menu-itemLabel, /* */ + +/* */ .p-Menu-itemLabel, /* */ .lm-Menu-itemLabel { display: table-cell; text-align: left; } -/* */ -.p-Menu-itemShortcut, /* */ + +/* */ .p-Menu-itemShortcut, /* */ .lm-Menu-itemShortcut { display: table-cell; text-align: right; @@ -584,8 +583,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-MenuBar, /* */ + +/* */ .p-MenuBar, /* */ .lm-MenuBar { outline: none; -webkit-user-select: none; @@ -594,8 +593,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: user-select: none; } -/* */ -.p-MenuBar-content, /* */ + +/* */ .p-MenuBar-content, /* */ .lm-MenuBar-content { margin: 0; padding: 0; @@ -604,12 +603,13 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: list-style-type: none; } -/* */ -.p--MenuBar-item, /* */ + +/* */ .p--MenuBar-item, /* */ .lm-MenuBar-item { box-sizing: border-box; } + /* */ .p-MenuBar-itemIcon, .p-MenuBar-itemLabel, @@ -628,8 +628,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-ScrollBar, /* */ + +/* */ .p-ScrollBar, /* */ .lm-ScrollBar { display: flex; -webkit-user-select: none; @@ -638,6 +638,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: user-select: none; } + /* */ .p-ScrollBar[data-orientation='horizontal'], /* */ @@ -645,6 +646,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex-direction: row; } + /* */ .p-ScrollBar[data-orientation='vertical'], /* */ @@ -652,15 +654,15 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex-direction: column; } -/* */ -.p-ScrollBar-button, /* */ + +/* */ .p-ScrollBar-button, /* */ .lm-ScrollBar-button { box-sizing: border-box; flex: 0 0 auto; } -/* */ -.p-ScrollBar-track, /* */ + +/* */ .p-ScrollBar-track, /* */ .lm-ScrollBar-track { box-sizing: border-box; position: relative; @@ -668,8 +670,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex: 1 1 auto; } -/* */ -.p-ScrollBar-thumb, /* */ + +/* */ .p-ScrollBar-thumb, /* */ .lm-ScrollBar-thumb { box-sizing: border-box; position: absolute; @@ -684,26 +686,26 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-SplitPanel-child, /* */ + +/* */ .p-SplitPanel-child, /* */ .lm-SplitPanel-child { z-index: 0; } -/* */ -.p-SplitPanel-handle, /* */ + +/* */ .p-SplitPanel-handle, /* */ .lm-SplitPanel-handle { z-index: 1; } -/* */ -.p-SplitPanel-handle.p-mod-hidden, /* */ + +/* */ .p-SplitPanel-handle.p-mod-hidden, /* */ .lm-SplitPanel-handle.lm-mod-hidden { display: none !important; } -/* */ -.p-SplitPanel-handle:after, /* */ + +/* */ .p-SplitPanel-handle:after, /* */ .lm-SplitPanel-handle:after { position: absolute; top: 0; @@ -713,6 +715,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: content: ''; } + /* */ .p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle, /* */ @@ -720,6 +723,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: cursor: ew-resize; } + /* */ .p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle, /* */ @@ -727,6 +731,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: cursor: ns-resize; } + /* */ .p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle:after, /* */ @@ -736,6 +741,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: transform: translateX(-50%); } + /* */ .p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle:after, /* */ @@ -754,8 +760,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-TabBar, /* */ + +/* */ .p-TabBar, /* */ .lm-TabBar { display: flex; -webkit-user-select: none; @@ -764,22 +770,22 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: user-select: none; } -/* */ -.p-TabBar[data-orientation='horizontal'], /* */ + +/* */ .p-TabBar[data-orientation='horizontal'], /* */ .lm-TabBar[data-orientation='horizontal'] { flex-direction: row; align-items: flex-end; } -/* */ -.p-TabBar[data-orientation='vertical'], /* */ + +/* */ .p-TabBar[data-orientation='vertical'], /* */ .lm-TabBar[data-orientation='vertical'] { flex-direction: column; align-items: flex-end; } -/* */ -.p-TabBar-content, /* */ + +/* */ .p-TabBar-content, /* */ .lm-TabBar-content { margin: 0; padding: 0; @@ -788,6 +794,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: list-style-type: none; } + /* */ .p-TabBar[data-orientation='horizontal'] > .p-TabBar-content, /* */ @@ -795,6 +802,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex-direction: row; } + /* */ .p-TabBar[data-orientation='vertical'] > .p-TabBar-content, /* */ @@ -802,16 +810,16 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex-direction: column; } -/* */ -.p-TabBar-tab, /* */ + +/* */ .p-TabBar-tab, /* */ .lm-TabBar-tab { display: flex; flex-direction: row; box-sizing: border-box; overflow: hidden; - touch-action: none; /* Disable native Drag/Drop */ } + /* */ .p-TabBar-tabIcon, .p-TabBar-tabCloseIcon, @@ -821,36 +829,39 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: flex: 0 0 auto; } -/* */ -.p-TabBar-tabLabel, /* */ + +/* */ .p-TabBar-tabLabel, /* */ .lm-TabBar-tabLabel { flex: 1 1 auto; overflow: hidden; white-space: nowrap; } + .lm-TabBar-tabInput { user-select: all; width: 100%; - box-sizing: border-box; + box-sizing : border-box; } -/* */ -.p-TabBar-tab.p-mod-hidden, /* */ + +/* */ .p-TabBar-tab.p-mod-hidden, /* */ .lm-TabBar-tab.lm-mod-hidden { display: none !important; } + .lm-TabBar-addButton.lm-mod-hidden { display: none !important; } -/* */ -.p-TabBar.p-mod-dragging .p-TabBar-tab, /* */ + +/* */ .p-TabBar.p-mod-dragging .p-TabBar-tab, /* */ .lm-TabBar.lm-mod-dragging .lm-TabBar-tab { position: relative; } + /* */ .p-TabBar.p-mod-dragging[data-orientation='horizontal'] .p-TabBar-tab, /* */ @@ -859,6 +870,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: transition: left 150ms ease; } + /* */ .p-TabBar.p-mod-dragging[data-orientation='vertical'] .p-TabBar-tab, /* */ @@ -867,6 +879,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: transition: top 150ms ease; } + /* */ .p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging, /* */ @@ -877,7 +890,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .lm-TabBar-tabLabel .lm-TabBar-tabInput { user-select: all; width: 100%; - box-sizing: border-box; + box-sizing : border-box; background: inherit; } @@ -890,14 +903,14 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -.p-TabPanel-tabBar, /* */ + +/* */ .p-TabPanel-tabBar, /* */ .lm-TabPanel-tabBar { z-index: 1; } -/* */ -.p-TabPanel-stackedPanel, /* */ + +/* */ .p-TabPanel-stackedPanel, /* */ .lm-TabPanel-stackedPanel { z-index: 0; } @@ -9354,11 +9367,7 @@ span.bp3-popover-target{ /* 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); @@ -9375,13 +9384,11 @@ span.bp3-popover-target{ --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: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==); - --jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1jb25zb2xlLWljb24tYmFja2dyb3VuZC1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtY29uc29sZS1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik0xMDUgMTI3LjNoNDB2MTIuOGgtNDB6TTUxLjEgNzdMNzQgOTkuOWwtMjMuMyAyMy4zIDEwLjUgMTAuNSAyMy4zLTIzLjNMOTUgOTkuOSA4NC41IDg5LjQgNjEuNiA2Ni41eiIvPgogIDwvZz4KPC9zdmc+Cg==); + --jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1pY29uLWJyYW5kMSBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNmZmYiPgogICAgPHBhdGggZD0iTTEwNSAxMjcuM2g0MHYxMi44aC00MHpNNTEuMSA3N0w3NCA5OS45bC0yMy4zIDIzLjMgMTAuNSAxMC41IDIzLjMtMjMuM0w5NSA5OS45IDg0LjUgODkuNCA2MS42IDY2LjV6Ii8+CiAgPC9nPgo8L3N2Zz4K); --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-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==); @@ -9389,37 +9396,32 @@ span.bp3-popover-target{ --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-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==); - --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-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaW5zcGVjdG9yLWljb24tY29sb3IganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K); - --jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtanNvbi1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0Y5QTgyNSI+CiAgICA8cGF0aCBkPSJNMjAuMiAxMS44Yy0xLjYgMC0xLjcuNS0xLjcgMSAwIC40LjEuOS4xIDEuMy4xLjUuMS45LjEgMS4zIDAgMS43LTEuNCAyLjMtMy41IDIuM2gtLjl2LTEuOWguNWMxLjEgMCAxLjQgMCAxLjQtLjggMC0uMyAwLS42LS4xLTEgMC0uNC0uMS0uOC0uMS0xLjIgMC0xLjMgMC0xLjggMS4zLTItMS4zLS4yLTEuMy0uNy0xLjMtMiAwLS40LjEtLjguMS0xLjIuMS0uNC4xLS43LjEtMSAwLS44LS40LS43LTEuNC0uOGgtLjVWNC4xaC45YzIuMiAwIDMuNS43IDMuNSAyLjMgMCAuNC0uMS45LS4xIDEuMy0uMS41LS4xLjktLjEgMS4zIDAgLjUuMiAxIDEuNyAxdjEuOHpNMS44IDEwLjFjMS42IDAgMS43LS41IDEuNy0xIDAtLjQtLjEtLjktLjEtMS4zLS4xLS41LS4xLS45LS4xLTEuMyAwLTEuNiAxLjQtMi4zIDMuNS0yLjNoLjl2MS45aC0uNWMtMSAwLTEuNCAwLTEuNC44IDAgLjMgMCAuNi4xIDEgMCAuMi4xLjYuMSAxIDAgMS4zIDAgMS44LTEuMyAyQzYgMTEuMiA2IDExLjcgNiAxM2MwIC40LS4xLjgtLjEgMS4yLS4xLjMtLjEuNy0uMSAxIDAgLjguMy44IDEuNC44aC41djEuOWgtLjljLTIuMSAwLTMuNS0uNi0zLjUtMi4zIDAtLjQuMS0uOS4xLTEuMy4xLS41LjEtLjkuMS0xLjMgMC0uNS0uMi0xLTEuNy0xdi0xLjl6Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzLjgiIHI9IjIuMSIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSI4LjIiIHI9IjIuMSIvPgogIDwvZz4KPC9zdmc+Cg==); + --jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K); + --jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMSBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNGOUE4MjUiPgogICAgPHBhdGggZD0iTTIwLjIgMTEuOGMtMS42IDAtMS43LjUtMS43IDEgMCAuNC4xLjkuMSAxLjMuMS41LjEuOS4xIDEuMyAwIDEuNy0xLjQgMi4zLTMuNSAyLjNoLS45di0xLjloLjVjMS4xIDAgMS40IDAgMS40LS44IDAtLjMgMC0uNi0uMS0xIDAtLjQtLjEtLjgtLjEtMS4yIDAtMS4zIDAtMS44IDEuMy0yLTEuMy0uMi0xLjMtLjctMS4zLTIgMC0uNC4xLS44LjEtMS4yLjEtLjQuMS0uNy4xLTEgMC0uOC0uNC0uNy0xLjQtLjhoLS41VjQuMWguOWMyLjIgMCAzLjUuNyAzLjUgMi4zIDAgLjQtLjEuOS0uMSAxLjMtLjEuNS0uMS45LS4xIDEuMyAwIC41LjIgMSAxLjcgMXYxLjh6TTEuOCAxMC4xYzEuNiAwIDEuNy0uNSAxLjctMSAwLS40LS4xLS45LS4xLTEuMy0uMS0uNS0uMS0uOS0uMS0xLjMgMC0xLjYgMS40LTIuMyAzLjUtMi4zaC45djEuOWgtLjVjLTEgMC0xLjQgMC0xLjQuOCAwIC4zIDAgLjYuMSAxIDAgLjIuMS42LjEgMSAwIDEuMyAwIDEuOC0xLjMgMkM2IDExLjIgNiAxMS43IDYgMTNjMCAuNC0uMS44LS4xIDEuMi0uMS4zLS4xLjctLjEgMSAwIC44LjMuOCAxLjQuOGguNXYxLjloLS45Yy0yLjEgMC0zLjUtLjYtMy41LTIuMyAwLS40LjEtLjkuMS0xLjMuMS0uNS4xLS45LjEtMS4zIDAtLjUtLjItMS0xLjctMXYtMS45eiIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMy44IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY3g9IjExIiBjeT0iOC4yIiByPSIyLjEiLz4KICA8L2c+Cjwvc3ZnPgo=); --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-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=); + --jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgPGcgY2xhc3M9ImpwLWljb24td2FybjAiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4=); --jp-icon-listings-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MC45NzggNTAuOTc4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MC45NzggNTAuOTc4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cgk8Zz4KCQk8cGF0aCBzdHlsZT0iZmlsbDojMDEwMDAyOyIgZD0iTTQzLjUyLDcuNDU4QzM4LjcxMSwyLjY0OCwzMi4zMDcsMCwyNS40ODksMEMxOC42NywwLDEyLjI2NiwyLjY0OCw3LjQ1OCw3LjQ1OAoJCQljLTkuOTQzLDkuOTQxLTkuOTQzLDI2LjExOSwwLDM2LjA2MmM0LjgwOSw0LjgwOSwxMS4yMTIsNy40NTYsMTguMDMxLDcuNDU4YzAsMCwwLjAwMSwwLDAuMDAyLDAKCQkJYzYuODE2LDAsMTMuMjIxLTIuNjQ4LDE4LjAyOS03LjQ1OGM0LjgwOS00LjgwOSw3LjQ1Ny0xMS4yMTIsNy40NTctMTguMDNDNTAuOTc3LDE4LjY3LDQ4LjMyOCwxMi4yNjYsNDMuNTIsNy40NTh6CgkJCSBNNDIuMTA2LDQyLjEwNWMtNC40MzIsNC40MzEtMTAuMzMyLDYuODcyLTE2LjYxNSw2Ljg3MmgtMC4wMDJjLTYuMjg1LTAuMDAxLTEyLjE4Ny0yLjQ0MS0xNi42MTctNi44NzIKCQkJYy05LjE2Mi05LjE2My05LjE2Mi0yNC4wNzEsMC0zMy4yMzNDMTMuMzAzLDQuNDQsMTkuMjA0LDIsMjUuNDg5LDJjNi4yODQsMCwxMi4xODYsMi40NCwxNi42MTcsNi44NzIKCQkJYzQuNDMxLDQuNDMxLDYuODcxLDEwLjMzMiw2Ljg3MSwxNi42MTdDNDguOTc3LDMxLjc3Miw0Ni41MzYsMzcuNjc1LDQyLjEwNiw0Mi4xMDV6Ii8+CgkJPHBhdGggc3R5bGU9ImZpbGw6IzAxMDAwMjsiIGQ9Ik0yMy41NzgsMzIuMjE4Yy0wLjAyMy0xLjczNCwwLjE0My0zLjA1OSwwLjQ5Ni0zLjk3MmMwLjM1My0wLjkxMywxLjExLTEuOTk3LDIuMjcyLTMuMjUzCgkJCWMwLjQ2OC0wLjUzNiwwLjkyMy0xLjA2MiwxLjM2Ny0xLjU3NWMwLjYyNi0wLjc1MywxLjEwNC0xLjQ3OCwxLjQzNi0yLjE3NWMwLjMzMS0wLjcwNywwLjQ5NS0xLjU0MSwwLjQ5NS0yLjUKCQkJYzAtMS4wOTYtMC4yNi0yLjA4OC0wLjc3OS0yLjk3OWMtMC41NjUtMC44NzktMS41MDEtMS4zMzYtMi44MDYtMS4zNjljLTEuODAyLDAuMDU3LTIuOTg1LDAuNjY3LTMuNTUsMS44MzIKCQkJYy0wLjMwMSwwLjUzNS0wLjUwMywxLjE0MS0wLjYwNywxLjgxNGMtMC4xMzksMC43MDctMC4yMDcsMS40MzItMC4yMDcsMi4xNzRoLTIuOTM3Yy0wLjA5MS0yLjIwOCwwLjQwNy00LjExNCwxLjQ5My01LjcxOQoJCQljMS4wNjItMS42NCwyLjg1NS0yLjQ4MSw1LjM3OC0yLjUyN2MyLjE2LDAuMDIzLDMuODc0LDAuNjA4LDUuMTQxLDEuNzU4YzEuMjc4LDEuMTYsMS45MjksMi43NjQsMS45NSw0LjgxMQoJCQljMCwxLjE0Mi0wLjEzNywyLjExMS0wLjQxLDIuOTExYy0wLjMwOSwwLjg0NS0wLjczMSwxLjU5My0xLjI2OCwyLjI0M2MtMC40OTIsMC42NS0xLjA2OCwxLjMxOC0xLjczLDIuMDAyCgkJCWMtMC42NSwwLjY5Ny0xLjMxMywxLjQ3OS0xLjk4NywyLjM0NmMtMC4yMzksMC4zNzctMC40MjksMC43NzctMC41NjUsMS4xOTljLTAuMTYsMC45NTktMC4yMTcsMS45NTEtMC4xNzEsMi45NzkKCQkJQzI2LjU4OSwzMi4yMTgsMjMuNTc4LDMyLjIxOCwyMy41NzgsMzIuMjE4eiBNMjMuNTc4LDM4LjIydi0zLjQ4NGgzLjA3NnYzLjQ4NEgyMy41Nzh6Ii8+Cgk8L2c+Cjwvc3ZnPgo=); --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-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+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-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMEQ0N0ExIj4KICAgIDxwYXRoIGQ9Ik0xMS4xIDYuOVY1LjhINi45YzAtLjUgMC0xLjMuMi0xLjYuNC0uNy44LTEuMSAxLjctMS40IDEuNy0uMyAyLjUtLjMgMy45LS4xIDEgLjEgMS45LjkgMS45IDEuOXY0LjJjMCAuNS0uOSAxLjYtMiAxLjZIOC44Yy0xLjUgMC0yLjQgMS40LTIuNCAyLjh2Mi4ySDQuN0MzLjUgMTUuMSAzIDE0IDMgMTMuMVY5Yy0uMS0xIC42LTIgMS44LTIgMS41LS4xIDYuMy0uMSA2LjMtLjF6Ii8+CiAgICA8cGF0aCBkPSJNMTAuOSAxNS4xdjEuMWg0LjJjMCAuNSAwIDEuMy0uMiAxLjYtLjQuNy0uOCAxLjEtMS43IDEuNC0xLjcuMy0yLjUuMy0zLjkuMS0xLS4xLTEuOS0uOS0xLjktMS45di00LjJjMC0uNS45LTEuNiAyLTEuNmgzLjhjMS41IDAgMi40LTEuNCAyLjQtMi44VjYuNmgxLjdDMTguNSA2LjkgMTkgOCAxOSA4LjlWMTNjMCAxLS43IDIuMS0xLjkgMi4xaC02LjJ6Ii8+CiAgPC9nPgo8L3N2Zz4K); --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=); @@ -9430,41 +9432,26 @@ span.bp3-popover-target{ --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+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4=); --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-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMikiIGZpbGw9IiMzMzMzMzMiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uLWFjY2VudDIganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGQ9Ik01LjA1NjY0IDguNzYxNzJDNS4wNTY2NCA4LjU5NzY2IDUuMDMxMjUgOC40NTMxMiA0Ljk4MDQ3IDguMzI4MTJDNC45MzM1OSA4LjE5OTIyIDQuODU1NDcgOC4wODIwMyA0Ljc0NjA5IDcuOTc2NTZDNC42NDA2MiA3Ljg3MTA5IDQuNSA3Ljc3NTM5IDQuMzI0MjIgNy42ODk0NUM0LjE1MjM0IDcuNTk5NjEgMy45NDMzNiA3LjUxMTcyIDMuNjk3MjcgNy40MjU3OEMzLjMwMjczIDcuMjg1MTYgMi45NDMzNiA3LjEzNjcyIDIuNjE5MTQgNi45ODA0N0MyLjI5NDkyIDYuODI0MjIgMi4wMTc1OCA2LjY0MjU4IDEuNzg3MTEgNi40MzU1NUMxLjU2MDU1IDYuMjI4NTIgMS4zODQ3NyA1Ljk4ODI4IDEuMjU5NzcgNS43MTQ4NEMxLjEzNDc3IDUuNDM3NSAxLjA3MjI3IDUuMTA5MzggMS4wNzIyNyA0LjczMDQ3QzEuMDcyMjcgNC4zOTg0NCAxLjEyODkxIDQuMDk1NyAxLjI0MjE5IDMuODIyMjdDMS4zNTU0NyAzLjU0NDkyIDEuNTE1NjIgMy4zMDQ2OSAxLjcyMjY2IDMuMTAxNTZDMS45Mjk2OSAyLjg5ODQ0IDIuMTc5NjkgMi43MzQzNyAyLjQ3MjY2IDIuNjA5MzhDMi43NjU2MiAyLjQ4NDM4IDMuMDkxOCAyLjQwNDMgMy40NTExNyAyLjM2OTE0VjEuMTA5MzhINC4zODg2N1YyLjM4MDg2QzQuNzQwMjMgMi40Mjc3MyA1LjA1NjY0IDIuNTIzNDQgNS4zMzc4OSAyLjY2Nzk3QzUuNjE5MTQgMi44MTI1IDUuODU3NDIgMy4wMDE5NSA2LjA1MjczIDMuMjM2MzNDNi4yNTE5NSAzLjQ2NjggNi40MDQzIDMuNzQwMjMgNi41MDk3NyA0LjA1NjY0QzYuNjE5MTQgNC4zNjkxNCA2LjY3MzgzIDQuNzIwNyA2LjY3MzgzIDUuMTExMzNINS4wNDQ5MkM1LjA0NDkyIDQuNjM4NjcgNC45Mzc1IDQuMjgxMjUgNC43MjI2NiA0LjAzOTA2QzQuNTA3ODEgMy43OTI5NyA0LjIxNjggMy42Njk5MiAzLjg0OTYxIDMuNjY5OTJDMy42NTAzOSAzLjY2OTkyIDMuNDc2NTYgMy42OTcyNyAzLjMyODEyIDMuNzUxOTVDMy4xODM1OSAzLjgwMjczIDMuMDY0NDUgMy44NzY5NSAyLjk3MDcgMy45NzQ2MUMyLjg3Njk1IDQuMDY4MzYgMi44MDY2NCA0LjE3OTY5IDIuNzU5NzcgNC4zMDg1OUMyLjcxNjggNC40Mzc1IDIuNjk1MzEgNC41NzgxMiAyLjY5NTMxIDQuNzMwNDdDMi42OTUzMSA0Ljg4MjgxIDIuNzE2OCA1LjAxOTUzIDIuNzU5NzcgNS4xNDA2MkMyLjgwNjY0IDUuMjU3ODEgMi44ODI4MSA1LjM2NzE5IDIuOTg4MjggNS40Njg3NUMzLjA5NzY2IDUuNTcwMzEgMy4yNDAyMyA1LjY2Nzk3IDMuNDE2MDIgNS43NjE3MkMzLjU5MTggNS44NTE1NiAzLjgxMDU1IDUuOTQzMzYgNC4wNzIyNyA2LjAzNzExQzQuNDY2OCA2LjE4NTU1IDQuODI0MjIgNi4zMzk4NCA1LjE0NDUzIDYuNUM1LjQ2NDg0IDYuNjU2MjUgNS43MzgyOCA2LjgzOTg0IDUuOTY0ODQgNy4wNTA3OEM2LjE5NTMxIDcuMjU3ODEgNi4zNzEwOSA3LjUgNi40OTIxOSA3Ljc3NzM0QzYuNjE3MTkgOC4wNTA3OCA2LjY3OTY5IDguMzc1IDYuNjc5NjkgOC43NUM2LjY3OTY5IDkuMDkzNzUgNi42MjMwNSA5LjQwNDMgNi41MDk3NyA5LjY4MTY0QzYuMzk2NDggOS45NTUwOCA2LjIzNDM4IDEwLjE5MTQgNi4wMjM0NCAxMC4zOTA2QzUuODEyNSAxMC41ODk4IDUuNTU4NTkgMTAuNzUgNS4yNjE3MiAxMC44NzExQzQuOTY0ODQgMTAuOTg4MyA0LjYzMjgxIDExLjA2NDUgNC4yNjU2MiAxMS4wOTk2VjEyLjI0OEgzLjMzMzk4VjExLjA5OTZDMy4wMDE5NSAxMS4wNjg0IDIuNjc5NjkgMTAuOTk2MSAyLjM2NzE5IDEwLjg4MjhDMi4wNTQ2OSAxMC43NjU2IDEuNzc3MzQgMTAuNTk3NyAxLjUzNTE2IDEwLjM3ODlDMS4yOTY4OCAxMC4xNjAyIDEuMTA1NDcgOS44ODQ3NyAwLjk2MDkzOCA5LjU1MjczQzAuODE2NDA2IDkuMjE2OCAwLjc0NDE0MSA4LjgxNDQ1IDAuNzQ0MTQxIDguMzQ1N0gyLjM3ODkxQzIuMzc4OTEgOC42MjY5NSAyLjQxOTkyIDguODYzMjggMi41MDE5NSA5LjA1NDY5QzIuNTgzOTggOS4yNDIxOSAyLjY4OTQ1IDkuMzkyNTggMi44MTgzNiA5LjUwNTg2QzIuOTUxMTcgOS42MTUyMyAzLjEwMTU2IDkuNjkzMzYgMy4yNjk1MyA5Ljc0MDIzQzMuNDM3NSA5Ljc4NzExIDMuNjA5MzggOS44MTA1NSAzLjc4NTE2IDkuODEwNTVDNC4yMDMxMiA5LjgxMDU1IDQuNTE5NTMgOS43MTI4OSA0LjczNDM4IDkuNTE3NThDNC45NDkyMiA5LjMyMjI3IDUuMDU2NjQgOS4wNzAzMSA1LjA1NjY0IDguNzYxNzJaTTEzLjQxOCAxMi4yNzE1SDguMDc0MjJWMTFIMTMuNDE4VjEyLjI3MTVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjk1MjY0IDYpIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K); + --jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTUgMTVIM3YyaDEydi0yem0wLThIM3YyaDEyVjd6TTMgMTNoMTh2LTJIM3Yyem0wIDhoMTh2LTJIM3Yyek0zIDN2MmgxOFYzSDN6Ii8+Cjwvc3ZnPgo=); --jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==); --jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4=); --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+); - --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-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); } @@ -9525,15 +9512,9 @@ span.bp3-popover-target{ .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); } @@ -9555,15 +9536,9 @@ span.bp3-popover-target{ .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); } @@ -9594,9 +9569,6 @@ span.bp3-popover-target{ .jp-KeyboardIcon { background-image: var(--jp-icon-keyboard); } -.jp-LaunchIcon { - background-image: var(--jp-icon-launch); -} .jp-LauncherIcon { background-image: var(--jp-icon-launcher); } @@ -9615,12 +9587,6 @@ span.bp3-popover-target{ .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); } @@ -9678,9 +9644,6 @@ span.bp3-popover-target{ .jp-SettingsIcon { background-image: var(--jp-icon-settings); } -.jp-ShareIcon { - background-image: var(--jp-icon-share); -} .jp-SpreadsheetIcon { background-image: var(--jp-icon-spreadsheet); } @@ -9714,12 +9677,6 @@ span.bp3-popover-target{ .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); } @@ -9778,36 +9735,6 @@ span.bp3-popover-target{ | 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 */ @@ -9969,40 +9896,15 @@ span.bp3-popover-target{ stroke: var(--jp-icon-contrast-color3); } -.jp-jupyter-icon-color[fill] { - fill: var(--jp-jupyter-icon-color, var(--jp-warn-color0)); +/* CSS for icons in selected items in the settings editor */ +#setting-editor .jp-PluginList .jp-mod-selected .jp-icon-selectable[fill] { + fill: #fff; } - -.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-layout2)); -} - -.jp-text-editor-icon-color[fill] { - fill: var(--jp-text-editor-icon-color, var(--jp-inverse-layout3)); -} - -.jp-inspector-icon-color[fill] { - fill: var(--jp-inspector-icon-color, var(--jp-inverse-layout3)); +#setting-editor + .jp-PluginList + .jp-mod-selected + .jp-icon-selectable-inverse[fill] { + fill: var(--jp-brand-color1); } /* CSS for icons in selected filebrowser listing items */ @@ -10185,7 +10087,7 @@ span.bp3-popover-target{ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -.jp-icon-hoverShow:not(:hover) .jp-icon-hoverShow-content { +.jp-icon-hoverShow:not(:hover) svg { display: none !important; } @@ -10369,7 +10271,7 @@ span.bp3-popover-target{ .jp-switch-track { cursor: pointer; - background-color: var(--jp-switch-color, var(--jp-border-color1)); + background-color: var(--jp-border-color1); -webkit-transition: 0.4s; transition: 0.4s; border-radius: 34px; @@ -10392,7 +10294,7 @@ span.bp3-popover-target{ } .jp-switch[aria-checked='true'] .jp-switch-track { - background-color: var(--jp-switch-true-position-color, var(--jp-warn-color0)); + background-color: var(--jp-warn-color0); } .jp-switch[aria-checked='true'] .jp-switch-track::before { @@ -10842,7 +10744,8 @@ select { margin-left: auto; margin-right: auto; background: var(--jp-layout-color1); - padding: 24px 24px 12px 24px; + padding: 24px; + padding-bottom: 12px; min-width: 300px; min-height: 150px; max-width: 1000px; @@ -10858,10 +10761,6 @@ select { resize: both; } -.jp-Dialog-content.jp-Dialog-content-small { - max-width: 500px; -} - .jp-Dialog-button { overflow: visible; } @@ -10876,25 +10775,6 @@ 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: 0px; -} - -button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus { - outline: 1px solid var(--md-blue-700); -} - -button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus { - outline: 1px solid var(--md-red-600); -} - -button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus { - outline: 1px solid var(--md-grey-700); -} - button.jp-Dialog-close-button { padding: 0; height: 100%; @@ -10925,26 +10805,12 @@ button.jp-Dialog-close-button { 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; @@ -11036,26 +10902,6 @@ body.lm-mod-override-cursor .jp-IFrame:before { 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; -} - -.jp-MainAreaWidget { - contain: strict; -} - /** * google-material-color v1.2.6 * https://github.com/danlevan/google-material-color @@ -11539,8 +11385,8 @@ select.jp-mod-styled { background: var(--jp-toolbar-background); min-height: var(--jp-toolbar-micro-height); padding: 2px; - z-index: 8; - overflow-x: hidden; + z-index: 1; + overflow-x: auto; } /* Toolbar items */ @@ -11648,8 +11494,8 @@ button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label { | The full license is in the file LICENSE, distributed with this software. |----------------------------------------------------------------------------*/ -/* */ -body.p-mod-override-cursor *, /* */ + +/* */ body.p-mod-override-cursor *, /* */ body.lm-mod-override-cursor * { cursor: inherit !important; } @@ -11709,80 +11555,6 @@ body.lm-mod-override-cursor * { box-shadow: var(--jp-input-box-shadow); } -/*----------------------------------------------------------------------------- -| Copyright (c) Jupyter Development Team. -| Distributed under the terms of the Modified BSD License. -|----------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -| Variables -|----------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- - -/*----------------------------------------------------------------------------- -| Styles -|----------------------------------------------------------------------------*/ - -.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: #ffffff; - 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; - } -} - /* BASICS */ .CodeMirror { @@ -12207,10 +11979,6 @@ span.CodeMirror-selectedtext { background: none; } padding: 0 var(--jp-code-padding); } -.CodeMirror.cm-fat-cursor .cm-overlay.cm-searching { - opacity: 0.5; -} - .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog { background-color: var(--jp-layout-color0); color: var(--jp-content-font-color1); @@ -12281,12 +12049,6 @@ span.CodeMirror-selectedtext { background: none; } color: var(--jp-search-unselected-match-color) !important; } -.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; -} - .CodeMirror-focused .CodeMirror-selected { background-color: var(--jp-editor-selected-focused-background); } @@ -12460,10 +12222,7 @@ span.CodeMirror-selectedtext { background: none; } opacity: 0; } -/* Use `div[style]` as more specific selector on 3.4.x to reduce the impact of - * Chromium style invalidation strategy on performance when many divs are present. - */ -.jp-CodeMirrorEditor .remote-caret:hover > div[style] { +.jp-CodeMirrorEditor .remote-caret:hover > div { opacity: 1; transition-delay: 0s; } @@ -12850,7 +12609,7 @@ span.CodeMirror-selectedtext { background: none; } border-spacing: 0; border: none; color: var(--jp-ui-font-color1); - font-size: var(--jp-ui-font-size1); + font-size: 12px; table-layout: fixed; margin-left: auto; margin-right: auto; @@ -13039,7 +12798,7 @@ h6:hover .jp-InternalAnchorLink { 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); + font-size: 0.8em; line-height: 1em; padding: 0.2em 0.5em; } @@ -13094,10 +12853,8 @@ h6:hover .jp-InternalAnchorLink { .jp-FileBrowser-toolbar.jp-Toolbar { border-bottom: none; height: auto; - margin: 8px 12px 0px 12px; - padding: 0px; + margin: var(--jp-toolbar-header-margin); box-shadow: none; - justify-content: flex-start; } .jp-BreadCrumbs { @@ -13129,33 +12886,43 @@ h6:hover .jp-InternalAnchorLink { | Buttons |----------------------------------------------------------------------------*/ -.jp-FileBrowser-toolbar > .jp-Toolbar-item { +.jp-FileBrowser-toolbar.jp-Toolbar { + padding: 0px; + margin: 8px 12px 0px 12px; +} + +.jp-FileBrowser-toolbar.jp-Toolbar { + justify-content: flex-start; +} + +.jp-FileBrowser-toolbar.jp-Toolbar .jp-Toolbar-item { flex: 0 0 auto; padding-left: 0px; padding-right: 2px; } -.jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent { +.jp-FileBrowser-toolbar.jp-Toolbar .jp-ToolbarButtonComponent { width: 40px; } -.jp-FileBrowser-toolbar - .jp-ToolbarButtonComponent[data-command='filebrowser:create-main-launcher'] { +.jp-FileBrowser-toolbar.jp-Toolbar + .jp-Toolbar-item:first-child + .jp-ToolbarButtonComponent { width: 72px; background: var(--jp-brand-color1); } -.jp-FileBrowser-toolbar - .jp-ToolbarButtonComponent[data-command='filebrowser:create-main-launcher']:hover, -.jp-FileBrowser-toolbar - .jp-ToolbarButtonComponent[data-command='filebrowser:create-main-launcher']:focus-visible { - background-color: var(--jp-brand-color0) !important; +.jp-FileBrowser-toolbar.jp-Toolbar + .jp-Toolbar-item:first-child + .jp-ToolbarButtonComponent:focus-visible { + background-color: var(--jp-brand-color0); } -.jp-FileBrowser-toolbar - .jp-ToolbarButtonComponent[data-command='filebrowser:create-main-launcher'] +.jp-FileBrowser-toolbar.jp-Toolbar + .jp-Toolbar-item:first-child + .jp-ToolbarButtonComponent .jp-icon3 { - fill: var(--jp-layout-color1); + fill: white; } /*----------------------------------------------------------------------------- @@ -13192,8 +12959,7 @@ h6:hover .jp-InternalAnchorLink { } .jp-DirListing:focus-visible { - outline: 1px solid var(--jp-brand-color1); - outline-offset: -2px; + border: 1px solid var(--jp-brand-color1); } .jp-DirListing-header { @@ -13324,8 +13090,6 @@ h6:hover .jp-InternalAnchorLink { 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 { @@ -13354,6 +13118,15 @@ h6:hover .jp-InternalAnchorLink { transform: translateX(-40%) translateY(-58%); } +.jp-DirListing-deadSpace { + flex: 1 1 auto; + margin: 0; + padding: 0; + list-style-type: none; + overflow: auto; + background-color: var(--jp-layout-color1); +} + .jp-Document { min-width: 120px; min-height: 120px; @@ -13513,12 +13286,6 @@ body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before { margin: 0; } -.jp-TrimmedOutputs a { - margin: 10px; - text-decoration: none; - cursor: pointer; -} - /* Hide the gutter in case of * - nested output areas (e.g. in the case of output widgets) * - mirrored output areas @@ -13527,12 +13294,6 @@ body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before { 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 @@ -13555,6 +13316,12 @@ body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before { | The Stdin output |----------------------------------------------------------------------------*/ +.jp-OutputArea-stdin { + line-height: var(--jp-code-line-height); + padding-top: var(--jp-code-padding); + display: flex; +} + .jp-Stdin-prompt { color: var(--jp-content-font-color0); padding-right: var(--jp-code-padding); @@ -13577,18 +13344,10 @@ body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before { 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 |----------------------------------------------------------------------------*/ @@ -13825,28 +13584,11 @@ body[data-format='mobile'] .jp-InputPrompt { .jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea { overflow-y: auto; - max-height: 24em; + max-height: 200px; + box-shadow: inset 0 0 6px 2px rgba(0, 0, 0, 0.3); margin-left: var(--jp-private-cell-scrolling-output-offset); } -.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 { flex: 0 0 calc( @@ -13874,79 +13616,6 @@ body[data-format='mobile'] .jp-InputPrompt { overflow: auto; } -/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */ -.jp-collapseHeadingButton { - display: none; - min-height: var(--jp-cell-collapser-min-height); - font-size: var(--jp-code-font-size); - position: absolute; - right: 0; - top: 0; - bottom: 0; - 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); - border: none; - cursor: pointer; -} - -.jp-collapseHeadingButton:hover { - background-color: var(--jp-layout-color2); -} - -.jp-collapseHeadingButton.jp-mod-collapsed { - background-image: var(--jp-icon-caret-right); -} - -:is(.jp-MarkdownCell:hover, .jp-mod-active) .jp-collapseHeadingButton { - display: flex; -} - -/* - 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; -} - .jp-showHiddenCellsButton { margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding)); margin-top: var(--jp-code-padding); @@ -13959,6 +13628,19 @@ body[data-format='mobile'] .jp-InputPrompt { background-color: var(--jp-border-color2) !important; } +.jp-collapseHeadingButton { + display: none; +} + +.jp-MarkdownCell:hover .jp-collapseHeadingButton { + display: flex; + min-height: var(--jp-cell-collapser-min-height); + position: absolute; + right: 0; + top: 0; + bottom: 0; +} + /*----------------------------------------------------------------------------- | Copyright (c) Jupyter Development Team. | Distributed under the terms of the Modified BSD License. @@ -13973,10 +13655,6 @@ body[data-format='mobile'] .jp-InputPrompt { | Variables |----------------------------------------------------------------------------*/ -:root { - --jp-notebook-toolbar-padding: 2px 5px 2px 2px; -} - /*----------------------------------------------------------------------------- /*----------------------------------------------------------------------------- @@ -13984,7 +13662,7 @@ body[data-format='mobile'] .jp-InputPrompt { |----------------------------------------------------------------------------*/ .jp-NotebookPanel-toolbar { - padding: var(--jp-notebook-toolbar-padding); + padding: 2px; } .jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused { @@ -14004,93 +13682,6 @@ body[data-format='mobile'] .jp-InputPrompt { 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: 0px; - top: 0px; -} - -.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. @@ -14142,6 +13733,10 @@ body[data-format='mobile'] .jp-InputPrompt { contain: strict; } +.jp-Notebook-render * { + contain: none !important; +} + .jp-Notebook .jp-Cell { overflow: visible; } @@ -14381,86 +13976,6 @@ body[data-format='mobile'] .jp-InputPrompt { flex: 0 0 110px; } -/*----------------------------------------------------------------------------- -| Side-by-side Mode (.jp-mod-sideBySide) -|----------------------------------------------------------------------------*/ -:root { - --jp-side-by-side-output-size: 1fr; - --jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size); -} - -.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 |----------------------------------------------------------------------------*/ @@ -14640,7 +14155,6 @@ all of MD as it is not optimized for dense, information rich UIs. --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 @@ -14877,7 +14391,7 @@ all of MD as it is not optimized for dense, information rich UIs. --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-border-color: var(--jp-border-color1); --jp-input-active-border-color: var(--jp-brand-color1); --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3); @@ -14914,20 +14428,6 @@ all of MD as it is not optimized for dense, information rich UIs. --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; @@ -14953,19 +14453,6 @@ all of MD as it is not optimized for dense, information rich UIs. --jp-icon-contrast-color1: var(--md-green-600); --jp-icon-contrast-color2: var(--md-pink-600); --jp-icon-contrast-color3: var(--md-blue-600); - - /* 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); } @@ -15106,7 +14593,7 @@ body[data-format='mobile'] .jp-OutputArea-child .jp-OutputArea-output { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" ] }, { @@ -647,7 +689,9 @@ "For the Laplace equation in 2D, the interior values in the computational grid (represented by a matrix $u$) are computed with this iterative scheme. The entry $(i,j)$ of matrix $u$ at iteration $t+1$ is computed as:\n", "\n", "\n", - "$u^{t+1}_{(i,j)} = \\dfrac{u^t_{(i-1,j)}+u^t_{(i+1,j)}+u^t_{(i,j-1)}+u^t_{(i,j+1)}}{4}$" + "$u^{t+1}_{(i,j)} = \\dfrac{u^t_{(i-1,j)}+u^t_{(i+1,j)}+u^t_{(i,j-1)}+u^t_{(i,j+1)}}{4}$\n", + "\n", + "Note that each entry is updated as the average of the four neighbors (top,bottom,left,right) of that entry in the previous iteration. " ] }, { @@ -662,21 +706,10 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "4ab59b2f", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "jacobi_2d (generic function with 1 method)" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "function jacobi_2d(n,niters)\n", " u = zeros(n+2,n+2)\n", @@ -700,33 +733,10 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "6da0aa54", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "12×12 Matrix{Float64}:\n", - " 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0\n", - " 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "u = jacobi_2d(10,0)" ] @@ -736,7 +746,7 @@ "id": "45d786dd", "metadata": {}, "source": [ - "### Where do we can exploit parallelism?\n", + "### Where can we exploit parallelism?\n", "\n", "```julia\n", "for t in 1:niters\n", @@ -762,68 +772,140 @@ "id": "267ecd2a", "metadata": {}, "source": [ - "### Parallelization strategies" + "### Parallelization strategies\n", + "\n", + "In 2d one has more flexibility in order to distribute the data over the processes. We consider these three alternatives:\n", + "\n", + "- 1D block partition (each worker handles a subset of consecutive rows and all columns)\n", + "- 2D block partition (each worker handles a subset of consecutive rows and columns)\n", + "- 2D cyclic partition (each workers handles a subset of alternating rows ans columns)\n", + "\n", + "The three partition types are depicted in the following figure for 4 processes.\n" ] }, { "attachments": { - "fig_jacobi_07.png": { - "image/png": "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" + "fig18.png": { + "image/png": "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" } }, "cell_type": "markdown", - "id": "7445dc4a", + "id": "e52959a5", "metadata": {}, "source": [ "
\n", - "\n", + "\n", "
" ] }, + { + "cell_type": "markdown", + "id": "e0cee28b", + "metadata": {}, + "source": [ + "Which of the thee alternatives is more efficient? To answer this question we need to quantify how much data is processed and communicated in each case. The following analysis assumes that the grid is of $N$ by $N$ cells and that the number of processes is $P$." + ] + }, + { + "cell_type": "markdown", + "id": "f6ea16f5", + "metadata": {}, + "source": [ + "### 1D block partition\n" + ] + }, + { + "attachments": { + "g26521.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "0cfeca62", + "metadata": {}, + "source": [ + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "4600c94a", + "metadata": {}, + "source": [ + "- We update $N^2/P$ items per iteration\n", + "- We need data from 2 neighbors (2 messages per iteration)\n", + "- We communicate $N$ items per message\n", + "- Communication/computation ratio is $O(P/N)$" + ] + }, { "cell_type": "markdown", "id": "969c42ee", "metadata": {}, "source": [ - "### Data dependencies" + "### 2D block partition" ] }, { "attachments": { - "fig_jacobi_07.png": { - "image/png": "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" + "g26305.png": { + "image/png": "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" } }, "cell_type": "markdown", - "id": "b343f4c1", + "id": "e5142fa1", "metadata": {}, "source": [ - "\n", "
\n", - "\n", + "\n", "
\n" ] }, { "cell_type": "markdown", - "id": "df861921", + "id": "091b0310", "metadata": {}, - "source": [] + "source": [ + "- We update $N^2/P$ items per iteration\n", + "- We need data from 4 neighbors (4 messages per iteration)\n", + "- We communicate $N/\\sqrt{P}$ items per message\n", + "- Communication/computation ratio is $O(\\sqrt{P}/N)$" + ] + }, + { + "cell_type": "markdown", + "id": "a8fb49a3", + "metadata": {}, + "source": [ + "### 2D cyclic partition" + ] }, { "attachments": { - "fig_jacobi_07.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABJoAAAFICAYAAAAYp5QFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAewgAAHsIBbtB1PgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7d13lGRVoTbutycPDMMAQ44CEiUrIAh+fMDVK6LiVYyIAS4mMHsVAxjhKgYMfB+KiYyoiBe8SBBBEUEkShIkSRAYYGBy6v7+6J7qU6F75sr5sQ8/n2etM2vvWjVrvevU7qrqt2qf7ksyEACWenmS80uHoM1jSVYtHQKgIQ5OcnLpEAAwkjGlAwAAAADw/w/jSgcAAAB4FlspyXNKhxhFX5LnVub3JZlfKMtINkgyaWg8I8njBbP0Mj3D366ek+SBgll6WSHJekPjgSR3FMzSS+ca/FuSeYWyjGT9JJOHxk1cg6sNHUkyN8n9BbMsU2fR9NEk15UIMopzkkwZGt+c5P0Fs/RyXJLthsZzk7yyYJZeXpXkPZX5/mneC8tFlfEPkpxeKsgIfpbBNxBJcmuSIwpm6eU/k+w4NJ6fwce4SfZL+8/tvyV5qlCWkfwyyfjSIVgun09yWekQHc7I4BvQJLk3ySEFs/TyySQvHhovTvKvBbP0smuSz1Xm70pyZ6EsI7kwg2+S84YPfTw77Pm/C8dp98VD3pSZjz6SJNl533/Na977wcKJ2p3x1WNz3WWXJElWXWvtfOzEZu36+sv1f8pJR32sNT/ye6dl2vQ1Cibq9vm3vT5PPf5Y6RiMbM8k55UOAdAUnUXTdUkuLhFkFIsr4yfTvHxPVMZL0rx8W3bMf5NkdoEcy+vONO8cLqqMm7gGq217E9fgJh3zyzP4KUGTuFbds8ef07w1vqAynpPm5Tu0Mu5P8/JN7phfleZ96DWQoaJpoy23zo577VM4TrsJEye1xqutvU7j8v3qtB+2xhMnTW5cvv7+/rb58174oqyx3gaF0vQ2bsKE0hEAYLm5RhMAAAAAtXCNJgAAgHoszOC1Xppk1Qxe/iFJ8oWzz8vmO76gYJxub95m48yfO2fp9LIkBxaM08svk+yUJNvuvmc+ffLZheO0+9kJx+f0r3yxetOapbKMYIUkdy+dfPbMc7PVC3YtGKfbQdtuknlzWht/rkjy6oJxevlFkl2SZOtddstnTj+ncJx2N15xeT77lte25oomAACA+jxSOkCHtv2hU6atkmmrN+s6ZIObk1sWpXnnsHUpjbHjxzfu/E1accXOm5p2/qa0TVae1rhz2DembRE2cQ22LinUxDU4ZeVpbXNb5wAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFoomgAAAACohaIJAAAAgFqM65ifm2RxiSCjmFoZ75rkyVJBRjClMl4pzcs3sWP+YJKBEkGW01FJ/qN0iA7VNbhzmvcYr9gxblq+zjV4V5q3BidUxlskOb9UEHpaqTL+QZLvlAoygmq+LdO8n8Hqc8SENC/f+I7579K89yKtD+aOe/c7cvwH3l0yS5e5s2a1xr867Ye57Jyzy4XpYcHcOa3x3++7J69Yd+WCabotWbSobf6OnbdOX1+zPoudN3tWdbpNqRwAsDw6i6YViqRYfmPS/kt/EzU930rLvktRE9L+S3/TWINPX9PXYNPz/TOqvlZNHjqaqi/N/xlser5GvxdZtHBBFi1cUDrGiPqXLMncWU+VjjGigf7+RudLknmzZ5eOsCxN/xkG4J9csz6uAQAAAOBZqy/tW1huTDKzUJaR7J5kbJLsseOO2ev5zy8cp93J552Xex58MEmy/lpr5W2veEXhRO3+ePPN+e8rrmjNP3nooRnT11cwUbfPfmd4F8ybXvaybLLeegXTdPvyj36UeQsGP73effvts/fOOxdO1O6755yThx59NEmy7hpr5B2velXhRO2uuOGGXHLVVdWbrkyyaIS7l7JHBp8Pk+Tfk3y3YBa6zcnwt1xuTfJowSy9vDDD278WJLlqlPuWsE2SVYbGA0l+WzBLL2tkcMtqkuSDBx2UKZOb9aW1z333uxkYGHy79KL9D8hztm7WzqWfnXB85jw1uCNy0213yAtftn/hRO0u+fHpefCuO5MkK01bJa965+GFE7W777Zb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" + "g26911.png": { + "image/png": "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" } }, "cell_type": "markdown", - "id": "6f97781b", + "id": "1bc30b74", "metadata": {}, "source": [ - "\n", "
\n", - "\n", - "
\n" + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "c45f4e44", + "metadata": {}, + "source": [ + "- We update $N^2/P$ items\n", + "- We need data from 4 neighbors (4 messages per iteration)\n", + "- We communicate $N^2/P$ items per message (the full data owned by the neighbor)\n", + "- Communication/computation ratio is $O(1)$" ] }, { @@ -831,9 +913,14 @@ "id": "850b1848", "metadata": {}, "source": [ - "### Complexity analysis\n", + "### Which partition is the best one?\n", "\n", - "The complexity analysis is let as an exercise (see below).\n" + "- Both 1d and 2d block partitions are potentially scalable if $P< + + + + + + Data used + id="flowPara23855-8">Data used + + + + + + + + + + + + + + + + + + + + + + + + + u + u_new + + CPU 2 local + remote + + remote + + + diff --git a/notebooks/jacobi_method.ipynb b/notebooks/jacobi_method.ipynb index 2ea4792..25417d5 100644 --- a/notebooks/jacobi_method.ipynb +++ b/notebooks/jacobi_method.ipynb @@ -35,7 +35,7 @@ }, { "cell_type": "markdown", - "id": "4b9d1d46", + "id": "48fd29d9", "metadata": {}, "source": [ "
\n", @@ -319,7 +319,7 @@ } }, "cell_type": "markdown", - "id": "6dfedc09", + "id": "8e156e29", "metadata": {}, "source": [ "
\n", @@ -329,7 +329,7 @@ }, { "cell_type": "markdown", - "id": "cc412ea0", + "id": "513f1f7e", "metadata": {}, "source": [ "### Efficiency\n", @@ -495,7 +495,9 @@ "id": "f6ea16f5", "metadata": {}, "source": [ - "### 1D block partition\n" + "### 1D block partition\n", + "\n", + "The following figure shows the portion of vector `u_new` is updated at each iteration by a particular process (CPU 3) left picture, and which entries of `u` are needed to update this data, right picture. We use analogous figures for the other partitions below.\n" ] }, { @@ -609,7 +611,7 @@ }, { "cell_type": "markdown", - "id": "6838b947", + "id": "f6b54b7b", "metadata": {}, "source": [ "## Implementation\n", @@ -983,26 +985,6 @@ "end" ] }, - { - "cell_type": "markdown", - "id": "ebb650d0", - "metadata": {}, - "source": [ - "### Exercise 2\n", - "\n", - "Compute the complexity of the communication and computation of the three data partition strategies (1d block partition, 2d block partition, and 2d cyclic partition) when computing a single iteration of the Jacobi method in 2D. Assume that the grid is of size $N \\times N$ and the number of processes $P$ is a perfect square number, i.e. $\\sqrt{P}$ is an integer. Hint: For the complexity analysis, you can ignore the effect of the boundary conditions.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7b3d7cb3", - "metadata": {}, - "outputs": [], - "source": [ - "# TODO" - ] - }, { "cell_type": "markdown", "id": "6d3430ad",