Skip to content
Snippets Groups Projects
Select Git revision
2 results Searching

README.md

Blame
  • Forked from an inaccessible project.
    TD2 Deep Learning.html 1.14 MiB
    <!DOCTYPE html>
    <html>
    <head><meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>TD2 Deep Learning</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
    
    
    
    
    <style type="text/css">
        pre { line-height: 125%; }
    td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
    span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
    td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
    span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
    .highlight .hll { background-color: var(--jp-cell-editor-active-background) }
    .highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
    .highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
    .highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
    .highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
    .highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
    .highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
    .highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
    .highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
    .highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
    .highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
    .highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
    .highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
    .highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
    .highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
    .highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
    .highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
    .highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
    .highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
    .highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
    .highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
    .highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
    .highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
    .highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
    .highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
    .highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
    .highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
    .highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
    .highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
    .highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
    .highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
    .highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
    .highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
    .highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
    .highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
    .highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
    .highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
    .highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
    .highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
    .highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
    .highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
    .highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
      </style>
    
    
    
    <style type="text/css">
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*
     * Mozilla scrollbar styling
     */
    
    /* use standard opaque scrollbars for most nodes */
    [data-jp-theme-scrollbars='true'] {
      scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
        var(--jp-scrollbar-background-color);
    }
    
    /* for code nodes, use a transparent style of scrollbar. These selectors
     * will match lower in the tree, and so will override the above */
    [data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,
    [data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {
      scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
    }
    
    /* tiny scrollbar */
    
    .jp-scrollbar-tiny {
      scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
      scrollbar-width: thin;
    }
    
    /*
     * Webkit scrollbar styling
     */
    
    /* use standard opaque scrollbars for most nodes */
    
    [data-jp-theme-scrollbars='true'] ::-webkit-scrollbar,
    [data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-corner {
      background: var(--jp-scrollbar-background-color);
    }
    
    [data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-thumb {
      background: rgb(var(--jp-scrollbar-thumb-color));
      border: var(--jp-scrollbar-thumb-margin) solid transparent;
      background-clip: content-box;
      border-radius: var(--jp-scrollbar-thumb-radius);
    }
    
    [data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:horizontal {
      border-left: var(--jp-scrollbar-endpad) solid
        var(--jp-scrollbar-background-color);
      border-right: var(--jp-scrollbar-endpad) solid
        var(--jp-scrollbar-background-color);
    }
    
    [data-jp-theme-scrollbars='true'] ::-webkit-scrollbar-track:vertical {
      border-top: var(--jp-scrollbar-endpad) solid
        var(--jp-scrollbar-background-color);
      border-bottom: var(--jp-scrollbar-endpad) solid
        var(--jp-scrollbar-background-color);
    }
    
    /* for code nodes, use a transparent style of scrollbar */
    
    [data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar::-webkit-scrollbar,
    [data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar::-webkit-scrollbar,
    [data-jp-theme-scrollbars='true']
      .CodeMirror-hscrollbar::-webkit-scrollbar-corner,
    [data-jp-theme-scrollbars='true']
      .CodeMirror-vscrollbar::-webkit-scrollbar-corner {
      background-color: transparent;
    }
    
    [data-jp-theme-scrollbars='true']
      .CodeMirror-hscrollbar::-webkit-scrollbar-thumb,
    [data-jp-theme-scrollbars='true']
      .CodeMirror-vscrollbar::-webkit-scrollbar-thumb {
      background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
      border: var(--jp-scrollbar-thumb-margin) solid transparent;
      background-clip: content-box;
      border-radius: var(--jp-scrollbar-thumb-radius);
    }
    
    [data-jp-theme-scrollbars='true']
      .CodeMirror-hscrollbar::-webkit-scrollbar-track:horizontal {
      border-left: var(--jp-scrollbar-endpad) solid transparent;
      border-right: var(--jp-scrollbar-endpad) solid transparent;
    }
    
    [data-jp-theme-scrollbars='true']
      .CodeMirror-vscrollbar::-webkit-scrollbar-track:vertical {
      border-top: var(--jp-scrollbar-endpad) solid transparent;
      border-bottom: var(--jp-scrollbar-endpad) solid transparent;
    }
    
    /* tiny scrollbar */
    
    .jp-scrollbar-tiny::-webkit-scrollbar,
    .jp-scrollbar-tiny::-webkit-scrollbar-corner {
      background-color: transparent;
      height: 4px;
      width: 4px;
    }
    
    .jp-scrollbar-tiny::-webkit-scrollbar-thumb {
      background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
    }
    
    .jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
      border-left: 0px solid transparent;
      border-right: 0px solid transparent;
    }
    
    .jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
      border-top: 0px solid transparent;
      border-bottom: 0px solid transparent;
    }
    
    /*
     * Phosphor
     */
    
    .lm-ScrollBar[data-orientation='horizontal'] {
      min-height: 16px;
      max-height: 16px;
      min-width: 45px;
      border-top: 1px solid #a0a0a0;
    }
    
    .lm-ScrollBar[data-orientation='vertical'] {
      min-width: 16px;
      max-width: 16px;
      min-height: 45px;
      border-left: 1px solid #a0a0a0;
    }
    
    .lm-ScrollBar-button {
      background-color: #f0f0f0;
      background-position: center center;
      min-height: 15px;
      max-height: 15px;
      min-width: 15px;
      max-width: 15px;
    }
    
    .lm-ScrollBar-button:hover {
      background-color: #dadada;
    }
    
    .lm-ScrollBar-button.lm-mod-active {
      background-color: #cdcdcd;
    }
    
    .lm-ScrollBar-track {
      background: #f0f0f0;
    }
    
    .lm-ScrollBar-thumb {
      background: #cdcdcd;
    }
    
    .lm-ScrollBar-thumb:hover {
      background: #bababa;
    }
    
    .lm-ScrollBar-thumb.lm-mod-active {
      background: #a0a0a0;
    }
    
    .lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {
      height: 100%;
      min-width: 15px;
      border-left: 1px solid #a0a0a0;
      border-right: 1px solid #a0a0a0;
    }
    
    .lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {
      width: 100%;
      min-height: 15px;
      border-top: 1px solid #a0a0a0;
      border-bottom: 1px solid #a0a0a0;
    }
    
    .lm-ScrollBar[data-orientation='horizontal']
      .lm-ScrollBar-button[data-action='decrement'] {
      background-image: var(--jp-icon-caret-left);
      background-size: 17px;
    }
    
    .lm-ScrollBar[data-orientation='horizontal']
      .lm-ScrollBar-button[data-action='increment'] {
      background-image: var(--jp-icon-caret-right);
      background-size: 17px;
    }
    
    .lm-ScrollBar[data-orientation='vertical']
      .lm-ScrollBar-button[data-action='decrement'] {
      background-image: var(--jp-icon-caret-up);
      background-size: 17px;
    }
    
    .lm-ScrollBar[data-orientation='vertical']
      .lm-ScrollBar-button[data-action='increment'] {
      background-image: var(--jp-icon-caret-down);
      background-size: 17px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-Widget, /* </DEPRECATED> */
    .lm-Widget {
      box-sizing: border-box;
      position: relative;
      overflow: hidden;
      cursor: default;
    }
    
    
    /* <DEPRECATED> */ .p-Widget.p-mod-hidden, /* </DEPRECATED> */
    .lm-Widget.lm-mod-hidden {
      display: none !important;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-CommandPalette, /* </DEPRECATED> */
    .lm-CommandPalette {
      display: flex;
      flex-direction: column;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-search, /* </DEPRECATED> */
    .lm-CommandPalette-search {
      flex: 0 0 auto;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-content, /* </DEPRECATED> */
    .lm-CommandPalette-content {
      flex: 1 1 auto;
      margin: 0;
      padding: 0;
      min-height: 0;
      overflow: auto;
      list-style-type: none;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-header, /* </DEPRECATED> */
    .lm-CommandPalette-header {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-item, /* </DEPRECATED> */
    .lm-CommandPalette-item {
      display: flex;
      flex-direction: row;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-itemIcon, /* </DEPRECATED> */
    .lm-CommandPalette-itemIcon {
      flex: 0 0 auto;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-itemContent, /* </DEPRECATED> */
    .lm-CommandPalette-itemContent {
      flex: 1 1 auto;
      overflow: hidden;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-itemShortcut, /* </DEPRECATED> */
    .lm-CommandPalette-itemShortcut {
      flex: 0 0 auto;
    }
    
    
    /* <DEPRECATED> */ .p-CommandPalette-itemLabel, /* </DEPRECATED> */
    .lm-CommandPalette-itemLabel {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    
    .lm-close-icon {
    	border:1px solid transparent;
      background-color: transparent;
      position: absolute;
    	z-index:1;
    	right:3%;
    	top: 0;
    	bottom: 0;
    	margin: auto;
    	padding: 7px 0;
    	display: none;
    	vertical-align: middle;
      outline: 0;
      cursor: pointer;
    }
    .lm-close-icon:after {
    	content: "X";
    	display: block;
    	width: 15px;
    	height: 15px;
    	text-align: center;
    	color:#000;
    	font-weight: normal;
    	font-size: 12px;
    	cursor: pointer;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-DockPanel, /* </DEPRECATED> */
    .lm-DockPanel {
      z-index: 0;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-widget, /* </DEPRECATED> */
    .lm-DockPanel-widget {
      z-index: 0;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-tabBar, /* </DEPRECATED> */
    .lm-DockPanel-tabBar {
      z-index: 1;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-handle, /* </DEPRECATED> */
    .lm-DockPanel-handle {
      z-index: 2;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-handle.p-mod-hidden, /* </DEPRECATED> */
    .lm-DockPanel-handle.lm-mod-hidden {
      display: none !important;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-handle:after, /* </DEPRECATED> */
    .lm-DockPanel-handle:after {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      content: '';
    }
    
    
    /* <DEPRECATED> */
    .p-DockPanel-handle[data-orientation='horizontal'],
    /* </DEPRECATED> */
    .lm-DockPanel-handle[data-orientation='horizontal'] {
      cursor: ew-resize;
    }
    
    
    /* <DEPRECATED> */
    .p-DockPanel-handle[data-orientation='vertical'],
    /* </DEPRECATED> */
    .lm-DockPanel-handle[data-orientation='vertical'] {
      cursor: ns-resize;
    }
    
    
    /* <DEPRECATED> */
    .p-DockPanel-handle[data-orientation='horizontal']:after,
    /* </DEPRECATED> */
    .lm-DockPanel-handle[data-orientation='horizontal']:after {
      left: 50%;
      min-width: 8px;
      transform: translateX(-50%);
    }
    
    
    /* <DEPRECATED> */
    .p-DockPanel-handle[data-orientation='vertical']:after,
    /* </DEPRECATED> */
    .lm-DockPanel-handle[data-orientation='vertical']:after {
      top: 50%;
      min-height: 8px;
      transform: translateY(-50%);
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-overlay, /* </DEPRECATED> */
    .lm-DockPanel-overlay {
      z-index: 3;
      box-sizing: border-box;
      pointer-events: none;
    }
    
    
    /* <DEPRECATED> */ .p-DockPanel-overlay.p-mod-hidden, /* </DEPRECATED> */
    .lm-DockPanel-overlay.lm-mod-hidden {
      display: none !important;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-Menu, /* </DEPRECATED> */
    .lm-Menu {
      z-index: 10000;
      position: absolute;
      white-space: nowrap;
      overflow-x: hidden;
      overflow-y: auto;
      outline: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    
    /* <DEPRECATED> */ .p-Menu-content, /* </DEPRECATED> */
    .lm-Menu-content {
      margin: 0;
      padding: 0;
      display: table;
      list-style-type: none;
    }
    
    
    /* <DEPRECATED> */ .p-Menu-item, /* </DEPRECATED> */
    .lm-Menu-item {
      display: table-row;
    }
    
    
    /* <DEPRECATED> */
    .p-Menu-item.p-mod-hidden,
    .p-Menu-item.p-mod-collapsed,
    /* </DEPRECATED> */
    .lm-Menu-item.lm-mod-hidden,
    .lm-Menu-item.lm-mod-collapsed {
      display: none !important;
    }
    
    
    /* <DEPRECATED> */
    .p-Menu-itemIcon,
    .p-Menu-itemSubmenuIcon,
    /* </DEPRECATED> */
    .lm-Menu-itemIcon,
    .lm-Menu-itemSubmenuIcon {
      display: table-cell;
      text-align: center;
    }
    
    
    /* <DEPRECATED> */ .p-Menu-itemLabel, /* </DEPRECATED> */
    .lm-Menu-itemLabel {
      display: table-cell;
      text-align: left;
    }
    
    
    /* <DEPRECATED> */ .p-Menu-itemShortcut, /* </DEPRECATED> */
    .lm-Menu-itemShortcut {
      display: table-cell;
      text-align: right;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-MenuBar, /* </DEPRECATED> */
    .lm-MenuBar {
      outline: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    
    /* <DEPRECATED> */ .p-MenuBar-content, /* </DEPRECATED> */
    .lm-MenuBar-content {
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: row;
      list-style-type: none;
    }
    
    
    /* <DEPRECATED> */ .p--MenuBar-item, /* </DEPRECATED> */
    .lm-MenuBar-item {
      box-sizing: border-box;
    }
    
    
    /* <DEPRECATED> */
    .p-MenuBar-itemIcon,
    .p-MenuBar-itemLabel,
    /* </DEPRECATED> */
    .lm-MenuBar-itemIcon,
    .lm-MenuBar-itemLabel {
      display: inline-block;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-ScrollBar, /* </DEPRECATED> */
    .lm-ScrollBar {
      display: flex;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    
    /* <DEPRECATED> */
    .p-ScrollBar[data-orientation='horizontal'],
    /* </DEPRECATED> */
    .lm-ScrollBar[data-orientation='horizontal'] {
      flex-direction: row;
    }
    
    
    /* <DEPRECATED> */
    .p-ScrollBar[data-orientation='vertical'],
    /* </DEPRECATED> */
    .lm-ScrollBar[data-orientation='vertical'] {
      flex-direction: column;
    }
    
    
    /* <DEPRECATED> */ .p-ScrollBar-button, /* </DEPRECATED> */
    .lm-ScrollBar-button {
      box-sizing: border-box;
      flex: 0 0 auto;
    }
    
    
    /* <DEPRECATED> */ .p-ScrollBar-track, /* </DEPRECATED> */
    .lm-ScrollBar-track {
      box-sizing: border-box;
      position: relative;
      overflow: hidden;
      flex: 1 1 auto;
    }
    
    
    /* <DEPRECATED> */ .p-ScrollBar-thumb, /* </DEPRECATED> */
    .lm-ScrollBar-thumb {
      box-sizing: border-box;
      position: absolute;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-SplitPanel-child, /* </DEPRECATED> */
    .lm-SplitPanel-child {
      z-index: 0;
    }
    
    
    /* <DEPRECATED> */ .p-SplitPanel-handle, /* </DEPRECATED> */
    .lm-SplitPanel-handle {
      z-index: 1;
    }
    
    
    /* <DEPRECATED> */ .p-SplitPanel-handle.p-mod-hidden, /* </DEPRECATED> */
    .lm-SplitPanel-handle.lm-mod-hidden {
      display: none !important;
    }
    
    
    /* <DEPRECATED> */ .p-SplitPanel-handle:after, /* </DEPRECATED> */
    .lm-SplitPanel-handle:after {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      content: '';
    }
    
    
    /* <DEPRECATED> */
    .p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle,
    /* </DEPRECATED> */
    .lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle {
      cursor: ew-resize;
    }
    
    
    /* <DEPRECATED> */
    .p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle,
    /* </DEPRECATED> */
    .lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle {
      cursor: ns-resize;
    }
    
    
    /* <DEPRECATED> */
    .p-SplitPanel[data-orientation='horizontal'] > .p-SplitPanel-handle:after,
    /* </DEPRECATED> */
    .lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle:after {
      left: 50%;
      min-width: 8px;
      transform: translateX(-50%);
    }
    
    
    /* <DEPRECATED> */
    .p-SplitPanel[data-orientation='vertical'] > .p-SplitPanel-handle:after,
    /* </DEPRECATED> */
    .lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle:after {
      top: 50%;
      min-height: 8px;
      transform: translateY(-50%);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-TabBar, /* </DEPRECATED> */
    .lm-TabBar {
      display: flex;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar[data-orientation='horizontal'], /* </DEPRECATED> */
    .lm-TabBar[data-orientation='horizontal'] {
      flex-direction: row;
      align-items: flex-end;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar[data-orientation='vertical'], /* </DEPRECATED> */
    .lm-TabBar[data-orientation='vertical'] {
      flex-direction: column;
      align-items: flex-end;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar-content, /* </DEPRECATED> */
    .lm-TabBar-content {
      margin: 0;
      padding: 0;
      display: flex;
      flex: 1 1 auto;
      list-style-type: none;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar[data-orientation='horizontal'] > .p-TabBar-content,
    /* </DEPRECATED> */
    .lm-TabBar[data-orientation='horizontal'] > .lm-TabBar-content {
      flex-direction: row;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar[data-orientation='vertical'] > .p-TabBar-content,
    /* </DEPRECATED> */
    .lm-TabBar[data-orientation='vertical'] > .lm-TabBar-content {
      flex-direction: column;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar-tab, /* </DEPRECATED> */
    .lm-TabBar-tab {
      display: flex;
      flex-direction: row;
      box-sizing: border-box;
      overflow: hidden;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar-tabIcon,
    .p-TabBar-tabCloseIcon,
    /* </DEPRECATED> */
    .lm-TabBar-tabIcon,
    .lm-TabBar-tabCloseIcon {
      flex: 0 0 auto;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar-tabLabel, /* </DEPRECATED> */
    .lm-TabBar-tabLabel {
      flex: 1 1 auto;
      overflow: hidden;
      white-space: nowrap;
    }
    
    
    .lm-TabBar-tabInput {
      user-select: all;
      width: 100%;
      box-sizing : border-box;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar-tab.p-mod-hidden, /* </DEPRECATED> */
    .lm-TabBar-tab.lm-mod-hidden {
      display: none !important;
    }
    
    
    .lm-TabBar-addButton.lm-mod-hidden {
      display: none !important;
    }
    
    
    /* <DEPRECATED> */ .p-TabBar.p-mod-dragging .p-TabBar-tab, /* </DEPRECATED> */
    .lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
      position: relative;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar.p-mod-dragging[data-orientation='horizontal'] .p-TabBar-tab,
    /* </DEPRECATED> */
    .lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab {
      left: 0;
      transition: left 150ms ease;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar.p-mod-dragging[data-orientation='vertical'] .p-TabBar-tab,
    /* </DEPRECATED> */
    .lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab {
      top: 0;
      transition: top 150ms ease;
    }
    
    
    /* <DEPRECATED> */
    .p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging,
    /* </DEPRECATED> */
    .lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
      transition: none;
    }
    
    .lm-TabBar-tabLabel .lm-TabBar-tabInput {
      user-select: all;
      width: 100%;
      box-sizing : border-box;
      background: inherit;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ .p-TabPanel-tabBar, /* </DEPRECATED> */
    .lm-TabPanel-tabBar {
      z-index: 1;
    }
    
    
    /* <DEPRECATED> */ .p-TabPanel-stackedPanel, /* </DEPRECATED> */
    .lm-TabPanel-stackedPanel {
      z-index: 0;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    @charset "UTF-8";
    html{
      -webkit-box-sizing:border-box;
              box-sizing:border-box; }
    
    *,
    *::before,
    *::after{
      -webkit-box-sizing:inherit;
              box-sizing:inherit; }
    
    body{
      font-size:14px;
      font-weight:400;
      letter-spacing:0;
      line-height:1.28581;
      text-transform:none;
      color:#182026;
      font-family:-apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Open Sans", "Helvetica Neue", "Icons16", sans-serif; }
    
    p{
      margin-bottom:10px;
      margin-top:0; }
    
    small{
      font-size:12px; }
    
    strong{
      font-weight:600; }
    
    ::-moz-selection{
      background:rgba(125, 188, 255, 0.6); }
    
    ::selection{
      background:rgba(125, 188, 255, 0.6); }
    .bp3-heading{
      color:#182026;
      font-weight:600;
      margin:0 0 10px;
      padding:0; }
      .bp3-dark .bp3-heading{
        color:#f5f8fa; }
    
    h1.bp3-heading, .bp3-running-text h1{
      font-size:36px;
      line-height:40px; }
    
    h2.bp3-heading, .bp3-running-text h2{
      font-size:28px;
      line-height:32px; }
    
    h3.bp3-heading, .bp3-running-text h3{
      font-size:22px;
      line-height:25px; }
    
    h4.bp3-heading, .bp3-running-text h4{
      font-size:18px;
      line-height:21px; }
    
    h5.bp3-heading, .bp3-running-text h5{
      font-size:16px;
      line-height:19px; }
    
    h6.bp3-heading, .bp3-running-text h6{
      font-size:14px;
      line-height:16px; }
    .bp3-ui-text{
      font-size:14px;
      font-weight:400;
      letter-spacing:0;
      line-height:1.28581;
      text-transform:none; }
    
    .bp3-monospace-text{
      font-family:monospace;
      text-transform:none; }
    
    .bp3-text-muted{
      color:#5c7080; }
      .bp3-dark .bp3-text-muted{
        color:#a7b6c2; }
    
    .bp3-text-disabled{
      color:rgba(92, 112, 128, 0.6); }
      .bp3-dark .bp3-text-disabled{
        color:rgba(167, 182, 194, 0.6); }
    
    .bp3-text-overflow-ellipsis{
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      word-wrap:normal; }
    .bp3-running-text{
      font-size:14px;
      line-height:1.5; }
      .bp3-running-text h1{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h1{
          color:#f5f8fa; }
      .bp3-running-text h2{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h2{
          color:#f5f8fa; }
      .bp3-running-text h3{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h3{
          color:#f5f8fa; }
      .bp3-running-text h4{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h4{
          color:#f5f8fa; }
      .bp3-running-text h5{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h5{
          color:#f5f8fa; }
      .bp3-running-text h6{
        color:#182026;
        font-weight:600;
        margin-bottom:20px;
        margin-top:40px; }
        .bp3-dark .bp3-running-text h6{
          color:#f5f8fa; }
      .bp3-running-text hr{
        border:none;
        border-bottom:1px solid rgba(16, 22, 26, 0.15);
        margin:20px 0; }
        .bp3-dark .bp3-running-text hr{
          border-color:rgba(255, 255, 255, 0.15); }
      .bp3-running-text p{
        margin:0 0 10px;
        padding:0; }
    
    .bp3-text-large{
      font-size:16px; }
    
    .bp3-text-small{
      font-size:12px; }
    a{
      color:#106ba3;
      text-decoration:none; }
      a:hover{
        color:#106ba3;
        cursor:pointer;
        text-decoration:underline; }
      a .bp3-icon, a .bp3-icon-standard, a .bp3-icon-large{
        color:inherit; }
      a code,
      .bp3-dark a code{
        color:inherit; }
      .bp3-dark a,
      .bp3-dark a:hover{
        color:#48aff0; }
        .bp3-dark a .bp3-icon, .bp3-dark a .bp3-icon-standard, .bp3-dark a .bp3-icon-large,
        .bp3-dark a:hover .bp3-icon,
        .bp3-dark a:hover .bp3-icon-standard,
        .bp3-dark a:hover .bp3-icon-large{
          color:inherit; }
    .bp3-running-text code, .bp3-code{
      font-family:monospace;
      text-transform:none;
      background:rgba(255, 255, 255, 0.7);
      border-radius:3px;
      -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2);
              box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2);
      color:#5c7080;
      font-size:smaller;
      padding:2px 5px; }
      .bp3-dark .bp3-running-text code, .bp3-running-text .bp3-dark code, .bp3-dark .bp3-code{
        background:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
        color:#a7b6c2; }
      .bp3-running-text a > code, a > .bp3-code{
        color:#137cbd; }
        .bp3-dark .bp3-running-text a > code, .bp3-running-text .bp3-dark a > code, .bp3-dark a > .bp3-code{
          color:inherit; }
    
    .bp3-running-text pre, .bp3-code-block{
      font-family:monospace;
      text-transform:none;
      background:rgba(255, 255, 255, 0.7);
      border-radius:3px;
      -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
              box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
      color:#182026;
      display:block;
      font-size:13px;
      line-height:1.4;
      margin:10px 0;
      padding:13px 15px 12px;
      word-break:break-all;
      word-wrap:break-word; }
      .bp3-dark .bp3-running-text pre, .bp3-running-text .bp3-dark pre, .bp3-dark .bp3-code-block{
        background:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
      .bp3-running-text pre > code, .bp3-code-block > code{
        background:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        color:inherit;
        font-size:inherit;
        padding:0; }
    
    .bp3-running-text kbd, .bp3-key{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      background:#ffffff;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
      color:#5c7080;
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex;
      font-family:inherit;
      font-size:12px;
      height:24px;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      line-height:24px;
      min-width:24px;
      padding:3px 6px;
      vertical-align:middle; }
      .bp3-running-text kbd .bp3-icon, .bp3-key .bp3-icon, .bp3-running-text kbd .bp3-icon-standard, .bp3-key .bp3-icon-standard, .bp3-running-text kbd .bp3-icon-large, .bp3-key .bp3-icon-large{
        margin-right:5px; }
      .bp3-dark .bp3-running-text kbd, .bp3-running-text .bp3-dark kbd, .bp3-dark .bp3-key{
        background:#394b59;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
        color:#a7b6c2; }
    .bp3-running-text blockquote, .bp3-blockquote{
      border-left:solid 4px rgba(167, 182, 194, 0.5);
      margin:0 0 10px;
      padding:0 20px; }
      .bp3-dark .bp3-running-text blockquote, .bp3-running-text .bp3-dark blockquote, .bp3-dark .bp3-blockquote{
        border-color:rgba(115, 134, 148, 0.5); }
    .bp3-running-text ul,
    .bp3-running-text ol, .bp3-list{
      margin:10px 0;
      padding-left:30px; }
      .bp3-running-text ul li:not(:last-child), .bp3-running-text ol li:not(:last-child), .bp3-list li:not(:last-child){
        margin-bottom:5px; }
      .bp3-running-text ul ol, .bp3-running-text ol ol, .bp3-list ol,
      .bp3-running-text ul ul,
      .bp3-running-text ol ul,
      .bp3-list ul{
        margin-top:5px; }
    
    .bp3-list-unstyled{
      list-style:none;
      margin:0;
      padding:0; }
      .bp3-list-unstyled li{
        padding:0; }
    .bp3-rtl{
      text-align:right; }
    
    .bp3-dark{
      color:#f5f8fa; }
    
    :focus{
      outline:rgba(19, 124, 189, 0.6) auto 2px;
      outline-offset:2px;
      -moz-outline-radius:6px; }
    
    .bp3-focus-disabled :focus{
      outline:none !important; }
      .bp3-focus-disabled :focus ~ .bp3-control-indicator{
        outline:none !important; }
    
    .bp3-alert{
      max-width:400px;
      padding:20px; }
    
    .bp3-alert-body{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex; }
      .bp3-alert-body .bp3-icon{
        font-size:40px;
        margin-right:20px;
        margin-top:0; }
    
    .bp3-alert-contents{
      word-break:break-word; }
    
    .bp3-alert-footer{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:reverse;
          -ms-flex-direction:row-reverse;
              flex-direction:row-reverse;
      margin-top:10px; }
      .bp3-alert-footer .bp3-button{
        margin-left:10px; }
    .bp3-breadcrumbs{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      cursor:default;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -ms-flex-wrap:wrap;
          flex-wrap:wrap;
      height:30px;
      list-style:none;
      margin:0;
      padding:0; }
      .bp3-breadcrumbs > li{
        -webkit-box-align:center;
            -ms-flex-align:center;
                align-items:center;
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex; }
        .bp3-breadcrumbs > li::after{
          background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z' fill='%235C7080'/%3e%3c/svg%3e");
          content:"";
          display:block;
          height:16px;
          margin:0 5px;
          width:16px; }
        .bp3-breadcrumbs > li:last-of-type::after{
          display:none; }
    
    .bp3-breadcrumb,
    .bp3-breadcrumb-current,
    .bp3-breadcrumbs-collapsed{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex;
      font-size:16px; }
    
    .bp3-breadcrumb,
    .bp3-breadcrumbs-collapsed{
      color:#5c7080; }
    
    .bp3-breadcrumb:hover{
      text-decoration:none; }
    
    .bp3-breadcrumb.bp3-disabled{
      color:rgba(92, 112, 128, 0.6);
      cursor:not-allowed; }
    
    .bp3-breadcrumb .bp3-icon{
      margin-right:5px; }
    
    .bp3-breadcrumb-current{
      color:inherit;
      font-weight:600; }
      .bp3-breadcrumb-current .bp3-input{
        font-size:inherit;
        font-weight:inherit;
        vertical-align:baseline; }
    
    .bp3-breadcrumbs-collapsed{
      background:#ced9e0;
      border:none;
      border-radius:3px;
      cursor:pointer;
      margin-right:2px;
      padding:1px 5px;
      vertical-align:text-bottom; }
      .bp3-breadcrumbs-collapsed::before{
        background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg fill='%235C7080'%3e%3ccircle cx='2' cy='8.03' r='2'/%3e%3ccircle cx='14' cy='8.03' r='2'/%3e%3ccircle cx='8' cy='8.03' r='2'/%3e%3c/g%3e%3c/svg%3e") center no-repeat;
        content:"";
        display:block;
        height:16px;
        width:16px; }
      .bp3-breadcrumbs-collapsed:hover{
        background:#bfccd6;
        color:#182026;
        text-decoration:none; }
    
    .bp3-dark .bp3-breadcrumb,
    .bp3-dark .bp3-breadcrumbs-collapsed{
      color:#a7b6c2; }
    
    .bp3-dark .bp3-breadcrumbs > li::after{
      color:#a7b6c2; }
    
    .bp3-dark .bp3-breadcrumb.bp3-disabled{
      color:rgba(167, 182, 194, 0.6); }
    
    .bp3-dark .bp3-breadcrumb-current{
      color:#f5f8fa; }
    
    .bp3-dark .bp3-breadcrumbs-collapsed{
      background:rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-breadcrumbs-collapsed:hover{
        background:rgba(16, 22, 26, 0.6);
        color:#f5f8fa; }
    .bp3-button{
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      border:none;
      border-radius:3px;
      cursor:pointer;
      font-size:14px;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      padding:5px 10px;
      text-align:left;
      vertical-align:middle;
      min-height:30px;
      min-width:30px; }
      .bp3-button > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-button > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-button::before,
      .bp3-button > *{
        margin-right:7px; }
      .bp3-button:empty::before,
      .bp3-button > :last-child{
        margin-right:0; }
      .bp3-button:empty{
        padding:0 !important; }
      .bp3-button:disabled, .bp3-button.bp3-disabled{
        cursor:not-allowed; }
      .bp3-button.bp3-fill{
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        width:100%; }
      .bp3-button.bp3-align-right,
      .bp3-align-right .bp3-button{
        text-align:right; }
      .bp3-button.bp3-align-left,
      .bp3-align-left .bp3-button{
        text-align:left; }
      .bp3-button:not([class*="bp3-intent-"]){
        background-color:#f5f8fa;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
        color:#182026; }
        .bp3-button:not([class*="bp3-intent-"]):hover{
          background-clip:padding-box;
          background-color:#ebf1f5;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
        .bp3-button:not([class*="bp3-intent-"]):active, .bp3-button:not([class*="bp3-intent-"]).bp3-active{
          background-color:#d8e1e8;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-button:not([class*="bp3-intent-"]):disabled, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled{
          background-color:rgba(206, 217, 224, 0.5);
          background-image:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed;
          outline:none; }
          .bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active, .bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active:hover, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active, .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active:hover{
            background:rgba(206, 217, 224, 0.7); }
      .bp3-button.bp3-intent-primary{
        background-color:#137cbd;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
        .bp3-button.bp3-intent-primary:hover, .bp3-button.bp3-intent-primary:active, .bp3-button.bp3-intent-primary.bp3-active{
          color:#ffffff; }
        .bp3-button.bp3-intent-primary:hover{
          background-color:#106ba3;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-primary:active, .bp3-button.bp3-intent-primary.bp3-active{
          background-color:#0e5a8a;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-primary:disabled, .bp3-button.bp3-intent-primary.bp3-disabled{
          background-color:rgba(19, 124, 189, 0.5);
          background-image:none;
          border-color:transparent;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(255, 255, 255, 0.6); }
      .bp3-button.bp3-intent-success{
        background-color:#0f9960;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
        .bp3-button.bp3-intent-success:hover, .bp3-button.bp3-intent-success:active, .bp3-button.bp3-intent-success.bp3-active{
          color:#ffffff; }
        .bp3-button.bp3-intent-success:hover{
          background-color:#0d8050;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-success:active, .bp3-button.bp3-intent-success.bp3-active{
          background-color:#0a6640;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-success:disabled, .bp3-button.bp3-intent-success.bp3-disabled{
          background-color:rgba(15, 153, 96, 0.5);
          background-image:none;
          border-color:transparent;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(255, 255, 255, 0.6); }
      .bp3-button.bp3-intent-warning{
        background-color:#d9822b;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
        .bp3-button.bp3-intent-warning:hover, .bp3-button.bp3-intent-warning:active, .bp3-button.bp3-intent-warning.bp3-active{
          color:#ffffff; }
        .bp3-button.bp3-intent-warning:hover{
          background-color:#bf7326;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-warning:active, .bp3-button.bp3-intent-warning.bp3-active{
          background-color:#a66321;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-warning:disabled, .bp3-button.bp3-intent-warning.bp3-disabled{
          background-color:rgba(217, 130, 43, 0.5);
          background-image:none;
          border-color:transparent;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(255, 255, 255, 0.6); }
      .bp3-button.bp3-intent-danger{
        background-color:#db3737;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
        .bp3-button.bp3-intent-danger:hover, .bp3-button.bp3-intent-danger:active, .bp3-button.bp3-intent-danger.bp3-active{
          color:#ffffff; }
        .bp3-button.bp3-intent-danger:hover{
          background-color:#c23030;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-danger:active, .bp3-button.bp3-intent-danger.bp3-active{
          background-color:#a82a2a;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-button.bp3-intent-danger:disabled, .bp3-button.bp3-intent-danger.bp3-disabled{
          background-color:rgba(219, 55, 55, 0.5);
          background-image:none;
          border-color:transparent;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(255, 255, 255, 0.6); }
      .bp3-button[class*="bp3-intent-"] .bp3-button-spinner .bp3-spinner-head{
        stroke:#ffffff; }
      .bp3-button.bp3-large,
      .bp3-large .bp3-button{
        min-height:40px;
        min-width:40px;
        font-size:16px;
        padding:5px 15px; }
        .bp3-button.bp3-large::before,
        .bp3-button.bp3-large > *,
        .bp3-large .bp3-button::before,
        .bp3-large .bp3-button > *{
          margin-right:10px; }
        .bp3-button.bp3-large:empty::before,
        .bp3-button.bp3-large > :last-child,
        .bp3-large .bp3-button:empty::before,
        .bp3-large .bp3-button > :last-child{
          margin-right:0; }
      .bp3-button.bp3-small,
      .bp3-small .bp3-button{
        min-height:24px;
        min-width:24px;
        padding:0 7px; }
      .bp3-button.bp3-loading{
        position:relative; }
        .bp3-button.bp3-loading[class*="bp3-icon-"]::before{
          visibility:hidden; }
        .bp3-button.bp3-loading .bp3-button-spinner{
          margin:0;
          position:absolute; }
        .bp3-button.bp3-loading > :not(.bp3-button-spinner){
          visibility:hidden; }
      .bp3-button[class*="bp3-icon-"]::before{
        font-family:"Icons16", sans-serif;
        font-size:16px;
        font-style:normal;
        font-weight:400;
        line-height:1;
        -moz-osx-font-smoothing:grayscale;
        -webkit-font-smoothing:antialiased;
        color:#5c7080; }
      .bp3-button .bp3-icon, .bp3-button .bp3-icon-standard, .bp3-button .bp3-icon-large{
        color:#5c7080; }
        .bp3-button .bp3-icon.bp3-align-right, .bp3-button .bp3-icon-standard.bp3-align-right, .bp3-button .bp3-icon-large.bp3-align-right{
          margin-left:7px; }
      .bp3-button .bp3-icon:first-child:last-child,
      .bp3-button .bp3-spinner + .bp3-icon:last-child{
        margin:0 -7px; }
      .bp3-dark .bp3-button:not([class*="bp3-intent-"]){
        background-color:#394b59;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]):hover, .bp3-dark .bp3-button:not([class*="bp3-intent-"]):active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-active{
          color:#f5f8fa; }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]):hover{
          background-color:#30404d;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]):active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-active{
          background-color:#202b33;
          background-image:none;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]):disabled, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-disabled{
          background-color:rgba(57, 75, 89, 0.5);
          background-image:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(167, 182, 194, 0.6); }
          .bp3-dark .bp3-button:not([class*="bp3-intent-"]):disabled.bp3-active, .bp3-dark .bp3-button:not([class*="bp3-intent-"]).bp3-disabled.bp3-active{
            background:rgba(57, 75, 89, 0.7); }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-button-spinner .bp3-spinner-head{
          background:rgba(16, 22, 26, 0.5);
          stroke:#8a9ba8; }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"])[class*="bp3-icon-"]::before{
          color:#a7b6c2; }
        .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon, .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon-standard, .bp3-dark .bp3-button:not([class*="bp3-intent-"]) .bp3-icon-large{
          color:#a7b6c2; }
      .bp3-dark .bp3-button[class*="bp3-intent-"]{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-button[class*="bp3-intent-"]:hover{
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-button[class*="bp3-intent-"]:active, .bp3-dark .bp3-button[class*="bp3-intent-"].bp3-active{
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-dark .bp3-button[class*="bp3-intent-"]:disabled, .bp3-dark .bp3-button[class*="bp3-intent-"].bp3-disabled{
          background-image:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(255, 255, 255, 0.3); }
        .bp3-dark .bp3-button[class*="bp3-intent-"] .bp3-button-spinner .bp3-spinner-head{
          stroke:#8a9ba8; }
      .bp3-button:disabled::before,
      .bp3-button:disabled .bp3-icon, .bp3-button:disabled .bp3-icon-standard, .bp3-button:disabled .bp3-icon-large, .bp3-button.bp3-disabled::before,
      .bp3-button.bp3-disabled .bp3-icon, .bp3-button.bp3-disabled .bp3-icon-standard, .bp3-button.bp3-disabled .bp3-icon-large, .bp3-button[class*="bp3-intent-"]::before,
      .bp3-button[class*="bp3-intent-"] .bp3-icon, .bp3-button[class*="bp3-intent-"] .bp3-icon-standard, .bp3-button[class*="bp3-intent-"] .bp3-icon-large{
        color:inherit !important; }
      .bp3-button.bp3-minimal{
        background:none;
        -webkit-box-shadow:none;
                box-shadow:none; }
        .bp3-button.bp3-minimal:hover{
          background:rgba(167, 182, 194, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026;
          text-decoration:none; }
        .bp3-button.bp3-minimal:active, .bp3-button.bp3-minimal.bp3-active{
          background:rgba(115, 134, 148, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026; }
        .bp3-button.bp3-minimal:disabled, .bp3-button.bp3-minimal:disabled:hover, .bp3-button.bp3-minimal.bp3-disabled, .bp3-button.bp3-minimal.bp3-disabled:hover{
          background:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed; }
          .bp3-button.bp3-minimal:disabled.bp3-active, .bp3-button.bp3-minimal:disabled:hover.bp3-active, .bp3-button.bp3-minimal.bp3-disabled.bp3-active, .bp3-button.bp3-minimal.bp3-disabled:hover.bp3-active{
            background:rgba(115, 134, 148, 0.3); }
        .bp3-dark .bp3-button.bp3-minimal{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:inherit; }
          .bp3-dark .bp3-button.bp3-minimal:hover, .bp3-dark .bp3-button.bp3-minimal:active, .bp3-dark .bp3-button.bp3-minimal.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none; }
          .bp3-dark .bp3-button.bp3-minimal:hover{
            background:rgba(138, 155, 168, 0.15); }
          .bp3-dark .bp3-button.bp3-minimal:active, .bp3-dark .bp3-button.bp3-minimal.bp3-active{
            background:rgba(138, 155, 168, 0.3);
            color:#f5f8fa; }
          .bp3-dark .bp3-button.bp3-minimal:disabled, .bp3-dark .bp3-button.bp3-minimal:disabled:hover, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled:hover{
            background:none;
            color:rgba(167, 182, 194, 0.6);
            cursor:not-allowed; }
            .bp3-dark .bp3-button.bp3-minimal:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal:disabled:hover.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-disabled:hover.bp3-active{
              background:rgba(138, 155, 168, 0.3); }
        .bp3-button.bp3-minimal.bp3-intent-primary{
          color:#106ba3; }
          .bp3-button.bp3-minimal.bp3-intent-primary:hover, .bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#106ba3; }
          .bp3-button.bp3-minimal.bp3-intent-primary:hover{
            background:rgba(19, 124, 189, 0.15);
            color:#106ba3; }
          .bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
            background:rgba(19, 124, 189, 0.3);
            color:#106ba3; }
          .bp3-button.bp3-minimal.bp3-intent-primary:disabled, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled{
            background:none;
            color:rgba(16, 107, 163, 0.5); }
            .bp3-button.bp3-minimal.bp3-intent-primary:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled.bp3-active{
              background:rgba(19, 124, 189, 0.3); }
          .bp3-button.bp3-minimal.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
            stroke:#106ba3; }
          .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary{
            color:#48aff0; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:hover{
              background:rgba(19, 124, 189, 0.2);
              color:#48aff0; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-active{
              background:rgba(19, 124, 189, 0.3);
              color:#48aff0; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled{
              background:none;
              color:rgba(72, 175, 240, 0.5); }
              .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-primary.bp3-disabled.bp3-active{
                background:rgba(19, 124, 189, 0.3); }
        .bp3-button.bp3-minimal.bp3-intent-success{
          color:#0d8050; }
          .bp3-button.bp3-minimal.bp3-intent-success:hover, .bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#0d8050; }
          .bp3-button.bp3-minimal.bp3-intent-success:hover{
            background:rgba(15, 153, 96, 0.15);
            color:#0d8050; }
          .bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
            background:rgba(15, 153, 96, 0.3);
            color:#0d8050; }
          .bp3-button.bp3-minimal.bp3-intent-success:disabled, .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled{
            background:none;
            color:rgba(13, 128, 80, 0.5); }
            .bp3-button.bp3-minimal.bp3-intent-success:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled.bp3-active{
              background:rgba(15, 153, 96, 0.3); }
          .bp3-button.bp3-minimal.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
            stroke:#0d8050; }
          .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success{
            color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:hover{
              background:rgba(15, 153, 96, 0.2);
              color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-active{
              background:rgba(15, 153, 96, 0.3);
              color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled{
              background:none;
              color:rgba(61, 204, 145, 0.5); }
              .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-success.bp3-disabled.bp3-active{
                background:rgba(15, 153, 96, 0.3); }
        .bp3-button.bp3-minimal.bp3-intent-warning{
          color:#bf7326; }
          .bp3-button.bp3-minimal.bp3-intent-warning:hover, .bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#bf7326; }
          .bp3-button.bp3-minimal.bp3-intent-warning:hover{
            background:rgba(217, 130, 43, 0.15);
            color:#bf7326; }
          .bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
            background:rgba(217, 130, 43, 0.3);
            color:#bf7326; }
          .bp3-button.bp3-minimal.bp3-intent-warning:disabled, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled{
            background:none;
            color:rgba(191, 115, 38, 0.5); }
            .bp3-button.bp3-minimal.bp3-intent-warning:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled.bp3-active{
              background:rgba(217, 130, 43, 0.3); }
          .bp3-button.bp3-minimal.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
            stroke:#bf7326; }
          .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning{
            color:#ffb366; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:hover{
              background:rgba(217, 130, 43, 0.2);
              color:#ffb366; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-active{
              background:rgba(217, 130, 43, 0.3);
              color:#ffb366; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled{
              background:none;
              color:rgba(255, 179, 102, 0.5); }
              .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-warning.bp3-disabled.bp3-active{
                background:rgba(217, 130, 43, 0.3); }
        .bp3-button.bp3-minimal.bp3-intent-danger{
          color:#c23030; }
          .bp3-button.bp3-minimal.bp3-intent-danger:hover, .bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#c23030; }
          .bp3-button.bp3-minimal.bp3-intent-danger:hover{
            background:rgba(219, 55, 55, 0.15);
            color:#c23030; }
          .bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
            background:rgba(219, 55, 55, 0.3);
            color:#c23030; }
          .bp3-button.bp3-minimal.bp3-intent-danger:disabled, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled{
            background:none;
            color:rgba(194, 48, 48, 0.5); }
            .bp3-button.bp3-minimal.bp3-intent-danger:disabled.bp3-active, .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled.bp3-active{
              background:rgba(219, 55, 55, 0.3); }
          .bp3-button.bp3-minimal.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
            stroke:#c23030; }
          .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger{
            color:#ff7373; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:hover{
              background:rgba(219, 55, 55, 0.2);
              color:#ff7373; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-active{
              background:rgba(219, 55, 55, 0.3);
              color:#ff7373; }
            .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled{
              background:none;
              color:rgba(255, 115, 115, 0.5); }
              .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button.bp3-minimal.bp3-intent-danger.bp3-disabled.bp3-active{
                background:rgba(219, 55, 55, 0.3); }
      .bp3-button.bp3-outlined{
        background:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        border:1px solid rgba(24, 32, 38, 0.2);
        -webkit-box-sizing:border-box;
                box-sizing:border-box; }
        .bp3-button.bp3-outlined:hover{
          background:rgba(167, 182, 194, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026;
          text-decoration:none; }
        .bp3-button.bp3-outlined:active, .bp3-button.bp3-outlined.bp3-active{
          background:rgba(115, 134, 148, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026; }
        .bp3-button.bp3-outlined:disabled, .bp3-button.bp3-outlined:disabled:hover, .bp3-button.bp3-outlined.bp3-disabled, .bp3-button.bp3-outlined.bp3-disabled:hover{
          background:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed; }
          .bp3-button.bp3-outlined:disabled.bp3-active, .bp3-button.bp3-outlined:disabled:hover.bp3-active, .bp3-button.bp3-outlined.bp3-disabled.bp3-active, .bp3-button.bp3-outlined.bp3-disabled:hover.bp3-active{
            background:rgba(115, 134, 148, 0.3); }
        .bp3-dark .bp3-button.bp3-outlined{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:inherit; }
          .bp3-dark .bp3-button.bp3-outlined:hover, .bp3-dark .bp3-button.bp3-outlined:active, .bp3-dark .bp3-button.bp3-outlined.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none; }
          .bp3-dark .bp3-button.bp3-outlined:hover{
            background:rgba(138, 155, 168, 0.15); }
          .bp3-dark .bp3-button.bp3-outlined:active, .bp3-dark .bp3-button.bp3-outlined.bp3-active{
            background:rgba(138, 155, 168, 0.3);
            color:#f5f8fa; }
          .bp3-dark .bp3-button.bp3-outlined:disabled, .bp3-dark .bp3-button.bp3-outlined:disabled:hover, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover{
            background:none;
            color:rgba(167, 182, 194, 0.6);
            cursor:not-allowed; }
            .bp3-dark .bp3-button.bp3-outlined:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined:disabled:hover.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover.bp3-active{
              background:rgba(138, 155, 168, 0.3); }
        .bp3-button.bp3-outlined.bp3-intent-primary{
          color:#106ba3; }
          .bp3-button.bp3-outlined.bp3-intent-primary:hover, .bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#106ba3; }
          .bp3-button.bp3-outlined.bp3-intent-primary:hover{
            background:rgba(19, 124, 189, 0.15);
            color:#106ba3; }
          .bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
            background:rgba(19, 124, 189, 0.3);
            color:#106ba3; }
          .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
            background:none;
            color:rgba(16, 107, 163, 0.5); }
            .bp3-button.bp3-outlined.bp3-intent-primary:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled.bp3-active{
              background:rgba(19, 124, 189, 0.3); }
          .bp3-button.bp3-outlined.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
            stroke:#106ba3; }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary{
            color:#48aff0; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:hover{
              background:rgba(19, 124, 189, 0.2);
              color:#48aff0; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-active{
              background:rgba(19, 124, 189, 0.3);
              color:#48aff0; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
              background:none;
              color:rgba(72, 175, 240, 0.5); }
              .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled.bp3-active{
                background:rgba(19, 124, 189, 0.3); }
        .bp3-button.bp3-outlined.bp3-intent-success{
          color:#0d8050; }
          .bp3-button.bp3-outlined.bp3-intent-success:hover, .bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#0d8050; }
          .bp3-button.bp3-outlined.bp3-intent-success:hover{
            background:rgba(15, 153, 96, 0.15);
            color:#0d8050; }
          .bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
            background:rgba(15, 153, 96, 0.3);
            color:#0d8050; }
          .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
            background:none;
            color:rgba(13, 128, 80, 0.5); }
            .bp3-button.bp3-outlined.bp3-intent-success:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled.bp3-active{
              background:rgba(15, 153, 96, 0.3); }
          .bp3-button.bp3-outlined.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
            stroke:#0d8050; }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success{
            color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:hover{
              background:rgba(15, 153, 96, 0.2);
              color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-active{
              background:rgba(15, 153, 96, 0.3);
              color:#3dcc91; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
              background:none;
              color:rgba(61, 204, 145, 0.5); }
              .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled.bp3-active{
                background:rgba(15, 153, 96, 0.3); }
        .bp3-button.bp3-outlined.bp3-intent-warning{
          color:#bf7326; }
          .bp3-button.bp3-outlined.bp3-intent-warning:hover, .bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#bf7326; }
          .bp3-button.bp3-outlined.bp3-intent-warning:hover{
            background:rgba(217, 130, 43, 0.15);
            color:#bf7326; }
          .bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
            background:rgba(217, 130, 43, 0.3);
            color:#bf7326; }
          .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
            background:none;
            color:rgba(191, 115, 38, 0.5); }
            .bp3-button.bp3-outlined.bp3-intent-warning:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled.bp3-active{
              background:rgba(217, 130, 43, 0.3); }
          .bp3-button.bp3-outlined.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
            stroke:#bf7326; }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning{
            color:#ffb366; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:hover{
              background:rgba(217, 130, 43, 0.2);
              color:#ffb366; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-active{
              background:rgba(217, 130, 43, 0.3);
              color:#ffb366; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
              background:none;
              color:rgba(255, 179, 102, 0.5); }
              .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled.bp3-active{
                background:rgba(217, 130, 43, 0.3); }
        .bp3-button.bp3-outlined.bp3-intent-danger{
          color:#c23030; }
          .bp3-button.bp3-outlined.bp3-intent-danger:hover, .bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#c23030; }
          .bp3-button.bp3-outlined.bp3-intent-danger:hover{
            background:rgba(219, 55, 55, 0.15);
            color:#c23030; }
          .bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
            background:rgba(219, 55, 55, 0.3);
            color:#c23030; }
          .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
            background:none;
            color:rgba(194, 48, 48, 0.5); }
            .bp3-button.bp3-outlined.bp3-intent-danger:disabled.bp3-active, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled.bp3-active{
              background:rgba(219, 55, 55, 0.3); }
          .bp3-button.bp3-outlined.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
            stroke:#c23030; }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger{
            color:#ff7373; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:hover{
              background:rgba(219, 55, 55, 0.2);
              color:#ff7373; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-active{
              background:rgba(219, 55, 55, 0.3);
              color:#ff7373; }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
              background:none;
              color:rgba(255, 115, 115, 0.5); }
              .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled.bp3-active{
                background:rgba(219, 55, 55, 0.3); }
        .bp3-button.bp3-outlined:disabled, .bp3-button.bp3-outlined.bp3-disabled, .bp3-button.bp3-outlined:disabled:hover, .bp3-button.bp3-outlined.bp3-disabled:hover{
          border-color:rgba(92, 112, 128, 0.1); }
        .bp3-dark .bp3-button.bp3-outlined{
          border-color:rgba(255, 255, 255, 0.4); }
          .bp3-dark .bp3-button.bp3-outlined:disabled, .bp3-dark .bp3-button.bp3-outlined:disabled:hover, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-disabled:hover{
            border-color:rgba(255, 255, 255, 0.2); }
        .bp3-button.bp3-outlined.bp3-intent-primary{
          border-color:rgba(16, 107, 163, 0.6); }
          .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
            border-color:rgba(16, 107, 163, 0.2); }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary{
            border-color:rgba(72, 175, 240, 0.6); }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-primary.bp3-disabled{
              border-color:rgba(72, 175, 240, 0.2); }
        .bp3-button.bp3-outlined.bp3-intent-success{
          border-color:rgba(13, 128, 80, 0.6); }
          .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
            border-color:rgba(13, 128, 80, 0.2); }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success{
            border-color:rgba(61, 204, 145, 0.6); }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-success.bp3-disabled{
              border-color:rgba(61, 204, 145, 0.2); }
        .bp3-button.bp3-outlined.bp3-intent-warning{
          border-color:rgba(191, 115, 38, 0.6); }
          .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
            border-color:rgba(191, 115, 38, 0.2); }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning{
            border-color:rgba(255, 179, 102, 0.6); }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-warning.bp3-disabled{
              border-color:rgba(255, 179, 102, 0.2); }
        .bp3-button.bp3-outlined.bp3-intent-danger{
          border-color:rgba(194, 48, 48, 0.6); }
          .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
            border-color:rgba(194, 48, 48, 0.2); }
          .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger{
            border-color:rgba(255, 115, 115, 0.6); }
            .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger:disabled, .bp3-dark .bp3-button.bp3-outlined.bp3-intent-danger.bp3-disabled{
              border-color:rgba(255, 115, 115, 0.2); }
    
    a.bp3-button{
      text-align:center;
      text-decoration:none;
      -webkit-transition:none;
      transition:none; }
      a.bp3-button, a.bp3-button:hover, a.bp3-button:active{
        color:#182026; }
      a.bp3-button.bp3-disabled{
        color:rgba(92, 112, 128, 0.6); }
    
    .bp3-button-text{
      -webkit-box-flex:0;
          -ms-flex:0 1 auto;
              flex:0 1 auto; }
    
    .bp3-button.bp3-align-left .bp3-button-text, .bp3-button.bp3-align-right .bp3-button-text,
    .bp3-button-group.bp3-align-left .bp3-button-text,
    .bp3-button-group.bp3-align-right .bp3-button-text{
      -webkit-box-flex:1;
          -ms-flex:1 1 auto;
              flex:1 1 auto; }
    .bp3-button-group{
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex; }
      .bp3-button-group .bp3-button{
        -webkit-box-flex:0;
            -ms-flex:0 0 auto;
                flex:0 0 auto;
        position:relative;
        z-index:4; }
        .bp3-button-group .bp3-button:focus{
          z-index:5; }
        .bp3-button-group .bp3-button:hover{
          z-index:6; }
        .bp3-button-group .bp3-button:active, .bp3-button-group .bp3-button.bp3-active{
          z-index:7; }
        .bp3-button-group .bp3-button:disabled, .bp3-button-group .bp3-button.bp3-disabled{
          z-index:3; }
        .bp3-button-group .bp3-button[class*="bp3-intent-"]{
          z-index:9; }
          .bp3-button-group .bp3-button[class*="bp3-intent-"]:focus{
            z-index:10; }
          .bp3-button-group .bp3-button[class*="bp3-intent-"]:hover{
            z-index:11; }
          .bp3-button-group .bp3-button[class*="bp3-intent-"]:active, .bp3-button-group .bp3-button[class*="bp3-intent-"].bp3-active{
            z-index:12; }
          .bp3-button-group .bp3-button[class*="bp3-intent-"]:disabled, .bp3-button-group .bp3-button[class*="bp3-intent-"].bp3-disabled{
            z-index:8; }
      .bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:first-child) .bp3-button,
      .bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:first-child){
        border-bottom-left-radius:0;
        border-top-left-radius:0; }
      .bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
      .bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:last-child){
        border-bottom-right-radius:0;
        border-top-right-radius:0;
        margin-right:-1px; }
      .bp3-button-group.bp3-minimal .bp3-button{
        background:none;
        -webkit-box-shadow:none;
                box-shadow:none; }
        .bp3-button-group.bp3-minimal .bp3-button:hover{
          background:rgba(167, 182, 194, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026;
          text-decoration:none; }
        .bp3-button-group.bp3-minimal .bp3-button:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
          background:rgba(115, 134, 148, 0.3);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#182026; }
        .bp3-button-group.bp3-minimal .bp3-button:disabled, .bp3-button-group.bp3-minimal .bp3-button:disabled:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover{
          background:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed; }
          .bp3-button-group.bp3-minimal .bp3-button:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button:disabled:hover.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover.bp3-active{
            background:rgba(115, 134, 148, 0.3); }
        .bp3-dark .bp3-button-group.bp3-minimal .bp3-button{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:inherit; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:hover, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:hover{
            background:rgba(138, 155, 168, 0.15); }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-active{
            background:rgba(138, 155, 168, 0.3);
            color:#f5f8fa; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled:hover, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover{
            background:none;
            color:rgba(167, 182, 194, 0.6);
            cursor:not-allowed; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button:disabled:hover.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-disabled:hover.bp3-active{
              background:rgba(138, 155, 168, 0.3); }
        .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary{
          color:#106ba3; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#106ba3; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover{
            background:rgba(19, 124, 189, 0.15);
            color:#106ba3; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
            background:rgba(19, 124, 189, 0.3);
            color:#106ba3; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled{
            background:none;
            color:rgba(16, 107, 163, 0.5); }
            .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled.bp3-active{
              background:rgba(19, 124, 189, 0.3); }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
            stroke:#106ba3; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary{
            color:#48aff0; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:hover{
              background:rgba(19, 124, 189, 0.2);
              color:#48aff0; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-active{
              background:rgba(19, 124, 189, 0.3);
              color:#48aff0; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled{
              background:none;
              color:rgba(72, 175, 240, 0.5); }
              .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-primary.bp3-disabled.bp3-active{
                background:rgba(19, 124, 189, 0.3); }
        .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success{
          color:#0d8050; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#0d8050; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover{
            background:rgba(15, 153, 96, 0.15);
            color:#0d8050; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
            background:rgba(15, 153, 96, 0.3);
            color:#0d8050; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled{
            background:none;
            color:rgba(13, 128, 80, 0.5); }
            .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled.bp3-active{
              background:rgba(15, 153, 96, 0.3); }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
            stroke:#0d8050; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success{
            color:#3dcc91; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:hover{
              background:rgba(15, 153, 96, 0.2);
              color:#3dcc91; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-active{
              background:rgba(15, 153, 96, 0.3);
              color:#3dcc91; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled{
              background:none;
              color:rgba(61, 204, 145, 0.5); }
              .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-success.bp3-disabled.bp3-active{
                background:rgba(15, 153, 96, 0.3); }
        .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning{
          color:#bf7326; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#bf7326; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover{
            background:rgba(217, 130, 43, 0.15);
            color:#bf7326; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
            background:rgba(217, 130, 43, 0.3);
            color:#bf7326; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled{
            background:none;
            color:rgba(191, 115, 38, 0.5); }
            .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled.bp3-active{
              background:rgba(217, 130, 43, 0.3); }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
            stroke:#bf7326; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning{
            color:#ffb366; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:hover{
              background:rgba(217, 130, 43, 0.2);
              color:#ffb366; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-active{
              background:rgba(217, 130, 43, 0.3);
              color:#ffb366; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled{
              background:none;
              color:rgba(255, 179, 102, 0.5); }
              .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-warning.bp3-disabled.bp3-active{
                background:rgba(217, 130, 43, 0.3); }
        .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger{
          color:#c23030; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
            background:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:#c23030; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover{
            background:rgba(219, 55, 55, 0.15);
            color:#c23030; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
            background:rgba(219, 55, 55, 0.3);
            color:#c23030; }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled{
            background:none;
            color:rgba(194, 48, 48, 0.5); }
            .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled.bp3-active, .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled.bp3-active{
              background:rgba(219, 55, 55, 0.3); }
          .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
            stroke:#c23030; }
          .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger{
            color:#ff7373; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:hover{
              background:rgba(219, 55, 55, 0.2);
              color:#ff7373; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-active{
              background:rgba(219, 55, 55, 0.3);
              color:#ff7373; }
            .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled{
              background:none;
              color:rgba(255, 115, 115, 0.5); }
              .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-button-group.bp3-minimal .bp3-button.bp3-intent-danger.bp3-disabled.bp3-active{
                background:rgba(219, 55, 55, 0.3); }
      .bp3-button-group .bp3-popover-wrapper,
      .bp3-button-group .bp3-popover-target{
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto; }
      .bp3-button-group.bp3-fill{
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        width:100%; }
      .bp3-button-group .bp3-button.bp3-fill,
      .bp3-button-group.bp3-fill .bp3-button:not(.bp3-fixed){
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto; }
      .bp3-button-group.bp3-vertical{
        -webkit-box-align:stretch;
            -ms-flex-align:stretch;
                align-items:stretch;
        -webkit-box-orient:vertical;
        -webkit-box-direction:normal;
            -ms-flex-direction:column;
                flex-direction:column;
        vertical-align:top; }
        .bp3-button-group.bp3-vertical.bp3-fill{
          height:100%;
          width:unset; }
        .bp3-button-group.bp3-vertical .bp3-button{
          margin-right:0 !important;
          width:100%; }
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:first-child .bp3-button,
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:first-child{
          border-radius:3px 3px 0 0; }
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:last-child .bp3-button,
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:last-child{
          border-radius:0 0 3px 3px; }
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
        .bp3-button-group.bp3-vertical:not(.bp3-minimal) > .bp3-button:not(:last-child){
          margin-bottom:-1px; }
      .bp3-button-group.bp3-align-left .bp3-button{
        text-align:left; }
      .bp3-dark .bp3-button-group:not(.bp3-minimal) > .bp3-popover-wrapper:not(:last-child) .bp3-button,
      .bp3-dark .bp3-button-group:not(.bp3-minimal) > .bp3-button:not(:last-child){
        margin-right:1px; }
      .bp3-dark .bp3-button-group.bp3-vertical > .bp3-popover-wrapper:not(:last-child) .bp3-button,
      .bp3-dark .bp3-button-group.bp3-vertical > .bp3-button:not(:last-child){
        margin-bottom:1px; }
    .bp3-callout{
      font-size:14px;
      line-height:1.5;
      background-color:rgba(138, 155, 168, 0.15);
      border-radius:3px;
      padding:10px 12px 9px;
      position:relative;
      width:100%; }
      .bp3-callout[class*="bp3-icon-"]{
        padding-left:40px; }
        .bp3-callout[class*="bp3-icon-"]::before{
          font-family:"Icons20", sans-serif;
          font-size:20px;
          font-style:normal;
          font-weight:400;
          line-height:1;
          -moz-osx-font-smoothing:grayscale;
          -webkit-font-smoothing:antialiased;
          color:#5c7080;
          left:10px;
          position:absolute;
          top:10px; }
      .bp3-callout.bp3-callout-icon{
        padding-left:40px; }
        .bp3-callout.bp3-callout-icon > .bp3-icon:first-child{
          color:#5c7080;
          left:10px;
          position:absolute;
          top:10px; }
      .bp3-callout .bp3-heading{
        line-height:20px;
        margin-bottom:5px;
        margin-top:0; }
        .bp3-callout .bp3-heading:last-child{
          margin-bottom:0; }
      .bp3-dark .bp3-callout{
        background-color:rgba(138, 155, 168, 0.2); }
        .bp3-dark .bp3-callout[class*="bp3-icon-"]::before{
          color:#a7b6c2; }
      .bp3-callout.bp3-intent-primary{
        background-color:rgba(19, 124, 189, 0.15); }
        .bp3-callout.bp3-intent-primary[class*="bp3-icon-"]::before,
        .bp3-callout.bp3-intent-primary > .bp3-icon:first-child,
        .bp3-callout.bp3-intent-primary .bp3-heading{
          color:#106ba3; }
        .bp3-dark .bp3-callout.bp3-intent-primary{
          background-color:rgba(19, 124, 189, 0.25); }
          .bp3-dark .bp3-callout.bp3-intent-primary[class*="bp3-icon-"]::before,
          .bp3-dark .bp3-callout.bp3-intent-primary > .bp3-icon:first-child,
          .bp3-dark .bp3-callout.bp3-intent-primary .bp3-heading{
            color:#48aff0; }
      .bp3-callout.bp3-intent-success{
        background-color:rgba(15, 153, 96, 0.15); }
        .bp3-callout.bp3-intent-success[class*="bp3-icon-"]::before,
        .bp3-callout.bp3-intent-success > .bp3-icon:first-child,
        .bp3-callout.bp3-intent-success .bp3-heading{
          color:#0d8050; }
        .bp3-dark .bp3-callout.bp3-intent-success{
          background-color:rgba(15, 153, 96, 0.25); }
          .bp3-dark .bp3-callout.bp3-intent-success[class*="bp3-icon-"]::before,
          .bp3-dark .bp3-callout.bp3-intent-success > .bp3-icon:first-child,
          .bp3-dark .bp3-callout.bp3-intent-success .bp3-heading{
            color:#3dcc91; }
      .bp3-callout.bp3-intent-warning{
        background-color:rgba(217, 130, 43, 0.15); }
        .bp3-callout.bp3-intent-warning[class*="bp3-icon-"]::before,
        .bp3-callout.bp3-intent-warning > .bp3-icon:first-child,
        .bp3-callout.bp3-intent-warning .bp3-heading{
          color:#bf7326; }
        .bp3-dark .bp3-callout.bp3-intent-warning{
          background-color:rgba(217, 130, 43, 0.25); }
          .bp3-dark .bp3-callout.bp3-intent-warning[class*="bp3-icon-"]::before,
          .bp3-dark .bp3-callout.bp3-intent-warning > .bp3-icon:first-child,
          .bp3-dark .bp3-callout.bp3-intent-warning .bp3-heading{
            color:#ffb366; }
      .bp3-callout.bp3-intent-danger{
        background-color:rgba(219, 55, 55, 0.15); }
        .bp3-callout.bp3-intent-danger[class*="bp3-icon-"]::before,
        .bp3-callout.bp3-intent-danger > .bp3-icon:first-child,
        .bp3-callout.bp3-intent-danger .bp3-heading{
          color:#c23030; }
        .bp3-dark .bp3-callout.bp3-intent-danger{
          background-color:rgba(219, 55, 55, 0.25); }
          .bp3-dark .bp3-callout.bp3-intent-danger[class*="bp3-icon-"]::before,
          .bp3-dark .bp3-callout.bp3-intent-danger > .bp3-icon:first-child,
          .bp3-dark .bp3-callout.bp3-intent-danger .bp3-heading{
            color:#ff7373; }
      .bp3-running-text .bp3-callout{
        margin:20px 0; }
    .bp3-card{
      background-color:#ffffff;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
      padding:20px;
      -webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-card.bp3-dark,
      .bp3-dark .bp3-card{
        background-color:#30404d;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
    
    .bp3-elevation-0{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.15), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
      .bp3-elevation-0.bp3-dark,
      .bp3-dark .bp3-elevation-0{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), 0 0 0 rgba(16, 22, 26, 0), 0 0 0 rgba(16, 22, 26, 0); }
    
    .bp3-elevation-1{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-elevation-1.bp3-dark,
      .bp3-dark .bp3-elevation-1{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
    
    .bp3-elevation-2{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 1px 1px rgba(16, 22, 26, 0.2), 0 2px 6px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 1px 1px rgba(16, 22, 26, 0.2), 0 2px 6px rgba(16, 22, 26, 0.2); }
      .bp3-elevation-2.bp3-dark,
      .bp3-dark .bp3-elevation-2{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.4), 0 2px 6px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.4), 0 2px 6px rgba(16, 22, 26, 0.4); }
    
    .bp3-elevation-3{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2); }
      .bp3-elevation-3.bp3-dark,
      .bp3-dark .bp3-elevation-3{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
    
    .bp3-elevation-4{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2); }
      .bp3-elevation-4.bp3-dark,
      .bp3-dark .bp3-elevation-4{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4); }
    
    .bp3-card.bp3-interactive:hover{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
      cursor:pointer; }
      .bp3-card.bp3-interactive:hover.bp3-dark,
      .bp3-dark .bp3-card.bp3-interactive:hover{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
    
    .bp3-card.bp3-interactive:active{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
      opacity:0.9;
      -webkit-transition-duration:0;
              transition-duration:0; }
      .bp3-card.bp3-interactive:active.bp3-dark,
      .bp3-dark .bp3-card.bp3-interactive:active{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
    
    .bp3-collapse{
      height:0;
      overflow-y:hidden;
      -webkit-transition:height 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:height 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-collapse .bp3-collapse-body{
        -webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-collapse .bp3-collapse-body[aria-hidden="true"]{
          display:none; }
    
    .bp3-context-menu .bp3-popover-target{
      display:block; }
    
    .bp3-context-menu-popover-target{
      position:fixed; }
    
    .bp3-divider{
      border-bottom:1px solid rgba(16, 22, 26, 0.15);
      border-right:1px solid rgba(16, 22, 26, 0.15);
      margin:5px; }
      .bp3-dark .bp3-divider{
        border-color:rgba(16, 22, 26, 0.4); }
    .bp3-dialog-container{
      opacity:1;
      -webkit-transform:scale(1);
              transform:scale(1);
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      min-height:100%;
      pointer-events:none;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none;
      width:100%; }
      .bp3-dialog-container.bp3-overlay-enter > .bp3-dialog, .bp3-dialog-container.bp3-overlay-appear > .bp3-dialog{
        opacity:0;
        -webkit-transform:scale(0.5);
                transform:scale(0.5); }
      .bp3-dialog-container.bp3-overlay-enter-active > .bp3-dialog, .bp3-dialog-container.bp3-overlay-appear-active > .bp3-dialog{
        opacity:1;
        -webkit-transform:scale(1);
                transform:scale(1);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:opacity, -webkit-transform;
        transition-property:opacity, -webkit-transform;
        transition-property:opacity, transform;
        transition-property:opacity, transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
      .bp3-dialog-container.bp3-overlay-exit > .bp3-dialog{
        opacity:1;
        -webkit-transform:scale(1);
                transform:scale(1); }
      .bp3-dialog-container.bp3-overlay-exit-active > .bp3-dialog{
        opacity:0;
        -webkit-transform:scale(0.5);
                transform:scale(0.5);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:opacity, -webkit-transform;
        transition-property:opacity, -webkit-transform;
        transition-property:opacity, transform;
        transition-property:opacity, transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
    
    .bp3-dialog{
      background:#ebf1f5;
      border-radius:6px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      margin:30px 0;
      padding-bottom:20px;
      pointer-events:all;
      -webkit-user-select:text;
         -moz-user-select:text;
          -ms-user-select:text;
              user-select:text;
      width:500px; }
      .bp3-dialog:focus{
        outline:0; }
      .bp3-dialog.bp3-dark,
      .bp3-dark .bp3-dialog{
        background:#293742;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
    
    .bp3-dialog-header{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      background:#ffffff;
      border-radius:6px 6px 0 0;
      -webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
              box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      min-height:40px;
      padding-left:20px;
      padding-right:5px;
      z-index:30; }
      .bp3-dialog-header .bp3-icon-large,
      .bp3-dialog-header .bp3-icon{
        color:#5c7080;
        -webkit-box-flex:0;
            -ms-flex:0 0 auto;
                flex:0 0 auto;
        margin-right:10px; }
      .bp3-dialog-header .bp3-heading{
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        word-wrap:normal;
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto;
        line-height:inherit;
        margin:0; }
        .bp3-dialog-header .bp3-heading:last-child{
          margin-right:20px; }
      .bp3-dark .bp3-dialog-header{
        background:#30404d;
        -webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.4);
                box-shadow:0 1px 0 rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-dialog-header .bp3-icon-large,
        .bp3-dark .bp3-dialog-header .bp3-icon{
          color:#a7b6c2; }
    
    .bp3-dialog-body{
      -webkit-box-flex:1;
          -ms-flex:1 1 auto;
              flex:1 1 auto;
      line-height:18px;
      margin:20px; }
    
    .bp3-dialog-footer{
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      margin:0 20px; }
    
    .bp3-dialog-footer-actions{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-pack:end;
          -ms-flex-pack:end;
              justify-content:flex-end; }
      .bp3-dialog-footer-actions .bp3-button{
        margin-left:10px; }
    .bp3-multistep-dialog-panels{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex; }
    
    .bp3-multistep-dialog-left-panel{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-flex:1;
          -ms-flex:1;
              flex:1;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column; }
      .bp3-dark .bp3-multistep-dialog-left-panel{
        background:#202b33; }
    
    .bp3-multistep-dialog-right-panel{
      background-color:#f5f8fa;
      border-left:1px solid rgba(16, 22, 26, 0.15);
      border-radius:0 0 6px 0;
      -webkit-box-flex:3;
          -ms-flex:3;
              flex:3;
      min-width:0; }
      .bp3-dark .bp3-multistep-dialog-right-panel{
        background-color:#293742;
        border-left:1px solid rgba(16, 22, 26, 0.4); }
    
    .bp3-multistep-dialog-footer{
      background-color:#ffffff;
      border-radius:0 0 6px 0;
      border-top:1px solid rgba(16, 22, 26, 0.15);
      padding:10px; }
      .bp3-dark .bp3-multistep-dialog-footer{
        background:#30404d;
        border-top:1px solid rgba(16, 22, 26, 0.4); }
    
    .bp3-dialog-step-container{
      background-color:#f5f8fa;
      border-bottom:1px solid rgba(16, 22, 26, 0.15); }
      .bp3-dark .bp3-dialog-step-container{
        background:#293742;
        border-bottom:1px solid rgba(16, 22, 26, 0.4); }
      .bp3-dialog-step-container.bp3-dialog-step-viewed{
        background-color:#ffffff; }
        .bp3-dark .bp3-dialog-step-container.bp3-dialog-step-viewed{
          background:#30404d; }
    
    .bp3-dialog-step{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      background-color:#f5f8fa;
      border-radius:6px;
      cursor:not-allowed;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      margin:4px;
      padding:6px 14px; }
      .bp3-dark .bp3-dialog-step{
        background:#293742; }
      .bp3-dialog-step-viewed .bp3-dialog-step{
        background-color:#ffffff;
        cursor:pointer; }
        .bp3-dark .bp3-dialog-step-viewed .bp3-dialog-step{
          background:#30404d; }
      .bp3-dialog-step:hover{
        background-color:#f5f8fa; }
        .bp3-dark .bp3-dialog-step:hover{
          background:#293742; }
    
    .bp3-dialog-step-icon{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      background-color:rgba(92, 112, 128, 0.6);
      border-radius:50%;
      color:#ffffff;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      height:25px;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      width:25px; }
      .bp3-dark .bp3-dialog-step-icon{
        background-color:rgba(167, 182, 194, 0.6); }
      .bp3-active.bp3-dialog-step-viewed .bp3-dialog-step-icon{
        background-color:#2b95d6; }
      .bp3-dialog-step-viewed .bp3-dialog-step-icon{
        background-color:#8a9ba8; }
    
    .bp3-dialog-step-title{
      color:rgba(92, 112, 128, 0.6);
      -webkit-box-flex:1;
          -ms-flex:1;
              flex:1;
      padding-left:10px; }
      .bp3-dark .bp3-dialog-step-title{
        color:rgba(167, 182, 194, 0.6); }
      .bp3-active.bp3-dialog-step-viewed .bp3-dialog-step-title{
        color:#2b95d6; }
      .bp3-dialog-step-viewed:not(.bp3-active) .bp3-dialog-step-title{
        color:#182026; }
        .bp3-dark .bp3-dialog-step-viewed:not(.bp3-active) .bp3-dialog-step-title{
          color:#f5f8fa; }
    .bp3-drawer{
      background:#ffffff;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      margin:0;
      padding:0; }
      .bp3-drawer:focus{
        outline:0; }
      .bp3-drawer.bp3-position-top{
        height:50%;
        left:0;
        right:0;
        top:0; }
        .bp3-drawer.bp3-position-top.bp3-overlay-enter, .bp3-drawer.bp3-position-top.bp3-overlay-appear{
          -webkit-transform:translateY(-100%);
                  transform:translateY(-100%); }
        .bp3-drawer.bp3-position-top.bp3-overlay-enter-active, .bp3-drawer.bp3-position-top.bp3-overlay-appear-active{
          -webkit-transform:translateY(0);
                  transform:translateY(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer.bp3-position-top.bp3-overlay-exit{
          -webkit-transform:translateY(0);
                  transform:translateY(0); }
        .bp3-drawer.bp3-position-top.bp3-overlay-exit-active{
          -webkit-transform:translateY(-100%);
                  transform:translateY(-100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer.bp3-position-bottom{
        bottom:0;
        height:50%;
        left:0;
        right:0; }
        .bp3-drawer.bp3-position-bottom.bp3-overlay-enter, .bp3-drawer.bp3-position-bottom.bp3-overlay-appear{
          -webkit-transform:translateY(100%);
                  transform:translateY(100%); }
        .bp3-drawer.bp3-position-bottom.bp3-overlay-enter-active, .bp3-drawer.bp3-position-bottom.bp3-overlay-appear-active{
          -webkit-transform:translateY(0);
                  transform:translateY(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer.bp3-position-bottom.bp3-overlay-exit{
          -webkit-transform:translateY(0);
                  transform:translateY(0); }
        .bp3-drawer.bp3-position-bottom.bp3-overlay-exit-active{
          -webkit-transform:translateY(100%);
                  transform:translateY(100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer.bp3-position-left{
        bottom:0;
        left:0;
        top:0;
        width:50%; }
        .bp3-drawer.bp3-position-left.bp3-overlay-enter, .bp3-drawer.bp3-position-left.bp3-overlay-appear{
          -webkit-transform:translateX(-100%);
                  transform:translateX(-100%); }
        .bp3-drawer.bp3-position-left.bp3-overlay-enter-active, .bp3-drawer.bp3-position-left.bp3-overlay-appear-active{
          -webkit-transform:translateX(0);
                  transform:translateX(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer.bp3-position-left.bp3-overlay-exit{
          -webkit-transform:translateX(0);
                  transform:translateX(0); }
        .bp3-drawer.bp3-position-left.bp3-overlay-exit-active{
          -webkit-transform:translateX(-100%);
                  transform:translateX(-100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer.bp3-position-right{
        bottom:0;
        right:0;
        top:0;
        width:50%; }
        .bp3-drawer.bp3-position-right.bp3-overlay-enter, .bp3-drawer.bp3-position-right.bp3-overlay-appear{
          -webkit-transform:translateX(100%);
                  transform:translateX(100%); }
        .bp3-drawer.bp3-position-right.bp3-overlay-enter-active, .bp3-drawer.bp3-position-right.bp3-overlay-appear-active{
          -webkit-transform:translateX(0);
                  transform:translateX(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer.bp3-position-right.bp3-overlay-exit{
          -webkit-transform:translateX(0);
                  transform:translateX(0); }
        .bp3-drawer.bp3-position-right.bp3-overlay-exit-active{
          -webkit-transform:translateX(100%);
                  transform:translateX(100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
      .bp3-position-right):not(.bp3-vertical){
        bottom:0;
        right:0;
        top:0;
        width:50%; }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-enter, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-appear{
          -webkit-transform:translateX(100%);
                  transform:translateX(100%); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-enter-active, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-appear-active{
          -webkit-transform:translateX(0);
                  transform:translateX(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-exit{
          -webkit-transform:translateX(0);
                  transform:translateX(0); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right):not(.bp3-vertical).bp3-overlay-exit-active{
          -webkit-transform:translateX(100%);
                  transform:translateX(100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
      .bp3-position-right).bp3-vertical{
        bottom:0;
        height:50%;
        left:0;
        right:0; }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-enter, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-appear{
          -webkit-transform:translateY(100%);
                  transform:translateY(100%); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-enter-active, .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-appear-active{
          -webkit-transform:translateY(0);
                  transform:translateY(0);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:200ms;
                  transition-duration:200ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-exit{
          -webkit-transform:translateY(0);
                  transform:translateY(0); }
        .bp3-drawer:not(.bp3-position-top):not(.bp3-position-bottom):not(.bp3-position-left):not(
        .bp3-position-right).bp3-vertical.bp3-overlay-exit-active{
          -webkit-transform:translateY(100%);
                  transform:translateY(100%);
          -webkit-transition-delay:0;
                  transition-delay:0;
          -webkit-transition-duration:100ms;
                  transition-duration:100ms;
          -webkit-transition-property:-webkit-transform;
          transition-property:-webkit-transform;
          transition-property:transform;
          transition-property:transform, -webkit-transform;
          -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                  transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-drawer.bp3-dark,
      .bp3-dark .bp3-drawer{
        background:#30404d;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
    
    .bp3-drawer-header{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      border-radius:0;
      -webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
              box-shadow:0 1px 0 rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      min-height:40px;
      padding:5px;
      padding-left:20px;
      position:relative; }
      .bp3-drawer-header .bp3-icon-large,
      .bp3-drawer-header .bp3-icon{
        color:#5c7080;
        -webkit-box-flex:0;
            -ms-flex:0 0 auto;
                flex:0 0 auto;
        margin-right:10px; }
      .bp3-drawer-header .bp3-heading{
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        word-wrap:normal;
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto;
        line-height:inherit;
        margin:0; }
        .bp3-drawer-header .bp3-heading:last-child{
          margin-right:20px; }
      .bp3-dark .bp3-drawer-header{
        -webkit-box-shadow:0 1px 0 rgba(16, 22, 26, 0.4);
                box-shadow:0 1px 0 rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-drawer-header .bp3-icon-large,
        .bp3-dark .bp3-drawer-header .bp3-icon{
          color:#a7b6c2; }
    
    .bp3-drawer-body{
      -webkit-box-flex:1;
          -ms-flex:1 1 auto;
              flex:1 1 auto;
      line-height:18px;
      overflow:auto; }
    
    .bp3-drawer-footer{
      -webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
              box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      padding:10px 20px;
      position:relative; }
      .bp3-dark .bp3-drawer-footer{
        -webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.4);
                box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.4); }
    .bp3-editable-text{
      cursor:text;
      display:inline-block;
      max-width:100%;
      position:relative;
      vertical-align:top;
      white-space:nowrap; }
      .bp3-editable-text::before{
        bottom:-3px;
        left:-3px;
        position:absolute;
        right:-3px;
        top:-3px;
        border-radius:3px;
        content:"";
        -webkit-transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9), box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-editable-text:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
      .bp3-editable-text.bp3-editable-text-editing::before{
        background-color:#ffffff;
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-editable-text.bp3-disabled::before{
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-editable-text.bp3-intent-primary .bp3-editable-text-input,
      .bp3-editable-text.bp3-intent-primary .bp3-editable-text-content{
        color:#137cbd; }
      .bp3-editable-text.bp3-intent-primary:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(19, 124, 189, 0.4);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(19, 124, 189, 0.4); }
      .bp3-editable-text.bp3-intent-primary.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-editable-text.bp3-intent-success .bp3-editable-text-input,
      .bp3-editable-text.bp3-intent-success .bp3-editable-text-content{
        color:#0f9960; }
      .bp3-editable-text.bp3-intent-success:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px rgba(15, 153, 96, 0.4);
                box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px rgba(15, 153, 96, 0.4); }
      .bp3-editable-text.bp3-intent-success.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-editable-text.bp3-intent-warning .bp3-editable-text-input,
      .bp3-editable-text.bp3-intent-warning .bp3-editable-text-content{
        color:#d9822b; }
      .bp3-editable-text.bp3-intent-warning:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px rgba(217, 130, 43, 0.4);
                box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px rgba(217, 130, 43, 0.4); }
      .bp3-editable-text.bp3-intent-warning.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-editable-text.bp3-intent-danger .bp3-editable-text-input,
      .bp3-editable-text.bp3-intent-danger .bp3-editable-text-content{
        color:#db3737; }
      .bp3-editable-text.bp3-intent-danger:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px rgba(219, 55, 55, 0.4);
                box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px rgba(219, 55, 55, 0.4); }
      .bp3-editable-text.bp3-intent-danger.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-editable-text:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(255, 255, 255, 0.15);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(255, 255, 255, 0.15); }
      .bp3-dark .bp3-editable-text.bp3-editable-text-editing::before{
        background-color:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-disabled::before{
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-dark .bp3-editable-text.bp3-intent-primary .bp3-editable-text-content{
        color:#48aff0; }
      .bp3-dark .bp3-editable-text.bp3-intent-primary:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(72, 175, 240, 0), 0 0 0 0 rgba(72, 175, 240, 0), inset 0 0 0 1px rgba(72, 175, 240, 0.4);
                box-shadow:0 0 0 0 rgba(72, 175, 240, 0), 0 0 0 0 rgba(72, 175, 240, 0), inset 0 0 0 1px rgba(72, 175, 240, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-primary.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #48aff0, 0 0 0 3px rgba(72, 175, 240, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #48aff0, 0 0 0 3px rgba(72, 175, 240, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-success .bp3-editable-text-content{
        color:#3dcc91; }
      .bp3-dark .bp3-editable-text.bp3-intent-success:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(61, 204, 145, 0), 0 0 0 0 rgba(61, 204, 145, 0), inset 0 0 0 1px rgba(61, 204, 145, 0.4);
                box-shadow:0 0 0 0 rgba(61, 204, 145, 0), 0 0 0 0 rgba(61, 204, 145, 0), inset 0 0 0 1px rgba(61, 204, 145, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-success.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #3dcc91, 0 0 0 3px rgba(61, 204, 145, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #3dcc91, 0 0 0 3px rgba(61, 204, 145, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-warning .bp3-editable-text-content{
        color:#ffb366; }
      .bp3-dark .bp3-editable-text.bp3-intent-warning:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(255, 179, 102, 0), 0 0 0 0 rgba(255, 179, 102, 0), inset 0 0 0 1px rgba(255, 179, 102, 0.4);
                box-shadow:0 0 0 0 rgba(255, 179, 102, 0), 0 0 0 0 rgba(255, 179, 102, 0), inset 0 0 0 1px rgba(255, 179, 102, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-warning.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #ffb366, 0 0 0 3px rgba(255, 179, 102, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #ffb366, 0 0 0 3px rgba(255, 179, 102, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-danger .bp3-editable-text-content{
        color:#ff7373; }
      .bp3-dark .bp3-editable-text.bp3-intent-danger:hover::before{
        -webkit-box-shadow:0 0 0 0 rgba(255, 115, 115, 0), 0 0 0 0 rgba(255, 115, 115, 0), inset 0 0 0 1px rgba(255, 115, 115, 0.4);
                box-shadow:0 0 0 0 rgba(255, 115, 115, 0), 0 0 0 0 rgba(255, 115, 115, 0), inset 0 0 0 1px rgba(255, 115, 115, 0.4); }
      .bp3-dark .bp3-editable-text.bp3-intent-danger.bp3-editable-text-editing::before{
        -webkit-box-shadow:0 0 0 1px #ff7373, 0 0 0 3px rgba(255, 115, 115, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #ff7373, 0 0 0 3px rgba(255, 115, 115, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
    
    .bp3-editable-text-input,
    .bp3-editable-text-content{
      color:inherit;
      display:inherit;
      font:inherit;
      letter-spacing:inherit;
      max-width:inherit;
      min-width:inherit;
      position:relative;
      resize:none;
      text-transform:inherit;
      vertical-align:top; }
    
    .bp3-editable-text-input{
      background:none;
      border:none;
      -webkit-box-shadow:none;
              box-shadow:none;
      padding:0;
      white-space:pre-wrap;
      width:100%; }
      .bp3-editable-text-input::-webkit-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-editable-text-input::-moz-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-editable-text-input:-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-editable-text-input::-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-editable-text-input::placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-editable-text-input:focus{
        outline:none; }
      .bp3-editable-text-input::-ms-clear{
        display:none; }
    
    .bp3-editable-text-content{
      overflow:hidden;
      padding-right:2px;
      text-overflow:ellipsis;
      white-space:pre; }
      .bp3-editable-text-editing > .bp3-editable-text-content{
        left:0;
        position:absolute;
        visibility:hidden; }
      .bp3-editable-text-placeholder > .bp3-editable-text-content{
        color:rgba(92, 112, 128, 0.6); }
        .bp3-dark .bp3-editable-text-placeholder > .bp3-editable-text-content{
          color:rgba(167, 182, 194, 0.6); }
    
    .bp3-editable-text.bp3-multiline{
      display:block; }
      .bp3-editable-text.bp3-multiline .bp3-editable-text-content{
        overflow:auto;
        white-space:pre-wrap;
        word-wrap:break-word; }
    .bp3-divider{
      border-bottom:1px solid rgba(16, 22, 26, 0.15);
      border-right:1px solid rgba(16, 22, 26, 0.15);
      margin:5px; }
      .bp3-dark .bp3-divider{
        border-color:rgba(16, 22, 26, 0.4); }
    .bp3-control-group{
      -webkit-transform:translateZ(0);
              transform:translateZ(0);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:stretch;
          -ms-flex-align:stretch;
              align-items:stretch; }
      .bp3-control-group > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-control-group > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-control-group .bp3-button,
      .bp3-control-group .bp3-html-select,
      .bp3-control-group .bp3-input,
      .bp3-control-group .bp3-select{
        position:relative; }
      .bp3-control-group .bp3-input{
        border-radius:inherit;
        z-index:2; }
        .bp3-control-group .bp3-input:focus{
          border-radius:3px;
          z-index:14; }
        .bp3-control-group .bp3-input[class*="bp3-intent"]{
          z-index:13; }
          .bp3-control-group .bp3-input[class*="bp3-intent"]:focus{
            z-index:15; }
        .bp3-control-group .bp3-input[readonly], .bp3-control-group .bp3-input:disabled, .bp3-control-group .bp3-input.bp3-disabled{
          z-index:1; }
      .bp3-control-group .bp3-input-group[class*="bp3-intent"] .bp3-input{
        z-index:13; }
        .bp3-control-group .bp3-input-group[class*="bp3-intent"] .bp3-input:focus{
          z-index:15; }
      .bp3-control-group .bp3-button,
      .bp3-control-group .bp3-html-select select,
      .bp3-control-group .bp3-select select{
        -webkit-transform:translateZ(0);
                transform:translateZ(0);
        border-radius:inherit;
        z-index:4; }
        .bp3-control-group .bp3-button:focus,
        .bp3-control-group .bp3-html-select select:focus,
        .bp3-control-group .bp3-select select:focus{
          z-index:5; }
        .bp3-control-group .bp3-button:hover,
        .bp3-control-group .bp3-html-select select:hover,
        .bp3-control-group .bp3-select select:hover{
          z-index:6; }
        .bp3-control-group .bp3-button:active,
        .bp3-control-group .bp3-html-select select:active,
        .bp3-control-group .bp3-select select:active{
          z-index:7; }
        .bp3-control-group .bp3-button[readonly], .bp3-control-group .bp3-button:disabled, .bp3-control-group .bp3-button.bp3-disabled,
        .bp3-control-group .bp3-html-select select[readonly],
        .bp3-control-group .bp3-html-select select:disabled,
        .bp3-control-group .bp3-html-select select.bp3-disabled,
        .bp3-control-group .bp3-select select[readonly],
        .bp3-control-group .bp3-select select:disabled,
        .bp3-control-group .bp3-select select.bp3-disabled{
          z-index:3; }
        .bp3-control-group .bp3-button[class*="bp3-intent"],
        .bp3-control-group .bp3-html-select select[class*="bp3-intent"],
        .bp3-control-group .bp3-select select[class*="bp3-intent"]{
          z-index:9; }
          .bp3-control-group .bp3-button[class*="bp3-intent"]:focus,
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"]:focus,
          .bp3-control-group .bp3-select select[class*="bp3-intent"]:focus{
            z-index:10; }
          .bp3-control-group .bp3-button[class*="bp3-intent"]:hover,
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"]:hover,
          .bp3-control-group .bp3-select select[class*="bp3-intent"]:hover{
            z-index:11; }
          .bp3-control-group .bp3-button[class*="bp3-intent"]:active,
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"]:active,
          .bp3-control-group .bp3-select select[class*="bp3-intent"]:active{
            z-index:12; }
          .bp3-control-group .bp3-button[class*="bp3-intent"][readonly], .bp3-control-group .bp3-button[class*="bp3-intent"]:disabled, .bp3-control-group .bp3-button[class*="bp3-intent"].bp3-disabled,
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"][readonly],
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"]:disabled,
          .bp3-control-group .bp3-html-select select[class*="bp3-intent"].bp3-disabled,
          .bp3-control-group .bp3-select select[class*="bp3-intent"][readonly],
          .bp3-control-group .bp3-select select[class*="bp3-intent"]:disabled,
          .bp3-control-group .bp3-select select[class*="bp3-intent"].bp3-disabled{
            z-index:8; }
      .bp3-control-group .bp3-input-group > .bp3-icon,
      .bp3-control-group .bp3-input-group > .bp3-button,
      .bp3-control-group .bp3-input-group > .bp3-input-left-container,
      .bp3-control-group .bp3-input-group > .bp3-input-action{
        z-index:16; }
      .bp3-control-group .bp3-select::after,
      .bp3-control-group .bp3-html-select::after,
      .bp3-control-group .bp3-select > .bp3-icon,
      .bp3-control-group .bp3-html-select > .bp3-icon{
        z-index:17; }
      .bp3-control-group .bp3-select:focus-within{
        z-index:5; }
      .bp3-control-group:not(.bp3-vertical) > *:not(.bp3-divider){
        margin-right:-1px; }
      .bp3-control-group:not(.bp3-vertical) > .bp3-divider:not(:first-child){
        margin-left:6px; }
      .bp3-dark .bp3-control-group:not(.bp3-vertical) > *:not(.bp3-divider){
        margin-right:0; }
      .bp3-dark .bp3-control-group:not(.bp3-vertical) > .bp3-button + .bp3-button{
        margin-left:1px; }
      .bp3-control-group .bp3-popover-wrapper,
      .bp3-control-group .bp3-popover-target{
        border-radius:inherit; }
      .bp3-control-group > :first-child{
        border-radius:3px 0 0 3px; }
      .bp3-control-group > :last-child{
        border-radius:0 3px 3px 0;
        margin-right:0; }
      .bp3-control-group > :only-child{
        border-radius:3px;
        margin-right:0; }
      .bp3-control-group .bp3-input-group .bp3-button{
        border-radius:3px; }
      .bp3-control-group .bp3-numeric-input:not(:first-child) .bp3-input-group{
        border-bottom-left-radius:0;
        border-top-left-radius:0; }
      .bp3-control-group.bp3-fill{
        width:100%; }
      .bp3-control-group > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto; }
      .bp3-control-group.bp3-fill > *:not(.bp3-fixed){
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto; }
      .bp3-control-group.bp3-vertical{
        -webkit-box-orient:vertical;
        -webkit-box-direction:normal;
            -ms-flex-direction:column;
                flex-direction:column; }
        .bp3-control-group.bp3-vertical > *{
          margin-top:-1px; }
        .bp3-control-group.bp3-vertical > :first-child{
          border-radius:3px 3px 0 0;
          margin-top:0; }
        .bp3-control-group.bp3-vertical > :last-child{
          border-radius:0 0 3px 3px; }
    .bp3-control{
      cursor:pointer;
      display:block;
      margin-bottom:10px;
      position:relative;
      text-transform:none; }
      .bp3-control input:checked ~ .bp3-control-indicator{
        background-color:#137cbd;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
      .bp3-control:hover input:checked ~ .bp3-control-indicator{
        background-color:#106ba3;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
      .bp3-control input:not(:disabled):active:checked ~ .bp3-control-indicator{
        background:#0e5a8a;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-control input:disabled:checked ~ .bp3-control-indicator{
        background:rgba(19, 124, 189, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-dark .bp3-control input:checked ~ .bp3-control-indicator{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control:hover input:checked ~ .bp3-control-indicator{
        background-color:#106ba3;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control input:not(:disabled):active:checked ~ .bp3-control-indicator{
        background-color:#0e5a8a;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-control input:disabled:checked ~ .bp3-control-indicator{
        background:rgba(14, 90, 138, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-control:not(.bp3-align-right){
        padding-left:26px; }
        .bp3-control:not(.bp3-align-right) .bp3-control-indicator{
          margin-left:-26px; }
      .bp3-control.bp3-align-right{
        padding-right:26px; }
        .bp3-control.bp3-align-right .bp3-control-indicator{
          margin-right:-26px; }
      .bp3-control.bp3-disabled{
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed; }
      .bp3-control.bp3-inline{
        display:inline-block;
        margin-right:20px; }
      .bp3-control input{
        left:0;
        opacity:0;
        position:absolute;
        top:0;
        z-index:-1; }
      .bp3-control .bp3-control-indicator{
        background-clip:padding-box;
        background-color:#f5f8fa;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
        border:none;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
        cursor:pointer;
        display:inline-block;
        font-size:16px;
        height:1em;
        margin-right:10px;
        margin-top:-3px;
        position:relative;
        -webkit-user-select:none;
           -moz-user-select:none;
            -ms-user-select:none;
                user-select:none;
        vertical-align:middle;
        width:1em; }
        .bp3-control .bp3-control-indicator::before{
          content:"";
          display:block;
          height:1em;
          width:1em; }
      .bp3-control:hover .bp3-control-indicator{
        background-color:#ebf1f5; }
      .bp3-control input:not(:disabled):active ~ .bp3-control-indicator{
        background:#d8e1e8;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-control input:disabled ~ .bp3-control-indicator{
        background:rgba(206, 217, 224, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none;
        cursor:not-allowed; }
      .bp3-control input:focus ~ .bp3-control-indicator{
        outline:rgba(19, 124, 189, 0.6) auto 2px;
        outline-offset:2px;
        -moz-outline-radius:6px; }
      .bp3-control.bp3-align-right .bp3-control-indicator{
        float:right;
        margin-left:10px;
        margin-top:1px; }
      .bp3-control.bp3-large{
        font-size:16px; }
        .bp3-control.bp3-large:not(.bp3-align-right){
          padding-left:30px; }
          .bp3-control.bp3-large:not(.bp3-align-right) .bp3-control-indicator{
            margin-left:-30px; }
        .bp3-control.bp3-large.bp3-align-right{
          padding-right:30px; }
          .bp3-control.bp3-large.bp3-align-right .bp3-control-indicator{
            margin-right:-30px; }
        .bp3-control.bp3-large .bp3-control-indicator{
          font-size:20px; }
        .bp3-control.bp3-large.bp3-align-right .bp3-control-indicator{
          margin-top:0; }
      .bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator{
        background-color:#137cbd;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
        color:#ffffff; }
      .bp3-control.bp3-checkbox:hover input:indeterminate ~ .bp3-control-indicator{
        background-color:#106ba3;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 -1px 0 rgba(16, 22, 26, 0.2); }
      .bp3-control.bp3-checkbox input:not(:disabled):active:indeterminate ~ .bp3-control-indicator{
        background:#0e5a8a;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
        background:rgba(19, 124, 189, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-dark .bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control.bp3-checkbox:hover input:indeterminate ~ .bp3-control-indicator{
        background-color:#106ba3;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control.bp3-checkbox input:not(:disabled):active:indeterminate ~ .bp3-control-indicator{
        background-color:#0e5a8a;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
        background:rgba(14, 90, 138, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-control.bp3-checkbox .bp3-control-indicator{
        border-radius:3px; }
      .bp3-control.bp3-checkbox input:checked ~ .bp3-control-indicator::before{
        background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='white'/%3e%3c/svg%3e"); }
      .bp3-control.bp3-checkbox input:indeterminate ~ .bp3-control-indicator::before{
        background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z' fill='white'/%3e%3c/svg%3e"); }
      .bp3-control.bp3-radio .bp3-control-indicator{
        border-radius:50%; }
      .bp3-control.bp3-radio input:checked ~ .bp3-control-indicator::before{
        background-image:radial-gradient(#ffffff, #ffffff 28%, transparent 32%); }
      .bp3-control.bp3-radio input:checked:disabled ~ .bp3-control-indicator::before{
        opacity:0.5; }
      .bp3-control.bp3-radio input:focus ~ .bp3-control-indicator{
        -moz-outline-radius:16px; }
      .bp3-control.bp3-switch input ~ .bp3-control-indicator{
        background:rgba(167, 182, 194, 0.5); }
      .bp3-control.bp3-switch:hover input ~ .bp3-control-indicator{
        background:rgba(115, 134, 148, 0.5); }
      .bp3-control.bp3-switch input:not(:disabled):active ~ .bp3-control-indicator{
        background:rgba(92, 112, 128, 0.5); }
      .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator{
        background:rgba(206, 217, 224, 0.5); }
        .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator::before{
          background:rgba(255, 255, 255, 0.8); }
      .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator{
        background:#137cbd; }
      .bp3-control.bp3-switch:hover input:checked ~ .bp3-control-indicator{
        background:#106ba3; }
      .bp3-control.bp3-switch input:checked:not(:disabled):active ~ .bp3-control-indicator{
        background:#0e5a8a; }
      .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator{
        background:rgba(19, 124, 189, 0.5); }
        .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator::before{
          background:rgba(255, 255, 255, 0.8); }
      .bp3-control.bp3-switch:not(.bp3-align-right){
        padding-left:38px; }
        .bp3-control.bp3-switch:not(.bp3-align-right) .bp3-control-indicator{
          margin-left:-38px; }
      .bp3-control.bp3-switch.bp3-align-right{
        padding-right:38px; }
        .bp3-control.bp3-switch.bp3-align-right .bp3-control-indicator{
          margin-right:-38px; }
      .bp3-control.bp3-switch .bp3-control-indicator{
        border:none;
        border-radius:1.75em;
        -webkit-box-shadow:none !important;
                box-shadow:none !important;
        min-width:1.75em;
        -webkit-transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:background-color 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
        width:auto; }
        .bp3-control.bp3-switch .bp3-control-indicator::before{
          background:#ffffff;
          border-radius:50%;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
          height:calc(1em - 4px);
          left:0;
          margin:2px;
          position:absolute;
          -webkit-transition:left 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
          transition:left 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
          width:calc(1em - 4px); }
      .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator::before{
        left:calc(100% - 1em); }
      .bp3-control.bp3-switch.bp3-large:not(.bp3-align-right){
        padding-left:45px; }
        .bp3-control.bp3-switch.bp3-large:not(.bp3-align-right) .bp3-control-indicator{
          margin-left:-45px; }
      .bp3-control.bp3-switch.bp3-large.bp3-align-right{
        padding-right:45px; }
        .bp3-control.bp3-switch.bp3-large.bp3-align-right .bp3-control-indicator{
          margin-right:-45px; }
      .bp3-dark .bp3-control.bp3-switch input ~ .bp3-control-indicator{
        background:rgba(16, 22, 26, 0.5); }
      .bp3-dark .bp3-control.bp3-switch:hover input ~ .bp3-control-indicator{
        background:rgba(16, 22, 26, 0.7); }
      .bp3-dark .bp3-control.bp3-switch input:not(:disabled):active ~ .bp3-control-indicator{
        background:rgba(16, 22, 26, 0.9); }
      .bp3-dark .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator{
        background:rgba(57, 75, 89, 0.5); }
        .bp3-dark .bp3-control.bp3-switch input:disabled ~ .bp3-control-indicator::before{
          background:rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator{
        background:#137cbd; }
      .bp3-dark .bp3-control.bp3-switch:hover input:checked ~ .bp3-control-indicator{
        background:#106ba3; }
      .bp3-dark .bp3-control.bp3-switch input:checked:not(:disabled):active ~ .bp3-control-indicator{
        background:#0e5a8a; }
      .bp3-dark .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator{
        background:rgba(14, 90, 138, 0.5); }
        .bp3-dark .bp3-control.bp3-switch input:checked:disabled ~ .bp3-control-indicator::before{
          background:rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control.bp3-switch .bp3-control-indicator::before{
        background:#394b59;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator::before{
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-control.bp3-switch .bp3-switch-inner-text{
        font-size:0.7em;
        text-align:center; }
      .bp3-control.bp3-switch .bp3-control-indicator-child:first-child{
        line-height:0;
        margin-left:0.5em;
        margin-right:1.2em;
        visibility:hidden; }
      .bp3-control.bp3-switch .bp3-control-indicator-child:last-child{
        line-height:1em;
        margin-left:1.2em;
        margin-right:0.5em;
        visibility:visible; }
      .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator .bp3-control-indicator-child:first-child{
        line-height:1em;
        visibility:visible; }
      .bp3-control.bp3-switch input:checked ~ .bp3-control-indicator .bp3-control-indicator-child:last-child{
        line-height:0;
        visibility:hidden; }
      .bp3-dark .bp3-control{
        color:#f5f8fa; }
        .bp3-dark .bp3-control.bp3-disabled{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-control .bp3-control-indicator{
          background-color:#394b59;
          background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
          background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-control:hover .bp3-control-indicator{
          background-color:#30404d; }
        .bp3-dark .bp3-control input:not(:disabled):active ~ .bp3-control-indicator{
          background:#202b33;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-dark .bp3-control input:disabled ~ .bp3-control-indicator{
          background:rgba(57, 75, 89, 0.5);
          -webkit-box-shadow:none;
                  box-shadow:none;
          cursor:not-allowed; }
        .bp3-dark .bp3-control.bp3-checkbox input:disabled:checked ~ .bp3-control-indicator, .bp3-dark .bp3-control.bp3-checkbox input:disabled:indeterminate ~ .bp3-control-indicator{
          color:rgba(167, 182, 194, 0.6); }
    .bp3-file-input{
      cursor:pointer;
      display:inline-block;
      height:30px;
      position:relative; }
      .bp3-file-input input{
        margin:0;
        min-width:200px;
        opacity:0; }
        .bp3-file-input input:disabled + .bp3-file-upload-input,
        .bp3-file-input input.bp3-disabled + .bp3-file-upload-input{
          background:rgba(206, 217, 224, 0.5);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed;
          resize:none; }
          .bp3-file-input input:disabled + .bp3-file-upload-input::after,
          .bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after{
            background-color:rgba(206, 217, 224, 0.5);
            background-image:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:rgba(92, 112, 128, 0.6);
            cursor:not-allowed;
            outline:none; }
            .bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active, .bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active:hover,
            .bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active,
            .bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active:hover{
              background:rgba(206, 217, 224, 0.7); }
          .bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input, .bp3-dark
          .bp3-file-input input.bp3-disabled + .bp3-file-upload-input{
            background:rgba(57, 75, 89, 0.5);
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:rgba(167, 182, 194, 0.6); }
            .bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input::after, .bp3-dark
            .bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after{
              background-color:rgba(57, 75, 89, 0.5);
              background-image:none;
              -webkit-box-shadow:none;
                      box-shadow:none;
              color:rgba(167, 182, 194, 0.6); }
              .bp3-dark .bp3-file-input input:disabled + .bp3-file-upload-input::after.bp3-active, .bp3-dark
              .bp3-file-input input.bp3-disabled + .bp3-file-upload-input::after.bp3-active{
                background:rgba(57, 75, 89, 0.7); }
      .bp3-file-input.bp3-file-input-has-selection .bp3-file-upload-input{
        color:#182026; }
      .bp3-dark .bp3-file-input.bp3-file-input-has-selection .bp3-file-upload-input{
        color:#f5f8fa; }
      .bp3-file-input.bp3-fill{
        width:100%; }
      .bp3-file-input.bp3-large,
      .bp3-large .bp3-file-input{
        height:40px; }
      .bp3-file-input .bp3-file-upload-input-custom-text::after{
        content:attr(bp3-button-text); }
    
    .bp3-file-upload-input{
      -webkit-appearance:none;
         -moz-appearance:none;
              appearance:none;
      background:#ffffff;
      border:none;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
      color:#182026;
      font-size:14px;
      font-weight:400;
      height:30px;
      line-height:30px;
      outline:none;
      padding:0 10px;
      -webkit-transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      vertical-align:middle;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      word-wrap:normal;
      color:rgba(92, 112, 128, 0.6);
      left:0;
      padding-right:80px;
      position:absolute;
      right:0;
      top:0;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-file-upload-input::-webkit-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-file-upload-input::-moz-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-file-upload-input:-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-file-upload-input::-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-file-upload-input::placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-file-upload-input:focus, .bp3-file-upload-input.bp3-active{
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-file-upload-input[type="search"], .bp3-file-upload-input.bp3-round{
        border-radius:30px;
        -webkit-box-sizing:border-box;
                box-sizing:border-box;
        padding-left:10px; }
      .bp3-file-upload-input[readonly]{
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
      .bp3-file-upload-input:disabled, .bp3-file-upload-input.bp3-disabled{
        background:rgba(206, 217, 224, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed;
        resize:none; }
      .bp3-file-upload-input::after{
        background-color:#f5f8fa;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
        color:#182026;
        min-height:24px;
        min-width:24px;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        word-wrap:normal;
        border-radius:3px;
        content:"Browse";
        line-height:24px;
        margin:3px;
        position:absolute;
        right:0;
        text-align:center;
        top:0;
        width:70px; }
        .bp3-file-upload-input::after:hover{
          background-clip:padding-box;
          background-color:#ebf1f5;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
        .bp3-file-upload-input::after:active, .bp3-file-upload-input::after.bp3-active{
          background-color:#d8e1e8;
          background-image:none;
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-file-upload-input::after:disabled, .bp3-file-upload-input::after.bp3-disabled{
          background-color:rgba(206, 217, 224, 0.5);
          background-image:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(92, 112, 128, 0.6);
          cursor:not-allowed;
          outline:none; }
          .bp3-file-upload-input::after:disabled.bp3-active, .bp3-file-upload-input::after:disabled.bp3-active:hover, .bp3-file-upload-input::after.bp3-disabled.bp3-active, .bp3-file-upload-input::after.bp3-disabled.bp3-active:hover{
            background:rgba(206, 217, 224, 0.7); }
      .bp3-file-upload-input:hover::after{
        background-clip:padding-box;
        background-color:#ebf1f5;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
      .bp3-file-upload-input:active::after{
        background-color:#d8e1e8;
        background-image:none;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-large .bp3-file-upload-input{
        font-size:16px;
        height:40px;
        line-height:40px;
        padding-right:95px; }
        .bp3-large .bp3-file-upload-input[type="search"], .bp3-large .bp3-file-upload-input.bp3-round{
          padding:0 15px; }
        .bp3-large .bp3-file-upload-input::after{
          min-height:30px;
          min-width:30px;
          line-height:30px;
          margin:5px;
          width:85px; }
      .bp3-dark .bp3-file-upload-input{
        background:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa;
        color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input::-webkit-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input::-moz-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input:-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input::-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input::placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input:focus{
          -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-file-upload-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-file-upload-input:disabled, .bp3-dark .bp3-file-upload-input.bp3-disabled{
          background:rgba(57, 75, 89, 0.5);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-file-upload-input::after{
          background-color:#394b59;
          background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
          background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
          color:#f5f8fa; }
          .bp3-dark .bp3-file-upload-input::after:hover, .bp3-dark .bp3-file-upload-input::after:active, .bp3-dark .bp3-file-upload-input::after.bp3-active{
            color:#f5f8fa; }
          .bp3-dark .bp3-file-upload-input::after:hover{
            background-color:#30404d;
            -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                    box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-file-upload-input::after:active, .bp3-dark .bp3-file-upload-input::after.bp3-active{
            background-color:#202b33;
            background-image:none;
            -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                    box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
          .bp3-dark .bp3-file-upload-input::after:disabled, .bp3-dark .bp3-file-upload-input::after.bp3-disabled{
            background-color:rgba(57, 75, 89, 0.5);
            background-image:none;
            -webkit-box-shadow:none;
                    box-shadow:none;
            color:rgba(167, 182, 194, 0.6); }
            .bp3-dark .bp3-file-upload-input::after:disabled.bp3-active, .bp3-dark .bp3-file-upload-input::after.bp3-disabled.bp3-active{
              background:rgba(57, 75, 89, 0.7); }
          .bp3-dark .bp3-file-upload-input::after .bp3-button-spinner .bp3-spinner-head{
            background:rgba(16, 22, 26, 0.5);
            stroke:#8a9ba8; }
        .bp3-dark .bp3-file-upload-input:hover::after{
          background-color:#30404d;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-file-upload-input:active::after{
          background-color:#202b33;
          background-image:none;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
    .bp3-file-upload-input::after{
      -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
              box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
    .bp3-form-group{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      margin:0 0 15px; }
      .bp3-form-group label.bp3-label{
        margin-bottom:5px; }
      .bp3-form-group .bp3-control{
        margin-top:7px; }
      .bp3-form-group .bp3-form-helper-text{
        color:#5c7080;
        font-size:12px;
        margin-top:5px; }
      .bp3-form-group.bp3-intent-primary .bp3-form-helper-text{
        color:#106ba3; }
      .bp3-form-group.bp3-intent-success .bp3-form-helper-text{
        color:#0d8050; }
      .bp3-form-group.bp3-intent-warning .bp3-form-helper-text{
        color:#bf7326; }
      .bp3-form-group.bp3-intent-danger .bp3-form-helper-text{
        color:#c23030; }
      .bp3-form-group.bp3-inline{
        -webkit-box-align:start;
            -ms-flex-align:start;
                align-items:flex-start;
        -webkit-box-orient:horizontal;
        -webkit-box-direction:normal;
            -ms-flex-direction:row;
                flex-direction:row; }
        .bp3-form-group.bp3-inline.bp3-large label.bp3-label{
          line-height:40px;
          margin:0 10px 0 0; }
        .bp3-form-group.bp3-inline label.bp3-label{
          line-height:30px;
          margin:0 10px 0 0; }
      .bp3-form-group.bp3-disabled .bp3-label,
      .bp3-form-group.bp3-disabled .bp3-text-muted,
      .bp3-form-group.bp3-disabled .bp3-form-helper-text{
        color:rgba(92, 112, 128, 0.6) !important; }
      .bp3-dark .bp3-form-group.bp3-intent-primary .bp3-form-helper-text{
        color:#48aff0; }
      .bp3-dark .bp3-form-group.bp3-intent-success .bp3-form-helper-text{
        color:#3dcc91; }
      .bp3-dark .bp3-form-group.bp3-intent-warning .bp3-form-helper-text{
        color:#ffb366; }
      .bp3-dark .bp3-form-group.bp3-intent-danger .bp3-form-helper-text{
        color:#ff7373; }
      .bp3-dark .bp3-form-group .bp3-form-helper-text{
        color:#a7b6c2; }
      .bp3-dark .bp3-form-group.bp3-disabled .bp3-label,
      .bp3-dark .bp3-form-group.bp3-disabled .bp3-text-muted,
      .bp3-dark .bp3-form-group.bp3-disabled .bp3-form-helper-text{
        color:rgba(167, 182, 194, 0.6) !important; }
    .bp3-input-group{
      display:block;
      position:relative; }
      .bp3-input-group .bp3-input{
        position:relative;
        width:100%; }
        .bp3-input-group .bp3-input:not(:first-child){
          padding-left:30px; }
        .bp3-input-group .bp3-input:not(:last-child){
          padding-right:30px; }
      .bp3-input-group .bp3-input-action,
      .bp3-input-group > .bp3-input-left-container,
      .bp3-input-group > .bp3-button,
      .bp3-input-group > .bp3-icon{
        position:absolute;
        top:0; }
        .bp3-input-group .bp3-input-action:first-child,
        .bp3-input-group > .bp3-input-left-container:first-child,
        .bp3-input-group > .bp3-button:first-child,
        .bp3-input-group > .bp3-icon:first-child{
          left:0; }
        .bp3-input-group .bp3-input-action:last-child,
        .bp3-input-group > .bp3-input-left-container:last-child,
        .bp3-input-group > .bp3-button:last-child,
        .bp3-input-group > .bp3-icon:last-child{
          right:0; }
      .bp3-input-group .bp3-button{
        min-height:24px;
        min-width:24px;
        margin:3px;
        padding:0 7px; }
        .bp3-input-group .bp3-button:empty{
          padding:0; }
      .bp3-input-group > .bp3-input-left-container,
      .bp3-input-group > .bp3-icon{
        z-index:1; }
      .bp3-input-group > .bp3-input-left-container > .bp3-icon,
      .bp3-input-group > .bp3-icon{
        color:#5c7080; }
        .bp3-input-group > .bp3-input-left-container > .bp3-icon:empty,
        .bp3-input-group > .bp3-icon:empty{
          font-family:"Icons16", sans-serif;
          font-size:16px;
          font-style:normal;
          font-weight:400;
          line-height:1;
          -moz-osx-font-smoothing:grayscale;
          -webkit-font-smoothing:antialiased; }
      .bp3-input-group > .bp3-input-left-container > .bp3-icon,
      .bp3-input-group > .bp3-icon,
      .bp3-input-group .bp3-input-action > .bp3-spinner{
        margin:7px; }
      .bp3-input-group .bp3-tag{
        margin:5px; }
      .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus),
      .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus){
        color:#5c7080; }
        .bp3-dark .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus), .bp3-dark
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus){
          color:#a7b6c2; }
        .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-standard, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-large,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-standard,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:not(:hover):not(:focus) .bp3-icon-large{
          color:#5c7080; }
      .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled,
      .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled{
        color:rgba(92, 112, 128, 0.6) !important; }
        .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon-standard, .bp3-input-group .bp3-input:not(:focus) + .bp3-button.bp3-minimal:disabled .bp3-icon-large,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon-standard,
        .bp3-input-group .bp3-input:not(:focus) + .bp3-input-action .bp3-button.bp3-minimal:disabled .bp3-icon-large{
          color:rgba(92, 112, 128, 0.6) !important; }
      .bp3-input-group.bp3-disabled{
        cursor:not-allowed; }
        .bp3-input-group.bp3-disabled .bp3-icon{
          color:rgba(92, 112, 128, 0.6); }
      .bp3-input-group.bp3-large .bp3-button{
        min-height:30px;
        min-width:30px;
        margin:5px; }
      .bp3-input-group.bp3-large > .bp3-input-left-container > .bp3-icon,
      .bp3-input-group.bp3-large > .bp3-icon,
      .bp3-input-group.bp3-large .bp3-input-action > .bp3-spinner{
        margin:12px; }
      .bp3-input-group.bp3-large .bp3-input{
        font-size:16px;
        height:40px;
        line-height:40px; }
        .bp3-input-group.bp3-large .bp3-input[type="search"], .bp3-input-group.bp3-large .bp3-input.bp3-round{
          padding:0 15px; }
        .bp3-input-group.bp3-large .bp3-input:not(:first-child){
          padding-left:40px; }
        .bp3-input-group.bp3-large .bp3-input:not(:last-child){
          padding-right:40px; }
      .bp3-input-group.bp3-small .bp3-button{
        min-height:20px;
        min-width:20px;
        margin:2px; }
      .bp3-input-group.bp3-small .bp3-tag{
        min-height:20px;
        min-width:20px;
        margin:2px; }
      .bp3-input-group.bp3-small > .bp3-input-left-container > .bp3-icon,
      .bp3-input-group.bp3-small > .bp3-icon,
      .bp3-input-group.bp3-small .bp3-input-action > .bp3-spinner{
        margin:4px; }
      .bp3-input-group.bp3-small .bp3-input{
        font-size:12px;
        height:24px;
        line-height:24px;
        padding-left:8px;
        padding-right:8px; }
        .bp3-input-group.bp3-small .bp3-input[type="search"], .bp3-input-group.bp3-small .bp3-input.bp3-round{
          padding:0 12px; }
        .bp3-input-group.bp3-small .bp3-input:not(:first-child){
          padding-left:24px; }
        .bp3-input-group.bp3-small .bp3-input:not(:last-child){
          padding-right:24px; }
      .bp3-input-group.bp3-fill{
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto;
        width:100%; }
      .bp3-input-group.bp3-round .bp3-button,
      .bp3-input-group.bp3-round .bp3-input,
      .bp3-input-group.bp3-round .bp3-tag{
        border-radius:30px; }
      .bp3-dark .bp3-input-group .bp3-icon{
        color:#a7b6c2; }
      .bp3-dark .bp3-input-group.bp3-disabled .bp3-icon{
        color:rgba(167, 182, 194, 0.6); }
      .bp3-input-group.bp3-intent-primary .bp3-input{
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-primary .bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-primary .bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #137cbd;
                  box-shadow:inset 0 0 0 1px #137cbd; }
        .bp3-input-group.bp3-intent-primary .bp3-input:disabled, .bp3-input-group.bp3-intent-primary .bp3-input.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-input-group.bp3-intent-primary > .bp3-icon{
        color:#106ba3; }
        .bp3-dark .bp3-input-group.bp3-intent-primary > .bp3-icon{
          color:#48aff0; }
      .bp3-input-group.bp3-intent-success .bp3-input{
        -webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-success .bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-success .bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #0f9960;
                  box-shadow:inset 0 0 0 1px #0f9960; }
        .bp3-input-group.bp3-intent-success .bp3-input:disabled, .bp3-input-group.bp3-intent-success .bp3-input.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-input-group.bp3-intent-success > .bp3-icon{
        color:#0d8050; }
        .bp3-dark .bp3-input-group.bp3-intent-success > .bp3-icon{
          color:#3dcc91; }
      .bp3-input-group.bp3-intent-warning .bp3-input{
        -webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-warning .bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-warning .bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #d9822b;
                  box-shadow:inset 0 0 0 1px #d9822b; }
        .bp3-input-group.bp3-intent-warning .bp3-input:disabled, .bp3-input-group.bp3-intent-warning .bp3-input.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-input-group.bp3-intent-warning > .bp3-icon{
        color:#bf7326; }
        .bp3-dark .bp3-input-group.bp3-intent-warning > .bp3-icon{
          color:#ffb366; }
      .bp3-input-group.bp3-intent-danger .bp3-input{
        -webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-danger .bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input-group.bp3-intent-danger .bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #db3737;
                  box-shadow:inset 0 0 0 1px #db3737; }
        .bp3-input-group.bp3-intent-danger .bp3-input:disabled, .bp3-input-group.bp3-intent-danger .bp3-input.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-input-group.bp3-intent-danger > .bp3-icon{
        color:#c23030; }
        .bp3-dark .bp3-input-group.bp3-intent-danger > .bp3-icon{
          color:#ff7373; }
    .bp3-input{
      -webkit-appearance:none;
         -moz-appearance:none;
              appearance:none;
      background:#ffffff;
      border:none;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
      color:#182026;
      font-size:14px;
      font-weight:400;
      height:30px;
      line-height:30px;
      outline:none;
      padding:0 10px;
      -webkit-transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:-webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-box-shadow 100ms cubic-bezier(0.4, 1, 0.75, 0.9);
      vertical-align:middle; }
      .bp3-input::-webkit-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input::-moz-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input:-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input::-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input::placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input:focus, .bp3-input.bp3-active{
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-input[type="search"], .bp3-input.bp3-round{
        border-radius:30px;
        -webkit-box-sizing:border-box;
                box-sizing:border-box;
        padding-left:10px; }
      .bp3-input[readonly]{
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.15); }
      .bp3-input:disabled, .bp3-input.bp3-disabled{
        background:rgba(206, 217, 224, 0.5);
        -webkit-box-shadow:none;
                box-shadow:none;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed;
        resize:none; }
      .bp3-input.bp3-large{
        font-size:16px;
        height:40px;
        line-height:40px; }
        .bp3-input.bp3-large[type="search"], .bp3-input.bp3-large.bp3-round{
          padding:0 15px; }
      .bp3-input.bp3-small{
        font-size:12px;
        height:24px;
        line-height:24px;
        padding-left:8px;
        padding-right:8px; }
        .bp3-input.bp3-small[type="search"], .bp3-input.bp3-small.bp3-round{
          padding:0 12px; }
      .bp3-input.bp3-fill{
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto;
        width:100%; }
      .bp3-dark .bp3-input{
        background:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
        .bp3-dark .bp3-input::-webkit-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-input::-moz-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-input:-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-input::-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-input::placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-input:disabled, .bp3-dark .bp3-input.bp3-disabled{
          background:rgba(57, 75, 89, 0.5);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(167, 182, 194, 0.6); }
      .bp3-input.bp3-intent-primary{
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-primary:focus{
          -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-primary[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #137cbd;
                  box-shadow:inset 0 0 0 1px #137cbd; }
        .bp3-input.bp3-intent-primary:disabled, .bp3-input.bp3-intent-primary.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
        .bp3-dark .bp3-input.bp3-intent-primary{
          -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px #137cbd, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-primary:focus{
            -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                    box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-primary[readonly]{
            -webkit-box-shadow:inset 0 0 0 1px #137cbd;
                    box-shadow:inset 0 0 0 1px #137cbd; }
          .bp3-dark .bp3-input.bp3-intent-primary:disabled, .bp3-dark .bp3-input.bp3-intent-primary.bp3-disabled{
            -webkit-box-shadow:none;
                    box-shadow:none; }
      .bp3-input.bp3-intent-success{
        -webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-success:focus{
          -webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-success[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #0f9960;
                  box-shadow:inset 0 0 0 1px #0f9960; }
        .bp3-input.bp3-intent-success:disabled, .bp3-input.bp3-intent-success.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
        .bp3-dark .bp3-input.bp3-intent-success{
          -webkit-box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), 0 0 0 0 rgba(15, 153, 96, 0), inset 0 0 0 1px #0f9960, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-success:focus{
            -webkit-box-shadow:0 0 0 1px #0f9960, 0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                    box-shadow:0 0 0 1px #0f9960, 0 0 0 1px #0f9960, 0 0 0 3px rgba(15, 153, 96, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-success[readonly]{
            -webkit-box-shadow:inset 0 0 0 1px #0f9960;
                    box-shadow:inset 0 0 0 1px #0f9960; }
          .bp3-dark .bp3-input.bp3-intent-success:disabled, .bp3-dark .bp3-input.bp3-intent-success.bp3-disabled{
            -webkit-box-shadow:none;
                    box-shadow:none; }
      .bp3-input.bp3-intent-warning{
        -webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-warning:focus{
          -webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-warning[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #d9822b;
                  box-shadow:inset 0 0 0 1px #d9822b; }
        .bp3-input.bp3-intent-warning:disabled, .bp3-input.bp3-intent-warning.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
        .bp3-dark .bp3-input.bp3-intent-warning{
          -webkit-box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), 0 0 0 0 rgba(217, 130, 43, 0), inset 0 0 0 1px #d9822b, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-warning:focus{
            -webkit-box-shadow:0 0 0 1px #d9822b, 0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                    box-shadow:0 0 0 1px #d9822b, 0 0 0 1px #d9822b, 0 0 0 3px rgba(217, 130, 43, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-warning[readonly]{
            -webkit-box-shadow:inset 0 0 0 1px #d9822b;
                    box-shadow:inset 0 0 0 1px #d9822b; }
          .bp3-dark .bp3-input.bp3-intent-warning:disabled, .bp3-dark .bp3-input.bp3-intent-warning.bp3-disabled{
            -webkit-box-shadow:none;
                    box-shadow:none; }
      .bp3-input.bp3-intent-danger{
        -webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.15), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-danger:focus{
          -webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-input.bp3-intent-danger[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px #db3737;
                  box-shadow:inset 0 0 0 1px #db3737; }
        .bp3-input.bp3-intent-danger:disabled, .bp3-input.bp3-intent-danger.bp3-disabled{
          -webkit-box-shadow:none;
                  box-shadow:none; }
        .bp3-dark .bp3-input.bp3-intent-danger{
          -webkit-box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), 0 0 0 0 rgba(219, 55, 55, 0), inset 0 0 0 1px #db3737, inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-danger:focus{
            -webkit-box-shadow:0 0 0 1px #db3737, 0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                    box-shadow:0 0 0 1px #db3737, 0 0 0 1px #db3737, 0 0 0 3px rgba(219, 55, 55, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
          .bp3-dark .bp3-input.bp3-intent-danger[readonly]{
            -webkit-box-shadow:inset 0 0 0 1px #db3737;
                    box-shadow:inset 0 0 0 1px #db3737; }
          .bp3-dark .bp3-input.bp3-intent-danger:disabled, .bp3-dark .bp3-input.bp3-intent-danger.bp3-disabled{
            -webkit-box-shadow:none;
                    box-shadow:none; }
      .bp3-input::-ms-clear{
        display:none; }
    textarea.bp3-input{
      max-width:100%;
      padding:10px; }
      textarea.bp3-input, textarea.bp3-input.bp3-large, textarea.bp3-input.bp3-small{
        height:auto;
        line-height:inherit; }
      textarea.bp3-input.bp3-small{
        padding:8px; }
      .bp3-dark textarea.bp3-input{
        background:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), 0 0 0 0 rgba(19, 124, 189, 0), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
        .bp3-dark textarea.bp3-input::-webkit-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark textarea.bp3-input::-moz-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark textarea.bp3-input:-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark textarea.bp3-input::-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark textarea.bp3-input::placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark textarea.bp3-input:focus{
          -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark textarea.bp3-input[readonly]{
          -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark textarea.bp3-input:disabled, .bp3-dark textarea.bp3-input.bp3-disabled{
          background:rgba(57, 75, 89, 0.5);
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(167, 182, 194, 0.6); }
    label.bp3-label{
      display:block;
      margin-bottom:15px;
      margin-top:0; }
      label.bp3-label .bp3-html-select,
      label.bp3-label .bp3-input,
      label.bp3-label .bp3-select,
      label.bp3-label .bp3-slider,
      label.bp3-label .bp3-popover-wrapper{
        display:block;
        margin-top:5px;
        text-transform:none; }
      label.bp3-label .bp3-button-group{
        margin-top:5px; }
      label.bp3-label .bp3-select select,
      label.bp3-label .bp3-html-select select{
        font-weight:400;
        vertical-align:top;
        width:100%; }
      label.bp3-label.bp3-disabled,
      label.bp3-label.bp3-disabled .bp3-text-muted{
        color:rgba(92, 112, 128, 0.6); }
      label.bp3-label.bp3-inline{
        line-height:30px; }
        label.bp3-label.bp3-inline .bp3-html-select,
        label.bp3-label.bp3-inline .bp3-input,
        label.bp3-label.bp3-inline .bp3-input-group,
        label.bp3-label.bp3-inline .bp3-select,
        label.bp3-label.bp3-inline .bp3-popover-wrapper{
          display:inline-block;
          margin:0 0 0 5px;
          vertical-align:top; }
        label.bp3-label.bp3-inline .bp3-button-group{
          margin:0 0 0 5px; }
        label.bp3-label.bp3-inline .bp3-input-group .bp3-input{
          margin-left:0; }
        label.bp3-label.bp3-inline.bp3-large{
          line-height:40px; }
      label.bp3-label:not(.bp3-inline) .bp3-popover-target{
        display:block; }
      .bp3-dark label.bp3-label{
        color:#f5f8fa; }
        .bp3-dark label.bp3-label.bp3-disabled,
        .bp3-dark label.bp3-label.bp3-disabled .bp3-text-muted{
          color:rgba(167, 182, 194, 0.6); }
    .bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button{
      -webkit-box-flex:1;
          -ms-flex:1 1 14px;
              flex:1 1 14px;
      min-height:0;
      padding:0;
      width:30px; }
      .bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button:first-child{
        border-radius:0 3px 0 0; }
      .bp3-numeric-input .bp3-button-group.bp3-vertical > .bp3-button:last-child{
        border-radius:0 0 3px 0; }
    
    .bp3-numeric-input .bp3-button-group.bp3-vertical:first-child > .bp3-button:first-child{
      border-radius:3px 0 0 0; }
    
    .bp3-numeric-input .bp3-button-group.bp3-vertical:first-child > .bp3-button:last-child{
      border-radius:0 0 0 3px; }
    
    .bp3-numeric-input.bp3-large .bp3-button-group.bp3-vertical > .bp3-button{
      width:40px; }
    
    form{
      display:block; }
    .bp3-html-select select,
    .bp3-select select{
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      border:none;
      border-radius:3px;
      cursor:pointer;
      font-size:14px;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      padding:5px 10px;
      text-align:left;
      vertical-align:middle;
      background-color:#f5f8fa;
      background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
      background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
      -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
              box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
      color:#182026;
      -moz-appearance:none;
      -webkit-appearance:none;
      border-radius:3px;
      height:30px;
      padding:0 25px 0 10px;
      width:100%; }
      .bp3-html-select select > *, .bp3-select select > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-html-select select > .bp3-fill, .bp3-select select > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-html-select select::before,
      .bp3-select select::before, .bp3-html-select select > *, .bp3-select select > *{
        margin-right:7px; }
      .bp3-html-select select:empty::before,
      .bp3-select select:empty::before,
      .bp3-html-select select > :last-child,
      .bp3-select select > :last-child{
        margin-right:0; }
      .bp3-html-select select:hover,
      .bp3-select select:hover{
        background-clip:padding-box;
        background-color:#ebf1f5;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
      .bp3-html-select select:active,
      .bp3-select select:active, .bp3-html-select select.bp3-active,
      .bp3-select select.bp3-active{
        background-color:#d8e1e8;
        background-image:none;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-html-select select:disabled,
      .bp3-select select:disabled, .bp3-html-select select.bp3-disabled,
      .bp3-select select.bp3-disabled{
        background-color:rgba(206, 217, 224, 0.5);
        background-image:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed;
        outline:none; }
        .bp3-html-select select:disabled.bp3-active,
        .bp3-select select:disabled.bp3-active, .bp3-html-select select:disabled.bp3-active:hover,
        .bp3-select select:disabled.bp3-active:hover, .bp3-html-select select.bp3-disabled.bp3-active,
        .bp3-select select.bp3-disabled.bp3-active, .bp3-html-select select.bp3-disabled.bp3-active:hover,
        .bp3-select select.bp3-disabled.bp3-active:hover{
          background:rgba(206, 217, 224, 0.7); }
    
    .bp3-html-select.bp3-minimal select,
    .bp3-select.bp3-minimal select{
      background:none;
      -webkit-box-shadow:none;
              box-shadow:none; }
      .bp3-html-select.bp3-minimal select:hover,
      .bp3-select.bp3-minimal select:hover{
        background:rgba(167, 182, 194, 0.3);
        -webkit-box-shadow:none;
                box-shadow:none;
        color:#182026;
        text-decoration:none; }
      .bp3-html-select.bp3-minimal select:active,
      .bp3-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal select.bp3-active,
      .bp3-select.bp3-minimal select.bp3-active{
        background:rgba(115, 134, 148, 0.3);
        -webkit-box-shadow:none;
                box-shadow:none;
        color:#182026; }
      .bp3-html-select.bp3-minimal select:disabled,
      .bp3-select.bp3-minimal select:disabled, .bp3-html-select.bp3-minimal select:disabled:hover,
      .bp3-select.bp3-minimal select:disabled:hover, .bp3-html-select.bp3-minimal select.bp3-disabled,
      .bp3-select.bp3-minimal select.bp3-disabled, .bp3-html-select.bp3-minimal select.bp3-disabled:hover,
      .bp3-select.bp3-minimal select.bp3-disabled:hover{
        background:none;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed; }
        .bp3-html-select.bp3-minimal select:disabled.bp3-active,
        .bp3-select.bp3-minimal select:disabled.bp3-active, .bp3-html-select.bp3-minimal select:disabled:hover.bp3-active,
        .bp3-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-html-select.bp3-minimal select.bp3-disabled.bp3-active,
        .bp3-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-disabled:hover.bp3-active,
        .bp3-select.bp3-minimal select.bp3-disabled:hover.bp3-active{
          background:rgba(115, 134, 148, 0.3); }
      .bp3-dark .bp3-html-select.bp3-minimal select, .bp3-html-select.bp3-minimal .bp3-dark select,
      .bp3-dark .bp3-select.bp3-minimal select, .bp3-select.bp3-minimal .bp3-dark select{
        background:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        color:inherit; }
        .bp3-dark .bp3-html-select.bp3-minimal select:hover, .bp3-html-select.bp3-minimal .bp3-dark select:hover,
        .bp3-dark .bp3-select.bp3-minimal select:hover, .bp3-select.bp3-minimal .bp3-dark select:hover, .bp3-dark .bp3-html-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal .bp3-dark select:active,
        .bp3-dark .bp3-select.bp3-minimal select:active, .bp3-select.bp3-minimal .bp3-dark select:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-active,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-active{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none; }
        .bp3-dark .bp3-html-select.bp3-minimal select:hover, .bp3-html-select.bp3-minimal .bp3-dark select:hover,
        .bp3-dark .bp3-select.bp3-minimal select:hover, .bp3-select.bp3-minimal .bp3-dark select:hover{
          background:rgba(138, 155, 168, 0.15); }
        .bp3-dark .bp3-html-select.bp3-minimal select:active, .bp3-html-select.bp3-minimal .bp3-dark select:active,
        .bp3-dark .bp3-select.bp3-minimal select:active, .bp3-select.bp3-minimal .bp3-dark select:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-active,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-active{
          background:rgba(138, 155, 168, 0.3);
          color:#f5f8fa; }
        .bp3-dark .bp3-html-select.bp3-minimal select:disabled, .bp3-html-select.bp3-minimal .bp3-dark select:disabled,
        .bp3-dark .bp3-select.bp3-minimal select:disabled, .bp3-select.bp3-minimal .bp3-dark select:disabled, .bp3-dark .bp3-html-select.bp3-minimal select:disabled:hover, .bp3-html-select.bp3-minimal .bp3-dark select:disabled:hover,
        .bp3-dark .bp3-select.bp3-minimal select:disabled:hover, .bp3-select.bp3-minimal .bp3-dark select:disabled:hover, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled:hover,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-disabled:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled:hover{
          background:none;
          color:rgba(167, 182, 194, 0.6);
          cursor:not-allowed; }
          .bp3-dark .bp3-html-select.bp3-minimal select:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select:disabled.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select:disabled:hover.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select:disabled:hover.bp3-active, .bp3-select.bp3-minimal .bp3-dark select:disabled:hover.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-disabled:hover.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-disabled:hover.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-disabled:hover.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-disabled:hover.bp3-active{
            background:rgba(138, 155, 168, 0.3); }
      .bp3-html-select.bp3-minimal select.bp3-intent-primary,
      .bp3-select.bp3-minimal select.bp3-intent-primary{
        color:#106ba3; }
        .bp3-html-select.bp3-minimal select.bp3-intent-primary:hover,
        .bp3-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-html-select.bp3-minimal select.bp3-intent-primary:active,
        .bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#106ba3; }
        .bp3-html-select.bp3-minimal select.bp3-intent-primary:hover,
        .bp3-select.bp3-minimal select.bp3-intent-primary:hover{
          background:rgba(19, 124, 189, 0.15);
          color:#106ba3; }
        .bp3-html-select.bp3-minimal select.bp3-intent-primary:active,
        .bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active{
          background:rgba(19, 124, 189, 0.3);
          color:#106ba3; }
        .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled,
        .bp3-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled,
        .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled{
          background:none;
          color:rgba(16, 107, 163, 0.5); }
          .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active{
            background:rgba(19, 124, 189, 0.3); }
        .bp3-html-select.bp3-minimal select.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-primary .bp3-button-spinner .bp3-spinner-head{
          stroke:#106ba3; }
        .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary{
          color:#48aff0; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:hover,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:hover{
            background:rgba(19, 124, 189, 0.2);
            color:#48aff0; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-active{
            background:rgba(19, 124, 189, 0.3);
            color:#48aff0; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled{
            background:none;
            color:rgba(72, 175, 240, 0.5); }
            .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-primary.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-primary.bp3-disabled.bp3-active{
              background:rgba(19, 124, 189, 0.3); }
      .bp3-html-select.bp3-minimal select.bp3-intent-success,
      .bp3-select.bp3-minimal select.bp3-intent-success{
        color:#0d8050; }
        .bp3-html-select.bp3-minimal select.bp3-intent-success:hover,
        .bp3-select.bp3-minimal select.bp3-intent-success:hover, .bp3-html-select.bp3-minimal select.bp3-intent-success:active,
        .bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-success.bp3-active{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#0d8050; }
        .bp3-html-select.bp3-minimal select.bp3-intent-success:hover,
        .bp3-select.bp3-minimal select.bp3-intent-success:hover{
          background:rgba(15, 153, 96, 0.15);
          color:#0d8050; }
        .bp3-html-select.bp3-minimal select.bp3-intent-success:active,
        .bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-success.bp3-active{
          background:rgba(15, 153, 96, 0.3);
          color:#0d8050; }
        .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled,
        .bp3-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled,
        .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled{
          background:none;
          color:rgba(13, 128, 80, 0.5); }
          .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active{
            background:rgba(15, 153, 96, 0.3); }
        .bp3-html-select.bp3-minimal select.bp3-intent-success .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-success .bp3-button-spinner .bp3-spinner-head{
          stroke:#0d8050; }
        .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success{
          color:#3dcc91; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:hover,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:hover{
            background:rgba(15, 153, 96, 0.2);
            color:#3dcc91; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-active{
            background:rgba(15, 153, 96, 0.3);
            color:#3dcc91; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled{
            background:none;
            color:rgba(61, 204, 145, 0.5); }
            .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-success.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-success.bp3-disabled.bp3-active{
              background:rgba(15, 153, 96, 0.3); }
      .bp3-html-select.bp3-minimal select.bp3-intent-warning,
      .bp3-select.bp3-minimal select.bp3-intent-warning{
        color:#bf7326; }
        .bp3-html-select.bp3-minimal select.bp3-intent-warning:hover,
        .bp3-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-html-select.bp3-minimal select.bp3-intent-warning:active,
        .bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#bf7326; }
        .bp3-html-select.bp3-minimal select.bp3-intent-warning:hover,
        .bp3-select.bp3-minimal select.bp3-intent-warning:hover{
          background:rgba(217, 130, 43, 0.15);
          color:#bf7326; }
        .bp3-html-select.bp3-minimal select.bp3-intent-warning:active,
        .bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active{
          background:rgba(217, 130, 43, 0.3);
          color:#bf7326; }
        .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled,
        .bp3-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled,
        .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled{
          background:none;
          color:rgba(191, 115, 38, 0.5); }
          .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active{
            background:rgba(217, 130, 43, 0.3); }
        .bp3-html-select.bp3-minimal select.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-warning .bp3-button-spinner .bp3-spinner-head{
          stroke:#bf7326; }
        .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning{
          color:#ffb366; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:hover,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:hover{
            background:rgba(217, 130, 43, 0.2);
            color:#ffb366; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-active{
            background:rgba(217, 130, 43, 0.3);
            color:#ffb366; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled{
            background:none;
            color:rgba(255, 179, 102, 0.5); }
            .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-warning.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-warning.bp3-disabled.bp3-active{
              background:rgba(217, 130, 43, 0.3); }
      .bp3-html-select.bp3-minimal select.bp3-intent-danger,
      .bp3-select.bp3-minimal select.bp3-intent-danger{
        color:#c23030; }
        .bp3-html-select.bp3-minimal select.bp3-intent-danger:hover,
        .bp3-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-html-select.bp3-minimal select.bp3-intent-danger:active,
        .bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active{
          background:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:#c23030; }
        .bp3-html-select.bp3-minimal select.bp3-intent-danger:hover,
        .bp3-select.bp3-minimal select.bp3-intent-danger:hover{
          background:rgba(219, 55, 55, 0.15);
          color:#c23030; }
        .bp3-html-select.bp3-minimal select.bp3-intent-danger:active,
        .bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active,
        .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active{
          background:rgba(219, 55, 55, 0.3);
          color:#c23030; }
        .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled,
        .bp3-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled,
        .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled{
          background:none;
          color:rgba(194, 48, 48, 0.5); }
          .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active,
          .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active{
            background:rgba(219, 55, 55, 0.3); }
        .bp3-html-select.bp3-minimal select.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head, .bp3-select.bp3-minimal select.bp3-intent-danger .bp3-button-spinner .bp3-spinner-head{
          stroke:#c23030; }
        .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger,
        .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger{
          color:#ff7373; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:hover,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:hover, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:hover{
            background:rgba(219, 55, 55, 0.2);
            color:#ff7373; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-active,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-active{
            background:rgba(219, 55, 55, 0.3);
            color:#ff7373; }
          .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled,
          .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled{
            background:none;
            color:rgba(255, 115, 115, 0.5); }
            .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger:disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger:disabled.bp3-active, .bp3-dark .bp3-html-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active, .bp3-html-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled.bp3-active,
            .bp3-dark .bp3-select.bp3-minimal select.bp3-intent-danger.bp3-disabled.bp3-active, .bp3-select.bp3-minimal .bp3-dark select.bp3-intent-danger.bp3-disabled.bp3-active{
              background:rgba(219, 55, 55, 0.3); }
    
    .bp3-html-select.bp3-large select,
    .bp3-select.bp3-large select{
      font-size:16px;
      height:40px;
      padding-right:35px; }
    
    .bp3-dark .bp3-html-select select, .bp3-dark .bp3-select select{
      background-color:#394b59;
      background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
      background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
      color:#f5f8fa; }
      .bp3-dark .bp3-html-select select:hover, .bp3-dark .bp3-select select:hover, .bp3-dark .bp3-html-select select:active, .bp3-dark .bp3-select select:active, .bp3-dark .bp3-html-select select.bp3-active, .bp3-dark .bp3-select select.bp3-active{
        color:#f5f8fa; }
      .bp3-dark .bp3-html-select select:hover, .bp3-dark .bp3-select select:hover{
        background-color:#30404d;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-html-select select:active, .bp3-dark .bp3-select select:active, .bp3-dark .bp3-html-select select.bp3-active, .bp3-dark .bp3-select select.bp3-active{
        background-color:#202b33;
        background-image:none;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-html-select select:disabled, .bp3-dark .bp3-select select:disabled, .bp3-dark .bp3-html-select select.bp3-disabled, .bp3-dark .bp3-select select.bp3-disabled{
        background-color:rgba(57, 75, 89, 0.5);
        background-image:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-html-select select:disabled.bp3-active, .bp3-dark .bp3-select select:disabled.bp3-active, .bp3-dark .bp3-html-select select.bp3-disabled.bp3-active, .bp3-dark .bp3-select select.bp3-disabled.bp3-active{
          background:rgba(57, 75, 89, 0.7); }
      .bp3-dark .bp3-html-select select .bp3-button-spinner .bp3-spinner-head, .bp3-dark .bp3-select select .bp3-button-spinner .bp3-spinner-head{
        background:rgba(16, 22, 26, 0.5);
        stroke:#8a9ba8; }
    
    .bp3-html-select select:disabled,
    .bp3-select select:disabled{
      background-color:rgba(206, 217, 224, 0.5);
      -webkit-box-shadow:none;
              box-shadow:none;
      color:rgba(92, 112, 128, 0.6);
      cursor:not-allowed; }
    
    .bp3-html-select .bp3-icon,
    .bp3-select .bp3-icon, .bp3-select::after{
      color:#5c7080;
      pointer-events:none;
      position:absolute;
      right:7px;
      top:7px; }
      .bp3-html-select .bp3-disabled.bp3-icon,
      .bp3-select .bp3-disabled.bp3-icon, .bp3-disabled.bp3-select::after{
        color:rgba(92, 112, 128, 0.6); }
    .bp3-html-select,
    .bp3-select{
      display:inline-block;
      letter-spacing:normal;
      position:relative;
      vertical-align:middle; }
      .bp3-html-select select::-ms-expand,
      .bp3-select select::-ms-expand{
        display:none; }
      .bp3-html-select .bp3-icon,
      .bp3-select .bp3-icon{
        color:#5c7080; }
        .bp3-html-select .bp3-icon:hover,
        .bp3-select .bp3-icon:hover{
          color:#182026; }
        .bp3-dark .bp3-html-select .bp3-icon, .bp3-dark
        .bp3-select .bp3-icon{
          color:#a7b6c2; }
          .bp3-dark .bp3-html-select .bp3-icon:hover, .bp3-dark
          .bp3-select .bp3-icon:hover{
            color:#f5f8fa; }
      .bp3-html-select.bp3-large::after,
      .bp3-html-select.bp3-large .bp3-icon,
      .bp3-select.bp3-large::after,
      .bp3-select.bp3-large .bp3-icon{
        right:12px;
        top:12px; }
      .bp3-html-select.bp3-fill,
      .bp3-html-select.bp3-fill select,
      .bp3-select.bp3-fill,
      .bp3-select.bp3-fill select{
        width:100%; }
      .bp3-dark .bp3-html-select option, .bp3-dark
      .bp3-select option{
        background-color:#30404d;
        color:#f5f8fa; }
      .bp3-dark .bp3-html-select option:disabled, .bp3-dark
      .bp3-select option:disabled{
        color:rgba(167, 182, 194, 0.6); }
      .bp3-dark .bp3-html-select::after, .bp3-dark
      .bp3-select::after{
        color:#a7b6c2; }
    
    .bp3-select::after{
      font-family:"Icons16", sans-serif;
      font-size:16px;
      font-style:normal;
      font-weight:400;
      line-height:1;
      -moz-osx-font-smoothing:grayscale;
      -webkit-font-smoothing:antialiased;
      content:""; }
    .bp3-running-text table, table.bp3-html-table{
      border-spacing:0;
      font-size:14px; }
      .bp3-running-text table th, table.bp3-html-table th,
      .bp3-running-text table td,
      table.bp3-html-table td{
        padding:11px;
        text-align:left;
        vertical-align:top; }
      .bp3-running-text table th, table.bp3-html-table th{
        color:#182026;
        font-weight:600; }
      
      .bp3-running-text table td,
      table.bp3-html-table td{
        color:#182026; }
      .bp3-running-text table tbody tr:first-child th, table.bp3-html-table tbody tr:first-child th,
      .bp3-running-text table tbody tr:first-child td,
      table.bp3-html-table tbody tr:first-child td,
      .bp3-running-text table tfoot tr:first-child th,
      table.bp3-html-table tfoot tr:first-child th,
      .bp3-running-text table tfoot tr:first-child td,
      table.bp3-html-table tfoot tr:first-child td{
        -webkit-box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15);
                box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15); }
      .bp3-dark .bp3-running-text table th, .bp3-running-text .bp3-dark table th, .bp3-dark table.bp3-html-table th{
        color:#f5f8fa; }
      .bp3-dark .bp3-running-text table td, .bp3-running-text .bp3-dark table td, .bp3-dark table.bp3-html-table td{
        color:#f5f8fa; }
      .bp3-dark .bp3-running-text table tbody tr:first-child th, .bp3-running-text .bp3-dark table tbody tr:first-child th, .bp3-dark table.bp3-html-table tbody tr:first-child th,
      .bp3-dark .bp3-running-text table tbody tr:first-child td,
      .bp3-running-text .bp3-dark table tbody tr:first-child td,
      .bp3-dark table.bp3-html-table tbody tr:first-child td,
      .bp3-dark .bp3-running-text table tfoot tr:first-child th,
      .bp3-running-text .bp3-dark table tfoot tr:first-child th,
      .bp3-dark table.bp3-html-table tfoot tr:first-child th,
      .bp3-dark .bp3-running-text table tfoot tr:first-child td,
      .bp3-running-text .bp3-dark table tfoot tr:first-child td,
      .bp3-dark table.bp3-html-table tfoot tr:first-child td{
        -webkit-box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15);
                box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15); }
    
    table.bp3-html-table.bp3-html-table-condensed th,
    table.bp3-html-table.bp3-html-table-condensed td, table.bp3-html-table.bp3-small th,
    table.bp3-html-table.bp3-small td{
      padding-bottom:6px;
      padding-top:6px; }
    
    table.bp3-html-table.bp3-html-table-striped tbody tr:nth-child(odd) td{
      background:rgba(191, 204, 214, 0.15); }
    
    table.bp3-html-table.bp3-html-table-bordered th:not(:first-child){
      -webkit-box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15);
              box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15); }
    
    table.bp3-html-table.bp3-html-table-bordered tbody tr td,
    table.bp3-html-table.bp3-html-table-bordered tfoot tr td{
      -webkit-box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15);
              box-shadow:inset 0 1px 0 0 rgba(16, 22, 26, 0.15); }
      table.bp3-html-table.bp3-html-table-bordered tbody tr td:not(:first-child),
      table.bp3-html-table.bp3-html-table-bordered tfoot tr td:not(:first-child){
        -webkit-box-shadow:inset 1px 1px 0 0 rgba(16, 22, 26, 0.15);
                box-shadow:inset 1px 1px 0 0 rgba(16, 22, 26, 0.15); }
    
    table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td{
      -webkit-box-shadow:none;
              box-shadow:none; }
      table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td:not(:first-child){
        -webkit-box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15);
                box-shadow:inset 1px 0 0 0 rgba(16, 22, 26, 0.15); }
    
    table.bp3-html-table.bp3-interactive tbody tr:hover td{
      background-color:rgba(191, 204, 214, 0.3);
      cursor:pointer; }
    
    table.bp3-html-table.bp3-interactive tbody tr:active td{
      background-color:rgba(191, 204, 214, 0.4); }
    
    .bp3-dark table.bp3-html-table{ }
      .bp3-dark table.bp3-html-table.bp3-html-table-striped tbody tr:nth-child(odd) td{
        background:rgba(92, 112, 128, 0.15); }
      .bp3-dark table.bp3-html-table.bp3-html-table-bordered th:not(:first-child){
        -webkit-box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15);
                box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15); }
      .bp3-dark table.bp3-html-table.bp3-html-table-bordered tbody tr td,
      .bp3-dark table.bp3-html-table.bp3-html-table-bordered tfoot tr td{
        -webkit-box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15);
                box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.15); }
        .bp3-dark table.bp3-html-table.bp3-html-table-bordered tbody tr td:not(:first-child),
        .bp3-dark table.bp3-html-table.bp3-html-table-bordered tfoot tr td:not(:first-child){
          -webkit-box-shadow:inset 1px 1px 0 0 rgba(255, 255, 255, 0.15);
                  box-shadow:inset 1px 1px 0 0 rgba(255, 255, 255, 0.15); }
      .bp3-dark table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td{
        -webkit-box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15);
                box-shadow:inset 1px 0 0 0 rgba(255, 255, 255, 0.15); }
        .bp3-dark table.bp3-html-table.bp3-html-table-bordered.bp3-html-table-striped tbody tr:not(:first-child) td:first-child{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-dark table.bp3-html-table.bp3-interactive tbody tr:hover td{
        background-color:rgba(92, 112, 128, 0.3);
        cursor:pointer; }
      .bp3-dark table.bp3-html-table.bp3-interactive tbody tr:active td{
        background-color:rgba(92, 112, 128, 0.4); }
    
    .bp3-key-combo{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center; }
      .bp3-key-combo > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-key-combo > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-key-combo::before,
      .bp3-key-combo > *{
        margin-right:5px; }
      .bp3-key-combo:empty::before,
      .bp3-key-combo > :last-child{
        margin-right:0; }
    
    .bp3-hotkey-dialog{
      padding-bottom:0;
      top:40px; }
      .bp3-hotkey-dialog .bp3-dialog-body{
        margin:0;
        padding:0; }
      .bp3-hotkey-dialog .bp3-hotkey-label{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1; }
    
    .bp3-hotkey-column{
      margin:auto;
      max-height:80vh;
      overflow-y:auto;
      padding:30px; }
      .bp3-hotkey-column .bp3-heading{
        margin-bottom:20px; }
        .bp3-hotkey-column .bp3-heading:not(:first-child){
          margin-top:40px; }
    
    .bp3-hotkey{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-pack:justify;
          -ms-flex-pack:justify;
              justify-content:space-between;
      margin-left:0;
      margin-right:0; }
      .bp3-hotkey:not(:last-child){
        margin-bottom:10px; }
    .bp3-icon{
      display:inline-block;
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      vertical-align:text-bottom; }
      .bp3-icon:not(:empty)::before{
        content:"" !important;
        content:unset !important; }
      .bp3-icon > svg{
        display:block; }
        .bp3-icon > svg:not([fill]){
          fill:currentColor; }
    
    .bp3-icon.bp3-intent-primary, .bp3-icon-standard.bp3-intent-primary, .bp3-icon-large.bp3-intent-primary{
      color:#106ba3; }
      .bp3-dark .bp3-icon.bp3-intent-primary, .bp3-dark .bp3-icon-standard.bp3-intent-primary, .bp3-dark .bp3-icon-large.bp3-intent-primary{
        color:#48aff0; }
    
    .bp3-icon.bp3-intent-success, .bp3-icon-standard.bp3-intent-success, .bp3-icon-large.bp3-intent-success{
      color:#0d8050; }
      .bp3-dark .bp3-icon.bp3-intent-success, .bp3-dark .bp3-icon-standard.bp3-intent-success, .bp3-dark .bp3-icon-large.bp3-intent-success{
        color:#3dcc91; }
    
    .bp3-icon.bp3-intent-warning, .bp3-icon-standard.bp3-intent-warning, .bp3-icon-large.bp3-intent-warning{
      color:#bf7326; }
      .bp3-dark .bp3-icon.bp3-intent-warning, .bp3-dark .bp3-icon-standard.bp3-intent-warning, .bp3-dark .bp3-icon-large.bp3-intent-warning{
        color:#ffb366; }
    
    .bp3-icon.bp3-intent-danger, .bp3-icon-standard.bp3-intent-danger, .bp3-icon-large.bp3-intent-danger{
      color:#c23030; }
      .bp3-dark .bp3-icon.bp3-intent-danger, .bp3-dark .bp3-icon-standard.bp3-intent-danger, .bp3-dark .bp3-icon-large.bp3-intent-danger{
        color:#ff7373; }
    
    span.bp3-icon-standard{
      font-family:"Icons16", sans-serif;
      font-size:16px;
      font-style:normal;
      font-weight:400;
      line-height:1;
      -moz-osx-font-smoothing:grayscale;
      -webkit-font-smoothing:antialiased;
      display:inline-block; }
    
    span.bp3-icon-large{
      font-family:"Icons20", sans-serif;
      font-size:20px;
      font-style:normal;
      font-weight:400;
      line-height:1;
      -moz-osx-font-smoothing:grayscale;
      -webkit-font-smoothing:antialiased;
      display:inline-block; }
    
    span.bp3-icon:empty{
      font-family:"Icons20";
      font-size:inherit;
      font-style:normal;
      font-weight:400;
      line-height:1; }
      span.bp3-icon:empty::before{
        -moz-osx-font-smoothing:grayscale;
        -webkit-font-smoothing:antialiased; }
    
    .bp3-icon-add::before{
      content:""; }
    
    .bp3-icon-add-column-left::before{
      content:""; }
    
    .bp3-icon-add-column-right::before{
      content:""; }
    
    .bp3-icon-add-row-bottom::before{
      content:""; }
    
    .bp3-icon-add-row-top::before{
      content:""; }
    
    .bp3-icon-add-to-artifact::before{
      content:""; }
    
    .bp3-icon-add-to-folder::before{
      content:""; }
    
    .bp3-icon-airplane::before{
      content:""; }
    
    .bp3-icon-align-center::before{
      content:""; }
    
    .bp3-icon-align-justify::before{
      content:""; }
    
    .bp3-icon-align-left::before{
      content:""; }
    
    .bp3-icon-align-right::before{
      content:""; }
    
    .bp3-icon-alignment-bottom::before{
      content:""; }
    
    .bp3-icon-alignment-horizontal-center::before{
      content:""; }
    
    .bp3-icon-alignment-left::before{
      content:""; }
    
    .bp3-icon-alignment-right::before{
      content:""; }
    
    .bp3-icon-alignment-top::before{
      content:""; }
    
    .bp3-icon-alignment-vertical-center::before{
      content:""; }
    
    .bp3-icon-annotation::before{
      content:""; }
    
    .bp3-icon-application::before{
      content:""; }
    
    .bp3-icon-applications::before{
      content:""; }
    
    .bp3-icon-archive::before{
      content:""; }
    
    .bp3-icon-arrow-bottom-left::before{
      content:"↙"; }
    
    .bp3-icon-arrow-bottom-right::before{
      content:"↘"; }
    
    .bp3-icon-arrow-down::before{
      content:"↓"; }
    
    .bp3-icon-arrow-left::before{
      content:"←"; }
    
    .bp3-icon-arrow-right::before{
      content:"→"; }
    
    .bp3-icon-arrow-top-left::before{
      content:"↖"; }
    
    .bp3-icon-arrow-top-right::before{
      content:"↗"; }
    
    .bp3-icon-arrow-up::before{
      content:"↑"; }
    
    .bp3-icon-arrows-horizontal::before{
      content:"↔"; }
    
    .bp3-icon-arrows-vertical::before{
      content:"↕"; }
    
    .bp3-icon-asterisk::before{
      content:"*"; }
    
    .bp3-icon-automatic-updates::before{
      content:""; }
    
    .bp3-icon-badge::before{
      content:""; }
    
    .bp3-icon-ban-circle::before{
      content:""; }
    
    .bp3-icon-bank-account::before{
      content:""; }
    
    .bp3-icon-barcode::before{
      content:""; }
    
    .bp3-icon-blank::before{
      content:""; }
    
    .bp3-icon-blocked-person::before{
      content:""; }
    
    .bp3-icon-bold::before{
      content:""; }
    
    .bp3-icon-book::before{
      content:""; }
    
    .bp3-icon-bookmark::before{
      content:""; }
    
    .bp3-icon-box::before{
      content:""; }
    
    .bp3-icon-briefcase::before{
      content:""; }
    
    .bp3-icon-bring-data::before{
      content:""; }
    
    .bp3-icon-build::before{
      content:""; }
    
    .bp3-icon-calculator::before{
      content:""; }
    
    .bp3-icon-calendar::before{
      content:""; }
    
    .bp3-icon-camera::before{
      content:""; }
    
    .bp3-icon-caret-down::before{
      content:"⌄"; }
    
    .bp3-icon-caret-left::before{
      content:"〈"; }
    
    .bp3-icon-caret-right::before{
      content:"〉"; }
    
    .bp3-icon-caret-up::before{
      content:"⌃"; }
    
    .bp3-icon-cell-tower::before{
      content:""; }
    
    .bp3-icon-changes::before{
      content:""; }
    
    .bp3-icon-chart::before{
      content:""; }
    
    .bp3-icon-chat::before{
      content:""; }
    
    .bp3-icon-chevron-backward::before{
      content:""; }
    
    .bp3-icon-chevron-down::before{
      content:""; }
    
    .bp3-icon-chevron-forward::before{
      content:""; }
    
    .bp3-icon-chevron-left::before{
      content:""; }
    
    .bp3-icon-chevron-right::before{
      content:""; }
    
    .bp3-icon-chevron-up::before{
      content:""; }
    
    .bp3-icon-circle::before{
      content:""; }
    
    .bp3-icon-circle-arrow-down::before{
      content:""; }
    
    .bp3-icon-circle-arrow-left::before{
      content:""; }
    
    .bp3-icon-circle-arrow-right::before{
      content:""; }
    
    .bp3-icon-circle-arrow-up::before{
      content:""; }
    
    .bp3-icon-citation::before{
      content:""; }
    
    .bp3-icon-clean::before{
      content:""; }
    
    .bp3-icon-clipboard::before{
      content:""; }
    
    .bp3-icon-cloud::before{
      content:"☁"; }
    
    .bp3-icon-cloud-download::before{
      content:""; }
    
    .bp3-icon-cloud-upload::before{
      content:""; }
    
    .bp3-icon-code::before{
      content:""; }
    
    .bp3-icon-code-block::before{
      content:""; }
    
    .bp3-icon-cog::before{
      content:""; }
    
    .bp3-icon-collapse-all::before{
      content:""; }
    
    .bp3-icon-column-layout::before{
      content:""; }
    
    .bp3-icon-comment::before{
      content:""; }
    
    .bp3-icon-comparison::before{
      content:""; }
    
    .bp3-icon-compass::before{
      content:""; }
    
    .bp3-icon-compressed::before{
      content:""; }
    
    .bp3-icon-confirm::before{
      content:""; }
    
    .bp3-icon-console::before{
      content:""; }
    
    .bp3-icon-contrast::before{
      content:""; }
    
    .bp3-icon-control::before{
      content:""; }
    
    .bp3-icon-credit-card::before{
      content:""; }
    
    .bp3-icon-cross::before{
      content:"✗"; }
    
    .bp3-icon-crown::before{
      content:""; }
    
    .bp3-icon-cube::before{
      content:""; }
    
    .bp3-icon-cube-add::before{
      content:""; }
    
    .bp3-icon-cube-remove::before{
      content:""; }
    
    .bp3-icon-curved-range-chart::before{
      content:""; }
    
    .bp3-icon-cut::before{
      content:""; }
    
    .bp3-icon-dashboard::before{
      content:""; }
    
    .bp3-icon-data-lineage::before{
      content:""; }
    
    .bp3-icon-database::before{
      content:""; }
    
    .bp3-icon-delete::before{
      content:""; }
    
    .bp3-icon-delta::before{
      content:"Δ"; }
    
    .bp3-icon-derive-column::before{
      content:""; }
    
    .bp3-icon-desktop::before{
      content:""; }
    
    .bp3-icon-diagnosis::before{
      content:""; }
    
    .bp3-icon-diagram-tree::before{
      content:""; }
    
    .bp3-icon-direction-left::before{
      content:""; }
    
    .bp3-icon-direction-right::before{
      content:""; }
    
    .bp3-icon-disable::before{
      content:""; }
    
    .bp3-icon-document::before{
      content:""; }
    
    .bp3-icon-document-open::before{
      content:""; }
    
    .bp3-icon-document-share::before{
      content:""; }
    
    .bp3-icon-dollar::before{
      content:"$"; }
    
    .bp3-icon-dot::before{
      content:"•"; }
    
    .bp3-icon-double-caret-horizontal::before{
      content:""; }
    
    .bp3-icon-double-caret-vertical::before{
      content:""; }
    
    .bp3-icon-double-chevron-down::before{
      content:""; }
    
    .bp3-icon-double-chevron-left::before{
      content:""; }
    
    .bp3-icon-double-chevron-right::before{
      content:""; }
    
    .bp3-icon-double-chevron-up::before{
      content:""; }
    
    .bp3-icon-doughnut-chart::before{
      content:""; }
    
    .bp3-icon-download::before{
      content:""; }
    
    .bp3-icon-drag-handle-horizontal::before{
      content:""; }
    
    .bp3-icon-drag-handle-vertical::before{
      content:""; }
    
    .bp3-icon-draw::before{
      content:""; }
    
    .bp3-icon-drive-time::before{
      content:""; }
    
    .bp3-icon-duplicate::before{
      content:""; }
    
    .bp3-icon-edit::before{
      content:"✎"; }
    
    .bp3-icon-eject::before{
      content:"⏏"; }
    
    .bp3-icon-endorsed::before{
      content:""; }
    
    .bp3-icon-envelope::before{
      content:"✉"; }
    
    .bp3-icon-equals::before{
      content:""; }
    
    .bp3-icon-eraser::before{
      content:""; }
    
    .bp3-icon-error::before{
      content:""; }
    
    .bp3-icon-euro::before{
      content:"€"; }
    
    .bp3-icon-exchange::before{
      content:""; }
    
    .bp3-icon-exclude-row::before{
      content:""; }
    
    .bp3-icon-expand-all::before{
      content:""; }
    
    .bp3-icon-export::before{
      content:""; }
    
    .bp3-icon-eye-off::before{
      content:""; }
    
    .bp3-icon-eye-on::before{
      content:""; }
    
    .bp3-icon-eye-open::before{
      content:""; }
    
    .bp3-icon-fast-backward::before{
      content:""; }
    
    .bp3-icon-fast-forward::before{
      content:""; }
    
    .bp3-icon-feed::before{
      content:""; }
    
    .bp3-icon-feed-subscribed::before{
      content:""; }
    
    .bp3-icon-film::before{
      content:""; }
    
    .bp3-icon-filter::before{
      content:""; }
    
    .bp3-icon-filter-keep::before{
      content:""; }
    
    .bp3-icon-filter-list::before{
      content:""; }
    
    .bp3-icon-filter-open::before{
      content:""; }
    
    .bp3-icon-filter-remove::before{
      content:""; }
    
    .bp3-icon-flag::before{
      content:"⚑"; }
    
    .bp3-icon-flame::before{
      content:""; }
    
    .bp3-icon-flash::before{
      content:""; }
    
    .bp3-icon-floppy-disk::before{
      content:""; }
    
    .bp3-icon-flow-branch::before{
      content:""; }
    
    .bp3-icon-flow-end::before{
      content:""; }
    
    .bp3-icon-flow-linear::before{
      content:""; }
    
    .bp3-icon-flow-review::before{
      content:""; }
    
    .bp3-icon-flow-review-branch::before{
      content:""; }
    
    .bp3-icon-flows::before{
      content:""; }
    
    .bp3-icon-folder-close::before{
      content:""; }
    
    .bp3-icon-folder-new::before{
      content:""; }
    
    .bp3-icon-folder-open::before{
      content:""; }
    
    .bp3-icon-folder-shared::before{
      content:""; }
    
    .bp3-icon-folder-shared-open::before{
      content:""; }
    
    .bp3-icon-follower::before{
      content:""; }
    
    .bp3-icon-following::before{
      content:""; }
    
    .bp3-icon-font::before{
      content:""; }
    
    .bp3-icon-fork::before{
      content:""; }
    
    .bp3-icon-form::before{
      content:""; }
    
    .bp3-icon-full-circle::before{
      content:""; }
    
    .bp3-icon-full-stacked-chart::before{
      content:""; }
    
    .bp3-icon-fullscreen::before{
      content:""; }
    
    .bp3-icon-function::before{
      content:""; }
    
    .bp3-icon-gantt-chart::before{
      content:""; }
    
    .bp3-icon-geolocation::before{
      content:""; }
    
    .bp3-icon-geosearch::before{
      content:""; }
    
    .bp3-icon-git-branch::before{
      content:""; }
    
    .bp3-icon-git-commit::before{
      content:""; }
    
    .bp3-icon-git-merge::before{
      content:""; }
    
    .bp3-icon-git-new-branch::before{
      content:""; }
    
    .bp3-icon-git-pull::before{
      content:""; }
    
    .bp3-icon-git-push::before{
      content:""; }
    
    .bp3-icon-git-repo::before{
      content:""; }
    
    .bp3-icon-glass::before{
      content:""; }
    
    .bp3-icon-globe::before{
      content:""; }
    
    .bp3-icon-globe-network::before{
      content:""; }
    
    .bp3-icon-graph::before{
      content:""; }
    
    .bp3-icon-graph-remove::before{
      content:""; }
    
    .bp3-icon-greater-than::before{
      content:""; }
    
    .bp3-icon-greater-than-or-equal-to::before{
      content:""; }
    
    .bp3-icon-grid::before{
      content:""; }
    
    .bp3-icon-grid-view::before{
      content:""; }
    
    .bp3-icon-group-objects::before{
      content:""; }
    
    .bp3-icon-grouped-bar-chart::before{
      content:""; }
    
    .bp3-icon-hand::before{
      content:""; }
    
    .bp3-icon-hand-down::before{
      content:""; }
    
    .bp3-icon-hand-left::before{
      content:""; }
    
    .bp3-icon-hand-right::before{
      content:""; }
    
    .bp3-icon-hand-up::before{
      content:""; }
    
    .bp3-icon-header::before{
      content:""; }
    
    .bp3-icon-header-one::before{
      content:""; }
    
    .bp3-icon-header-two::before{
      content:""; }
    
    .bp3-icon-headset::before{
      content:""; }
    
    .bp3-icon-heart::before{
      content:"♥"; }
    
    .bp3-icon-heart-broken::before{
      content:""; }
    
    .bp3-icon-heat-grid::before{
      content:""; }
    
    .bp3-icon-heatmap::before{
      content:""; }
    
    .bp3-icon-help::before{
      content:"?"; }
    
    .bp3-icon-helper-management::before{
      content:""; }
    
    .bp3-icon-highlight::before{
      content:""; }
    
    .bp3-icon-history::before{
      content:""; }
    
    .bp3-icon-home::before{
      content:"⌂"; }
    
    .bp3-icon-horizontal-bar-chart::before{
      content:""; }
    
    .bp3-icon-horizontal-bar-chart-asc::before{
      content:""; }
    
    .bp3-icon-horizontal-bar-chart-desc::before{
      content:""; }
    
    .bp3-icon-horizontal-distribution::before{
      content:""; }
    
    .bp3-icon-id-number::before{
      content:""; }
    
    .bp3-icon-image-rotate-left::before{
      content:""; }
    
    .bp3-icon-image-rotate-right::before{
      content:""; }
    
    .bp3-icon-import::before{
      content:""; }
    
    .bp3-icon-inbox::before{
      content:""; }
    
    .bp3-icon-inbox-filtered::before{
      content:""; }
    
    .bp3-icon-inbox-geo::before{
      content:""; }
    
    .bp3-icon-inbox-search::before{
      content:""; }
    
    .bp3-icon-inbox-update::before{
      content:""; }
    
    .bp3-icon-info-sign::before{
      content:"ℹ"; }
    
    .bp3-icon-inheritance::before{
      content:""; }
    
    .bp3-icon-inner-join::before{
      content:""; }
    
    .bp3-icon-insert::before{
      content:""; }
    
    .bp3-icon-intersection::before{
      content:""; }
    
    .bp3-icon-ip-address::before{
      content:""; }
    
    .bp3-icon-issue::before{
      content:""; }
    
    .bp3-icon-issue-closed::before{
      content:""; }
    
    .bp3-icon-issue-new::before{
      content:""; }
    
    .bp3-icon-italic::before{
      content:""; }
    
    .bp3-icon-join-table::before{
      content:""; }
    
    .bp3-icon-key::before{
      content:""; }
    
    .bp3-icon-key-backspace::before{
      content:""; }
    
    .bp3-icon-key-command::before{
      content:""; }
    
    .bp3-icon-key-control::before{
      content:""; }
    
    .bp3-icon-key-delete::before{
      content:""; }
    
    .bp3-icon-key-enter::before{
      content:""; }
    
    .bp3-icon-key-escape::before{
      content:""; }
    
    .bp3-icon-key-option::before{
      content:""; }
    
    .bp3-icon-key-shift::before{
      content:""; }
    
    .bp3-icon-key-tab::before{
      content:""; }
    
    .bp3-icon-known-vehicle::before{
      content:""; }
    
    .bp3-icon-lab-test::before{
      content:""; }
    
    .bp3-icon-label::before{
      content:""; }
    
    .bp3-icon-layer::before{
      content:""; }
    
    .bp3-icon-layers::before{
      content:""; }
    
    .bp3-icon-layout::before{
      content:""; }
    
    .bp3-icon-layout-auto::before{
      content:""; }
    
    .bp3-icon-layout-balloon::before{
      content:""; }
    
    .bp3-icon-layout-circle::before{
      content:""; }
    
    .bp3-icon-layout-grid::before{
      content:""; }
    
    .bp3-icon-layout-group-by::before{
      content:""; }
    
    .bp3-icon-layout-hierarchy::before{
      content:""; }
    
    .bp3-icon-layout-linear::before{
      content:""; }
    
    .bp3-icon-layout-skew-grid::before{
      content:""; }
    
    .bp3-icon-layout-sorted-clusters::before{
      content:""; }
    
    .bp3-icon-learning::before{
      content:""; }
    
    .bp3-icon-left-join::before{
      content:""; }
    
    .bp3-icon-less-than::before{
      content:""; }
    
    .bp3-icon-less-than-or-equal-to::before{
      content:""; }
    
    .bp3-icon-lifesaver::before{
      content:""; }
    
    .bp3-icon-lightbulb::before{
      content:""; }
    
    .bp3-icon-link::before{
      content:""; }
    
    .bp3-icon-list::before{
      content:"☰"; }
    
    .bp3-icon-list-columns::before{
      content:""; }
    
    .bp3-icon-list-detail-view::before{
      content:""; }
    
    .bp3-icon-locate::before{
      content:""; }
    
    .bp3-icon-lock::before{
      content:""; }
    
    .bp3-icon-log-in::before{
      content:""; }
    
    .bp3-icon-log-out::before{
      content:""; }
    
    .bp3-icon-manual::before{
      content:""; }
    
    .bp3-icon-manually-entered-data::before{
      content:""; }
    
    .bp3-icon-map::before{
      content:""; }
    
    .bp3-icon-map-create::before{
      content:""; }
    
    .bp3-icon-map-marker::before{
      content:""; }
    
    .bp3-icon-maximize::before{
      content:""; }
    
    .bp3-icon-media::before{
      content:""; }
    
    .bp3-icon-menu::before{
      content:""; }
    
    .bp3-icon-menu-closed::before{
      content:""; }
    
    .bp3-icon-menu-open::before{
      content:""; }
    
    .bp3-icon-merge-columns::before{
      content:""; }
    
    .bp3-icon-merge-links::before{
      content:""; }
    
    .bp3-icon-minimize::before{
      content:""; }
    
    .bp3-icon-minus::before{
      content:"−"; }
    
    .bp3-icon-mobile-phone::before{
      content:""; }
    
    .bp3-icon-mobile-video::before{
      content:""; }
    
    .bp3-icon-moon::before{
      content:""; }
    
    .bp3-icon-more::before{
      content:""; }
    
    .bp3-icon-mountain::before{
      content:""; }
    
    .bp3-icon-move::before{
      content:""; }
    
    .bp3-icon-mugshot::before{
      content:""; }
    
    .bp3-icon-multi-select::before{
      content:""; }
    
    .bp3-icon-music::before{
      content:""; }
    
    .bp3-icon-new-drawing::before{
      content:""; }
    
    .bp3-icon-new-grid-item::before{
      content:""; }
    
    .bp3-icon-new-layer::before{
      content:""; }
    
    .bp3-icon-new-layers::before{
      content:""; }
    
    .bp3-icon-new-link::before{
      content:""; }
    
    .bp3-icon-new-object::before{
      content:""; }
    
    .bp3-icon-new-person::before{
      content:""; }
    
    .bp3-icon-new-prescription::before{
      content:""; }
    
    .bp3-icon-new-text-box::before{
      content:""; }
    
    .bp3-icon-ninja::before{
      content:""; }
    
    .bp3-icon-not-equal-to::before{
      content:""; }
    
    .bp3-icon-notifications::before{
      content:""; }
    
    .bp3-icon-notifications-updated::before{
      content:""; }
    
    .bp3-icon-numbered-list::before{
      content:""; }
    
    .bp3-icon-numerical::before{
      content:""; }
    
    .bp3-icon-office::before{
      content:""; }
    
    .bp3-icon-offline::before{
      content:""; }
    
    .bp3-icon-oil-field::before{
      content:""; }
    
    .bp3-icon-one-column::before{
      content:""; }
    
    .bp3-icon-outdated::before{
      content:""; }
    
    .bp3-icon-page-layout::before{
      content:""; }
    
    .bp3-icon-panel-stats::before{
      content:""; }
    
    .bp3-icon-panel-table::before{
      content:""; }
    
    .bp3-icon-paperclip::before{
      content:""; }
    
    .bp3-icon-paragraph::before{
      content:""; }
    
    .bp3-icon-path::before{
      content:""; }
    
    .bp3-icon-path-search::before{
      content:""; }
    
    .bp3-icon-pause::before{
      content:""; }
    
    .bp3-icon-people::before{
      content:""; }
    
    .bp3-icon-percentage::before{
      content:""; }
    
    .bp3-icon-person::before{
      content:""; }
    
    .bp3-icon-phone::before{
      content:"☎"; }
    
    .bp3-icon-pie-chart::before{
      content:""; }
    
    .bp3-icon-pin::before{
      content:""; }
    
    .bp3-icon-pivot::before{
      content:""; }
    
    .bp3-icon-pivot-table::before{
      content:""; }
    
    .bp3-icon-play::before{
      content:""; }
    
    .bp3-icon-plus::before{
      content:"+"; }
    
    .bp3-icon-polygon-filter::before{
      content:""; }
    
    .bp3-icon-power::before{
      content:""; }
    
    .bp3-icon-predictive-analysis::before{
      content:""; }
    
    .bp3-icon-prescription::before{
      content:""; }
    
    .bp3-icon-presentation::before{
      content:""; }
    
    .bp3-icon-print::before{
      content:"⎙"; }
    
    .bp3-icon-projects::before{
      content:""; }
    
    .bp3-icon-properties::before{
      content:""; }
    
    .bp3-icon-property::before{
      content:""; }
    
    .bp3-icon-publish-function::before{
      content:""; }
    
    .bp3-icon-pulse::before{
      content:""; }
    
    .bp3-icon-random::before{
      content:""; }
    
    .bp3-icon-record::before{
      content:""; }
    
    .bp3-icon-redo::before{
      content:""; }
    
    .bp3-icon-refresh::before{
      content:""; }
    
    .bp3-icon-regression-chart::before{
      content:""; }
    
    .bp3-icon-remove::before{
      content:""; }
    
    .bp3-icon-remove-column::before{
      content:""; }
    
    .bp3-icon-remove-column-left::before{
      content:""; }
    
    .bp3-icon-remove-column-right::before{
      content:""; }
    
    .bp3-icon-remove-row-bottom::before{
      content:""; }
    
    .bp3-icon-remove-row-top::before{
      content:""; }
    
    .bp3-icon-repeat::before{
      content:""; }
    
    .bp3-icon-reset::before{
      content:""; }
    
    .bp3-icon-resolve::before{
      content:""; }
    
    .bp3-icon-rig::before{
      content:""; }
    
    .bp3-icon-right-join::before{
      content:""; }
    
    .bp3-icon-ring::before{
      content:""; }
    
    .bp3-icon-rotate-document::before{
      content:""; }
    
    .bp3-icon-rotate-page::before{
      content:""; }
    
    .bp3-icon-satellite::before{
      content:""; }
    
    .bp3-icon-saved::before{
      content:""; }
    
    .bp3-icon-scatter-plot::before{
      content:""; }
    
    .bp3-icon-search::before{
      content:""; }
    
    .bp3-icon-search-around::before{
      content:""; }
    
    .bp3-icon-search-template::before{
      content:""; }
    
    .bp3-icon-search-text::before{
      content:""; }
    
    .bp3-icon-segmented-control::before{
      content:""; }
    
    .bp3-icon-select::before{
      content:""; }
    
    .bp3-icon-selection::before{
      content:"⦿"; }
    
    .bp3-icon-send-to::before{
      content:""; }
    
    .bp3-icon-send-to-graph::before{
      content:""; }
    
    .bp3-icon-send-to-map::before{
      content:""; }
    
    .bp3-icon-series-add::before{
      content:""; }
    
    .bp3-icon-series-configuration::before{
      content:""; }
    
    .bp3-icon-series-derived::before{
      content:""; }
    
    .bp3-icon-series-filtered::before{
      content:""; }
    
    .bp3-icon-series-search::before{
      content:""; }
    
    .bp3-icon-settings::before{
      content:""; }
    
    .bp3-icon-share::before{
      content:""; }
    
    .bp3-icon-shield::before{
      content:""; }
    
    .bp3-icon-shop::before{
      content:""; }
    
    .bp3-icon-shopping-cart::before{
      content:""; }
    
    .bp3-icon-signal-search::before{
      content:""; }
    
    .bp3-icon-sim-card::before{
      content:""; }
    
    .bp3-icon-slash::before{
      content:""; }
    
    .bp3-icon-small-cross::before{
      content:""; }
    
    .bp3-icon-small-minus::before{
      content:""; }
    
    .bp3-icon-small-plus::before{
      content:""; }
    
    .bp3-icon-small-tick::before{
      content:""; }
    
    .bp3-icon-snowflake::before{
      content:""; }
    
    .bp3-icon-social-media::before{
      content:""; }
    
    .bp3-icon-sort::before{
      content:""; }
    
    .bp3-icon-sort-alphabetical::before{
      content:""; }
    
    .bp3-icon-sort-alphabetical-desc::before{
      content:""; }
    
    .bp3-icon-sort-asc::before{
      content:""; }
    
    .bp3-icon-sort-desc::before{
      content:""; }
    
    .bp3-icon-sort-numerical::before{
      content:""; }
    
    .bp3-icon-sort-numerical-desc::before{
      content:""; }
    
    .bp3-icon-split-columns::before{
      content:""; }
    
    .bp3-icon-square::before{
      content:""; }
    
    .bp3-icon-stacked-chart::before{
      content:""; }
    
    .bp3-icon-star::before{
      content:"★"; }
    
    .bp3-icon-star-empty::before{
      content:"☆"; }
    
    .bp3-icon-step-backward::before{
      content:""; }
    
    .bp3-icon-step-chart::before{
      content:""; }
    
    .bp3-icon-step-forward::before{
      content:""; }
    
    .bp3-icon-stop::before{
      content:""; }
    
    .bp3-icon-stopwatch::before{
      content:""; }
    
    .bp3-icon-strikethrough::before{
      content:""; }
    
    .bp3-icon-style::before{
      content:""; }
    
    .bp3-icon-swap-horizontal::before{
      content:""; }
    
    .bp3-icon-swap-vertical::before{
      content:""; }
    
    .bp3-icon-symbol-circle::before{
      content:""; }
    
    .bp3-icon-symbol-cross::before{
      content:""; }
    
    .bp3-icon-symbol-diamond::before{
      content:""; }
    
    .bp3-icon-symbol-square::before{
      content:""; }
    
    .bp3-icon-symbol-triangle-down::before{
      content:""; }
    
    .bp3-icon-symbol-triangle-up::before{
      content:""; }
    
    .bp3-icon-tag::before{
      content:""; }
    
    .bp3-icon-take-action::before{
      content:""; }
    
    .bp3-icon-taxi::before{
      content:""; }
    
    .bp3-icon-text-highlight::before{
      content:""; }
    
    .bp3-icon-th::before{
      content:""; }
    
    .bp3-icon-th-derived::before{
      content:""; }
    
    .bp3-icon-th-disconnect::before{
      content:""; }
    
    .bp3-icon-th-filtered::before{
      content:""; }
    
    .bp3-icon-th-list::before{
      content:""; }
    
    .bp3-icon-thumbs-down::before{
      content:""; }
    
    .bp3-icon-thumbs-up::before{
      content:""; }
    
    .bp3-icon-tick::before{
      content:"✓"; }
    
    .bp3-icon-tick-circle::before{
      content:""; }
    
    .bp3-icon-time::before{
      content:"⏲"; }
    
    .bp3-icon-timeline-area-chart::before{
      content:""; }
    
    .bp3-icon-timeline-bar-chart::before{
      content:""; }
    
    .bp3-icon-timeline-events::before{
      content:""; }
    
    .bp3-icon-timeline-line-chart::before{
      content:""; }
    
    .bp3-icon-tint::before{
      content:""; }
    
    .bp3-icon-torch::before{
      content:""; }
    
    .bp3-icon-tractor::before{
      content:""; }
    
    .bp3-icon-train::before{
      content:""; }
    
    .bp3-icon-translate::before{
      content:""; }
    
    .bp3-icon-trash::before{
      content:""; }
    
    .bp3-icon-tree::before{
      content:""; }
    
    .bp3-icon-trending-down::before{
      content:""; }
    
    .bp3-icon-trending-up::before{
      content:""; }
    
    .bp3-icon-truck::before{
      content:""; }
    
    .bp3-icon-two-columns::before{
      content:""; }
    
    .bp3-icon-unarchive::before{
      content:""; }
    
    .bp3-icon-underline::before{
      content:"⎁"; }
    
    .bp3-icon-undo::before{
      content:"⎌"; }
    
    .bp3-icon-ungroup-objects::before{
      content:""; }
    
    .bp3-icon-unknown-vehicle::before{
      content:""; }
    
    .bp3-icon-unlock::before{
      content:""; }
    
    .bp3-icon-unpin::before{
      content:""; }
    
    .bp3-icon-unresolve::before{
      content:""; }
    
    .bp3-icon-updated::before{
      content:""; }
    
    .bp3-icon-upload::before{
      content:""; }
    
    .bp3-icon-user::before{
      content:""; }
    
    .bp3-icon-variable::before{
      content:""; }
    
    .bp3-icon-vertical-bar-chart-asc::before{
      content:""; }
    
    .bp3-icon-vertical-bar-chart-desc::before{
      content:""; }
    
    .bp3-icon-vertical-distribution::before{
      content:""; }
    
    .bp3-icon-video::before{
      content:""; }
    
    .bp3-icon-volume-down::before{
      content:""; }
    
    .bp3-icon-volume-off::before{
      content:""; }
    
    .bp3-icon-volume-up::before{
      content:""; }
    
    .bp3-icon-walk::before{
      content:""; }
    
    .bp3-icon-warning-sign::before{
      content:""; }
    
    .bp3-icon-waterfall-chart::before{
      content:""; }
    
    .bp3-icon-widget::before{
      content:""; }
    
    .bp3-icon-widget-button::before{
      content:""; }
    
    .bp3-icon-widget-footer::before{
      content:""; }
    
    .bp3-icon-widget-header::before{
      content:""; }
    
    .bp3-icon-wrench::before{
      content:""; }
    
    .bp3-icon-zoom-in::before{
      content:""; }
    
    .bp3-icon-zoom-out::before{
      content:""; }
    
    .bp3-icon-zoom-to-fit::before{
      content:""; }
    .bp3-submenu > .bp3-popover-wrapper{
      display:block; }
    
    .bp3-submenu .bp3-popover-target{
      display:block; }
      .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{ }
    
    .bp3-submenu.bp3-popover{
      -webkit-box-shadow:none;
              box-shadow:none;
      padding:0 5px; }
      .bp3-submenu.bp3-popover > .bp3-popover-content{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-submenu.bp3-popover, .bp3-submenu.bp3-popover.bp3-dark{
        -webkit-box-shadow:none;
                box-shadow:none; }
        .bp3-dark .bp3-submenu.bp3-popover > .bp3-popover-content, .bp3-submenu.bp3-popover.bp3-dark > .bp3-popover-content{
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
    .bp3-menu{
      background:#ffffff;
      border-radius:3px;
      color:#182026;
      list-style:none;
      margin:0;
      min-width:180px;
      padding:5px;
      text-align:left; }
    
    .bp3-menu-divider{
      border-top:1px solid rgba(16, 22, 26, 0.15);
      display:block;
      margin:5px; }
      .bp3-dark .bp3-menu-divider{
        border-top-color:rgba(255, 255, 255, 0.15); }
    
    .bp3-menu-item{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:start;
          -ms-flex-align:start;
              align-items:flex-start;
      border-radius:2px;
      color:inherit;
      line-height:20px;
      padding:5px 7px;
      text-decoration:none;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-menu-item > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-menu-item > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-menu-item::before,
      .bp3-menu-item > *{
        margin-right:7px; }
      .bp3-menu-item:empty::before,
      .bp3-menu-item > :last-child{
        margin-right:0; }
      .bp3-menu-item > .bp3-fill{
        word-break:break-word; }
      .bp3-menu-item:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
        background-color:rgba(167, 182, 194, 0.3);
        cursor:pointer;
        text-decoration:none; }
      .bp3-menu-item.bp3-disabled{
        background-color:inherit;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed; }
      .bp3-dark .bp3-menu-item{
        color:inherit; }
        .bp3-dark .bp3-menu-item:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
          background-color:rgba(138, 155, 168, 0.15);
          color:inherit; }
        .bp3-dark .bp3-menu-item.bp3-disabled{
          background-color:inherit;
          color:rgba(167, 182, 194, 0.6); }
      .bp3-menu-item.bp3-intent-primary{
        color:#106ba3; }
        .bp3-menu-item.bp3-intent-primary .bp3-icon{
          color:inherit; }
        .bp3-menu-item.bp3-intent-primary::before, .bp3-menu-item.bp3-intent-primary::after,
        .bp3-menu-item.bp3-intent-primary .bp3-menu-item-label{
          color:#106ba3; }
        .bp3-menu-item.bp3-intent-primary:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-menu-item.bp3-intent-primary.bp3-active{
          background-color:#137cbd; }
        .bp3-menu-item.bp3-intent-primary:active{
          background-color:#106ba3; }
        .bp3-menu-item.bp3-intent-primary:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-menu-item.bp3-intent-primary:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-menu-item.bp3-intent-primary:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after,
        .bp3-menu-item.bp3-intent-primary:hover .bp3-menu-item-label,
        .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-primary:active, .bp3-menu-item.bp3-intent-primary:active::before, .bp3-menu-item.bp3-intent-primary:active::after,
        .bp3-menu-item.bp3-intent-primary:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-primary.bp3-active, .bp3-menu-item.bp3-intent-primary.bp3-active::before, .bp3-menu-item.bp3-intent-primary.bp3-active::after,
        .bp3-menu-item.bp3-intent-primary.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-menu-item.bp3-intent-success{
        color:#0d8050; }
        .bp3-menu-item.bp3-intent-success .bp3-icon{
          color:inherit; }
        .bp3-menu-item.bp3-intent-success::before, .bp3-menu-item.bp3-intent-success::after,
        .bp3-menu-item.bp3-intent-success .bp3-menu-item-label{
          color:#0d8050; }
        .bp3-menu-item.bp3-intent-success:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-menu-item.bp3-intent-success.bp3-active{
          background-color:#0f9960; }
        .bp3-menu-item.bp3-intent-success:active{
          background-color:#0d8050; }
        .bp3-menu-item.bp3-intent-success:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-menu-item.bp3-intent-success:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-menu-item.bp3-intent-success:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after,
        .bp3-menu-item.bp3-intent-success:hover .bp3-menu-item-label,
        .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-success:active, .bp3-menu-item.bp3-intent-success:active::before, .bp3-menu-item.bp3-intent-success:active::after,
        .bp3-menu-item.bp3-intent-success:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-success.bp3-active, .bp3-menu-item.bp3-intent-success.bp3-active::before, .bp3-menu-item.bp3-intent-success.bp3-active::after,
        .bp3-menu-item.bp3-intent-success.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-menu-item.bp3-intent-warning{
        color:#bf7326; }
        .bp3-menu-item.bp3-intent-warning .bp3-icon{
          color:inherit; }
        .bp3-menu-item.bp3-intent-warning::before, .bp3-menu-item.bp3-intent-warning::after,
        .bp3-menu-item.bp3-intent-warning .bp3-menu-item-label{
          color:#bf7326; }
        .bp3-menu-item.bp3-intent-warning:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-menu-item.bp3-intent-warning.bp3-active{
          background-color:#d9822b; }
        .bp3-menu-item.bp3-intent-warning:active{
          background-color:#bf7326; }
        .bp3-menu-item.bp3-intent-warning:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-menu-item.bp3-intent-warning:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-menu-item.bp3-intent-warning:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after,
        .bp3-menu-item.bp3-intent-warning:hover .bp3-menu-item-label,
        .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-warning:active, .bp3-menu-item.bp3-intent-warning:active::before, .bp3-menu-item.bp3-intent-warning:active::after,
        .bp3-menu-item.bp3-intent-warning:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-warning.bp3-active, .bp3-menu-item.bp3-intent-warning.bp3-active::before, .bp3-menu-item.bp3-intent-warning.bp3-active::after,
        .bp3-menu-item.bp3-intent-warning.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-menu-item.bp3-intent-danger{
        color:#c23030; }
        .bp3-menu-item.bp3-intent-danger .bp3-icon{
          color:inherit; }
        .bp3-menu-item.bp3-intent-danger::before, .bp3-menu-item.bp3-intent-danger::after,
        .bp3-menu-item.bp3-intent-danger .bp3-menu-item-label{
          color:#c23030; }
        .bp3-menu-item.bp3-intent-danger:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-menu-item.bp3-intent-danger.bp3-active{
          background-color:#db3737; }
        .bp3-menu-item.bp3-intent-danger:active{
          background-color:#c23030; }
        .bp3-menu-item.bp3-intent-danger:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-menu-item.bp3-intent-danger:hover::before, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-menu-item.bp3-intent-danger:hover::after, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after,
        .bp3-menu-item.bp3-intent-danger:hover .bp3-menu-item-label,
        .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label, .bp3-menu-item.bp3-intent-danger:active, .bp3-menu-item.bp3-intent-danger:active::before, .bp3-menu-item.bp3-intent-danger:active::after,
        .bp3-menu-item.bp3-intent-danger:active .bp3-menu-item-label, .bp3-menu-item.bp3-intent-danger.bp3-active, .bp3-menu-item.bp3-intent-danger.bp3-active::before, .bp3-menu-item.bp3-intent-danger.bp3-active::after,
        .bp3-menu-item.bp3-intent-danger.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-menu-item::before{
        font-family:"Icons16", sans-serif;
        font-size:16px;
        font-style:normal;
        font-weight:400;
        line-height:1;
        -moz-osx-font-smoothing:grayscale;
        -webkit-font-smoothing:antialiased;
        margin-right:7px; }
      .bp3-menu-item::before,
      .bp3-menu-item > .bp3-icon{
        color:#5c7080;
        margin-top:2px; }
      .bp3-menu-item .bp3-menu-item-label{
        color:#5c7080; }
      .bp3-menu-item:hover, .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-menu-item{
        color:inherit; }
      .bp3-menu-item.bp3-active, .bp3-menu-item:active{
        background-color:rgba(115, 134, 148, 0.3); }
      .bp3-menu-item.bp3-disabled{
        background-color:inherit !important;
        color:rgba(92, 112, 128, 0.6) !important;
        cursor:not-allowed !important;
        outline:none !important; }
        .bp3-menu-item.bp3-disabled::before,
        .bp3-menu-item.bp3-disabled > .bp3-icon,
        .bp3-menu-item.bp3-disabled .bp3-menu-item-label{
          color:rgba(92, 112, 128, 0.6) !important; }
      .bp3-large .bp3-menu-item{
        font-size:16px;
        line-height:22px;
        padding:9px 7px; }
        .bp3-large .bp3-menu-item .bp3-icon{
          margin-top:3px; }
        .bp3-large .bp3-menu-item::before{
          font-family:"Icons20", sans-serif;
          font-size:20px;
          font-style:normal;
          font-weight:400;
          line-height:1;
          -moz-osx-font-smoothing:grayscale;
          -webkit-font-smoothing:antialiased;
          margin-right:10px;
          margin-top:1px; }
    
    button.bp3-menu-item{
      background:none;
      border:none;
      text-align:left;
      width:100%; }
    .bp3-menu-header{
      border-top:1px solid rgba(16, 22, 26, 0.15);
      display:block;
      margin:5px;
      cursor:default;
      padding-left:2px; }
      .bp3-dark .bp3-menu-header{
        border-top-color:rgba(255, 255, 255, 0.15); }
      .bp3-menu-header:first-of-type{
        border-top:none; }
      .bp3-menu-header > h6{
        color:#182026;
        font-weight:600;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        word-wrap:normal;
        line-height:17px;
        margin:0;
        padding:10px 7px 0 1px; }
        .bp3-dark .bp3-menu-header > h6{
          color:#f5f8fa; }
      .bp3-menu-header:first-of-type > h6{
        padding-top:0; }
      .bp3-large .bp3-menu-header > h6{
        font-size:18px;
        padding-bottom:5px;
        padding-top:15px; }
      .bp3-large .bp3-menu-header:first-of-type > h6{
        padding-top:0; }
    
    .bp3-dark .bp3-menu{
      background:#30404d;
      color:#f5f8fa; }
    
    .bp3-dark .bp3-menu-item{ }
      .bp3-dark .bp3-menu-item.bp3-intent-primary{
        color:#48aff0; }
        .bp3-dark .bp3-menu-item.bp3-intent-primary .bp3-icon{
          color:inherit; }
        .bp3-dark .bp3-menu-item.bp3-intent-primary::before, .bp3-dark .bp3-menu-item.bp3-intent-primary::after,
        .bp3-dark .bp3-menu-item.bp3-intent-primary .bp3-menu-item-label{
          color:#48aff0; }
        .bp3-dark .bp3-menu-item.bp3-intent-primary:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active{
          background-color:#137cbd; }
        .bp3-dark .bp3-menu-item.bp3-intent-primary:active{
          background-color:#106ba3; }
        .bp3-dark .bp3-menu-item.bp3-intent-primary:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-primary:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-primary:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item::after,
        .bp3-dark .bp3-menu-item.bp3-intent-primary:hover .bp3-menu-item-label,
        .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label,
        .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-primary.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-primary:active, .bp3-dark .bp3-menu-item.bp3-intent-primary:active::before, .bp3-dark .bp3-menu-item.bp3-intent-primary:active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-primary:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-primary.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-dark .bp3-menu-item.bp3-intent-success{
        color:#3dcc91; }
        .bp3-dark .bp3-menu-item.bp3-intent-success .bp3-icon{
          color:inherit; }
        .bp3-dark .bp3-menu-item.bp3-intent-success::before, .bp3-dark .bp3-menu-item.bp3-intent-success::after,
        .bp3-dark .bp3-menu-item.bp3-intent-success .bp3-menu-item-label{
          color:#3dcc91; }
        .bp3-dark .bp3-menu-item.bp3-intent-success:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active{
          background-color:#0f9960; }
        .bp3-dark .bp3-menu-item.bp3-intent-success:active{
          background-color:#0d8050; }
        .bp3-dark .bp3-menu-item.bp3-intent-success:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-success:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-success:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item::after,
        .bp3-dark .bp3-menu-item.bp3-intent-success:hover .bp3-menu-item-label,
        .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label,
        .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-success.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-success:active, .bp3-dark .bp3-menu-item.bp3-intent-success:active::before, .bp3-dark .bp3-menu-item.bp3-intent-success:active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-success:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-success.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-dark .bp3-menu-item.bp3-intent-warning{
        color:#ffb366; }
        .bp3-dark .bp3-menu-item.bp3-intent-warning .bp3-icon{
          color:inherit; }
        .bp3-dark .bp3-menu-item.bp3-intent-warning::before, .bp3-dark .bp3-menu-item.bp3-intent-warning::after,
        .bp3-dark .bp3-menu-item.bp3-intent-warning .bp3-menu-item-label{
          color:#ffb366; }
        .bp3-dark .bp3-menu-item.bp3-intent-warning:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active{
          background-color:#d9822b; }
        .bp3-dark .bp3-menu-item.bp3-intent-warning:active{
          background-color:#bf7326; }
        .bp3-dark .bp3-menu-item.bp3-intent-warning:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-warning:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-warning:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item::after,
        .bp3-dark .bp3-menu-item.bp3-intent-warning:hover .bp3-menu-item-label,
        .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label,
        .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-warning.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-warning:active, .bp3-dark .bp3-menu-item.bp3-intent-warning:active::before, .bp3-dark .bp3-menu-item.bp3-intent-warning:active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-warning:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-warning.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-dark .bp3-menu-item.bp3-intent-danger{
        color:#ff7373; }
        .bp3-dark .bp3-menu-item.bp3-intent-danger .bp3-icon{
          color:inherit; }
        .bp3-dark .bp3-menu-item.bp3-intent-danger::before, .bp3-dark .bp3-menu-item.bp3-intent-danger::after,
        .bp3-dark .bp3-menu-item.bp3-intent-danger .bp3-menu-item-label{
          color:#ff7373; }
        .bp3-dark .bp3-menu-item.bp3-intent-danger:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active{
          background-color:#db3737; }
        .bp3-dark .bp3-menu-item.bp3-intent-danger:active{
          background-color:#c23030; }
        .bp3-dark .bp3-menu-item.bp3-intent-danger:hover, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item, .bp3-dark .bp3-menu-item.bp3-intent-danger:hover::before, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::before, .bp3-dark .bp3-menu-item.bp3-intent-danger:hover::after, .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after, .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item::after,
        .bp3-dark .bp3-menu-item.bp3-intent-danger:hover .bp3-menu-item-label,
        .bp3-dark .bp3-submenu .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label,
        .bp3-submenu .bp3-dark .bp3-popover-target.bp3-popover-open > .bp3-intent-danger.bp3-menu-item .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-danger:active, .bp3-dark .bp3-menu-item.bp3-intent-danger:active::before, .bp3-dark .bp3-menu-item.bp3-intent-danger:active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-danger:active .bp3-menu-item-label, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active::before, .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active::after,
        .bp3-dark .bp3-menu-item.bp3-intent-danger.bp3-active .bp3-menu-item-label{
          color:#ffffff; }
      .bp3-dark .bp3-menu-item::before,
      .bp3-dark .bp3-menu-item > .bp3-icon{
        color:#a7b6c2; }
      .bp3-dark .bp3-menu-item .bp3-menu-item-label{
        color:#a7b6c2; }
      .bp3-dark .bp3-menu-item.bp3-active, .bp3-dark .bp3-menu-item:active{
        background-color:rgba(138, 155, 168, 0.3); }
      .bp3-dark .bp3-menu-item.bp3-disabled{
        color:rgba(167, 182, 194, 0.6) !important; }
        .bp3-dark .bp3-menu-item.bp3-disabled::before,
        .bp3-dark .bp3-menu-item.bp3-disabled > .bp3-icon,
        .bp3-dark .bp3-menu-item.bp3-disabled .bp3-menu-item-label{
          color:rgba(167, 182, 194, 0.6) !important; }
    
    .bp3-dark .bp3-menu-divider,
    .bp3-dark .bp3-menu-header{
      border-color:rgba(255, 255, 255, 0.15); }
    
    .bp3-dark .bp3-menu-header > h6{
      color:#f5f8fa; }
    
    .bp3-label .bp3-menu{
      margin-top:5px; }
    .bp3-navbar{
      background-color:#ffffff;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.2);
      height:50px;
      padding:0 15px;
      position:relative;
      width:100%;
      z-index:10; }
      .bp3-navbar.bp3-dark,
      .bp3-dark .bp3-navbar{
        background-color:#394b59; }
      .bp3-navbar.bp3-dark{
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-dark .bp3-navbar{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 0 0 rgba(16, 22, 26, 0), 0 1px 1px rgba(16, 22, 26, 0.4); }
      .bp3-navbar.bp3-fixed-top{
        left:0;
        position:fixed;
        right:0;
        top:0; }
    
    .bp3-navbar-heading{
      font-size:16px;
      margin-right:15px; }
    
    .bp3-navbar-group{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      height:50px; }
      .bp3-navbar-group.bp3-align-left{
        float:left; }
      .bp3-navbar-group.bp3-align-right{
        float:right; }
    
    .bp3-navbar-divider{
      border-left:1px solid rgba(16, 22, 26, 0.15);
      height:20px;
      margin:0 10px; }
      .bp3-dark .bp3-navbar-divider{
        border-left-color:rgba(255, 255, 255, 0.15); }
    .bp3-non-ideal-state{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      height:100%;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      text-align:center;
      width:100%; }
      .bp3-non-ideal-state > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-non-ideal-state > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-non-ideal-state::before,
      .bp3-non-ideal-state > *{
        margin-bottom:20px; }
      .bp3-non-ideal-state:empty::before,
      .bp3-non-ideal-state > :last-child{
        margin-bottom:0; }
      .bp3-non-ideal-state > *{
        max-width:400px; }
    
    .bp3-non-ideal-state-visual{
      color:rgba(92, 112, 128, 0.6);
      font-size:60px; }
      .bp3-dark .bp3-non-ideal-state-visual{
        color:rgba(167, 182, 194, 0.6); }
    
    .bp3-overflow-list{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -ms-flex-wrap:nowrap;
          flex-wrap:nowrap;
      min-width:0; }
    
    .bp3-overflow-list-spacer{
      -ms-flex-negative:1;
          flex-shrink:1;
      width:1px; }
    
    body.bp3-overlay-open{
      overflow:hidden; }
    
    .bp3-overlay{
      bottom:0;
      left:0;
      position:static;
      right:0;
      top:0;
      z-index:20; }
      .bp3-overlay:not(.bp3-overlay-open){
        pointer-events:none; }
      .bp3-overlay.bp3-overlay-container{
        overflow:hidden;
        position:fixed; }
        .bp3-overlay.bp3-overlay-container.bp3-overlay-inline{
          position:absolute; }
      .bp3-overlay.bp3-overlay-scroll-container{
        overflow:auto;
        position:fixed; }
        .bp3-overlay.bp3-overlay-scroll-container.bp3-overlay-inline{
          position:absolute; }
      .bp3-overlay.bp3-overlay-inline{
        display:inline;
        overflow:visible; }
    
    .bp3-overlay-content{
      position:fixed;
      z-index:20; }
      .bp3-overlay-inline .bp3-overlay-content,
      .bp3-overlay-scroll-container .bp3-overlay-content{
        position:absolute; }
    
    .bp3-overlay-backdrop{
      bottom:0;
      left:0;
      position:fixed;
      right:0;
      top:0;
      opacity:1;
      background-color:rgba(16, 22, 26, 0.7);
      overflow:auto;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none;
      z-index:20; }
      .bp3-overlay-backdrop.bp3-overlay-enter, .bp3-overlay-backdrop.bp3-overlay-appear{
        opacity:0; }
      .bp3-overlay-backdrop.bp3-overlay-enter-active, .bp3-overlay-backdrop.bp3-overlay-appear-active{
        opacity:1;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:200ms;
                transition-duration:200ms;
        -webkit-transition-property:opacity;
        transition-property:opacity;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-overlay-backdrop.bp3-overlay-exit{
        opacity:1; }
      .bp3-overlay-backdrop.bp3-overlay-exit-active{
        opacity:0;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:200ms;
                transition-duration:200ms;
        -webkit-transition-property:opacity;
        transition-property:opacity;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-overlay-backdrop:focus{
        outline:none; }
      .bp3-overlay-inline .bp3-overlay-backdrop{
        position:absolute; }
    .bp3-panel-stack{
      overflow:hidden;
      position:relative; }
    
    .bp3-panel-stack-header{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      -webkit-box-shadow:0 1px rgba(16, 22, 26, 0.15);
              box-shadow:0 1px rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -ms-flex-negative:0;
          flex-shrink:0;
      height:30px;
      z-index:1; }
      .bp3-dark .bp3-panel-stack-header{
        -webkit-box-shadow:0 1px rgba(255, 255, 255, 0.15);
                box-shadow:0 1px rgba(255, 255, 255, 0.15); }
      .bp3-panel-stack-header > span{
        -webkit-box-align:stretch;
            -ms-flex-align:stretch;
                align-items:stretch;
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-flex:1;
            -ms-flex:1;
                flex:1; }
      .bp3-panel-stack-header .bp3-heading{
        margin:0 5px; }
    
    .bp3-button.bp3-panel-stack-header-back{
      margin-left:5px;
      padding-left:0;
      white-space:nowrap; }
      .bp3-button.bp3-panel-stack-header-back .bp3-icon{
        margin:0 2px; }
    
    .bp3-panel-stack-view{
      bottom:0;
      left:0;
      position:absolute;
      right:0;
      top:0;
      background-color:#ffffff;
      border-right:1px solid rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      margin-right:-1px;
      overflow-y:auto;
      z-index:1; }
      .bp3-dark .bp3-panel-stack-view{
        background-color:#30404d; }
      .bp3-panel-stack-view:nth-last-child(n + 4){
        display:none; }
    
    .bp3-panel-stack-push .bp3-panel-stack-enter, .bp3-panel-stack-push .bp3-panel-stack-appear{
      -webkit-transform:translateX(100%);
              transform:translateX(100%);
      opacity:0; }
    
    .bp3-panel-stack-push .bp3-panel-stack-enter-active, .bp3-panel-stack-push .bp3-panel-stack-appear-active{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack-push .bp3-panel-stack-exit{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1; }
    
    .bp3-panel-stack-push .bp3-panel-stack-exit-active{
      -webkit-transform:translateX(-50%);
              transform:translateX(-50%);
      opacity:0;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack-pop .bp3-panel-stack-enter, .bp3-panel-stack-pop .bp3-panel-stack-appear{
      -webkit-transform:translateX(-50%);
              transform:translateX(-50%);
      opacity:0; }
    
    .bp3-panel-stack-pop .bp3-panel-stack-enter-active, .bp3-panel-stack-pop .bp3-panel-stack-appear-active{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack-pop .bp3-panel-stack-exit{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1; }
    
    .bp3-panel-stack-pop .bp3-panel-stack-exit-active{
      -webkit-transform:translateX(100%);
              transform:translateX(100%);
      opacity:0;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    .bp3-panel-stack2{
      overflow:hidden;
      position:relative; }
    
    .bp3-panel-stack2-header{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      -webkit-box-shadow:0 1px rgba(16, 22, 26, 0.15);
              box-shadow:0 1px rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -ms-flex-negative:0;
          flex-shrink:0;
      height:30px;
      z-index:1; }
      .bp3-dark .bp3-panel-stack2-header{
        -webkit-box-shadow:0 1px rgba(255, 255, 255, 0.15);
                box-shadow:0 1px rgba(255, 255, 255, 0.15); }
      .bp3-panel-stack2-header > span{
        -webkit-box-align:stretch;
            -ms-flex-align:stretch;
                align-items:stretch;
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-flex:1;
            -ms-flex:1;
                flex:1; }
      .bp3-panel-stack2-header .bp3-heading{
        margin:0 5px; }
    
    .bp3-button.bp3-panel-stack2-header-back{
      margin-left:5px;
      padding-left:0;
      white-space:nowrap; }
      .bp3-button.bp3-panel-stack2-header-back .bp3-icon{
        margin:0 2px; }
    
    .bp3-panel-stack2-view{
      bottom:0;
      left:0;
      position:absolute;
      right:0;
      top:0;
      background-color:#ffffff;
      border-right:1px solid rgba(16, 22, 26, 0.15);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      margin-right:-1px;
      overflow-y:auto;
      z-index:1; }
      .bp3-dark .bp3-panel-stack2-view{
        background-color:#30404d; }
      .bp3-panel-stack2-view:nth-last-child(n + 4){
        display:none; }
    
    .bp3-panel-stack2-push .bp3-panel-stack2-enter, .bp3-panel-stack2-push .bp3-panel-stack2-appear{
      -webkit-transform:translateX(100%);
              transform:translateX(100%);
      opacity:0; }
    
    .bp3-panel-stack2-push .bp3-panel-stack2-enter-active, .bp3-panel-stack2-push .bp3-panel-stack2-appear-active{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack2-push .bp3-panel-stack2-exit{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1; }
    
    .bp3-panel-stack2-push .bp3-panel-stack2-exit-active{
      -webkit-transform:translateX(-50%);
              transform:translateX(-50%);
      opacity:0;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack2-pop .bp3-panel-stack2-enter, .bp3-panel-stack2-pop .bp3-panel-stack2-appear{
      -webkit-transform:translateX(-50%);
              transform:translateX(-50%);
      opacity:0; }
    
    .bp3-panel-stack2-pop .bp3-panel-stack2-enter-active, .bp3-panel-stack2-pop .bp3-panel-stack2-appear-active{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    
    .bp3-panel-stack2-pop .bp3-panel-stack2-exit{
      -webkit-transform:translate(0%);
              transform:translate(0%);
      opacity:1; }
    
    .bp3-panel-stack2-pop .bp3-panel-stack2-exit-active{
      -webkit-transform:translateX(100%);
              transform:translateX(100%);
      opacity:0;
      -webkit-transition-delay:0;
              transition-delay:0;
      -webkit-transition-duration:400ms;
              transition-duration:400ms;
      -webkit-transition-property:opacity, -webkit-transform;
      transition-property:opacity, -webkit-transform;
      transition-property:transform, opacity;
      transition-property:transform, opacity, -webkit-transform;
      -webkit-transition-timing-function:ease;
              transition-timing-function:ease; }
    .bp3-popover{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
      -webkit-transform:scale(1);
              transform:scale(1);
      border-radius:3px;
      display:inline-block;
      z-index:20; }
      .bp3-popover .bp3-popover-arrow{
        height:30px;
        position:absolute;
        width:30px; }
        .bp3-popover .bp3-popover-arrow::before{
          height:20px;
          margin:5px;
          width:20px; }
      .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover{
        margin-bottom:17px;
        margin-top:-17px; }
        .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow{
          bottom:-11px; }
          .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow svg{
            -webkit-transform:rotate(-90deg);
                    transform:rotate(-90deg); }
      .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover{
        margin-left:17px; }
        .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow{
          left:-11px; }
          .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow svg{
            -webkit-transform:rotate(0);
                    transform:rotate(0); }
      .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover{
        margin-top:17px; }
        .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow{
          top:-11px; }
          .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow svg{
            -webkit-transform:rotate(90deg);
                    transform:rotate(90deg); }
      .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover{
        margin-left:-17px;
        margin-right:17px; }
        .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow{
          right:-11px; }
          .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow svg{
            -webkit-transform:rotate(180deg);
                    transform:rotate(180deg); }
      .bp3-tether-element-attached-middle > .bp3-popover > .bp3-popover-arrow{
        top:50%;
        -webkit-transform:translateY(-50%);
                transform:translateY(-50%); }
      .bp3-tether-element-attached-center > .bp3-popover > .bp3-popover-arrow{
        right:50%;
        -webkit-transform:translateX(50%);
                transform:translateX(50%); }
      .bp3-tether-element-attached-top.bp3-tether-target-attached-top > .bp3-popover > .bp3-popover-arrow{
        top:-0.3934px; }
      .bp3-tether-element-attached-right.bp3-tether-target-attached-right > .bp3-popover > .bp3-popover-arrow{
        right:-0.3934px; }
      .bp3-tether-element-attached-left.bp3-tether-target-attached-left > .bp3-popover > .bp3-popover-arrow{
        left:-0.3934px; }
      .bp3-tether-element-attached-bottom.bp3-tether-target-attached-bottom > .bp3-popover > .bp3-popover-arrow{
        bottom:-0.3934px; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-left > .bp3-popover{
        -webkit-transform-origin:top left;
                transform-origin:top left; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-center > .bp3-popover{
        -webkit-transform-origin:top center;
                transform-origin:top center; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-right > .bp3-popover{
        -webkit-transform-origin:top right;
                transform-origin:top right; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-left > .bp3-popover{
        -webkit-transform-origin:center left;
                transform-origin:center left; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-center > .bp3-popover{
        -webkit-transform-origin:center center;
                transform-origin:center center; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-right > .bp3-popover{
        -webkit-transform-origin:center right;
                transform-origin:center right; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-left > .bp3-popover{
        -webkit-transform-origin:bottom left;
                transform-origin:bottom left; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-center > .bp3-popover{
        -webkit-transform-origin:bottom center;
                transform-origin:bottom center; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-right > .bp3-popover{
        -webkit-transform-origin:bottom right;
                transform-origin:bottom right; }
      .bp3-popover .bp3-popover-content{
        background:#ffffff;
        color:inherit; }
      .bp3-popover .bp3-popover-arrow::before{
        -webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2);
                box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2); }
      .bp3-popover .bp3-popover-arrow-border{
        fill:#10161a;
        fill-opacity:0.1; }
      .bp3-popover .bp3-popover-arrow-fill{
        fill:#ffffff; }
      .bp3-popover-enter > .bp3-popover, .bp3-popover-appear > .bp3-popover{
        -webkit-transform:scale(0.3);
                transform:scale(0.3); }
      .bp3-popover-enter-active > .bp3-popover, .bp3-popover-appear-active > .bp3-popover{
        -webkit-transform:scale(1);
                transform:scale(1);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
      .bp3-popover-exit > .bp3-popover{
        -webkit-transform:scale(1);
                transform:scale(1); }
      .bp3-popover-exit-active > .bp3-popover{
        -webkit-transform:scale(0.3);
                transform:scale(0.3);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
      .bp3-popover .bp3-popover-content{
        border-radius:3px;
        position:relative; }
      .bp3-popover.bp3-popover-content-sizing .bp3-popover-content{
        max-width:350px;
        padding:20px; }
      .bp3-popover-target + .bp3-overlay .bp3-popover.bp3-popover-content-sizing{
        width:350px; }
      .bp3-popover.bp3-minimal{
        margin:0 !important; }
        .bp3-popover.bp3-minimal .bp3-popover-arrow{
          display:none; }
        .bp3-popover.bp3-minimal.bp3-popover{
          -webkit-transform:scale(1);
                  transform:scale(1); }
          .bp3-popover-enter > .bp3-popover.bp3-minimal.bp3-popover, .bp3-popover-appear > .bp3-popover.bp3-minimal.bp3-popover{
            -webkit-transform:scale(1);
                    transform:scale(1); }
          .bp3-popover-enter-active > .bp3-popover.bp3-minimal.bp3-popover, .bp3-popover-appear-active > .bp3-popover.bp3-minimal.bp3-popover{
            -webkit-transform:scale(1);
                    transform:scale(1);
            -webkit-transition-delay:0;
                    transition-delay:0;
            -webkit-transition-duration:100ms;
                    transition-duration:100ms;
            -webkit-transition-property:-webkit-transform;
            transition-property:-webkit-transform;
            transition-property:transform;
            transition-property:transform, -webkit-transform;
            -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                    transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
          .bp3-popover-exit > .bp3-popover.bp3-minimal.bp3-popover{
            -webkit-transform:scale(1);
                    transform:scale(1); }
          .bp3-popover-exit-active > .bp3-popover.bp3-minimal.bp3-popover{
            -webkit-transform:scale(1);
                    transform:scale(1);
            -webkit-transition-delay:0;
                    transition-delay:0;
            -webkit-transition-duration:100ms;
                    transition-duration:100ms;
            -webkit-transition-property:-webkit-transform;
            transition-property:-webkit-transform;
            transition-property:transform;
            transition-property:transform, -webkit-transform;
            -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                    transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-popover.bp3-dark,
      .bp3-dark .bp3-popover{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
        .bp3-popover.bp3-dark .bp3-popover-content,
        .bp3-dark .bp3-popover .bp3-popover-content{
          background:#30404d;
          color:inherit; }
        .bp3-popover.bp3-dark .bp3-popover-arrow::before,
        .bp3-dark .bp3-popover .bp3-popover-arrow::before{
          -webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4);
                  box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4); }
        .bp3-popover.bp3-dark .bp3-popover-arrow-border,
        .bp3-dark .bp3-popover .bp3-popover-arrow-border{
          fill:#10161a;
          fill-opacity:0.2; }
        .bp3-popover.bp3-dark .bp3-popover-arrow-fill,
        .bp3-dark .bp3-popover .bp3-popover-arrow-fill{
          fill:#30404d; }
    
    .bp3-popover-arrow::before{
      border-radius:2px;
      content:"";
      display:block;
      position:absolute;
      -webkit-transform:rotate(45deg);
              transform:rotate(45deg); }
    
    .bp3-tether-pinned .bp3-popover-arrow{
      display:none; }
    
    .bp3-popover-backdrop{
      background:rgba(255, 255, 255, 0); }
    
    .bp3-transition-container{
      opacity:1;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      z-index:20; }
      .bp3-transition-container.bp3-popover-enter, .bp3-transition-container.bp3-popover-appear{
        opacity:0; }
      .bp3-transition-container.bp3-popover-enter-active, .bp3-transition-container.bp3-popover-appear-active{
        opacity:1;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:100ms;
                transition-duration:100ms;
        -webkit-transition-property:opacity;
        transition-property:opacity;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-transition-container.bp3-popover-exit{
        opacity:1; }
      .bp3-transition-container.bp3-popover-exit-active{
        opacity:0;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:100ms;
                transition-duration:100ms;
        -webkit-transition-property:opacity;
        transition-property:opacity;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-transition-container:focus{
        outline:none; }
      .bp3-transition-container.bp3-popover-leave .bp3-popover-content{
        pointer-events:none; }
      .bp3-transition-container[data-x-out-of-boundaries]{
        display:none; }
    
    span.bp3-popover-target{
      display:inline-block; }
    
    .bp3-popover-wrapper.bp3-fill{
      width:100%; }
    
    .bp3-portal{
      left:0;
      position:absolute;
      right:0;
      top:0; }
    @-webkit-keyframes linear-progress-bar-stripes{
      from{
        background-position:0 0; }
      to{
        background-position:30px 0; } }
    @keyframes linear-progress-bar-stripes{
      from{
        background-position:0 0; }
      to{
        background-position:30px 0; } }
    
    .bp3-progress-bar{
      background:rgba(92, 112, 128, 0.2);
      border-radius:40px;
      display:block;
      height:8px;
      overflow:hidden;
      position:relative;
      width:100%; }
      .bp3-progress-bar .bp3-progress-meter{
        background: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%);
        background-color:rgba(92, 112, 128, 0.8);
        background-size:30px 30px;
        border-radius:40px;
        height:100%;
        position:absolute;
        -webkit-transition:width 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:width 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        width:100%; }
      .bp3-progress-bar:not(.bp3-no-animation):not(.bp3-no-stripes) .bp3-progress-meter{
        animation:linear-progress-bar-stripes 300ms linear infinite reverse; }
      .bp3-progress-bar.bp3-no-stripes .bp3-progress-meter{
        background-image:none; }
    
    .bp3-dark .bp3-progress-bar{
      background:rgba(16, 22, 26, 0.5); }
      .bp3-dark .bp3-progress-bar .bp3-progress-meter{
        background-color:#8a9ba8; }
    
    .bp3-progress-bar.bp3-intent-primary .bp3-progress-meter{
      background-color:#137cbd; }
    
    .bp3-progress-bar.bp3-intent-success .bp3-progress-meter{
      background-color:#0f9960; }
    
    .bp3-progress-bar.bp3-intent-warning .bp3-progress-meter{
      background-color:#d9822b; }
    
    .bp3-progress-bar.bp3-intent-danger .bp3-progress-meter{
      background-color:#db3737; }
    @-webkit-keyframes skeleton-glow{
      from{
        background:rgba(206, 217, 224, 0.2);
        border-color:rgba(206, 217, 224, 0.2); }
      to{
        background:rgba(92, 112, 128, 0.2);
        border-color:rgba(92, 112, 128, 0.2); } }
    @keyframes skeleton-glow{
      from{
        background:rgba(206, 217, 224, 0.2);
        border-color:rgba(206, 217, 224, 0.2); }
      to{
        background:rgba(92, 112, 128, 0.2);
        border-color:rgba(92, 112, 128, 0.2); } }
    .bp3-skeleton{
      -webkit-animation:1000ms linear infinite alternate skeleton-glow;
              animation:1000ms linear infinite alternate skeleton-glow;
      background:rgba(206, 217, 224, 0.2);
      background-clip:padding-box !important;
      border-color:rgba(206, 217, 224, 0.2) !important;
      border-radius:2px;
      -webkit-box-shadow:none !important;
              box-shadow:none !important;
      color:transparent !important;
      cursor:default;
      pointer-events:none;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-skeleton::before, .bp3-skeleton::after,
      .bp3-skeleton *{
        visibility:hidden !important; }
    .bp3-slider{
      height:40px;
      min-width:150px;
      width:100%;
      cursor:default;
      outline:none;
      position:relative;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-slider:hover{
        cursor:pointer; }
      .bp3-slider:active{
        cursor:-webkit-grabbing;
        cursor:grabbing; }
      .bp3-slider.bp3-disabled{
        cursor:not-allowed;
        opacity:0.5; }
      .bp3-slider.bp3-slider-unlabeled{
        height:16px; }
    
    .bp3-slider-track,
    .bp3-slider-progress{
      height:6px;
      left:0;
      right:0;
      top:5px;
      position:absolute; }
    
    .bp3-slider-track{
      border-radius:3px;
      overflow:hidden; }
    
    .bp3-slider-progress{
      background:rgba(92, 112, 128, 0.2); }
      .bp3-dark .bp3-slider-progress{
        background:rgba(16, 22, 26, 0.5); }
      .bp3-slider-progress.bp3-intent-primary{
        background-color:#137cbd; }
      .bp3-slider-progress.bp3-intent-success{
        background-color:#0f9960; }
      .bp3-slider-progress.bp3-intent-warning{
        background-color:#d9822b; }
      .bp3-slider-progress.bp3-intent-danger{
        background-color:#db3737; }
    
    .bp3-slider-handle{
      background-color:#f5f8fa;
      background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.8)), to(rgba(255, 255, 255, 0)));
      background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));
      -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
              box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
      color:#182026;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
      cursor:pointer;
      height:16px;
      left:0;
      position:absolute;
      top:0;
      width:16px; }
      .bp3-slider-handle:hover{
        background-clip:padding-box;
        background-color:#ebf1f5;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1); }
      .bp3-slider-handle:active, .bp3-slider-handle.bp3-active{
        background-color:#d8e1e8;
        background-image:none;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
      .bp3-slider-handle:disabled, .bp3-slider-handle.bp3-disabled{
        background-color:rgba(206, 217, 224, 0.5);
        background-image:none;
        -webkit-box-shadow:none;
                box-shadow:none;
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed;
        outline:none; }
        .bp3-slider-handle:disabled.bp3-active, .bp3-slider-handle:disabled.bp3-active:hover, .bp3-slider-handle.bp3-disabled.bp3-active, .bp3-slider-handle.bp3-disabled.bp3-active:hover{
          background:rgba(206, 217, 224, 0.7); }
      .bp3-slider-handle:focus{
        z-index:1; }
      .bp3-slider-handle:hover{
        background-clip:padding-box;
        background-color:#ebf1f5;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1);
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 1px 1px rgba(16, 22, 26, 0.2);
        cursor:-webkit-grab;
        cursor:grab;
        z-index:2; }
      .bp3-slider-handle.bp3-active{
        background-color:#d8e1e8;
        background-image:none;
        -webkit-box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                box-shadow:inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 2px rgba(16, 22, 26, 0.2);
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 1px rgba(16, 22, 26, 0.1);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 1px 1px rgba(16, 22, 26, 0.1);
        cursor:-webkit-grabbing;
        cursor:grabbing; }
      .bp3-disabled .bp3-slider-handle{
        background:#bfccd6;
        -webkit-box-shadow:none;
                box-shadow:none;
        pointer-events:none; }
      .bp3-dark .bp3-slider-handle{
        background-color:#394b59;
        background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.05)), to(rgba(255, 255, 255, 0)));
        background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
        color:#f5f8fa; }
        .bp3-dark .bp3-slider-handle:hover, .bp3-dark .bp3-slider-handle:active, .bp3-dark .bp3-slider-handle.bp3-active{
          color:#f5f8fa; }
        .bp3-dark .bp3-slider-handle:hover{
          background-color:#30404d;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-slider-handle:active, .bp3-dark .bp3-slider-handle.bp3-active{
          background-color:#202b33;
          background-image:none;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.6), inset 0 1px 2px rgba(16, 22, 26, 0.2); }
        .bp3-dark .bp3-slider-handle:disabled, .bp3-dark .bp3-slider-handle.bp3-disabled{
          background-color:rgba(57, 75, 89, 0.5);
          background-image:none;
          -webkit-box-shadow:none;
                  box-shadow:none;
          color:rgba(167, 182, 194, 0.6); }
          .bp3-dark .bp3-slider-handle:disabled.bp3-active, .bp3-dark .bp3-slider-handle.bp3-disabled.bp3-active{
            background:rgba(57, 75, 89, 0.7); }
        .bp3-dark .bp3-slider-handle .bp3-button-spinner .bp3-spinner-head{
          background:rgba(16, 22, 26, 0.5);
          stroke:#8a9ba8; }
        .bp3-dark .bp3-slider-handle, .bp3-dark .bp3-slider-handle:hover{
          background-color:#394b59; }
        .bp3-dark .bp3-slider-handle.bp3-active{
          background-color:#293742; }
      .bp3-dark .bp3-disabled .bp3-slider-handle{
        background:#5c7080;
        border-color:#5c7080;
        -webkit-box-shadow:none;
                box-shadow:none; }
      .bp3-slider-handle .bp3-slider-label{
        background:#394b59;
        border-radius:3px;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
        color:#f5f8fa;
        margin-left:8px; }
        .bp3-dark .bp3-slider-handle .bp3-slider-label{
          background:#e1e8ed;
          -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
          color:#394b59; }
        .bp3-disabled .bp3-slider-handle .bp3-slider-label{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-slider-handle.bp3-start, .bp3-slider-handle.bp3-end{
        width:8px; }
      .bp3-slider-handle.bp3-start{
        border-bottom-right-radius:0;
        border-top-right-radius:0; }
      .bp3-slider-handle.bp3-end{
        border-bottom-left-radius:0;
        border-top-left-radius:0;
        margin-left:8px; }
        .bp3-slider-handle.bp3-end .bp3-slider-label{
          margin-left:0; }
    
    .bp3-slider-label{
      -webkit-transform:translate(-50%, 20px);
              transform:translate(-50%, 20px);
      display:inline-block;
      font-size:12px;
      line-height:1;
      padding:2px 5px;
      position:absolute;
      vertical-align:top; }
    
    .bp3-slider.bp3-vertical{
      height:150px;
      min-width:40px;
      width:40px; }
      .bp3-slider.bp3-vertical .bp3-slider-track,
      .bp3-slider.bp3-vertical .bp3-slider-progress{
        bottom:0;
        height:auto;
        left:5px;
        top:0;
        width:6px; }
      .bp3-slider.bp3-vertical .bp3-slider-progress{
        top:auto; }
      .bp3-slider.bp3-vertical .bp3-slider-label{
        -webkit-transform:translate(20px, 50%);
                transform:translate(20px, 50%); }
      .bp3-slider.bp3-vertical .bp3-slider-handle{
        top:auto; }
        .bp3-slider.bp3-vertical .bp3-slider-handle .bp3-slider-label{
          margin-left:0;
          margin-top:-8px; }
        .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-end, .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start{
          height:8px;
          margin-left:0;
          width:16px; }
        .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start{
          border-bottom-right-radius:3px;
          border-top-left-radius:0; }
          .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-start .bp3-slider-label{
            -webkit-transform:translate(20px);
                    transform:translate(20px); }
        .bp3-slider.bp3-vertical .bp3-slider-handle.bp3-end{
          border-bottom-left-radius:0;
          border-bottom-right-radius:0;
          border-top-left-radius:3px;
          margin-bottom:8px; }
    
    @-webkit-keyframes pt-spinner-animation{
      from{
        -webkit-transform:rotate(0deg);
                transform:rotate(0deg); }
      to{
        -webkit-transform:rotate(360deg);
                transform:rotate(360deg); } }
    
    @keyframes pt-spinner-animation{
      from{
        -webkit-transform:rotate(0deg);
                transform:rotate(0deg); }
      to{
        -webkit-transform:rotate(360deg);
                transform:rotate(360deg); } }
    
    .bp3-spinner{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-pack:center;
          -ms-flex-pack:center;
              justify-content:center;
      overflow:visible;
      vertical-align:middle; }
      .bp3-spinner svg{
        display:block; }
      .bp3-spinner path{
        fill-opacity:0; }
      .bp3-spinner .bp3-spinner-head{
        stroke:rgba(92, 112, 128, 0.8);
        stroke-linecap:round;
        -webkit-transform-origin:center;
                transform-origin:center;
        -webkit-transition:stroke-dashoffset 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
        transition:stroke-dashoffset 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-spinner .bp3-spinner-track{
        stroke:rgba(92, 112, 128, 0.2); }
    
    .bp3-spinner-animation{
      -webkit-animation:pt-spinner-animation 500ms linear infinite;
              animation:pt-spinner-animation 500ms linear infinite; }
      .bp3-no-spin > .bp3-spinner-animation{
        -webkit-animation:none;
                animation:none; }
    
    .bp3-dark .bp3-spinner .bp3-spinner-head{
      stroke:#8a9ba8; }
    
    .bp3-dark .bp3-spinner .bp3-spinner-track{
      stroke:rgba(16, 22, 26, 0.5); }
    
    .bp3-spinner.bp3-intent-primary .bp3-spinner-head{
      stroke:#137cbd; }
    
    .bp3-spinner.bp3-intent-success .bp3-spinner-head{
      stroke:#0f9960; }
    
    .bp3-spinner.bp3-intent-warning .bp3-spinner-head{
      stroke:#d9822b; }
    
    .bp3-spinner.bp3-intent-danger .bp3-spinner-head{
      stroke:#db3737; }
    .bp3-tabs.bp3-vertical{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex; }
      .bp3-tabs.bp3-vertical > .bp3-tab-list{
        -webkit-box-align:start;
            -ms-flex-align:start;
                align-items:flex-start;
        -webkit-box-orient:vertical;
        -webkit-box-direction:normal;
            -ms-flex-direction:column;
                flex-direction:column; }
        .bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab{
          border-radius:3px;
          padding:0 10px;
          width:100%; }
          .bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab[aria-selected="true"]{
            background-color:rgba(19, 124, 189, 0.2);
            -webkit-box-shadow:none;
                    box-shadow:none; }
        .bp3-tabs.bp3-vertical > .bp3-tab-list .bp3-tab-indicator-wrapper .bp3-tab-indicator{
          background-color:rgba(19, 124, 189, 0.2);
          border-radius:3px;
          bottom:0;
          height:auto;
          left:0;
          right:0;
          top:0; }
      .bp3-tabs.bp3-vertical > .bp3-tab-panel{
        margin-top:0;
        padding-left:20px; }
    
    .bp3-tab-list{
      -webkit-box-align:end;
          -ms-flex-align:end;
              align-items:flex-end;
      border:none;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      list-style:none;
      margin:0;
      padding:0;
      position:relative; }
      .bp3-tab-list > *:not(:last-child){
        margin-right:20px; }
    
    .bp3-tab{
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      word-wrap:normal;
      color:#182026;
      cursor:pointer;
      -webkit-box-flex:0;
          -ms-flex:0 0 auto;
              flex:0 0 auto;
      font-size:14px;
      line-height:30px;
      max-width:100%;
      position:relative;
      vertical-align:top; }
      .bp3-tab a{
        color:inherit;
        display:block;
        text-decoration:none; }
      .bp3-tab-indicator-wrapper ~ .bp3-tab{
        background-color:transparent !important;
        -webkit-box-shadow:none !important;
                box-shadow:none !important; }
      .bp3-tab[aria-disabled="true"]{
        color:rgba(92, 112, 128, 0.6);
        cursor:not-allowed; }
      .bp3-tab[aria-selected="true"]{
        border-radius:0;
        -webkit-box-shadow:inset 0 -3px 0 #106ba3;
                box-shadow:inset 0 -3px 0 #106ba3; }
      .bp3-tab[aria-selected="true"], .bp3-tab:not([aria-disabled="true"]):hover{
        color:#106ba3; }
      .bp3-tab:focus{
        -moz-outline-radius:0; }
      .bp3-large > .bp3-tab{
        font-size:16px;
        line-height:40px; }
    
    .bp3-tab-panel{
      margin-top:20px; }
      .bp3-tab-panel[aria-hidden="true"]{
        display:none; }
    
    .bp3-tab-indicator-wrapper{
      left:0;
      pointer-events:none;
      position:absolute;
      top:0;
      -webkit-transform:translateX(0), translateY(0);
              transform:translateX(0), translateY(0);
      -webkit-transition:height, width, -webkit-transform;
      transition:height, width, -webkit-transform;
      transition:height, transform, width;
      transition:height, transform, width, -webkit-transform;
      -webkit-transition-duration:200ms;
              transition-duration:200ms;
      -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
              transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-tab-indicator-wrapper .bp3-tab-indicator{
        background-color:#106ba3;
        bottom:0;
        height:3px;
        left:0;
        position:absolute;
        right:0; }
      .bp3-tab-indicator-wrapper.bp3-no-animation{
        -webkit-transition:none;
        transition:none; }
    
    .bp3-dark .bp3-tab{
      color:#f5f8fa; }
      .bp3-dark .bp3-tab[aria-disabled="true"]{
        color:rgba(167, 182, 194, 0.6); }
      .bp3-dark .bp3-tab[aria-selected="true"]{
        -webkit-box-shadow:inset 0 -3px 0 #48aff0;
                box-shadow:inset 0 -3px 0 #48aff0; }
      .bp3-dark .bp3-tab[aria-selected="true"], .bp3-dark .bp3-tab:not([aria-disabled="true"]):hover{
        color:#48aff0; }
    
    .bp3-dark .bp3-tab-indicator{
      background-color:#48aff0; }
    
    .bp3-flex-expander{
      -webkit-box-flex:1;
          -ms-flex:1 1;
              flex:1 1; }
    .bp3-tag{
      display:-webkit-inline-box;
      display:-ms-inline-flexbox;
      display:inline-flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      background-color:#5c7080;
      border:none;
      border-radius:3px;
      -webkit-box-shadow:none;
              box-shadow:none;
      color:#f5f8fa;
      font-size:12px;
      line-height:16px;
      max-width:100%;
      min-height:20px;
      min-width:20px;
      padding:2px 6px;
      position:relative; }
      .bp3-tag.bp3-interactive{
        cursor:pointer; }
        .bp3-tag.bp3-interactive:hover{
          background-color:rgba(92, 112, 128, 0.85); }
        .bp3-tag.bp3-interactive.bp3-active, .bp3-tag.bp3-interactive:active{
          background-color:rgba(92, 112, 128, 0.7); }
      .bp3-tag > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-tag > .bp3-fill{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-tag::before,
      .bp3-tag > *{
        margin-right:4px; }
      .bp3-tag:empty::before,
      .bp3-tag > :last-child{
        margin-right:0; }
      .bp3-tag:focus{
        outline:rgba(19, 124, 189, 0.6) auto 2px;
        outline-offset:0;
        -moz-outline-radius:6px; }
      .bp3-tag.bp3-round{
        border-radius:30px;
        padding-left:8px;
        padding-right:8px; }
      .bp3-dark .bp3-tag{
        background-color:#bfccd6;
        color:#182026; }
        .bp3-dark .bp3-tag.bp3-interactive{
          cursor:pointer; }
          .bp3-dark .bp3-tag.bp3-interactive:hover{
            background-color:rgba(191, 204, 214, 0.85); }
          .bp3-dark .bp3-tag.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-interactive:active{
            background-color:rgba(191, 204, 214, 0.7); }
        .bp3-dark .bp3-tag > .bp3-icon, .bp3-dark .bp3-tag .bp3-icon-standard, .bp3-dark .bp3-tag .bp3-icon-large{
          fill:currentColor; }
      .bp3-tag > .bp3-icon, .bp3-tag .bp3-icon-standard, .bp3-tag .bp3-icon-large{
        fill:#ffffff; }
      .bp3-tag.bp3-large,
      .bp3-large .bp3-tag{
        font-size:14px;
        line-height:20px;
        min-height:30px;
        min-width:30px;
        padding:5px 10px; }
        .bp3-tag.bp3-large::before,
        .bp3-tag.bp3-large > *,
        .bp3-large .bp3-tag::before,
        .bp3-large .bp3-tag > *{
          margin-right:7px; }
        .bp3-tag.bp3-large:empty::before,
        .bp3-tag.bp3-large > :last-child,
        .bp3-large .bp3-tag:empty::before,
        .bp3-large .bp3-tag > :last-child{
          margin-right:0; }
        .bp3-tag.bp3-large.bp3-round,
        .bp3-large .bp3-tag.bp3-round{
          padding-left:12px;
          padding-right:12px; }
      .bp3-tag.bp3-intent-primary{
        background:#137cbd;
        color:#ffffff; }
        .bp3-tag.bp3-intent-primary.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-intent-primary.bp3-interactive:hover{
            background-color:rgba(19, 124, 189, 0.85); }
          .bp3-tag.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-primary.bp3-interactive:active{
            background-color:rgba(19, 124, 189, 0.7); }
      .bp3-tag.bp3-intent-success{
        background:#0f9960;
        color:#ffffff; }
        .bp3-tag.bp3-intent-success.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-intent-success.bp3-interactive:hover{
            background-color:rgba(15, 153, 96, 0.85); }
          .bp3-tag.bp3-intent-success.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-success.bp3-interactive:active{
            background-color:rgba(15, 153, 96, 0.7); }
      .bp3-tag.bp3-intent-warning{
        background:#d9822b;
        color:#ffffff; }
        .bp3-tag.bp3-intent-warning.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-intent-warning.bp3-interactive:hover{
            background-color:rgba(217, 130, 43, 0.85); }
          .bp3-tag.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-warning.bp3-interactive:active{
            background-color:rgba(217, 130, 43, 0.7); }
      .bp3-tag.bp3-intent-danger{
        background:#db3737;
        color:#ffffff; }
        .bp3-tag.bp3-intent-danger.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-intent-danger.bp3-interactive:hover{
            background-color:rgba(219, 55, 55, 0.85); }
          .bp3-tag.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-tag.bp3-intent-danger.bp3-interactive:active{
            background-color:rgba(219, 55, 55, 0.7); }
      .bp3-tag.bp3-fill{
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        width:100%; }
      .bp3-tag.bp3-minimal > .bp3-icon, .bp3-tag.bp3-minimal .bp3-icon-standard, .bp3-tag.bp3-minimal .bp3-icon-large{
        fill:#5c7080; }
      .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]){
        background-color:rgba(138, 155, 168, 0.2);
        color:#182026; }
        .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:hover{
            background-color:rgba(92, 112, 128, 0.3); }
          .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive.bp3-active, .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:active{
            background-color:rgba(92, 112, 128, 0.4); }
        .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]){
          color:#f5f8fa; }
          .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive{
            cursor:pointer; }
            .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:hover{
              background-color:rgba(191, 204, 214, 0.3); }
            .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]).bp3-interactive:active{
              background-color:rgba(191, 204, 214, 0.4); }
          .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) > .bp3-icon, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) .bp3-icon-standard, .bp3-dark .bp3-tag.bp3-minimal:not([class*="bp3-intent-"]) .bp3-icon-large{
            fill:#a7b6c2; }
      .bp3-tag.bp3-minimal.bp3-intent-primary{
        background-color:rgba(19, 124, 189, 0.15);
        color:#106ba3; }
        .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:hover{
            background-color:rgba(19, 124, 189, 0.25); }
          .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:active{
            background-color:rgba(19, 124, 189, 0.35); }
        .bp3-tag.bp3-minimal.bp3-intent-primary > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-primary .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-primary .bp3-icon-large{
          fill:#137cbd; }
        .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary{
          background-color:rgba(19, 124, 189, 0.25);
          color:#48aff0; }
          .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive{
            cursor:pointer; }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:hover{
              background-color:rgba(19, 124, 189, 0.35); }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-primary.bp3-interactive:active{
              background-color:rgba(19, 124, 189, 0.45); }
      .bp3-tag.bp3-minimal.bp3-intent-success{
        background-color:rgba(15, 153, 96, 0.15);
        color:#0d8050; }
        .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:hover{
            background-color:rgba(15, 153, 96, 0.25); }
          .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:active{
            background-color:rgba(15, 153, 96, 0.35); }
        .bp3-tag.bp3-minimal.bp3-intent-success > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-success .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-success .bp3-icon-large{
          fill:#0f9960; }
        .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success{
          background-color:rgba(15, 153, 96, 0.25);
          color:#3dcc91; }
          .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive{
            cursor:pointer; }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:hover{
              background-color:rgba(15, 153, 96, 0.35); }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-success.bp3-interactive:active{
              background-color:rgba(15, 153, 96, 0.45); }
      .bp3-tag.bp3-minimal.bp3-intent-warning{
        background-color:rgba(217, 130, 43, 0.15);
        color:#bf7326; }
        .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:hover{
            background-color:rgba(217, 130, 43, 0.25); }
          .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:active{
            background-color:rgba(217, 130, 43, 0.35); }
        .bp3-tag.bp3-minimal.bp3-intent-warning > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-warning .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-warning .bp3-icon-large{
          fill:#d9822b; }
        .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning{
          background-color:rgba(217, 130, 43, 0.25);
          color:#ffb366; }
          .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive{
            cursor:pointer; }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:hover{
              background-color:rgba(217, 130, 43, 0.35); }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-warning.bp3-interactive:active{
              background-color:rgba(217, 130, 43, 0.45); }
      .bp3-tag.bp3-minimal.bp3-intent-danger{
        background-color:rgba(219, 55, 55, 0.15);
        color:#c23030; }
        .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive{
          cursor:pointer; }
          .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:hover{
            background-color:rgba(219, 55, 55, 0.25); }
          .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:active{
            background-color:rgba(219, 55, 55, 0.35); }
        .bp3-tag.bp3-minimal.bp3-intent-danger > .bp3-icon, .bp3-tag.bp3-minimal.bp3-intent-danger .bp3-icon-standard, .bp3-tag.bp3-minimal.bp3-intent-danger .bp3-icon-large{
          fill:#db3737; }
        .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger{
          background-color:rgba(219, 55, 55, 0.25);
          color:#ff7373; }
          .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive{
            cursor:pointer; }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:hover{
              background-color:rgba(219, 55, 55, 0.35); }
            .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive.bp3-active, .bp3-dark .bp3-tag.bp3-minimal.bp3-intent-danger.bp3-interactive:active{
              background-color:rgba(219, 55, 55, 0.45); }
    
    .bp3-tag-remove{
      background:none;
      border:none;
      color:inherit;
      cursor:pointer;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      margin-bottom:-2px;
      margin-right:-6px !important;
      margin-top:-2px;
      opacity:0.5;
      padding:2px;
      padding-left:0; }
      .bp3-tag-remove:hover{
        background:none;
        opacity:0.8;
        text-decoration:none; }
      .bp3-tag-remove:active{
        opacity:1; }
      .bp3-tag-remove:empty::before{
        font-family:"Icons16", sans-serif;
        font-size:16px;
        font-style:normal;
        font-weight:400;
        line-height:1;
        -moz-osx-font-smoothing:grayscale;
        -webkit-font-smoothing:antialiased;
        content:""; }
      .bp3-large .bp3-tag-remove{
        margin-right:-10px !important;
        padding:0 5px 0 0; }
        .bp3-large .bp3-tag-remove:empty::before{
          font-family:"Icons20", sans-serif;
          font-size:20px;
          font-style:normal;
          font-weight:400;
          line-height:1; }
    .bp3-tag-input{
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      -webkit-box-orient:horizontal;
      -webkit-box-direction:normal;
          -ms-flex-direction:row;
              flex-direction:row;
      -webkit-box-align:start;
          -ms-flex-align:start;
              align-items:flex-start;
      cursor:text;
      height:auto;
      line-height:inherit;
      min-height:30px;
      padding-left:5px;
      padding-right:0; }
      .bp3-tag-input > *{
        -webkit-box-flex:0;
            -ms-flex-positive:0;
                flex-grow:0;
        -ms-flex-negative:0;
            flex-shrink:0; }
      .bp3-tag-input > .bp3-tag-input-values{
        -webkit-box-flex:1;
            -ms-flex-positive:1;
                flex-grow:1;
        -ms-flex-negative:1;
            flex-shrink:1; }
      .bp3-tag-input .bp3-tag-input-icon{
        color:#5c7080;
        margin-left:2px;
        margin-right:7px;
        margin-top:7px; }
      .bp3-tag-input .bp3-tag-input-values{
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-orient:horizontal;
        -webkit-box-direction:normal;
            -ms-flex-direction:row;
                flex-direction:row;
        -webkit-box-align:center;
            -ms-flex-align:center;
                align-items:center;
        -ms-flex-item-align:stretch;
            align-self:stretch;
        -ms-flex-wrap:wrap;
            flex-wrap:wrap;
        margin-right:7px;
        margin-top:5px;
        min-width:0; }
        .bp3-tag-input .bp3-tag-input-values > *{
          -webkit-box-flex:0;
              -ms-flex-positive:0;
                  flex-grow:0;
          -ms-flex-negative:0;
              flex-shrink:0; }
        .bp3-tag-input .bp3-tag-input-values > .bp3-fill{
          -webkit-box-flex:1;
              -ms-flex-positive:1;
                  flex-grow:1;
          -ms-flex-negative:1;
              flex-shrink:1; }
        .bp3-tag-input .bp3-tag-input-values::before,
        .bp3-tag-input .bp3-tag-input-values > *{
          margin-right:5px; }
        .bp3-tag-input .bp3-tag-input-values:empty::before,
        .bp3-tag-input .bp3-tag-input-values > :last-child{
          margin-right:0; }
        .bp3-tag-input .bp3-tag-input-values:first-child .bp3-input-ghost:first-child{
          padding-left:5px; }
        .bp3-tag-input .bp3-tag-input-values > *{
          margin-bottom:5px; }
      .bp3-tag-input .bp3-tag{
        overflow-wrap:break-word; }
        .bp3-tag-input .bp3-tag.bp3-active{
          outline:rgba(19, 124, 189, 0.6) auto 2px;
          outline-offset:0;
          -moz-outline-radius:6px; }
      .bp3-tag-input .bp3-input-ghost{
        -webkit-box-flex:1;
            -ms-flex:1 1 auto;
                flex:1 1 auto;
        line-height:20px;
        width:80px; }
        .bp3-tag-input .bp3-input-ghost:disabled, .bp3-tag-input .bp3-input-ghost.bp3-disabled{
          cursor:not-allowed; }
      .bp3-tag-input .bp3-button,
      .bp3-tag-input .bp3-spinner{
        margin:3px;
        margin-left:0; }
      .bp3-tag-input .bp3-button{
        min-height:24px;
        min-width:24px;
        padding:0 7px; }
      .bp3-tag-input.bp3-large{
        height:auto;
        min-height:40px; }
        .bp3-tag-input.bp3-large::before,
        .bp3-tag-input.bp3-large > *{
          margin-right:10px; }
        .bp3-tag-input.bp3-large:empty::before,
        .bp3-tag-input.bp3-large > :last-child{
          margin-right:0; }
        .bp3-tag-input.bp3-large .bp3-tag-input-icon{
          margin-left:5px;
          margin-top:10px; }
        .bp3-tag-input.bp3-large .bp3-input-ghost{
          line-height:30px; }
        .bp3-tag-input.bp3-large .bp3-button{
          min-height:30px;
          min-width:30px;
          padding:5px 10px;
          margin:5px;
          margin-left:0; }
        .bp3-tag-input.bp3-large .bp3-spinner{
          margin:8px;
          margin-left:0; }
      .bp3-tag-input.bp3-active{
        background-color:#ffffff;
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-tag-input.bp3-active.bp3-intent-primary{
          -webkit-box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-tag-input.bp3-active.bp3-intent-success{
          -webkit-box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-tag-input.bp3-active.bp3-intent-warning{
          -webkit-box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
        .bp3-tag-input.bp3-active.bp3-intent-danger{
          -webkit-box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2);
                  box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.2); }
      .bp3-dark .bp3-tag-input .bp3-tag-input-icon, .bp3-tag-input.bp3-dark .bp3-tag-input-icon{
        color:#a7b6c2; }
      .bp3-dark .bp3-tag-input .bp3-input-ghost, .bp3-tag-input.bp3-dark .bp3-input-ghost{
        color:#f5f8fa; }
        .bp3-dark .bp3-tag-input .bp3-input-ghost::-webkit-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-webkit-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-tag-input .bp3-input-ghost::-moz-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-moz-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-tag-input .bp3-input-ghost:-ms-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost:-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-tag-input .bp3-input-ghost::-ms-input-placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::-ms-input-placeholder{
          color:rgba(167, 182, 194, 0.6); }
        .bp3-dark .bp3-tag-input .bp3-input-ghost::placeholder, .bp3-tag-input.bp3-dark .bp3-input-ghost::placeholder{
          color:rgba(167, 182, 194, 0.6); }
      .bp3-dark .bp3-tag-input.bp3-active, .bp3-tag-input.bp3-dark.bp3-active{
        background-color:rgba(16, 22, 26, 0.3);
        -webkit-box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px #137cbd, 0 0 0 1px #137cbd, 0 0 0 3px rgba(19, 124, 189, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-tag-input.bp3-active.bp3-intent-primary, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-primary{
          -webkit-box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #106ba3, 0 0 0 3px rgba(16, 107, 163, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-tag-input.bp3-active.bp3-intent-success, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-success{
          -webkit-box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #0d8050, 0 0 0 3px rgba(13, 128, 80, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-tag-input.bp3-active.bp3-intent-warning, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-warning{
          -webkit-box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #bf7326, 0 0 0 3px rgba(191, 115, 38, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
        .bp3-dark .bp3-tag-input.bp3-active.bp3-intent-danger, .bp3-tag-input.bp3-dark.bp3-active.bp3-intent-danger{
          -webkit-box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4);
                  box-shadow:0 0 0 1px #c23030, 0 0 0 3px rgba(194, 48, 48, 0.3), inset 0 0 0 1px rgba(16, 22, 26, 0.3), inset 0 1px 1px rgba(16, 22, 26, 0.4); }
    
    .bp3-input-ghost{
      background:none;
      border:none;
      -webkit-box-shadow:none;
              box-shadow:none;
      padding:0; }
      .bp3-input-ghost::-webkit-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input-ghost::-moz-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input-ghost:-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input-ghost::-ms-input-placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input-ghost::placeholder{
        color:rgba(92, 112, 128, 0.6);
        opacity:1; }
      .bp3-input-ghost:focus{
        outline:none !important; }
    .bp3-toast{
      -webkit-box-align:start;
          -ms-flex-align:start;
              align-items:flex-start;
      background-color:#ffffff;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      margin:20px 0 0;
      max-width:500px;
      min-width:300px;
      pointer-events:all;
      position:relative !important; }
      .bp3-toast.bp3-toast-enter, .bp3-toast.bp3-toast-appear{
        -webkit-transform:translateY(-40px);
                transform:translateY(-40px); }
      .bp3-toast.bp3-toast-enter-active, .bp3-toast.bp3-toast-appear-active{
        -webkit-transform:translateY(0);
                transform:translateY(0);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
      .bp3-toast.bp3-toast-enter ~ .bp3-toast, .bp3-toast.bp3-toast-appear ~ .bp3-toast{
        -webkit-transform:translateY(-40px);
                transform:translateY(-40px); }
      .bp3-toast.bp3-toast-enter-active ~ .bp3-toast, .bp3-toast.bp3-toast-appear-active ~ .bp3-toast{
        -webkit-transform:translateY(0);
                transform:translateY(0);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11);
                transition-timing-function:cubic-bezier(0.54, 1.12, 0.38, 1.11); }
      .bp3-toast.bp3-toast-exit{
        opacity:1;
        -webkit-filter:blur(0);
                filter:blur(0); }
      .bp3-toast.bp3-toast-exit-active{
        opacity:0;
        -webkit-filter:blur(10px);
                filter:blur(10px);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:300ms;
                transition-duration:300ms;
        -webkit-transition-property:opacity, -webkit-filter;
        transition-property:opacity, -webkit-filter;
        transition-property:opacity, filter;
        transition-property:opacity, filter, -webkit-filter;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-toast.bp3-toast-exit ~ .bp3-toast{
        -webkit-transform:translateY(0);
                transform:translateY(0); }
      .bp3-toast.bp3-toast-exit-active ~ .bp3-toast{
        -webkit-transform:translateY(-40px);
                transform:translateY(-40px);
        -webkit-transition-delay:50ms;
                transition-delay:50ms;
        -webkit-transition-duration:100ms;
                transition-duration:100ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-toast .bp3-button-group{
        -webkit-box-flex:0;
            -ms-flex:0 0 auto;
                flex:0 0 auto;
        padding:5px;
        padding-left:0; }
      .bp3-toast > .bp3-icon{
        color:#5c7080;
        margin:12px;
        margin-right:0; }
      .bp3-toast.bp3-dark,
      .bp3-dark .bp3-toast{
        background-color:#394b59;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
        .bp3-toast.bp3-dark > .bp3-icon,
        .bp3-dark .bp3-toast > .bp3-icon{
          color:#a7b6c2; }
      .bp3-toast[class*="bp3-intent-"] a{
        color:rgba(255, 255, 255, 0.7); }
        .bp3-toast[class*="bp3-intent-"] a:hover{
          color:#ffffff; }
      .bp3-toast[class*="bp3-intent-"] > .bp3-icon{
        color:#ffffff; }
      .bp3-toast[class*="bp3-intent-"] .bp3-button, .bp3-toast[class*="bp3-intent-"] .bp3-button::before,
      .bp3-toast[class*="bp3-intent-"] .bp3-button .bp3-icon, .bp3-toast[class*="bp3-intent-"] .bp3-button:active{
        color:rgba(255, 255, 255, 0.7) !important; }
      .bp3-toast[class*="bp3-intent-"] .bp3-button:focus{
        outline-color:rgba(255, 255, 255, 0.5); }
      .bp3-toast[class*="bp3-intent-"] .bp3-button:hover{
        background-color:rgba(255, 255, 255, 0.15) !important;
        color:#ffffff !important; }
      .bp3-toast[class*="bp3-intent-"] .bp3-button:active{
        background-color:rgba(255, 255, 255, 0.3) !important;
        color:#ffffff !important; }
      .bp3-toast[class*="bp3-intent-"] .bp3-button::after{
        background:rgba(255, 255, 255, 0.3) !important; }
      .bp3-toast.bp3-intent-primary{
        background-color:#137cbd;
        color:#ffffff; }
      .bp3-toast.bp3-intent-success{
        background-color:#0f9960;
        color:#ffffff; }
      .bp3-toast.bp3-intent-warning{
        background-color:#d9822b;
        color:#ffffff; }
      .bp3-toast.bp3-intent-danger{
        background-color:#db3737;
        color:#ffffff; }
    
    .bp3-toast-message{
      -webkit-box-flex:1;
          -ms-flex:1 1 auto;
              flex:1 1 auto;
      padding:11px;
      word-break:break-word; }
    
    .bp3-toast-container{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box !important;
      display:-ms-flexbox !important;
      display:flex !important;
      -webkit-box-orient:vertical;
      -webkit-box-direction:normal;
          -ms-flex-direction:column;
              flex-direction:column;
      left:0;
      overflow:hidden;
      padding:0 20px 20px;
      pointer-events:none;
      right:0;
      z-index:40; }
      .bp3-toast-container.bp3-toast-container-in-portal{
        position:fixed; }
      .bp3-toast-container.bp3-toast-container-inline{
        position:absolute; }
      .bp3-toast-container.bp3-toast-container-top{
        top:0; }
      .bp3-toast-container.bp3-toast-container-bottom{
        bottom:0;
        -webkit-box-orient:vertical;
        -webkit-box-direction:reverse;
            -ms-flex-direction:column-reverse;
                flex-direction:column-reverse;
        top:auto; }
      .bp3-toast-container.bp3-toast-container-left{
        -webkit-box-align:start;
            -ms-flex-align:start;
                align-items:flex-start; }
      .bp3-toast-container.bp3-toast-container-right{
        -webkit-box-align:end;
            -ms-flex-align:end;
                align-items:flex-end; }
    
    .bp3-toast-container-bottom .bp3-toast.bp3-toast-enter:not(.bp3-toast-enter-active),
    .bp3-toast-container-bottom .bp3-toast.bp3-toast-enter:not(.bp3-toast-enter-active) ~ .bp3-toast, .bp3-toast-container-bottom .bp3-toast.bp3-toast-appear:not(.bp3-toast-appear-active),
    .bp3-toast-container-bottom .bp3-toast.bp3-toast-appear:not(.bp3-toast-appear-active) ~ .bp3-toast,
    .bp3-toast-container-bottom .bp3-toast.bp3-toast-exit-active ~ .bp3-toast,
    .bp3-toast-container-bottom .bp3-toast.bp3-toast-leave-active ~ .bp3-toast{
      -webkit-transform:translateY(60px);
              transform:translateY(60px); }
    .bp3-tooltip{
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 2px 4px rgba(16, 22, 26, 0.2), 0 8px 24px rgba(16, 22, 26, 0.2);
      -webkit-transform:scale(1);
              transform:scale(1); }
      .bp3-tooltip .bp3-popover-arrow{
        height:22px;
        position:absolute;
        width:22px; }
        .bp3-tooltip .bp3-popover-arrow::before{
          height:14px;
          margin:4px;
          width:14px; }
      .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip{
        margin-bottom:11px;
        margin-top:-11px; }
        .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow{
          bottom:-8px; }
          .bp3-tether-element-attached-bottom.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow svg{
            -webkit-transform:rotate(-90deg);
                    transform:rotate(-90deg); }
      .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip{
        margin-left:11px; }
        .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow{
          left:-8px; }
          .bp3-tether-element-attached-left.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow svg{
            -webkit-transform:rotate(0);
                    transform:rotate(0); }
      .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip{
        margin-top:11px; }
        .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow{
          top:-8px; }
          .bp3-tether-element-attached-top.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow svg{
            -webkit-transform:rotate(90deg);
                    transform:rotate(90deg); }
      .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip{
        margin-left:-11px;
        margin-right:11px; }
        .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow{
          right:-8px; }
          .bp3-tether-element-attached-right.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow svg{
            -webkit-transform:rotate(180deg);
                    transform:rotate(180deg); }
      .bp3-tether-element-attached-middle > .bp3-tooltip > .bp3-popover-arrow{
        top:50%;
        -webkit-transform:translateY(-50%);
                transform:translateY(-50%); }
      .bp3-tether-element-attached-center > .bp3-tooltip > .bp3-popover-arrow{
        right:50%;
        -webkit-transform:translateX(50%);
                transform:translateX(50%); }
      .bp3-tether-element-attached-top.bp3-tether-target-attached-top > .bp3-tooltip > .bp3-popover-arrow{
        top:-0.22183px; }
      .bp3-tether-element-attached-right.bp3-tether-target-attached-right > .bp3-tooltip > .bp3-popover-arrow{
        right:-0.22183px; }
      .bp3-tether-element-attached-left.bp3-tether-target-attached-left > .bp3-tooltip > .bp3-popover-arrow{
        left:-0.22183px; }
      .bp3-tether-element-attached-bottom.bp3-tether-target-attached-bottom > .bp3-tooltip > .bp3-popover-arrow{
        bottom:-0.22183px; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-left > .bp3-tooltip{
        -webkit-transform-origin:top left;
                transform-origin:top left; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-center > .bp3-tooltip{
        -webkit-transform-origin:top center;
                transform-origin:top center; }
      .bp3-tether-element-attached-top.bp3-tether-element-attached-right > .bp3-tooltip{
        -webkit-transform-origin:top right;
                transform-origin:top right; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-left > .bp3-tooltip{
        -webkit-transform-origin:center left;
                transform-origin:center left; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-center > .bp3-tooltip{
        -webkit-transform-origin:center center;
                transform-origin:center center; }
      .bp3-tether-element-attached-middle.bp3-tether-element-attached-right > .bp3-tooltip{
        -webkit-transform-origin:center right;
                transform-origin:center right; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-left > .bp3-tooltip{
        -webkit-transform-origin:bottom left;
                transform-origin:bottom left; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-center > .bp3-tooltip{
        -webkit-transform-origin:bottom center;
                transform-origin:bottom center; }
      .bp3-tether-element-attached-bottom.bp3-tether-element-attached-right > .bp3-tooltip{
        -webkit-transform-origin:bottom right;
                transform-origin:bottom right; }
      .bp3-tooltip .bp3-popover-content{
        background:#394b59;
        color:#f5f8fa; }
      .bp3-tooltip .bp3-popover-arrow::before{
        -webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2);
                box-shadow:1px 1px 6px rgba(16, 22, 26, 0.2); }
      .bp3-tooltip .bp3-popover-arrow-border{
        fill:#10161a;
        fill-opacity:0.1; }
      .bp3-tooltip .bp3-popover-arrow-fill{
        fill:#394b59; }
      .bp3-popover-enter > .bp3-tooltip, .bp3-popover-appear > .bp3-tooltip{
        -webkit-transform:scale(0.8);
                transform:scale(0.8); }
      .bp3-popover-enter-active > .bp3-tooltip, .bp3-popover-appear-active > .bp3-tooltip{
        -webkit-transform:scale(1);
                transform:scale(1);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:100ms;
                transition-duration:100ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-popover-exit > .bp3-tooltip{
        -webkit-transform:scale(1);
                transform:scale(1); }
      .bp3-popover-exit-active > .bp3-tooltip{
        -webkit-transform:scale(0.8);
                transform:scale(0.8);
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:100ms;
                transition-duration:100ms;
        -webkit-transition-property:-webkit-transform;
        transition-property:-webkit-transform;
        transition-property:transform;
        transition-property:transform, -webkit-transform;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-tooltip .bp3-popover-content{
        padding:10px 12px; }
      .bp3-tooltip.bp3-dark,
      .bp3-dark .bp3-tooltip{
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 2px 4px rgba(16, 22, 26, 0.4), 0 8px 24px rgba(16, 22, 26, 0.4); }
        .bp3-tooltip.bp3-dark .bp3-popover-content,
        .bp3-dark .bp3-tooltip .bp3-popover-content{
          background:#e1e8ed;
          color:#394b59; }
        .bp3-tooltip.bp3-dark .bp3-popover-arrow::before,
        .bp3-dark .bp3-tooltip .bp3-popover-arrow::before{
          -webkit-box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4);
                  box-shadow:1px 1px 6px rgba(16, 22, 26, 0.4); }
        .bp3-tooltip.bp3-dark .bp3-popover-arrow-border,
        .bp3-dark .bp3-tooltip .bp3-popover-arrow-border{
          fill:#10161a;
          fill-opacity:0.2; }
        .bp3-tooltip.bp3-dark .bp3-popover-arrow-fill,
        .bp3-dark .bp3-tooltip .bp3-popover-arrow-fill{
          fill:#e1e8ed; }
      .bp3-tooltip.bp3-intent-primary .bp3-popover-content{
        background:#137cbd;
        color:#ffffff; }
      .bp3-tooltip.bp3-intent-primary .bp3-popover-arrow-fill{
        fill:#137cbd; }
      .bp3-tooltip.bp3-intent-success .bp3-popover-content{
        background:#0f9960;
        color:#ffffff; }
      .bp3-tooltip.bp3-intent-success .bp3-popover-arrow-fill{
        fill:#0f9960; }
      .bp3-tooltip.bp3-intent-warning .bp3-popover-content{
        background:#d9822b;
        color:#ffffff; }
      .bp3-tooltip.bp3-intent-warning .bp3-popover-arrow-fill{
        fill:#d9822b; }
      .bp3-tooltip.bp3-intent-danger .bp3-popover-content{
        background:#db3737;
        color:#ffffff; }
      .bp3-tooltip.bp3-intent-danger .bp3-popover-arrow-fill{
        fill:#db3737; }
    
    .bp3-tooltip-indicator{
      border-bottom:dotted 1px;
      cursor:help; }
    .bp3-tree .bp3-icon, .bp3-tree .bp3-icon-standard, .bp3-tree .bp3-icon-large{
      color:#5c7080; }
      .bp3-tree .bp3-icon.bp3-intent-primary, .bp3-tree .bp3-icon-standard.bp3-intent-primary, .bp3-tree .bp3-icon-large.bp3-intent-primary{
        color:#137cbd; }
      .bp3-tree .bp3-icon.bp3-intent-success, .bp3-tree .bp3-icon-standard.bp3-intent-success, .bp3-tree .bp3-icon-large.bp3-intent-success{
        color:#0f9960; }
      .bp3-tree .bp3-icon.bp3-intent-warning, .bp3-tree .bp3-icon-standard.bp3-intent-warning, .bp3-tree .bp3-icon-large.bp3-intent-warning{
        color:#d9822b; }
      .bp3-tree .bp3-icon.bp3-intent-danger, .bp3-tree .bp3-icon-standard.bp3-intent-danger, .bp3-tree .bp3-icon-large.bp3-intent-danger{
        color:#db3737; }
    
    .bp3-tree-node-list{
      list-style:none;
      margin:0;
      padding-left:0; }
    
    .bp3-tree-root{
      background-color:transparent;
      cursor:default;
      padding-left:0;
      position:relative; }
    
    .bp3-tree-node-content-0{
      padding-left:0px; }
    
    .bp3-tree-node-content-1{
      padding-left:23px; }
    
    .bp3-tree-node-content-2{
      padding-left:46px; }
    
    .bp3-tree-node-content-3{
      padding-left:69px; }
    
    .bp3-tree-node-content-4{
      padding-left:92px; }
    
    .bp3-tree-node-content-5{
      padding-left:115px; }
    
    .bp3-tree-node-content-6{
      padding-left:138px; }
    
    .bp3-tree-node-content-7{
      padding-left:161px; }
    
    .bp3-tree-node-content-8{
      padding-left:184px; }
    
    .bp3-tree-node-content-9{
      padding-left:207px; }
    
    .bp3-tree-node-content-10{
      padding-left:230px; }
    
    .bp3-tree-node-content-11{
      padding-left:253px; }
    
    .bp3-tree-node-content-12{
      padding-left:276px; }
    
    .bp3-tree-node-content-13{
      padding-left:299px; }
    
    .bp3-tree-node-content-14{
      padding-left:322px; }
    
    .bp3-tree-node-content-15{
      padding-left:345px; }
    
    .bp3-tree-node-content-16{
      padding-left:368px; }
    
    .bp3-tree-node-content-17{
      padding-left:391px; }
    
    .bp3-tree-node-content-18{
      padding-left:414px; }
    
    .bp3-tree-node-content-19{
      padding-left:437px; }
    
    .bp3-tree-node-content-20{
      padding-left:460px; }
    
    .bp3-tree-node-content{
      -webkit-box-align:center;
          -ms-flex-align:center;
              align-items:center;
      display:-webkit-box;
      display:-ms-flexbox;
      display:flex;
      height:30px;
      padding-right:5px;
      width:100%; }
      .bp3-tree-node-content:hover{
        background-color:rgba(191, 204, 214, 0.4); }
    
    .bp3-tree-node-caret,
    .bp3-tree-node-caret-none{
      min-width:30px; }
    
    .bp3-tree-node-caret{
      color:#5c7080;
      cursor:pointer;
      padding:7px;
      -webkit-transform:rotate(0deg);
              transform:rotate(0deg);
      -webkit-transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:-webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9);
      transition:transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9), -webkit-transform 200ms cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-tree-node-caret:hover{
        color:#182026; }
      .bp3-dark .bp3-tree-node-caret{
        color:#a7b6c2; }
        .bp3-dark .bp3-tree-node-caret:hover{
          color:#f5f8fa; }
      .bp3-tree-node-caret.bp3-tree-node-caret-open{
        -webkit-transform:rotate(90deg);
                transform:rotate(90deg); }
      .bp3-tree-node-caret.bp3-icon-standard::before{
        content:""; }
    
    .bp3-tree-node-icon{
      margin-right:7px;
      position:relative; }
    
    .bp3-tree-node-label{
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      word-wrap:normal;
      -webkit-box-flex:1;
          -ms-flex:1 1 auto;
              flex:1 1 auto;
      position:relative;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-tree-node-label span{
        display:inline; }
    
    .bp3-tree-node-secondary-label{
      padding:0 5px;
      -webkit-user-select:none;
         -moz-user-select:none;
          -ms-user-select:none;
              user-select:none; }
      .bp3-tree-node-secondary-label .bp3-popover-wrapper,
      .bp3-tree-node-secondary-label .bp3-popover-target{
        -webkit-box-align:center;
            -ms-flex-align:center;
                align-items:center;
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex; }
    
    .bp3-tree-node.bp3-disabled .bp3-tree-node-content{
      background-color:inherit;
      color:rgba(92, 112, 128, 0.6);
      cursor:not-allowed; }
    
    .bp3-tree-node.bp3-disabled .bp3-tree-node-caret,
    .bp3-tree-node.bp3-disabled .bp3-tree-node-icon{
      color:rgba(92, 112, 128, 0.6);
      cursor:not-allowed; }
    
    .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content{
      background-color:#137cbd; }
      .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content,
      .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon, .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon-standard, .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-icon-large{
        color:#ffffff; }
      .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-tree-node-caret::before{
        color:rgba(255, 255, 255, 0.7); }
      .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content .bp3-tree-node-caret:hover::before{
        color:#ffffff; }
    
    .bp3-dark .bp3-tree-node-content:hover{
      background-color:rgba(92, 112, 128, 0.3); }
    
    .bp3-dark .bp3-tree .bp3-icon, .bp3-dark .bp3-tree .bp3-icon-standard, .bp3-dark .bp3-tree .bp3-icon-large{
      color:#a7b6c2; }
      .bp3-dark .bp3-tree .bp3-icon.bp3-intent-primary, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-primary, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-primary{
        color:#137cbd; }
      .bp3-dark .bp3-tree .bp3-icon.bp3-intent-success, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-success, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-success{
        color:#0f9960; }
      .bp3-dark .bp3-tree .bp3-icon.bp3-intent-warning, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-warning, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-warning{
        color:#d9822b; }
      .bp3-dark .bp3-tree .bp3-icon.bp3-intent-danger, .bp3-dark .bp3-tree .bp3-icon-standard.bp3-intent-danger, .bp3-dark .bp3-tree .bp3-icon-large.bp3-intent-danger{
        color:#db3737; }
    
    .bp3-dark .bp3-tree-node.bp3-tree-node-selected > .bp3-tree-node-content{
      background-color:#137cbd; }
    .bp3-omnibar{
      -webkit-filter:blur(0);
              filter:blur(0);
      opacity:1;
      background-color:#ffffff;
      border-radius:3px;
      -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
              box-shadow:0 0 0 1px rgba(16, 22, 26, 0.1), 0 4px 8px rgba(16, 22, 26, 0.2), 0 18px 46px 6px rgba(16, 22, 26, 0.2);
      left:calc(50% - 250px);
      top:20vh;
      width:500px;
      z-index:21; }
      .bp3-omnibar.bp3-overlay-enter, .bp3-omnibar.bp3-overlay-appear{
        -webkit-filter:blur(20px);
                filter:blur(20px);
        opacity:0.2; }
      .bp3-omnibar.bp3-overlay-enter-active, .bp3-omnibar.bp3-overlay-appear-active{
        -webkit-filter:blur(0);
                filter:blur(0);
        opacity:1;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:200ms;
                transition-duration:200ms;
        -webkit-transition-property:opacity, -webkit-filter;
        transition-property:opacity, -webkit-filter;
        transition-property:filter, opacity;
        transition-property:filter, opacity, -webkit-filter;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-omnibar.bp3-overlay-exit{
        -webkit-filter:blur(0);
                filter:blur(0);
        opacity:1; }
      .bp3-omnibar.bp3-overlay-exit-active{
        -webkit-filter:blur(20px);
                filter:blur(20px);
        opacity:0.2;
        -webkit-transition-delay:0;
                transition-delay:0;
        -webkit-transition-duration:200ms;
                transition-duration:200ms;
        -webkit-transition-property:opacity, -webkit-filter;
        transition-property:opacity, -webkit-filter;
        transition-property:filter, opacity;
        transition-property:filter, opacity, -webkit-filter;
        -webkit-transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9);
                transition-timing-function:cubic-bezier(0.4, 1, 0.75, 0.9); }
      .bp3-omnibar .bp3-input{
        background-color:transparent;
        border-radius:0; }
        .bp3-omnibar .bp3-input, .bp3-omnibar .bp3-input:focus{
          -webkit-box-shadow:none;
                  box-shadow:none; }
      .bp3-omnibar .bp3-menu{
        background-color:transparent;
        border-radius:0;
        -webkit-box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
                box-shadow:inset 0 1px 0 rgba(16, 22, 26, 0.15);
        max-height:calc(60vh - 40px);
        overflow:auto; }
        .bp3-omnibar .bp3-menu:empty{
          display:none; }
      .bp3-dark .bp3-omnibar, .bp3-omnibar.bp3-dark{
        background-color:#30404d;
        -webkit-box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4);
                box-shadow:0 0 0 1px rgba(16, 22, 26, 0.2), 0 4px 8px rgba(16, 22, 26, 0.4), 0 18px 46px 6px rgba(16, 22, 26, 0.4); }
    
    .bp3-omnibar-overlay .bp3-overlay-backdrop{
      background-color:rgba(16, 22, 26, 0.2); }
    
    .bp3-select-popover .bp3-popover-content{
      padding:5px; }
    
    .bp3-select-popover .bp3-input-group{
      margin-bottom:0; }
    
    .bp3-select-popover .bp3-menu{
      max-height:300px;
      max-width:400px;
      overflow:auto;
      padding:0; }
      .bp3-select-popover .bp3-menu:not(:first-child){
        padding-top:5px; }
    
    .bp3-multi-select{
      min-width:150px; }
    
    .bp3-multi-select-popover .bp3-menu{
      max-height:300px;
      max-width:400px;
      overflow:auto; }
    
    .bp3-select-popover .bp3-popover-content{
      padding:5px; }
    
    .bp3-select-popover .bp3-input-group{
      margin-bottom:0; }
    
    .bp3-select-popover .bp3-menu{
      max-height:300px;
      max-width:400px;
      overflow:auto;
      padding:0; }
      .bp3-select-popover .bp3-menu:not(:first-child){
        padding-top:5px; }
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */
    
    /**
     * (DEPRECATED) Support for consuming icons as CSS background images
     */
    
    /* Icons urls */
    
    :root {
      --jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
      --jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
      --jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+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-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+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==);
      --jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
      --jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+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,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,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-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-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,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,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=);
      --jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
      --jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
      --jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
      --jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
      --jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
      --jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
      --jp-icon-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+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-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-AddIcon {
      background-image: var(--jp-icon-add);
    }
    .jp-BugIcon {
      background-image: var(--jp-icon-bug);
    }
    .jp-BuildIcon {
      background-image: var(--jp-icon-build);
    }
    .jp-CaretDownEmptyIcon {
      background-image: var(--jp-icon-caret-down-empty);
    }
    .jp-CaretDownEmptyThinIcon {
      background-image: var(--jp-icon-caret-down-empty-thin);
    }
    .jp-CaretDownIcon {
      background-image: var(--jp-icon-caret-down);
    }
    .jp-CaretLeftIcon {
      background-image: var(--jp-icon-caret-left);
    }
    .jp-CaretRightIcon {
      background-image: var(--jp-icon-caret-right);
    }
    .jp-CaretUpEmptyThinIcon {
      background-image: var(--jp-icon-caret-up-empty-thin);
    }
    .jp-CaretUpIcon {
      background-image: var(--jp-icon-caret-up);
    }
    .jp-CaseSensitiveIcon {
      background-image: var(--jp-icon-case-sensitive);
    }
    .jp-CheckIcon {
      background-image: var(--jp-icon-check);
    }
    .jp-CircleEmptyIcon {
      background-image: var(--jp-icon-circle-empty);
    }
    .jp-CircleIcon {
      background-image: var(--jp-icon-circle);
    }
    .jp-ClearIcon {
      background-image: var(--jp-icon-clear);
    }
    .jp-CloseIcon {
      background-image: var(--jp-icon-close);
    }
    .jp-CodeIcon {
      background-image: var(--jp-icon-code);
    }
    .jp-ConsoleIcon {
      background-image: var(--jp-icon-console);
    }
    .jp-CopyIcon {
      background-image: var(--jp-icon-copy);
    }
    .jp-CopyrightIcon {
      background-image: var(--jp-icon-copyright);
    }
    .jp-CutIcon {
      background-image: var(--jp-icon-cut);
    }
    .jp-DownloadIcon {
      background-image: var(--jp-icon-download);
    }
    .jp-EditIcon {
      background-image: var(--jp-icon-edit);
    }
    .jp-EllipsesIcon {
      background-image: var(--jp-icon-ellipses);
    }
    .jp-ExtensionIcon {
      background-image: var(--jp-icon-extension);
    }
    .jp-FastForwardIcon {
      background-image: var(--jp-icon-fast-forward);
    }
    .jp-FileIcon {
      background-image: var(--jp-icon-file);
    }
    .jp-FileUploadIcon {
      background-image: var(--jp-icon-file-upload);
    }
    .jp-FilterListIcon {
      background-image: var(--jp-icon-filter-list);
    }
    .jp-FolderIcon {
      background-image: var(--jp-icon-folder);
    }
    .jp-Html5Icon {
      background-image: var(--jp-icon-html5);
    }
    .jp-ImageIcon {
      background-image: var(--jp-icon-image);
    }
    .jp-InspectorIcon {
      background-image: var(--jp-icon-inspector);
    }
    .jp-JsonIcon {
      background-image: var(--jp-icon-json);
    }
    .jp-JuliaIcon {
      background-image: var(--jp-icon-julia);
    }
    .jp-JupyterFaviconIcon {
      background-image: var(--jp-icon-jupyter-favicon);
    }
    .jp-JupyterIcon {
      background-image: var(--jp-icon-jupyter);
    }
    .jp-JupyterlabWordmarkIcon {
      background-image: var(--jp-icon-jupyterlab-wordmark);
    }
    .jp-KernelIcon {
      background-image: var(--jp-icon-kernel);
    }
    .jp-KeyboardIcon {
      background-image: var(--jp-icon-keyboard);
    }
    .jp-LauncherIcon {
      background-image: var(--jp-icon-launcher);
    }
    .jp-LineFormIcon {
      background-image: var(--jp-icon-line-form);
    }
    .jp-LinkIcon {
      background-image: var(--jp-icon-link);
    }
    .jp-ListIcon {
      background-image: var(--jp-icon-list);
    }
    .jp-ListingsInfoIcon {
      background-image: var(--jp-icon-listings-info);
    }
    .jp-MarkdownIcon {
      background-image: var(--jp-icon-markdown);
    }
    .jp-NewFolderIcon {
      background-image: var(--jp-icon-new-folder);
    }
    .jp-NotTrustedIcon {
      background-image: var(--jp-icon-not-trusted);
    }
    .jp-NotebookIcon {
      background-image: var(--jp-icon-notebook);
    }
    .jp-NumberingIcon {
      background-image: var(--jp-icon-numbering);
    }
    .jp-OfflineBoltIcon {
      background-image: var(--jp-icon-offline-bolt);
    }
    .jp-PaletteIcon {
      background-image: var(--jp-icon-palette);
    }
    .jp-PasteIcon {
      background-image: var(--jp-icon-paste);
    }
    .jp-PdfIcon {
      background-image: var(--jp-icon-pdf);
    }
    .jp-PythonIcon {
      background-image: var(--jp-icon-python);
    }
    .jp-RKernelIcon {
      background-image: var(--jp-icon-r-kernel);
    }
    .jp-ReactIcon {
      background-image: var(--jp-icon-react);
    }
    .jp-RedoIcon {
      background-image: var(--jp-icon-redo);
    }
    .jp-RefreshIcon {
      background-image: var(--jp-icon-refresh);
    }
    .jp-RegexIcon {
      background-image: var(--jp-icon-regex);
    }
    .jp-RunIcon {
      background-image: var(--jp-icon-run);
    }
    .jp-RunningIcon {
      background-image: var(--jp-icon-running);
    }
    .jp-SaveIcon {
      background-image: var(--jp-icon-save);
    }
    .jp-SearchIcon {
      background-image: var(--jp-icon-search);
    }
    .jp-SettingsIcon {
      background-image: var(--jp-icon-settings);
    }
    .jp-SpreadsheetIcon {
      background-image: var(--jp-icon-spreadsheet);
    }
    .jp-StopIcon {
      background-image: var(--jp-icon-stop);
    }
    .jp-TabIcon {
      background-image: var(--jp-icon-tab);
    }
    .jp-TableRowsIcon {
      background-image: var(--jp-icon-table-rows);
    }
    .jp-TagIcon {
      background-image: var(--jp-icon-tag);
    }
    .jp-TerminalIcon {
      background-image: var(--jp-icon-terminal);
    }
    .jp-TextEditorIcon {
      background-image: var(--jp-icon-text-editor);
    }
    .jp-TocIcon {
      background-image: var(--jp-icon-toc);
    }
    .jp-TreeViewIcon {
      background-image: var(--jp-icon-tree-view);
    }
    .jp-TrustedIcon {
      background-image: var(--jp-icon-trusted);
    }
    .jp-UndoIcon {
      background-image: var(--jp-icon-undo);
    }
    .jp-VegaIcon {
      background-image: var(--jp-icon-vega);
    }
    .jp-YamlIcon {
      background-image: var(--jp-icon-yaml);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /**
     * (DEPRECATED) Support for consuming icons as CSS background images
     */
    
    .jp-Icon,
    .jp-MaterialIcon {
      background-position: center;
      background-repeat: no-repeat;
      background-size: 16px;
      min-width: 16px;
      min-height: 16px;
    }
    
    .jp-Icon-cover {
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }
    
    /**
     * (DEPRECATED) Support for specific CSS icon sizes
     */
    
    .jp-Icon-16 {
      background-size: 16px;
      min-width: 16px;
      min-height: 16px;
    }
    
    .jp-Icon-18 {
      background-size: 18px;
      min-width: 18px;
      min-height: 18px;
    }
    
    .jp-Icon-20 {
      background-size: 20px;
      min-width: 20px;
      min-height: 20px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /**
     * Support for icons as inline SVG HTMLElements
     */
    
    /* recolor the primary elements of an icon */
    .jp-icon0[fill] {
      fill: var(--jp-inverse-layout-color0);
    }
    .jp-icon1[fill] {
      fill: var(--jp-inverse-layout-color1);
    }
    .jp-icon2[fill] {
      fill: var(--jp-inverse-layout-color2);
    }
    .jp-icon3[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    .jp-icon4[fill] {
      fill: var(--jp-inverse-layout-color4);
    }
    
    .jp-icon0[stroke] {
      stroke: var(--jp-inverse-layout-color0);
    }
    .jp-icon1[stroke] {
      stroke: var(--jp-inverse-layout-color1);
    }
    .jp-icon2[stroke] {
      stroke: var(--jp-inverse-layout-color2);
    }
    .jp-icon3[stroke] {
      stroke: var(--jp-inverse-layout-color3);
    }
    .jp-icon4[stroke] {
      stroke: var(--jp-inverse-layout-color4);
    }
    /* recolor the accent elements of an icon */
    .jp-icon-accent0[fill] {
      fill: var(--jp-layout-color0);
    }
    .jp-icon-accent1[fill] {
      fill: var(--jp-layout-color1);
    }
    .jp-icon-accent2[fill] {
      fill: var(--jp-layout-color2);
    }
    .jp-icon-accent3[fill] {
      fill: var(--jp-layout-color3);
    }
    .jp-icon-accent4[fill] {
      fill: var(--jp-layout-color4);
    }
    
    .jp-icon-accent0[stroke] {
      stroke: var(--jp-layout-color0);
    }
    .jp-icon-accent1[stroke] {
      stroke: var(--jp-layout-color1);
    }
    .jp-icon-accent2[stroke] {
      stroke: var(--jp-layout-color2);
    }
    .jp-icon-accent3[stroke] {
      stroke: var(--jp-layout-color3);
    }
    .jp-icon-accent4[stroke] {
      stroke: var(--jp-layout-color4);
    }
    /* set the color of an icon to transparent */
    .jp-icon-none[fill] {
      fill: none;
    }
    
    .jp-icon-none[stroke] {
      stroke: none;
    }
    /* brand icon colors. Same for light and dark */
    .jp-icon-brand0[fill] {
      fill: var(--jp-brand-color0);
    }
    .jp-icon-brand1[fill] {
      fill: var(--jp-brand-color1);
    }
    .jp-icon-brand2[fill] {
      fill: var(--jp-brand-color2);
    }
    .jp-icon-brand3[fill] {
      fill: var(--jp-brand-color3);
    }
    .jp-icon-brand4[fill] {
      fill: var(--jp-brand-color4);
    }
    
    .jp-icon-brand0[stroke] {
      stroke: var(--jp-brand-color0);
    }
    .jp-icon-brand1[stroke] {
      stroke: var(--jp-brand-color1);
    }
    .jp-icon-brand2[stroke] {
      stroke: var(--jp-brand-color2);
    }
    .jp-icon-brand3[stroke] {
      stroke: var(--jp-brand-color3);
    }
    .jp-icon-brand4[stroke] {
      stroke: var(--jp-brand-color4);
    }
    /* warn icon colors. Same for light and dark */
    .jp-icon-warn0[fill] {
      fill: var(--jp-warn-color0);
    }
    .jp-icon-warn1[fill] {
      fill: var(--jp-warn-color1);
    }
    .jp-icon-warn2[fill] {
      fill: var(--jp-warn-color2);
    }
    .jp-icon-warn3[fill] {
      fill: var(--jp-warn-color3);
    }
    
    .jp-icon-warn0[stroke] {
      stroke: var(--jp-warn-color0);
    }
    .jp-icon-warn1[stroke] {
      stroke: var(--jp-warn-color1);
    }
    .jp-icon-warn2[stroke] {
      stroke: var(--jp-warn-color2);
    }
    .jp-icon-warn3[stroke] {
      stroke: var(--jp-warn-color3);
    }
    /* icon colors that contrast well with each other and most backgrounds */
    .jp-icon-contrast0[fill] {
      fill: var(--jp-icon-contrast-color0);
    }
    .jp-icon-contrast1[fill] {
      fill: var(--jp-icon-contrast-color1);
    }
    .jp-icon-contrast2[fill] {
      fill: var(--jp-icon-contrast-color2);
    }
    .jp-icon-contrast3[fill] {
      fill: var(--jp-icon-contrast-color3);
    }
    
    .jp-icon-contrast0[stroke] {
      stroke: var(--jp-icon-contrast-color0);
    }
    .jp-icon-contrast1[stroke] {
      stroke: var(--jp-icon-contrast-color1);
    }
    .jp-icon-contrast2[stroke] {
      stroke: var(--jp-icon-contrast-color2);
    }
    .jp-icon-contrast3[stroke] {
      stroke: var(--jp-icon-contrast-color3);
    }
    
    /* CSS for icons in selected items in the settings editor */
    #setting-editor .jp-PluginList .jp-mod-selected .jp-icon-selectable[fill] {
      fill: #fff;
    }
    #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 */
    .jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
      fill: #fff;
    }
    .jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
      fill: var(--jp-brand-color1);
    }
    
    /* CSS for icons in selected tabs in the sidebar tab manager */
    #tab-manager .lm-TabBar-tab.jp-mod-active .jp-icon-selectable[fill] {
      fill: #fff;
    }
    
    #tab-manager .lm-TabBar-tab.jp-mod-active .jp-icon-selectable-inverse[fill] {
      fill: var(--jp-brand-color1);
    }
    #tab-manager
      .lm-TabBar-tab.jp-mod-active
      .jp-icon-hover
      :hover
      .jp-icon-selectable[fill] {
      fill: var(--jp-brand-color1);
    }
    
    #tab-manager
      .lm-TabBar-tab.jp-mod-active
      .jp-icon-hover
      :hover
      .jp-icon-selectable-inverse[fill] {
      fill: #fff;
    }
    
    /**
     * TODO: come up with non css-hack solution for showing the busy icon on top
     *  of the close icon
     * CSS for complex behavior of close icon of tabs in the sidebar tab manager
     */
    #tab-manager
      .lm-TabBar-tab.jp-mod-dirty
      > .lm-TabBar-tabCloseIcon
      > :not(:hover)
      > .jp-icon3[fill] {
      fill: none;
    }
    #tab-manager
      .lm-TabBar-tab.jp-mod-dirty
      > .lm-TabBar-tabCloseIcon
      > :not(:hover)
      > .jp-icon-busy[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    
    #tab-manager
      .lm-TabBar-tab.jp-mod-dirty.jp-mod-active
      > .lm-TabBar-tabCloseIcon
      > :not(:hover)
      > .jp-icon-busy[fill] {
      fill: #fff;
    }
    
    /**
    * TODO: come up with non css-hack solution for showing the busy icon on top
    *  of the close icon
    * CSS for complex behavior of close icon of tabs in the main area tabbar
    */
    .lm-DockPanel-tabBar
      .lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
      > .lm-TabBar-tabCloseIcon
      > :not(:hover)
      > .jp-icon3[fill] {
      fill: none;
    }
    .lm-DockPanel-tabBar
      .lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
      > .lm-TabBar-tabCloseIcon
      > :not(:hover)
      > .jp-icon-busy[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    
    /* CSS for icons in status bar */
    #jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
      fill: #fff;
    }
    
    #jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
      fill: var(--jp-brand-color1);
    }
    /* special handling for splash icon CSS. While the theme CSS reloads during
       splash, the splash icon can loose theming. To prevent that, we set a
       default for its color variable */
    :root {
      --jp-warn-color0: var(--md-orange-700);
    }
    
    /* not sure what to do with this one, used in filebrowser listing */
    .jp-DragIcon {
      margin-right: 4px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /**
     * Support for alt colors for icons as inline SVG HTMLElements
     */
    
    /* alt recolor the primary elements of an icon */
    .jp-icon-alt .jp-icon0[fill] {
      fill: var(--jp-layout-color0);
    }
    .jp-icon-alt .jp-icon1[fill] {
      fill: var(--jp-layout-color1);
    }
    .jp-icon-alt .jp-icon2[fill] {
      fill: var(--jp-layout-color2);
    }
    .jp-icon-alt .jp-icon3[fill] {
      fill: var(--jp-layout-color3);
    }
    .jp-icon-alt .jp-icon4[fill] {
      fill: var(--jp-layout-color4);
    }
    
    .jp-icon-alt .jp-icon0[stroke] {
      stroke: var(--jp-layout-color0);
    }
    .jp-icon-alt .jp-icon1[stroke] {
      stroke: var(--jp-layout-color1);
    }
    .jp-icon-alt .jp-icon2[stroke] {
      stroke: var(--jp-layout-color2);
    }
    .jp-icon-alt .jp-icon3[stroke] {
      stroke: var(--jp-layout-color3);
    }
    .jp-icon-alt .jp-icon4[stroke] {
      stroke: var(--jp-layout-color4);
    }
    
    /* alt recolor the accent elements of an icon */
    .jp-icon-alt .jp-icon-accent0[fill] {
      fill: var(--jp-inverse-layout-color0);
    }
    .jp-icon-alt .jp-icon-accent1[fill] {
      fill: var(--jp-inverse-layout-color1);
    }
    .jp-icon-alt .jp-icon-accent2[fill] {
      fill: var(--jp-inverse-layout-color2);
    }
    .jp-icon-alt .jp-icon-accent3[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    .jp-icon-alt .jp-icon-accent4[fill] {
      fill: var(--jp-inverse-layout-color4);
    }
    
    .jp-icon-alt .jp-icon-accent0[stroke] {
      stroke: var(--jp-inverse-layout-color0);
    }
    .jp-icon-alt .jp-icon-accent1[stroke] {
      stroke: var(--jp-inverse-layout-color1);
    }
    .jp-icon-alt .jp-icon-accent2[stroke] {
      stroke: var(--jp-inverse-layout-color2);
    }
    .jp-icon-alt .jp-icon-accent3[stroke] {
      stroke: var(--jp-inverse-layout-color3);
    }
    .jp-icon-alt .jp-icon-accent4[stroke] {
      stroke: var(--jp-inverse-layout-color4);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-icon-hoverShow:not(:hover) svg {
      display: none !important;
    }
    
    /**
     * Support for hover colors for icons as inline SVG HTMLElements
     */
    
    /**
     * regular colors
     */
    
    /* recolor the primary elements of an icon */
    .jp-icon-hover :hover .jp-icon0-hover[fill] {
      fill: var(--jp-inverse-layout-color0);
    }
    .jp-icon-hover :hover .jp-icon1-hover[fill] {
      fill: var(--jp-inverse-layout-color1);
    }
    .jp-icon-hover :hover .jp-icon2-hover[fill] {
      fill: var(--jp-inverse-layout-color2);
    }
    .jp-icon-hover :hover .jp-icon3-hover[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    .jp-icon-hover :hover .jp-icon4-hover[fill] {
      fill: var(--jp-inverse-layout-color4);
    }
    
    .jp-icon-hover :hover .jp-icon0-hover[stroke] {
      stroke: var(--jp-inverse-layout-color0);
    }
    .jp-icon-hover :hover .jp-icon1-hover[stroke] {
      stroke: var(--jp-inverse-layout-color1);
    }
    .jp-icon-hover :hover .jp-icon2-hover[stroke] {
      stroke: var(--jp-inverse-layout-color2);
    }
    .jp-icon-hover :hover .jp-icon3-hover[stroke] {
      stroke: var(--jp-inverse-layout-color3);
    }
    .jp-icon-hover :hover .jp-icon4-hover[stroke] {
      stroke: var(--jp-inverse-layout-color4);
    }
    
    /* recolor the accent elements of an icon */
    .jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
      fill: var(--jp-layout-color0);
    }
    .jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
      fill: var(--jp-layout-color1);
    }
    .jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
      fill: var(--jp-layout-color2);
    }
    .jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
      fill: var(--jp-layout-color3);
    }
    .jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
      fill: var(--jp-layout-color4);
    }
    
    .jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
      stroke: var(--jp-layout-color0);
    }
    .jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
      stroke: var(--jp-layout-color1);
    }
    .jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
      stroke: var(--jp-layout-color2);
    }
    .jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
      stroke: var(--jp-layout-color3);
    }
    .jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
      stroke: var(--jp-layout-color4);
    }
    
    /* set the color of an icon to transparent */
    .jp-icon-hover :hover .jp-icon-none-hover[fill] {
      fill: none;
    }
    
    .jp-icon-hover :hover .jp-icon-none-hover[stroke] {
      stroke: none;
    }
    
    /**
     * inverse colors
     */
    
    /* inverse recolor the primary elements of an icon */
    .jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
      fill: var(--jp-layout-color0);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
      fill: var(--jp-layout-color1);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
      fill: var(--jp-layout-color2);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
      fill: var(--jp-layout-color3);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
      fill: var(--jp-layout-color4);
    }
    
    .jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
      stroke: var(--jp-layout-color0);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
      stroke: var(--jp-layout-color1);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
      stroke: var(--jp-layout-color2);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
      stroke: var(--jp-layout-color3);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
      stroke: var(--jp-layout-color4);
    }
    
    /* inverse recolor the accent elements of an icon */
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
      fill: var(--jp-inverse-layout-color0);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
      fill: var(--jp-inverse-layout-color1);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
      fill: var(--jp-inverse-layout-color2);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
      fill: var(--jp-inverse-layout-color3);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
      fill: var(--jp-inverse-layout-color4);
    }
    
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
      stroke: var(--jp-inverse-layout-color0);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
      stroke: var(--jp-inverse-layout-color1);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
      stroke: var(--jp-inverse-layout-color2);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
      stroke: var(--jp-inverse-layout-color3);
    }
    .jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
      stroke: var(--jp-inverse-layout-color4);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-switch {
      display: flex;
      align-items: center;
      padding-left: 4px;
      padding-right: 4px;
      font-size: var(--jp-ui-font-size1);
      background-color: transparent;
      color: var(--jp-ui-font-color1);
      border: none;
      height: 20px;
    }
    
    .jp-switch:hover {
      background-color: var(--jp-layout-color2);
    }
    
    .jp-switch-label {
      margin-right: 5px;
    }
    
    .jp-switch-track {
      cursor: pointer;
      background-color: var(--jp-border-color1);
      -webkit-transition: 0.4s;
      transition: 0.4s;
      border-radius: 34px;
      height: 16px;
      width: 35px;
      position: relative;
    }
    
    .jp-switch-track::before {
      content: '';
      position: absolute;
      height: 10px;
      width: 10px;
      margin: 3px;
      left: 0px;
      background-color: var(--jp-ui-inverse-font-color1);
      -webkit-transition: 0.4s;
      transition: 0.4s;
      border-radius: 50%;
    }
    
    .jp-switch[aria-checked='true'] .jp-switch-track {
      background-color: var(--jp-warn-color0);
    }
    
    .jp-switch[aria-checked='true'] .jp-switch-track::before {
      /* track width (35) - margins (3 + 3) - thumb width (10) */
      left: 19px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /* Sibling imports */
    
    /* Override Blueprint's _reset.scss styles */
    html {
      box-sizing: unset;
    }
    
    *,
    *::before,
    *::after {
      box-sizing: unset;
    }
    
    body {
      color: unset;
      font-family: var(--jp-ui-font-family);
    }
    
    p {
      margin-top: unset;
      margin-bottom: unset;
    }
    
    small {
      font-size: unset;
    }
    
    strong {
      font-weight: unset;
    }
    
    /* Override Blueprint's _typography.scss styles */
    a {
      text-decoration: unset;
      color: unset;
    }
    a:hover {
      text-decoration: unset;
      color: unset;
    }
    
    /* Override Blueprint's _accessibility.scss styles */
    :focus {
      outline: unset;
      outline-offset: unset;
      -moz-outline-radius: unset;
    }
    
    /* Styles for ui-components */
    .jp-Button {
      border-radius: var(--jp-border-radius);
      padding: 0px 12px;
      font-size: var(--jp-ui-font-size1);
    }
    
    /* Use our own theme for hover styles */
    button.jp-Button.bp3-button.bp3-minimal:hover {
      background-color: var(--jp-layout-color2);
    }
    .jp-Button.minimal {
      color: unset !important;
    }
    
    .jp-Button.jp-ToolbarButtonComponent {
      text-transform: none;
    }
    
    .jp-InputGroup input {
      box-sizing: border-box;
      border-radius: 0;
      background-color: transparent;
      color: var(--jp-ui-font-color0);
      box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
    }
    
    .jp-InputGroup input:focus {
      box-shadow: inset 0 0 0 var(--jp-border-width)
          var(--jp-input-active-box-shadow-color),
        inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
    }
    
    .jp-InputGroup input::placeholder,
    input::placeholder {
      color: var(--jp-ui-font-color3);
    }
    
    .jp-BPIcon {
      display: inline-block;
      vertical-align: middle;
      margin: auto;
    }
    
    /* Stop blueprint futzing with our icon fills */
    .bp3-icon.jp-BPIcon > svg:not([fill]) {
      fill: var(--jp-inverse-layout-color3);
    }
    
    .jp-InputGroupAction {
      padding: 6px;
    }
    
    .jp-HTMLSelect.jp-DefaultStyle select {
      background-color: initial;
      border: none;
      border-radius: 0;
      box-shadow: none;
      color: var(--jp-ui-font-color0);
      display: block;
      font-size: var(--jp-ui-font-size1);
      height: 24px;
      line-height: 14px;
      padding: 0 25px 0 10px;
      text-align: left;
      -moz-appearance: none;
      -webkit-appearance: none;
    }
    
    /* Use our own theme for hover and option styles */
    .jp-HTMLSelect.jp-DefaultStyle select:hover,
    .jp-HTMLSelect.jp-DefaultStyle select > option {
      background-color: var(--jp-layout-color2);
      color: var(--jp-ui-font-color0);
    }
    select {
      box-sizing: border-box;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-Collapse {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      border-top: 1px solid var(--jp-border-color2);
      border-bottom: 1px solid var(--jp-border-color2);
    }
    
    .jp-Collapse-header {
      padding: 1px 12px;
      color: var(--jp-ui-font-color1);
      background-color: var(--jp-layout-color1);
      font-size: var(--jp-ui-font-size2);
    }
    
    .jp-Collapse-header:hover {
      background-color: var(--jp-layout-color2);
    }
    
    .jp-Collapse-contents {
      padding: 0px 12px 0px 12px;
      background-color: var(--jp-layout-color1);
      color: var(--jp-ui-font-color1);
      overflow: auto;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Variables
    |----------------------------------------------------------------------------*/
    
    :root {
      --jp-private-commandpalette-search-height: 28px;
    }
    
    /*-----------------------------------------------------------------------------
    | Overall styles
    |----------------------------------------------------------------------------*/
    
    .lm-CommandPalette {
      padding-bottom: 0px;
      color: var(--jp-ui-font-color1);
      background: var(--jp-layout-color1);
      /* This is needed so that all font sizing of children done in ems is
       * relative to this base size */
      font-size: var(--jp-ui-font-size1);
    }
    
    /*-----------------------------------------------------------------------------
    | Modal variant
    |----------------------------------------------------------------------------*/
    
    .jp-ModalCommandPalette {
      position: absolute;
      z-index: 10000;
      top: 38px;
      left: 30%;
      margin: 0;
      padding: 4px;
      width: 40%;
      box-shadow: var(--jp-elevation-z4);
      border-radius: 4px;
      background: var(--jp-layout-color0);
    }
    
    .jp-ModalCommandPalette .lm-CommandPalette {
      max-height: 40vh;
    }
    
    .jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
      display: none;
    }
    
    .jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
      display: none;
    }
    
    .jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
      margin-left: 4px;
      margin-right: 4px;
    }
    
    .jp-ModalCommandPalette
      .lm-CommandPalette
      .lm-CommandPalette-item.lm-mod-disabled {
      display: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Search
    |----------------------------------------------------------------------------*/
    
    .lm-CommandPalette-search {
      padding: 4px;
      background-color: var(--jp-layout-color1);
      z-index: 2;
    }
    
    .lm-CommandPalette-wrapper {
      overflow: overlay;
      padding: 0px 9px;
      background-color: var(--jp-input-active-background);
      height: 30px;
      box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
    }
    
    .lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
      box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
        inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
    }
    
    .jp-SearchIconGroup {
      color: white;
      background-color: var(--jp-brand-color1);
      position: absolute;
      top: 4px;
      right: 4px;
      padding: 5px 5px 1px 5px;
    }
    
    .jp-SearchIconGroup svg {
      height: 20px;
      width: 20px;
    }
    
    .jp-SearchIconGroup .jp-icon3[fill] {
      fill: var(--jp-layout-color0);
    }
    
    .lm-CommandPalette-input {
      background: transparent;
      width: calc(100% - 18px);
      float: left;
      border: none;
      outline: none;
      font-size: var(--jp-ui-font-size1);
      color: var(--jp-ui-font-color0);
      line-height: var(--jp-private-commandpalette-search-height);
    }
    
    .lm-CommandPalette-input::-webkit-input-placeholder,
    .lm-CommandPalette-input::-moz-placeholder,
    .lm-CommandPalette-input:-ms-input-placeholder {
      color: var(--jp-ui-font-color2);
      font-size: var(--jp-ui-font-size1);
    }
    
    /*-----------------------------------------------------------------------------
    | Results
    |----------------------------------------------------------------------------*/
    
    .lm-CommandPalette-header:first-child {
      margin-top: 0px;
    }
    
    .lm-CommandPalette-header {
      border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
      color: var(--jp-ui-font-color1);
      cursor: pointer;
      display: flex;
      font-size: var(--jp-ui-font-size0);
      font-weight: 600;
      letter-spacing: 1px;
      margin-top: 8px;
      padding: 8px 0 8px 12px;
      text-transform: uppercase;
    }
    
    .lm-CommandPalette-header.lm-mod-active {
      background: var(--jp-layout-color2);
    }
    
    .lm-CommandPalette-header > mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--jp-ui-font-color1);
    }
    
    .lm-CommandPalette-item {
      padding: 4px 12px 4px 4px;
      color: var(--jp-ui-font-color1);
      font-size: var(--jp-ui-font-size1);
      font-weight: 400;
      display: flex;
    }
    
    .lm-CommandPalette-item.lm-mod-disabled {
      color: var(--jp-ui-font-color2);
    }
    
    .lm-CommandPalette-item.lm-mod-active {
      color: var(--jp-ui-inverse-font-color1);
      background: var(--jp-brand-color1);
    }
    
    .lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
      color: var(--jp-ui-inverse-font-color0);
    }
    
    .lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
      fill: var(--jp-layout-color0);
    }
    
    .lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
      color: var(--jp-ui-inverse-font-color0);
    }
    
    .lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
      color: var(--jp-ui-inverse-font-color1);
      background: var(--jp-brand-color1);
    }
    
    .lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
      background: var(--jp-layout-color2);
    }
    
    .lm-CommandPalette-itemContent {
      overflow: hidden;
    }
    
    .lm-CommandPalette-itemLabel > mark {
      color: var(--jp-ui-font-color0);
      background-color: transparent;
      font-weight: bold;
    }
    
    .lm-CommandPalette-item.lm-mod-disabled mark {
      color: var(--jp-ui-font-color2);
    }
    
    .lm-CommandPalette-item .lm-CommandPalette-itemIcon {
      margin: 0 4px 0 0;
      position: relative;
      width: 16px;
      top: 2px;
      flex: 0 0 auto;
    }
    
    .lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
      opacity: 0.6;
    }
    
    .lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
      flex: 0 0 auto;
    }
    
    .lm-CommandPalette-itemCaption {
      display: none;
    }
    
    .lm-CommandPalette-content {
      background-color: var(--jp-layout-color1);
    }
    
    .lm-CommandPalette-content:empty:after {
      content: 'No results';
      margin: auto;
      margin-top: 20px;
      width: 100px;
      display: block;
      font-size: var(--jp-ui-font-size2);
      font-family: var(--jp-ui-font-family);
      font-weight: lighter;
    }
    
    .lm-CommandPalette-emptyMessage {
      text-align: center;
      margin-top: 24px;
      line-height: 1.32;
      padding: 0px 8px;
      color: var(--jp-content-font-color3);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2017, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-Dialog {
      position: absolute;
      z-index: 10000;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      top: 0px;
      left: 0px;
      margin: 0;
      padding: 0;
      width: 100%;
      height: 100%;
      background: var(--jp-dialog-background);
    }
    
    .jp-Dialog-content {
      display: flex;
      flex-direction: column;
      margin-left: auto;
      margin-right: auto;
      background: var(--jp-layout-color1);
      padding: 24px;
      padding-bottom: 12px;
      min-width: 300px;
      min-height: 150px;
      max-width: 1000px;
      max-height: 500px;
      box-sizing: border-box;
      box-shadow: var(--jp-elevation-z20);
      word-wrap: break-word;
      border-radius: var(--jp-border-radius);
      /* This is needed so that all font sizing of children done in ems is
       * relative to this base size */
      font-size: var(--jp-ui-font-size1);
      color: var(--jp-ui-font-color1);
      resize: both;
    }
    
    .jp-Dialog-button {
      overflow: visible;
    }
    
    button.jp-Dialog-button:focus {
      outline: 1px solid var(--jp-brand-color1);
      outline-offset: 4px;
      -moz-outline-radius: 0px;
    }
    
    button.jp-Dialog-button:focus::-moz-focus-inner {
      border: 0;
    }
    
    button.jp-Dialog-close-button {
      padding: 0;
      height: 100%;
      min-width: unset;
      min-height: unset;
    }
    
    .jp-Dialog-header {
      display: flex;
      justify-content: space-between;
      flex: 0 0 auto;
      padding-bottom: 12px;
      font-size: var(--jp-ui-font-size3);
      font-weight: 400;
      color: var(--jp-ui-font-color0);
    }
    
    .jp-Dialog-body {
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      font-size: var(--jp-ui-font-size1);
      background: var(--jp-layout-color1);
      overflow: auto;
    }
    
    .jp-Dialog-footer {
      display: flex;
      flex-direction: row;
      justify-content: flex-end;
      flex: 0 0 auto;
      margin-left: -12px;
      margin-right: -12px;
      padding: 12px;
    }
    
    .jp-Dialog-title {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
    
    .jp-Dialog-body > .jp-select-wrapper {
      width: 100%;
    }
    
    .jp-Dialog-body > button {
      padding: 0px 16px;
    }
    
    .jp-Dialog-body > label {
      line-height: 1.4;
      color: var(--jp-ui-font-color0);
    }
    
    .jp-Dialog-button.jp-mod-styled:not(:last-child) {
      margin-right: 12px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2016, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-HoverBox {
      position: fixed;
    }
    
    .jp-HoverBox.jp-mod-outofview {
      display: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-IFrame {
      width: 100%;
      height: 100%;
    }
    
    .jp-IFrame > iframe {
      border: none;
    }
    
    /*
    When drag events occur, `p-mod-override-cursor` is added to the body.
    Because iframes steal all cursor events, the following two rules are necessary
    to suppress pointer events while resize drags are occurring. There may be a
    better solution to this problem.
    */
    body.lm-mod-override-cursor .jp-IFrame {
      position: relative;
    }
    
    body.lm-mod-override-cursor .jp-IFrame:before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: transparent;
    }
    
    .jp-Input-Boolean-Dialog {
      flex-direction: row-reverse;
      align-items: end;
      width: 100%;
    }
    
    .jp-Input-Boolean-Dialog > label {
      flex: 1 1 auto;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2016, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-MainAreaWidget > :focus {
      outline: none;
    }
    
    /**
     * google-material-color v1.2.6
     * https://github.com/danlevan/google-material-color
     */
    :root {
      --md-red-50: #ffebee;
      --md-red-100: #ffcdd2;
      --md-red-200: #ef9a9a;
      --md-red-300: #e57373;
      --md-red-400: #ef5350;
      --md-red-500: #f44336;
      --md-red-600: #e53935;
      --md-red-700: #d32f2f;
      --md-red-800: #c62828;
      --md-red-900: #b71c1c;
      --md-red-A100: #ff8a80;
      --md-red-A200: #ff5252;
      --md-red-A400: #ff1744;
      --md-red-A700: #d50000;
    
      --md-pink-50: #fce4ec;
      --md-pink-100: #f8bbd0;
      --md-pink-200: #f48fb1;
      --md-pink-300: #f06292;
      --md-pink-400: #ec407a;
      --md-pink-500: #e91e63;
      --md-pink-600: #d81b60;
      --md-pink-700: #c2185b;
      --md-pink-800: #ad1457;
      --md-pink-900: #880e4f;
      --md-pink-A100: #ff80ab;
      --md-pink-A200: #ff4081;
      --md-pink-A400: #f50057;
      --md-pink-A700: #c51162;
    
      --md-purple-50: #f3e5f5;
      --md-purple-100: #e1bee7;
      --md-purple-200: #ce93d8;
      --md-purple-300: #ba68c8;
      --md-purple-400: #ab47bc;
      --md-purple-500: #9c27b0;
      --md-purple-600: #8e24aa;
      --md-purple-700: #7b1fa2;
      --md-purple-800: #6a1b9a;
      --md-purple-900: #4a148c;
      --md-purple-A100: #ea80fc;
      --md-purple-A200: #e040fb;
      --md-purple-A400: #d500f9;
      --md-purple-A700: #aa00ff;
    
      --md-deep-purple-50: #ede7f6;
      --md-deep-purple-100: #d1c4e9;
      --md-deep-purple-200: #b39ddb;
      --md-deep-purple-300: #9575cd;
      --md-deep-purple-400: #7e57c2;
      --md-deep-purple-500: #673ab7;
      --md-deep-purple-600: #5e35b1;
      --md-deep-purple-700: #512da8;
      --md-deep-purple-800: #4527a0;
      --md-deep-purple-900: #311b92;
      --md-deep-purple-A100: #b388ff;
      --md-deep-purple-A200: #7c4dff;
      --md-deep-purple-A400: #651fff;
      --md-deep-purple-A700: #6200ea;
    
      --md-indigo-50: #e8eaf6;
      --md-indigo-100: #c5cae9;
      --md-indigo-200: #9fa8da;
      --md-indigo-300: #7986cb;
      --md-indigo-400: #5c6bc0;
      --md-indigo-500: #3f51b5;
      --md-indigo-600: #3949ab;
      --md-indigo-700: #303f9f;
      --md-indigo-800: #283593;
      --md-indigo-900: #1a237e;
      --md-indigo-A100: #8c9eff;
      --md-indigo-A200: #536dfe;
      --md-indigo-A400: #3d5afe;
      --md-indigo-A700: #304ffe;
    
      --md-blue-50: #e3f2fd;
      --md-blue-100: #bbdefb;
      --md-blue-200: #90caf9;
      --md-blue-300: #64b5f6;
      --md-blue-400: #42a5f5;
      --md-blue-500: #2196f3;
      --md-blue-600: #1e88e5;
      --md-blue-700: #1976d2;
      --md-blue-800: #1565c0;
      --md-blue-900: #0d47a1;
      --md-blue-A100: #82b1ff;
      --md-blue-A200: #448aff;
      --md-blue-A400: #2979ff;
      --md-blue-A700: #2962ff;
    
      --md-light-blue-50: #e1f5fe;
      --md-light-blue-100: #b3e5fc;
      --md-light-blue-200: #81d4fa;
      --md-light-blue-300: #4fc3f7;
      --md-light-blue-400: #29b6f6;
      --md-light-blue-500: #03a9f4;
      --md-light-blue-600: #039be5;
      --md-light-blue-700: #0288d1;
      --md-light-blue-800: #0277bd;
      --md-light-blue-900: #01579b;
      --md-light-blue-A100: #80d8ff;
      --md-light-blue-A200: #40c4ff;
      --md-light-blue-A400: #00b0ff;
      --md-light-blue-A700: #0091ea;
    
      --md-cyan-50: #e0f7fa;
      --md-cyan-100: #b2ebf2;
      --md-cyan-200: #80deea;
      --md-cyan-300: #4dd0e1;
      --md-cyan-400: #26c6da;
      --md-cyan-500: #00bcd4;
      --md-cyan-600: #00acc1;
      --md-cyan-700: #0097a7;
      --md-cyan-800: #00838f;
      --md-cyan-900: #006064;
      --md-cyan-A100: #84ffff;
      --md-cyan-A200: #18ffff;
      --md-cyan-A400: #00e5ff;
      --md-cyan-A700: #00b8d4;
    
      --md-teal-50: #e0f2f1;
      --md-teal-100: #b2dfdb;
      --md-teal-200: #80cbc4;
      --md-teal-300: #4db6ac;
      --md-teal-400: #26a69a;
      --md-teal-500: #009688;
      --md-teal-600: #00897b;
      --md-teal-700: #00796b;
      --md-teal-800: #00695c;
      --md-teal-900: #004d40;
      --md-teal-A100: #a7ffeb;
      --md-teal-A200: #64ffda;
      --md-teal-A400: #1de9b6;
      --md-teal-A700: #00bfa5;
    
      --md-green-50: #e8f5e9;
      --md-green-100: #c8e6c9;
      --md-green-200: #a5d6a7;
      --md-green-300: #81c784;
      --md-green-400: #66bb6a;
      --md-green-500: #4caf50;
      --md-green-600: #43a047;
      --md-green-700: #388e3c;
      --md-green-800: #2e7d32;
      --md-green-900: #1b5e20;
      --md-green-A100: #b9f6ca;
      --md-green-A200: #69f0ae;
      --md-green-A400: #00e676;
      --md-green-A700: #00c853;
    
      --md-light-green-50: #f1f8e9;
      --md-light-green-100: #dcedc8;
      --md-light-green-200: #c5e1a5;
      --md-light-green-300: #aed581;
      --md-light-green-400: #9ccc65;
      --md-light-green-500: #8bc34a;
      --md-light-green-600: #7cb342;
      --md-light-green-700: #689f38;
      --md-light-green-800: #558b2f;
      --md-light-green-900: #33691e;
      --md-light-green-A100: #ccff90;
      --md-light-green-A200: #b2ff59;
      --md-light-green-A400: #76ff03;
      --md-light-green-A700: #64dd17;
    
      --md-lime-50: #f9fbe7;
      --md-lime-100: #f0f4c3;
      --md-lime-200: #e6ee9c;
      --md-lime-300: #dce775;
      --md-lime-400: #d4e157;
      --md-lime-500: #cddc39;
      --md-lime-600: #c0ca33;
      --md-lime-700: #afb42b;
      --md-lime-800: #9e9d24;
      --md-lime-900: #827717;
      --md-lime-A100: #f4ff81;
      --md-lime-A200: #eeff41;
      --md-lime-A400: #c6ff00;
      --md-lime-A700: #aeea00;
    
      --md-yellow-50: #fffde7;
      --md-yellow-100: #fff9c4;
      --md-yellow-200: #fff59d;
      --md-yellow-300: #fff176;
      --md-yellow-400: #ffee58;
      --md-yellow-500: #ffeb3b;
      --md-yellow-600: #fdd835;
      --md-yellow-700: #fbc02d;
      --md-yellow-800: #f9a825;
      --md-yellow-900: #f57f17;
      --md-yellow-A100: #ffff8d;
      --md-yellow-A200: #ffff00;
      --md-yellow-A400: #ffea00;
      --md-yellow-A700: #ffd600;
    
      --md-amber-50: #fff8e1;
      --md-amber-100: #ffecb3;
      --md-amber-200: #ffe082;
      --md-amber-300: #ffd54f;
      --md-amber-400: #ffca28;
      --md-amber-500: #ffc107;
      --md-amber-600: #ffb300;
      --md-amber-700: #ffa000;
      --md-amber-800: #ff8f00;
      --md-amber-900: #ff6f00;
      --md-amber-A100: #ffe57f;
      --md-amber-A200: #ffd740;
      --md-amber-A400: #ffc400;
      --md-amber-A700: #ffab00;
    
      --md-orange-50: #fff3e0;
      --md-orange-100: #ffe0b2;
      --md-orange-200: #ffcc80;
      --md-orange-300: #ffb74d;
      --md-orange-400: #ffa726;
      --md-orange-500: #ff9800;
      --md-orange-600: #fb8c00;
      --md-orange-700: #f57c00;
      --md-orange-800: #ef6c00;
      --md-orange-900: #e65100;
      --md-orange-A100: #ffd180;
      --md-orange-A200: #ffab40;
      --md-orange-A400: #ff9100;
      --md-orange-A700: #ff6d00;
    
      --md-deep-orange-50: #fbe9e7;
      --md-deep-orange-100: #ffccbc;
      --md-deep-orange-200: #ffab91;
      --md-deep-orange-300: #ff8a65;
      --md-deep-orange-400: #ff7043;
      --md-deep-orange-500: #ff5722;
      --md-deep-orange-600: #f4511e;
      --md-deep-orange-700: #e64a19;
      --md-deep-orange-800: #d84315;
      --md-deep-orange-900: #bf360c;
      --md-deep-orange-A100: #ff9e80;
      --md-deep-orange-A200: #ff6e40;
      --md-deep-orange-A400: #ff3d00;
      --md-deep-orange-A700: #dd2c00;
    
      --md-brown-50: #efebe9;
      --md-brown-100: #d7ccc8;
      --md-brown-200: #bcaaa4;
      --md-brown-300: #a1887f;
      --md-brown-400: #8d6e63;
      --md-brown-500: #795548;
      --md-brown-600: #6d4c41;
      --md-brown-700: #5d4037;
      --md-brown-800: #4e342e;
      --md-brown-900: #3e2723;
    
      --md-grey-50: #fafafa;
      --md-grey-100: #f5f5f5;
      --md-grey-200: #eeeeee;
      --md-grey-300: #e0e0e0;
      --md-grey-400: #bdbdbd;
      --md-grey-500: #9e9e9e;
      --md-grey-600: #757575;
      --md-grey-700: #616161;
      --md-grey-800: #424242;
      --md-grey-900: #212121;
    
      --md-blue-grey-50: #eceff1;
      --md-blue-grey-100: #cfd8dc;
      --md-blue-grey-200: #b0bec5;
      --md-blue-grey-300: #90a4ae;
      --md-blue-grey-400: #78909c;
      --md-blue-grey-500: #607d8b;
      --md-blue-grey-600: #546e7a;
      --md-blue-grey-700: #455a64;
      --md-blue-grey-800: #37474f;
      --md-blue-grey-900: #263238;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2017, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-Spinner {
      position: absolute;
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 10;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background: var(--jp-layout-color0);
      outline: none;
    }
    
    .jp-SpinnerContent {
      font-size: 10px;
      margin: 50px auto;
      text-indent: -9999em;
      width: 3em;
      height: 3em;
      border-radius: 50%;
      background: var(--jp-brand-color3);
      background: linear-gradient(
        to right,
        #f37626 10%,
        rgba(255, 255, 255, 0) 42%
      );
      position: relative;
      animation: load3 1s infinite linear, fadeIn 1s;
    }
    
    .jp-SpinnerContent:before {
      width: 50%;
      height: 50%;
      background: #f37626;
      border-radius: 100% 0 0 0;
      position: absolute;
      top: 0;
      left: 0;
      content: '';
    }
    
    .jp-SpinnerContent:after {
      background: var(--jp-layout-color0);
      width: 75%;
      height: 75%;
      border-radius: 50%;
      content: '';
      margin: auto;
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
    }
    
    @keyframes fadeIn {
      0% {
        opacity: 0;
      }
      100% {
        opacity: 1;
      }
    }
    
    @keyframes load3 {
      0% {
        transform: rotate(0deg);
      }
      100% {
        transform: rotate(360deg);
      }
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2017, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    button.jp-mod-styled {
      font-size: var(--jp-ui-font-size1);
      color: var(--jp-ui-font-color0);
      border: none;
      box-sizing: border-box;
      text-align: center;
      line-height: 32px;
      height: 32px;
      padding: 0px 12px;
      letter-spacing: 0.8px;
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
    }
    
    input.jp-mod-styled {
      background: var(--jp-input-background);
      height: 28px;
      box-sizing: border-box;
      border: var(--jp-border-width) solid var(--jp-border-color1);
      padding-left: 7px;
      padding-right: 7px;
      font-size: var(--jp-ui-font-size2);
      color: var(--jp-ui-font-color0);
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
    }
    
    input[type='checkbox'].jp-mod-styled {
      appearance: checkbox;
      -webkit-appearance: checkbox;
      -moz-appearance: checkbox;
      height: auto;
    }
    
    input.jp-mod-styled:focus {
      border: var(--jp-border-width) solid var(--md-blue-500);
      box-shadow: inset 0 0 4px var(--md-blue-300);
    }
    
    .jp-FileDialog-Checkbox {
      margin-top: 35px;
      display: flex;
      flex-direction: row;
      align-items: end;
      width: 100%;
    }
    
    .jp-FileDialog-Checkbox > label {
      flex: 1 1 auto;
    }
    
    .jp-select-wrapper {
      display: flex;
      position: relative;
      flex-direction: column;
      padding: 1px;
      background-color: var(--jp-layout-color1);
      height: 28px;
      box-sizing: border-box;
      margin-bottom: 12px;
    }
    
    .jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
      border: var(--jp-border-width) solid var(--jp-input-active-border-color);
      box-shadow: var(--jp-input-box-shadow);
      background-color: var(--jp-input-active-background);
    }
    
    select.jp-mod-styled:hover {
      background-color: var(--jp-layout-color1);
      cursor: pointer;
      color: var(--jp-ui-font-color0);
      background-color: var(--jp-input-hover-background);
      box-shadow: inset 0 0px 1px rgba(0, 0, 0, 0.5);
    }
    
    select.jp-mod-styled {
      flex: 1 1 auto;
      height: 32px;
      width: 100%;
      font-size: var(--jp-ui-font-size2);
      background: var(--jp-input-background);
      color: var(--jp-ui-font-color0);
      padding: 0 25px 0 8px;
      border: var(--jp-border-width) solid var(--jp-input-border-color);
      border-radius: 0px;
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2016, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    :root {
      --jp-private-toolbar-height: calc(
        28px + var(--jp-border-width)
      ); /* leave 28px for content */
    }
    
    .jp-Toolbar {
      color: var(--jp-ui-font-color1);
      flex: 0 0 auto;
      display: flex;
      flex-direction: row;
      border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
      box-shadow: var(--jp-toolbar-box-shadow);
      background: var(--jp-toolbar-background);
      min-height: var(--jp-toolbar-micro-height);
      padding: 2px;
      z-index: 1;
      overflow-x: auto;
    }
    
    /* Toolbar items */
    
    .jp-Toolbar > .jp-Toolbar-item.jp-Toolbar-spacer {
      flex-grow: 1;
      flex-shrink: 1;
    }
    
    .jp-Toolbar-item.jp-Toolbar-kernelStatus {
      display: inline-block;
      width: 32px;
      background-repeat: no-repeat;
      background-position: center;
      background-size: 16px;
    }
    
    .jp-Toolbar > .jp-Toolbar-item {
      flex: 0 0 auto;
      display: flex;
      padding-left: 1px;
      padding-right: 1px;
      font-size: var(--jp-ui-font-size1);
      line-height: var(--jp-private-toolbar-height);
      height: 100%;
    }
    
    /* Toolbar buttons */
    
    /* This is the div we use to wrap the react component into a Widget */
    div.jp-ToolbarButton {
      color: transparent;
      border: none;
      box-sizing: border-box;
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      padding: 0px;
      margin: 0px;
    }
    
    button.jp-ToolbarButtonComponent {
      background: var(--jp-layout-color1);
      border: none;
      box-sizing: border-box;
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      padding: 0px 6px;
      margin: 0px;
      height: 24px;
      border-radius: var(--jp-border-radius);
      display: flex;
      align-items: center;
      text-align: center;
      font-size: 14px;
      min-width: unset;
      min-height: unset;
    }
    
    button.jp-ToolbarButtonComponent:disabled {
      opacity: 0.4;
    }
    
    button.jp-ToolbarButtonComponent span {
      padding: 0px;
      flex: 0 0 auto;
    }
    
    button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
      font-size: var(--jp-ui-font-size1);
      line-height: 100%;
      padding-left: 2px;
      color: var(--jp-ui-font-color1);
    }
    
    #jp-main-dock-panel[data-mode='single-document']
      .jp-MainAreaWidget
      > .jp-Toolbar.jp-Toolbar-micro {
      padding: 0;
      min-height: 0;
    }
    
    #jp-main-dock-panel[data-mode='single-document']
      .jp-MainAreaWidget
      > .jp-Toolbar {
      border: none;
      box-shadow: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2017, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Copyright (c) 2014-2017, PhosphorJS Contributors
    |
    | Distributed under the terms of the BSD 3-Clause License.
    |
    | The full license is in the file LICENSE, distributed with this software.
    |----------------------------------------------------------------------------*/
    
    
    /* <DEPRECATED> */ body.p-mod-override-cursor *, /* </DEPRECATED> */
    body.lm-mod-override-cursor * {
      cursor: inherit !important;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) 2014-2016, Jupyter Development Team.
    |
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-JSONEditor {
      display: flex;
      flex-direction: column;
      width: 100%;
    }
    
    .jp-JSONEditor-host {
      flex: 1 1 auto;
      border: var(--jp-border-width) solid var(--jp-input-border-color);
      border-radius: 0px;
      background: var(--jp-layout-color0);
      min-height: 50px;
      padding: 1px;
    }
    
    .jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
      border-color: red;
      outline-color: red;
    }
    
    .jp-JSONEditor-header {
      display: flex;
      flex: 1 0 auto;
      padding: 0 0 0 12px;
    }
    
    .jp-JSONEditor-header label {
      flex: 0 0 auto;
    }
    
    .jp-JSONEditor-commitButton {
      height: 16px;
      width: 16px;
      background-size: 18px;
      background-repeat: no-repeat;
      background-position: center;
    }
    
    .jp-JSONEditor-host.jp-mod-focused {
      background-color: var(--jp-input-active-background);
      border: 1px solid var(--jp-input-active-border-color);
      box-shadow: var(--jp-input-box-shadow);
    }
    
    .jp-Editor.jp-mod-dropTarget {
      border: var(--jp-border-width) solid var(--jp-input-active-border-color);
      box-shadow: var(--jp-input-box-shadow);
    }
    
    /* BASICS */
    
    .CodeMirror {
      /* Set height, width, borders, and global font properties here */
      font-family: monospace;
      height: 300px;
      color: black;
      direction: ltr;
    }
    
    /* PADDING */
    
    .CodeMirror-lines {
      padding: 4px 0; /* Vertical padding around content */
    }
    .CodeMirror pre.CodeMirror-line,
    .CodeMirror pre.CodeMirror-line-like {
      padding: 0 4px; /* Horizontal padding of content */
    }
    
    .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
      background-color: white; /* The little square between H and V scrollbars */
    }
    
    /* GUTTER */
    
    .CodeMirror-gutters {
      border-right: 1px solid #ddd;
      background-color: #f7f7f7;
      white-space: nowrap;
    }
    .CodeMirror-linenumbers {}
    .CodeMirror-linenumber {
      padding: 0 3px 0 5px;
      min-width: 20px;
      text-align: right;
      color: #999;
      white-space: nowrap;
    }
    
    .CodeMirror-guttermarker { color: black; }
    .CodeMirror-guttermarker-subtle { color: #999; }
    
    /* CURSOR */
    
    .CodeMirror-cursor {
      border-left: 1px solid black;
      border-right: none;
      width: 0;
    }
    /* Shown when moving in bi-directional text */
    .CodeMirror div.CodeMirror-secondarycursor {
      border-left: 1px solid silver;
    }
    .cm-fat-cursor .CodeMirror-cursor {
      width: auto;
      border: 0 !important;
      background: #7e7;
    }
    .cm-fat-cursor div.CodeMirror-cursors {
      z-index: 1;
    }
    .cm-fat-cursor-mark {
      background-color: rgba(20, 255, 20, 0.5);
      -webkit-animation: blink 1.06s steps(1) infinite;
      -moz-animation: blink 1.06s steps(1) infinite;
      animation: blink 1.06s steps(1) infinite;
    }
    .cm-animate-fat-cursor {
      width: auto;
      border: 0;
      -webkit-animation: blink 1.06s steps(1) infinite;
      -moz-animation: blink 1.06s steps(1) infinite;
      animation: blink 1.06s steps(1) infinite;
      background-color: #7e7;
    }
    @-moz-keyframes blink {
      0% {}
      50% { background-color: transparent; }
      100% {}
    }
    @-webkit-keyframes blink {
      0% {}
      50% { background-color: transparent; }
      100% {}
    }
    @keyframes blink {
      0% {}
      50% { background-color: transparent; }
      100% {}
    }
    
    /* Can style cursor different in overwrite (non-insert) mode */
    .CodeMirror-overwrite .CodeMirror-cursor {}
    
    .cm-tab { display: inline-block; text-decoration: inherit; }
    
    .CodeMirror-rulers {
      position: absolute;
      left: 0; right: 0; top: -50px; bottom: 0;
      overflow: hidden;
    }
    .CodeMirror-ruler {
      border-left: 1px solid #ccc;
      top: 0; bottom: 0;
      position: absolute;
    }
    
    /* DEFAULT THEME */
    
    .cm-s-default .cm-header {color: blue;}
    .cm-s-default .cm-quote {color: #090;}
    .cm-negative {color: #d44;}
    .cm-positive {color: #292;}
    .cm-header, .cm-strong {font-weight: bold;}
    .cm-em {font-style: italic;}
    .cm-link {text-decoration: underline;}
    .cm-strikethrough {text-decoration: line-through;}
    
    .cm-s-default .cm-keyword {color: #708;}
    .cm-s-default .cm-atom {color: #219;}
    .cm-s-default .cm-number {color: #164;}
    .cm-s-default .cm-def {color: #00f;}
    .cm-s-default .cm-variable,
    .cm-s-default .cm-punctuation,
    .cm-s-default .cm-property,
    .cm-s-default .cm-operator {}
    .cm-s-default .cm-variable-2 {color: #05a;}
    .cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
    .cm-s-default .cm-comment {color: #a50;}
    .cm-s-default .cm-string {color: #a11;}
    .cm-s-default .cm-string-2 {color: #f50;}
    .cm-s-default .cm-meta {color: #555;}
    .cm-s-default .cm-qualifier {color: #555;}
    .cm-s-default .cm-builtin {color: #30a;}
    .cm-s-default .cm-bracket {color: #997;}
    .cm-s-default .cm-tag {color: #170;}
    .cm-s-default .cm-attribute {color: #00c;}
    .cm-s-default .cm-hr {color: #999;}
    .cm-s-default .cm-link {color: #00c;}
    
    .cm-s-default .cm-error {color: #f00;}
    .cm-invalidchar {color: #f00;}
    
    .CodeMirror-composing { border-bottom: 2px solid; }
    
    /* Default styles for common addons */
    
    div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
    div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
    .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
    .CodeMirror-activeline-background {background: #e8f2ff;}
    
    /* STOP */
    
    /* The rest of this file contains styles related to the mechanics of
       the editor. You probably shouldn't touch them. */
    
    .CodeMirror {
      position: relative;
      overflow: hidden;
      background: white;
    }
    
    .CodeMirror-scroll {
      overflow: scroll !important; /* Things will break if this is overridden */
      /* 50px is the magic margin used to hide the element's real scrollbars */
      /* See overflow: hidden in .CodeMirror */
      margin-bottom: -50px; margin-right: -50px;
      padding-bottom: 50px;
      height: 100%;
      outline: none; /* Prevent dragging from highlighting the element */
      position: relative;
    }
    .CodeMirror-sizer {
      position: relative;
      border-right: 50px solid transparent;
    }
    
    /* The fake, visible scrollbars. Used to force redraw during scrolling
       before actual scrolling happens, thus preventing shaking and
       flickering artifacts. */
    .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
      position: absolute;
      z-index: 6;
      display: none;
      outline: none;
    }
    .CodeMirror-vscrollbar {
      right: 0; top: 0;
      overflow-x: hidden;
      overflow-y: scroll;
    }
    .CodeMirror-hscrollbar {
      bottom: 0; left: 0;
      overflow-y: hidden;
      overflow-x: scroll;
    }
    .CodeMirror-scrollbar-filler {
      right: 0; bottom: 0;
    }
    .CodeMirror-gutter-filler {
      left: 0; bottom: 0;
    }
    
    .CodeMirror-gutters {
      position: absolute; left: 0; top: 0;
      min-height: 100%;
      z-index: 3;
    }
    .CodeMirror-gutter {
      white-space: normal;
      height: 100%;
      display: inline-block;
      vertical-align: top;
      margin-bottom: -50px;
    }
    .CodeMirror-gutter-wrapper {
      position: absolute;
      z-index: 4;
      background: none !important;
      border: none !important;
    }
    .CodeMirror-gutter-background {
      position: absolute;
      top: 0; bottom: 0;
      z-index: 4;
    }
    .CodeMirror-gutter-elt {
      position: absolute;
      cursor: default;
      z-index: 4;
    }
    .CodeMirror-gutter-wrapper ::selection { background-color: transparent }
    .CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
    
    .CodeMirror-lines {
      cursor: text;
      min-height: 1px; /* prevents collapsing before first draw */
    }
    .CodeMirror pre.CodeMirror-line,
    .CodeMirror pre.CodeMirror-line-like {
      /* Reset some styles that the rest of the page might have set */
      -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
      border-width: 0;
      background: transparent;
      font-family: inherit;
      font-size: inherit;
      margin: 0;
      white-space: pre;
      word-wrap: normal;
      line-height: inherit;
      color: inherit;
      z-index: 2;
      position: relative;
      overflow: visible;
      -webkit-tap-highlight-color: transparent;
      -webkit-font-variant-ligatures: contextual;
      font-variant-ligatures: contextual;
    }
    .CodeMirror-wrap pre.CodeMirror-line,
    .CodeMirror-wrap pre.CodeMirror-line-like {
      word-wrap: break-word;
      white-space: pre-wrap;
      word-break: normal;
    }
    
    .CodeMirror-linebackground {
      position: absolute;
      left: 0; right: 0; top: 0; bottom: 0;
      z-index: 0;
    }
    
    .CodeMirror-linewidget {
      position: relative;
      z-index: 2;
      padding: 0.1px; /* Force widget margins to stay inside of the container */
    }
    
    .CodeMirror-widget {}
    
    .CodeMirror-rtl pre { direction: rtl; }
    
    .CodeMirror-code {
      outline: none;
    }
    
    /* Force content-box sizing for the elements where we expect it */
    .CodeMirror-scroll,
    .CodeMirror-sizer,
    .CodeMirror-gutter,
    .CodeMirror-gutters,
    .CodeMirror-linenumber {
      -moz-box-sizing: content-box;
      box-sizing: content-box;
    }
    
    .CodeMirror-measure {
      position: absolute;
      width: 100%;
      height: 0;
      overflow: hidden;
      visibility: hidden;
    }
    
    .CodeMirror-cursor {
      position: absolute;
      pointer-events: none;
    }
    .CodeMirror-measure pre { position: static; }
    
    div.CodeMirror-cursors {
      visibility: hidden;
      position: relative;
      z-index: 3;
    }
    div.CodeMirror-dragcursors {
      visibility: visible;
    }
    
    .CodeMirror-focused div.CodeMirror-cursors {
      visibility: visible;
    }
    
    .CodeMirror-selected { background: #d9d9d9; }
    .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
    .CodeMirror-crosshair { cursor: crosshair; }
    .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
    .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
    
    .cm-searching {
      background-color: #ffa;
      background-color: rgba(255, 255, 0, .4);
    }
    
    /* Used to force a border model for a node */
    .cm-force-border { padding-right: .1px; }
    
    @media print {
      /* Hide the cursor when printing */
      .CodeMirror div.CodeMirror-cursors {
        visibility: hidden;
      }
    }
    
    /* See issue #2901 */
    .cm-tab-wrap-hack:after { content: ''; }
    
    /* Help users use markselection to safely style text background */
    span.CodeMirror-selectedtext { background: none; }
    
    .CodeMirror-dialog {
      position: absolute;
      left: 0; right: 0;
      background: inherit;
      z-index: 15;
      padding: .1em .8em;
      overflow: hidden;
      color: inherit;
    }
    
    .CodeMirror-dialog-top {
      border-bottom: 1px solid #eee;
      top: 0;
    }
    
    .CodeMirror-dialog-bottom {
      border-top: 1px solid #eee;
      bottom: 0;
    }
    
    .CodeMirror-dialog input {
      border: none;
      outline: none;
      background: transparent;
      width: 20em;
      color: inherit;
      font-family: monospace;
    }
    
    .CodeMirror-dialog button {
      font-size: 70%;
    }
    
    .CodeMirror-foldmarker {
      color: blue;
      text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
      font-family: arial;
      line-height: .3;
      cursor: pointer;
    }
    .CodeMirror-foldgutter {
      width: .7em;
    }
    .CodeMirror-foldgutter-open,
    .CodeMirror-foldgutter-folded {
      cursor: pointer;
    }
    .CodeMirror-foldgutter-open:after {
      content: "\25BE";
    }
    .CodeMirror-foldgutter-folded:after {
      content: "\25B8";
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .CodeMirror {
      line-height: var(--jp-code-line-height);
      font-size: var(--jp-code-font-size);
      font-family: var(--jp-code-font-family);
      border: 0;
      border-radius: 0;
      height: auto;
      /* Changed to auto to autogrow */
    }
    
    .CodeMirror pre {
      padding: 0 var(--jp-code-padding);
    }
    
    .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog {
      background-color: var(--jp-layout-color0);
      color: var(--jp-content-font-color1);
    }
    
    /* This causes https://github.com/jupyter/jupyterlab/issues/522 */
    /* May not cause it not because we changed it! */
    .CodeMirror-lines {
      padding: var(--jp-code-padding) 0;
    }
    
    .CodeMirror-linenumber {
      padding: 0 8px;
    }
    
    .jp-CodeMirrorEditor {
      cursor: text;
    }
    
    .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
      border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
    }
    
    /* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
    @media screen and (min-width: 2138px) and (max-width: 4319px) {
      .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
        border-left: var(--jp-code-cursor-width1) solid
          var(--jp-editor-cursor-color);
      }
    }
    
    /* When zoomed out less than 33% */
    @media screen and (min-width: 4320px) {
      .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
        border-left: var(--jp-code-cursor-width2) solid
          var(--jp-editor-cursor-color);
      }
    }
    
    .CodeMirror.jp-mod-readOnly .CodeMirror-cursor {
      display: none;
    }
    
    .CodeMirror-gutters {
      border-right: 1px solid var(--jp-border-color2);
      background-color: var(--jp-layout-color0);
    }
    
    .jp-CollaboratorCursor {
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: none;
      border-bottom: 3px solid;
      background-clip: content-box;
      margin-left: -5px;
      margin-right: -5px;
    }
    
    .CodeMirror-selectedtext.cm-searching {
      background-color: var(--jp-search-selected-match-background-color) !important;
      color: var(--jp-search-selected-match-color) !important;
    }
    
    .cm-searching {
      background-color: var(
        --jp-search-unselected-match-background-color
      ) !important;
      color: var(--jp-search-unselected-match-color) !important;
    }
    
    .CodeMirror-focused .CodeMirror-selected {
      background-color: var(--jp-editor-selected-focused-background);
    }
    
    .CodeMirror-selected {
      background-color: var(--jp-editor-selected-background);
    }
    
    .jp-CollaboratorCursor-hover {
      position: absolute;
      z-index: 1;
      transform: translateX(-50%);
      color: white;
      border-radius: 3px;
      padding-left: 4px;
      padding-right: 4px;
      padding-top: 1px;
      padding-bottom: 1px;
      text-align: center;
      font-size: var(--jp-ui-font-size1);
      white-space: nowrap;
    }
    
    .jp-CodeMirror-ruler {
      border-left: 1px dashed var(--jp-border-color2);
    }
    
    /**
     * Here is our jupyter theme for CodeMirror syntax highlighting
     * This is used in our marked.js syntax highlighting and CodeMirror itself
     * The string "jupyter" is set in ../codemirror/widget.DEFAULT_CODEMIRROR_THEME
     * This came from the classic notebook, which came form highlight.js/GitHub
     */
    
    /**
     * CodeMirror themes are handling the background/color in this way. This works
     * fine for CodeMirror editors outside the notebook, but the notebook styles
     * these things differently.
     */
    .CodeMirror.cm-s-jupyter {
      background: var(--jp-layout-color0);
      color: var(--jp-content-font-color1);
    }
    
    /* In the notebook, we want this styling to be handled by its container */
    .jp-CodeConsole .CodeMirror.cm-s-jupyter,
    .jp-Notebook .CodeMirror.cm-s-jupyter {
      background: transparent;
    }
    
    .cm-s-jupyter .CodeMirror-cursor {
      border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
    }
    .cm-s-jupyter span.cm-keyword {
      color: var(--jp-mirror-editor-keyword-color);
      font-weight: bold;
    }
    .cm-s-jupyter span.cm-atom {
      color: var(--jp-mirror-editor-atom-color);
    }
    .cm-s-jupyter span.cm-number {
      color: var(--jp-mirror-editor-number-color);
    }
    .cm-s-jupyter span.cm-def {
      color: var(--jp-mirror-editor-def-color);
    }
    .cm-s-jupyter span.cm-variable {
      color: var(--jp-mirror-editor-variable-color);
    }
    .cm-s-jupyter span.cm-variable-2 {
      color: var(--jp-mirror-editor-variable-2-color);
    }
    .cm-s-jupyter span.cm-variable-3 {
      color: var(--jp-mirror-editor-variable-3-color);
    }
    .cm-s-jupyter span.cm-punctuation {
      color: var(--jp-mirror-editor-punctuation-color);
    }
    .cm-s-jupyter span.cm-property {
      color: var(--jp-mirror-editor-property-color);
    }
    .cm-s-jupyter span.cm-operator {
      color: var(--jp-mirror-editor-operator-color);
      font-weight: bold;
    }
    .cm-s-jupyter span.cm-comment {
      color: var(--jp-mirror-editor-comment-color);
      font-style: italic;
    }
    .cm-s-jupyter span.cm-string {
      color: var(--jp-mirror-editor-string-color);
    }
    .cm-s-jupyter span.cm-string-2 {
      color: var(--jp-mirror-editor-string-2-color);
    }
    .cm-s-jupyter span.cm-meta {
      color: var(--jp-mirror-editor-meta-color);
    }
    .cm-s-jupyter span.cm-qualifier {
      color: var(--jp-mirror-editor-qualifier-color);
    }
    .cm-s-jupyter span.cm-builtin {
      color: var(--jp-mirror-editor-builtin-color);
    }
    .cm-s-jupyter span.cm-bracket {
      color: var(--jp-mirror-editor-bracket-color);
    }
    .cm-s-jupyter span.cm-tag {
      color: var(--jp-mirror-editor-tag-color);
    }
    .cm-s-jupyter span.cm-attribute {
      color: var(--jp-mirror-editor-attribute-color);
    }
    .cm-s-jupyter span.cm-header {
      color: var(--jp-mirror-editor-header-color);
    }
    .cm-s-jupyter span.cm-quote {
      color: var(--jp-mirror-editor-quote-color);
    }
    .cm-s-jupyter span.cm-link {
      color: var(--jp-mirror-editor-link-color);
    }
    .cm-s-jupyter span.cm-error {
      color: var(--jp-mirror-editor-error-color);
    }
    .cm-s-jupyter span.cm-hr {
      color: #999;
    }
    
    .cm-s-jupyter span.cm-tab {
      background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
      background-position: right;
      background-repeat: no-repeat;
    }
    
    .cm-s-jupyter .CodeMirror-activeline-background,
    .cm-s-jupyter .CodeMirror-gutter {
      background-color: var(--jp-layout-color2);
    }
    
    /* Styles for shared cursors (remote cursor locations and selected ranges) */
    .jp-CodeMirrorEditor .remote-caret {
      position: relative;
      border-left: 2px solid black;
      margin-left: -1px;
      margin-right: -1px;
      box-sizing: border-box;
    }
    
    .jp-CodeMirrorEditor .remote-caret > div {
      white-space: nowrap;
      position: absolute;
      top: -1.15em;
      padding-bottom: 0.05em;
      left: -2px;
      font-size: 0.95em;
      background-color: rgb(250, 129, 0);
      font-family: var(--jp-ui-font-family);
      font-weight: bold;
      line-height: normal;
      user-select: none;
      color: white;
      padding-left: 2px;
      padding-right: 2px;
      z-index: 3;
      transition: opacity 0.3s ease-in-out;
    }
    
    .jp-CodeMirrorEditor .remote-caret.hide-name > div {
      transition-delay: 0.7s;
      opacity: 0;
    }
    
    .jp-CodeMirrorEditor .remote-caret:hover > div {
      opacity: 1;
      transition-delay: 0s;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | RenderedText
    |----------------------------------------------------------------------------*/
    
    :root {
      /* This is the padding value to fill the gaps between lines containing spans with background color. */
      --jp-private-code-span-padding: calc(
        (var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
      );
    }
    
    .jp-RenderedText {
      text-align: left;
      padding-left: var(--jp-code-padding);
      line-height: var(--jp-code-line-height);
      font-family: var(--jp-code-font-family);
    }
    
    .jp-RenderedText pre,
    .jp-RenderedJavaScript pre,
    .jp-RenderedHTMLCommon pre {
      color: var(--jp-content-font-color1);
      font-size: var(--jp-code-font-size);
      border: none;
      margin: 0px;
      padding: 0px;
    }
    
    .jp-RenderedText pre a:link {
      text-decoration: none;
      color: var(--jp-content-link-color);
    }
    .jp-RenderedText pre a:hover {
      text-decoration: underline;
      color: var(--jp-content-link-color);
    }
    .jp-RenderedText pre a:visited {
      text-decoration: none;
      color: var(--jp-content-link-color);
    }
    
    /* console foregrounds and backgrounds */
    .jp-RenderedText pre .ansi-black-fg {
      color: #3e424d;
    }
    .jp-RenderedText pre .ansi-red-fg {
      color: #e75c58;
    }
    .jp-RenderedText pre .ansi-green-fg {
      color: #00a250;
    }
    .jp-RenderedText pre .ansi-yellow-fg {
      color: #ddb62b;
    }
    .jp-RenderedText pre .ansi-blue-fg {
      color: #208ffb;
    }
    .jp-RenderedText pre .ansi-magenta-fg {
      color: #d160c4;
    }
    .jp-RenderedText pre .ansi-cyan-fg {
      color: #60c6c8;
    }
    .jp-RenderedText pre .ansi-white-fg {
      color: #c5c1b4;
    }
    
    .jp-RenderedText pre .ansi-black-bg {
      background-color: #3e424d;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-red-bg {
      background-color: #e75c58;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-green-bg {
      background-color: #00a250;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-yellow-bg {
      background-color: #ddb62b;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-blue-bg {
      background-color: #208ffb;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-magenta-bg {
      background-color: #d160c4;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-cyan-bg {
      background-color: #60c6c8;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-white-bg {
      background-color: #c5c1b4;
      padding: var(--jp-private-code-span-padding) 0;
    }
    
    .jp-RenderedText pre .ansi-black-intense-fg {
      color: #282c36;
    }
    .jp-RenderedText pre .ansi-red-intense-fg {
      color: #b22b31;
    }
    .jp-RenderedText pre .ansi-green-intense-fg {
      color: #007427;
    }
    .jp-RenderedText pre .ansi-yellow-intense-fg {
      color: #b27d12;
    }
    .jp-RenderedText pre .ansi-blue-intense-fg {
      color: #0065ca;
    }
    .jp-RenderedText pre .ansi-magenta-intense-fg {
      color: #a03196;
    }
    .jp-RenderedText pre .ansi-cyan-intense-fg {
      color: #258f8f;
    }
    .jp-RenderedText pre .ansi-white-intense-fg {
      color: #a1a6b2;
    }
    
    .jp-RenderedText pre .ansi-black-intense-bg {
      background-color: #282c36;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-red-intense-bg {
      background-color: #b22b31;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-green-intense-bg {
      background-color: #007427;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-yellow-intense-bg {
      background-color: #b27d12;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-blue-intense-bg {
      background-color: #0065ca;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-magenta-intense-bg {
      background-color: #a03196;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-cyan-intense-bg {
      background-color: #258f8f;
      padding: var(--jp-private-code-span-padding) 0;
    }
    .jp-RenderedText pre .ansi-white-intense-bg {
      background-color: #a1a6b2;
      padding: var(--jp-private-code-span-padding) 0;
    }
    
    .jp-RenderedText pre .ansi-default-inverse-fg {
      color: var(--jp-ui-inverse-font-color0);
    }
    .jp-RenderedText pre .ansi-default-inverse-bg {
      background-color: var(--jp-inverse-layout-color0);
      padding: var(--jp-private-code-span-padding) 0;
    }
    
    .jp-RenderedText pre .ansi-bold {
      font-weight: bold;
    }
    .jp-RenderedText pre .ansi-underline {
      text-decoration: underline;
    }
    
    .jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
      background: var(--jp-rendermime-error-background);
      padding-top: var(--jp-code-padding);
    }
    
    /*-----------------------------------------------------------------------------
    | RenderedLatex
    |----------------------------------------------------------------------------*/
    
    .jp-RenderedLatex {
      color: var(--jp-content-font-color1);
      font-size: var(--jp-content-font-size1);
      line-height: var(--jp-content-line-height);
    }
    
    /* Left-justify outputs.*/
    .jp-OutputArea-output.jp-RenderedLatex {
      padding: var(--jp-code-padding);
      text-align: left;
    }
    
    /*-----------------------------------------------------------------------------
    | RenderedHTML
    |----------------------------------------------------------------------------*/
    
    .jp-RenderedHTMLCommon {
      color: var(--jp-content-font-color1);
      font-family: var(--jp-content-font-family);
      font-size: var(--jp-content-font-size1);
      line-height: var(--jp-content-line-height);
      /* Give a bit more R padding on Markdown text to keep line lengths reasonable */
      padding-right: 20px;
    }
    
    .jp-RenderedHTMLCommon em {
      font-style: italic;
    }
    
    .jp-RenderedHTMLCommon strong {
      font-weight: bold;
    }
    
    .jp-RenderedHTMLCommon u {
      text-decoration: underline;
    }
    
    .jp-RenderedHTMLCommon a:link {
      text-decoration: none;
      color: var(--jp-content-link-color);
    }
    
    .jp-RenderedHTMLCommon a:hover {
      text-decoration: underline;
      color: var(--jp-content-link-color);
    }
    
    .jp-RenderedHTMLCommon a:visited {
      text-decoration: none;
      color: var(--jp-content-link-color);
    }
    
    /* Headings */
    
    .jp-RenderedHTMLCommon h1,
    .jp-RenderedHTMLCommon h2,
    .jp-RenderedHTMLCommon h3,
    .jp-RenderedHTMLCommon h4,
    .jp-RenderedHTMLCommon h5,
    .jp-RenderedHTMLCommon h6 {
      line-height: var(--jp-content-heading-line-height);
      font-weight: var(--jp-content-heading-font-weight);
      font-style: normal;
      margin: var(--jp-content-heading-margin-top) 0
        var(--jp-content-heading-margin-bottom) 0;
    }
    
    .jp-RenderedHTMLCommon h1:first-child,
    .jp-RenderedHTMLCommon h2:first-child,
    .jp-RenderedHTMLCommon h3:first-child,
    .jp-RenderedHTMLCommon h4:first-child,
    .jp-RenderedHTMLCommon h5:first-child,
    .jp-RenderedHTMLCommon h6:first-child {
      margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
    }
    
    .jp-RenderedHTMLCommon h1:last-child,
    .jp-RenderedHTMLCommon h2:last-child,
    .jp-RenderedHTMLCommon h3:last-child,
    .jp-RenderedHTMLCommon h4:last-child,
    .jp-RenderedHTMLCommon h5:last-child,
    .jp-RenderedHTMLCommon h6:last-child {
      margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
    }
    
    .jp-RenderedHTMLCommon h1 {
      font-size: var(--jp-content-font-size5);
    }
    
    .jp-RenderedHTMLCommon h2 {
      font-size: var(--jp-content-font-size4);
    }
    
    .jp-RenderedHTMLCommon h3 {
      font-size: var(--jp-content-font-size3);
    }
    
    .jp-RenderedHTMLCommon h4 {
      font-size: var(--jp-content-font-size2);
    }
    
    .jp-RenderedHTMLCommon h5 {
      font-size: var(--jp-content-font-size1);
    }
    
    .jp-RenderedHTMLCommon h6 {
      font-size: var(--jp-content-font-size0);
    }
    
    /* Lists */
    
    .jp-RenderedHTMLCommon ul:not(.list-inline),
    .jp-RenderedHTMLCommon ol:not(.list-inline) {
      padding-left: 2em;
    }
    
    .jp-RenderedHTMLCommon ul {
      list-style: disc;
    }
    
    .jp-RenderedHTMLCommon ul ul {
      list-style: square;
    }
    
    .jp-RenderedHTMLCommon ul ul ul {
      list-style: circle;
    }
    
    .jp-RenderedHTMLCommon ol {
      list-style: decimal;
    }
    
    .jp-RenderedHTMLCommon ol ol {
      list-style: upper-alpha;
    }
    
    .jp-RenderedHTMLCommon ol ol ol {
      list-style: lower-alpha;
    }
    
    .jp-RenderedHTMLCommon ol ol ol ol {
      list-style: lower-roman;
    }
    
    .jp-RenderedHTMLCommon ol ol ol ol ol {
      list-style: decimal;
    }
    
    .jp-RenderedHTMLCommon ol,
    .jp-RenderedHTMLCommon ul {
      margin-bottom: 1em;
    }
    
    .jp-RenderedHTMLCommon ul ul,
    .jp-RenderedHTMLCommon ul ol,
    .jp-RenderedHTMLCommon ol ul,
    .jp-RenderedHTMLCommon ol ol {
      margin-bottom: 0em;
    }
    
    .jp-RenderedHTMLCommon hr {
      color: var(--jp-border-color2);
      background-color: var(--jp-border-color1);
      margin-top: 1em;
      margin-bottom: 1em;
    }
    
    .jp-RenderedHTMLCommon > pre {
      margin: 1.5em 2em;
    }
    
    .jp-RenderedHTMLCommon pre,
    .jp-RenderedHTMLCommon code {
      border: 0;
      background-color: var(--jp-layout-color0);
      color: var(--jp-content-font-color1);
      font-family: var(--jp-code-font-family);
      font-size: inherit;
      line-height: var(--jp-code-line-height);
      padding: 0;
      white-space: pre-wrap;
    }
    
    .jp-RenderedHTMLCommon :not(pre) > code {
      background-color: var(--jp-layout-color2);
      padding: 1px 5px;
    }
    
    /* Tables */
    
    .jp-RenderedHTMLCommon table {
      border-collapse: collapse;
      border-spacing: 0;
      border: none;
      color: var(--jp-ui-font-color1);
      font-size: 12px;
      table-layout: fixed;
      margin-left: auto;
      margin-right: auto;
    }
    
    .jp-RenderedHTMLCommon thead {
      border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
      vertical-align: bottom;
    }
    
    .jp-RenderedHTMLCommon td,
    .jp-RenderedHTMLCommon th,
    .jp-RenderedHTMLCommon tr {
      vertical-align: middle;
      padding: 0.5em 0.5em;
      line-height: normal;
      white-space: normal;
      max-width: none;
      border: none;
    }
    
    .jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
    .jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
      max-width: none;
    }
    
    :not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
    :not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
    :not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
      text-align: right;
    }
    
    .jp-RenderedHTMLCommon th {
      font-weight: bold;
    }
    
    .jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
      background: var(--jp-layout-color0);
    }
    
    .jp-RenderedHTMLCommon tbody tr:nth-child(even) {
      background: var(--jp-rendermime-table-row-background);
    }
    
    .jp-RenderedHTMLCommon tbody tr:hover {
      background: var(--jp-rendermime-table-row-hover-background);
    }
    
    .jp-RenderedHTMLCommon table {
      margin-bottom: 1em;
    }
    
    .jp-RenderedHTMLCommon p {
      text-align: left;
      margin: 0px;
    }
    
    .jp-RenderedHTMLCommon p {
      margin-bottom: 1em;
    }
    
    .jp-RenderedHTMLCommon img {
      -moz-force-broken-image-icon: 1;
    }
    
    /* Restrict to direct children as other images could be nested in other content. */
    .jp-RenderedHTMLCommon > img {
      display: block;
      margin-left: 0;
      margin-right: 0;
      margin-bottom: 1em;
    }
    
    /* Change color behind transparent images if they need it... */
    [data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
      background-color: var(--jp-inverse-layout-color1);
    }
    [data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
      background-color: var(--jp-inverse-layout-color1);
    }
    /* ...or leave it untouched if they don't */
    [data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-dark-background {
    }
    [data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-light-background {
    }
    
    .jp-RenderedHTMLCommon img,
    .jp-RenderedImage img,
    .jp-RenderedHTMLCommon svg,
    .jp-RenderedSVG svg {
      max-width: 100%;
      height: auto;
    }
    
    .jp-RenderedHTMLCommon img.jp-mod-unconfined,
    .jp-RenderedImage img.jp-mod-unconfined,
    .jp-RenderedHTMLCommon svg.jp-mod-unconfined,
    .jp-RenderedSVG svg.jp-mod-unconfined {
      max-width: none;
    }
    
    .jp-RenderedHTMLCommon .alert {
      padding: var(--jp-notebook-padding);
      border: var(--jp-border-width) solid transparent;
      border-radius: var(--jp-border-radius);
      margin-bottom: 1em;
    }
    
    .jp-RenderedHTMLCommon .alert-info {
      color: var(--jp-info-color0);
      background-color: var(--jp-info-color3);
      border-color: var(--jp-info-color2);
    }
    .jp-RenderedHTMLCommon .alert-info hr {
      border-color: var(--jp-info-color3);
    }
    .jp-RenderedHTMLCommon .alert-info > p:last-child,
    .jp-RenderedHTMLCommon .alert-info > ul:last-child {
      margin-bottom: 0;
    }
    
    .jp-RenderedHTMLCommon .alert-warning {
      color: var(--jp-warn-color0);
      background-color: var(--jp-warn-color3);
      border-color: var(--jp-warn-color2);
    }
    .jp-RenderedHTMLCommon .alert-warning hr {
      border-color: var(--jp-warn-color3);
    }
    .jp-RenderedHTMLCommon .alert-warning > p:last-child,
    .jp-RenderedHTMLCommon .alert-warning > ul:last-child {
      margin-bottom: 0;
    }
    
    .jp-RenderedHTMLCommon .alert-success {
      color: var(--jp-success-color0);
      background-color: var(--jp-success-color3);
      border-color: var(--jp-success-color2);
    }
    .jp-RenderedHTMLCommon .alert-success hr {
      border-color: var(--jp-success-color3);
    }
    .jp-RenderedHTMLCommon .alert-success > p:last-child,
    .jp-RenderedHTMLCommon .alert-success > ul:last-child {
      margin-bottom: 0;
    }
    
    .jp-RenderedHTMLCommon .alert-danger {
      color: var(--jp-error-color0);
      background-color: var(--jp-error-color3);
      border-color: var(--jp-error-color2);
    }
    .jp-RenderedHTMLCommon .alert-danger hr {
      border-color: var(--jp-error-color3);
    }
    .jp-RenderedHTMLCommon .alert-danger > p:last-child,
    .jp-RenderedHTMLCommon .alert-danger > ul:last-child {
      margin-bottom: 0;
    }
    
    .jp-RenderedHTMLCommon blockquote {
      margin: 1em 2em;
      padding: 0 1em;
      border-left: 5px solid var(--jp-border-color2);
    }
    
    a.jp-InternalAnchorLink {
      visibility: hidden;
      margin-left: 8px;
      color: var(--md-blue-800);
    }
    
    h1:hover .jp-InternalAnchorLink,
    h2:hover .jp-InternalAnchorLink,
    h3:hover .jp-InternalAnchorLink,
    h4:hover .jp-InternalAnchorLink,
    h5:hover .jp-InternalAnchorLink,
    h6:hover .jp-InternalAnchorLink {
      visibility: visible;
    }
    
    .jp-RenderedHTMLCommon kbd {
      background-color: var(--jp-rendermime-table-row-background);
      border: 1px solid var(--jp-border-color0);
      border-bottom-color: var(--jp-border-color2);
      border-radius: 3px;
      box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
      display: inline-block;
      font-size: 0.8em;
      line-height: 1em;
      padding: 0.2em 0.5em;
    }
    
    /* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
     * At the bottom of cells this is a bit too much as there is also spacing
     * between cells. Going all the way to 0 gets too tight between markdown and
     * code cells.
     */
    .jp-RenderedHTMLCommon > *:last-child {
      margin-bottom: 0.5em;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-MimeDocument {
      outline: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Variables
    |----------------------------------------------------------------------------*/
    
    :root {
      --jp-private-filebrowser-button-height: 28px;
      --jp-private-filebrowser-button-width: 48px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-FileBrowser {
      display: flex;
      flex-direction: column;
      color: var(--jp-ui-font-color1);
      background: var(--jp-layout-color1);
      /* This is needed so that all font sizing of children done in ems is
       * relative to this base size */
      font-size: var(--jp-ui-font-size1);
    }
    
    .jp-FileBrowser-toolbar.jp-Toolbar {
      border-bottom: none;
      height: auto;
      margin: var(--jp-toolbar-header-margin);
      box-shadow: none;
    }
    
    .jp-BreadCrumbs {
      flex: 0 0 auto;
      margin: 8px 12px 8px 12px;
    }
    
    .jp-BreadCrumbs-item {
      margin: 0px 2px;
      padding: 0px 2px;
      border-radius: var(--jp-border-radius);
      cursor: pointer;
    }
    
    .jp-BreadCrumbs-item:hover {
      background-color: var(--jp-layout-color2);
    }
    
    .jp-BreadCrumbs-item:first-child {
      margin-left: 0px;
    }
    
    .jp-BreadCrumbs-item.jp-mod-dropTarget {
      background-color: var(--jp-brand-color2);
      opacity: 0.7;
    }
    
    /*-----------------------------------------------------------------------------
    | Buttons
    |----------------------------------------------------------------------------*/
    
    .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 .jp-ToolbarButtonComponent {
      width: 40px;
    }
    
    .jp-FileBrowser-toolbar.jp-Toolbar
      .jp-Toolbar-item:first-child
      .jp-ToolbarButtonComponent {
      width: 72px;
      background: var(--jp-brand-color1);
    }
    
    .jp-FileBrowser-toolbar.jp-Toolbar
      .jp-Toolbar-item:first-child
      .jp-ToolbarButtonComponent:focus-visible {
      background-color: var(--jp-brand-color0);
    }
    
    .jp-FileBrowser-toolbar.jp-Toolbar
      .jp-Toolbar-item:first-child
      .jp-ToolbarButtonComponent
      .jp-icon3 {
      fill: white;
    }
    
    /*-----------------------------------------------------------------------------
    | Other styles
    |----------------------------------------------------------------------------*/
    
    .jp-FileDialog.jp-mod-conflict input {
      color: var(--jp-error-color1);
    }
    
    .jp-FileDialog .jp-new-name-title {
      margin-top: 12px;
    }
    
    .jp-LastModified-hidden {
      display: none;
    }
    
    .jp-FileBrowser-filterBox {
      padding: 0px;
      flex: 0 0 auto;
      margin: 8px 12px 0px 12px;
    }
    
    /*-----------------------------------------------------------------------------
    | DirListing
    |----------------------------------------------------------------------------*/
    
    .jp-DirListing {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column;
      outline: 0;
    }
    
    .jp-DirListing:focus-visible {
      border: 1px solid var(--jp-brand-color1);
    }
    
    .jp-DirListing-header {
      flex: 0 0 auto;
      display: flex;
      flex-direction: row;
      overflow: hidden;
      border-top: var(--jp-border-width) solid var(--jp-border-color2);
      border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
      box-shadow: var(--jp-toolbar-box-shadow);
      z-index: 2;
    }
    
    .jp-DirListing-headerItem {
      padding: 4px 12px 2px 12px;
      font-weight: 500;
    }
    
    .jp-DirListing-headerItem:hover {
      background: var(--jp-layout-color2);
    }
    
    .jp-DirListing-headerItem.jp-id-name {
      flex: 1 0 84px;
    }
    
    .jp-DirListing-headerItem.jp-id-modified {
      flex: 0 0 112px;
      border-left: var(--jp-border-width) solid var(--jp-border-color2);
      text-align: right;
    }
    
    .jp-id-narrow {
      display: none;
      flex: 0 0 5px;
      padding: 4px 4px;
      border-left: var(--jp-border-width) solid var(--jp-border-color2);
      text-align: right;
      color: var(--jp-border-color2);
    }
    
    .jp-DirListing-narrow .jp-id-narrow {
      display: block;
    }
    
    .jp-DirListing-narrow .jp-id-modified,
    .jp-DirListing-narrow .jp-DirListing-itemModified {
      display: none;
    }
    
    .jp-DirListing-headerItem.jp-mod-selected {
      font-weight: 600;
    }
    
    /* increase specificity to override bundled default */
    .jp-DirListing-content {
      flex: 1 1 auto;
      margin: 0;
      padding: 0;
      list-style-type: none;
      overflow: auto;
      background-color: var(--jp-layout-color1);
    }
    
    .jp-DirListing-content mark {
      color: var(--jp-ui-font-color0);
      background-color: transparent;
      font-weight: bold;
    }
    
    .jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
      color: var(--jp-ui-inverse-font-color0);
    }
    
    /* Style the directory listing content when a user drops a file to upload */
    .jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
      outline: 5px dashed rgba(128, 128, 128, 0.5);
      outline-offset: -10px;
      cursor: copy;
    }
    
    .jp-DirListing-item {
      display: flex;
      flex-direction: row;
      padding: 4px 12px;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    .jp-DirListing-item[data-is-dot] {
      opacity: 75%;
    }
    
    .jp-DirListing-item.jp-mod-selected {
      color: var(--jp-ui-inverse-font-color1);
      background: var(--jp-brand-color1);
    }
    
    .jp-DirListing-item.jp-mod-dropTarget {
      background: var(--jp-brand-color3);
    }
    
    .jp-DirListing-item:hover:not(.jp-mod-selected) {
      background: var(--jp-layout-color2);
    }
    
    .jp-DirListing-itemIcon {
      flex: 0 0 20px;
      margin-right: 4px;
    }
    
    .jp-DirListing-itemText {
      flex: 1 0 64px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      user-select: none;
    }
    
    .jp-DirListing-itemModified {
      flex: 0 0 125px;
      text-align: right;
    }
    
    .jp-DirListing-editor {
      flex: 1 0 64px;
      outline: none;
      border: none;
    }
    
    .jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon:before {
      color: var(--jp-success-color1);
      content: '\25CF';
      font-size: 8px;
      position: absolute;
      left: -8px;
    }
    
    .jp-DirListing-item.jp-mod-running.jp-mod-selected
      .jp-DirListing-itemIcon:before {
      color: var(--jp-ui-inverse-font-color1);
    }
    
    .jp-DirListing-item.lm-mod-drag-image,
    .jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
      font-size: var(--jp-ui-font-size1);
      padding-left: 4px;
      margin-left: 4px;
      width: 160px;
      background-color: var(--jp-ui-inverse-font-color2);
      box-shadow: var(--jp-elevation-z2);
      border-radius: 0px;
      color: var(--jp-ui-font-color1);
      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;
      outline: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Private CSS variables
    |----------------------------------------------------------------------------*/
    
    :root {
    }
    
    /*-----------------------------------------------------------------------------
    | Main OutputArea
    | OutputArea has a list of Outputs
    |----------------------------------------------------------------------------*/
    
    .jp-OutputArea {
      overflow-y: auto;
    }
    
    .jp-OutputArea-child {
      display: flex;
      flex-direction: row;
    }
    
    body[data-format='mobile'] .jp-OutputArea-child {
      flex-direction: column;
    }
    
    .jp-OutputPrompt {
      flex: 0 0 var(--jp-cell-prompt-width);
      color: var(--jp-cell-outprompt-font-color);
      font-family: var(--jp-cell-prompt-font-family);
      padding: var(--jp-code-padding);
      letter-spacing: var(--jp-cell-prompt-letter-spacing);
      line-height: var(--jp-code-line-height);
      font-size: var(--jp-code-font-size);
      border: var(--jp-border-width) solid transparent;
      opacity: var(--jp-cell-prompt-opacity);
      /* Right align prompt text, don't wrap to handle large prompt numbers */
      text-align: right;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      /* Disable text selection */
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    body[data-format='mobile'] .jp-OutputPrompt {
      flex: 0 0 auto;
      text-align: left;
    }
    
    .jp-OutputArea-output {
      height: auto;
      overflow: auto;
      user-select: text;
      -moz-user-select: text;
      -webkit-user-select: text;
      -ms-user-select: text;
    }
    
    .jp-OutputArea-child .jp-OutputArea-output {
      flex-grow: 1;
      flex-shrink: 1;
    }
    
    body[data-format='mobile'] .jp-OutputArea-child .jp-OutputArea-output {
      margin-left: var(--jp-notebook-padding);
    }
    
    /**
     * Isolated output.
     */
    .jp-OutputArea-output.jp-mod-isolated {
      width: 100%;
      display: block;
    }
    
    /*
    When drag events occur, `p-mod-override-cursor` is added to the body.
    Because iframes steal all cursor events, the following two rules are necessary
    to suppress pointer events while resize drags are occurring. There may be a
    better solution to this problem.
    */
    body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
      position: relative;
    }
    
    body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated:before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: transparent;
    }
    
    /* pre */
    
    .jp-OutputArea-output pre {
      border: none;
      margin: 0px;
      padding: 0px;
      overflow-x: auto;
      overflow-y: auto;
      word-break: break-all;
      word-wrap: break-word;
      white-space: pre-wrap;
    }
    
    /* tables */
    
    .jp-OutputArea-output.jp-RenderedHTMLCommon table {
      margin-left: 0;
      margin-right: 0;
    }
    
    /* description lists */
    
    .jp-OutputArea-output dl,
    .jp-OutputArea-output dt,
    .jp-OutputArea-output dd {
      display: block;
    }
    
    .jp-OutputArea-output dl {
      width: 100%;
      overflow: hidden;
      padding: 0;
      margin: 0;
    }
    
    .jp-OutputArea-output dt {
      font-weight: bold;
      float: left;
      width: 20%;
      padding: 0;
      margin: 0;
    }
    
    .jp-OutputArea-output dd {
      float: left;
      width: 80%;
      padding: 0;
      margin: 0;
    }
    
    /* Hide the gutter in case of
     *  - nested output areas (e.g. in the case of output widgets)
     *  - mirrored output areas
     */
    .jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
      display: none;
    }
    
    /*-----------------------------------------------------------------------------
    | executeResult is added to any Output-result for the display of the object
    | returned by a cell
    |----------------------------------------------------------------------------*/
    
    .jp-OutputArea-output.jp-OutputArea-executeResult {
      margin-left: 0px;
      flex: 1 1 auto;
    }
    
    /* Text output with the Out[] prompt needs a top padding to match the
     * alignment of the Out[] prompt itself.
     */
    .jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
      padding-top: var(--jp-code-padding);
      border-top: var(--jp-border-width) solid transparent;
    }
    
    /*-----------------------------------------------------------------------------
    | The Stdin output
    |----------------------------------------------------------------------------*/
    
    .jp-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);
      vertical-align: baseline;
      flex: 0 0 auto;
    }
    
    .jp-Stdin-input {
      font-family: var(--jp-code-font-family);
      font-size: inherit;
      color: inherit;
      background-color: inherit;
      width: 42%;
      min-width: 200px;
      /* make sure input baseline aligns with prompt */
      vertical-align: baseline;
      /* padding + margin = 0.5em between prompt and cursor */
      padding: 0em 0.25em;
      margin: 0em 0.25em;
      flex: 0 0 70%;
    }
    
    .jp-Stdin-input:focus {
      box-shadow: none;
    }
    
    /*-----------------------------------------------------------------------------
    | Output Area View
    |----------------------------------------------------------------------------*/
    
    .jp-LinkedOutputView .jp-OutputArea {
      height: 100%;
      display: block;
    }
    
    .jp-LinkedOutputView .jp-OutputArea-output:only-child {
      height: 100%;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    .jp-Collapser {
      flex: 0 0 var(--jp-cell-collapser-width);
      padding: 0px;
      margin: 0px;
      border: none;
      outline: none;
      background: transparent;
      border-radius: var(--jp-border-radius);
      opacity: 1;
    }
    
    .jp-Collapser-child {
      display: block;
      width: 100%;
      box-sizing: border-box;
      /* height: 100% doesn't work because the height of its parent is computed from content */
      position: absolute;
      top: 0px;
      bottom: 0px;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Header/Footer
    |----------------------------------------------------------------------------*/
    
    /* Hidden by zero height by default */
    .jp-CellHeader,
    .jp-CellFooter {
      height: 0px;
      width: 100%;
      padding: 0px;
      margin: 0px;
      border: none;
      outline: none;
      background: transparent;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Input
    |----------------------------------------------------------------------------*/
    
    /* All input areas */
    .jp-InputArea {
      display: flex;
      flex-direction: row;
      overflow: hidden;
    }
    
    body[data-format='mobile'] .jp-InputArea {
      flex-direction: column;
    }
    
    .jp-InputArea-editor {
      flex: 1 1 auto;
      overflow: hidden;
    }
    
    .jp-InputArea-editor {
      /* This is the non-active, default styling */
      border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
      border-radius: 0px;
      background: var(--jp-cell-editor-background);
    }
    
    body[data-format='mobile'] .jp-InputArea-editor {
      margin-left: var(--jp-notebook-padding);
    }
    
    .jp-InputPrompt {
      flex: 0 0 var(--jp-cell-prompt-width);
      color: var(--jp-cell-inprompt-font-color);
      font-family: var(--jp-cell-prompt-font-family);
      padding: var(--jp-code-padding);
      letter-spacing: var(--jp-cell-prompt-letter-spacing);
      opacity: var(--jp-cell-prompt-opacity);
      line-height: var(--jp-code-line-height);
      font-size: var(--jp-code-font-size);
      border: var(--jp-border-width) solid transparent;
      opacity: var(--jp-cell-prompt-opacity);
      /* Right align prompt text, don't wrap to handle large prompt numbers */
      text-align: right;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      /* Disable text selection */
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }
    
    body[data-format='mobile'] .jp-InputPrompt {
      flex: 0 0 auto;
      text-align: left;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Placeholder
    |----------------------------------------------------------------------------*/
    
    .jp-Placeholder {
      display: flex;
      flex-direction: row;
      flex: 1 1 auto;
    }
    
    .jp-Placeholder-prompt {
      box-sizing: border-box;
    }
    
    .jp-Placeholder-content {
      flex: 1 1 auto;
      border: none;
      background: transparent;
      height: 20px;
      box-sizing: border-box;
    }
    
    .jp-Placeholder-content .jp-MoreHorizIcon {
      width: 32px;
      height: 16px;
      border: 1px solid transparent;
      border-radius: var(--jp-border-radius);
    }
    
    .jp-Placeholder-content .jp-MoreHorizIcon:hover {
      border: 1px solid var(--jp-border-color1);
      box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.25);
      background-color: var(--jp-layout-color0);
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Private CSS variables
    |----------------------------------------------------------------------------*/
    
    :root {
      --jp-private-cell-scrolling-output-offset: 5px;
    }
    
    /*-----------------------------------------------------------------------------
    | Cell
    |----------------------------------------------------------------------------*/
    
    .jp-Cell {
      padding: var(--jp-cell-padding);
      margin: 0px;
      border: none;
      outline: none;
      background: transparent;
    }
    
    /*-----------------------------------------------------------------------------
    | Common input/output
    |----------------------------------------------------------------------------*/
    
    .jp-Cell-inputWrapper,
    .jp-Cell-outputWrapper {
      display: flex;
      flex-direction: row;
      padding: 0px;
      margin: 0px;
      /* Added to reveal the box-shadow on the input and output collapsers. */
      overflow: visible;
    }
    
    /* Only input/output areas inside cells */
    .jp-Cell-inputArea,
    .jp-Cell-outputArea {
      flex: 1 1 auto;
    }
    
    /*-----------------------------------------------------------------------------
    | Collapser
    |----------------------------------------------------------------------------*/
    
    /* Make the output collapser disappear when there is not output, but do so
     * in a manner that leaves it in the layout and preserves its width.
     */
    .jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
      border: none !important;
      background: transparent !important;
    }
    
    .jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
      min-height: var(--jp-cell-collapser-min-height);
    }
    
    /*-----------------------------------------------------------------------------
    | Output
    |----------------------------------------------------------------------------*/
    
    /* Put a space between input and output when there IS output */
    .jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
      margin-top: 5px;
    }
    
    .jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
      overflow-y: auto;
      max-height: 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-OutputArea-prompt {
      flex: 0 0
        calc(
          var(--jp-cell-prompt-width) -
            var(--jp-private-cell-scrolling-output-offset)
        );
    }
    
    /*-----------------------------------------------------------------------------
    | CodeCell
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | MarkdownCell
    |----------------------------------------------------------------------------*/
    
    .jp-MarkdownOutput {
      flex: 1 1 auto;
      margin-top: 0;
      margin-bottom: 0;
      padding-left: var(--jp-code-padding);
    }
    
    .jp-MarkdownOutput.jp-RenderedHTMLCommon {
      overflow: auto;
    }
    
    .jp-showHiddenCellsButton {
      margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
      margin-top: var(--jp-code-padding);
      border: 1px solid var(--jp-border-color2);
      background-color: var(--jp-border-color3) !important;
      color: var(--jp-content-font-color0) !important;
    }
    
    .jp-showHiddenCellsButton:hover {
      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.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Variables
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    
    /*-----------------------------------------------------------------------------
    | Styles
    |----------------------------------------------------------------------------*/
    
    .jp-NotebookPanel-toolbar {
      padding: 2px;
    }
    
    .jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
      border: none;
      box-shadow: none;
    }
    
    .jp-Notebook-toolbarCellTypeDropdown select {
      height: 24px;
      font-size: var(--jp-ui-font-size1);
      line-height: 14px;
      border-radius: 0;
      display: block;
    }
    
    .jp-Notebook-toolbarCellTypeDropdown span {
      top: 5px !important;
    }
    
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Private CSS variables
    |----------------------------------------------------------------------------*/
    
    :root {
      --jp-private-notebook-dragImage-width: 304px;
      --jp-private-notebook-dragImage-height: 36px;
      --jp-private-notebook-selected-color: var(--md-blue-400);
      --jp-private-notebook-active-color: var(--md-green-400);
    }
    
    /*-----------------------------------------------------------------------------
    | Imports
    |----------------------------------------------------------------------------*/
    
    /*-----------------------------------------------------------------------------
    | Notebook
    |----------------------------------------------------------------------------*/
    
    .jp-NotebookPanel {
      display: block;
      height: 100%;
    }
    
    .jp-NotebookPanel.jp-Document {
      min-width: 240px;
      min-height: 120px;
    }
    
    .jp-Notebook {
      padding: var(--jp-notebook-padding);
      outline: none;
      overflow: auto;
      background: var(--jp-layout-color0);
    }
    
    .jp-Notebook.jp-mod-scrollPastEnd::after {
      display: block;
      content: '';
      min-height: var(--jp-notebook-scroll-padding);
    }
    
    .jp-MainAreaWidget-ContainStrict .jp-Notebook * {
      contain: strict;
    }
    
    .jp-Notebook-render * {
      contain: none !important;
    }
    
    .jp-Notebook .jp-Cell {
      overflow: visible;
    }
    
    .jp-Notebook .jp-Cell .jp-InputPrompt {
      cursor: move;
      float: left;
    }
    
    /*-----------------------------------------------------------------------------
    | Notebook state related styling
    |
    | The notebook and cells each have states, here are the possibilities:
    |
    | - Notebook
    |   - Command
    |   - Edit
    | - Cell
    |   - None
    |   - Active (only one can be active)
    |   - Selected (the cells actions are applied to)
    |   - Multiselected (when multiple selected, the cursor)
    |   - No outputs
    |----------------------------------------------------------------------------*/
    
    /* Command or edit modes */
    
    .jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
      opacity: var(--jp-cell-prompt-not-active-opacity);
      color: var(--jp-cell-prompt-not-active-font-color);
    }
    
    .jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
      opacity: var(--jp-cell-prompt-not-active-opacity);
      color: var(--jp-cell-prompt-not-active-font-color);
    }
    
    /* cell is active */
    .jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
      background: var(--jp-brand-color1);
    }
    
    /* cell is dirty */
    .jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
      color: var(--jp-warn-color1);
    }
    .jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt:before {
      color: var(--jp-warn-color1);
      content: '•';
    }
    
    .jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
      background: var(--jp-warn-color1);
    }
    
    /* collapser is hovered */
    .jp-Notebook .jp-Cell .jp-Collapser:hover {
      box-shadow: var(--jp-elevation-z2);
      background: var(--jp-brand-color1);
      opacity: var(--jp-cell-collapser-not-active-hover-opacity);
    }
    
    /* cell is active and collapser is hovered */
    .jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
      background: var(--jp-brand-color0);
      opacity: 1;
    }
    
    /* Command mode */
    
    .jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
      background: var(--jp-notebook-multiselected-color);
    }
    
    .jp-Notebook.jp-mod-commandMode
      .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
      background: transparent;
    }
    
    /* Edit mode */
    
    .jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
      border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
      box-shadow: var(--jp-input-box-shadow);
      background-color: var(--jp-cell-editor-active-background);
    }
    
    /*-----------------------------------------------------------------------------
    | Notebook drag and drop
    |----------------------------------------------------------------------------*/
    
    .jp-Notebook-cell.jp-mod-dropSource {
      opacity: 0.5;
    }
    
    .jp-Notebook-cell.jp-mod-dropTarget,
    .jp-Notebook.jp-mod-commandMode
      .jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
      border-top-color: var(--jp-private-notebook-selected-color);
      border-top-style: solid;
      border-top-width: 2px;
    }
    
    .jp-dragImage {
      display: block;
      flex-direction: row;
      width: var(--jp-private-notebook-dragImage-width);
      height: var(--jp-private-notebook-dragImage-height);
      border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
      background: var(--jp-cell-editor-background);
      overflow: visible;
    }
    
    .jp-dragImage-singlePrompt {
      box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.12);
    }
    
    .jp-dragImage .jp-dragImage-content {
      flex: 1 1 auto;
      z-index: 2;
      font-size: var(--jp-code-font-size);
      font-family: var(--jp-code-font-family);
      line-height: var(--jp-code-line-height);
      padding: var(--jp-code-padding);
      border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
      background: var(--jp-cell-editor-background-color);
      color: var(--jp-content-font-color3);
      text-align: left;
      margin: 4px 4px 4px 0px;
    }
    
    .jp-dragImage .jp-dragImage-prompt {
      flex: 0 0 auto;
      min-width: 36px;
      color: var(--jp-cell-inprompt-font-color);
      padding: var(--jp-code-padding);
      padding-left: 12px;
      font-family: var(--jp-cell-prompt-font-family);
      letter-spacing: var(--jp-cell-prompt-letter-spacing);
      line-height: 1.9;
      font-size: var(--jp-code-font-size);
      border: var(--jp-border-width) solid transparent;
    }
    
    .jp-dragImage-multipleBack {
      z-index: -1;
      position: absolute;
      height: 32px;
      width: 300px;
      top: 8px;
      left: 8px;
      background: var(--jp-layout-color2);
      border: var(--jp-border-width) solid var(--jp-input-border-color);
      box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.12);
    }
    
    /*-----------------------------------------------------------------------------
    | Cell toolbar
    |----------------------------------------------------------------------------*/
    
    .jp-NotebookTools {
      display: block;
      min-width: var(--jp-sidebar-min-width);
      color: var(--jp-ui-font-color1);
      background: var(--jp-layout-color1);
      /* This is needed so that all font sizing of children done in ems is
        * relative to this base size */
      font-size: var(--jp-ui-font-size1);
      overflow: auto;
    }
    
    .jp-NotebookTools-tool {
      padding: 0px 12px 0 12px;
    }
    
    .jp-ActiveCellTool {
      padding: 12px;
      background-color: var(--jp-layout-color1);
      border-top: none !important;
    }
    
    .jp-ActiveCellTool .jp-InputArea-prompt {
      flex: 0 0 auto;
      padding-left: 0px;
    }
    
    .jp-ActiveCellTool .jp-InputArea-editor {
      flex: 1 1 auto;
      background: var(--jp-cell-editor-background);
      border-color: var(--jp-cell-editor-border-color);
    }
    
    .jp-ActiveCellTool .jp-InputArea-editor .CodeMirror {
      background: transparent;
    }
    
    .jp-MetadataEditorTool {
      flex-direction: column;
      padding: 12px 0px 12px 0px;
    }
    
    .jp-RankedPanel > :not(:first-child) {
      margin-top: 12px;
    }
    
    .jp-KeySelector select.jp-mod-styled {
      font-size: var(--jp-ui-font-size1);
      color: var(--jp-ui-font-color0);
      border: var(--jp-border-width) solid var(--jp-border-color1);
    }
    
    .jp-KeySelector label,
    .jp-MetadataEditorTool label {
      line-height: 1.4;
    }
    
    .jp-NotebookTools .jp-select-wrapper {
      margin-top: 4px;
      margin-bottom: 0px;
    }
    
    .jp-NotebookTools .jp-Collapse {
      margin-top: 16px;
    }
    
    /*-----------------------------------------------------------------------------
    | Presentation Mode (.jp-mod-presentationMode)
    |----------------------------------------------------------------------------*/
    
    .jp-mod-presentationMode .jp-Notebook {
      --jp-content-font-size1: var(--jp-content-presentation-font-size1);
      --jp-code-font-size: var(--jp-code-presentation-font-size);
    }
    
    .jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
    .jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
      flex: 0 0 110px;
    }
    
    /*-----------------------------------------------------------------------------
    | Placeholder
    |----------------------------------------------------------------------------*/
    
    .jp-Cell-Placeholder {
      padding-left: 55px;
    }
    
    .jp-Cell-Placeholder-wrapper {
      background: #fff;
      border: 1px solid;
      border-color: #e5e6e9 #dfe0e4 #d0d1d5;
      border-radius: 4px;
      -webkit-border-radius: 4px;
      margin: 10px 15px;
    }
    
    .jp-Cell-Placeholder-wrapper-inner {
      padding: 15px;
      position: relative;
    }
    
    .jp-Cell-Placeholder-wrapper-body {
      background-repeat: repeat;
      background-size: 50% auto;
    }
    
    .jp-Cell-Placeholder-wrapper-body div {
      background: #f6f7f8;
      background-image: -webkit-linear-gradient(
        left,
        #f6f7f8 0%,
        #edeef1 20%,
        #f6f7f8 40%,
        #f6f7f8 100%
      );
      background-repeat: no-repeat;
      background-size: 800px 104px;
      height: 104px;
      position: relative;
    }
    
    .jp-Cell-Placeholder-wrapper-body div {
      position: absolute;
      right: 15px;
      left: 15px;
      top: 15px;
    }
    
    div.jp-Cell-Placeholder-h1 {
      top: 20px;
      height: 20px;
      left: 15px;
      width: 150px;
    }
    
    div.jp-Cell-Placeholder-h2 {
      left: 15px;
      top: 50px;
      height: 10px;
      width: 100px;
    }
    
    div.jp-Cell-Placeholder-content-1,
    div.jp-Cell-Placeholder-content-2,
    div.jp-Cell-Placeholder-content-3 {
      left: 15px;
      right: 15px;
      height: 10px;
    }
    
    div.jp-Cell-Placeholder-content-1 {
      top: 100px;
    }
    
    div.jp-Cell-Placeholder-content-2 {
      top: 120px;
    }
    
    div.jp-Cell-Placeholder-content-3 {
      top: 140px;
    }
    
    </style>
    
        <style type="text/css">
    /*-----------------------------------------------------------------------------
    | Copyright (c) Jupyter Development Team.
    | Distributed under the terms of the Modified BSD License.
    |----------------------------------------------------------------------------*/
    
    /*
    The following CSS variables define the main, public API for styling JupyterLab.
    These variables should be used by all plugins wherever possible. In other
    words, plugins should not define custom colors, sizes, etc unless absolutely
    necessary. This enables users to change the visual theme of JupyterLab
    by changing these variables.
    
    Many variables appear in an ordered sequence (0,1,2,3). These sequences
    are designed to work well together, so for example, `--jp-border-color1` should
    be used with `--jp-layout-color1`. The numbers have the following meanings:
    
    * 0: super-primary, reserved for special emphasis
    * 1: primary, most important under normal situations
    * 2: secondary, next most important under normal situations
    * 3: tertiary, next most important under normal situations
    
    Throughout JupyterLab, we are mostly following principles from Google's
    Material Design when selecting colors. We are not, however, following
    all of MD as it is not optimized for dense, information rich UIs.
    */
    
    :root {
      /* Elevation
       *
       * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
       *
       * https://github.com/material-components/material-components-web
       * https://material-components-web.appspot.com/elevation.html
       */
    
      --jp-shadow-base-lightness: 0;
      --jp-shadow-umbra-color: rgba(
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        0.2
      );
      --jp-shadow-penumbra-color: rgba(
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        0.14
      );
      --jp-shadow-ambient-color: rgba(
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        var(--jp-shadow-base-lightness),
        0.12
      );
      --jp-elevation-z0: none;
      --jp-elevation-z1: 0px 2px 1px -1px var(--jp-shadow-umbra-color),
        0px 1px 1px 0px var(--jp-shadow-penumbra-color),
        0px 1px 3px 0px var(--jp-shadow-ambient-color);
      --jp-elevation-z2: 0px 3px 1px -2px var(--jp-shadow-umbra-color),
        0px 2px 2px 0px var(--jp-shadow-penumbra-color),
        0px 1px 5px 0px var(--jp-shadow-ambient-color);
      --jp-elevation-z4: 0px 2px 4px -1px var(--jp-shadow-umbra-color),
        0px 4px 5px 0px var(--jp-shadow-penumbra-color),
        0px 1px 10px 0px var(--jp-shadow-ambient-color);
      --jp-elevation-z6: 0px 3px 5px -1px var(--jp-shadow-umbra-color),
        0px 6px 10px 0px var(--jp-shadow-penumbra-color),
        0px 1px 18px 0px var(--jp-shadow-ambient-color);
      --jp-elevation-z8: 0px 5px 5px -3px var(--jp-shadow-umbra-color),
        0px 8px 10px 1px var(--jp-shadow-penumbra-color),
        0px 3px 14px 2px var(--jp-shadow-ambient-color);
      --jp-elevation-z12: 0px 7px 8px -4px var(--jp-shadow-umbra-color),
        0px 12px 17px 2px var(--jp-shadow-penumbra-color),
        0px 5px 22px 4px var(--jp-shadow-ambient-color);
      --jp-elevation-z16: 0px 8px 10px -5px var(--jp-shadow-umbra-color),
        0px 16px 24px 2px var(--jp-shadow-penumbra-color),
        0px 6px 30px 5px var(--jp-shadow-ambient-color);
      --jp-elevation-z20: 0px 10px 13px -6px var(--jp-shadow-umbra-color),
        0px 20px 31px 3px var(--jp-shadow-penumbra-color),
        0px 8px 38px 7px var(--jp-shadow-ambient-color);
      --jp-elevation-z24: 0px 11px 15px -7px var(--jp-shadow-umbra-color),
        0px 24px 38px 3px var(--jp-shadow-penumbra-color),
        0px 9px 46px 8px var(--jp-shadow-ambient-color);
    
      /* Borders
       *
       * The following variables, specify the visual styling of borders in JupyterLab.
       */
    
      --jp-border-width: 1px;
      --jp-border-color0: var(--md-grey-400);
      --jp-border-color1: var(--md-grey-400);
      --jp-border-color2: var(--md-grey-300);
      --jp-border-color3: var(--md-grey-200);
      --jp-border-radius: 2px;
    
      /* UI Fonts
       *
       * The UI font CSS variables are used for the typography all of the JupyterLab
       * user interface elements that are not directly user generated content.
       *
       * The font sizing here is done assuming that the body font size of --jp-ui-font-size1
       * is applied to a parent element. When children elements, such as headings, are sized
       * in em all things will be computed relative to that body size.
       */
    
      --jp-ui-font-scale-factor: 1.2;
      --jp-ui-font-size0: 0.83333em;
      --jp-ui-font-size1: 13px; /* Base font size */
      --jp-ui-font-size2: 1.2em;
      --jp-ui-font-size3: 1.44em;
    
      --jp-ui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,
        Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
    
      /*
       * Use these font colors against the corresponding main layout colors.
       * In a light theme, these go from dark to light.
       */
    
      /* Defaults use Material Design specification */
      --jp-ui-font-color0: rgba(0, 0, 0, 1);
      --jp-ui-font-color1: rgba(0, 0, 0, 0.87);
      --jp-ui-font-color2: rgba(0, 0, 0, 0.54);
      --jp-ui-font-color3: rgba(0, 0, 0, 0.38);
    
      /*
       * Use these against the brand/accent/warn/error colors.
       * These will typically go from light to darker, in both a dark and light theme.
       */
    
      --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
      --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
      --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
      --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);
    
      /* Content Fonts
       *
       * Content font variables are used for typography of user generated content.
       *
       * The font sizing here is done assuming that the body font size of --jp-content-font-size1
       * is applied to a parent element. When children elements, such as headings, are sized
       * in em all things will be computed relative to that body size.
       */
    
      --jp-content-line-height: 1.6;
      --jp-content-font-scale-factor: 1.2;
      --jp-content-font-size0: 0.83333em;
      --jp-content-font-size1: 14px; /* Base font size */
      --jp-content-font-size2: 1.2em;
      --jp-content-font-size3: 1.44em;
      --jp-content-font-size4: 1.728em;
      --jp-content-font-size5: 2.0736em;
    
      /* This gives a magnification of about 125% in presentation mode over normal. */
      --jp-content-presentation-font-size1: 17px;
    
      --jp-content-heading-line-height: 1;
      --jp-content-heading-margin-top: 1.2em;
      --jp-content-heading-margin-bottom: 0.8em;
      --jp-content-heading-font-weight: 500;
    
      /* Defaults use Material Design specification */
      --jp-content-font-color0: rgba(0, 0, 0, 1);
      --jp-content-font-color1: rgba(0, 0, 0, 0.87);
      --jp-content-font-color2: rgba(0, 0, 0, 0.54);
      --jp-content-font-color3: rgba(0, 0, 0, 0.38);
    
      --jp-content-link-color: var(--md-blue-700);
    
      --jp-content-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
        Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
        'Segoe UI Symbol';
    
      /*
       * Code Fonts
       *
       * Code font variables are used for typography of code and other monospaces content.
       */
    
      --jp-code-font-size: 13px;
      --jp-code-line-height: 1.3077; /* 17px for 13px base */
      --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
      --jp-code-font-family-default: Menlo, Consolas, 'DejaVu Sans Mono', monospace;
      --jp-code-font-family: var(--jp-code-font-family-default);
    
      /* This gives a magnification of about 125% in presentation mode over normal. */
      --jp-code-presentation-font-size: 16px;
    
      /* may need to tweak cursor width if you change font size */
      --jp-code-cursor-width0: 1.4px;
      --jp-code-cursor-width1: 2px;
      --jp-code-cursor-width2: 4px;
    
      /* Layout
       *
       * The following are the main layout colors use in JupyterLab. In a light
       * theme these would go from light to dark.
       */
    
      --jp-layout-color0: white;
      --jp-layout-color1: white;
      --jp-layout-color2: var(--md-grey-200);
      --jp-layout-color3: var(--md-grey-400);
      --jp-layout-color4: var(--md-grey-600);
    
      /* Inverse Layout
       *
       * The following are the inverse layout colors use in JupyterLab. In a light
       * theme these would go from dark to light.
       */
    
      --jp-inverse-layout-color0: #111111;
      --jp-inverse-layout-color1: var(--md-grey-900);
      --jp-inverse-layout-color2: var(--md-grey-800);
      --jp-inverse-layout-color3: var(--md-grey-700);
      --jp-inverse-layout-color4: var(--md-grey-600);
    
      /* Brand/accent */
    
      --jp-brand-color0: var(--md-blue-900);
      --jp-brand-color1: var(--md-blue-700);
      --jp-brand-color2: var(--md-blue-300);
      --jp-brand-color3: var(--md-blue-100);
      --jp-brand-color4: var(--md-blue-50);
    
      --jp-accent-color0: var(--md-green-900);
      --jp-accent-color1: var(--md-green-700);
      --jp-accent-color2: var(--md-green-300);
      --jp-accent-color3: var(--md-green-100);
    
      /* State colors (warn, error, success, info) */
    
      --jp-warn-color0: var(--md-orange-900);
      --jp-warn-color1: var(--md-orange-700);
      --jp-warn-color2: var(--md-orange-300);
      --jp-warn-color3: var(--md-orange-100);
    
      --jp-error-color0: var(--md-red-900);
      --jp-error-color1: var(--md-red-700);
      --jp-error-color2: var(--md-red-300);
      --jp-error-color3: var(--md-red-100);
    
      --jp-success-color0: var(--md-green-900);
      --jp-success-color1: var(--md-green-700);
      --jp-success-color2: var(--md-green-300);
      --jp-success-color3: var(--md-green-100);
    
      --jp-info-color0: var(--md-cyan-900);
      --jp-info-color1: var(--md-cyan-700);
      --jp-info-color2: var(--md-cyan-300);
      --jp-info-color3: var(--md-cyan-100);
    
      /* Cell specific styles */
    
      --jp-cell-padding: 5px;
    
      --jp-cell-collapser-width: 8px;
      --jp-cell-collapser-min-height: 20px;
      --jp-cell-collapser-not-active-hover-opacity: 0.6;
    
      --jp-cell-editor-background: var(--md-grey-100);
      --jp-cell-editor-border-color: var(--md-grey-300);
      --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
      --jp-cell-editor-active-background: var(--jp-layout-color0);
      --jp-cell-editor-active-border-color: var(--jp-brand-color1);
    
      --jp-cell-prompt-width: 64px;
      --jp-cell-prompt-font-family: var(--jp-code-font-family-default);
      --jp-cell-prompt-letter-spacing: 0px;
      --jp-cell-prompt-opacity: 1;
      --jp-cell-prompt-not-active-opacity: 0.5;
      --jp-cell-prompt-not-active-font-color: var(--md-grey-700);
      /* A custom blend of MD grey and blue 600
       * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
      --jp-cell-inprompt-font-color: #307fc1;
      /* A custom blend of MD grey and orange 600
       * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
      --jp-cell-outprompt-font-color: #bf5b3d;
    
      /* Notebook specific styles */
    
      --jp-notebook-padding: 10px;
      --jp-notebook-select-background: var(--jp-layout-color1);
      --jp-notebook-multiselected-color: var(--md-blue-50);
    
      /* The scroll padding is calculated to fill enough space at the bottom of the
      notebook to show one single-line cell (with appropriate padding) at the top
      when the notebook is scrolled all the way to the bottom. We also subtract one
      pixel so that no scrollbar appears if we have just one single-line cell in the
      notebook. This padding is to enable a 'scroll past end' feature in a notebook.
      */
      --jp-notebook-scroll-padding: calc(
        100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
          var(--jp-code-padding) - var(--jp-cell-padding) - 1px
      );
    
      /* Rendermime styles */
    
      --jp-rendermime-error-background: #fdd;
      --jp-rendermime-table-row-background: var(--md-grey-100);
      --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);
    
      /* Dialog specific styles */
    
      --jp-dialog-background: rgba(0, 0, 0, 0.25);
    
      /* Console specific styles */
    
      --jp-console-padding: 10px;
    
      /* Toolbar specific styles */
    
      --jp-toolbar-border-color: var(--jp-border-color1);
      --jp-toolbar-micro-height: 8px;
      --jp-toolbar-background: var(--jp-layout-color1);
      --jp-toolbar-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.24);
      --jp-toolbar-header-margin: 4px 4px 0px 4px;
      --jp-toolbar-active-background: var(--md-grey-300);
    
      /* Statusbar specific styles */
    
      --jp-statusbar-height: 24px;
    
      /* Input field styles */
    
      --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
      --jp-input-active-background: var(--jp-layout-color1);
      --jp-input-hover-background: var(--jp-layout-color1);
      --jp-input-background: var(--md-grey-100);
      --jp-input-border-color: var(--jp-border-color1);
      --jp-input-active-border-color: var(--jp-brand-color1);
      --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);
    
      /* General editor styles */
    
      --jp-editor-selected-background: #d9d9d9;
      --jp-editor-selected-focused-background: #d7d4f0;
      --jp-editor-cursor-color: var(--jp-ui-font-color0);
    
      /* Code mirror specific styles */
    
      --jp-mirror-editor-keyword-color: #008000;
      --jp-mirror-editor-atom-color: #88f;
      --jp-mirror-editor-number-color: #080;
      --jp-mirror-editor-def-color: #00f;
      --jp-mirror-editor-variable-color: var(--md-grey-900);
      --jp-mirror-editor-variable-2-color: #05a;
      --jp-mirror-editor-variable-3-color: #085;
      --jp-mirror-editor-punctuation-color: #05a;
      --jp-mirror-editor-property-color: #05a;
      --jp-mirror-editor-operator-color: #aa22ff;
      --jp-mirror-editor-comment-color: #408080;
      --jp-mirror-editor-string-color: #ba2121;
      --jp-mirror-editor-string-2-color: #708;
      --jp-mirror-editor-meta-color: #aa22ff;
      --jp-mirror-editor-qualifier-color: #555;
      --jp-mirror-editor-builtin-color: #008000;
      --jp-mirror-editor-bracket-color: #997;
      --jp-mirror-editor-tag-color: #170;
      --jp-mirror-editor-attribute-color: #00c;
      --jp-mirror-editor-header-color: blue;
      --jp-mirror-editor-quote-color: #090;
      --jp-mirror-editor-link-color: #00c;
      --jp-mirror-editor-error-color: #f00;
      --jp-mirror-editor-hr-color: #999;
    
      /* Vega extension styles */
    
      --jp-vega-background: white;
    
      /* Sidebar-related styles */
    
      --jp-sidebar-min-width: 250px;
    
      /* Search-related styles */
    
      --jp-search-toggle-off-opacity: 0.5;
      --jp-search-toggle-hover-opacity: 0.8;
      --jp-search-toggle-on-opacity: 1;
      --jp-search-selected-match-background-color: rgb(245, 200, 0);
      --jp-search-selected-match-color: black;
      --jp-search-unselected-match-background-color: var(
        --jp-inverse-layout-color0
      );
      --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);
    
      /* Icon colors that work well with light or dark backgrounds */
      --jp-icon-contrast-color0: var(--md-purple-600);
      --jp-icon-contrast-color1: var(--md-green-600);
      --jp-icon-contrast-color2: var(--md-pink-600);
      --jp-icon-contrast-color3: var(--md-blue-600);
    }
    </style>
    
    <style type="text/css">
    a.anchor-link {
       display: none;
    }
    .highlight  {
        margin: 0.4em;
    }
    
    /* Input area styling */
    .jp-InputArea {
        overflow: hidden;
    }
    
    .jp-InputArea-editor {
        overflow: hidden;
    }
    
    @media print {
      body {
        margin: 0;
      }
    }
    </style>
    
    <!-- Load mathjax -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
        <!-- MathJax configuration -->
        <script type="text/x-mathjax-config">
        init_mathjax = function() {
            if (window.MathJax) {
            // MathJax loaded
                MathJax.Hub.Config({
                    TeX: {
                        equationNumbers: {
                        autoNumber: "AMS",
                        useLabelIds: true
                        }
                    },
                    tex2jax: {
                        inlineMath: [ ['$','$'], ["\\(","\\)"] ],
                        displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
                        processEscapes: true,
                        processEnvironments: true
                    },
                    displayAlign: 'center',
                    CommonHTML: {
                        linebreaks: { 
                        automatic: true 
                        }
                    }
                });
            
                MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
            }
        }
        init_mathjax();
        </script>
        <!-- End of mathjax configuration --></head>
    <body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
    
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h1 id="TD2:-Deep-learning">TD2: Deep learning<a class="anchor-link" href="#TD2:-Deep-learning">&#182;</a></h1>
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>In this TD, you must modify this notebook to answer the questions. To do this,</p>
    <ol>
    <li>Fork this repository</li>
    <li>Clone your forked repository on your local computer</li>
    <li>Answer the questions</li>
    <li>Commit and push regularly</li>
    </ol>
    <p>The last commit is due on Sunday, December 1, 11:59 PM. Later commits will not be taken into account.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Install and test PyTorch from  <a href="https://pytorch.org/get-started/locally">https://pytorch.org/get-started/locally</a>.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#%pip install torch torchvision</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>To test run the following code</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">torch</span>
    
    <span class="n">N</span><span class="p">,</span> <span class="n">D</span> <span class="o">=</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">10</span>
    <span class="n">x</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="n">N</span><span class="p">,</span> <span class="n">D</span><span class="p">)</span><span class="o">.</span><span class="n">type</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">FloatTensor</span><span class="p">)</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
    
    <span class="kn">from</span> <span class="nn">torchvision</span> <span class="kn">import</span> <span class="n">models</span>
    
    <span class="n">alexnet</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">alexnet</span><span class="p">()</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">alexnet</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>tensor([[-9.6164e-01,  7.5175e-01,  2.2068e-01, -1.9287e+00,  1.2018e+00,
              8.3169e-01,  4.4855e-01, -3.9142e-01, -5.6906e-01,  2.7513e-02],
            [-1.7256e+00,  1.1839e+00,  6.1850e-01,  4.0442e-01, -2.4731e-03,
              2.0747e-01, -8.9610e-01,  1.0929e+00,  5.2957e-01,  1.2756e+00],
            [-1.4138e+00,  4.2878e-01, -2.5560e-01, -5.0247e-01,  3.3962e-01,
              7.6361e-01, -3.9553e-01,  3.0112e-01,  8.0323e-01, -6.5776e-01],
            [-3.8860e-01, -7.1832e-01,  9.4326e-02,  1.9248e+00, -1.7670e+00,
             -2.9427e-01,  1.5313e+00, -1.3358e+00,  9.3929e-01, -7.3859e-01],
            [-1.1374e+00,  8.9347e-02,  5.6253e-01,  1.1770e+00,  1.4455e+00,
             -3.0582e-01, -1.2385e+00, -3.1167e+00,  1.5320e+00,  8.1779e-01],
            [-4.0280e-01, -6.0394e-01, -3.3574e-01,  5.9772e-01,  9.9111e-01,
              1.9502e+00,  8.0123e-01,  5.8141e-01, -2.9559e-02,  5.2823e-01],
            [-2.6291e-01,  1.4760e-01,  7.5081e-01, -1.3812e+00,  3.8280e-01,
              7.1685e-02,  6.5621e-01,  1.7026e+00,  5.1833e-02, -7.5081e-01],
            [-1.1018e+00, -1.1544e+00,  7.6059e-01, -7.3267e-01,  1.4962e+00,
              3.2975e-01,  1.4480e+00, -1.2683e+00, -1.0807e+00,  1.2137e+00],
            [ 4.5243e-01,  3.2494e-01,  1.8584e+00,  9.1640e-01, -5.0231e-01,
              2.2226e-01,  9.6508e-01, -1.3855e+00, -4.0333e-01,  2.0664e-01],
            [-8.7366e-01,  5.7875e-01,  6.7228e-01,  1.2443e+00,  5.0369e-02,
             -7.0752e-02, -9.4983e-03, -1.0352e+00, -8.9707e-01, -8.4242e-01],
            [-5.1466e-01,  9.4534e-01, -1.5424e+00,  9.0490e-01,  2.2420e+00,
              1.3246e-01, -8.2010e-01,  1.0778e-02,  8.8466e-02,  1.1311e-01],
            [ 1.3198e-02,  1.3362e-01,  4.8558e-01,  3.6620e-01, -2.1507e+00,
              1.7068e+00,  4.3327e-01,  3.7356e-02, -9.8956e-01, -7.9939e-01],
            [ 1.1221e+00, -8.4034e-01, -2.1407e+00,  4.1205e-01, -8.2332e-01,
             -1.2031e+00, -1.1830e+00,  5.4147e-02,  1.0012e-01, -3.1518e-01],
            [ 5.3398e-01, -3.4557e-01,  5.1655e-01,  9.6549e-01,  1.0638e+00,
              7.1804e-02,  2.5193e-01,  6.3295e-02, -7.5503e-01,  2.4725e-01]])
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>AlexNet(
      (features): Sequential(
        (0): Conv2d(3, 64, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))
        (1): ReLU(inplace=True)
        (2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        (3): Conv2d(64, 192, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
        (4): ReLU(inplace=True)
        (5): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        (6): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
        (7): ReLU(inplace=True)
        (8): Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
        (9): ReLU(inplace=True)
        (10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
        (11): ReLU(inplace=True)
        (12): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (avgpool): AdaptiveAvgPool2d(output_size=(6, 6))
      (classifier): Sequential(
        (0): Dropout(p=0.5, inplace=False)
        (1): Linear(in_features=9216, out_features=4096, bias=True)
        (2): ReLU(inplace=True)
        (3): Dropout(p=0.5, inplace=False)
        (4): Linear(in_features=4096, out_features=4096, bias=True)
        (5): ReLU(inplace=True)
        (6): Linear(in_features=4096, out_features=1000, bias=True)
      )
    )
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Exercise-1:-CNN-on-CIFAR10">Exercise 1: CNN on CIFAR10<a class="anchor-link" href="#Exercise-1:-CNN-on-CIFAR10">&#182;</a></h2><p>The goal is to apply a Convolutional Neural Net (CNN) model on the CIFAR10 image dataset and test the accuracy of the model on the basis of image classification. Compare the Accuracy VS the neural network implemented during TD1.</p>
    <p>Have a look at the following documentation to be familiar with PyTorch.</p>
    <p><a href="https://pytorch.org/tutorials/beginner/pytorch_with_examples.html">https://pytorch.org/tutorials/beginner/pytorch_with_examples.html</a></p>
    <p><a href="https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html">https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html</a></p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>You can test if GPU is available on your machine and thus train on it to speed up the process</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">torch</span>
    
    <span class="c1"># check if CUDA is available</span>
    <span class="n">train_on_gpu</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">cuda</span><span class="o">.</span><span class="n">is_available</span><span class="p">()</span>
    
    <span class="k">if</span> <span class="ow">not</span> <span class="n">train_on_gpu</span><span class="p">:</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;CUDA is not available.  Training on CPU ...&quot;</span><span class="p">)</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;CUDA is available!  Training on GPU ...&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>CUDA is not available.  Training on CPU ...
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Next we load the CIFAR10 dataset</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
    <span class="kn">from</span> <span class="nn">torchvision</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">transforms</span>
    <span class="kn">from</span> <span class="nn">torch.utils.data.sampler</span> <span class="kn">import</span> <span class="n">SubsetRandomSampler</span>
    
    <span class="c1"># number of subprocesses to use for data loading</span>
    <span class="n">num_workers</span> <span class="o">=</span> <span class="mi">0</span>
    <span class="c1"># how many samples per batch to load</span>
    <span class="n">batch_size</span> <span class="o">=</span> <span class="mi">20</span>
    <span class="c1"># percentage of training set to use as validation</span>
    <span class="n">valid_size</span> <span class="o">=</span> <span class="mf">0.2</span>
    
    <span class="c1"># convert data to a normalized torch.FloatTensor</span>
    <span class="n">transform</span> <span class="o">=</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
        <span class="p">[</span><span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">((</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">),</span> <span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">))]</span>
    <span class="p">)</span>
    
    <span class="c1"># choose the training and test datasets</span>
    <span class="n">train_data</span> <span class="o">=</span> <span class="n">datasets</span><span class="o">.</span><span class="n">CIFAR10</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">train</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">download</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">transform</span><span class="o">=</span><span class="n">transform</span><span class="p">)</span>
    <span class="n">test_data</span> <span class="o">=</span> <span class="n">datasets</span><span class="o">.</span><span class="n">CIFAR10</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">train</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">download</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">transform</span><span class="o">=</span><span class="n">transform</span><span class="p">)</span>
    
    <span class="c1"># obtain training indices that will be used for validation</span>
    <span class="n">num_train</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span>
    <span class="n">indices</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">num_train</span><span class="p">))</span>
    <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">shuffle</span><span class="p">(</span><span class="n">indices</span><span class="p">)</span>
    <span class="n">split</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">valid_size</span> <span class="o">*</span> <span class="n">num_train</span><span class="p">))</span>
    <span class="n">train_idx</span><span class="p">,</span> <span class="n">valid_idx</span> <span class="o">=</span> <span class="n">indices</span><span class="p">[</span><span class="n">split</span><span class="p">:],</span> <span class="n">indices</span><span class="p">[:</span><span class="n">split</span><span class="p">]</span>
    
    <span class="c1"># define samplers for obtaining training and validation batches</span>
    <span class="n">train_sampler</span> <span class="o">=</span> <span class="n">SubsetRandomSampler</span><span class="p">(</span><span class="n">train_idx</span><span class="p">)</span>
    <span class="n">valid_sampler</span> <span class="o">=</span> <span class="n">SubsetRandomSampler</span><span class="p">(</span><span class="n">valid_idx</span><span class="p">)</span>
    
    <span class="c1"># prepare data loaders (combine dataset and sampler)</span>
    <span class="n">train_loader</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
        <span class="n">train_data</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="n">batch_size</span><span class="p">,</span> <span class="n">sampler</span><span class="o">=</span><span class="n">train_sampler</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="n">num_workers</span>
    <span class="p">)</span>
    <span class="n">valid_loader</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
        <span class="n">train_data</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="n">batch_size</span><span class="p">,</span> <span class="n">sampler</span><span class="o">=</span><span class="n">valid_sampler</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="n">num_workers</span>
    <span class="p">)</span>
    <span class="n">test_loader</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
        <span class="n">test_data</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="n">batch_size</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="n">num_workers</span>
    <span class="p">)</span>
    
    <span class="c1"># specify the image classes</span>
    <span class="n">classes</span> <span class="o">=</span> <span class="p">[</span>
        <span class="s2">&quot;airplane&quot;</span><span class="p">,</span>
        <span class="s2">&quot;automobile&quot;</span><span class="p">,</span>
        <span class="s2">&quot;bird&quot;</span><span class="p">,</span>
        <span class="s2">&quot;cat&quot;</span><span class="p">,</span>
        <span class="s2">&quot;deer&quot;</span><span class="p">,</span>
        <span class="s2">&quot;dog&quot;</span><span class="p">,</span>
        <span class="s2">&quot;frog&quot;</span><span class="p">,</span>
        <span class="s2">&quot;horse&quot;</span><span class="p">,</span>
        <span class="s2">&quot;ship&quot;</span><span class="p">,</span>
        <span class="s2">&quot;truck&quot;</span><span class="p">,</span>
    <span class="p">]</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Files already downloaded and verified
    Files already downloaded and verified
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>CNN definition (this one is an example)</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">torch.nn</span> <span class="k">as</span> <span class="nn">nn</span>
    <span class="kn">import</span> <span class="nn">torch.nn.functional</span> <span class="k">as</span> <span class="nn">F</span>
    
    <span class="c1"># define the CNN architecture</span>
    
    
    <span class="k">class</span> <span class="nc">Net</span><span class="p">(</span><span class="n">nn</span><span class="o">.</span><span class="n">Module</span><span class="p">):</span>
        <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="nb">super</span><span class="p">(</span><span class="n">Net</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">pool</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">MaxPool2d</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">16</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">120</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">120</span><span class="p">,</span> <span class="mi">84</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">84</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
    
        <span class="k">def</span> <span class="nf">forward</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv1</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv2</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">16</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">5</span><span class="p">)</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc1</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc2</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">x</span>
    
    
    <span class="c1"># create a complete CNN</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">Net</span><span class="p">()</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
    <span class="c1"># move tensors to GPU if CUDA is available</span>
    <span class="k">if</span> <span class="n">train_on_gpu</span><span class="p">:</span>
        <span class="n">model</span><span class="o">.</span><span class="n">cuda</span><span class="p">()</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Net(
      (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))
      (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
      (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))
      (fc1): Linear(in_features=400, out_features=120, bias=True)
      (fc2): Linear(in_features=120, out_features=84, bias=True)
      (fc3): Linear(in_features=84, out_features=10, bias=True)
    )
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Loss function and training using SGD (Stochastic Gradient Descent) optimizer</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">torch.optim</span> <span class="k">as</span> <span class="nn">optim</span>
    
    
    <span class="k">def</span> <span class="nf">training</span><span class="p">(</span><span class="n">model_</span><span class="p">,</span><span class="n">name</span><span class="p">):</span>
        <span class="n">criterion</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">CrossEntropyLoss</span><span class="p">()</span>  <span class="c1"># specify loss function</span>
        <span class="n">optimizer</span> <span class="o">=</span> <span class="n">optim</span><span class="o">.</span><span class="n">SGD</span><span class="p">(</span><span class="n">model_</span><span class="o">.</span><span class="n">parameters</span><span class="p">(),</span> <span class="n">lr</span><span class="o">=</span><span class="mf">0.01</span><span class="p">)</span>  <span class="c1"># specify optimizer</span>
    
        <span class="n">n_epochs</span> <span class="o">=</span> <span class="mi">30</span>  <span class="c1"># number of epochs to train the model</span>
        <span class="n">train_loss_list</span> <span class="o">=</span> <span class="p">[]</span>  <span class="c1"># list to store loss to visualize</span>
        <span class="n">valid_loss_min</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">Inf</span>  <span class="c1"># track change in validation loss</span>
    
        <span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_epochs</span><span class="p">):</span>
            <span class="c1"># Keep track of training and validation loss</span>
            <span class="n">train_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
            <span class="n">valid_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
    
            <span class="c1"># Train the model</span>
            <span class="n">model_</span><span class="o">.</span><span class="n">train</span><span class="p">()</span>
            <span class="k">for</span> <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="ow">in</span> <span class="n">train_loader</span><span class="p">:</span>
                <span class="c1"># Move tensors to GPU if CUDA is available</span>
                <span class="k">if</span> <span class="n">train_on_gpu</span><span class="p">:</span>
                    <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">cuda</span><span class="p">(),</span> <span class="n">target</span><span class="o">.</span><span class="n">cuda</span><span class="p">()</span>
                <span class="c1"># Clear the gradients of all optimized variables</span>
                <span class="n">optimizer</span><span class="o">.</span><span class="n">zero_grad</span><span class="p">()</span>
                <span class="c1"># Forward pass: compute predicted outputs by passing inputs to the model</span>
                <span class="n">output</span> <span class="o">=</span> <span class="n">model_</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
                <span class="c1"># Calculate the batch loss</span>
                <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
                <span class="c1"># Backward pass: compute gradient of the loss with respect to model parameters</span>
                <span class="n">loss</span><span class="o">.</span><span class="n">backward</span><span class="p">()</span>
                <span class="c1"># Perform a single optimization step (parameter update)</span>
                <span class="n">optimizer</span><span class="o">.</span><span class="n">step</span><span class="p">()</span>
                <span class="c1"># Update training loss</span>
                <span class="n">train_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">data</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
    
            <span class="c1"># Validate the model</span>
            <span class="n">model_</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>
            <span class="k">for</span> <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="ow">in</span> <span class="n">valid_loader</span><span class="p">:</span>
                <span class="c1"># Move tensors to GPU if CUDA is available</span>
                <span class="k">if</span> <span class="n">train_on_gpu</span><span class="p">:</span>
                    <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">cuda</span><span class="p">(),</span> <span class="n">target</span><span class="o">.</span><span class="n">cuda</span><span class="p">()</span>
                <span class="c1"># Forward pass: compute predicted outputs by passing inputs to the model</span>
                <span class="n">output</span> <span class="o">=</span> <span class="n">model_</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
                <span class="c1"># Calculate the batch loss</span>
                <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
                <span class="c1"># Update average validation loss</span>
                <span class="n">valid_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">data</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
    
            <span class="c1"># Calculate average losses</span>
            <span class="n">train_loss</span> <span class="o">=</span> <span class="n">train_loss</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">train_loader</span><span class="p">)</span>
            <span class="n">valid_loss</span> <span class="o">=</span> <span class="n">valid_loss</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">valid_loader</span><span class="p">)</span>
            <span class="n">train_loss_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">train_loss</span><span class="p">)</span>
    
            <span class="c1"># Print training/validation statistics</span>
            <span class="nb">print</span><span class="p">(</span>
                <span class="s2">&quot;Epoch: </span><span class="si">{}</span><span class="s2"> </span><span class="se">\t</span><span class="s2">Training Loss: </span><span class="si">{:.6f}</span><span class="s2"> </span><span class="se">\t</span><span class="s2">Validation Loss: </span><span class="si">{:.6f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">epoch</span><span class="p">,</span> <span class="n">train_loss</span><span class="p">,</span> <span class="n">valid_loss</span>
                <span class="p">)</span>
            <span class="p">)</span>
    
            <span class="c1"># Save model if validation loss has decreased</span>
            <span class="k">if</span> <span class="n">valid_loss</span> <span class="o">&lt;=</span> <span class="n">valid_loss_min</span><span class="p">:</span>
                <span class="nb">print</span><span class="p">(</span>
                    <span class="s2">&quot;Validation loss decreased (</span><span class="si">{:.6f}</span><span class="s2"> --&gt; </span><span class="si">{:.6f}</span><span class="s2">).  Saving model ...&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">valid_loss_min</span><span class="p">,</span> <span class="n">valid_loss</span>
                    <span class="p">)</span>
                <span class="p">)</span>
                <span class="n">torch</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">model_</span><span class="o">.</span><span class="n">state_dict</span><span class="p">(),</span> <span class="n">name</span><span class="p">)</span>
                <span class="n">valid_loss_min</span> <span class="o">=</span> <span class="n">valid_loss</span>
        <span class="k">return</span> <span class="n">train_loss_list</span><span class="p">,</span><span class="n">n_epochs</span>
    
    <span class="n">train_loss_list</span><span class="p">,</span><span class="n">n_epochs</span><span class="o">=</span><span class="n">training</span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="s2">&quot;model_cifar.pt&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Epoch: 0 	Training Loss: 43.322449 	Validation Loss: 37.534600
    Validation loss decreased (inf --&gt; 37.534600).  Saving model ...
    Epoch: 1 	Training Loss: 34.643701 	Validation Loss: 31.136308
    Validation loss decreased (37.534600 --&gt; 31.136308).  Saving model ...
    Epoch: 2 	Training Loss: 30.696749 	Validation Loss: 29.305418
    Validation loss decreased (31.136308 --&gt; 29.305418).  Saving model ...
    Epoch: 3 	Training Loss: 28.533169 	Validation Loss: 28.138255
    Validation loss decreased (29.305418 --&gt; 28.138255).  Saving model ...
    Epoch: 4 	Training Loss: 26.984089 	Validation Loss: 26.008851
    Validation loss decreased (28.138255 --&gt; 26.008851).  Saving model ...
    Epoch: 5 	Training Loss: 25.598758 	Validation Loss: 24.788705
    Validation loss decreased (26.008851 --&gt; 24.788705).  Saving model ...
    Epoch: 6 	Training Loss: 24.410424 	Validation Loss: 24.675400
    Validation loss decreased (24.788705 --&gt; 24.675400).  Saving model ...
    Epoch: 7 	Training Loss: 23.331779 	Validation Loss: 24.064556
    Validation loss decreased (24.675400 --&gt; 24.064556).  Saving model ...
    Epoch: 8 	Training Loss: 22.372174 	Validation Loss: 23.541685
    Validation loss decreased (24.064556 --&gt; 23.541685).  Saving model ...
    Epoch: 9 	Training Loss: 21.532750 	Validation Loss: 22.832895
    Validation loss decreased (23.541685 --&gt; 22.832895).  Saving model ...
    Epoch: 10 	Training Loss: 20.801076 	Validation Loss: 22.783772
    Validation loss decreased (22.832895 --&gt; 22.783772).  Saving model ...
    Epoch: 11 	Training Loss: 20.057448 	Validation Loss: 21.981297
    Validation loss decreased (22.783772 --&gt; 21.981297).  Saving model ...
    Epoch: 12 	Training Loss: 19.406093 	Validation Loss: 21.886178
    Validation loss decreased (21.981297 --&gt; 21.886178).  Saving model ...
    Epoch: 13 	Training Loss: 18.735991 	Validation Loss: 21.499771
    Validation loss decreased (21.886178 --&gt; 21.499771).  Saving model ...
    Epoch: 14 	Training Loss: 18.176201 	Validation Loss: 22.818723
    Epoch: 15 	Training Loss: 17.577495 	Validation Loss: 22.793243
    Epoch: 16 	Training Loss: 17.008231 	Validation Loss: 21.628658
    Epoch: 17 	Training Loss: 16.398250 	Validation Loss: 22.139813
    Epoch: 18 	Training Loss: 15.941069 	Validation Loss: 22.418324
    Epoch: 19 	Training Loss: 15.427645 	Validation Loss: 22.229620
    Epoch: 20 	Training Loss: 14.983954 	Validation Loss: 22.178547
    Epoch: 21 	Training Loss: 14.419324 	Validation Loss: 23.024117
    Epoch: 22 	Training Loss: 14.000020 	Validation Loss: 23.038742
    Epoch: 23 	Training Loss: 13.525463 	Validation Loss: 22.881500
    Epoch: 24 	Training Loss: 12.990559 	Validation Loss: 23.842180
    Epoch: 25 	Training Loss: 12.650270 	Validation Loss: 23.820795
    Epoch: 26 	Training Loss: 12.138135 	Validation Loss: 24.533619
    Epoch: 27 	Training Loss: 11.802696 	Validation Loss: 25.346910
    Epoch: 28 	Training Loss: 11.412316 	Validation Loss: 25.572966
    Epoch: 29 	Training Loss: 10.919574 	Validation Loss: 26.247145
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Does overfit occur? If so, do an early stopping.</p>
    <p>Oui il y a de l'overfitting. A parir de l'epoche 11.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
    
    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">n_epochs</span><span class="p">),</span> <span class="n">train_loss_list</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Epoch&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Loss&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Performance of Model 1&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    
    
    <div class="jp-RenderedImage jp-OutputArea-output ">
    <img src="data:image/png;base64,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"
    >
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Now loading the model with the lowest validation loss value</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs  ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#on définit la fonction test</span>
    <span class="k">def</span> <span class="nf">test</span><span class="p">(</span><span class="n">model_</span><span class="p">):</span>
    
        <span class="n">criterion</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">CrossEntropyLoss</span><span class="p">()</span>  <span class="c1"># specify loss function</span>
    
        <span class="c1"># track test loss</span>
        <span class="n">test_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
        <span class="n">class_correct</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="mf">0.0</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
        <span class="n">class_total</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="mf">0.0</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
    
        <span class="n">model_</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>
        <span class="c1"># iterate over test data</span>
        <span class="k">for</span> <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="ow">in</span> <span class="n">test_loader</span><span class="p">:</span>
            <span class="c1"># move tensors to GPU if CUDA is available</span>
            <span class="k">if</span> <span class="n">train_on_gpu</span><span class="p">:</span>
                <span class="n">data</span><span class="p">,</span> <span class="n">target</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">cuda</span><span class="p">(),</span> <span class="n">target</span><span class="o">.</span><span class="n">cuda</span><span class="p">()</span>
            <span class="c1"># forward pass: compute predicted outputs by passing inputs to the model</span>
            <span class="n">output</span> <span class="o">=</span> <span class="n">model_</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
            <span class="c1"># calculate the batch loss</span>
            <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
            <span class="c1"># update test loss</span>
            <span class="n">test_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">data</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
            <span class="c1"># convert output probabilities to predicted class</span>
            <span class="n">_</span><span class="p">,</span> <span class="n">pred</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
            <span class="c1"># compare predictions to true label</span>
            <span class="n">correct_tensor</span> <span class="o">=</span> <span class="n">pred</span><span class="o">.</span><span class="n">eq</span><span class="p">(</span><span class="n">target</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">view_as</span><span class="p">(</span><span class="n">pred</span><span class="p">))</span>
            <span class="n">correct</span> <span class="o">=</span> <span class="p">(</span>
                <span class="n">np</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(</span><span class="n">correct_tensor</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
                <span class="k">if</span> <span class="ow">not</span> <span class="n">train_on_gpu</span>
                <span class="k">else</span> <span class="n">np</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(</span><span class="n">correct_tensor</span><span class="o">.</span><span class="n">cpu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
            <span class="p">)</span>
            <span class="c1"># calculate test accuracy for each object class</span>
            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">batch_size</span><span class="p">):</span>
                <span class="n">label</span> <span class="o">=</span> <span class="n">target</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
                <span class="n">class_correct</span><span class="p">[</span><span class="n">label</span><span class="p">]</span> <span class="o">+=</span> <span class="n">correct</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">item</span><span class="p">()</span>
                <span class="n">class_total</span><span class="p">[</span><span class="n">label</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
    
        <span class="c1"># average test loss</span>
        <span class="n">test_loss</span> <span class="o">=</span> <span class="n">test_loss</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">test_loader</span><span class="p">)</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Test Loss: </span><span class="si">{:.6f}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">test_loss</span><span class="p">))</span>
    
    
        <span class="nb">print</span><span class="p">(</span><span class="n">class_total</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">):</span>
            <span class="k">if</span> <span class="n">class_total</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
                <span class="nb">print</span><span class="p">(</span>
                    <span class="s2">&quot;Test Accuracy of </span><span class="si">%5s</span><span class="s2">: </span><span class="si">%2d%%</span><span class="s2"> (</span><span class="si">%2d</span><span class="s2">/</span><span class="si">%2d</span><span class="s2">)&quot;</span>
                    <span class="o">%</span> <span class="p">(</span>
                        <span class="n">classes</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
                        <span class="mi">100</span> <span class="o">*</span> <span class="n">class_correct</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/</span> <span class="n">class_total</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
                        <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_correct</span><span class="p">[</span><span class="n">i</span><span class="p">]),</span>
                        <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_total</span><span class="p">[</span><span class="n">i</span><span class="p">]),</span>
                    <span class="p">)</span>
                <span class="p">)</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Test Accuracy of </span><span class="si">%5s</span><span class="s2">: N/A (no training examples)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">classes</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
    
        <span class="nb">print</span><span class="p">(</span>
            <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Test Accuracy (Overall): </span><span class="si">%2d%%</span><span class="s2"> (</span><span class="si">%2d</span><span class="s2">/</span><span class="si">%2d</span><span class="s2">)&quot;</span>
            <span class="o">%</span> <span class="p">(</span>
                <span class="mf">100.0</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_correct</span><span class="p">)</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_total</span><span class="p">),</span>
                <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_correct</span><span class="p">),</span>
                <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">class_total</span><span class="p">),</span>
            <span class="p">)</span>
        <span class="p">)</span>   
        <span class="k">return</span> 
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># on load le model</span>
    <span class="n">model</span><span class="o">.</span><span class="n">load_state_dict</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s2">&quot;./model_cifar.pt&quot;</span><span class="p">))</span>
    
    <span class="c1">#on teste le modele</span>
    <span class="n">test</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Test Loss: 21.873704
    
    [1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0]
    Test Accuracy of airplane: 61% (613/1000)
    Test Accuracy of automobile: 68% (686/1000)
    Test Accuracy of  bird: 57% (573/1000)
    Test Accuracy of   cat: 47% (477/1000)
    Test Accuracy of  deer: 48% (486/1000)
    Test Accuracy of   dog: 45% (450/1000)
    Test Accuracy of  frog: 64% (648/1000)
    Test Accuracy of horse: 70% (702/1000)
    Test Accuracy of  ship: 81% (817/1000)
    Test Accuracy of truck: 71% (711/1000)
    
    Test Accuracy (Overall): 61% (6163/10000)
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Build a new network with the following structure.</p>
    <ul>
    <li>It has 3 convolutional layers of kernel size 3 and padding of 1.</li>
    <li>The first convolutional layer must output 16 channels, the second 32 and the third 64.</li>
    <li>At each convolutional layer output, we apply a ReLU activation then a MaxPool with kernel size of 2.</li>
    <li>Then, three fully connected layers, the first two being followed by a ReLU activation and a dropout whose value you will suggest.</li>
    <li>The first fully connected layer will have an output size of 512.</li>
    <li>The second fully connected layer will have an output size of 64.</li>
    </ul>
    <p>Compare the results obtained with this new network to those obtained previously.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-cr%C3%A9e-la-nouvelle-architecture-du-r%C3%A9seau-CNN-de-la-m%C3%AAme-mani%C3%A8re.-On-l'appellera-model-2.">On cr&#233;e la nouvelle architecture du r&#233;seau CNN de la m&#234;me mani&#232;re. On l'appellera model 2.<a class="anchor-link" href="#On-cr%C3%A9e-la-nouvelle-architecture-du-r%C3%A9seau-CNN-de-la-m%C3%AAme-mani%C3%A8re.-On-l'appellera-model-2.">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># define the CNN architecture</span>
    
    <span class="k">class</span> <span class="nc">Net</span><span class="p">(</span><span class="n">nn</span><span class="o">.</span><span class="n">Module</span><span class="p">):</span>
        <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="nb">super</span><span class="p">(</span><span class="n">Net</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="n">in_channels</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">out_channels</span><span class="o">=</span><span class="mi">16</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">padding</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">pool</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">MaxPool2d</span><span class="p">(</span><span class="n">kernel_size</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="n">in_channels</span><span class="o">=</span><span class="mi">16</span><span class="p">,</span> <span class="n">out_channels</span><span class="o">=</span><span class="mi">32</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">padding</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv3</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="n">in_channels</span><span class="o">=</span><span class="mi">32</span><span class="p">,</span> <span class="n">out_channels</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">kernel_size</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">padding</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
    
            <span class="bp">self</span><span class="o">.</span><span class="n">fc1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">64</span><span class="o">*</span><span class="mi">4</span><span class="o">*</span><span class="mi">4</span><span class="p">,</span> <span class="mi">512</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">512</span><span class="p">,</span> <span class="mi">64</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">64</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
    
        <span class="k">def</span> <span class="nf">forward</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv1</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv2</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv3</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
    
            <span class="n">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">64</span> <span class="o">*</span> <span class="mi">4</span> <span class="o">*</span> <span class="mi">4</span><span class="p">)</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc1</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc2</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">x</span>
    
    
    <span class="c1"># create a complete CNN</span>
    <span class="n">model2</span> <span class="o">=</span> <span class="n">Net</span><span class="p">()</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
    <span class="c1"># move tensors to GPU if CUDA is available</span>
    <span class="k">if</span> <span class="n">train_on_gpu</span><span class="p">:</span>
        <span class="n">model2</span><span class="o">.</span><span class="n">cuda</span><span class="p">()</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Net(
      (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))
      (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
      (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))
      (fc1): Linear(in_features=400, out_features=120, bias=True)
      (fc2): Linear(in_features=120, out_features=84, bias=True)
      (fc3): Linear(in_features=84, out_features=10, bias=True)
    )
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-entraine-maintenant-l'algorithme.">On entraine maintenant l'algorithme.<a class="anchor-link" href="#On-entraine-maintenant-l'algorithme.">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#train</span>
    <span class="n">train_loss_list</span><span class="p">,</span><span class="n">n_epochs</span><span class="o">=</span><span class="n">training</span><span class="p">(</span><span class="n">model2</span><span class="p">,</span><span class="s2">&quot;model_cifar_2.pt&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Epoch: 0 	Training Loss: 45.546517 	Validation Loss: 41.965355
    Validation loss decreased (inf --&gt; 41.965355).  Saving model ...
    Epoch: 1 	Training Loss: 37.506297 	Validation Loss: 32.462201
    Validation loss decreased (41.965355 --&gt; 32.462201).  Saving model ...
    Epoch: 2 	Training Loss: 30.826246 	Validation Loss: 28.965965
    Validation loss decreased (32.462201 --&gt; 28.965965).  Saving model ...
    Epoch: 3 	Training Loss: 27.725424 	Validation Loss: 26.256559
    Validation loss decreased (28.965965 --&gt; 26.256559).  Saving model ...
    Epoch: 4 	Training Loss: 25.409111 	Validation Loss: 23.947241
    Validation loss decreased (26.256559 --&gt; 23.947241).  Saving model ...
    Epoch: 5 	Training Loss: 23.199655 	Validation Loss: 22.190540
    Validation loss decreased (23.947241 --&gt; 22.190540).  Saving model ...
    Epoch: 6 	Training Loss: 21.171948 	Validation Loss: 21.483634
    Validation loss decreased (22.190540 --&gt; 21.483634).  Saving model ...
    Epoch: 7 	Training Loss: 19.252010 	Validation Loss: 19.125935
    Validation loss decreased (21.483634 --&gt; 19.125935).  Saving model ...
    Epoch: 8 	Training Loss: 17.624332 	Validation Loss: 18.777900
    Validation loss decreased (19.125935 --&gt; 18.777900).  Saving model ...
    Epoch: 9 	Training Loss: 16.178626 	Validation Loss: 17.967978
    Validation loss decreased (18.777900 --&gt; 17.967978).  Saving model ...
    Epoch: 10 	Training Loss: 14.790585 	Validation Loss: 17.401410
    Validation loss decreased (17.967978 --&gt; 17.401410).  Saving model ...
    Epoch: 11 	Training Loss: 13.436781 	Validation Loss: 16.391732
    Validation loss decreased (17.401410 --&gt; 16.391732).  Saving model ...
    Epoch: 12 	Training Loss: 12.091579 	Validation Loss: 18.383929
    Epoch: 13 	Training Loss: 10.885964 	Validation Loss: 16.164210
    Validation loss decreased (16.391732 --&gt; 16.164210).  Saving model ...
    Epoch: 14 	Training Loss: 9.642637 	Validation Loss: 17.355094
    Epoch: 15 	Training Loss: 8.420236 	Validation Loss: 18.205283
    Epoch: 16 	Training Loss: 7.142842 	Validation Loss: 17.389541
    Epoch: 17 	Training Loss: 6.121646 	Validation Loss: 19.769254
    Epoch: 18 	Training Loss: 4.971805 	Validation Loss: 20.793741
    Epoch: 19 	Training Loss: 4.208495 	Validation Loss: 23.089104
    Epoch: 20 	Training Loss: 3.380529 	Validation Loss: 23.717688
    Epoch: 21 	Training Loss: 2.708748 	Validation Loss: 25.890190
    Epoch: 22 	Training Loss: 2.314826 	Validation Loss: 26.893456
    Epoch: 23 	Training Loss: 1.924105 	Validation Loss: 30.196253
    Epoch: 24 	Training Loss: 1.555745 	Validation Loss: 28.148667
    Epoch: 25 	Training Loss: 1.266747 	Validation Loss: 30.644867
    Epoch: 26 	Training Loss: 1.780205 	Validation Loss: 32.042693
    Epoch: 27 	Training Loss: 1.415102 	Validation Loss: 33.207941
    Epoch: 28 	Training Loss: 1.071195 	Validation Loss: 35.509902
    Epoch: 29 	Training Loss: 0.989859 	Validation Loss: 37.337378
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-affiche-le-train-lost-en-fonction-du-nombre-d'%C3%A9poches.">On affiche le train lost en fonction du nombre d'&#233;poches.<a class="anchor-link" href="#On-affiche-le-train-lost-en-fonction-du-nombre-d'%C3%A9poches.">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
    
    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">n_epochs</span><span class="p">),</span> <span class="n">train_loss_list</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Epoch&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Loss&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Performance of Model 2&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    
    
    <div class="jp-RenderedImage jp-OutputArea-output ">
    <img src="data:image/png;base64,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"
    >
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-calcule-la-precision-du-mod%C3%A8le-sur-une-base-de-donn%C3%A9es-test.">On calcule la precision du mod&#232;le sur une base de donn&#233;es test.<a class="anchor-link" href="#On-calcule-la-precision-du-mod%C3%A8le-sur-une-base-de-donn%C3%A9es-test.">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">model2</span><span class="o">.</span><span class="n">load_state_dict</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s2">&quot;./model_cifar_2.pt&quot;</span><span class="p">))</span>
    
    <span class="n">test</span><span class="p">(</span><span class="n">model2</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Test Loss: 16.504843
    
    [1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0]
    Test Accuracy of airplane: 78% (786/1000)
    Test Accuracy of automobile: 78% (780/1000)
    Test Accuracy of  bird: 62% (625/1000)
    Test Accuracy of   cat: 57% (578/1000)
    Test Accuracy of  deer: 67% (679/1000)
    Test Accuracy of   dog: 51% (514/1000)
    Test Accuracy of  frog: 79% (795/1000)
    Test Accuracy of horse: 80% (804/1000)
    Test Accuracy of  ship: 86% (863/1000)
    Test Accuracy of truck: 78% (781/1000)
    
    Test Accuracy (Overall): 72% (7205/10000)
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="La-pr%C3%A9cision-est-meilleure-pour-presque-toutes-les-classes-(la-classe-truck-a-une-pr%C3%A9cision-plus-faible).">La pr&#233;cision est meilleure pour presque toutes les classes (la classe truck a une pr&#233;cision plus faible).<a class="anchor-link" href="#La-pr%C3%A9cision-est-meilleure-pour-presque-toutes-les-classes-(la-classe-truck-a-une-pr%C3%A9cision-plus-faible).">&#182;</a></h3><h3 id="Au-global,-la-pr%C3%A9cision-avec-cette-nouvelle-architecture-est-meilleure-(71%25)-que-la-pr%C3%A9cedente-(62%25).">Au global, la pr&#233;cision avec cette nouvelle architecture est meilleure (71%) que la pr&#233;cedente (62%).<a class="anchor-link" href="#Au-global,-la-pr%C3%A9cision-avec-cette-nouvelle-architecture-est-meilleure-(71%25)-que-la-pr%C3%A9cedente-(62%25).">&#182;</a></h3>
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Exercise-2:-Quantization:-try-to-compress-the-CNN-to-save-space">Exercise 2: Quantization: try to compress the CNN to save space<a class="anchor-link" href="#Exercise-2:-Quantization:-try-to-compress-the-CNN-to-save-space">&#182;</a></h2><p>Quantization doc is available from <a href="https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic">https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic</a></p>
    <p>The Exercise is to quantize post training the above CNN model. Compare the size reduction and the impact on the classification accuracy</p>
    <p>The size of the model is simply the size of the file.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
    
    
    <span class="k">def</span> <span class="nf">print_size_of_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
        <span class="n">torch</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">(),</span> <span class="s2">&quot;temp.p&quot;</span><span class="p">)</span>
        <span class="n">size</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">getsize</span><span class="p">(</span><span class="s2">&quot;temp.p&quot;</span><span class="p">)</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;model: &quot;</span><span class="p">,</span> <span class="n">label</span><span class="p">,</span> <span class="s2">&quot; </span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;Size (KB):&quot;</span><span class="p">,</span> <span class="n">size</span> <span class="o">/</span> <span class="mf">1e3</span><span class="p">)</span>
        <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s2">&quot;temp.p&quot;</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">size</span>
    
    
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="s2">&quot;fp32&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>model:  fp32  	 Size (KB): 251.278
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt">Out[&nbsp;]:</div>
    
    
    
    
    <div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain">
    <pre>251278</pre>
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="La-taille-initial-du-mod%C3%A8le-1-est-de-251.278-KB">La taille initial du mod&#232;le 1 est de 251.278 KB<a class="anchor-link" href="#La-taille-initial-du-mod%C3%A8le-1-est-de-251.278-KB">&#182;</a></h3>
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-va-compresser-ce-mod%C3%A8le-:">On va compresser ce mod&#232;le :<a class="anchor-link" href="#On-va-compresser-ce-mod%C3%A8le-:">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">torch.quantization</span>
    
    <span class="n">quantized_model</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">quantize_dynamic</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">qint8</span><span class="p">)</span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">quantized_model</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>model:  int8  	 Size (KB): 76.522
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt">Out[&nbsp;]:</div>
    
    
    
    
    <div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain">
    <pre>76522</pre>
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="Le-mod%C3%A8le-compress%C3%A9-a-une-taille-de-76.522-KB.-Il-y-a-donc-eu-une-r%C3%A9duction-de-174.756-KB.">Le mod&#232;le compress&#233; a une taille de 76.522 KB. Il y a donc eu une r&#233;duction de 174.756 KB.<a class="anchor-link" href="#Le-mod%C3%A8le-compress%C3%A9-a-une-taille-de-76.522-KB.-Il-y-a-donc-eu-une-r%C3%A9duction-de-174.756-KB.">&#182;</a></h3>
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># on teste le modèle compressé</span>
    <span class="n">test</span><span class="p">(</span><span class="n">quantized_model</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Test Loss: 21.884723
    
    [1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0]
    Test Accuracy of airplane: 61% (611/1000)
    Test Accuracy of automobile: 68% (688/1000)
    Test Accuracy of  bird: 56% (568/1000)
    Test Accuracy of   cat: 47% (476/1000)
    Test Accuracy of  deer: 48% (487/1000)
    Test Accuracy of   dog: 45% (450/1000)
    Test Accuracy of  frog: 64% (646/1000)
    Test Accuracy of horse: 70% (705/1000)
    Test Accuracy of  ship: 81% (812/1000)
    Test Accuracy of truck: 71% (714/1000)
    
    Test Accuracy (Overall): 61% (6157/10000)
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>En terme de précision, elle est la même en pourcentage pour presque toutes les classes (en comparaison avec le modèle non compressé).</p>
    <p>Elle différe de 1% pour la classe horse.</p>
    <p>Au global, la précision est la même.</p>
    <p>Le modèle compressé conserve la précision du modèle tout en réduisant sa taille.</p>
    <hr>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>For each class, compare the classification test accuracy of the initial model and the quantized model. Also give the overall test accuracy for both models.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Try training aware quantization to mitigate the impact on the accuracy (doc available here <a href="https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic">https://pytorch.org/docs/stable/quantization.html#torch.quantization.quantize_dynamic</a>)</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h3 id="On-va-essayer-le-training-aware-quantization">On va essayer le training aware quantization<a class="anchor-link" href="#On-va-essayer-le-training-aware-quantization">&#182;</a></h3><p>On recrée un nouveau modèle à partir du modèle 1.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#on crée le modèle quantizé</span>
    
    <span class="k">class</span> <span class="nc">Net</span><span class="p">(</span><span class="n">nn</span><span class="o">.</span><span class="n">Module</span><span class="p">):</span>
        <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
            <span class="nb">super</span><span class="p">(</span><span class="n">Net</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
             <span class="c1"># QuantStub converts tensors from floating point to quantized</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">quant</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">ao</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">QuantStub</span><span class="p">()</span>
    
            <span class="bp">self</span><span class="o">.</span><span class="n">conv1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">pool</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">MaxPool2d</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">conv2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc1</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">16</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">120</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc2</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">120</span><span class="p">,</span> <span class="mi">84</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">84</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
    
            <span class="bp">self</span><span class="o">.</span><span class="n">dequant</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">ao</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">DeQuantStub</span><span class="p">()</span>
    
    
    
        <span class="k">def</span> <span class="nf">forward</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">quant</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv1</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pool</span><span class="p">(</span><span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">conv2</span><span class="p">(</span><span class="n">x</span><span class="p">)))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">16</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">5</span><span class="p">)</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc1</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">F</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fc2</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fc3</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
            <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dequant</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">x</span>
    
    
    <span class="c1"># create a complete CNN</span>
    <span class="n">model_aware_quantization</span> <span class="o">=</span> <span class="n">Net</span><span class="p">()</span>
    
    <span class="n">model_aware_quantization</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt">Out[&nbsp;]:</div>
    
    
    
    
    <div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain">
    <pre>Net(
      (quant): QuantStub()
      (conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))
      (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
      (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))
      (fc1): Linear(in_features=400, out_features=120, bias=True)
      (fc2): Linear(in_features=120, out_features=84, bias=True)
      (fc3): Linear(in_features=84, out_features=10, bias=True)
      (dequant): DeQuantStub()
    )</pre>
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#train the model</span>
    <span class="n">train_loss_list</span><span class="p">,</span><span class="n">n_epochs</span><span class="o">=</span><span class="n">training</span><span class="p">(</span><span class="n">model_aware_quantization</span><span class="p">,</span><span class="s2">&quot;model_cifar_aware_quantization.pt&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Epoch: 0 	Training Loss: 44.515622 	Validation Loss: 39.651668
    Validation loss decreased (inf --&gt; 39.651668).  Saving model ...
    Epoch: 1 	Training Loss: 36.187454 	Validation Loss: 33.535019
    Validation loss decreased (39.651668 --&gt; 33.535019).  Saving model ...
    Epoch: 2 	Training Loss: 31.515289 	Validation Loss: 29.458190
    Validation loss decreased (33.535019 --&gt; 29.458190).  Saving model ...
    Epoch: 3 	Training Loss: 28.995076 	Validation Loss: 27.946637
    Validation loss decreased (29.458190 --&gt; 27.946637).  Saving model ...
    Epoch: 4 	Training Loss: 27.089252 	Validation Loss: 26.622712
    Validation loss decreased (27.946637 --&gt; 26.622712).  Saving model ...
    Epoch: 5 	Training Loss: 25.505706 	Validation Loss: 25.257544
    Validation loss decreased (26.622712 --&gt; 25.257544).  Saving model ...
    Epoch: 6 	Training Loss: 24.208821 	Validation Loss: 24.149545
    Validation loss decreased (25.257544 --&gt; 24.149545).  Saving model ...
    Epoch: 7 	Training Loss: 23.149960 	Validation Loss: 23.239544
    Validation loss decreased (24.149545 --&gt; 23.239544).  Saving model ...
    Epoch: 8 	Training Loss: 22.233548 	Validation Loss: 22.827516
    Validation loss decreased (23.239544 --&gt; 22.827516).  Saving model ...
    Epoch: 9 	Training Loss: 21.358925 	Validation Loss: 23.077734
    Epoch: 10 	Training Loss: 20.627038 	Validation Loss: 21.895032
    Validation loss decreased (22.827516 --&gt; 21.895032).  Saving model ...
    Epoch: 11 	Training Loss: 19.869867 	Validation Loss: 21.903653
    Epoch: 12 	Training Loss: 19.227587 	Validation Loss: 21.835049
    Validation loss decreased (21.895032 --&gt; 21.835049).  Saving model ...
    Epoch: 13 	Training Loss: 18.584631 	Validation Loss: 21.379109
    Validation loss decreased (21.835049 --&gt; 21.379109).  Saving model ...
    Epoch: 14 	Training Loss: 17.965375 	Validation Loss: 22.105847
    Epoch: 15 	Training Loss: 17.418559 	Validation Loss: 21.119945
    Validation loss decreased (21.379109 --&gt; 21.119945).  Saving model ...
    Epoch: 16 	Training Loss: 16.785295 	Validation Loss: 21.018267
    Validation loss decreased (21.119945 --&gt; 21.018267).  Saving model ...
    Epoch: 17 	Training Loss: 16.285102 	Validation Loss: 21.647233
    Epoch: 18 	Training Loss: 15.765099 	Validation Loss: 21.452533
    Epoch: 19 	Training Loss: 15.246105 	Validation Loss: 21.444231
    Epoch: 20 	Training Loss: 14.740839 	Validation Loss: 22.717484
    Epoch: 21 	Training Loss: 14.231403 	Validation Loss: 21.937744
    Epoch: 22 	Training Loss: 13.831682 	Validation Loss: 22.649114
    Epoch: 23 	Training Loss: 13.302803 	Validation Loss: 22.911363
    Epoch: 24 	Training Loss: 12.881577 	Validation Loss: 23.119514
    Epoch: 25 	Training Loss: 12.434679 	Validation Loss: 24.015339
    Epoch: 26 	Training Loss: 11.999609 	Validation Loss: 23.906202
    Epoch: 27 	Training Loss: 11.535745 	Validation Loss: 24.581035
    Epoch: 28 	Training Loss: 11.174014 	Validation Loss: 25.033342
    Epoch: 29 	Training Loss: 10.767195 	Validation Loss: 26.522749
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#quantization</span>
    <span class="n">model_aware_quantization</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">quantize_dynamic</span><span class="p">(</span>
        <span class="n">model_aware_quantization</span><span class="p">,</span> <span class="p">{</span><span class="n">nn</span><span class="o">.</span><span class="n">Conv2d</span><span class="p">,</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">},</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">qint8</span>
    <span class="p">)</span>
    
    <span class="c1">#on affiche la taille du nouveau modele</span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">model_aware_quantization</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    <span class="c1"># on teste le modèle compressé</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">test</span><span class="p">(</span><span class="n">model_aware_quantization</span><span class="p">))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>model:  int8  	 Size (KB): 76.522
    Test Loss: 28.386250
    
    [1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0]
    Test Accuracy of airplane: 59% (596/1000)
    Test Accuracy of automobile: 66% (666/1000)
    Test Accuracy of  bird: 50% (500/1000)
    Test Accuracy of   cat: 31% (313/1000)
    Test Accuracy of  deer: 57% (574/1000)
    Test Accuracy of   dog: 54% (549/1000)
    Test Accuracy of  frog: 79% (793/1000)
    Test Accuracy of horse: 57% (576/1000)
    Test Accuracy of  ship: 78% (784/1000)
    Test Accuracy of truck: 76% (767/1000)
    
    Test Accuracy (Overall): 61% (6118/10000)
    None
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>La taille du modèle compressé est de 76.522 KB.
    La précision globale est plus faible par rapport au modèle, elle est de 61%.</p>
    <p>Les performances sont équivalentes à la quantization précédente.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Exercise-3:-working-with-pre-trained-models.">Exercise 3: working with pre-trained models.<a class="anchor-link" href="#Exercise-3:-working-with-pre-trained-models.">&#182;</a></h2><p>PyTorch offers several pre-trained models <a href="https://pytorch.org/vision/0.8/models.html">https://pytorch.org/vision/0.8/models.html</a><br>
    We will use ResNet50 trained on ImageNet dataset (<a href="https://www.image-net.org/index.php">https://www.image-net.org/index.php</a>). Use the following code with the files <code>imagenet-simple-labels.json</code> that contains the imagenet labels and the image dog.png that we will use as test.</p>
    <p>La prédiction d'une image se fait en plusieurs étapes :</p>
    <p>-On resize l'image a la taille 224.</p>
    <p>-On transforme en tenseur.</p>
    <p>-On normalise</p>
    <p>-On charge le modèle pre-entrainé.</p>
    <p>-On fait la prédiction.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Experiments:</p>
    <p>Study the code and the results obtained. Possibly add other images downloaded from the internet.</p>
    <p>What is the size of the model? Quantize it and then check if the model is still able to correctly classify the other images.</p>
    <p>Experiment with other pre-trained CNN models.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">json</span>
    <span class="kn">from</span> <span class="nn">PIL</span> <span class="kn">import</span> <span class="n">Image</span>
    
    <span class="c1"># Choose an image to pass through the model</span>
    <span class="n">test_image</span> <span class="o">=</span> <span class="s2">&quot;dog.png&quot;</span>
    
    <span class="c1"># Configure matplotlib for pretty inline plots</span>
    <span class="c1">#%matplotlib inline</span>
    <span class="c1">#%config InlineBackend.figure_format = &#39;retina&#39;</span>
    
    <span class="c1"># Prepare the labels</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&quot;imagenet-simple-labels.json&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
        <span class="n">labels</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
    
    <span class="c1"># First prepare the transformations: resize the image to what the model was trained on and convert it to a tensor</span>
    <span class="n">data_transform</span> <span class="o">=</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
        <span class="p">[</span>
            <span class="n">transforms</span><span class="o">.</span><span class="n">Resize</span><span class="p">((</span><span class="mi">224</span><span class="p">,</span> <span class="mi">224</span><span class="p">)),</span>
            <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>
            <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]),</span>
        <span class="p">]</span>
    <span class="p">)</span>
    <span class="c1"># Load the image</span>
    
    <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">test_image</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">image</span><span class="p">),</span> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">([]),</span> <span class="n">plt</span><span class="o">.</span><span class="n">yticks</span><span class="p">([])</span>
    
    <span class="nb">print</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
    
    <span class="c1"># Now apply the transformation, expand the batch dimension, and send the image to the GPU</span>
    <span class="c1"># image = data_transform(image).unsqueeze(0).cuda()</span>
    <span class="n">image</span> <span class="o">=</span> <span class="n">data_transform</span><span class="p">(</span><span class="n">image</span><span class="p">)</span><span class="o">.</span><span class="n">unsqueeze</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
    
    <span class="c1"># Download the model if it&#39;s not there already. It will take a bit on the first run, after that it&#39;s fast</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">resnet50</span><span class="p">(</span><span class="n">pretrained</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
    <span class="c1"># Send the model to the GPU</span>
    <span class="c1"># model.cuda()</span>
    <span class="c1"># Set layers such as dropout and batchnorm in evaluation mode</span>
    <span class="n">model</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>
    
    <span class="c1"># Get the 1000-dimensional model output</span>
    <span class="n">out</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
    <span class="c1"># Find the predicted class</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>&lt;PIL.PngImagePlugin.PngImageFile image mode=RGB size=188x282 at 0x121968FD0&gt;
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter &#39;pretrained&#39; is deprecated since 0.13 and may be removed in the future, please use &#39;weights&#39; instead.
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for &#39;weights&#39; are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet50_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet50_Weights.DEFAULT` to get the most up-to-date weights.
      warnings.warn(msg)
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Predicted class is: Golden Retriever
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    
    
    <div class="jp-RenderedImage jp-OutputArea-output ">
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ8AAADnCAYAAAAAaoRMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAAsTAAALEwEAmpwYAADjrklEQVR4nOz9R7NtSZKliX1GNjvkkkedB8nIquRdVd1ASaNL0GiBSGMCgbQ0/hEmGAH4AxDBCEMMQAQj9AS0Cl2kK2lkREZGeoT7e/7IZYdtZmaKgZrtcz2yyj0qfJAD5Il47v7uPWSfbWpqqkuXLjUiwt8//v7xd/Gwf9cX8PeP//99/L3x/f3j7+zx98b394+/s8ffG9/fP/7OHn9vfH//+Dt7+G/65cXltbx88eH5ByKAAOb8M/Or/2Hy/8vf5fzS5Wnm/D7flm2X5z96mpR//sql/K2Xfe35/64fPPqN+dW/yr/rBX/73f/WB8nX//roL1J+8ujz5dHr9F9y/o187VkYwBj9QBFBUiKJ6H+LIKI/L7//2sf/yt+NMWAMpvxZ1g3In1H+22AwZQlEzuu7rLMpLyGJkGLQPyny1ds370XkOf+Oxzca38sXH/G//t/87yFFjCQwAkmvyhiLsTbfGksUCwassVirF2NMAkkYSXpjkiAYjH1kmJJA8u01Vv8sDtlgrQWrP0sipHS+uUIiRTnfzMc3lWxA+b2NUXMqCyR6QRgk250pq5JfB8YIhoghICkhibxY5R4sS5SNQT9LyufK2YhERA0lpbNhiRBSAomklEgpElMixaTvIpJ/noCEAWpv8c6SojBMI8M4EkIkpESYEyEGUkr6/fKFJjlfn0HACM56rHMYa7HG6v2RhLUG7yqcc4sxeu/w3mOMIcYIJJz1OOew1uKd/rdgSCIMp4HD/Vv2D6/4X/yv/pef//vs6xuNrxiAYPWrf83TGCyWxcdZtXpEIMlieJYIRrAJyEaIlFcJUozPqJElnN4s1AiMEWw2BIzFWFPsHxGLQYj5ZptHO9aa4nv1A3Xn6mvT4tcMug+KkWajLcYFIAYRu3j9RPl+ZYOxeJ1UvIt83YvpguuWEmv0xwaS5P1c3J+wfL6ks+cRTHY4QkyCcwbrLK6qaETwNjLFiLURFy0p6X0VgShgkxoWTh2CNajRWY8xFknyaGMbkhWMJAz2a5vaWnUKISaSJIxYXPacku+xNYa2a0nxCTGFb7SsbzQ+ARLq4WzeieffGaKAy3fLLOaSfcijGyrJkBAc4G3C5BufUn6NcUg2DsSQJBsmYLKnK19cTV5/ln+1fO7j69PPO3sMHj3XFKMz56MspfMPzGI4xXANWIukmD2X/t4UL7m8ffF+ix/92u+sEVK+ChBM/oiUN6Mx+bsZQzKQ8sYsflkkMceEd+pt6qrCW/VGfo5MYSYk3YwpGVJMWFHPGaPBWqOb0tivfddULtRa/Z3JhxBg7dePZ2sdHkNKM0kic9D1d7hy40gYfNvSpWffZF6/jufLN8+4c8xiwJTYIlu7msU5DisHH4iepCkhRBJWn28MGFl2tWBIxqk3M4BRP6XHAYs3LMeRIKR815Y4qPxO8uIbOXsyJDsivcDl+vJCGPt14zWPrSf/wGAx5egsp0D2sLY4x+WOlZjtfKifTe98LcaAxSDGYmyClBfaAtFgjOAspFT+JPp5osVQOYexHsSCN4g12JiIkohRSM7mYzzinXv0XQTJ7xckLZvFGYt1BmcMFrMctcbIcrJYa3DOEqMhxpmYImBJ3ixrVTy/q7tvtKtvNb4SOmjcZOGxAVIWXhZPgjzyHhikxFomEbG4Yqx6Xp3jsOVYPy+mwQJJb3oEY4VY4rXy/HwtkjeAxjaRFGYqZ6hqB8YQo/2VoDupARoD2CWAX8K44pZyzKSeSTDWZm8sZ2t7ZKl6i/LflzBFj72vxYJ541hTjmL1GPoDs3jWsmlMNowYAzFEgpmX5yQjiHU4YzEmYmKEHLI464km5g17DnWSSUscao3FWavGZy3O6Z+q8vqFJGKt/g5jSTHmr+1IKRJCIAk4Z5e1PH/edzC+5csvfk+WWOdr3mX5bVKvWAKn7NmCGBCLOIvVvZ5f8ygeemxPxmJNyvmIqPGW80GWaF+D8eKBsqFP00To7zBtoK42CB0inpQTGbN4wJT/nxMc0SM1ismGr2dP8VIWwZQFf3Qsg80Jin5fg5Ak5rwpb1gBka97Bv2eerSlpKeJhs0JkZjfy2JNJJZ4MG/IOUQSmuDld8rrorGZN0Iq12MsUVI+ugURS0oRsRFrLN45vPOaOFiTDU2PWGMsCU9CCGIwSZZkxrqaJEGNWRJEUU9sPBAx39341FNZU3Z6NjIx2RWXJSiZYQ7bS0KHW26ZGtejJIPz0Ur2QiURKca5mHQOosmZWXGyxQGKSF48IYbAPOyI/StOvWW1+RRrnxNpsdYvBmzJr/+aRyxHeLlGUxwyVqwmUJwNT1+a8iI/ui4pCx3z/Tob3wKJmGKUafHYmlWHnOFqSKAJUoFV1ChFBEJCHMvnloSvZNMmx2sWB3K+bwlBYgKr3t97j3NevXr+PgnJBqjOIgmExQTyEW4M+BqJM0gkpogrCU0JGr+L8RlTMkL07C97tqxXxn3O0EI+nozebDgbDMv9LouX1JssbyePFlGDEiMxn4CaZpgMsRSvhDHIknno3bG+Irkt0/QMhhORgaoacVWF95oxCzmOTImCY50jx2I4Jb48RxRJUjaHfIOLR1riThYDSyU2fLQKi/Ghb6iGd45rE3qcLZGiAUm6+GKSogIiGOtIIpgk2cjKPTSA0+ciiGiyJwawJd0yVAac01jTLomGUaPP2XwUq/GkPcMoUu5z+f4A1pGiOh9SwrqQT4LvYHzLYkgBGTOu9+iNy83MV0FJk0pCcr7vxcTk0Q/VjIyIxmyi+zxHWtmgE0bAklCsIHvE8wouHq/sfGegbtYkLClNTLMaW2WCGqc1OawSStZSEhNNVs4GSN4sennZ8ET0aPMe6+w5wXl875b4OD36WU4kSrRh8nG7nB5GF94msLLgezHF/CSX7/sZWpIc7xpj1CaWo98up49uyqRe1Z6LWtYAtnyyfoeUY1BdAT21SGXNFlwBawrmkL+bVUONEjEhYB+lB/++xzdDLSJIjHk3liViiYPMYoEFfvgVHybnWBDSEpOUxdWcanlzfa4krDz2hhYxmrGllPIBJ/kd1XCTKChbwFXNRxJ1VRGjW6oAMUxIzPGKrtQCjVgEa2XZSOoVzwYJ4Jy+j5WErzwidvFO6ZHL03tRNp95FA9+/d8iZwgpgWaZVmMyTMJai6SAOM14ESFEQ5g1JjTOYow/H7UFXDdgxBBTuadnD55ifLRuugbWOpCIiMnJYH4Pe94Y6npMjnD1F87odQsOIw4Rh4SekCKuhDXf8PjmY1cSLo35yFQXLcYuu3ypI0gO2U2GDBbTSRliKZmbwxh33uVLnFfMOqpvLe7A2mW/IYEQ1cByonxeZEkUUDUtVQZd0gIiGxISEyFv4hLvLZ8sCW9LMoEmN1/bBOW9FT80NqhxSFqOrOXdylGd0WLJS3Z2BLIc9dkGsjEWPC/Ht2VpbQ5hBLUInEIpKV+b1dd5a5ekawEEYt6qJXEq8SbnjSAl9S4rmmElZ8oRJzm8Yfl7uXYLiDN6fckwY0gpkpLBfov1ffOxa8CZhLMOEAU+MZodPj7Ql4QuGyMsNxGJxU0i1uqiGrtkTCbvfs0kLSLhnIAsWa0aVwyRmOTRTStmJsvfS5pfrkZKfJaXWcRmWKPAOXlljCXlI7xUKkRiPnEUQmhrx9PrLbVXLNJ7xzjNDGPIwC75PfQtz6VASCk+WljFPgtOWRKQkowtyUjKtZhlkygcosi+Gn5MuvGt001fOaefV0IFI6Rg9bNEMhJ2PsH+drhQ9n3JnvMJka/58esK5GXQZEeM4L1lFgcpLd//3/f4lpjP4KzLqLgusZZTLAUc1gvWks6yzGUnGYfJR4h+yYID5XcvR1T2ZmbxkPkOiM3GWzLPUvM0+d/nL3cukKd8c0pydL5OEAWTHy267uJzbGeN4NAbabxh3TZsNyvatmG7anj2dIv3QggaVMcQGKfINMOxnwkx4ZzCISCkmBgnLbKPU2QOSWEYU6ohsFRnHsXPBpuxy/JDra2LgPMK+CdJiDzydvnOeq/lUJMSRH23EA0mY3tnCOlRSbLcP1MqGefSGtn8WAxX16fc/5Q0o7fWIdS4XKMW+VXT/g8wvvJICFaM4m4E1EdUC4B8NoDy9W0+CvUYBk+p/xU8riy+QTIGVaAAm433HKyXG2HR49E8fg9FgCmwj7OPDjcxGY7RzZOyV7GLby5Hny68xn1QO8+qa7i6WHF92XF50VFVlhRnQjgx9RnITsrgMHFmVdVsVw0gWJkxgPNVDuU17gxRmMbA/W7gZtdzCiFDSOcFtka9iAHNYsWSUiBG/d7OWULUbN9br9/bWpJoYhJS1ODfGKzxWJuw6vbyBs8btxicLRWnc51e16pgn+V4zmf8o/ew2SFZY3KoJFjnqGjwzhHDOdn6Dzc+ozcgFXdddokkxAQK4UAAZ8+xRszxyhKsSs5F8lFa4jGt69ozWWaJaUqtOBuyJRfCDVaRm/zFz1lrWjLT8y5eYJKcZboCktr8+SbXI0WN2Bro6opnVxs+/ugp222NpECcR8ZjYBpnZZwYIKk3k6ThgLEDhelj0oSvLNZ55jmAq8A4nPPU3vL8qmLdWXbHmdvdyGkMpFigkZi9TDlhNLOuvMvF/8wcciZXRjKyKnH5vnJePDQ7T1Q5yI1JyQkmQ2SluqHx9aNT4lcSJ4vJpKNseqLXlx6dcvlZWF8jUqFskt/U+HLo4R55muVAyTfJmkIm0J2iNcoc55ANIyXIF6uhnhTHs8RiJWPOe3RJ760tiYrVwPsxdmlArMnBdzZpoyGRwrLlaHYUmykwq75czt/NWZrK8+HzSz784IJV54lzzzQMxHkihomUEuMY9JUxEOYeUiTMs36LJPiq1kDdGqZpZA4R4yqqZs32+gVV4/F1zWUDm9XExcrx9vbI7SESIxmLY0l8rFHSQ8jxoLVOr19EkzcpjBS3kDVCFKyNy02y1kGKuko5o48LWE7egEmNuCRBInnNdM0VSrTFLhcDyYhpDnK8rpVYjBGc/+aM49tZLVKIRuUCzgmQPDqyjC0kgJgNz56zsfyic72iMDqEM+yhxnaOUTMEIcU81XiL4SmeXDIvBcKjaA04FvC6GNYjHE7yhkHtQ8tTBi7XLT/49CnPnjZInBn290zjQJgmYkykeUDSzDxFxjlijSPOIykl5vGE821mjzwQQ8BYLer7uqVuPJfXG5raUTdqPJLUMzdu5sNL8M7z/mEiRDQpSqXslgjlaDaFP/mYMFEyd10HzdSDeiblcFFchmR8UEp4kx8pnT2UMXpflK1kl3DIWrvYQZCAJJN5mQYjiiqk7LGVKmbOXvE3MT5yiK++Z9kn2fJtsb5spNmryNkzWaO0qzPPLgfy/87PMsttPROVlsvAFJKqtUugvngA1IhSjv9SgjkbV6m22JxZl1iqZHSVg+urDZ9+eMn1ZQWxp797x/72NWEOCIqXhXlWQxhPnI494hqc8+rhxgnv9NibpglTdTgMTVVR1TWXV1uaKsG0Y5gEXKMF/xiJIZAkcdEE0srw/pBjYGOJUQhL9aYcd5lcmpMNawsRYylsLutSEoGUs/tSbSmx35LsFKIEsDgr0ZNU67sKbkspccZZn5Ay6dQ7hZz0kCcZDdWc+Q6eb0mxKfVNtfQzxKEPK/qhsRTOKcam30JSrhPCI9Dy7OLPNnamG/D4uV/LxEpcVxxn8cqCd2eOH+ns6/TYMBlaOcc1znk+/egpH32wprEjaToQx579u19wOuxJtiaGiX6YCDEh4hgPN4Q5MEeLrxxiPMZ66gaQxDyP1M5hbIX3nq6tMGlgPE0Kd1hLVQ0McWYOeYVTJMTI2kNcNbw/6L3Uja/ebkmMsGD0yLQmYY1byl4Gk2NhS5KY48hSC9YkwhiDx4AtVZyzL7WmMI5ynGdsRjrUDlKK+ebbvOFzsc4YUvaSZyRBP/mbHt9aXnPZAIsDzTTEZd8oz84RpRhfPpsLuEz2PpmaKzloW+5ljstMCbAL/me+fh3LP4155M3sksGW9yxEEsk3wBpw2Sij6JHrrGG7bvnBp8948ayG+ajH6jzw8O41D3f3RDwx7hlPe46ngSk4UkpMw1EzOxFcVYOrca7C1xvCPLC7f0/b9lxdXhLsidO8I7QrcG0+7iJhGuj7Pt/dQNddUq1WSIxszAlZXXDTO0wyiNXAW7P64uUcKX79Hkmm2y97P2Wih9Fse6mvlwM3hzqS9JwtJ9zj3g6syV7PICliSIhxYOoldhZjcpBjF8dTQPKQvtn8vj3bzd8wiSLc8ZEvLP8MWI1VskWVkhW5znomD5RoVg90k7Ni3YP5S6qFUsCQ8o+CLy07bomMswt8jPkB3uZjNmd5rtTAreV62/GjH7zk+tIz9w+kYYeTyHTac7x7TX+4ZxLDaX/LcXdHPyVmc4F3lhhG4niiqVpsjBgf6VYVziSmeWQaZ+paGE87+t2Jut3STpOG964hDg+cTidCEGIMjP2BdVvx5PnH1N0K5ypW9Uyzfcpt7+jHCOlMQ1VPIxingFFMkSQZ0F3Kmzk+zrdISQhuMV61zZCPDgvGZULwOSZ2Tns7NF8uiWSln5Fjz5QiEiWX4XJymGEd0kSK34FGX5ZSrVoJU8DinUDJokk0t8zxZub3q+EhaUHJNfg1Z4PK98rknUOuLT6GTfSkKYmKWVL90lAEZ6C2RDIFpTeUXVwSFgWNP/voCZcby3x6YO4PuDQSw8D9u1d8/pM/Yb9/wDQXnIaB/nQiUWGqmeQ9cQ6EKeHsBClSuxqLYR52hHnEW8fYH7FSM08BF3qmGBmPd8x49rdfMPY9yVRY50lhpq8cKQbWmw3t5hLjjqwu4Nn6Ke/xHE9Tvs+l7CbntVG6CtY+umdlB+a4F6M9HyVhE0nYdC5zLrQxtdRlg5eqswG8AcnVE2W4FDKuIBKAuKyfNZCcwX4nkFlyBmmsUtzzhZsFpjX5OZID/1xjRI8KYxJWIiZjUeR4ohiCUGXDPHu5JZcrcaV69yVtVuT/ETBbEHkef1GzJCf6V8FhqWvPh88ueHJdE4YdY3/AhSMxBe7eveUXn/+CL9/1nA5HulWCutNjxja6CMYQwowkrWg07YqmXuMdnE4nAJq2Zp5mximBWxGmmWnecdo9MEXh9qu39KcdvqoxQFN5Zi+sVmtctSalB2x1YJ5GNk8iL7YveW87dsdRjUv0CCxMm6/VTwtgCufqgwiWiMWeiacGpUlJaU9YVmA5erUmns4JpMkHdr7NKRlSPk6UOT7quroKa5w2OJnqNzc+jRq8wh3mnBUtvaH5QhZa/Pk7cD5k1UMmo1lT+fmSWDzOhoUFKM13ejmCbQm25XxjjSnGZ/ONlCUbMY8yLYPu/O2q4cmTDhNPjP0RE2fSdOT1F1/yxRdf8P7mgWNsOHKNzCca6bGuwlY1rr0kjAN13WTQGOqmo2084zQg4tEWyAgpgLGkMDJPJ0KcGMaZYRiYk2OahWN/wEgiTBNt3dFcHLl69hnGROZ+x3G/oz89cP3BxJOr75FSw+40LK2VIlHB9sQCWy1nQCqJRK7oWENFjtML9GTOJNlSQ9dTixKrLA5gWccS6Yhm2yln6oggada1ico1RBLuUVL6GxgflM7Wpc/VyPm36VylKLhcqZfqxdpcyHZgXHbgv0I54pxxlXPDPAKBy2eZbMDlpwYWQoPJN0kbccjcMpM9qT55s275+KMr1l1iPg6aOMnEF198wb/9kx9zGIXdKXB788B+v+fZpeP7H7+gqhzON+ANjWtwYjkdD1i/pmmafPQrpDINvZbBfEeYB/r+yNjviCnhfKUL4hwpRob+REwWqKnWW46jcHPzhpfPn7HeXMPxwPHhgTD/mBc4LrafMsyWmNTokhhKEaxswgVpcMUYLXOKxBgo7V+2xDq2lDPPcWIpd2ZQ8WuWoDX6SGkjFRFimrXGvcBugrKzIkiA72J8oF58qTUuX3AhRLGUyYg5nS/fJScIxi+n5hmGOcdl57omeXNlI5eQbfG84yyGUKzVKK39MR1I/2m+lrEZY2hqxycfXHG59czDUbPreOL48J5ffvGKQ5/48U/+nJ98/op+FIyt+OB6zfOnT7iyMwFPZU5UVc08TKQZrp89w3lDDIGmbjBWmIzFVx3GWuYgCAemYU/CESR38ocBA8xT5PY4IdZwjCfEvuP+9j2379/yO7//h3TrDTHBOAzcfvVTrq3levMJ46wZprayJi1wlvhssRk5e75ZmCQQY8AbTf0NmhiIdY9eVE4awCQKLFOo91o+Kaybsl4+J6XqeBTOyhR7cZkA/F2Mr/ShFpAzo+OlkK8+PrI4RGOXqoT6sDO583zOlry1xI1pMTpJUUmfKdcqxeZTQD8gZpasszYzbnlk6IUdotRy7b63fPTiiidXlVYkQsKEI+H4nte/+Gve3x35v//z/w//4k9/QdM8YTx+RZTEMHzA7+0OeLG4xtN2T1m3FX0Uth9+xOXTZ8xhYp5HJIyM40TdtCjv0dHg6I9vmIeD0sxDYg5wOhyYpol3DwOv7wLRBSx7Xr9/z/c/fI6Yju5vfsEPfvAZddMQktAfT7i3n/PkkxXXm6fcH8ble6sHLPeA7O0LkGxxDqp8BBqLNoibR/jBr4CtYkqKYZYqi2ApC1wwRT3OPb7ymtDoqxcGlBHzLX7v1+nhkLhge19jNkg++4sBUpiy9sz1L+ZV3Br6XJsL1Et8pl9VM+YsH7EYH2kJLjUL03iDpH0FjxMqs5QCdcfW3vHRyys+/mANMikBgIjMA6fjnjc3D/zpT37Gf/vHP+FHv/vPaDYv+eIn/4pZEnf373j15VfM11dcXHd88FxozEh3fY1vNhiT8NbgmoZTiFR1hfOOlIQo4JU1hbM1x8MDUzpwPEXu7284Ho7cHyJ3p8gQjkqQvYEv393xBz840jaGzari+nqLNYLxLfM0c7x7xfZpy9TUHIeZ0mMSUUzdfs2YBCO5ybtq1UOmqHQuMVo/+xVKVc4TMUbr5cWRnPmVjwukpTz5uAwBxpRavpw3xG9kfKL0IMy5T6J4uHPJ7Fym1xKYZKwnZ0qZ3lO4XUa0yUSk7Dx7hk9EewOMMyTrM2Bt8hdET4Zk9PgSUb6afWx9udvKaN/ps+stL5+tQQJxmpA4a5IxH3n79hV//uO/5F/86z/GVyuqtMOI58X3f4vdzWtO03skOvp+5IPnR+z4nsO0ZfukxladsrqTQdKMGIf3FUp+SEyD6qeAo12tiXHi9u0t72737HZHbveB2zEyxUTtW3zlMHFiCoE/++svudo0bDromo8JKZGkwvlL5mFmPLzhcvUxc7BMc9B7XzJbaymtR8VEjPla/yCgmKDKZtjMDM+uZan7ahZdiBmxeFfILQ5JyRNkB0Ra2jSXNgY4N3b9RsaHbhJbYtAMl1irdY9HmwztktJapzUqJqM9rgpiJkNOpWZIWhs0xmGty8wVzhkYBpPU/asx6bEsIqSgN2WOCjcUZ6xSEFn0xhquL1Z8/OEFzkzEIJkc0MP4wHB4z5/88Z/wL//4S8a4xdqR/uGO4e3nRAxjP7BtV3z2vc/wHLhaWYbQcPniB6y2T6najpQidhoZR0vb1tS1JyZhHkdqHxmHRNVu6I87fN1xdfWUr97PhNgzi2MKgaZacf3kI+q24vDwhuZ0y25K/PQXb9m2lqdXazbbjR69+3ucrzBHz7Z54Hr9lPcPCuKmEudmhksp+C8Bf/ZmxrnsHdXIFjTLlfu/rPqjsKjwH8mpZ8LxKMxCSGiZ7+tY/9lgfzPjMwaocyauVHZjtJVO66Tq8yRJFrbJpADr9QtIUk9I3nlOch+I1rusdVjnzs5rCV4NxkQ1XokLBBDzZ4hR408lxuC8Obqm5tmTDR+9XGPTgek0YuqOeepJwwE3P/Dm9Re8v4c//Mf/A17cHviLv/gz3r/7BZWJmCRcrC75g9/9HT756JqVv6Br11w8/x6bi6fU9QrrHDFGjNEjLdcAmOcZby0Sj1QmMlvB+JphZ+kq+P6nL/ncwMyBmyGQYk+YbkC8VjocOCPcHXpe3+z57PaOpvH4dktKQn88qJfdeTbXFU+2W+6Ps2KxkDHIhHNeWSiPMDqVNbGZopXB6nw0LoxvMsMll8zKmpTEQQqr3LBAYhp3WwqvsMSDjzLS39D4KBieGo/J2adyyCw2Qx8QMeZRE4otAWt8ZCAu08e9QjOOpbidOJNDs3ll4qj+Pkq5YYWpkishSXVJvHM0dcV23fHy2YbrC49M9xx3txjX4oxjPB2QYQfjDff3I3/0R/89qFpevbvlopn52S86bm/ueXJ5wYfPL/nkacN21XF9uWW1fUq3uaJuVjmbM1rP9RZEPXlKgdlbwjgxWk/XdcQw4a2qNh13A5cXNS+fX+Od5eYkHE4H9g83GtSLcECYIvgofHVz4O37HS9eXBP7O1y1JhoYxz7nV47Lpw1N1XGznxnnoETZhdJeY6xbMLnitzTWznF0ts5zaU3/HaUoMqScVOrzkoBJaekDEWNZOvjKkbuUVr8NaPlWYoHgTFwyqALkljSe3N9RSmx6QeVCWDyU/j2DkQKCw1hDlKQNSvk1qTACDApQmpzIpEfFM9EmZ3EG80hfo609T686LlYg0wPHm1cMpwG/vqJ2FcPxHhMOHN9+iTUzq5VhDBPXnfAPvnfNiy3A97i+vmL/cMeqrXj+8mO2mxXd9hl1u8nU+VxWysX9MI1aXpKkvEQDm82KYRB8lRu77R1iHCmOXF1dMfQDnz3bsD953tzvOQ4DIWpv7rqpebJZQTL88st3/PCza9o1THOg6bYEYxmJjOOIdRWX18/4+Omam51hf4zMc8Fbc6XIZGjFZL5dlkM7Q1SJFDPuZQ04q2oGov0sJYstzqxo2rCs+xkNQQp1S8/zbwn5fo3arkQk11FjLDwVbRayQLQlF7a5dzVR+CwLUQBtWLaErPvmSDETI40hiMUYlzmB6ryzFM0CaC7Ckpm6g7FYC5X3PL1Uj7fphDTd0+/ecbj7imkMdK7F+YZ5nmE68vb1zzgeDVf1FevVUxCDd7DuGupmjbHC8+dPuL56wnbd0K4v6NZbcBWSAmEeifPAPAZiMhm3i/i6o3YOX6+Y5oS4hirM1M2K7dU1+92O/cMNzWpkv9vzMk5cXWx5dtny6t2OcZ7oas/1xZonV1sMiRR63r59w8cfe+YopDjSbp/rMT3uCeNIChPXz17y8dMrDqstb+57juOs99Lktm9z7l8xOQnRkyllkSENd2xuRsrNcZRTrMRyBsDZLPaZiHHW6xIlw1rrFmit6Np8B+PTHZIVFEgxaeZjLBrVRQqSrhcXkRyMKsU7e0NRL6aXon0JSeYc62l1ZIlBSBn302yt0JfImbtFEwtXV3S1Z7tquLxoaOtIHA/Mxxv6+68YDzechoDfvKSKM2CYTjskdawunkIcMPHEar0Fqx61zqpMlxdbNquKqqpZba5wdUuYB6bhyDwHpvHINPakKLjK09YVdVsTk2OeejBC07WE0BBTovKO9apmODrqynH95AkSdtQBrlYrnl407E8Dbd2y2qxZtRWknjjD/m7HcbvCVS1xnnHNCvyKoT/x7s0rbcmUxOUzS1s1PL1skL1jmjNrpdy7JcA59ywHWypXAlFI9txoVBzM0gxPZhNZA6LaLyJz7lIrbZKaYBam+HeO+eIi42ogkxdLZaLQr1NOrM5JAmA0hY+PQOpycWU/WPT5VkqdRA24KJg+TtvLl3e5ecg7R9fWbNYNjY+YcCIMB+b+yDz2DKc7HnYTzfWJZr3BkAhjz8Wz38LVa6bhQJgOmCpgsXivnLfN5oJV6yBOrJ5+QNXWhGnguH/AVR1iItM8M44nUgx0fout1ggWWze45Ll5+xXTsKNpG5yvEdGSWt3UTNPI06eXjIcN8917oli6pqFr1lRNS7fqqCvHuN8zypH+9MDtO+Hq2UsETzUOGHH0pyP3728hzDTtiqruaNYXdE3ixUXF7cExjlmkKP9Dgd+8FjmmLqA/Sds8k8jSLSgCyciiPCFFSChjMc7XVCbhSq23dMmVYt53odErBlwtgei5g13B3ZRyYJrCciQW6nq5mLJxChhs8nuYnLRr8UIWdkZKZumc/Bp4icYuTWW53tR0raVrHG0VIR6YTzuG4x394ZZ5VmM5HoV+f8f28gpDwLmGev0Rrt4gd19yOrxhHo5EcRi3Zn3xnO2mwsYjzeqKZrUmzEGP0XrDYTxx2O2ZJyHGGmsctakYQ2A2A7VxtNsLrv33efX5z3nY7bnYaIigYZJQVRaIvPjwMw77O6YwaQhiVJTRCTDNpOmeOD5AHNjdT3jvqZoNvtmTYuJ0PDCME3f3D+zu37Nab4gY6hio2jXXm5adMcoHLDBV3sgpOybRHU0+Y5jnQJSo2bLzjxKHDEiTMpidQykM3uce7mhJKLdQUsgQzXcBmTEkeza+LCKngIrRQrN6qox5Z5CyfCe7UHCKSzaLIRYeWsqpe9F9091TKFgaa5Y2P0ElX2OKdFWkZU/YHxgOO077O/qTNv00dcXY79ndn6i7L3j24acQE757jqvXiDG4usNUF8ThNVPoqVvPZlXT+ETCsd5eMo4TwVTcHQfevr3n4Rg4DpHjEDgeJpIkKvdAigOGgLdwcbnho48/5OVHH9M4T+gfqJoWEWEYHkgxEkKi7hqePnvJu7dfLpBVGPYEOZKI6pVToHYeK8LYH/HNimk4IOI5nXqOxwNNdclwOnB8eJ8pZM9JVOA9bVMjWIYpaMsk56Sh6EAvcExGGFThyi5lu7NSl2SBJJM77Eqdt1RGFFqbh55pnqibhqZuvpvxlSrDQlUXs6DgxrpMGEwL/rPILGTiqPZ3ZnWn4jWX99d4Tm1a+w3O5ANLLE8UwRnBWcNFB0+6A346MvQn+uOO0/HIOIxM4xEQoocQZ+5v3uDbJ4QQqauOmGqqdkOYTmAszjfU7QWxP+CM0DYWbxL15TOScQS35vXbd7x+/Yb7I3z57sD97T27+zuOxx1VVQOGMA1goFtt2Gw6fvbL9zy/3vJb33vBZx89Z7Pd4pmZ+kvG/ogziXnuubx+wnF3wzQPOJuQMDIk0SYesVhb4bzFOkcKCszHEIhy5Hg8MvRHwqpm6g/s7t/gnGrt4WtEalVLLF1sj6pIxVmUeK6wgoy1OIGYFSkKTL0QpAtaUUIuKRhEWaeM3izx+zc/vrW8luK8BI6FNk+xDxRwFpS1aijkshLaFkp1Rt4NuWJhyhZUQyzbL2m/p3ZJhXOmK2C9Y91ZntQ76E8cx4npdMNx95bj/sQYYg6IwdoLQoqc+p5h6FXdyhqMb3FVzTQemKeTgsLtBj+dqOuG2kNdNdiqYbIdb28f+Pnnr/jqIfBXP3/Nm1dfcHy4QeLIeDrmcQGG/nRSGTNr2Vxc8en3fkA/jLx585rD7/6AH3zygsrC0w8+5XQ6cDr8khQidb1ive6Y7nakaSTFkZSBd+8abNPRti3G1Yz9HokJMZGhf+B06unHCUNk7HdIGnG+BmO4tILdVIvuXhHONFJ0Bc1ZSDOPXbBG2crqYALaa3M+OAtbUKGveFZ/0E5yBO3TbdoVrq4WRsxvbnwIViYWTRRbkXnKSJTMKM6NKrmJXLKYjZVHuLkpWiwKbC6JkGHRazGL+JAgJmbjU0UAgG3neHExY8URzIYod4Q5Mk2W4yBMAVat5XD7hnGcub97IEQI86he2XbUdUdKM/M0gV/RrlcMh6+wruPq2cd4Z3HNlvvdwFy3/Pzzz/n8zYF/+yd/wavPf0qaR4x1GBFCmEhTwhrDqT8xDD1zHLm9+4r7m1d88tkPub7YMO3fEMbfZ1MbnlyuuH76ksPDO8K8Y5561ttL7m9fEaNqLHvXUK8uNRmzgq1WtO2GtumAgFhH3/ccTxNhDpBmpmFPfzyQRNkzhIlNmDDb71G5LbZyjBiGQCZX6EqFELICgq5AKk1FUmJzIc8hYE4RYlBIpfI5DixmUqoeYL3BS6XJS/ouCYcIEmawKv1QqDaGLImRsxljzoXmJErZsXlwi82dH2psVpvJS1ERFl4fmAXpl6Kzh+5SZ9Wr9oM27Jj5QDy94fTwmvvbB+73A9a3NGbkcP+e+92Bh13A2o5hmHFVR4ozzjXM00CYeq0vxxlsy5MXL9lsOnzdEKLh0I/84pd/w5//+Gf89eev+fwnf8zD/XtEhFW3papWGQUoGX1gnI+EOOOS52E3M/x4x4snl0wffsRPupoPrlvmfsWTq6dsr54z9EdinOlWKzbbK44HiDHhfYuvatXDSQnrPK5usVRImpgFpiAc+1ljrPFEnDzGrzkeT2DulOmcIuuUkM0PGWTNHIUYY+6Cy1xAKdlpbrbKHW7qVMxCPJUkEAMhzBgDHo83WYi8dA8CMR/PZXDNd6pwAEuTd0qiO8PER8e5yd3tZUCIgSzOU/pAjbG5+70AlVqZWLyp0Z230K7yCVz+Xlgvc7BM0eFFcHNgHo4c7l9z8+aW4+z5+JNPSP0rhtOJ+/0tfTAY1+HrrWbXpsZVLePQg61UTsLUPLl4ycXlGhPucc5xGuH9buTnf/NLfvLjn/Dq1ZeMxx0hzMQYMGi/r4jRYSgx0PcPzFlOI8aEbWpCtLx7/46qsgquT0+xcoFDaOoa7wzDacAZYXNxwXF/h3PKjnG2AhLWgXVNzkodvt4w7vfMAQ6ngXUjDMORTWjA1shskf1Oa+be46sb1t5ju8+YTcsEjEkow2ecKVlsWeu8PoblyLSZFynJ52uynLUQS803OxMpLkUyB/PR+IX/UOMzxuQ4wiKSKexZ7NDnWE8xI3IWDI6kTSkiYM+9AsuFiUpFFKXVUgVx2dUba5ejTXePoUg+1N7o13ENOK9ij0Fouy1dY9nvRub+yO7ugT7UrC5UtlaN2ynU0bQ0YUMYDW1Ts9psFAA3DuNqgjEkt+Lu4Z7DXjvSYlaAMsYwh4lTf9SVspYUQja8iHeeEIOOhXKOcZ457W44dSsO03OSWzMFwbtEu7pgGGfGcWK1WnH19EP604CvHHW7wriKFHqsd8oTDJOqTVnPGKAfJjZVVlKIgXmcmeZAmO/ZPdxxuF1zullxffUTti8+Zn7ynzGkDSGeS2WgrKIkojFxOadEe3QtBiMqJFRXFd55FqDPiBJ6M/q2yAw/glfEfEfjq6pa65JiIelwEW9A2dJmkWFIGQcqHC6zcABL4VlZKSmLBhYoxWRBamvOLYHGZEHr7C2XmqGtgQriHTb0GNviu0tc0+pAkjDw8LDn/v6EVODngLUVMUxZSyUfHb5i2z2haRSSMSS6doXxNad+Rz9MiN1yf/9Af9wzjiPGWEKIxDjj/Jz7ZCFJnpeWEoGAoGxrshccZjBVxxwT43Aira+Y50DdNKxWa/reklLP0xcveLg/Mc8DMQ54A/PYk8JI07Q07ZZ5eACr2J1IIgSYQmIYBuzqkpQbl8ZhYidgZEaCJ4aeFVvS9r/PLH4xGGvOiN2StwpIZgVaKRrU+Ui2GSIr2a+xOFeqHufkkGKC35LxfrOYBnokWqPUKNU2cTq3wVqcFZzRTqoYA3OMefBcXL6Oim4LKQohJEJQeVqJAYmzyuinGSTkLxohs6dznRvvoK4c3glVvKFOt4gkpjnQ90ceHu5Joee0P3J3u2d/mpliYp5GPUJslRt4BOcbVpsL2gzK4hrqusG4iiCOmCzOd/zgt/+AJx/9HlOIzGFcZMm8b3CuJoSZaR7zBB5dC00cDeM8M0wjcwzYeoPzDUngcDgyTpO2mhqDryu61UrZz1PPdlPjCMQw46oKV9UY36gPcg4V5LUcj6qa0E+JYUw87E+EeWK333M6HZjngWnqGU5HQhKCdMwPP8eHt48a7lV8MmX6VBKTn5tVKETFykuFKlFq9l9nTwtkdYQCPpe8WM6h1W9mfKWojwa/kucs2HPPqDXZE2bSXZQCqzye9UXOcjU4DUuHfQCZs+hi/pON1xjBu9I/ql+qMmqw8zAxnQ4c9w/sdnv1evPI6dTzsDvQjwmMZRhOOoIpayYnEa0UVFmPznqFBrzH+hZBO9XaruGwf8dnP/ptXn76e3jfMc0z6+6az77/e1jrCEEp6SIqG+ysW0DyGLUBxzm/QBvt+gqsp+8PjEOPsTXWWJpmRXfxEuM7nK+5fv4R1nfENFOvLqia1ZJ8VatLYjL0w6BGIXDo4X43ctjd6WY86iYcjgf6/sj9+6+YpGKaEnL4Gd6mRW1Mk4My44RzSRMhZUHxINoWkERHIwR0HkcZx6XPgTlBSAmJWqYLs+rPfNPj2/t2i+JRpheaPOuixHFGlHojVstlJmbbT7mvwJDlHNSNy0LT0UeR+89c5WWxvMtikEb7NmII9KOjlgtivGPoB6ZosdVGG65tZDz1i5CilcTp2NOtLxZVKnBYlwt7rtXrjwOuWiFWa7i6iQKn3S397iueffARQz9w2N3w/OUH9Kd7hn6/xD6FulRVNSYL+BhUnLt2DkkzVd1QV5oEhDlxlCNtp2SBFGfa1VZr+2HEmsTV8+fs7+9BpkUpPswTvl4x9wc18CTMs9AHYV1Bmifu7wNN7ehaD85i65Z6vSGGEf/idzVeNoFArYaSQ7THrbGSlV99jtVjhBnB+YJzKPRSEsjixRfGs8gi3/HNKN+vQyyQbAAsbd7ZMjOEIplelWuT+hpRbWJQo1yYKUW1/jFoqUlM0aCzVmvIAcGkQiwVqhJnuAZTddj2mro70Z5uaWpP01Q0Xct26zGhRawmSy5PzZvHU9aYa8E16mXHURU7fcM8TsQ5adXGWp6/eMmbN+/48vOfgYw4Z3n71S/o+x1zkQgrx4wkwFHXrUIvYQAUNllvtrStJ00nLeav1KtNwdD4jmnsqWoVjKzaLZIC83BL07X0hx3OWoytqboNIok498QozFEYEWoPTePwzhAizMdJ76MxeHZ0dmSoJuann0F7wTz29MlpfIjRmbsYMBq3phhUWzn33sQkpDTTmIR3FdYIEZPFzLMejBRVVTVQBZ6/GePTV3/TQ4rRxfznXDaRzHYtQjWSVK/DWpXuL7T7lGKp6OhyyaM3T+e4wCJLrwai9K0QdMidTk00eCd4JkhHxv4997dfctg/YI0jiOX6+Qs+ePmMtgYTJ9rVlqbdMMdZlUXnUQUXQ2Dsj8R5xlatCuC4BtNdcxpG+n7Iw+8MbVsx9Q+E6cA4HokxZGDdLMfsEmQbUf3kFGnqis16xXZ7gcQJiVqNkBQRWxPFg2vBNoSoiYwguLql6i6o64aq6VgobTEynu6IMTAF1YOeIkxJSashwRQTw6yA+zAbhmiIWOI4EIZbqC4oA6xLmCNF2CdnwCoOpAlkzNzMEIVZVSspEpFnr2aWEGvRPczQ23mo97/78Wv07cZcqy0ITsq4mT3HCakMqctd79llC8pQWShZYjPAWRjNhbdiCrkio86cNUcQ5gjjnLhYeUXjw8Q0jMypBOM1u9ORJ89/wGlwHIY3/PL1e0SmDFNE4nxEfIs1lhAjYepxxmh3WBCM9cQ5Mc+q/LTb7zDOsVlvWa237Pf3CqlI1sTLhIol9RNhzkql3lq8q6grr9OEkhppCDP9IdCt17pp8VR1Q3+8ZwoJm3pcSjR1i3UnqrpBYsK1F8SpJ04DMcx6sohoK3SpBfuWJBNjNLgp4XwiBQfisdWaeLzBflCB8ThTsEoFkIOExWDKaNuSWJSNFaIad2Xdskx5cTG2HLE50ch35Tsdu0Ku/ZlHb2U0q1HjMWi5LS0eTSCLEmag0pjMQlaveaa+64I9lt8XScuvyppmWTpi1GspMVYyDmdVEDKGSDKG+uqK9uLE+nrkup+pts+oKk+MMynM1M2GEBL7u3dEEbpuTSOWlIw2qotnvb3k5mHPPE0YhKrpuLh8wm53z3y4hajVG4kCi/Bi0rFPRnmGTaVEVJNnkoUY6YeZ7eYS4zV4TzGQUoOr1oTpPYfde6ZhoOk2bK6fsV49IaYHQhKG3SuapiXEkRBnUsz17wUdjrQV1N4puxrD7hRwErhaJZ5cryBFKjtTrdaYSbniMQd9ejplEsISXOWgSLRkmlJknkfAL8MTrSntESUe/LrtfBvU8muoVGVG8qOsM5URA/xKEIoeO18bxGdzar+c2AI5612G+IldML2YqSzWaIwpGQAVyH0OEzBllssMaeLUH1itWqLxNN2G66fPSGHmMGhNOc4TcTxirz/idNzxcP+eGEdWn/xD6tWGIJ5ka5gjMSpPbrXaAG+o6hpXVzTtilWKzNNIjJF5npYFstnTgQKvTVXTtR1t21GUnVabLWJqFE23jONE0641CzeOeYYgFTIm5OFA220AYT7dMY8HLIkYpkcFez1NGqexdJh72gqGKeGNNswPc2ScZpydadZXeCacT4yhovJg8gxZsY6zMm5RlnhsTMo8mqKON60qFlmMhamOnBuLUsoSat/8+FZKFZhFakwbTwo1h5zlPFKpyl1SZuH8sWTGlkfpShG2lpLmx8yOVi+ptlr0XMxSCam94EWB7BBHxtOO3cNOs7r6Bf04Yes119eRcXdL1XVYIjGOOiQ6JcZx4P7uS8Js+eBTp5UNW+Os5WH3hmmKbC+f8MvXbxCxpChYHE3TEGLAiGGUIV+7Ei+rusVblaI1gLFOAeZ+YNO1Cg+NPW6zIhlLNA5va/phVMq8bQlzr9hlmpjGHRLuubh8RpgnnPPMU6/6zTGohzV65jRedZSHYaKtNIyoE0hS4u3uEBj7gWp1SfDPCGOejXsWxVg4mIu0ybJS+rsylUkz8ogzM7rXTKmDas9NzB0+GXD+tpTjW5nMBdAmx2Vn/V+9cFusvTzH6jyGotNVjlIpu2p545wpJR3hBEpDWHZL/mBj1WynEJhOBxp5y+HhHW/fvOL2fo+vO3xlmcLEw8OBbr2lajo2lx12NBrzxaj+NsvaxlnxrdPhns3VS8R7QhjxvqVqEtU4sdmstPXQGsZpyFJgEGJAUsQ6jX18VWu8F+cz+O4bmtWWVVNRNQ113QI6IEVBb1htNzhrcCSqZkXCMZ6OHPsjVe2oqifaXDXPxLDH+RaMw/oNTXWisyc6D6taQ5PDSRUI5jkRjFB7VQULyfHVV7dcvvgb6u0n+HrFprlmcI5hEqYQieE8huIsjVIw3kwSyEdo6eVJNiyTJskk4TKNuziPb5kB8+2UKlMSg+zute0zd0HlLOlsXFBSjfwXNb7Eufi8GLKF3EKZpcIXUuOi/5c04XFZ4MakPTH27B5u2D0cqdYv8E2NtY7j4YCkCusGTA3d+gLfas9HilqBCfNETFpPvb3b8fLTRIwTcQ7EPOknzBOn05HT8cQwDAx9zxwCOglIaJoOEMa5YIo1IUz6fUShCZOPpCAJ4zy+qvGVUxzPW+Yx5Uxb3VZKemyaZkXlLyEOhJDypnGE6LDeKdRhA8wTtYPLFbQNDMGw6xOXXabDB0AilfELG+nw8MBm90vq9TW2fZJB4hyXZV+hGGv2XinLkaRiUNp7bVA2uU+SSScZtXj0vLNr+uaY7xuhllKZKKTQMh/M2sXbno3UqHZfEfs5QzPko9csqHkSlgszpky6dhjn8ptrj3xM2q4ZQqK2gdppvXMeR3yzpe02WFsTQuT9+wes89zdviEEbU5q244w3BLjyDz3TONJG6CqNd3mkl/+zZ8RQ9SjxRooTBUsVdOyvriiapolq6/qmq5dsVpt8L6hrvS4buoO73UTlNKbIDjrOQ0TwzjijGGeR+bxhKRISKrHfNzfM88DKSWOhxsOD2+Y44z4BsHi2g1iHGEeSTLhbKJykdoJmxZ8ZRhmOEza7FU8q0WofFIdy7rFd1dU66ek6oqHPjJMIVPbdOs7q0e5M6UqVY7UElrl6UpWmexR0pIALl5SHkuofLPhwbfy+RRGcWXMUslMeSxbVvouHr0GsKkc1oWkmIvTJZcy54EvCtWU2btWFdhTFpzO3XNjtARWOFtpvbQaSHna4+FwousuGE8PxDBx2O+4XnvEBE4Pb9n6hjQN9Md7tk++T9u942c//TfcvL3hez/6A158/H3E1NRth6tGjPN060sq/54wBbr1lqZuOOzvFZ4JMy+ffYSvavb7nU6fHPulfxVUCriqGy42K5q2ZQoJ5wJhOhG8o21bHELlDP3+HeMUOfaROSZSnOncyLSuOdx+QYyB5A1NrQKTnU8kZ2gaIeAYZhijMEVVbxDrSMZjnKXuWkzVUtUe0z6jjx1DjKRUdEPPJ1h2fRk+ydWrPLHIlrA+996EGFDp40K3l6W8KqiccvzOQkGSyLZBiQh0Knhpr5NHsd35yIyUi3rcK2oeJRsshlskHR4f30vjSg52pyBMqaFzHUjA2ApjLWEaSFIR48w4JHZ3b5AoPL24oj/dkuzEavuUGCbGceSyqolxQpKSDP7qJ3/K5vKaql6RbMI7S2UNbe3wVUVdN7RNxzDPtE3DZrNltVozT0dEEt5d46uK/X7HNE8YoGk2tG1L23TUTUtVN3TrFpMG6q7DWwjjXuvLNBz2e+73J/ankbqpsb6mqrslwJc4Y33DPI7M06wK/1bj7THBaUg6i1gM1noqVxExBDwxeUIQHm7ecHV4Rao/I0T/KAxabrgO2HnksQrL5RxKFf0Wg4hb4LNcslIUJAuFi6DH9ncyPlhkuAwFzS8o8Bk2KUj52V1no7MFrCtxn12O4mWu7WJsJUbM+Fk2W0HoR+EwWhq0IG+tBZmwVUsVA23b4Dgpk+PKkGyDhMChf8/22SdY12FsxTQc6bZP2Vxcs98d+eKL13zvt97y7PkHhFnxylVb8XAwIJH1ZkM/9FhruLzYMg4Hdg83fPXmS0II1E3Hs+vnbDdbxqkmhMBqpZK51jrW6w11peoK3ntsGDHAPIyYpuG4u+FwGplpiLHHWEfdrWnajmk8MY4D3uu9jwni3ONdprRlL6UcPcnUN3UOOpMuMg4DaRI2leP47mest/8AzAcIGosXTWVjDDbXadW+chJRBumRK1YZCzSZyxdFFsqoeku3rBruO/D5ss1R+jYLYVQNpgSjCkIuoCQmq1M9FqDJPD/zeETQo64pOAeRkjNcUfONkhinEVLg1rVs1y1V05HYEaIQw8jpeORyfc3x5j1VveFwONAPTzJ30NAfD1w8e848PTCettpldnnNkynx9s2X/Ot/+a/4H/9P/mdglPUiCEN/REWvR2QeqWzg9S8+5373wO6kZbYYI6dh4HjY8eLZB7x4+QnYGmtUlX69WWNImBhIM1QtmmBJgDgR+oGb9+95/W5Hu73k6vknWCZWbUNd1xwe7okxYr0hxBFnLdMYEInUlYZAIWj1wVptUZCsfe2WloRZT4jgSclDmPHVzJic1m2lGLHkiRNpgdaUVq/EEYpXyyedtdo8lbKqbBmdEIEyhtYuAeBvYHwiiRSmbNJZxDF3KsWg/DsyNyyDcQtAmZIgNhuYlFihGJuSUAsRtahOiX5HvSkF5xOtFycRxjkyBUOKwjSOVE3Lw/1rNqsLbNjzcHvD7cMJU2345EVHbSbG/sTdzQ3t9jnORobje1bXn3Jx/ZIpCD/+s39Nu32uPRHOM02jNuPMA3N/YDrtaUzk4f4dd3d3TDHirVt6OER0Ptq723eEMPPBh59StRsMUHnlPtY24W0k9DtMHEFmKud5d3vHT764Z38MPAuRDz7+HpvNMzp7xKTAcLzH+waLChGlODDOiqc2lSVFGEaYolB7j3M1lbU4Y5BoMFVO2kSP5BQGxFimZDOMVioFeu9jFoq0kssJmQ5nOAtEfW0AdO6rlhTxReUgn3jfBjDDr0EmFUmoIqPK/KcUtRFFCumw6BhBAZSVcICSR6MQo2a6+kd5X2dWhMXk+WUm7yZEYQBt63NUvqGqOpKpmGhwlaeuak6HHZIil51w99XPOe73kCIvnm0Y+hPGr0Es8zjxcPuVFvXjiHeG7eVTrIEXLz7k7v0r/uqnf840Bfb7A9M4EsPM4f49YRrp6gaDUcjEV1jrNenKTOza1zjr2R0OvH31BaRR+zEqR+UNrtI5bUhknvakOPDu9h3//E+/5Oev9zwce8Z5ZB721C7SbS5J80icDiQCRbJ2HHqSeFJUMZ8QYD/kTNy5THN/lJkanQJQfIykGZ8O1MuRnXtkipEVabu8TqnE3BkqU5Qit0rm50im3seMg7oyoPHXML9vhlrQMfcqbVuS7gVezl/KU36TlopF6WpS3DFiSGKJyWhRfwEtDVAULc8YoBJVzwe8MwZndbD0FCsdTpxmwjjx8rpjOt3StGueXDd8+NEz1p1hGkaMONrVNTKP9A83zNNMGefZdR0X20uePn+BxJ7/y//p/8C//P/+P5innuF0Yjge6Lo1n37yGdfbLatuy8X6grZe4VyDNR5jLKtmxbrdUPsWZyuGsefm7ZeEfk+cBpCIhMA8DESpcL7jeBL+X3/ylp+9OXAYRlqvoHDtQcZ7nByp6paqaiBFJM04X3M4BsKcmJIjJG2F7Ge9bz5P3XQFajFGQXujG6WuPN43JBwh5vp7idWTLLqHemopxS2mksjIQl4ld6ud1xoWlYO8ftZajPtbeNzfevwaCUcOOG3JVPV4LWWvkqOLoPGNKYewWcYJF/jlPLzlkYJlTlzO4z3K2KwyRl2xQ4seHVNwODq6pubF9Yr+dMB31zy93vDaVjpYuUzmNhXWO+Jw4LS/ZRxesL58jvMtdRW5vLxkd3VJ03b88ic/58//d/9b/of/7L/g+vqSi4srfv8P/ggm4Yu/+WvWq0u2FwlhTwg7Zjfi/JonF09xxjBNk5bXJDIde+JwIIYrQkiYFLAyYU3i9ZsdP/38Pa9vTzmGFrrKsela2lpVrNLwsChkzeEWY5XZPYeKmHTI4hzUQDDaVFW5gOBwRqiMQiRRzDI313tLffEByW2VEi+OMvyvsJTK3S5IhOTwaJa0JBWLyoEG6pQwKopFlj4ck9Umvvlg/cbfKl6jnK7yURrARSiN4pkKb3JcUvo4z+lHeaeU1QTcgg0thpefUyAX9XzFSHO8masrg3hoP+D66RP2xz198FxdXXJzt2OOFXOYcd5mwLrKY90jp92O4/6eMKqCgQW69Ybt5pLL6ydUvmF37Pn5L9/yL/7Vn/L+zR0/+tHvsLm4ZLW5ZHvxlO3mCd3mCpwnSqKuOi6vntGtr1ivL2mbtdLimxWMA+Fwy/7mLcPpAGlgPL7jT3/6JV/d7ShwU+0MXWOpa0NTgTeBMA+Mp1vqusoScUrePE7gK4ezyqUMQecF197QWBXyrKxG09bpvQvR4m1ivV5TtZcM9oKQtB+ltDmU08wsjiWTem0pleX40Jx/X84/tUFl2cxzYphGhlFHQ4zj9I3G962ez5E5eNlANL2QJbAsg0gylYCYUNlbgWWEadld5JgOWYzULkHqubitbFhHsmkJfk2hJpiK1L4A/hRJQte17B5ueP3mARGhbTxXmy2+bjHVCjnuGQ7vOOzuWd0/48XHMA87YhhpfM3lxTWX65btquVi85Rpmtg93HDsT7SNo21XdOtLms0l7RiwpxNz0Onjm+0Vl9fPmU49oztR1S1pPFHZgDfCzZtXvLu544/+6A+5WG+5v3vF3UFbMQsUVTlY1ZaurvBWAWZJiTTNWBdpL64Yd28Yg4pqzuPEerPisNtjgMt1hUkBbyPWWLxzTFmk2VRe1yPNtBfPCZsfEaiXbFbVCBJlGhHYM/9Qs0TNZlNS8Fi06VwHO6rjSJKIUQm/EnOIUFUaw3+X1kn98Jhjh3NMYAvhcMlk55yGk9P14rIlY0SSDW8pabCM0pRMqM+9A2dF+nhmx2TDMya7fdew2VzQNQ19P/Lm5hWH3QnDxLp7iW2fUm8uMBIYT7cc7t4yRUeInsP+Du8/p2o6mvaK9fqCJ0+e8vGHz7g9eS6uPyAIHA8PECNtu2W9veby6hl9P9O0e6yraJoNV9cfcHn5lJPb432lesne4dJA2yZ2t/d0qxWXz5+T5MSXbw8cp0DjXRbnFlaVZ916utZhZeR4nOhWHa7pOO3vCLSYast8uud0mrjtZz795JqLJ9fMAT7+vf+c+y/+nP72Z4irGOZIAsZZaF3EWceqcbTba0Z7yRQVfimeN0nuvsuMJSRpO2huiJcUzz256XyyFc8X87yURbePhBGPdzXWfSeVKmWCiAUrVlvkliYMbcJWl2sXoFxrf+Qgr0jmG1SZtKgVxJwdlyxKvYB7lGQ87tmVvMMKi8Zar/PQ0sTxeOTd63dA4vJqy5PP/inbz/4Ql+7Zff7fsL99zWl/orn6gIfbL2hXNbW3pL3l4omlW13QdQ0vnl9xeeP46LMfEtNMP0VOu5nKd7TdmtV6S7ftuZoj23dfkR5u6FZb1qs1JsyYlFSfxkhmI8O27XBty6q1xPsdX9zuCCKsjBKavDNsGkNTWyoz64TKadSxCpIIYaLvjzhnmYNhmhIJGI5HsI7m4ppnP/h9ts8/46t/+3/k4eGBlE4KSEcIM1RV5GJd4zcvGOaJEOecHD4OecySRBTM1RYuptONUkKlReRTzpgv9qz7vOQAttHm/u9ifGT4YwGacxWiZL+Fu6BHYinB2KUOuFD9spabGl3KBlXo9CxJRjmiRc66LZCWG+O9pvLOG7yF27dvIQ5sNms++8f/Fc9+9E/xNhIf7hgOt4SQ6C5eMJzumPoDl9cfcNq/x/gV97dvMdayXl/y4YtnPPkqsWoqrp4858u/+jNi8lRNtZTZjHVUvuLp9XMkRLrVhrppmasW70YlvTqHQ73a04sVh8kQ9ztu3j/w7jjmIr56fQdcdBbvUJ7geMJhGI87xmnmNMzaTxEmhiEwBr2HIRmsJGJ/QkLPxQc/ZLr7j9j/+L/lOJ3wlixxYeh8ZHvZQXWBtY669CtkiMxYnQZqTHEEJfnIzsRIriapE7DmvP4lscw8mLMziYGQorYa/KbGd5aqMEuPqkmFWmUXkFKyV1KhvRzrYSgjTvNVIRLPu4Wv7btH8Eo2vOJKc83XlCZnDCKWpmpJ057aBjYffcZH/+R/zosf/SeIBB32Yisurj/DuBu++sVfkKLgu5bT/h2HTUOzMuwPR4zzbLfXXHSO6xVM/T3T6YGr7SWbiysOp57KN3jfYhMwz1RA23RUtsIZj/N5LkgMGBG8N0gMXF5sCe/e8/qnf8WX+xNDTNROY+jKGDarmu26ovZ6F+Kc8E44DpEhwJQ8lRVcMirwmKGrYQw03jIcdYZc/fKHbD/8HV5Oga9u/9+Mp4Gm1R7rJxcNVx//Q2hf4HyLfyTorbiqy7idbv6YzmVPyuqVUKqshdERCyoV//i5us5ZSgqTvsOk8VJQlpSISSXLtP86jw9e4BYNSjXSE0w0SGmiztlrodnr9ziTTyWX07A2j05dEn6EqIFreb4xBIGHSZjMP+DZH/zX2I8PtM9/h+bqJUlmJAmRiqq7pupWcPNzrK2o2xZftaQwMvRHksA4Ro6rB1bdhu1mw+/+9m/xy5uebeP4j//p/5Sp73m4f2CYAtOsDGKb2TjeelbdhqqqqJ3HWQeZD+hcoKnARLi69nz56sDnNw/Za6iXwwgvLhyr1tN4y9jfkWLgNEZOs+oeeudy7JWYo1KeYo61DREn8PDmZ7z8h/8pFy++h7Oe929veP35T4CIZ+Tycktz9T2kuV6AfI3jhKKuUyys2FxWAsnOTH+os+BNniSV674SNSRbDA9lPRtDmbn7Gxufvn9Q4yoY3YLNFQxQjU+W2q+ORCjkwq/N4pKS6QrnwSQua7ewzLEw5ctTcKWUf68XNSXDmC6QZ/+Ii6eFSZs4i2UabDwS+3dM44iznnlWpq8Rod/dEuaArToebt7Sra+5fvIJTzhwfzzwh//kHzGfTvyL/+b/xihCajpOU2CaZ5KtcNbT1l1uVrfEEFVGo9JKSFs3VBUkmfjlmwd+9n7PwzhhjaF2hkZpKVx3Dk9AIkzjwDTNzMkxJ4sk6FrPNM6YqJT3yut9qSpD1+nRfnz3c073b+guP6a9esGnv/0fcbh7wzid2LaW9XaDbS4ITsFmvcFucQRpQRPOa26WnhxIMSeMhsXwzioSef0Xmdwcy2fiR0rf4dgFNSIp40oz7mbIdHmDHqWikglIHkP6iCTwq3odmjSpJosOkBEQp4V6Hme7xUAzlCPn/tgQgawPo+Oa7LLTUhScTPjpjUrc1q2ym2cVvUnJ0Q8zVWuIU08IFqhoN09ZT4bvvdiyth3/9s/+Oe/fv2FyFbOvMKsVxlY5UfDYVstsYdIm69V6Q1U5PnjyjNrB6f49w/5Lfvr2yLvDsMBKV62l9sJ2XbPpPE3jEBl1xEKwTEmVDUgwTbqYMSas1ddZB+uVx/mkmtfjnsO7z6m2H2Gqluc/+H32t6959zf/ltWqw3eXeVSZLK0AC55flqk4luVPNryC2+YVUYpVQnL92OQZfCp4nienLMmH/bYCx6+R7ZrCWMkMf+Owxj+ydtXyMI+bgPJuEikzc+MiyVrcc0pB/zuLTy+1xMd7UARvZRkaWAblmOwaJScnPLph1lgqIjbstdFonphm7ZMQdFKjrVpV5SRRd5bd3S+4fvaMy8tr4vt3nN69woaROOyZbUOsaobjDtNsqNoNlauwdY2ESMCwWl+xWrc8u7xgVVXs7294/9d/ysPrL7jYXPL6fk9TeS5bT+MTtXc8v2yoW4+3iXHoGYKQqJTHZyqM00btGIUYtOpT15aLWgU3C/BMDIy3f8P8yX+MrWpcu+L7/8l/SeU9sv8lxl5g8As+l4pqhAUjufe6UN4ozeJ5XWMJpcgqZdkos8xw7QunU8UBlO3C+TnfhUy61FwX5gra8GNCPpNTDl7LjNWYe6KyweYkRQfGsWRK+pZy9qYCjx1kia2E3GdAqSrnKZRlmvWSsGRKkSSwBp8s0/49+/u3HHa3GNPp5G+rdKH1ZsVpDLjK4GPP/dvPuXzygo+//5Th/jW79wM+BVyYsc4wW7OIJYlxuLqjaTf5uzjWF5c8udhwsW6orGN//5Z55ejjzPefP+Pm/oZVY2l9hGR5dtXx9GpL14JlpO8dIVkClf7PV9qk5AUJCTEeYwN1JRhjOQ7KkqmcHsHh4eeE/hZnXyDW4JuOT//Jf8l8vMG6xNGsyUugRiGSxZ4UmSihkTHmrAorcvZmRvt8dY0Kv08LCrp+edxCRkWkMJq/2fa+DWROxGnMpZVsbIXTZx4RSDFKx3nkifT1UFr0eGxg5T8KhJMB7Awla1KDsihi0l7YwrwQ89j48qeLTsNMKZMchwfCcK9BdDRM00g0ljkF1psLhjFxGnuuL1f0pyOuqjk83DCddoQO7PMnNA87fa8kSARTNRjjcNZSOUfbdEiMmKqhbjo2mw2b1hNDYpr3jCYwSqAOPU86g7GRJELlLU82NZWdsdJjUO9mfUNlq8zH0++5KF15j5XIFM0yDWoIhq4Bb4V4+op0+AJ/8bE6AAHxNf7yQ0SEQQQbf4UelXLl1hQfcDa8IsxZ1vZ8p1FJJxFiMsgccUbxSpeVDIqsWjHa39j4VANvAFika60RNYAc/Ou/dHhfCVYL8UAvIbcLLjvsDGaW4rSxmrDHwjPLeF+SM+fP5pjDJMXIvGWpjhjApkQUq6MZDKy31+ze/xLnDS4Y7bGgZpgjh4d3XFysOZ5m6rrmonUcd+/Z3X2FiXvmKbD+4FP829e4mHA4TN1h2xXeeupuo95JhLruaOqWynqsb3i4+ZIx3HL78Ja/ur2hPoKRRND5iXx81VCbBOGEOJ3WWTeG/V4HqrhKm59iMISEdp8ZkGQwzmj2K6qV6L3FOyGFif1P/q88u/wUs/k4a+qd6+pntMFkcCTlRFQogj4ug8jnWSjo2B1T+nYMIaMaSXRDBlQez1kHps4Zc8pKCEtXzr/38a18PohZPYD85iYj3i5z1iqqqsFZj3MV1mlRX9N61QYxpspgtVJviuUJyr4NCUK0zIL+dwZSQ2L5E0X/PkdhnBPjnJhyZ5vSu2VRWWq8xTUtzeaC1brBmkSYR0KY2D08YEjL+3SrC6xrebi/4+HuK5pmxVdvX9E8+YAnn/xDuu1zXLvKvL2WtlvTNh1Nu2J7cU3tK2pf4ZxjGibevfoxQ7znF198yf04suu1r8OK8MFFy5Nti/eOyhlIEKNh1TZ0dcpaMLOWNPOGTclQpkCp+Ljevtob5jnhnMIl4/6e/V/+n6H/SkeEoZ7NSDG6wiQCVYu1uQdXY7sQ45JgqLMxOJentlubO+LyvPJypGZHoqKf2sxVRl7oQfldejhM1skrF12y0WzZkg3SQG4qyj8z5K+ugGrKeF6hDVC+uCydHoiwBLrFK0pxreR+2JJw5PeTpBTvlEoVBSwzPtzh2yuadp3jEe30nwSSSRhfM44TF+0a7z273Q5nHXVds+qecPWs55f3X/Dyh7+D2byj2t0yTBOmamnXG6zAen1Bt+poKse6a5F55tXnf8ZJbvjq7Wse7h7oKqfk2wQ2JrY+UtVFSs4SgzJ9nE2sGmF/CNiYwNTEEHDGM8Wo8axzzLPGy94JYxBqB9YZkqkIqWZ+eM38y/8n9Wf/I1x9tYDDi8eTcloUsqcBE7MEXsYfEaxNmRRi1DNm+EtPPVSJ3spi0KrnM+fTzi3rF7+L8RkKDV7nTcSy6OQMSVIeNKLN366kOlnL5RFokr94cfv6JQuariI7pVqiX9A+MmRj80y3kuFCLvkElqaWfGNre8LTg1WJCVc3eHdCsUqFW8ZhoDY6Huru9i3jOHF9fY31nu7yGVcfGV7/1U+JKfLxxz9ie3XJ/tQzzbNCTUm4vrji4mKtnWj7G77afcFd/wW7h9fcfPWezlv2Y8g70UAS+jHmxm9FBkLUXhVvFMNTPRYDLhKj1+3ryPIplphSpjkZjUMzD09MzRQcpyHQ3v411eqa+oN/TLIdYnRmRjJQRp6WGLtkrzrJMxuq6EnnjBByidPIGVHQ2nqOx5epAqX5S0OwguXE+B0qHCIoTSbHd5K9kbIf8g9TwliDTY6YyYlq+UJx/oUloOMxNXpTw5JHu7Fkv+dYoPTI682y2cuqt4sx0XiWbJvsaWsmnDVE49hcvWAcB3YPB5yfMKMQwswYhYvthuH4wOG0wznLw91If9zxwfcuqbuRrl1znPfchB1dA9U00nVbwqRqoV0dObz/nIeHV/zy53/KxcfP2d+84q/+7C8Z1DJIkniyrvn4as26tiAjzgKo0FAyFodhmgMpREyEkDIVyWgS54wl5AqHchszWJ45exoTJ+rKM0fHNM00dz+luXiJ2/6AZHVNrKBzM0xxHJo+kGKO+yxFu6+I/ywckrLWxjyqZkge9HP2kgs0kx3J/J2O3WIw+YMLgFgAyyWZEWVbZHbOkgCQMzY1jPIbTcPN0kPAsusSmoWl3APg8i59TMtHFGg16NTv1gtetXgZU0VtJs1E64Z4usL5N+BqvO2RFBlHS9uBlYn+OOcLdkSpOB11evdHH33MqzdvefPXf0OzPXKsr3n77h2tf8/x7h1xPNH8Tcvu+MDd+7dM48D67SvGYc8gYIyjrT0XqxqTIu16zbPrLd6OIBP9KGAqvHMkiTjRhqsYNIivG4t4A0G3snUOQiCKKrSWfgpvHSIejMaQ7dWH2NozTwPzuz+mtQ6/+ZhoaiRXdwrRt6hSafIREZuKfS1ToR6BEuoXUumtzmXUzG7XFgmY85t6e4ZvfmPjE2SRYLA5JzfZ7Rs5X9XC7spXLIjqxyTRUVaoF8Tox6V8djtTELwCVC8fjCHl08rpqC2E2ltCyJN67FnFtHMDVgZqe0FnwdkKiQFXr6lXT/D+qwya6ps3lTD0DwSpcHVDwiNp4vWrz/nw7S/54LM/5Ie/9dv82Y//ks//+i9prz7mOBv+6ud/yd3tK6bhmMUUlbZuSbzZ3RLDhLfC9aamrVT2aHt5zcsXH7BZ1fTHtxxOk1LCrIYqFgcxkGJU2hrCPM5Yr30QKUateIxj2dZgNVYsCvWCwdtE3VRsP/hdCCfS+J5495c0jNTbTwhmTbKWkIR5Vi9RavPy2NIErVJRigicvZmhxE9qgBZ1EWKJBeujZMzfYnnfZnx6MXGRSjXu3Dp5Hu6SA1c5/06KRp9JQMyMFc12k3F4Y9T7YRbVK4SFTWFM5kmLWVgT5chvvHpOVcHPErwIzfwFDY622aC1YIOvL6jbbW4r1Hhp3RiIM+NksZXP08KNarKkwOtf/DnNassnH37CH/ze7/Nv/s1/xxc/+VeMU6Tvj0qwFBjmIWd0kSQBm6s51hhOU2RVN7x8+pQf/fB7dG3FNJ84jBO+avN3nHO1ISApMQcVmJTkSEHr3ZUXJEVM5fHeQLJAytBGxOZuoZREpd6GW8z4ju7l70L6GMY74rDH+VvqTkiuUSjKkpGG7MXyuhWjSvEcF6a8TotKVRYj11iwTI1XlYICrYSkIkffqW9XA8kA4pWlkg1KivtdnqdlN9Uk1uq+zaC0ZNIiHoyJkNnJetl22SWyeFBNRGymgISknV2VV92/2pVdqXy42ur7GAnY4QuseQnVmpQMGIevPHXT4b2naSPjLPSzIRnFBGtbYZ3HOsN+d8vu9it27/+G7fVL/tE//ie8+uor9ocdw+E943BCSx0TzqiqQiQusVFTN1xfbHBG+PjlC148vcRXhpAG3r//EsFSNx3TNOCcQJq0DTVGxqDtpjFFbAqkZPDG6rwSiViJqkmd+yWcsUhUtXjn1FidhTg8kE5vaJ/+NmyeI6HXmXBh0FhStNuwQBNFX5qMYmj0l4PvHOoUeIVirDnPLTo6RdzO2Cwgnof+SUlAfyPjE5CYSEaPBMlGEkVb74wt+WwGkk2RtY1nw8zBt/IAY24818C1qFcaA2XIM4Y8YKYYZloK4m3ttCmamNXv9f09AetXagQSMBJIQfXjmrrBeUNVV8gpMsyGmAx4t5AjTN5YTd2SxDAOJ07791w+/SE/+OGPuL+/Y550tto8D/R5QqRSyBMuZ+OVt7R1xacff8DHL5/kZu/I3c1b7m9vuXryBGOt4nzekqaZMUKYhWk2jEEwJpCihhvq6IQpzFijntsZvf+qJ62VC1/peFMhUlUWJyNMt1TrFwR/RYgwxoiZc7E/H7Uadz+WQFEDjDnuW07ZspS/GscZyaoVMXM8PViLtypE/piU+h9sfDlPImV3j0m5iZEcQxWwMWuyZEMqmYfJAJF2wZccN4sNLbtOO6VSFs321lF5p0eAUfJp5dAJiSJU1utoUglUdiKJw6WEkxnjai2zZSEgY7TRe335jPb9DZZB8SprsFY75VKIaE+Jp1ltadZXzPPI/duf0V58xO/+7h/w6tUr5igYI4z9CWuEOUamaaCpPHMIVNbw9Popv/d7v8Oz64165HDk/uYVt+9fK6RiLTGOpDBjyhBniZyGyBAsEfAKnCHGMEdDZQp5Q6htaaRXQ4nRY63FeafYHAET99T+OY2NpOmeulpj3Yooqthf1F+LSZV1KF4wg7Q5fEpK4C28q3wsL4ZK8ZT6OyWLlJFYLmsw/obGB2apNZJyImHQAnLOhLMP0/qkIQsGZvIAisdZl3GilEiEJUNKxTjRUVplWHRKqvfnEJwD7zW4lyS0+fj1JLyMOJS+7ixE0cHUce5JwYCtaNpLLq9fcLP+JevuyDQnhpizvRgRb3JJCHb7nkm+0jKdq9m/+xnr57/Ff/bP/nP+4i//kp//bEt/eGAcTuwe7jidDjrYRgyVEz759DOunz6lcompvyP0t8TYUzeeMAckDoSkcIYiHDriQWM3bWMMMemMDKt1XN/IIiWSdEm0qhEUkyuzjpvK03UrvIXGW7q2IhgLJoBJtFXFGHVWW1GfSovKlLqaIg5U6uzRlJ9n55A9jQ7VNsuMbnJsqAY4U2bqfdvj2xOOzLkrOyFJbuFOpWMpezxyOi5y1vgwmRqfsyltudOsqAxSlwxIO3euBOrujohJtK1l0+qxHoIOgW68YOOEJ1Cbg/YOO4fxLQYhjgegI4ZI1W7oVhdcXD5n/3BkDD0MwhBU0ssaYZ4mxjkhZmKLY3NxzRwvuXn7c4b+Ad895wcfP+Vq9Xv0Q09IcNw/0PeDdrmhPbcXq5bKJU67G63dRuU6dk3FiGDSrOExKSuQzIgYfL2iDSMhJqagi+yJWlaM52pEEqGqHJWrCCZR1zVV1ag8hYO6aWhWa4wNtI1HXEUwG0zySNBV0iTPLuD8grHySMOpZK3k2D09qsOWDJni/zR5TFmdVFLSNbffjPH9esb3+AOklMnK8RkztJIz35ShmEwT16Mh5Vm8WiUxSZMOJGRMySK20rhQ9W/R/tDS72FovaXyQAPOJKo0IKmnMgNWBBsPQCAaSLPOqkjGcTrtWbkO5zrqbkO7WtEMgTnMDBHmkLBBCGkCm3AeJKkHSjGrDxy+YtzfMM4BOZ4wM9TVCt9ZLroOnm1Vx2buuXn7itfvfknjDV3X0daeeXSkOFH7BDLjbI2IZQ4z8xQwRnCmUi7ePOl9QjdFZXMsnL2iYHCuViNrVa+mapU17ZwaS115TDjSmCN4x5TBu2iqpTKhQLPNqgJyJisYZRSlJMxBJ2haY/O/DWIfZb2PVEnBZAljA8ar80GWOvFvZnyL08qiMI92RqnKLqTBUlyNRZWgxFaq/SEYiMrMWMTCKVyLALjFfTorykaxFmcNVeVYVTMm9ph4xKQTVk7YMGSoYsJIoG4u6E8HRGCaesJwYqrvWW2vabs1m6uXhOSY5lvMMKnIIlqxCfOMtRXOCjdvvqQ/Hnj67Alt19BVCQk90u9IY2IO4Ju1Fs6dJ4bIz3/2c169fctpGPij3/0thv6AoaJum3wPJBfqRacCidLlTaapWaMzbacp5kqCZvwJCDHRVBVdWyuJwVrqRmcJV05weSavy+Lpzhok9lTumhBHjGtZ2cBoVCEBY5mjjp2YQiQEHZ/gvWUMRe4WvHeL9G1hF5VkpSSBmFyr1nHMPG4a+1UW+3+Y8S0fkn1QNrASsKpiVTasYnz5od5u8YkaM5pEKqWyQlRESagmNxypvI2jctrsvKodzgSdlpgGTLrFxBMmHCHNGa0qNeds9L5BhnusmUmhR8wLmtUl26vE1Qe/xfMT/PQv/jtu372lahrwFeMw4J3Q728UNnKed+8S2+0aLmoqm6gqTwgnwhwwqVoy3HEemacjxAmSJjGVh4ebdzx5+oyqqlVXL7PAQxISqg1tDKQ5EOIIaJaPUU/inKFyFhcsbeMXMq5znsp7vPd4D5VTBnEB741xxKmnjTvWbsXKQqBmU3nEOProccESvd6vGGa8icxzQMRTeUeFZZwDISiklA3gnEQ8ShgLJmhtmUIuuRDxzcb3LVFhKcdk91lAyKQSCWEOGXQ9Y0V2ifdK1CA5vkga4KdcT0RyJpwrwBLzz4MuqjO0laOtDY0LmNhjZcTKjBWdDmTSiMQRiQMkJRlY67QM6BxYT3/asX+4pR90ErdzlvUq8gf/5D/lo+//dpanCKzXK7wVxqHHWSFOR44PNxwPO+73A9Y11HWlC+4s1kSqWqewO2+52K5ZNRUSI/M0UTlLSlNWSFBKVEhCRHJXSoUYj60afFPjK6/BegoK11qNip21NF6B+3nOBhIDFiW1Oh0PoNSokBhHVdcf+hNpOuDSgYoDKz+xbiJ1BV0F69awagzOGepaQ4NxmvBW5daSGEUzcmXKWFUgMK7OVDmXcVqTCQalvisZudDI/pse30osiCHhnD0bUSyTwrOUhpRNYTLQaHPDiv5JMZ4ZtNap9CrZmeYapb4+00KTYQ76mra2y6RDEyaII1B6RwHbInm6NmiGasViQ0JMTQg7jrsbxlHox4kwBSrfEaYB0h2f/fCHzGHk7esvGYaeumnYrBpiDDzcvMW1a9rNhraucBammOfxttpIhAhlCPJms2bdNdztdHSCdyu6tmUcjjRdq6KMYyJJwJiaJI6QC/FNVVNVMJmRkl2CzQQCkzvhYJ7V+xpTZUg06QZIOghwngNz9lbzONEPE853VD5hmbSaY4TWwSSGIJa6Mlg8vaxYV4YQDUMIhIQaHOYsEgRq6CnkP5Ibt6y2Uy7Z8zkj/o2Nr3g+/ZBffSODs17lIUxOiYzJzIjSuXRmOAgZj0RItrBcs1WWBiKMkicjWmo6qId7ukJxQjGoTEetkI61YCpwFSKqTRwz7ilp1mOrrhnnnmmcMLYhTAPTMDAnw+G4o2laVpsL5nlCjOXYD1o18BUSItMEURpOYUWiAt9Q+cA8j+qZcMwCddOy3mzoHg7M80QME3VVMRxn5kGRgTE64mxpKiEZh/UVc5iofE3VVFh3XAhnRWCz8xaRgLdgqlxuNCrXG3Nt2Fa6jMZCiDPjcFKF/L7HuRoRwTdK8rU2EI0npQoHOj4Lh0+G4TQzzIE5aRwspayWEQxrBNJMChMiRin+1lNYL0Vi1zwiDH8H4yNnn7rwJhtXvjt5OhBnN1fgmMXzlaP4bMyl5Pu13WRMxv1s9oSCBAFJ3DJBtFw30CGYJLkA76HUHUPSAS+ibOgxCPgWsQO+vmCaEtZFQpqZw6QdbcNA5WrqynJ5uWWaZ4z1zNPIqe9J4mi6C+p2zZQcaYC6XuHtgK8abFWRgqoIcNLYtmlqXOUQiUzzTFXpPLYwn8BUVK5mTh4zJ6JJNE2jLGKxSg/IcbP2oygZMwRNEkQkM5QTEqc8/E/V+E02Amsqpj7gzExVRZybgAMpRloxuEoQt2a2BmMS1ibmWRuS+lkYgjK8Qway9XL0uirvsGi5U0eGeYzzur6S22FRmdwYdQ6L999sXt9qfKZU+6TUXzPv61c84WKEC1LO4tiyGebSW07VKQB1IXwX4xRK87FkVPVBnLI/rKVOCSsau2EdKUwkPHPSLC0mQwhCjJaquyame8Jpz6kfEYT9/Tu6zRXH4z1tLbh0JE575n5imgVja1arLg8LvOe0U8B0ff0c6x3das1qtSKMO1KYGcYe8hxdax2VUTjoeDyx2TSabPQjxsw4BiIr5gBz7KmXcQeTguMh5BuoUIgYYZxmqjY3e1u0TSHXy1WS1upU8DxS1dAyTUm/r/PgKqyP2GmmMrWC+EYYQ6IPkbte5Yo1r8hJYpa2RcBYq/caVa2IAsZ4VGIjC73LuaZfRMhByCj1b2p86p0WIDJnqo/ZCoU4sBgXaFJRAr1zcqRYUr6JpURnrBq3zTHfuVdenz+HxLEYfbPm0p7wMpLmGZc1h1OKiKuZp0FHB9SbPIw0qLbJ0CMYuqZlnnrs2JNCZHd/r9CFBFKcmMeZKRwJe4fzlc67nSKm7+muEm275vJiS4on1Yh2jv60g5TwziMpUNlE6yuG4Yj3EV97SDUpTtj5hEuRSM0wRqrTCSSS4gjWMI/9AhgU1k+cE4OVzNQGt/IYL6Q0kZJTqV8RhauMUR1qWzPPAddPKmdnLOIaokmYNJHciSAtMVZ0zjEno0e5CEEUfXBoDVokksKk5cSokmvKI4wlcFeFVJGsxQw4j7cW+10SDpONTVknqp+nhmNyDTcbqEhGY/IPs7tWNqzVY7iIAGW5rfNYhYIZ+vP7Lh4zZWlcQz8b7kyDqy5YM1DZnIUbB9YgQWdyOHHEGJnGiZQmpmiIUrPZdkicCHEiHffsTyP7/ZEPXj5lvdkSkiEGmFNAgjBNAbEVLkauuo6Liwsut2vm6YQzCecd82lUkW3nST4SpoHNqkWbuhNx0hpu1XYQLZgZmUadnI5hHg9aEQonhMQ0zSQpLJJcLRIIkwL046x43HbtsURSGBjjTJpdHo3giXOPdQ7ramLQkae4gHUjgscnA5UqPNTWkGKin4RpSsxZlqNxZKHKwBwCMZaqfFmV87FccL5S8y0trnpmfhecbzFCk8WCJLNTSh+tWYJj/bwMrzwiEopoS6Ql43vZACEtBplwyuIor0GUH4e6dSea7fWz5YEO4zasedCSmswkMWAdc39gHCeSKDUdEuOUWF08oak9p917SIZxDpz6wP4UWB9nNp1nc3GF9SvqEJmDYHxD012wvX7O9ZNnrLwwnu5o6wbvLdN4JIWAtw7rNDkxBNarhoeHHTEKtTdM/Ylqs6bbXlPXJ9jtSWmi9ZY5RuYpYWVmDpFRnReVMnYzkVcpZnPuh3UuYmzULDSpmkMMs2qouAJlTYrjG524GaaRyWVih4iqvvqWKQmnSWlmc1JstszvSCKMMZHQyZvnolXmcxZsVR4xkijMdNXj/k4NRGc6TaHSZO+F1miWGC6L9Bgj+Qg4w8taqC6VQGWGmOzNYkq5OTp7zKyGlSThSZpdAWR6ToyRkzE4+wQDdPFBd13+8t5XVCkwDSNd7TCuya18Ffe375HkqNo1sZ8I46AcQV8xhKAbpGnZrDzWqbC4r1e0XY2kkRg8tVeVgtPpgBENqIeUqOqGw+GOtq3oh4G7/UDT1jSrNdNwYhpPeSxCRdM0DONMbRNEZYKQIqdJcM7nYYelsRuqSje6s8KqElYr1Udx3uKqjnnW2XZTSFTJMUdL7CN+HkhiqWr1bs4avPVY30FyhGiZoiIMVeWoaz0xhjkqCC6aWCwWICweTbNbVTAoYqHK9dTCQVp4mt9JKEiWUkuxvcV7ZQ9nioHkc3jxXtkNCzleSVo2WnyiMTlgTSSiZkqpxBvZQHOGnTJOY9Cy0H5yuOYKaxNNusekSJwDEkecBDw69HkOMzZF5qTHll9dQuqZhtdYk1itNmwunnDz7ise7u+5uH6ClUDtLM42GIQwDwg6A60/HVlvLli1DZVPHB/ek3DMU888jRhXcffwQD8Kq7Ujicf6Cu+17BVCJInRCUrDDGnEIAxRiMarnnKSXPgvg6MVxK68sO0qfGXAWoJIFjevdPhLq3NKwORZwDp7F0ZMWxOiEJJRpCEKQVRdz4i2OrZNzTRNHAYd+lP0tMv6s+hrl4KDrrbRjvZHB6xZQq7vVl7jXLIpEVrpty3QisKgWejbWCU7hrhcZOGiaf6hXtLiWPSdMSwlNsgJii2hpGJ/USAKdQVNpTLWc3JEvwYZSHFUsFcU8BWjTc4xHInTkWkImCQ41+CrGudgtdlw9eL7zHHg5vYBZyvCNDCHkWlscX5E8oawVct6c8XTDz5lvb3GMXN4eM3Ynwhz4njcIXiOhwcO+4GuqakszNNEXbf0pz3GWsUcA9wfE51TDzcEQ8RrwoIhKJM018Y15GnalrY2dG2FNYGq0qw0zErdn6YeQajqRkMQNF5MYSYaIQbLPM+YaULsgDMjyVXgjEI0YhYv5Z0WaVVTXFNAzLnxaHFKOcnQxONRjwfmzGT65mT328mkJYEgG51IVN7F0rNhFkUDU1Dt3E3G489PhXo9k1JQZBy76MAsYjVZKFK/xDm5WYaUGEdTGdb1TOMFZ1YYb2A86E3wDXVXM49HfFXTrhLH4ztW6wua1RrvHffNmu31Cuscp9t7jLG0qxVt18JU0R/3CBNV0zKHRCWe69WK7cUlKfTsH94wD0dSmOiPPQnH2D8wDJpgdI2nqT2Vt9TNhmPfI7ZhCp6HY8/DPmJWOgXcGFHhRy/MUaeuW2tojEUM9FOibXXDOm+z9kykbjrqriYGVWNIITGcNIGxtNSrDWReZQqJGGbmacL6mTSfQGpmGpJVYD6MScFlk3l62TkYq4BzWd/ynsboz62xkLPxpbnicd33NzW+JWgreWlG3SUL8xT2hRhlohhDFhM8Zz0WUSdozo3h5RpzNzRidYyiKcBmrm0uUn8ieGdoKsvlqmLTetZNRaM8HkxyeNcwuQrnKsDi6wpbNcR0x2p7SeUdTibiDIfdPSE6MB7rLZISVdXStC2nfk+yHpuEyhr8quPFR59w9eQZ/eGOeTxiUdJqSIJrN/S7O079ERFh3XU4J1xcXQHCMMwqzyaGm/sD+9NIiJFx1jgupYREg6+05FV5h3UKW8QEtnKM08Sqrkkx0lQVcxgJsyYZEhVFtV5l60IMME4IRypfYbwlyswoompXVUdd12BrhanEMgVhlnkZc1VUKZapQ2jAZ63BGEcZey82ZaTW5Eb/0oX4zcftr2d82b3aBf4ovOXMViZ3MRlLbi/TOCCn4GY59/MuKFFrZsxS3tdarKuWODCVnYYe1ZWDTWO4XsHVKtA0Kgzu6IjBkNKsygSVUoBCmJiGiRCEqt3g+xOkyJQ7zgyJqtmwuXzCw05ZLE3XkqJOsDxOhuuLFYJwcXGJ8zU3795QeR2HSopEsSS7Yv9wz/3NO2IYabuOJANt29K0K477G0KKVJXL4GvEiCjfzys5gyxJoXVcjbWSzFQmEUSo6orKGuYQCNFSeaMeedaYW98z4fJMOMEwThqGiER8Mphau9YkJzeSJpzELHGiRlWJIaKJY0IyUeCxMZKJG5o127KO6bzG5PWCbxcJ+jWMTw0qZqNRZXJwouzmUs8lV0EKzboMhkEKGTEbZjZgMkxDng1LvvSsCnNWoBJovOFJJzxpRjYtNE2nQ/SsNks7AzZVGex2ChJHQ6TCt1um8UCQirbdktJEiCPbpx9xGgJI4LDbkwRCCLTrDSkZwhToTyOz3QOQxFI3DVGE+/4Irsa4mtv37xmO93S1o643WN9wOvZcXl5T1w1z7fHiMFhCmGm6mmaccBXUTjhFrew0TuUyCIZx0omS3qGJRUy0q0q716zBeqN1ZxLTMONspe5AhHkeNQL3HWNWTDU45vmEcytNDOKsgunuAHmGnBbOFBA2S5eiEkSKE1t6cXNRweX1W1rFMuxmOR9s3+b/vj3hIKfb2XisKY1AX69qqE68mpGRkgULFCl9HhmedTnWO0++KfGltU4/B+3X+HBjeNoOtHWkatb4ZoPxDTr5ZsRWne7CFJmw+OQQU+OmRIiBfhTai4+I8wkRsM5h2DENJ+qqVtUnK6w2F3SbDuNqRALjPNOsPfvdPYfTmKlaQt1ekJLhdDrgHFxdrOkai3M1h8OBpq25ePIcawLToBOAvFPdvWkemYPgvPAwCNiaulLxcFvVMIK1iconnBO89fTDTIiJy3WDGCWWGqf3yZpICDO+brSJ3VlSmJE0EWJiPw1sNhusqYnR5GmhCazF2JqEXZSlYjpXnRZmijXEpJm6GuLjafKl1nxOLgq/VHh0XP+mxqdgYqZEZbKgya62YC96wsrX5ngZh2bA+cOLVIZ3BaBW5fmUhYNKWSOJqmKtm4pNA0+b/197f/YjSZaleWK/u4mILmbm7rHm1rV091QVu2fIJgESIEiAL+QDCb7wif8vgXnidJOYmR6yuro6l8iMCPdwW1VVRO52+HCOqEWBRGQyAoN+SQMSGfAINzNVvXLuOd/5lsLtWBnHvXriDUpNaopsWg/iDGcU8ImQVJw0HRRo3slESIn55T3LRbi83NNEQ2Q6gRAG9vvA/nhLGjVZaS2N42EkxsjT43e0vjBMB8bDHc9PJ86XR/bHG97dvuX2OBKCbYHKyqdf/lxDXGrBh0Qad7RWESk8PC88noQxeA67yBQgeccwJJobcK4yRI93inGOYyAE5eh5NzGMe5b1TK2LCbMirjdKXlQtJokh7lTk7wt5vTBfToRwSxJFDWpthLLih2LDqbOZUknDrTXz1wsbiMeG2m4BMHpLWRvmXo+YYQ3fOz0/4fBdV1w+ErwjON04dJwKgq1P2fA/ufaC3n7d192ec0K1faWDq9CoG87knTAkz+d3Oz5/e+B25xlCw9GJMRHSANJoVeOd3NUe12CC6BVzaiuEThx3NCpxFyh5Ydq/5TJfcOlAGDJhnVmXMyl50nTD3dvPeH58z7yoQ8O02+ODkItQe0P8Su1P9F6ZxgOH3Z6b45HDcUSA58eP3Lx9y+5wRNAr/ebtZ6yXWb1Tyqsz6Zgc+yngemUc9lpVeqS3wpRewXePsJ8GWi7UuuLjDYd45PTyQi0QXNVeWSrSnVLAemaLOJ12B3pblS6fV2KKSrrtlVYzrlZc3PrNaw1g21Zpv6fOXt+fYl+B5++BL3LFRl7//I/cu388+M+rNiA4JZJWEeSK0yXj4Ol17OlEj5kMbr2denxtoKMTIXi9ijdbtRQ8tzvP5zeRT46BwzEwTHv8MJHSgEPo5UKZn+m16QeTBlXqi+kgnYPQIHbb8nXlr4UEvl6pPkLi9u0XBOdZlpWbuzfs735GGEbev/+anDP7XeR4e0fNF+LuQJAAPZOXs8oxD5G7N7e8/eQdUHi+fyQONwy7A+NhTwoeplF5gyEThxHpZ/MSFMMPHVN0pCiEmJhnHdbGMbEuGNAMQwhMKVqwXmY6vmFZO8t8Qq0zNOJApOPShPcDvWSWnJkGNRjHQWuFnBeGvkdcBJeuupxWlUbVr4MF195u6+GdvIr6w/eA5O2Mbd6KG7NFC8xPOnym5OpZmQsEmhig3P0rWQD7hb3tadGpVfcb7QpQumtlVBAzCAy+8+kevjzCcZyJ3dFKoA0TXqwK1JU8nymXM72rHNKHYE1uIMZ4TT+P4mml0RrkXK7daV6y0r99I4xHDm+EIc/M85nL6YH7/+Ge+w8fOOx33L29Y9zdsC4nctE10XHnycuKiPDzL7/gy599zjxfWNeVMB44HN8wTTulg4mGMte8QocQRwWPm8bCJq+vezeq33RMkfJSGbxqNhbnqBY5DzrxCpWyzuwOb0nDnrwseIcK1tOgsRCt0VpGelUNcO34EEhbm9OFPM/EacalFTfoiqxtLmPWSim593supV6UUGIQhSl/2cTmpX3foeJPg1n+hMMnVEse7IbdifveVYr2gmEbs527NqRiVhi9X50/0PPi0H4i4HEcYuddODH1gpcbfLojTQfVPYhQc2adT6znZ1rRqyMF60d81JbFNCGBCekXnNfIA8HpnpZMiANh2DO6wLxUXA+4uGeYjlweH+mlEs3o++7NJ6ZV1vCYWjJvbm/44mc/4/buE96+e8vDx4/Mc+b201/y5q1aY+TlrLBHgF4rl/OJ++++ZTzc8ObNLXcf74m+8uYI+9R1PxsCVYSSK0OEGNXZoJv5Y++dNES6TQTrfCLGg4H0SjzINROjGparpkI/n2aDREBXdyHqzrp3tfqIpqHWIdYs6lA9BoLunXEEs6y7Gguh8kq2gBiBxma7IVcv5590+LSiOYT4OnS4dnVK357M14PnoBcV9fSOhKTTkON75ILtuoWbCT6dVnY8IQVqGEnHRBwGRBp1XcnrynJ5pi4ntRQLTiuKjwxxVMtYNjbtCk4HnBAScTiwzMo8rk3zNyCQL/fk5cRuioQUmKYdeX1ivzsQomd3PJKGHd++/wYBoqnPwONeTtcV1nB4w/5wi+8r5+f3CJ67N59Q66o+KnHH4fYNrTVS8PzqiyPrEvBOzSC3G0PJr5WUHNEq4Wra4yaVIN5kqJ5WCjF24rCj5lnVbq0zLyvj6LeOWvNGBjWa9MFRSyOGBjHBcIC0p7uo16hXGWVvnWuQhp0dt61XDcHwBpd1p2Koq/XG9wgs18v4p1674iJijkwbN3+bVq8SuY23Lw2kmcG5hS15W6sZB0wDiSO3k+PL3cxBHpFyIbtECJm4zsR1pfVGzplaiz6l406TFJ0j1ww5Eoej0qqc/hx8olMQHPubT7jMZ3VOylUpTtORS/lIc55OwMcR5yNpmnCnZ0JKTHs9MI/3H7lcKrv9nrJccD7SysLjMnPz9h03d58BHVeeeLz/SNodONx8xuX8zOOHr1jXC955Su2cTifOAe72A9Rn1YuIoxPJtamzU69MKRDNHmTJGFUsIjQTmHuST9Q8681g+KYLCSednDMpDcSgoH+TbSXqlBgbEr17HSDTjh729KZXrB7CYPQ43Y+LD0hrStnfcMag69SqtzPd6/f/vnSzGebyw1HPf+J6Tb+n05A3F3BmbbtR6bUXaCBVoRljQ0qvOMvZ9R5uDyO3x5FdhF2/sOsPuL7oFRkSKURwQinZrhXtt1xIShqoRVd2TXG4Lp397acKwfhALwURYRiPrMtCbwUfNFpLK9iEiMYiBBdwPuHSHpbMfn/g6fGBcfcJ4Hh6fGCeXzjsjkyDx/uOtKgZFE04HEbW+ZnzZSHEiRASp6dvyesMOL1Om+Yf3N3d0VrhfHnAd49zEUEoBXxwzLmSvJgXcqcWzctV27Oo0EbQ6uRbA1fUjHELShSUUyjOUsw945DAKY63LAUXVKLptCeAuijB1Gtvvemse7MAl160d+9iPoLKWPbdWie/rU/1mFy9FdFBQ74HUP+owyd0Wiu2Eus4CWwa8s28Rn+gvP4g2VwADPOxzNqff3rDP/vijl1qlNM9+fnRNg7KoB2HqFpVcdbPJTXDduW6MqvziV6zuRgoc0Vu3qmWIys9KYREqytlveBdoImZMBpy75xT/bAPCJHgI7kU9refkos24L13muXW9loQGm/fvgXnOZ8vzPOFDx++YTDoguhZl8w6X0i7G6abkZIXfF70d6iFmDwp3FGWTluh9UyMepPk0plSUJ8TJyx5u5K95r1V7SOV79hoBVwYqVVfr3fqNuqC/55ViW6XQhwIcdQBbC2EuMKhG5TSbE/r7ObUCojoPdVbM+mDYHgQrRp+55V8uhGHg/fq0dyVjPDHWMx/9PABiDSjPXkczXoqZZfof9DYBD9q1+BovRFCwDnPYT/wF1+84ZefH9knYT19R53fQ71Qa9OJVDziOq2caWskTEdinMwNC3LOqr+9PCMdDoeJYTjgXKPlMzWOeB/p3kL01gtxSLQmlLJYgvmmpq/XYUZ8JA4jwQllvXC8e8f5fCGON9y++5T37z/go+aWnZ+f+fTnf8m4e0OtKzHu1UUhQEyBslw4vvkCfOTy8kgthRBVvbYb9vSW6VGI/o7CiRDUWu351DgtlTE6plErbC6NGM3ruFUDgMHHSDX/YOkd/ESplXEcSEMwgyWDgMOIjxEfAiFFNnfRVipleSFORyQc6DTt63tH+rZ1QtMAvCcYNuu9NtPdtB402GxPrrIIp9eyiJgj2U8BmeX7mw2zcXAq39sCg70UHcmdg+bpZvKz2498+vaWn396w9vjQCRzfvxIfnlPzSvdRX3SwkAMAy54pDdaKyYNXKl5ZZ5PvDx9pMxGW4+ekBIuqJBJWiWEcCU4tJrxScXOpbzov9t0pulA8JEYE45OLws+7dkfb3l5fiRFTRM/vzxyfPsFw/QbSmnsxglpmeXyRBp37PYTjgIuIK2T28LNmy/xYaTUjI8DKURzQyhUC4FupVDLyjZXlub45rFSSudmCuxGrfxLaewNm6MnSmmMwxbEovJSjUXQpIAmQoyRjYAaor9m1IWQFG2wa1UMZJZe6C2DS0BUUm/TbLmNpRmdoztnBcZuN1uvbhIKnF6vrosdmHBlNP0xdssPX7sbEQDYyKJ+Y6HQET3+xnpw5lAvvHtz4FdfvOOzNwdD8htlmVnOD5blFiFEnERCcBZCp6B0iAMhjQB61daqwudJr0BlDinl3IdB4Rav24DcKs4nhmHgcn4ippGWV1rVHbBIwwU1VIxxoNaFXiCMO2J4sVWi43K6cLy74/btp9x/9wEXgtLsfSAvFy7nE3d3N3hRDcmbz39B8Inz6YllWVmWWZ2yasYHr2aWrtFbVX8b6TRxfPek2Rw3k7DbKWO5Nm36m0kTNlep2juDeLpoD4jXPS8u0Bp497raEsEMGsXAE9PZOquaAlILvq2QdraVVw/ErhZWV1jNYQ5Um4OpDZz6c/QP3LZi23r/jaTwU1yqtpPtvTecyBFjZIgRvwmYRXO8qrkRHKao1e52YIyVui76VJVFbR0I2nC7AdyCQ/UFeraDKtDiaBZi6tw+7A70S6f3QuuV2gZc2NFrUa1sGlXQ0xoxjazzCyEkXIjMp0eFXdJIaWJXEcSUcBSW+cJ6uWgKeW8M0XP/9EDOC9O4Z5p2BO8pJsMEKPnM82Ph3aef8e6znzGME88fv6HWTqvaa13OH/EuknvXLY3TgUwarBmeT5XnS2VMwnHnGSMoS0g4jJHeKk6aejNHf42M77beDDFR26uhZIqBIWnwIC4ovjeMhBCBoNEJMeKiJlyWmpl6UdNxcTQJtKqQ2CY0whakzSZgb+F+iFw3t06+R7C7VrrtOP8w1vdHpJOOm31kNw4cpoHdlBiHxBCDUaU7YoHLYhPRNEaOe2/SO3MvlY701bYgmsPWW6HWfLUMi3YonU8a1LJcFJvzerX1VrVfKQveD7SW6WFg2L/RwahqcnhezuAcMU3kvCB0pc4PO5bzE9Irw6Bkg1a66l+lIa3iENK4B3nk9HxvKeuB2ir74y2Xeebm9pZBHF98/pbjzS3Bey4vH5Ry5AZd5eXCuLul1xWnulFaF9ZVuLwUeiuU7ui9chxhGrdrSvfh+93A6VR1pyzhurJS0DeQM4wenEVLODq1d8Y04AflRXb02k5BSbXOO1sWoMRd7/FeSEGIMeCLejo36/104DF4zJjlNo3Y0sBd8zp0WlH2+iaxCO6PM/p+8PDF4Pn5p3fcHkYOU2KImvfgpLFxw6QWq34KZ6TxSBrU8byLEGPSqudE+wenfiIlZ22AW0O8ObojtLrQ1oHWmiGFaG8ilVoyl/MLw5B0hZRuCcNohzoCFrdkH4r0RgiRaX/U7LRe8QgxJcIwUfOWiKnXSskz03RH8oHT5Z40TdSyUGpjd3PH5fwIBOYlc7p0hl0HV2kNxI9I60g94Z3gxz3VRyRn1mWmtcLLy4lSM8dpIF+0j7vdK+Au23aoFQIqtrK4DILfglaUSCGiPD8fhN43WEeIyTEOg4n2UayvN9sMDQwpEaJqdrttoXpXE8wY1PUKcYrh2cFzdvC2OFQN6rHPS6y62QIiOKGaV5BscRY/9vClGPj83YH9lEiu4fqqiqvekLbQSoZelUYNuPENYTwq7ak1o1w38E7//HIBM+KWrlw0LL8thEDrhXp+JHbN6yhF4+FrVVZHk6Zu7sMOXCROtxoJ2gobV1AxPW9VC9Jw4JIfkJZ1+Ig6BcegaZmI/p4hTYgU8vLM8c0bnh++JQXNDOkhIV3jTdc1A56Hh0eGMbHbDcSwo0sGdMKNw2i9X1ZzctHXPI2w3+0opSB03t1EEKs2bWN7N5LTZPHW9HDo0OAptSE+KZbXwaMYaPD6e5baCEGdrLwNYF2UnJvzjCOS/HR1nNDdrFbNDhobFoJui/RkaSUzWwxl0m2WJq9e0Zrdi9khfw/v+yMrth88fCE4DlMkkJEy09tC7xkv6pLUm34Q3kVCOuB3bwnjBNLovVLyQkiJcTiQjrdMhztl4fbG+fkjp4cPtLKgnnwqQRTfIC40HHm9aEVoQm2NVhai0cV7VxYHYsB36LRZhUlSOsuyqtt7V5wvjjuolSqeKd7Q6oVWhZQmWuusq6rV8nwijDfEIRGHCe9n6lporbG/ecvj+9/TJfBwfqTVhc+//Bk3N3tC8ISwo/rEfD4zn56vh2570DaIx7nI7U2i18x3D4WbvSN0YRrUqjYExTH1wVOAP4TEUrMxeAwQRqu7a9bDOqh1NR8bHWDEvJLHNChOZ7bD3g3X/bvieg7ihEfoZWYzvb/KW61IqPcyrwcT/W+ctRbb1bxR53704VOG/EwtM1KX6xTUnUN8whnhMMSRMN1ATKqel6rclqiL/f3xhmEY8SFQ1hVxnsPbn/HJz1fy8szpu9/Qsu4yBU8uttJpalkB4H3CO0+TrsnhstG1dNJqtV0Zuet6sT1up7UXfBzxYaCUJ9KwV3H085lShTjscOsMrdBKUXJALrR8po+34Dr58sQ6BvaHO+K0o+bKzc0tt3fvGHd7nc57o9bK+XJinU/gOsGM1LEqVKqoSXkKSG98+1AoBXbdGXXek0tnGBxj0VujNKE3NQiKUbUb2E0T7AD01mmhkWJUFlKtuhLpnTROChY7GKYdW7C2/k/orUAQOpHGRKfQuj7seB1UtvixgO1/r/t89LA5TzWjIGewnAOzzvuRhw8RalmhZq0wXuGN7Xtu12UIkR4mutt8lZuu1nplmt4w7XaEOCI4LvcfeL5/YLr9gtt3nxKnxHhz5v4P/4DzE3H/Rsf7clL/lWnQN7sb2u41KVv7OgNWpdNqppWVvM64oAd9vZyVxp4O+vuGUddrsw4zYRjJ80prarIobVbhesu43lUf4oQYPfPlwjFn9sdPyctJ8buqZowIlDyrN8oyk9LAMDpayeS10LsjF12PTdPIZc48nwrLKmpBmwIpaX+1KQFjcFQ8rTly6SSv73NtDTW19zb1KgOl1aaO/mJ4oFfNcW+VIY1Ag57xfq94reiNglRVHtZCLi9sWmU9XfqQiNPNVuvOMMBmTBZeV3ybf4sdnY0B86MPnwDiBlxSJrMPgZgmQjQXIq9kgl4LTbz2OzHQCjTRp09Q0x3XPOJHuj/SwsL7b98jYWA5P5GGI+nwGV/9+h/wwwWpmd1ux+54g0sjOa9qBev1Z3g2Gr6SM1srlFKodcOdPPlyohWNJw1xIOeVEBK1N+bLA857tSTrQhoGgou0uiC9KkHTrjBVz3nO8wvr5QUXBp4f7nF00jSR14zIyt27L6l5YRgndtNEyQu5F1rz1KY45m53w/Ppwv3jTIoB52E3BqYBYnAatiMN72FIXM00S+v42sGb64Nd5WJAr2axuWsWSm1qqO59oFYlG6Q04Zw+qLrD1VgtRJ21ktd9b5MINHyI/2Q/4bwnomnkTYQiDk2RV7KVYsxiQ4jBdD9lt+vwpOmWFCMhDjolxsFE4lUhg/Ws7kZxIo4Tnk4vQivZoJZnHu+/AxcJww1xPNDdjrXNfPj2W2VDPL/Qlgvvv/0a4QMpwhc//+d88vaX7G/vWNcz9MbTw3dGQSq0Vmit0nrTa8UIjc4pkcDHQa28EN2zes9adWNS80yIE71VwjAw7T/ncvrIvK4M087w/cb89J5SBWkrQ4Dl/EAa9zjnqCUz+Qkf4HD4BE/l5uZAionL5cJyOdHK5mLlkRB5eVl4eD6Tgq6wYnRMk9Lqe4dc1NfOoSniVd2V6F0zSBTWV+1LF9tAmLTVBx3yYoqI6C58GEacH2h1ZRgHvEVOSFdUoWahjyPUjGMgeM+ayxW8NhhAh4vgcKJBhfrztfYCiOvXJcErzV5+2sDhvGfY3SlNx/K9lEiYqVmb6FKEMNyxOxzwrpMvz5Riq7HzGQmJ88sTafeOz3/5uU6p446bN5+wzGcEz+V8z7f/6b/ld7/5B0KYuLm5Ie0/5/DpSjpEhuktd5/8gnVZeHr8jtgLeXkhL2em3UExxmDiJhHbOxuGVzPBQylFneZ9ZJj2bEnpu5s7pBcul2d66+z2R5Z5wcWIrBfyvOpqzgfKqhhicIIftMFvpVFyIR32tAqX8xN5vege3D6EtXRybjxdFgDGlFhLYRoiuynQRKhNzX4UwnCEACEaqNyFvsUX2MChLgLuyjbePvxam+YNiwrSUxpxUml5Iez21oOqzFRap5aFVlcqOzS6ylO62WEY5OPQQy52INUQiuu2Y9vt6vTcrpOu+yOl74/kcOgaym3+HZYm2GqhlkZvDh+P3Lx5x24XWU8PLOuJfJlpPZBLZj2fqDLw6We/4u7TL6kN3GXGh0StncvlmT/87j/w+FGrysN3H/FpItfOZZ5JL5r4+PT13+tqTTLB7677RgAfVMPbymoqLk9eFx2G0kAXuDz/gV4X0u6WGAe7QiMhTlyeH1nOz0q/6grQ7g83SMnUUmmtU1rR6lMH2ysHWm3UXlmXldPpGScaQzqNow41a1bfu1JoDWqpjEnJtF10G+ScY8nqPtC74KI5QTiIwfoqr3idc1GNuvmn/ZQBJ8TgdSDoHafCX3orGgzjQBNE1bdP/az1uu5tZUyZmcQmXDfvYjYPFumd0ru2W0GXCCrd3S7ZrqwWXYHAHz16f8LAUWrF9051mqHbe6XVcsXxjndvmaaRsp5YTs+cT49cLgUt0I7H+3vC9I5h2rEsBfHRUHDtGdW6ohP37/ji818xTL9luVx4eviAjzvWZcHJhfff/pY2P/Hzv/wXpHFCeqeuM6UWUtSrJo4HugjLyz3eJcQnulTy+RHvHfubT6m1KKxTlIeXl5nlcmYYduQ1U7sCym0cSMOe9PJM64VlPrPmTq2NVtRzeM7PhDQwjZOSZIfRet6V+XLWQ0VAuiPnVeMTQiIXU8gNkVw0dLD1rFib2ZIFp5R6ZwlA3QRZKpt5lStsbPLeO8OQ6L2Ta2Ya9mzREPQGIahTV4r00qnrquByCkS/MAydGD1LuYpvEanblk1JB60gMepeHcP56Ncbx+FoXgeZbq5kP/rwiQi1FFwI6nrUGr0rhtca7PZ79oc9QmW5XLjMMy9Pz5zOC2+++At87zzef4QBvvrNf+Tb9/8O/I43n7xjtx+hF5bTA612dref6BAgAw8Pv+NyOlGzLufv3r5jd/MJH5++49uvfsPnv/xr4jByeXnPdPOOdHNHCAM9Oto642KiNzEcUp+/6eZzar7QaiXnC2k8KLQyPxHiwOHuC8qHPxA87I5vKcuetZ641JUQ99x99gWtd+bzM+eXkxJSfWM9n8jLwpB3hDTg8PS26gfl1OpsWdUla0wR5x1l1Ww0XCSvK9PkbZuhGozNPCl4A3SNXaAiPX/dOmzRVALXmKyYAqU2em3mQwN+nJRubycpTTvqeqHVTK8reRWG6cAu7ThhiVG9X2uXYnsVqCDKPupODAHRFYMg+nCIo3TdRoVh/GmHr9UCbat63dgNgvOJ/c0twzQwP5/YpJJxOHA7vWFdFu4/fMN3337FafnAy+mR3/3jbyBMTLef8Vd/8y959+4TVXX5CCTieGC8+wz58C3NNSQkSheWeWE6fMLd53/FfL7n+fGeEDQvVwcNW2M7nchDHOg9E3zQgOYtflOE88t3lHUxi4zCbjdRioK1cbdjnTunc+PjN9+Qy8p5LvTywnT4JePNOw6f/iW3uWq43/rA6fEj3334jktdEZfUwcsJKTlSjMZILkSvQHGzCXaITgNbeqVWT6kwJLsqxWzejIXizGRpOw7eudd1nNjhky10T19rySsp7rVfbA2XEs5HIypAGCZ6XYz0q2SJcfclQxJyUy6Md96uUbuCSeZChtm46aalb6zqTdPjdMDq3xOb/f9/+BBqzdpwXpfGSiT1PjFO03Wh70qjNE/1O1pr3H/3FWvOOp3RmW7e8skv4eXpka//03/Pms/8zd/9LWW9MJ/P+BE+Pjzx8vJEro7puKd1Ia8ra4yk8Y63X/5z3Mcdl5f3LL//Pb/466OJWtQe9jriG06Vl5Opv/b0srCcPhJDxO1uWC5P3L77QjcQOObziZeHJ7oE5tPXfP27f+TLf/a37HdQfWd+ufDdhzPTfoePgRh3pOkdP/uLT7l9944P33zN+bJSRQcKt+mXux604DzRRU7LwhDBuU7O1QBdZwhIs02Beva5AK43W3WZSVMTxJmj67W/QgF/3PUqdmjlj2GgS9UrFHXvrxjzpRZqgWGnIqfYZgKGZvhXAN8FJZNKf71ihdfgv21Nt0E/zjvCn+C4/Ec1HK3272VmqEOBCIQYLZlIgUedRD/y21//o/rVne85PX1kXhqHt7/kcPcl0+0v+Pj+Pc8fP/Ly3dd8+/WeWhrffbxnXivn8wt/+O1/4rObHXf/+l+zO95RWuXldCLt7pgON+xu3nF+es/L6ZHw1Ve8+/KJ4+1bqwmaUaEO74UuzSJBoVW9asVPSFk4vj3alVZootPwMA6IJJ7vv0KkcXr6yN0nnzF98SWnpyeefv/3XJ4cb959wfQmUFsmtz13n/4lw/5T7r/7muenJ0pekaKe0mlIGlffO6WuBK9L/FK7+q5sNiPOaTCgd6xNCKIHFq/unyIok8jpjaTu9N0Omg4PsvVh0hFvTBjZcnJhI4JK17WoNnZORUJ4pGZS3OEW3XK4LUpKzPDJb5bIjaBMYzuI1tv1diWZBu+uB/jHHT6MzAjXF68aB+X+19aIURko61pY1kJeZ86rNvnnp++obebp4YFfktjtd/TWdEH//B2//91vuL9/4rv7e2rOlJY5TAOf/+JXHD//Cw5vf0avmbzMzMuKdyfKstB9olZ4fnrk13//70guMw2dXlZKuWhEV4WQbonpDnGqP25dLJhkpJQVHyJxvOX88sDdp39Bmvb84e//HafHe7oIbz75lJu3P+NyOZHXs+b6uh0u7hj3d4QhcXl54uH+nl5Wkh8YY2S5zCr+iYFeNTY+Bo/zTXetreO8HpRgmgkdGr29vyqnJDQlHBie17vufTfpJmwLfAsMFKj1dV+7TcROvOl3defrnTmJOV6rl12Zwas6zbPtkF9rq5471XHjX8VDza5mZTuhUJFXl9offfhEhNL76w61N8TAw1YrrVZ69MzzwtPzC+d55enpxPPzA5ene14ev2OeZ5Z24t0v/gt++c9+RfQNbxZqf//3f8/z6YJzejWlAPvdnuHwhpIL83lh2h9IY+ByeuT+/e853t7i0i1+OHG5nPjum99Cm/ny8wOjr+ASpRby/MK6FtLxZ0xvfsF6eSZNR+UB9kwaJpyLPN//nuXlO0oV1nXm6f4bSl60YqbEfH7kw+9/w/P9e86XlfK88PR05g+/+w3HmzvG/UE1I30Go5pNg+MyN9a1GWQSqN5pNXGewTuGpPEFpVZL73mlpW9Leu815zj6V0Oe1rhOkdeqY4e3mRHQOEQ9FiZ1EKersd46Ubn4xJCoRchlJeSVwQUF76Oz203hH81W61cfPjGheWud3vT1euMHyiYcbwWaR+QnJBAJUBv2pGzu47q+Cl2X5JfzzIf37/nt777i97/9R+7fv6fXzOnlzPvv7nl6OiEu8T/82/8b55f/AtcLfghI1cNTWidFz3nJ3B0Gvn3/nhAOhDCqoq3f0nunLCfK+sLzQyGkaCncMK+F+6cn5pd7fvbFW8r6AbxjviyUvNA/vqf9x/+Gm8/+hk9/9ZZezwzDHp/2zOePjONIOdxw/5/+Pc/376mt0zqM0wHvEiVnepnpogfp5mZQ4yLfmV/e8/Bdx8dB3eLHgDKzNbQwV61EGsuAER86YwyIE2LQnN0qmyvAFqzclRvo1dnraoOI2mustscV8SbW2rxT1D9Zr15vBFVsBdl0nRhNfoCQ0kjrgVYWenBAI3qdbOt6UQWhSVj1KvXmneioRQMAvcckDUHdKXrDu6RA9k+h0YtAaaLgZNdMXNc9zjXSIORcqPnEb/7hv+P/8X//dzw+fOTN3XRlTGjKuGPOK9/+/j/R+zNrgc8++Zzni6rth6hYkXedUhsxDSTX+O6rfyS5ikfhnVYzIUXOj9/hfGQYHd15ljUzHW54ePoWEL78+RfU5YmX50fyslJKZr688O233xGmI7dv3yA9GswgxOkN64c/EMcj+zeep6cn8pqJQyVfHsjrmXH07PcjznnitGddCmk3Me5GlvyEQ1PTl7XqzrY1c/VSlUv0aiXrvRlui/23AXa7oDR558H6Pyf1Cp+kGNkSLtWwx1KcRKvcdigx3qRlUujivzWGQQxi0Zur1EIcBluTOr2FgkYkOCLRq1tYzlwlEt45I5CYc6oRSwOKHXozK3LOfrYL8D2LvB99+JZVdRMhBItZaPoG+awbCJ95fvgd3337Oy7zSoxvmUZH64XdOFwZy7VeuL9XCOH88szz6YXcjKVi0svehcNu4njzFs/Cy8O3EHTCG8aJNI7MuVDWR8Y0MIwDoWVOz8/QGl/9+u9Jw55PPnvHzdvMt1/9hsv5wpwzeb7nH/7b/5r/8n/1vyeMifl0z9PjB3yYOL88Ml9mzqcLy1KY107cO/a3X3IkM58e6P1rWhdeTmfoncUJ4zhye3fg6enMfrcjBahFpaClZPMs3Nz4N5jEAAPbItRWGYZBbxWa6l6dwwe5EjWjV/MlTI7Ya8V1zT/rrTL217Sf1riaiqt/tmby9l7p4q8bKu+90undBmR7alnxQ2Uc1dV+XtYrfiho1d76xKtLBUrgBQx/1Dq5BQf96MPXRTgtC9479QsxNNs7R+qdXBsxOabDO3xInF++ZtrtmEbdnbrg2U8D+8NIbY1zUap3DMLd3ZHb3jnPs9rYOr16khfKunDYJ87nZ7769jvmXIlxYJr25PXE7SFymAK3t3eM46CMkf1ILZnf//YfielvmXbvSNN3TAIu7whh4OH9b3l6euLtZzueH35PGm55/vgVD1//msv5wvPTM10SIY08P95zvlz47PNPlS7VHPOlkDzsbvYEP+hhiiN3NwrGD2lg3CWWS6Y1iHSG6Jhzo4kjxVeipfe6J6tNcLURvddVqtdVFaJXXWvqUhrMCFIESpWr2U9rDekmI+36z7U1Bqdin1IrISW8V/aPMl0qPqqjQQjpagwgMlBbQ0jgBrwrKigyDiDC1f7xSiSw16NEAuwhssr1UzYcvXdq0UTt1jZOvrCbEjfHA/tRDRvF7VjnmXKZ6a2Sy6qZXw7SbtC/3x0ud6UR7SKX05nLeWUaB3oPlALRBQVmy4UuBz4+PvLbb+7BOQ67HSlGHJ0p7Qniqbnw5s0baB3vDpwvJ7755iO1Cf/yX/0b4nRL6g7xmWF3S2u/5cNX/y9cv2j6T22cnu51Wl/OlDwTxwOffP4ZKXpOj/owxfFIQ4eA3RQt8PmWdTmTV9VHKL8vM00aj1WrfiApCDII51WRg2gWI3pd6ftcSyNEZ5lo7pokEWNgS1fyOEIaabWSosZmrVVT3nsTiFbdelIFm7khdFFUYggqYNeh1ZlfjA0RCCKFmBquZ7wbCR5VwzVHdyr40hMYbOgUfVBs64ItHwQxorX7aZQqEWUyiOi7VFvREToEWu9c5oUxKbVKatHyLoX7+ws5N0ajzIvxzbx37A6DNuXRMU2Jy6VQOwzDxP5wZIwjwSfyeuH5fKEjTDGCVOZlZm9XeSRyfn6m94XPPv0MXs6cXk48nzriAy9PjwgRnw7cHjRzt5ZGnp+4PP2Bkgtr+cByejANSOPm7lahER+Zjp+R88zjx2/567/7N7w7PzNfTkyDhsXMMuDDQAxCtYriRAU93utV18yrTNDBQc/INrnqvwuGnYWoDvugVcWzYWv6HRClr8c0MQjUurABvLU2ZPRANU6jhuW4oAeg10YL+mDTK97v2bS3Dmil0Ppi37ujxFMVW3W/abKD/d3tGtZtzLZXvtolOzFCgv3eP/D1w/uP7QBitGo0UVvwPJ5Wns8ruFEF0WXm3bs9Y1y5PH+k5QtlXWitaez6fGGdX/BBiY37/S1f/vxLPv/8jt3oqT2yf/ML3n7xC9WWGk1KJ8jKkmdEGq1VLvOFp5dnljxT1xd6W3Cu8/B8obmJ/ed/x/TmCzqB1jyNUbHJOrPOM95H1mXm8eNX5POJ8+mRMN0QhiNraTze3zO/PLGb9uT5wr//f/43HO9+zmc//2t2t5+wv7mjy8L59IigbGRnHtO1ipoeDZE0JFVz4TVWVLyabNqWSMwF3ptFhYbudfDaP7kQLE1Js4bVoLExDBPjOJh9SqdVk352lUsqw7pdj0cwcoG6iyVLLFJ8zoXEsLsDH2ltVY+Wmmn5gnNd8cPeTJCldiPSK7U2au0aq9UgN0cV2860dj2QP/T1x3cgTq9f77xiX0H7At2tRmLUcOToO3/5Fz/nV7+44Xe/c9zfX3h//0Lte8b9TrW+0eN75+bmhmWJ3Ly543g8EsI3fPv+ha9/91vWT94oo7Z2ljUzrwvBOWIIjENCcOQK+E5ySiNKKeFd0GGknfnw3Qu3N3tEglKQWlDF2jjxeP81bz7/laZOPmfOzy+KndWFZc2UvFLyynz+yM2bG0IaOD++56v/8ILzCZHK7nDHsHvD88MHzs+PHG9uiEMkLzO1ZqRoVu2GkWwLhlKV9Fm7bRqCxwnXJr63QoqJ4AIiAec1jA+0Gra2sVgK4zAwxZWyqKvVukIKjuj0+9TS6WlEgoBL+DDqmfee3ht5XYzxIky7WxNlra+uVE59+wLQfKP7blbGOmT01sllVtPQONh6UHAuaD38IxT6P+nw6RrHtK4h0JtaYgyDrte6wKdf/oy/+6/+Fb/42Vt6nUnpAScLrQqPlxPD7sjx9i3jvpoxkHDYj3gC0+1bWl1Y5pXf/+GRv7//QIq661yLEkGHweNcYMt4W0uDKIyjt/Ff7XqHIXJ6PPHf/dv/mvz4K375s7c4D5eXR5wU0nDLfHri8f3XuJj4+quveD6pGGkYAzEGUoqkUfAx0SUaaDsibSWlqLQwEUIcOdx8Qq+qy90djky7PXm5aOJ5qdRm1UYc0QuX1nEtMDhHsk2F+f7gu9Caw3mIyV/TgPRQqIwVL6xZH0bnHPtJJZq9d3Lu+MHjcaSkiGGvDjcMOArejXgXCDEi3UMXWq846ZQ0EIeJ4G095iIuiKE2nYB6810lkyah2MLme+/QK8F5FXxJVHte+eHUyR++dp2W0OCDfsBGp4ohEkKg1MLlMvPZF3/J//H/8n/l53/1t3QfKa0T0kj0jjE51vnM5VIJozp+QkD8SJOASGI6vuH27ZG7uxHnOpclc8lZd5Xe07oCtnPuOhm3Zh4upunwau49JHUqfXr4hq9//xuW5UyrmdPTt6yXRz0YeeH+/X8EhF/+87/icEwcbwb2k+pUSinEYYcPI+fLWfXDNROnHWl3YH9zQ2uZaX8AUfVbSol1nYlxxzBOSpvXQkBtuluN5klTCsyLvo7gdYhrOEuFFFWBIQptoYeulqr99hDxLthVV4kxcNiPpOTV4FEUJI4ehuTVEMk5Uhz08GI32HiDTwd8nFTlJoKPI2G41SPhAt0nuh9UpegC0lZaW2k1U0tWAVaIpKgJSdHcZtURTK5U/h9/+MR6D68Hr9ZqYGhkzYXT+YV5nlXfMd6CH3i+LDyfM7lW5rUyTiO5zJxOj/Sq7qBxPNBJ5Np5fn5hzY5pd8ObtwfuDqOxaBxdInP1rEU1AzEOjNOeaQzEzSwoWjZH0wiG43HHUs48PD+T5xeW+YX59MjDx/fMl8cr6PzxD/+B/XjkL/76rzkeJpxz1AZPLyu5Dcw1kiu4MDHdfI4LNzg/sX/zM5rogdi/eQPR4YcdadgxLws+7onTHrxHUE/AZrSvIWyRA55L7pTuke60L5XAWm1y7Xo9izF1mu3Rl3kmDXvr4yO5ZsYxkqKlVrpIGtWLxnmv16FLagU3HUi7A+I0LCamZHSsiKDV1flBD4XFcfVuURVx0tfTjTDaivkWqpCJXo3OLwSpeIptOH7wdP0J167ztNpxzoTBrVPKqmN9XYh3N6QYmU+V+4dHvv7dH8hVNP+rCb5W7VdK5ull5tMv7gjjhO+N5+d7ep0pJZs6bmQYEjGuSENZHuhWIEZNcoyuEGJnGPSpwyVq1wdi2t+QhkqXxmWZdSCQzsvDe0qbudlPhKh76tZWnr77Cpe0Us0iPL2cebl0jreQRFhLhbXQW2XaHSF5+tqI6ch3H77hzWc/Z9q/Yz4/40UIQb2VQxgIbqW5RveWso6K27UKBgv/gzEFI6Fr75drI5aVKQSVNrIBuaizlOv4MNDbCnRcigzjQM4FH9XpIYZAI9Byw5eF0ho+7TncvNXgGKe72CBQ80lDZEIgtmRYooLdbIxm73F+xPvFeHuKM7q+7Y+3qV6ZRXSl2PufympptdFdMwato7ZMahERYYyew2FPqYUP79/z1a9/zelc2N9+RssZH5/VS855nDSeHp4YdzfEEEiD+g8/Pp+Y5wsinrzMrKtuO7ztNZNXGlf0nugbyRXSqLBBGiJ4z1o6pTRSHBjMEer2ptGkcv/hG2o+sdsZzgUMw444HSmlUS4vDOOBQ9c+K4YLSCFGDQKMw8TD4z3LfOaN/1KF3POJ8/mZLoH98Yac1YtaH5ZOZFAtSfCqoBPd4boIvjVNTuoaVRDNWaB27aGkd3KtpLYSXFRRkXc25Hnm+aT+yijdqJqLPuPIsq4M6BU8DKPJSQthtcTIENnffsowTJRlpdZM604DsdeTPpjDDZ0IXSn9ISiz2W/ePEa/ct6sUOSVRb05lW7kk802+UcdPkFZD8ob012dtE4KgWFIvDu+BYHz+cQ3X/+B+48P1Bq4ufucy/0HgvPMNePjgcNxZO0B7zsvL89477k5TtwdJ+py5rvHZx6eToroG9Vo8J7dFEkpXvvHFNSOw9kCHRHyckGc0MpCSgPTOJKisFxeKPmER72NQbM5HI4w7Dkcb3l+/siynPBhz83twM3Nje6YQ2BtmQDc3BxZl5WX7/6gMQ3BIa3z8viBVjPrutJFLePGaPZgZifmjKrivEolS9GV21b9Su0qS3S6DouGl/Wum40qcq00XtRdtZRMiIGaC9EHW6cFVcWtBec9pQjjpOlIZV24nJ5x/J5eGzfvviTtd7jguDx9oOWK96My10XbBWWrGJ2vFXrX/q23qmfBec39qLqH9iGYHkX3wM5vWN+PPHyIUHJBEHrPtJZxAtl5liXgHYxD4rD3vDy98P4P3xDGG3JpLGshDZ7zpQMaJ1XOCy9PT5Qyc3554fMvf8bxOLC7uWU4r2qi6PVJ242R25uJadQeMAaPo0MvOkUCm4lQGjxSG94XnDSGpC5W8+keetVKmSJqkqhTW8sL7G55+8nPOb888fxyomQhDnt2hyOtqRvT5fykLJ6g7XFeTrSQEHTgerj/7jqYOXGsQbg56jDUW7/axNaq2Rq1CT7oINHMD7k2wYy9jMDpwSXwntoy3nzde5MrwN+qmTn2hndRzdDRXq7WrJ6JBcY0KGNFRB+UyyMhOIb6jnF3q9qVy73CKPGG0tWISB9sh9Si68XecWHAidqKKJEhKXRTVkrL6pmTBjWiNH7hjz580jt5nY2Sk/UH2i5viIHHXkjBcXsc+f1vf8/p/oHD5yMfvv2aMCRcjFSBKSZ8iAx+xUnnPJ9odeXh4zd8vFflWVkb05gYkuO433E4TkhrxJAs4qqaDiPia9cVEpodK11hFsdoovWFvL5QayYGz27a6f5RLGfMa05cLYrqv/38V9y8WXi4/8D5dKFVFcsPZWU+P5vxZTAtKzTUJqOUSq0bpKKMvFUJbdwcJ9j0riZB1KTMSm3OBEQqywwS1W0AUQMWZ7KFItrrmSi7tmYaDWfTbqJ2HRl8CDTRyATvHTFZZCnKFNqiCpo0am+EvLAY68iFAR+TIRD+agCkDgSVZhpg8cmcIipOAjGoEF0MsvEhgKI4ig/2H4Za/uhud728qN0tr0qlLUWo98a6XHjIF779/a9Z5xfKR7h585ZeM08XdSKtJRMC/Jf/078hDBN/+Oprfv/7b3k5L+Qysxsif/WrO8b9gLSm1J40XWMFeivUDCklpRK1QMnq2OSo9PyC+D0+RGpZWU4POCk4hGEcGMajCo1EoxFq77QlE2Jh9TNL1rioTz77krefdJ4eHlnrzO74FumFdVnIRa/rXKo+9DFaL6b9Zu1CCpEUhMtSdSAKmrOry05vu3YDmEXNKFXgI+ZGIEiAMKqv8Voa61oZBs8wJGVjNyHFgeActRRiSuR1YYw7YoiAp+ZZD4dpbEF0knXQipps9kHsltF+1bsjlWS5bIATWi/a56GRrpq77K9aDSXBakiO88FwPR2fSmmUUn784YNOrxUxZoPzqisIG+sWxbAuLw+sjx9w0vnVP/uMD/f3fPPNR85zZr/f8Td/+1f8L/7n/5rD8R24yD//l5XT80ceHx9prXLYB9b5zMvLwuX8ojw1n0hJ/UJamZlbZhwmJSnUbLa565XlseYGMtPyjJTCMEAKAykNV1f2Vp0dVrV6y2UBz/WKnU9JM9R2ByYHtQVqPtB7oZZKaZngE701LrPGyA8WyldbZ7Fwl13wLDkT9zu2oOuOajZUbKN/Fr1TMQ8a2dqk05rQihDGQOyq9WimyfW2nZDetOrNZxqdGDzL5UyaBpwI0zBZD6ni8DQMiAu4oDSq3ru9d/JqeZxGA5Ff8z3cNliIel33Dp5K8IG8LiTx1t/pgdW2Jhj/sl6FXD/q8DkcKapg2TmzQRXL2XKCGHdsXc70Vvm7/9n/kv/N/+F/y//73/9b/uEffs00HfgXf/s/4bPPP7Xd4k5ljB6mz468+/QXCkaWmefHbxF5JESVF/bWaHmFkCirx/eVEIRh2pFXrwk6/cS8LHx8Vq+93SBIa0xO6erJvGWCVy+62jVERu0qXu0spFcdGHrlcvqoHsfDEReVSVOcZ0i2u21Nm2lgXdVw0gePFH1I9YrV/q51riozj0637lo1dGjaiKDihO4U4tDIBtXapuhYcwXRdO/uPK0bYygZAB4HoLNeZt1CeU8aovIAa2UV2B13eB+vIdubXgR0IeDSpNNprwoyO9TQ28UrZumcaH5eHGhl1UFImuF/CXD0ul7ZMj+JTIpTZo6i9RbX6UzsYpaquahDFGnHX/zNf8Xtm5/xb/7N/5p/9bd/h/gdPeyYL0+mr804i5xqZj/hQyQNt+wPC6UKaToieBUOne9pfqJGx3HyVvG0OpwuC108D88LT88zSy4M0XM7dm7fDEy7yQyxB1zQ6ColcwZwwjCYLEuUidvyjIQAEui18PzyB2IakTDhnQ0ILShFqVtORivkbAGD21Rru1znVBfcRanv3TzvYlQLM128qxK3SyOIPtB008v2jognBBusSiUm3UaE4JCuU21KUZnl0bNmdbv3XskBPYwM40QumfPzA/ubN3gJ9KZVyQ+RMIz44YgLO5w4vGjIo1TVfmADU+vFXldXxnWIBiwrxWqTVW7/QwT5KVALbJQfrX5KyXfAa9BHyZk0jnz2s1/y5a9+pWO6T/h0QFzU3qw1/YBrU4MZMVZuKbQmjPuJaXdDKQ0RrTCORnqz5zTPPD01DuOOdb1wOp359uOZ50vmMmfmJRv7JTLFxrtDYxonwnggWqyCTyOU1XpW1cEGWxv5TZ7oNZMMj1Yk15mXF4ZRD0ETbc6jd3QPvTu1n/VNMTgHzhyjwCCWrqJqwWJBLb7JowxlHSQ0g9ib/njbgOgErZBT9EIuWU1/vBplVmvytzVIGnSIatWiT11AljPShelwSy2ZPJ8ZpwMtz/QY6DXihhEXJj0KSrbBiWPDmF3f+H7tiueFMOJCoa6zqvBsKNT9f1QqPX+cXPBHoZa2UWMEthRxd93KCbTC8fYT/nf/p/8zn3z6KY4GaQcIdV2gzPpUi0c2m9racV1dLsW83WLaMU0Z70eqKFvluPuUu/UEOIbo2d8cefMmk/NCqSuncyV64eaYOI6Jw6RB0iEm80aeCGnShr7rkl56J4RoqjC1121dFWSIJgqJaVY3vCr6gVxOiB1A5zzea3OtS3Z9r0rZYh1Uz9y2SVeUMOow13nXKQ2C06oovduGR2yBYDy9pn54yg1slNoYh4BIUZgGcF51Fs6hVnbeUcoKrdEIlHmmCOymG0QqrVXioP0dzuHjAGFU+eNmCGAPRO+m072+Tn+d3EPaUUrWCu41M6SIQNJhTAvUTwKZNWjEGd9MfwlnajYzgRbVw077W90Viu4InVsVmOy652u14OKkT1HNqqbqHRccvTtcCqRxRwgTyTliTOwPA/5wpOPJOTOmRL7c8zf//Jd89u6O+4cTuRQ8avVVS8YRcVGn5S1Vcr28aDBer/TmrHnWLFkQmmiyZRchdGfu9wJEPTSuaAVoDXcVzahgxvtI7LqR8aGA2WVIF7phXd3MtDeakvUttAYpevCK/cXodUUnwroW1qwfttpW6PBHUsxPbXY14TMEzBBcw6RjVJDYeUfrap3hcQzDRKsrLQdaGrQ38wlxQbcWYjx4uvEA1au5ibYrG33eebUqKTmrb3bRocgHjw8B1w2X/CkDh34D9eTQjFzzvRNrmqUjVch5UTZszThUuaWPsOpHRbpOTK0gQZ0vO5VgebApDergFCfCsDO2hMILQ9wz7G65nF8o5wdcTaS3P8PHI7v9mZw1VPn0fE/AgR/09/MDw7BnXXWyjd6YH16xN0QNF4lePYeb/k6OqA+FjzatbRki6oCg8aCDrrScI4T4PZqRYoHOIAk9cFoBvQMJGqLjvW56WsdwR91mpKSDiYiokGkW0qBeKDHo+q2LRqTWou1Q603t2lrHh6QaYu/MG9kxDJGclRTivTl6dR1gvM0EpQm4ZoExNo2jyIAyqBWyka4Kjl6N8xf0kOeqQ4r3Cqw3Z3/vJ127gKlBTMxi1cJtzbo+CVdn0FbQR3HEB232tZTrm9xFNGo0BVxI6iCQJttIdMIwMk07cDBEzzDsmfZHSs6sy5lVCnH/OcE30nRgf1x5+PiBmi+kqKN+F0evnRhU/9BLttjTYpiWA6n6mlwzEqS7TqGCHtBtbYToYQjeEYKjFdUvhJiIyV9F1d6pbW+1nmt73Q6vbYb3RKebmm7vm66zhOgUQ01DVP+U7piXSmmd2NXDzwf0wRGNXK225nLOHCRaxwXdgGxX9eZjM04j66rQVPDqP9h7oTuxcEXDG7tKIbbz51uhtEZzAxGNDWutUUq1QUofvs0oaOs59bz4n7bb1StDr5TeFYvCKbXbI9a/6I9SiyxlMvg4oSEtAzGO1JytMbbQuC60ZWatjr5LhKEQYiCliXHaATBNA8N4oAvk9ULJBdIddze3OCnUekup3xCjIyU4Hvfk0rTvSno4qjFqnAt0yfTWTLro6b2+Lr/tcCjFSA9ClUUn1KofbIyR4NRqQpH7gTSMpKS5Hs6v+JIVfvAWB9WdbWJMsRYwH2tNc2xB/VxA3QlAb71l7axFh5HN/w70s2hZtwbStV2IthFROAcNYw4aXkM0Fk0MTKMnl1WnZR9Mi2PDI1AszGf0Vmp8UlZUE4RC7d1WjA7MitiHYDihupZ124S0JngvpJ/CahEAp0xhkQpOVAwkzqZDfYK9AdDexuxmbktpPNLKSqgrPWvWhvMbp00IURinZP4jENKOkCaCh3HcIzhKXnh5eeK0CG/ffsZuP1Drar2e5tje3N3SD0eWNbMuRbPFGhaD4HHFMiSwSm2m235beTnrTWxyDGEgNKEuF6suQqcp541Nj+oYxwMxacVcVgWywVFzUcDYtBWa0eEJSSdBb5YVvjrbHDmDboS8amW5fgCifaGIrsdqU12FN23FlrsGOsClFAgu4GO8Jo331ghxYgBwDfqCDwdC9DZ8+Su2GiPgA1UcTqK1gI3WC120B93Ce9jMgKzaeWtFsM/3p1U+FPnvtqN0poR3bvMl8mziYXXMtL2paP+B3+PSmTAe6f2iVvqiKx1xwWwdHMs8MwwTaZgYx5HgA+ICeb3w8PCeD/fP3N6+5XhzRysXaim0suCc43h8hwufs64LY1lZl4VSYb5c6L3g1kIrgWp+yq1rnQ4hsHmLOLTXcT7aUNKIQyKvNmR4U2mJmv/UrqHMMalNnD6ki62YlG3TW2epF1L0ylrxmEa2mbm2Hrrr4QuBZS0sudmfYdefXs16OCDEbQLVa0+6IhIhoK+pC6Uv2vzrPYNIp/WVEIM67YdATImU9mbh0V7JG1G3FBF9neLTtW1pFXLNSO8kD1KrZgpb3wtqncH33bN+/OEDTRPSF6tVoNubEvCYH4gJedSCQd+54KN+WCGR4kCPK9Ic4vWD9mkiLwv9cmK6ueXm7h273WBhcp7lcuLp6YGHhxfGcc+7t+/0SS9K51au3Z7xeKDmFRcmYlnxccWvmdoaY93T64yXszJTYqKsy5XCpC/EVkne06sSUdmwSBcQCg51jeodg3K8WcwOjLujPmx6mqALBSjLRcNeorV/XgcLTf3p+K6H5Upd8mpv0Uo3O1wL3+tQetMK1reeTq69WTBCg7bg+vA7i/TCbbT2Vymjj5rSGeNAGvcs3bPMZ3o3X8EQ7VHUzVOtTSUDIbHUVdV5XUNlvO+MPuJjoqyrvgcBtn6sbwyFH3347INxG3q/Tc9OG1e6Lu9Hs16VXrXxN3DSB7WCFad08pKVGezoeNc43HzC8e3nTIeJVgvioeUTDx/f8/T0xG5/5LMvfk4KsK7PGr9QVo0C2H2CjwNNnkhhgDDQiNTmGcZMLpUQF5xkhmmirloRtgqFNMSuDAmKn+lnpN7LVzva3q+QSa3dhg11tR+nHa2psh9ZkNRBMoi51dsB2dxTtRp5uoOAuj95r/+2N81Aa7aOs5mOUkUhGqsu8XsHWZr1g3h1yXffc43XGmrTtUEkIapeI016SzXRdEwRpM/Ms7q7qvGPvgfLpZLSoFsRD91Wbdj+eAgq5pdWkOCvakf+SPTfnwC1YKokU1rZwfO2LHfOcXu4YRpHRIp9qEJruvsTZRoS4kTojc7KtLtl2h+vpoyXywutrex2E61lXk4vSMv8/Jd/TYg75vlEC1Xz3upKyRk3vCWMR+iZNBz1OncXfGn4UIhpRwwz3glp2hM6ms/bbQCp2eAi6DR8bzinH2hvpkmtrzbAAIgJqrZoiDgQxx2uboE4mjyLU01D8FFHDVGDbIVGHIhXhggduldyqm191AXK3mP7540ZbJpE/IaROMB3/Vy2gVACPgab0C31O0Q9dM7hfFTv6DDSccQhcjjcaLr7urBcTqxN154uaqK7q5n18sS0v2MYJw0K7Lp0CIjhfpF1PatexTndN/8k3a49eVU60njd3aFPqfOO437P3d1bYho0RVyi4URbYJzgw46QHD0/UUrhfFlJl5UQjOs/7gj+wNM6M18WlTBON7z/8JHnxwfu7na8vTtQy0xen/F+ZBhuLBYg4MOIl04I2p/EkKhuIW6JjGlH64rs17LYBmJT3hd1dLImX1yk9qyLf5vjt35LfacFnEorfdAtivPqQawDhycXDWARGaznEmrRCDF6x+HxXTRERRQ37r1d3UBDMDq6U+/lGHQTAg7nt2R3scO0JQ/Z7WSfm48a+DyYKbfgNfohaE/nnMdJt4ODrjW7QAh2tTs6kXHYEz30PCM163bDBe2VpSF9pYm+JhF97SEO1N7o9SduONjYDbgrCRNR5DsSOOx37HaTNrXN6DgW83l1MnJqitNqZjk/kUsm5wMpJcZpZPRQ8sqam9GjhPnj7zm9PAKd25tfkdeFWs7kNbN/8yWlB6QVYgqv9HPrF73lwak5uOpxvXh6LdQ0GvLu7MoL1LwaWCvUutBkW505erXrsAkd9RJ0zhOHPXHQTLmQRmpeEBeRkBl2R8bpYBW06X4bp0B71Q2LmvNEXFf14npZdZVnxAe8160DWwVTQZXbPhOLFvUbXd0plV3BZTVYd27Le5vorRB8/CccP2kVXKcUxUNzXhEHMSpQX7vTVKQYSXFAWqXmRR8Qp7GyvRUlxI57TdWsjRCTPuA/3PL9CamT+rhe3wBwZvnQuTke+eLzT5nGhLRsa5iOd8kmrGoSvG57t4h4T0NoRQPy0rijd8fjw4nz5YV1mZnPL7RacSFyuLnFeTSEpcz4eKDJyDJfGMfIumqKY5NmQSmWDWEHUKexQnCB1AutqNIrxEjJq1aA4DWlp1Vj5err1M2MYVfbLRc8adwR06igL97CmDVFKE1Hxv2tJVjO9LKobUWF1oMufZyHrIOH8lqUdBCjXl+1a3RrQBkoYSOEgu2Vt4RjqF1Xc9hDJ3iN9uoBFzBvanXT2gaPzb6st0qtM5enGe+dQbEqC+22O0YSrRfioMNIbyvOrtbeN5JsxXf18SFFU8i5Vy/oH3P4jM5y5a8hKmourXB3c8Mvf/4LPvnkM0Q6y3JWanfYPrjNS7jQe0U6pDhq5Kio69F8OXG5zAjqEjUvK60LrRSC9QyKwHfznQNhoFxmzVfzts2IkWLZIOqar32dC9bjxGRGPhMyVVp7oVVH8InaLe/MCWD5bd7pCgndyVZbsKeoKY8p7XAuUXPR69Qleq3UdaZ2o2g1jXjwIRHCgnMDye+sumZ61ca+izGskzKPBQgSTfAUaF7F5d7WlLo3rrruDDp4bMOFc07/nmlOSlXaVW2FXdyx2Xc4vJljJsraePz4kcObz5hGTRRtZaYsCz5EjW3tju40PtUFJWd0H3EpXXPqvHcGX6nTamv9p/nzib1gPcB6z7emnsq7YYQOp9OZ6CutZF31OMWi6E1/uGxPqPL3ctE1T84r8+kB5wLj/g4XEiKqhlcoIeFCYtodVJBicUz4gcvlxG7acbnMeOfZy2g9mf7PBw1VxmlznUSFOiKdOO1JZg/W+0Jw6UoqEHGk6HXn6wRpZvwjqjYLXkU7uIALA7UKec36geBobaXmTG9aEdI06oGIiZgmBWV7QWadHqureuBbJATwvlmXGVTP4b0GTZolr4hDUym1p3ZO1LHe1nPBD7bNsVgC+/Otim+VsfeOr4VWzoThHRI8pUPyiWnUfXvrzQKfA3GcoOn2JqaR1pVk6rwOMZ6uHjPB08TR10xzGIviRx4+Z33PZgSon66ayJSy8s23f2Bezrx5c8MQFXEPwdlSvdFKee0fSmFeziznZ9ZlpjTdAIRoAK7ZYCjoq430OOxBvH3gevBenl8Q5ym1cnp54c27dyovtCrVujNWjYptotHDm/V5vXWGaU/vXpnFrdJEB4VXPzxlppTc6VXMzEexTGdM4m4fTF4zYdjRXSSOR9IIvVTWnOmt4kMgTW9IadJbIM80s7HwpVKvgdBOhzWH2dIpmVOHj6prQcMgdXkXbF+uXMkQ1OzRh0hvndLa1dMlbBrIa9WriKsEV4jT54yHO8Iw4uKg/WzsjNOO3ASXdrg0Gi7qrzQ4fb+12Wwdaq+kZAIjP+ACP41SpY2tyuC2xBu9gh1rXilVl/X7MRGPe1vDbU5FnmzBeLUVci6seWZZZ5b5RFnV2T6OB3yYKHml1kLNq/LuWgPJHI43+gJbZ1nVo+94/JTz6ZnWCuOwI68r3nfWotd7jN5MbgI+7YkS8L3RXKWVwrC/Q0iU1ujLBZ8ikWiyAKV6VWNuaACL9Vk+0sWrAKeuSqbwgbIWhmHPcDwqphYStc3k5QUnjpAiwXu1jeuVYdyD89R1YZFKk070lpjpozbrrV6HttbUtdVLx8l2Vevv5cQbuKzXtMonI2XN6Alw9j0VhVAH+aKVPQ5477m9udMq5j01X+g540QYhpEWkrqnSlSYCAfO3gcsGcnE47EKaRi158P9scL3x3E+1exugKXhTV29h0MILOvMOr9wOEzEtLP9XqA71ZzWVVO915wpazafE6GUlRAH7RG6kEvRxEQfbI9Y+eyLX3Fz85ZWTyCFUjLDcMPz0wOlLnz62ZdKmWqFlBylqHlN744mXTNDa4eQdCdLhZDwwTMeI6XO9LqCRLpEmqjaqjeVZm4tiwjX/s8L9JJp+UxdJ7wPJHMtDaYeA0cabwlxh9SZzajbeR0Khv2t3g5d8H5AEjgZ6DVbkrtH3EqXCqhPn3eOIMr0pmVDIhxOkrZHG/tZHNEnvM9WPXXf3FHzSmqhkyEEpOm/C2lH65oq2Zqnu+mq26jVBocu0JSQ6536yGApRNJF3Rqu0za23fhJu93tS3+It09CnJEnvVp9jckZb61dMSJttj1lvrDMK2vWylSsGuqcp9JDshoaKrk2MB0n/tlf/S1p3PHw+JHbgy580rDn4Zv31JrZHY7sdns+fviWm9sbchbT1+oj07vGARAGnVQ8GlnQK7020rBjf/uOsl6Q3nBuVC1FF0JTY57goRm25wTjs3XEFcr6osIbHwjDnpAmamvK5HAeDUIZkKjwj/gO9YKLA94llaPGwR7YwQT5ooCwD3Qv0C3LFqt8NEQivQZ9uHA4CQjVDtnW34H3A60Wm1otNFC6qcoKPaiqLbTKUj21YcSLvUWJda6g4SZK0Z5Af7Z0wjXlyJHs99YvW13+JJAZW8ngrM9QBRWmfUgxcbMf2e1GjdI0t81ir6Q2YVkWTqcXLsvCPF/I8wURiMNeV2O9I3lR4UsK3Ny+4ee/+heU0nn4+C0+Bpag67v58kJe7nFh5M27L3h8fGBZLtzc3VFq1jfWeo1mmwrnBmJSoyI36HWBqB54On5KrZXL83fQJuIwUdYXnD+D6/gi1NVIFM4kjlL1qmsrdX7Eh0QbXmjBE3ZHcq34LiRfCTHinfa8WqkS3r0eFB8CcZqUIFITLeg1GYJ6IbuuPZpzarXh3KAMEx9wTRV3iFG0jLSAV+MhMdmkMzyzU6E1pBeFS1w0qzmDkxDD5rb+WWxZsK1qg+GoZlZJM5x0Mx7SgbS3fl2txvATUifBKpxT9rH6K3/vUAbPNI0aDR+Uu5dzUfepVulmDL4sM5fTC+uarVIciWlUgLfr1bLbHzkcb7i5fcfz4wu5FlIaGNKOXColvyDi8emoYm7n+e7De/b7vdmMCaVqMEkPCirX1omDqtc0trPh46g6BA+1rKTdO45pR1tnpFxYL0mNhNIT62UB19Qzr2sL4i0zhJ5BBvr6RA2RYqh/GPbUtlIcOmlHXcM1POL3SGiIKEXNuUQYg17JacSVZPtkjZsIJHorxDToCg7NO44+KB+wVtu+FOtLwRnG5oJy9wTUcaA26AXXK4gSgz1Zq2xDFwfS2fhKgliule6Vu/6hbviUKWFInA4zvXcajc3gRYfVn5BABJtbeb/y9nQibbQq9KgxTi6MBjU0Ti8P/O7X/z3n50ddzQyJXITSA4QdLgyENFhT2hn9yOFww2D8vaeXRaGNtEMIPL/M1HrheEiEkIjDDdP+DaeX85XuXmol56wM2+BZS2MXVW1VaiYEdd5c1wVBBekhRv1waqXhcXEixBFxgVZm0xefcOFick0VOokoguCdBj5Do5UT+YKyi/OqFc4HkkFN0QWac/p2u8GuwaZX8Har4RA/0FtF6qIeewB+0V1yVPGV7w4JyVg32djjChP5qCae2mIEehOcSR5ayziqPjzeXBO6eipvmJzGm+lA2bcN1fe2Wg5eobdN17OB1nZWt7Wz9ow/kVLlEFuPKbujtoLmunq8iwymjW3SWZeZh49/4MMf/oH7b79iiCM3n/81cbpD/JE0jYDSj3yI7KaRcRyoDe4fXmxpn4ghcZkvlgquO8xWPa1VdvsDtXUeHu7J66ofmnTzKFHMblky4aBbBy+6F3Xea6xv7ci2ugojPgmhK+bXeicOewOmR/MwGRW62PonLUxWYfQqdk7ofUVKx0nFOf17utFx1DDSnelwJaludjuECI2Oc1GJuijVX5y5RfkBoqfHoBW3zpp/jMf5AcpCs8/G2cDjnKoBq9HBNtcrJ0rJ8g4clS6d0p0ZPBYc3cyHxPb6wSritmLdHA0CV7NvBRO1zzVYrjbFH6X/xIFDrxpnpkGLNefqJrXfDUy7PThHzZnL/MLT4wfm0xMtnym9k9eCGxS3K0WX9TEFAp7zJfP0dH4VtATtQy7trFekc1TLfIPK7d0tzkcePn7g5eEjcQiEmFjXldP5hXGYTIxeWMtI6OCbXTMVfBhJI+abrMwNHwZCVOG3tIq0gBenjGrnSWmiVTVMqr1pD9fba2VAKfBq7i24uijCQdTJsTakz8r/6A232WOIw7mkx0/EqqFpiaNhlpJ0deec7WsLaQDfVsRFBYG9t8NfgIR4hxOVFsjmfN87vSekKjFVKVYJn9R32rOxjq3cOmx1qD0cola7inSnK+S7VT3nbDWHTsbbTv8nGQWBw5u1a20aOOINLkgxcHs8Mo776x6vrCvL/EJZzorTpXjFCWOManRTVUmVfbF+EhuohFIKghluG0tXjXYipYKQuJyfmS/POvEe31Bbo7VscVOBtjkoAIed7iWDVawQEy5OuNTwrSqvMI4EgSYL3ie6z7YdcCQfEO8JTbQKlpmuUhozT9LryXvbW5tet0uhlQvFTVCEzropNZR9EqL+s/cmi9zUsaq7rQJiIifM5y/3hCOa+36nu0hwUXsAJ7SSadJM0qlgdTDygoLdzQYCJdpG7yEcKCSqTc2KnrxOx7rh0l+j4Qiih+x1+H1VyXURbcW6iesTtkD40YcPWw7r//SJURZvipHdfkdMgz7VrbFeXricnqhlRQ0cnU5f1/2sGopvU1Rw3v5MQVMd25sSF3HkvFCbWDCe4/npiVYXdEfp2R9uuZzPOAd5rTi30vOK9EaRRomTJgCJNt3qF6O9YxU1uuytIbYqQjoxJAVnW8GlSBS1uvUxEfKgyT2oWZK15QZnNMQNbO8WrSGcwTdqMxlpVOOjTeSt5kC24XCa6lircvIcDi8FYiCmaBYViRQFaUU3F8EwPnMSoGajS2nEQRrUGm5pKm0UjEhBs3YqkC1HA1F/QWea7CuP0AYQW/yooN45TR/HBguDd2pXsvA0BNMo/6SBYwMLhY1uroBrZ7ebOOwOOmK3zpoXHh/fc3l6UMsGMUMd76FroqQznEgF0F3zNERXM5jzpWZqqCNqMRhgDBpJcD6dbFfZmXZ7auu8PD1xOB6Q3ilroayzQkxBPUTe3k7UkhFnyUdJJ7TWHKXbGyTK9St5pXS1o+g22oXpgCtFNwN+gjBTy4oTFU0Jgu+6fmy9UlSmYxUigFRlF9NBnfTovakHS9/iBbop5pQu79AluSPRi+6dfVShTmuJw3jH4Bf9AFNCRA+T/14Qnw+BkHTKd3khBKA6vZaxdamf9LDb9Sx2yDa4RYubM9iuGRFWz0XoggvJRGPgRUmP0W+UKpvCf/zhc2ZeY06g1p+MMfD2bkcakk6UZeX8cs/LwwfyfLa10KaA6Xadig0H1oDR1eF+M1aUZmr3zjKf9ZoVTxwTrVVOpxdL6NH+ZLh7y+X5BWmVdc3kUpB11uunab8Y88B+v2f0BRcSXRzr+cKyLMbEuTBNk4LlcWAcI+fTCx2P9yOdQvQDPQYg48UTksIMNFPzdaG5zXSygAiFCSTYSnKDJDq+V143o8kgLFQ/4jWrlmZXsP3dLkp0dU1F3dOgyjchofp73eq45Cg2lXaDmEQ8ziveVjv00HCtKBkgOCqTpYSDx9Od7e69FomNTKuEWBsejL1x3ffb4XReSRne74iDru1+EqsFsGa1XdEf7zx3N3ve3NxojHvXD/FyemCdT6Zn2IyEdDXXc8F5u6Jap5eZ0Iuq4kQldzFFWhdKvmhFSiMx6r51Xp4U4gmqvPr005/Ra+fp+YE0jvhaqDkjUlnXmeXlYp50Z3CBL3/+Kb3MpLS3Cn2vw4/TLUHwjjZExphIw8A8r7iOJnY7j0c9XYgOardJVt9cFzpYn+p8JHYFoleJJkGzOIRqebjOQRe871YVvU2POlg0qt3L1syjFrkbeXQpunXZpYFjykY80KlUWlA8z0cjGChwTIhIyfr4m/bYeU/z0Toqq8yyZfliXEYdLpVMoKhDsF4PZzqTLvYZKqVqHHfEYdQHp/6kgUOfBF2paUscouPuqMIZXKJVzYeYL5erMbUTDQv0TpfpEiabiEQJjOusWJY4XEyEuKe3zrqulNbxaSI5zYbIy9mSvit18YS4AyaEmVxmGsKyzJSscU4tF9Yys+YL3kVarRz2I/vDyMtLBgfnl0c+3j+ymw6ASgbDGllTYUzKfi6lUNoA1tOHFKlFw1J6zXYpVcTyh6V1dfX0gq8F7yKlTbaCqtCrVuQ42EHa7DQ2UbiVIAeviY1i17dYUlGnNCFG7bNudrZLbRWx31ERX5VpOteNjxl0G4KzB17JpS7siA3bXVlkqV27coVW5HrbGCCp5FjXAMUJdd+vumQXEn7zanY/YeDYhDPObR0A7KeBm9sjLiZa66ylsCxncl51fA+JLid7oCq0WaGYTZFIR5ynEqEVBrdSF2yxbfFJTTi9PJtMUjclrVfEeeKw8O0ffq3TcW7Uy6P1gcoGvpxOrMsMRqMKl8huv+eXf/lLpBdK82r4OJ+YTyeOxwNzzbrnDIHFq/F4SpFMw3llLItTyaQTqN7RalEgtTUNX94UaKI6i0Ey4iK5RZuP9FrdiKAOE2aheJgyjsXUgfqga+rnBgdgckVBeqA0XXnF0OnGJ3Su6ZCCUqukNvVKtiHEuYiYsWQIajjuWrv2gAo2b04UyivsvWNxNtf9rvSKa1X35i5tlE0jt+p/o/zCn5jDYc8EiMaff/bujuPNG3DKaLmcT8ynZ8WC0qAnvuteE7oZOopZKAQDVh0bDSjXQl9PNDydQJdVKU1lVeqQXfu1qX74ePOG8+mJy+mF1tv225GSVrdWM60W1SNIZxgm3r//hv3NLbtdZLkUvR5TZJ5PrLkwn1/YHW7Ux6SYXaxz7I5HnEtICrZW0+smOGWz6C5Vd6xihFScVhZcI/pVey10yOktE1wkhOH6geletWnl5Hu42YZnbNsPO4Ai5s3S9UB5r9qNQKC19Wra6L2HpBR99X0DCMZ5rAY8qwOCOG0NuhmEe1PTiYHNm4mluqzqdkb11xtUpgGoMURjYyugfq3mP+bwCagvi/Ubn7y74bPPPmEcD1xWTWcsyxNQ2e1vqHXl5ETtJoYJ4qgq/FoRguFhzhbtep337uyNhNaV06dWeR2cNrw6jAUNtAuBl9MjeV1M/6tVpeSVafrUREMR34qC4SHQW+b911/z81/+jFYWGtEcElbmy4tGhK4rS8tIXVV/LHC5XOji2B8OpBQUY7Ntzybo8T4hIVHqSi8VqWpn0bqG76XQKE7FTL0VrVyyLd+1pmzA7PddnfTsKeThNjklpsGwuPqOVmtfGw3FQnxI9K7mSB51snBG31I9rWGqrdFrVwhK2lWPrdieEkm8Tfxc12T+OkyKn64QmkPZOM6r1Zq37cfm3v+jDp8WUH36xinx7s07doc3lG4G3H4kjrfEEljbTJEL2b+l745UPGsT2+tqWTcRG861K1ES0QMuXZVrrSu0LZtIRnS957wQh5FlWSh5VpauaOOsPVdhvpzB+hvp+oS32ukXjQgYp4lhcNSu1PdhnFiXhZqLfi8purcW0YoHPD88Ukrj5u5IceD36sqw6XHFDHPGuCMEDZRe1wI+4UQTGxWcgk1S6qx30i3BtjPdXP5f250rmCt6gHDmExNMwN6DUds8wQvKflCqf4xqnC5dhVU+BlqxVIG4x/kd3RJ5t6t2++rSCWjRCTZ1Y1ieeua/+vk5fQohDHQJ6vHnwtVh4UcfPoDW9JGIVcgVnk6Z82Xh+flMl85lnjk9P3OZV86XyiJvaKGaPWum0w33ETZmjE5w1t1isZ44cBqaopAK11Hdi745vVYVjLvNFUs/QWVodObLM9PuRhfsHn2zPbTaWeeZh4/vGafJ/FWElEYulxd6q5RVQCqIrt1wmd4duJmcF7yHYRwAMaGNwxMN5BW9/rzucruDZdX08a2idBPV4CrBqXn267L++/210ZoMXlMSkaICGjertHWAtWheXYyVLpZ27pz13lEPn3RbiTpj0oCnagXeCATevXI1zRKuOg2LDh7ouku+YrQ+4QR1nAU2K2ScguMbNvzDR+9PGDgWo6Yva6f8+hvGr++Zl5V5VUvUNWvDLaJwwoZrOe8JKH/N2cK5tW3k2PaiCnXEmChV+0RnCjI6EDZrNus5uuoytCcTNgH39oYJsGbN2lCCQFB2c9S10Lou5JxptRHHQZ0+eyfgLG9CKVleumpQBUqecd5zfnnGh3e0ciaalFETk0ZV5zlBzL/aBXO1alCq2snhOqUK6vberUJrid52olwrkPaXHT19SpWHzQGi1kYFLkvF+T0pjXTxxLAB+7aJsr21Gi0bzCO6D8dFPM4yZ+T6WeiP0YHHm5XctXeTZreNVWj3KlJ3bmN9bn9fflrl6x2WRScgoXNeX9icqvymJjNPXiwEestE61e2g1GXttFdbx57OVahun4ADkdwEefBDRb0YhiSKvj9deLT20iHEDFHBfWDWRimHWvOCvw65R026eRaoKtOY1jHqyjH4Szn1rxoRJRJLCBdTcuXixrsDEOkrKv1mcJ+SjYtJgVnXTMwXd+/Ul8ri3OOTlU9M7xuGlAYRQxe2TBVcBo447c+0wwlNZaIda10HCmNLPOq76jlD+M9aXQMpdmVreZN0s05AR0sBhQVuG6ytlsJZ1uprT0yfx2jyfvtdhKIg7fXztacstGwfvTh266U3rtFIJgf8HXyUoRIx7uNXoTZpXEFJkXQKHksWdHrdMgG4djh3LSn3ql8USvTpk/wViWqPa2OKja8mF5346PNlwu73Z7l8mKGljqJbTZv0hpLmxnHoIKZvrUBpvoPlqXGFU+llcw6P5PiO86Xmf1xT866PtoPQm2rhifba9gcQp3314QhRKs3tRCmhDPBj1hbIfKKqza0gjkjXzirhALm7xcoTSgtEFxFvEk0Y7r+PSSyhEW1JX1bq231javuuZtqUIkjDhUiOcSSNHXnruGPOsZ8rzXwOuQ4F64XrbNz09pPAJmdc7joCQ1tjLeT7eyNtDLc7Rdhu0qt6Ino0PAqodPpttZtksVOqRIzHaoV7fIKNWimmNY5RQzUTqJbz6em13ZtOaUttaa5aCkNrHm1VZDXj3o7uK0hTXfPm20tGLLfdFkfg1YQ7+L1Cl/XC4PbkddM78LpNBNvJzyV1md6VUnmtY74LVPDrqGufXTvwRb1BvGKtfXeHB6wwyCbwxX2PqH8RnRfvqyVMTozKTeDTu81S818YTZbtW7DjmKwjSAV6Zv3AdcHQKQhW2SD/sfXybaJuaCBTsUhGI+yX6u7gE3XP1z5fhCCds4YOx77hayyhU3P6+0AmF+d9+o+ul13TnWum4i7tfb6CwnXnkeRdOuineJ/zidiHNTsxw6Mtwqo1cLhLIhLdQ5aVZ39Drlk5cGZjuGKkdrPc4gNL9FsItz3JKLmjee0Cjive9ouoq4KDZY5G+Wr8/QyI6L+fq1WSq2UUmi1X28HuVay8PpetG5uDq8fnF579loQw/TMB0fUVk4fXI2YejrN9L65w3qTNwwEH/Fu86wZtOLirWes5h29Er2ynbtsrHWhi9qGqHmRir0EnYL143t1SsWp7dp1GrbXtp2VH/r6owNHr6bmR4UqCjHYne709OsvtvUjiqpug4J2LpXaBCwaStmysK1rlFLlv3cA5Epm0Kbb47ra7W+F3LB2e7Od+tRtDaUB672JTqSuX/ttdVwwtjBq+rglOWqBsSoStNd0IdLllTbUW2e+zDr5SgGBeW4EhP3OMjKa4DzGSNm+5waHm4VIqwQ/2HvC6wMoGsSH2wYN63fFQVACgO5+tZKv80yTvTpm2XvlQ7K8PFMSWovkrroL/Zxa9QadvAr2vduqrrtectt1DdrH1tYIJuaPMRknEXMls4fbeIg/+vDZ2IoyULCyL4S+9X16t5fWrxVGL15t4Df8qF2RcqswlnuL62hSIVYVTBcgZleBVa4m5pzurb/ErjWH0s43PNAqLkLYHFTtd1KMiuvv6YO/9k8adtLw+OvvEOy6xXSvzvaUOuHPes4lsom6n8/q1D8m8NKQCjE4ct1+X4M10A+ptYKPG+Sy6UP69bXrnSzXJl5//qvzk0OHu1oruXSmFNXRAHXST8OgOmRREbyP6oylAakZEU9rGHF1CyQ03rrhdFcjcnvzxHBGKRkXVWSOdCOQ+mtJuJaGn+bVYrSevv2C9rJlyyHSHioY4o8RELq8NpreeXzQR0hF0JswxX5GdzYpqebCoVaubRsmxGnFawYFbO3PRvlxGpwihtK7bdix87gdMOcVxgnWG3V7cMR6VVW0bfeEU7sztwVEW+/q0FctUHLR1+ag4/DieHxeOewHplFNemrztu0QRBQnw6tZN9cPHNtwvA5tii5sD4r9Rq4ZZGOrMvu7tVRKaeynQV2wAOUdd6Rl/b5XtNogEZcMhdD+U28vfy0OgA0eG55q9h0mRpJW0RktoX18/95Ho/25XKfnH3n4jP2jbx7bg2iVZFvoeP3wtydAum4LgvN0v113Hh89rerdZwJ+PVCGEV1BVpus9AUrztcMR/ynsKV+H62ugRgc3W9Pql4hqvhqeEv4ceLwtv7RrAzMCk+d6rHJXJ98hV2C39Rccj2gDsXahEyKSlnfuojHl5kb2ZGGQF/q9qtSRW3PHEExwVYNNMZ+ZzuA1r68vieOLUjaOa3MGzqgwYvwcl65uzkQvG4zYoiqpw3BDJi2HFw9ZB5lRRMDekGYUMhuM2+Wt8rUUaKEsyJ81XVQGIbJumN16vemaNOPsnNF2H/M4cNK7+ae3kX9QnQ4aPYm+GvZNlk5+K43R99wLJt8tl+ObYra4BrYdKCtV33Rxojw5pPSRavsNr5rgy7XJThhUKysd1xXRkWIQcXXmOm2eJUqIrYN0IdJnCEcYHYf1kDbAxKiR0ShE+3CvG04dGuhwi1TnHXh5TSz36kVSGuvV9nWlCssVHEtawauNfH9Ohht5kivt4/+Pf89v21/nZLneaW0SnTqBp/SoLkm7HD+NW2zYu+fg0RnGhNL2xKFTOhon09vGr/qNhAf2Mzh2zZYVDW91BvotShsQPm2HftRh29jWARve9Rug8am4xXMOgGDU0ww7LwBeybLk1eMUDUheoXqP5uIxkq19M30ZqsAZktmwhTQA6su7NFKvQWzXCvFK7VHHd+5vkFaOcD1jQJlBErnFcTW9vo6BMC2IP9+3TVtQ7eOHFWvtdqu339ezbVJxDwGzVh8+y7STIuRwL22AQ7Bx3hFEq7pQA49+AZ5ba8bEXJeWXNlPEzGKNKc4VKaknutdzbJN/QV30ec89RWDcPDrk53/R2dMce92z4b3ZbYO0SpFo8qZkhktUZ77GsJ/HGHT7YDiLPJqxpIvOVwbZXVXbn/WnH79fD6oBuObiVcJ8bt70Ur8RhAjA44zl0HkQ3v2waBa/KhHRPvNsW8rsdAzPZVD1IwY5tuP9QZiWE7xFu1cwLNJm7se2670q13xA5lNIpSpyl4a2+0PUpaqbtOlMF62b6RSb1uGpoLSNeUza2PE+vPNn2wToyi3skmS2iCvU6NZXAuknO9Tu2912tQX61Fjc+9s7dVCK5ZJ9c0KNA5gtjB27BXgc2NbFtd9lb1xnD+um9W6lsh+FH11V7bmm7xqD/JmVTfaD1ojVfMyhkWJUb3VlB+GxD0TXJosDFdezCcI1kPtrTXJ2SDGLYpVSfg71OM3HWV4xCCQTNOHJqWiPUwxmPDIc7hXSB5XftssVcx6uquN7WkxXutoF7Vd4phmt3E9yuPDTZ++3P0Qe8GnndbD6pRjlYF7xy9Nnx67TPU0Qmd2n3UPe/2EBjhVL+2wUMfEh3UQMRMLzfNcIoqHe2dWgsbQukQas7kdaZVlZQ6Ey5J1+tV3RUWvOx0Jy0dae36Hbbfoxv9q/fvEVvtX7sO+XIixIHkBxtBuw0b13v4xx0+sIq0Xd3b9chWCgxD4vuRAe71v932rjaoqFSxWzqkreEMh2p9E4frSK8OTf1730//pcdZGLHiX83gCxW8RAjKu9uojLUpm3cb+oJpcTc1fYg2tzvrX79HH3IiONfVAmJ76jcEX7AKJddDudHhe2/XgyvVdBqI7UUNLvGbaaUNF7zayG4xYrjXaVe7CH99MHFBNb3WPK/L+vqQ4FXiKaKB1zEr9csFir0uqf1qIukcWyNqt522SFdTIOu7xYafrSXqopWvlpVh2IzWsVbhh1drf/zwXa8AsatHKeYiOq1tT7kTwK7J7Y17/Tt6nTjZwo8tO8wFBH1q+7YDtFWSDhW20N4wpK3K6p1gDBCBptefQi6KPXmsUbYnPZgNRW+VtTebOK2xFgNDTUwj5rYpTggGWXjRuC4kIt1b0HK/albkCuRqQHMIfntWENtH+esHqpeeujNoVKnGVnG9SXDe/FS0FwzByBYmjdyYPBvFyXlY1myu/Ppe+SAMKVJTIpk/ISLGuG44VFeyYVKyCc67GZXb+3A9bDbcIPYg6KlE/avrdRDUX9/Whf6Hq98fZzKL/RA6wdkZE7lOn+pgpFWji1PGiVP2MaJvvthyXx9YC6mzDUgpahgegzob6GpYA6C3Rlh3ozq6y/biRYyOrx8oYlQfZxVpU905jeXqVb2enQ80W/R7E7n0vkEe+jMRYynb696Gly68BqBce0IDn5v9bn5j4NgHsaH/iO1t5fp3QCdG7wIqsteqo0ZPxkz22670Olqx0eo3KpR0rdQphCudyaPuUiEG8GK3U0VEfRBVZluu1XaDSK4kWf2UCITrWVA2kT78+hgoBlzySsorwaJr43Uo+eGvP8EcUv7pVGfXHQaT9CsoaSp71+2Xtg/V/ny7U921j+q6X7QPszvMO3ibCOV6gMQOytbUd/f60tz1KrTr6NoR6L3uvFf7jI5iXhh01F9bBXUIfRXFb/+vNhLx+j2d04O/KSBVkeeuB+wagPj6zmnFuG4AsOX/K5OlS6X1gg/+n8RN2CDLtpTTQqBtiL60Dd4IuCCMydIxa8WLqCquq42a2E3SjXQRo/H77PU7xB5MYXM/cOb5ogfVOkG71Vo3tCE4+zZNU96DR43gncWe/QT1GrIV3H59KrRKezuMWoa2NdqWImnrvdfqaH2S2DWOHcbe2nUi1IplYHLf2LeCeAxo7lbS/ev/u21ksan32rPon/euP0OHAYuockZNko2ECsEn/fnNvI5RfO+Kp4m6XSmtTE/ethl5faPcldKu1cpZo25HR8BdwzwEJYwatscG/brrtxQ7gNjEqdR2bDOkv+NWgR2e1jo1a/6uVih1UGhltfQj/ecukEsmxkj0nWCrPW1TrH/GsUkonfteHy8bQrD1o/o+61CXEVMGqjmrkhx+/OHjFdpQGpAxUDbW6zYwuO1KsIlOXsfsfh0kNqzI6oFdgV5M9ebU5kFxLAuOc6I9kwHZm3b0GsNl15cCzv46jQXn2AxrsAfAG2OlmQB686AReYUYvBO70jrdPtAQ9GA7Y3a0rpECYVP12JW8YV/bHlSvpw2QBpV2Wr8pjc2fGWtjtn5uq7zb94FrZ31ttrbea3u/S1XtsvRKHCY21WBeZ3pbkV5pdaHmlZIrLmrPPvjMEDzzUu33NGjn+1eme2Uc6frTjIGcaF6dN+WbQWXqH23MnJ90+LYDbzCB25rOraG3f6eYkLc31yqUtdbN+j2dlDcsT4+MGktbvodxz7YX3Hk9gDFuLvdW6Qyc3hpij+jw57Snkr7JHP314diqtrO2QYOeHQonKIMmBE1u7G2j7m/vg06X27NmL9BInduBMS9m7Bq/bik2aEQn3W0wYQPlTb2mb6tYv2uPuPEYN1C591eWs/ZgtlVBXR8UktLGP+eZdX6m5gVa1fiJnC3ZUpkzgULynpmgqOl28Lc7Xz98royY6xCC9ZbbZ6afsTqRRpr8saTdP+XwfQ9O0NF6G442baYOIQpGmrOlVcdgw4Bz/p/AMD5s36PrB1fVGs17b26hm6xQP6RgYXrertnaVHexueKL02BCv+1MpbPZl10rLFw5h5t8kK0/dNtFo4dVnEesIhPaddrbqvvrtci16m39mNscnLbvtZFir9VVXdv1ii/XQ9VaRdIG5Xjwct2nI5gqZmtj7BdwWyGAjQzQWoUUVeecF1rRUJ2aZ8p8UVaLbJBOp5WMUI12pe3JlVRr176zAcls+nCuEboOcc6SxZ1T3TSoFbF+lq/v2Y86fLq/ez312xW64Tn63ss1/M3x6pSEswpofeD2JulUJfb3nS3/t4Gmsc1Zjm2hHkxsvr0llpVm2Jzy0ALSVDUGWy9k246tXd96FTtBquT3xCEp89ia+W1w0XRwt00NXNuMrQfa9p1sGJ9+a30sLdF8GwrsAXTSzVtFK4900QoiRi2TjUViPZVsV56/vi8ir79jl06waplzVQhIoOaFdX6hrDNlzayXZ3P7F1ottOCordBaRmLBbU6j8vp6N82N0gcVHO/i8K4iIdhmxl2HO+cTgjfZg9jw+cOHz31fqPz/9S+d+wD85ge/w5+//vz1w19/ISKf/f/6Fz94+P789eev/zG//pS+8M9ff/76H+Xrz4fvz1//2b7+fPj+/PWf7evPh+/PX//Zvv58+P789Z/t6/8DlNKbp7I5yX8AAAAASUVORK5CYII="
    >
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>On va tester ce modèle sur une autre image : un king crab.</p>
    <p>Il faudra bien que l'image soit une image RGB.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">image_2</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s2">&quot;king_crab.png&quot;</span><span class="p">)</span>
    <span class="c1"># conversion en image RGB</span>
    <span class="n">image_2</span> <span class="o">=</span> <span class="n">image_2</span><span class="o">.</span><span class="n">convert</span><span class="p">(</span><span class="s2">&quot;RGB&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">image_2</span><span class="p">),</span> <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">([]),</span> <span class="n">plt</span><span class="o">.</span><span class="n">yticks</span><span class="p">([])</span>
    
    <span class="c1"># Now apply the transformation, expand the batch dimension, and send the image to the GPU</span>
    <span class="c1"># image = data_transform(image).unsqueeze(0).cuda()</span>
    <span class="n">image_2</span> <span class="o">=</span> <span class="n">data_transform</span><span class="p">(</span><span class="n">image_2</span><span class="p">)</span><span class="o">.</span><span class="n">unsqueeze</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
    
    <span class="c1"># Get the 1000-dimensional model output</span>
    <span class="n">out</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">image_2</span><span class="p">)</span>
    <span class="c1"># Find the predicted class</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Predicted class is: red king crab
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    
    
    <div class="jp-RenderedImage jp-OutputArea-output ">
    <img src="data:image/png;base64,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"
    >
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Les classifications pour le Golden Retriever et le King Crab sont bonnes. Le modèle semble être bon.</p>
    <hr>
    <p>Etudions la taille du modèle</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#taille du modèle</span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    <span class="c1">#quantization</span>
    <span class="n">quantized_model_pretrained</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">quantize_dynamic</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">qint8</span><span class="p">)</span>
    <span class="c1"># taille du nouveau modèle </span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">quantized_model_pretrained</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>model:  int8  	 Size (KB): 102523.238
    model:  int8  	 Size (KB): 96379.996
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt">Out[&nbsp;]:</div>
    
    
    
    
    <div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain">
    <pre>96379996</pre>
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Le modèle pré-entrainé a une taille de 102523.238 KB.
    Après compression sa taille est de 96379.996 KB.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">out</span> <span class="o">=</span> <span class="n">quantized_model_pretrained</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
    <span class="c1"># Find the predicted class</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    
    <span class="n">out_2</span> <span class="o">=</span> <span class="n">quantized_model_pretrained</span><span class="p">(</span><span class="n">image_2</span><span class="p">)</span>
    <span class="c1"># Find the predicted class</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out_2</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Predicted class is: Golden Retriever
    Predicted class is: red king crab
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Les prédictions sont toujours bonne avec le modèle compressé.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alexnet</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">alexnet</span><span class="p">()</span>
    
    <span class="c1"># Set layers such as dropout and batchnorm in evaluation mode</span>
    <span class="n">alexnet</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>
    
    <span class="n">out</span> <span class="o">=</span> <span class="n">quantized_model_pretrained</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
    <span class="c1"># Find the predicted class</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    
    <span class="n">out</span> <span class="o">=</span> <span class="n">alexnet</span><span class="p">(</span><span class="n">image_2</span><span class="p">)</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted class is: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">out_2</span><span class="o">.</span><span class="n">argmax</span><span class="p">()]))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Predicted class is: Golden Retriever
    Predicted class is: red king crab
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Exercise-4:-Transfer-Learning">Exercise 4: Transfer Learning<a class="anchor-link" href="#Exercise-4:-Transfer-Learning">&#182;</a></h2><p>For this work, we will use a pre-trained model (ResNet18) as a descriptor extractor and will refine the classification by training only the last fully connected layer of the network. Thus, the output layer of the pre-trained network will be replaced by a layer adapted to the new classes to be recognized which will be in our case ants and bees.
    Download and unzip in your working directory the dataset available at the address :</p>
    <p><a href="https://download.pytorch.org/tutorial/hymenoptera_data.zip">https://download.pytorch.org/tutorial/hymenoptera_data.zip</a></p>
    <p>Execute the following code in order to display some images of the dataset.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
    
    <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
    <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
    <span class="kn">import</span> <span class="nn">torch</span>
    <span class="kn">import</span> <span class="nn">torchvision</span>
    <span class="kn">from</span> <span class="nn">torchvision</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">transforms</span>
    
    <span class="c1"># Data augmentation and normalization for training</span>
    <span class="c1"># Just normalization for validation</span>
    <span class="n">data_transforms</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;train&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomResizedCrop</span><span class="p">(</span>
                    <span class="mi">224</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models were trained on 224x224 images</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomHorizontalFlip</span><span class="p">(),</span>  <span class="c1"># flip horizontally 50% of the time - increases train set variability</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>  <span class="c1"># convert it to a PyTorch tensor</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">(</span>
                    <span class="p">[</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models expect this norm</span>
            <span class="p">]</span>
        <span class="p">),</span>
        <span class="s2">&quot;val&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Resize</span><span class="p">(</span><span class="mi">256</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">CenterCrop</span><span class="p">(</span><span class="mi">224</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]),</span>
            <span class="p">]</span>
        <span class="p">),</span>
    <span class="p">}</span>
    
    <span class="n">data_dir</span> <span class="o">=</span> <span class="s2">&quot;hymenoptera_data&quot;</span>
    <span class="c1"># Create train and validation datasets and loaders</span>
    <span class="n">image_datasets</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">datasets</span><span class="o">.</span><span class="n">ImageFolder</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">data_dir</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">data_transforms</span><span class="p">[</span><span class="n">x</span><span class="p">])</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    <span class="n">dataloaders</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
            <span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">],</span> <span class="n">batch_size</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">shuffle</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="mi">0</span>
        <span class="p">)</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    <span class="n">dataset_sizes</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">])</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]}</span>
    <span class="n">class_names</span> <span class="o">=</span> <span class="n">image_datasets</span><span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">classes</span>
    <span class="n">device</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">&quot;cuda:0&quot;</span> <span class="k">if</span> <span class="n">torch</span><span class="o">.</span><span class="n">cuda</span><span class="o">.</span><span class="n">is_available</span><span class="p">()</span> <span class="k">else</span> <span class="s2">&quot;cpu&quot;</span><span class="p">)</span>
    
    <span class="c1"># Helper function for displaying images</span>
    <span class="k">def</span> <span class="nf">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Imshow for Tensor.&quot;&quot;&quot;</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">numpy</span><span class="p">()</span><span class="o">.</span><span class="n">transpose</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
        <span class="n">mean</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">])</span>
        <span class="n">std</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">])</span>
    
        <span class="c1"># Un-normalize the images</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">std</span> <span class="o">*</span> <span class="n">inp</span> <span class="o">+</span> <span class="n">mean</span>
        <span class="c1"># Clip just in case</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">title</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
            <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">0.001</span><span class="p">)</span>  <span class="c1"># pause a bit so that plots are updated</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
    
    
    <span class="c1"># Get a batch of training data</span>
    <span class="n">inputs</span><span class="p">,</span> <span class="n">classes</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="nb">iter</span><span class="p">(</span><span class="n">dataloaders</span><span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">]))</span>
    
    <span class="c1"># Make a grid from batch</span>
    <span class="n">out</span> <span class="o">=</span> <span class="n">torchvision</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">make_grid</span><span class="p">(</span><span class="n">inputs</span><span class="p">)</span>
    
    <span class="n">imshow</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="p">[</span><span class="n">class_names</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">classes</span><span class="p">])</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    
    
    <div class="jp-RenderedImage jp-OutputArea-output ">
    <img src="data:image/png;base64,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"
    >
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Now, execute the following code which uses a pre-trained model ResNet18 having replaced the output layer for the ants/bees classification and performs the model training by only changing the weights of this output layer.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">copy</span>
    <span class="kn">import</span> <span class="nn">os</span>
    <span class="kn">import</span> <span class="nn">time</span>
    
    <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
    <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
    <span class="kn">import</span> <span class="nn">torch</span>
    <span class="kn">import</span> <span class="nn">torch.nn</span> <span class="k">as</span> <span class="nn">nn</span>
    <span class="kn">import</span> <span class="nn">torch.optim</span> <span class="k">as</span> <span class="nn">optim</span>
    <span class="kn">import</span> <span class="nn">torchvision</span>
    <span class="kn">from</span> <span class="nn">torch.optim</span> <span class="kn">import</span> <span class="n">lr_scheduler</span>
    <span class="kn">from</span> <span class="nn">torchvision</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">transforms</span>
    
    <span class="c1"># Data augmentation and normalization for training</span>
    <span class="c1"># Just normalization for validation</span>
    <span class="n">data_transforms</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;train&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomResizedCrop</span><span class="p">(</span>
                    <span class="mi">224</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models were trained on 224x224 images</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomHorizontalFlip</span><span class="p">(),</span>  <span class="c1"># flip horizontally 50% of the time - increases train set variability</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>  <span class="c1"># convert it to a PyTorch tensor</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">(</span>
                    <span class="p">[</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models expect this norm</span>
            <span class="p">]</span>
        <span class="p">),</span>
        <span class="s2">&quot;val&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Resize</span><span class="p">(</span><span class="mi">256</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">CenterCrop</span><span class="p">(</span><span class="mi">224</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]),</span>
            <span class="p">]</span>
        <span class="p">),</span>
    <span class="p">}</span>
    
    <span class="n">data_dir</span> <span class="o">=</span> <span class="s2">&quot;hymenoptera_data&quot;</span>
    <span class="c1"># Create train and validation datasets and loaders</span>
    <span class="n">image_datasets</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">datasets</span><span class="o">.</span><span class="n">ImageFolder</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">data_dir</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">data_transforms</span><span class="p">[</span><span class="n">x</span><span class="p">])</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    <span class="n">dataloaders</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
            <span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">],</span> <span class="n">batch_size</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">shuffle</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="mi">4</span>
        <span class="p">)</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    <span class="n">dataset_sizes</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">])</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]}</span>
    <span class="n">class_names</span> <span class="o">=</span> <span class="n">image_datasets</span><span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">classes</span>
    <span class="n">device</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">&quot;cuda:0&quot;</span> <span class="k">if</span> <span class="n">torch</span><span class="o">.</span><span class="n">cuda</span><span class="o">.</span><span class="n">is_available</span><span class="p">()</span> <span class="k">else</span> <span class="s2">&quot;cpu&quot;</span><span class="p">)</span>
    
    <span class="c1"># Helper function for displaying images</span>
    <span class="k">def</span> <span class="nf">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Imshow for Tensor.&quot;&quot;&quot;</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">numpy</span><span class="p">()</span><span class="o">.</span><span class="n">transpose</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
        <span class="n">mean</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">])</span>
        <span class="n">std</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">])</span>
    
        <span class="c1"># Un-normalize the images</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">std</span> <span class="o">*</span> <span class="n">inp</span> <span class="o">+</span> <span class="n">mean</span>
        <span class="c1"># Clip just in case</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">title</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
            <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">0.001</span><span class="p">)</span>  <span class="c1"># pause a bit so that plots are updated</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
    
    
    <span class="c1"># Get a batch of training data</span>
    <span class="c1"># inputs, classes = next(iter(dataloaders[&#39;train&#39;]))</span>
    
    <span class="c1"># Make a grid from batch</span>
    <span class="c1"># out = torchvision.utils.make_grid(inputs)</span>
    
    <span class="c1"># imshow(out, title=[class_names[x] for x in classes])</span>
    <span class="c1"># training</span>
    
    
    <span class="k">def</span> <span class="nf">train_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">criterion</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">scheduler</span><span class="p">,</span> <span class="n">num_epochs</span><span class="o">=</span><span class="mi">25</span><span class="p">):</span>
        <span class="n">since</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    
        <span class="n">best_model_wts</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">())</span>
        <span class="n">best_acc</span> <span class="o">=</span> <span class="mf">0.0</span>
    
        <span class="n">epoch_time</span> <span class="o">=</span> <span class="p">[]</span>  <span class="c1"># we&#39;ll keep track of the time needed for each epoch</span>
    
        <span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_epochs</span><span class="p">):</span>
            <span class="n">epoch_start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Epoch </span><span class="si">{}</span><span class="s2">/</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">num_epochs</span><span class="p">))</span>
            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;-&quot;</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span>
    
            <span class="c1"># Each epoch has a training and validation phase</span>
            <span class="k">for</span> <span class="n">phase</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]:</span>
                <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">:</span>
                    <span class="n">scheduler</span><span class="o">.</span><span class="n">step</span><span class="p">()</span>
                    <span class="n">model</span><span class="o">.</span><span class="n">train</span><span class="p">()</span>  <span class="c1"># Set model to training mode</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="n">model</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>  <span class="c1"># Set model to evaluate mode</span>
    
                <span class="n">running_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
                <span class="n">running_corrects</span> <span class="o">=</span> <span class="mi">0</span>
    
                <span class="c1"># Iterate over data.</span>
                <span class="k">for</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">labels</span> <span class="ow">in</span> <span class="n">dataloaders</span><span class="p">[</span><span class="n">phase</span><span class="p">]:</span>
                    <span class="n">inputs</span> <span class="o">=</span> <span class="n">inputs</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
                    <span class="n">labels</span> <span class="o">=</span> <span class="n">labels</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
    
                    <span class="c1"># zero the parameter gradients</span>
                    <span class="n">optimizer</span><span class="o">.</span><span class="n">zero_grad</span><span class="p">()</span>
    
                    <span class="c1"># Forward</span>
                    <span class="c1"># Track history if only in training phase</span>
                    <span class="k">with</span> <span class="n">torch</span><span class="o">.</span><span class="n">set_grad_enabled</span><span class="p">(</span><span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">):</span>
                        <span class="n">outputs</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">inputs</span><span class="p">)</span>
                        <span class="n">_</span><span class="p">,</span> <span class="n">preds</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                        <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="n">labels</span><span class="p">)</span>
    
                        <span class="c1"># backward + optimize only if in training phase</span>
                        <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">:</span>
                            <span class="n">loss</span><span class="o">.</span><span class="n">backward</span><span class="p">()</span>
                            <span class="n">optimizer</span><span class="o">.</span><span class="n">step</span><span class="p">()</span>
    
                    <span class="c1"># Statistics</span>
                    <span class="n">running_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">inputs</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
                    <span class="n">running_corrects</span> <span class="o">+=</span> <span class="n">torch</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">preds</span> <span class="o">==</span> <span class="n">labels</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
    
                <span class="n">epoch_loss</span> <span class="o">=</span> <span class="n">running_loss</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
                <span class="n">epoch_acc</span> <span class="o">=</span> <span class="n">running_corrects</span><span class="o">.</span><span class="n">double</span><span class="p">()</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
    
                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2"> Loss: </span><span class="si">{:.4f}</span><span class="s2"> Acc: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">phase</span><span class="p">,</span> <span class="n">epoch_loss</span><span class="p">,</span> <span class="n">epoch_acc</span><span class="p">))</span>
    
                <span class="c1"># Deep copy the model</span>
                <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;val&quot;</span> <span class="ow">and</span> <span class="n">epoch_acc</span> <span class="o">&gt;</span> <span class="n">best_acc</span><span class="p">:</span>
                    <span class="n">best_acc</span> <span class="o">=</span> <span class="n">epoch_acc</span>
                    <span class="n">best_model_wts</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">())</span>
    
            <span class="c1"># Add the epoch time</span>
            <span class="n">t_epoch</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">epoch_start</span>
            <span class="n">epoch_time</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">t_epoch</span><span class="p">)</span>
            <span class="nb">print</span><span class="p">()</span>
    
        <span class="n">time_elapsed</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">since</span>
        <span class="nb">print</span><span class="p">(</span>
            <span class="s2">&quot;Training complete in </span><span class="si">{:.0f}</span><span class="s2">m </span><span class="si">{:.0f}</span><span class="s2">s&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">time_elapsed</span> <span class="o">//</span> <span class="mi">60</span><span class="p">,</span> <span class="n">time_elapsed</span> <span class="o">%</span> <span class="mi">60</span>
            <span class="p">)</span>
        <span class="p">)</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Best val Acc: </span><span class="si">{:4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">best_acc</span><span class="p">))</span>
    
        <span class="c1"># Load best model weights</span>
        <span class="n">model</span><span class="o">.</span><span class="n">load_state_dict</span><span class="p">(</span><span class="n">best_model_wts</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">model</span><span class="p">,</span> <span class="n">epoch_time</span>
    
    
    <span class="c1"># Download a pre-trained ResNet18 model and freeze its weights</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">torchvision</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">resnet18</span><span class="p">(</span><span class="n">pretrained</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
    <span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">parameters</span><span class="p">():</span>
        <span class="n">param</span><span class="o">.</span><span class="n">requires_grad</span> <span class="o">=</span> <span class="kc">False</span>
    
    <span class="c1"># Replace the final fully connected layer</span>
    <span class="c1"># Parameters of newly constructed modules have requires_grad=True by default</span>
    <span class="n">num_ftrs</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">fc</span><span class="o">.</span><span class="n">in_features</span>
    <span class="n">model</span><span class="o">.</span><span class="n">fc</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="n">num_ftrs</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
    <span class="c1"># Send the model to the GPU</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
    <span class="c1"># Set the loss function</span>
    <span class="n">criterion</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">CrossEntropyLoss</span><span class="p">()</span>
    
    <span class="c1"># Observe that only the parameters of the final layer are being optimized</span>
    <span class="n">optimizer_conv</span> <span class="o">=</span> <span class="n">optim</span><span class="o">.</span><span class="n">SGD</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">fc</span><span class="o">.</span><span class="n">parameters</span><span class="p">(),</span> <span class="n">lr</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">momentum</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
    <span class="n">exp_lr_scheduler</span> <span class="o">=</span> <span class="n">lr_scheduler</span><span class="o">.</span><span class="n">StepLR</span><span class="p">(</span><span class="n">optimizer_conv</span><span class="p">,</span> <span class="n">step_size</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
    <span class="n">model</span><span class="p">,</span> <span class="n">epoch_time</span> <span class="o">=</span> <span class="n">train_model</span><span class="p">(</span>
        <span class="n">model</span><span class="p">,</span> <span class="n">criterion</span><span class="p">,</span> <span class="n">optimizer_conv</span><span class="p">,</span> <span class="n">exp_lr_scheduler</span><span class="p">,</span> <span class="n">num_epochs</span><span class="o">=</span><span class="mi">10</span>
    <span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for &#39;weights&#39; are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.
      warnings.warn(msg)
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Epoch 1/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/torch/optim/lr_scheduler.py:136: UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and later, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`.  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
      warnings.warn(&#34;Detected call of `lr_scheduler.step()` before `optimizer.step()`. &#34;
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.7993 Acc: 0.5943
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.3701 Acc: 0.8696
    
    Epoch 2/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4917 Acc: 0.7951
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2116 Acc: 0.9348
    
    Epoch 3/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.5263 Acc: 0.7295
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2495 Acc: 0.9058
    
    Epoch 4/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.2608 Acc: 0.8893
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.3190 Acc: 0.8841
    
    Epoch 5/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4371 Acc: 0.8197
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2230 Acc: 0.9203
    
    Epoch 6/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.5459 Acc: 0.7828
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.4372 Acc: 0.8333
    
    Epoch 7/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4413 Acc: 0.8074
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.1740 Acc: 0.9493
    
    Epoch 8/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4181 Acc: 0.8238
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.1775 Acc: 0.9348
    
    Epoch 9/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.2983 Acc: 0.8852
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2060 Acc: 0.9203
    
    Epoch 10/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.3563 Acc: 0.8525
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.1771 Acc: 0.9420
    
    Training complete in 13m 36s
    Best val Acc: 0.949275
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Experiments:
    Study the code and the results obtained.</p>
    <p>Modify the code and add an "eval_model" function to allow
    the evaluation of the model on a test set (different from the learning and validation sets used during the learning phase). Study the results obtained.</p>
    <p>Now modify the code to replace the current classification layer with a set of two layers using a "relu" activation function for the middle layer, and the "dropout" mechanism for both layers. Renew the experiments and study the results obtained.</p>
    <p>Apply ther quantization (post and quantization aware) and evaluate impact on model size and accuracy.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <hr>
    <p>Dans cette partie, nous allons ajouter un dataset de test. On configure le data_transform pour qu'il prennent en compte les données test contenu dans le dossier test.</p>
    <p>On va aussi configurer la sortie avec la nouvelle structure de neurones.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">copy</span>
    <span class="kn">import</span> <span class="nn">os</span>
    <span class="kn">import</span> <span class="nn">time</span>
    
    <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
    <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
    <span class="kn">import</span> <span class="nn">torch</span>
    <span class="kn">import</span> <span class="nn">torch.nn</span> <span class="k">as</span> <span class="nn">nn</span>
    <span class="kn">import</span> <span class="nn">torch.optim</span> <span class="k">as</span> <span class="nn">optim</span>
    <span class="kn">import</span> <span class="nn">torchvision</span>
    <span class="kn">from</span> <span class="nn">torch.optim</span> <span class="kn">import</span> <span class="n">lr_scheduler</span>
    <span class="kn">from</span> <span class="nn">torchvision</span> <span class="kn">import</span> <span class="n">datasets</span><span class="p">,</span> <span class="n">transforms</span>
    
    <span class="c1"># Data augmentation and normalization for training</span>
    <span class="c1"># Just normalization for validation</span>
    
    <span class="c1"># on ajoute les data test</span>
    <span class="n">data_transforms</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;train&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomResizedCrop</span><span class="p">(</span>
                    <span class="mi">224</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models were trained on 224x224 images</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">RandomHorizontalFlip</span><span class="p">(),</span>  <span class="c1"># flip horizontally 50% of the time - increases train set variability</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>  <span class="c1"># convert it to a PyTorch tensor</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">(</span>
                    <span class="p">[</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]</span>
                <span class="p">),</span>  <span class="c1"># ImageNet models expect this norm</span>
            <span class="p">]</span>
        <span class="p">),</span>
        <span class="s2">&quot;val&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Resize</span><span class="p">(</span><span class="mi">256</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">CenterCrop</span><span class="p">(</span><span class="mi">224</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]),</span>
            <span class="p">]</span>
        <span class="p">),</span>
        <span class="s2">&quot;test&quot;</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">Compose</span><span class="p">(</span>
            <span class="p">[</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Resize</span><span class="p">(</span><span class="mi">256</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">CenterCrop</span><span class="p">(</span><span class="mi">224</span><span class="p">),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">ToTensor</span><span class="p">(),</span>
                <span class="n">transforms</span><span class="o">.</span><span class="n">Normalize</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">]),</span>
            <span class="p">]</span>
        <span class="p">),</span>
    <span class="p">}</span>
    
    <span class="n">data_dir</span> <span class="o">=</span> <span class="s2">&quot;hymenoptera_data&quot;</span>
    <span class="c1"># Create train and validation datasets and loaders</span>
    <span class="n">image_datasets</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">datasets</span><span class="o">.</span><span class="n">ImageFolder</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">data_dir</span><span class="p">,</span> <span class="n">x</span><span class="p">),</span> <span class="n">data_transforms</span><span class="p">[</span><span class="n">x</span><span class="p">])</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">,</span><span class="s2">&quot;test&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    
    <span class="n">dataloaders</span> <span class="o">=</span> <span class="p">{</span>
        <span class="n">x</span><span class="p">:</span> <span class="n">torch</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">DataLoader</span><span class="p">(</span>
            <span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">],</span> <span class="n">batch_size</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">shuffle</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">num_workers</span><span class="o">=</span><span class="mi">4</span>
        <span class="p">)</span>
        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">,</span><span class="s2">&quot;test&quot;</span><span class="p">]</span>
    <span class="p">}</span>
    <span class="n">dataset_sizes</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">image_datasets</span><span class="p">[</span><span class="n">x</span><span class="p">])</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">,</span><span class="s2">&quot;test&quot;</span><span class="p">]}</span>
    <span class="n">class_names</span> <span class="o">=</span> <span class="n">image_datasets</span><span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">classes</span>
    <span class="n">device</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">&quot;cuda:0&quot;</span> <span class="k">if</span> <span class="n">torch</span><span class="o">.</span><span class="n">cuda</span><span class="o">.</span><span class="n">is_available</span><span class="p">()</span> <span class="k">else</span> <span class="s2">&quot;cpu&quot;</span><span class="p">)</span>
    
    <span class="c1"># Helper function for displaying images</span>
    <span class="k">def</span> <span class="nf">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Imshow for Tensor.&quot;&quot;&quot;</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">numpy</span><span class="p">()</span><span class="o">.</span><span class="n">transpose</span><span class="p">((</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
        <span class="n">mean</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.485</span><span class="p">,</span> <span class="mf">0.456</span><span class="p">,</span> <span class="mf">0.406</span><span class="p">])</span>
        <span class="n">std</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">0.229</span><span class="p">,</span> <span class="mf">0.224</span><span class="p">,</span> <span class="mf">0.225</span><span class="p">])</span>
    
        <span class="c1"># Un-normalize the images</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">std</span> <span class="o">*</span> <span class="n">inp</span> <span class="o">+</span> <span class="n">mean</span>
        <span class="c1"># Clip just in case</span>
        <span class="n">inp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">inp</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">title</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
            <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">pause</span><span class="p">(</span><span class="mf">0.001</span><span class="p">)</span>  <span class="c1"># pause a bit so that plots are updated</span>
        <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
    
    
    <span class="c1"># Get a batch of training data</span>
    <span class="c1"># inputs, classes = next(iter(dataloaders[&#39;train&#39;]))</span>
    
    <span class="c1"># Make a grid from batch</span>
    <span class="c1"># out = torchvision.utils.make_grid(inputs)</span>
    
    <span class="c1"># imshow(out, title=[class_names[x] for x in classes])</span>
    <span class="c1"># training</span>
    
    
    <span class="k">def</span> <span class="nf">train_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">criterion</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">scheduler</span><span class="p">,</span> <span class="n">num_epochs</span><span class="o">=</span><span class="mi">25</span><span class="p">):</span>
        <span class="n">since</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    
        <span class="n">best_model_wts</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">())</span>
        <span class="n">best_acc</span> <span class="o">=</span> <span class="mf">0.0</span>
    
        <span class="n">epoch_time</span> <span class="o">=</span> <span class="p">[]</span>  <span class="c1"># we&#39;ll keep track of the time needed for each epoch</span>
    
        <span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_epochs</span><span class="p">):</span>
            <span class="n">epoch_start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Epoch </span><span class="si">{}</span><span class="s2">/</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">num_epochs</span><span class="p">))</span>
            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;-&quot;</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span>
    
            <span class="c1"># Each epoch has a training and validation phase</span>
            <span class="k">for</span> <span class="n">phase</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;train&quot;</span><span class="p">,</span> <span class="s2">&quot;val&quot;</span><span class="p">]:</span>
                <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">:</span>
                    <span class="n">scheduler</span><span class="o">.</span><span class="n">step</span><span class="p">()</span>
                    <span class="n">model</span><span class="o">.</span><span class="n">train</span><span class="p">()</span>  <span class="c1"># Set model to training mode</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="n">model</span><span class="o">.</span><span class="n">eval</span><span class="p">()</span>  <span class="c1"># Set model to evaluate mode</span>
    
                <span class="n">running_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
                <span class="n">running_corrects</span> <span class="o">=</span> <span class="mi">0</span>
    
                <span class="c1"># Iterate over data.</span>
                <span class="k">for</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">labels</span> <span class="ow">in</span> <span class="n">dataloaders</span><span class="p">[</span><span class="n">phase</span><span class="p">]:</span>
                    <span class="n">inputs</span> <span class="o">=</span> <span class="n">inputs</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
                    <span class="n">labels</span> <span class="o">=</span> <span class="n">labels</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
    
                    <span class="c1"># zero the parameter gradients</span>
                    <span class="n">optimizer</span><span class="o">.</span><span class="n">zero_grad</span><span class="p">()</span>
    
                    <span class="c1"># Forward</span>
                    <span class="c1"># Track history if only in training phase</span>
                    <span class="k">with</span> <span class="n">torch</span><span class="o">.</span><span class="n">set_grad_enabled</span><span class="p">(</span><span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">):</span>
                        <span class="n">outputs</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">inputs</span><span class="p">)</span>
                        <span class="n">_</span><span class="p">,</span> <span class="n">preds</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                        <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="n">labels</span><span class="p">)</span>
    
                        <span class="c1"># backward + optimize only if in training phase</span>
                        <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;train&quot;</span><span class="p">:</span>
                            <span class="n">loss</span><span class="o">.</span><span class="n">backward</span><span class="p">()</span>
                            <span class="n">optimizer</span><span class="o">.</span><span class="n">step</span><span class="p">()</span>
    
                    <span class="c1"># Statistics</span>
                    <span class="n">running_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">inputs</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
                    <span class="n">running_corrects</span> <span class="o">+=</span> <span class="n">torch</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">preds</span> <span class="o">==</span> <span class="n">labels</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
    
    
                <span class="n">epoch_loss</span> <span class="o">=</span> <span class="n">running_loss</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
                <span class="n">epoch_acc</span> <span class="o">=</span> <span class="n">running_corrects</span><span class="o">.</span><span class="n">double</span><span class="p">()</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
    
                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2"> Loss: </span><span class="si">{:.4f}</span><span class="s2"> Acc: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">phase</span><span class="p">,</span> <span class="n">epoch_loss</span><span class="p">,</span> <span class="n">epoch_acc</span><span class="p">))</span>
    
                <span class="c1"># Deep copy the model</span>
                <span class="k">if</span> <span class="n">phase</span> <span class="o">==</span> <span class="s2">&quot;val&quot;</span> <span class="ow">and</span> <span class="n">epoch_acc</span> <span class="o">&gt;</span> <span class="n">best_acc</span><span class="p">:</span>
                    <span class="n">best_acc</span> <span class="o">=</span> <span class="n">epoch_acc</span>
                    <span class="n">best_model_wts</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">())</span>
    
            <span class="c1"># Add the epoch time</span>
            <span class="n">t_epoch</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">epoch_start</span>
            <span class="n">epoch_time</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">t_epoch</span><span class="p">)</span>
    
    
        <span class="n">time_elapsed</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">since</span>
        <span class="nb">print</span><span class="p">(</span>
            <span class="s2">&quot;Training complete in </span><span class="si">{:.0f}</span><span class="s2">m </span><span class="si">{:.0f}</span><span class="s2">s&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">time_elapsed</span> <span class="o">//</span> <span class="mi">60</span><span class="p">,</span> <span class="n">time_elapsed</span> <span class="o">%</span> <span class="mi">60</span>
            <span class="p">)</span>
        <span class="p">)</span>
        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Best val Acc: </span><span class="si">{:4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">best_acc</span><span class="p">))</span>
    
        <span class="c1"># Load best model weights</span>
        <span class="n">model</span><span class="o">.</span><span class="n">load_state_dict</span><span class="p">(</span><span class="n">best_model_wts</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">model</span><span class="p">,</span> <span class="n">epoch_time</span>
    
    
    
    <span class="c1"># Download a pre-trained ResNet18 model and freeze its weights</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">torchvision</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">resnet18</span><span class="p">(</span><span class="n">pretrained</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
    <span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">parameters</span><span class="p">():</span>
        <span class="n">param</span><span class="o">.</span><span class="n">requires_grad</span> <span class="o">=</span> <span class="kc">False</span>
    
    <span class="c1"># Replace the final fully connected layer</span>
    <span class="c1"># Parameters of newly constructed modules have requires_grad=True by default</span>
    <span class="n">num_ftrs</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">fc</span><span class="o">.</span><span class="n">in_features</span>
    
    <span class="c1"># on ajoute les nouvelles couches</span>
    <span class="n">model</span><span class="o">.</span><span class="n">fc</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span>
        <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="n">num_ftrs</span><span class="p">,</span> <span class="mi">256</span><span class="p">),</span>  <span class="c1"># Add a layer with 256 neurons</span>
        <span class="n">nn</span><span class="o">.</span><span class="n">ReLU</span><span class="p">(),</span>                 <span class="c1"># Apply ReLU activation function</span>
        <span class="n">nn</span><span class="o">.</span><span class="n">Dropout</span><span class="p">(</span><span class="mf">0.5</span><span class="p">),</span>           <span class="c1"># Apply dropout with a probability of 0.5</span>
        <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">256</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>           <span class="c1"># Add the final layer with 2 output neurons</span>
    <span class="p">)</span>
    
    
    <span class="c1"># Send the model to the GPU</span>
    <span class="n">model</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
    <span class="c1"># Set the loss function</span>
    <span class="n">criterion</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">CrossEntropyLoss</span><span class="p">()</span>
    
    <span class="c1"># Observe that only the parameters of the final layer are being optimized</span>
    <span class="n">optimizer_conv</span> <span class="o">=</span> <span class="n">optim</span><span class="o">.</span><span class="n">SGD</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">fc</span><span class="o">.</span><span class="n">parameters</span><span class="p">(),</span> <span class="n">lr</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">momentum</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
    <span class="n">exp_lr_scheduler</span> <span class="o">=</span> <span class="n">lr_scheduler</span><span class="o">.</span><span class="n">StepLR</span><span class="p">(</span><span class="n">optimizer_conv</span><span class="p">,</span> <span class="n">step_size</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
    <span class="n">model</span><span class="p">,</span> <span class="n">epoch_time</span> <span class="o">=</span> <span class="n">train_model</span><span class="p">(</span>
        <span class="n">model</span><span class="p">,</span> <span class="n">criterion</span><span class="p">,</span> <span class="n">optimizer_conv</span><span class="p">,</span> <span class="n">exp_lr_scheduler</span><span class="p">,</span> <span class="n">num_epochs</span><span class="o">=</span><span class="mi">10</span>
    <span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Epoch 1/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.6493 Acc: 0.6189
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.5245 Acc: 0.7174
    Epoch 2/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.5375 Acc: 0.7254
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.3046 Acc: 0.9203
    Epoch 3/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.5194 Acc: 0.7500
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2810 Acc: 0.8986
    Epoch 4/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4514 Acc: 0.7910
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2425 Acc: 0.9275
    Epoch 5/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4021 Acc: 0.7910
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2733 Acc: 0.8841
    Epoch 6/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4881 Acc: 0.7500
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2048 Acc: 0.9420
    Epoch 7/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4191 Acc: 0.7951
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2108 Acc: 0.9420
    Epoch 8/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.3865 Acc: 0.8484
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2127 Acc: 0.9348
    Epoch 9/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.4195 Acc: 0.8033
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2022 Acc: 0.9565
    Epoch 10/10
    ----------
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>train Loss: 0.3888 Acc: 0.8156
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>val Loss: 0.2033 Acc: 0.9493
    Training complete in 13m 34s
    Best val Acc: 0.956522
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>On a entraîné ce nouveau modèle. on définit maintenant la fonction eval_model(model), qui va évaluer les performances du modèle sur le data test.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>On ajoute un test d'évaluation du modèle avec de nouvelles données</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">eval_model</span><span class="p">(</span><span class="n">model</span><span class="p">):</span>
        <span class="c1"># initialisation des variables</span>
        <span class="n">running_loss</span> <span class="o">=</span> <span class="mf">0.0</span>
        <span class="n">running_corrects</span> <span class="o">=</span> <span class="mi">0</span>
        
        <span class="c1">#on teste sur les données test</span>
        <span class="k">for</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">labels</span> <span class="ow">in</span> <span class="n">dataloaders</span><span class="p">[</span><span class="s2">&quot;test&quot;</span><span class="p">]:</span>
            <span class="n">inputs</span> <span class="o">=</span> <span class="n">inputs</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
            <span class="n">labels</span> <span class="o">=</span> <span class="n">labels</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
    
            <span class="n">outputs</span> <span class="o">=</span> <span class="n">model</span><span class="p">(</span><span class="n">inputs</span><span class="p">)</span>
            <span class="n">_</span><span class="p">,</span> <span class="n">preds</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
            <span class="n">loss</span> <span class="o">=</span> <span class="n">criterion</span><span class="p">(</span><span class="n">outputs</span><span class="p">,</span> <span class="n">labels</span><span class="p">)</span>
    
            <span class="c1"># Statistics</span>
            <span class="n">running_loss</span> <span class="o">+=</span> <span class="n">loss</span><span class="o">.</span><span class="n">item</span><span class="p">()</span> <span class="o">*</span> <span class="n">inputs</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
            <span class="n">running_corrects</span> <span class="o">+=</span> <span class="n">torch</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">preds</span> <span class="o">==</span> <span class="n">labels</span><span class="o">.</span><span class="n">data</span><span class="p">)</span>
    
        <span class="c1">#Calcul du loss et de l&#39;accuracy</span>
        <span class="n">loss</span> <span class="o">=</span> <span class="n">running_loss</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="s2">&quot;test&quot;</span><span class="p">]</span>
        <span class="n">acc</span> <span class="o">=</span> <span class="n">running_corrects</span><span class="o">.</span><span class="n">double</span><span class="p">()</span> <span class="o">/</span> <span class="n">dataset_sizes</span><span class="p">[</span><span class="s2">&quot;test&quot;</span><span class="p">]</span>
            
        <span class="k">return</span> <span class="n">loss</span><span class="p">,</span><span class="n">acc</span>
    
    <span class="n">loss</span><span class="p">,</span><span class="n">acc</span><span class="o">=</span><span class="n">eval_model</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Loss: </span><span class="si">{:.4f}</span><span class="s2"> Acc: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">loss</span><span class="p">,</span> <span class="n">acc</span><span class="p">))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Loss: 0.0623 Acc: 1.0000
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>On obtient une précision de 1 sur l'échantillon test. (il faudrait ajouter plus de photos)</p>
    <hr>
    <p>On va maintenant quantizer le modèle et comparer la taille des modèles.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">quantized_model</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">quantization</span><span class="o">.</span><span class="n">quantize_dynamic</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">qint8</span><span class="p">)</span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    <span class="n">print_size_of_model</span><span class="p">(</span><span class="n">quantized_model</span><span class="p">,</span> <span class="s2">&quot;int8&quot;</span><span class="p">)</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>model:  int8  	 Size (KB): 45304.25
    model:  int8  	 Size (KB): 44911.014
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt">Out[&nbsp;]:</div>
    
    
    
    
    <div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain">
    <pre>44911014</pre>
    </div>
    
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>La quantization permet de passer de 45304.25 à 44911.014 KB.</p>
    <p>On étudie les performances du modèle.</p>
    
    </div>
    </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell   ">
    <div class="jp-Cell-inputWrapper">
    <div class="jp-InputArea jp-Cell-inputArea">
    <div class="jp-InputPrompt jp-InputArea-prompt">In&nbsp;[&nbsp;]:</div>
    <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
         <div class="CodeMirror cm-s-jupyter">
    <div class=" highlight hl-ipython3"><pre><span></span><span class="n">loss</span><span class="p">,</span><span class="n">acc</span><span class="o">=</span><span class="n">eval_model</span><span class="p">(</span><span class="n">quantized_model</span><span class="p">)</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Loss: </span><span class="si">{:.4f}</span><span class="s2"> Acc: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">loss</span><span class="p">,</span> <span class="n">acc</span><span class="p">))</span>
    </pre></div>
    
         </div>
    </div>
    </div>
    </div>
    
    <div class="jp-Cell-outputWrapper">
    
    
    <div class="jp-OutputArea jp-Cell-outputArea">
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
    <pre>/Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    /Users/franck/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the &#39;ssl&#39; module is compiled with &#39;LibreSSL 2.8.3&#39;. See: https://github.com/urllib3/urllib3/issues/3020
      warnings.warn(
    </pre>
    </div>
    </div>
    
    <div class="jp-OutputArea-child">
    
        
        <div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
    
    
    <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
    <pre>Loss: 0.2032 Acc: 1.0000
    </pre>
    </div>
    </div>
    
    </div>
    
    </div>
    
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <p>Le modèle quantizé permet aussi d'atteindre une précision de 1.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Optional">Optional<a class="anchor-link" href="#Optional">&#182;</a></h2><p>Try this at home!!</p>
    <p>Pytorch offers a framework to export a given CNN to your selfphone (either android or iOS). Have a look at the tutorial <a href="https://pytorch.org/mobile/home/">https://pytorch.org/mobile/home/</a></p>
    <p>The Exercise consists in deploying the CNN of Exercise 4 in your phone and then test it on live.</p>
    
    </div>
    </div>
    <div class="jp-Cell-inputWrapper"><div class="jp-InputPrompt jp-InputArea-prompt">
    </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
    <h2 id="Author">Author<a class="anchor-link" href="#Author">&#182;</a></h2><p>Alberto BOSIO - Ph. D.</p>
    
    </div>
    </div>
    </body>
    
    
    
    
    
    
    
    </html>