MarcSkovMadsen commited on
Commit
4ece8a6
1 Parent(s): 0480fcc

Upload 8 files

Browse files
crossfiltering_holoviews_bokeh.html ADDED
@@ -0,0 +1,361 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" >
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Linked Brushing with HoloViews and Bokeh</title>
6
+ <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
7
+ <link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Bokeh"> <style>
8
+ html, body {
9
+ display: flow-root;
10
+ box-sizing: border-box;
11
+ height: 100%;
12
+ margin: 0;
13
+ padding: 0;
14
+ }
15
+ </style>
16
+ <style>
17
+
18
+ .main .card-margin.stretch_both {
19
+ height: calc(50vh - 65px) !important;
20
+ }
21
+
22
+ </style>
23
+
24
+ <style type="text/css">
25
+ :host(.pn-loading),
26
+ .pn-loading {
27
+ overflow: hidden;
28
+ }
29
+
30
+ :host(.pn-loading):before,
31
+ .pn-loading:before {
32
+ position: absolute;
33
+ height: 100%;
34
+ width: 100%;
35
+ content: '';
36
+ z-index: 1000;
37
+ background-color: rgb(255, 255, 255, 0.5);
38
+ border-color: lightgray;
39
+ background-repeat: no-repeat;
40
+ background-position: center;
41
+ background-size: auto 50%;
42
+ border-width: 1px;
43
+ cursor: progress;
44
+ }
45
+
46
+ :host(.pn-loading) .pn-loading-msg,
47
+ .pn-loading .pn-loading-msg {
48
+ position: absolute;
49
+ top: 72%;
50
+ font-size: 2em;
51
+ color: black;
52
+ width: 100%;
53
+ text-align: center;
54
+ }
55
+
56
+
57
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
58
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
59
+ background-size: auto calc(min(50%, 400px));
60
+ }
61
+ </style><script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
62
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
63
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
64
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
65
+ <script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
66
+
67
+ <script type="text/javascript">
68
+ Bokeh.set_log_level("info");
69
+ </script><!-- Template CSS -->
70
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
71
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
72
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
73
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
74
+ <style type="text/css">
75
+
76
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
77
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
78
+ background-size: auto calc(min(50%, 400px));
79
+ }
80
+ </style>
81
+ <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
82
+
83
+ <style>
84
+ :root {
85
+ --background-color: #ffffff;
86
+ --body-font: Open Sans, sans-serif;
87
+ --corner-radius: 3;
88
+ --header-background: #F08080;
89
+ --header-color: #ffffff;
90
+ --sidebar-width: 330px;
91
+ }
92
+ body {
93
+ color: #2B2B2B;
94
+ background-color: var(--background-color);
95
+ font-family: var(--body-font);
96
+ }
97
+ #header a {
98
+ color: currentColor;
99
+ }
100
+ #header-design-provider {
101
+ --neutral-fill-hover: var(--header-background);
102
+ --neutral-fill-rest: var(--header-background);
103
+ --neutral-foreground-rest: var(--header-color);
104
+ background: var(--header-background);
105
+ color: var(--header-color);
106
+ }
107
+ #sidebar {
108
+ min-width: var(--sidebar-width);
109
+ max-width: var(--sidebar-width);
110
+ }
111
+ </style>
112
+
113
+ <!-- Template JS -->
114
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
115
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
116
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
117
+
118
+ <!-- Fast Script -->
119
+ <script type="text/javascript">
120
+ document.addEventListener('DOMContentLoaded', (event) => {
121
+ const header_design = new window.fastDesignProvider("#header-design-provider");
122
+ const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
123
+ body_design.setLuminance(1.0);
124
+ body_design.setAccentColor("#F08080")
125
+ body_design.setNeutralColor("#000000");
126
+ header_design.setLuminance(1.0);
127
+ header_design.setAccentColor("#ffffff");
128
+ header_design.setNeutralColor("#ffffff");
129
+ });
130
+ </script>
131
+ </head>
132
+ <body class="pn-loading pn-arc">
133
+ <fast-design-system-provider id="body-design-provider" use-defaults>
134
+ <div id="container">
135
+ <fast-design-system-provider id="header-design-provider">
136
+ <nav id="header" class="shadow" >
137
+ <div class="app-header">
138
+ <a class="title" href="https://awesome-panel.org" >&nbsp;Awesome Panel</a>
139
+ <span class="title">-</span>
140
+ <a class="title" href="" >Linked Brushing with HoloViews and Bokeh</a>
141
+ </div>
142
+ <div id="header-items">
143
+ </div>
144
+ <div class="pn-toggle-theme">
145
+ <fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
146
+ <span slot="checked-message">
147
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
148
+ </span>
149
+ <span slot="unchecked-message">
150
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
151
+ </span>
152
+ </fast-switch>
153
+ <fast-tooltip anchor="theme-switch" position="bottom">
154
+ Toggle the Theme
155
+ </fast-tooltip>
156
+ </div>
157
+ <div class="pn-busy-container" id="busy-container">
158
+ <div id="dc61fe4c-8fdd-4524-96d3-a3f35d5781ae" data-root-id="p1016" style="display: contents;"></div>
159
+ </div>
160
+ <fast-tooltip anchor="busy-container" position="left">
161
+ Busy Indicator
162
+ </fast-tooltip>
163
+ </nav>
164
+ </fast-design-system-provider>
165
+
166
+ <div class="row" id="content">
167
+
168
+ <div class="main" id="main">
169
+ <div class="card-margin stretch_both">
170
+ <fast-card class="pn-wrapper">
171
+ <span class="fullscreen-button" onclick="toggleFullScreen(this)">
172
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
173
+ <path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
174
+ </svg>
175
+ </span>
176
+ <div id="add04605-0627-4b50-86bb-65ced26ec51e" data-root-id="p1017" style="display: contents;"></div>
177
+ </fast-card>
178
+ </div>
179
+ <div class="card-margin stretch_both">
180
+ <fast-card class="pn-wrapper">
181
+ <span class="fullscreen-button" onclick="toggleFullScreen(this)">
182
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
183
+ <path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
184
+ </svg>
185
+ </span>
186
+ <div id="e838e2a8-4055-4e77-b73a-6915f363fd82" data-root-id="p1125" style="display: contents;"></div>
187
+ </fast-card>
188
+ </div>
189
+ </div>
190
+ <fast-dialog id="pn-Modal" hidden>
191
+ <fast-button class="pn-modal-close" id="pn-closeModal">&times;</fast-button>
192
+ <div>
193
+ </div>
194
+ </fast-dialog>
195
+ </div>
196
+ </div>
197
+ </fast-design-system-provider>
198
+
199
+ <script type="text/javascript">
200
+
201
+ </script>
202
+
203
+ <script type="text/javascript">
204
+ function openNav() {
205
+ document.getElementById("sidebar").classList.remove("hidden");
206
+ document.getElementById("sidebar-button").onclick = closeNav;
207
+ }
208
+
209
+ function closeNav() {
210
+ document.getElementById("sidebar").classList.add("hidden");
211
+ document.getElementById("sidebar-button").onclick = openNav;
212
+ }
213
+
214
+ var modal = document.getElementById("pn-Modal");
215
+ var span = document.getElementById("pn-closeModal");
216
+
217
+ span.onclick = function() {
218
+ modal.style.display = "none";
219
+ }
220
+
221
+ window.onclick = function(event) {
222
+ if (event.target == modal) {
223
+ modal.style.display = "none";
224
+ }
225
+ }
226
+ </script>
227
+
228
+ <div id="bbc1b4af-1fa6-45fd-9e80-691b823dc4f1" data-root-id="p1009" style="display: contents;"></div>
229
+ <div id="c3c73736-69e6-4f43-82ff-dc138844764d" data-root-id="p1012" style="display: contents;"></div>
230
+ <div id="d0a56b2a-f0e6-40d1-8b8f-3f3a6b1db1cf" data-root-id="p1002" style="display: contents;"></div>
231
+ <div id="becc99cc-5b2d-4904-9c08-9476a8cc030d" data-root-id="p1013" style="display: contents;"></div>
232
+
233
+
234
+ <script type="text/javascript">
235
+ const pyodideWorker = new Worker("./crossfiltering_holoviews_bokeh.js");
236
+ pyodideWorker.busy = false
237
+ pyodideWorker.queue = []
238
+
239
+ function send_change(jsdoc, event) {
240
+ if (event.setter_id != null && event.setter_id == 'py') {
241
+ return
242
+ } else if (pyodideWorker.busy && event.model && event.attr) {
243
+ let events = []
244
+ for (const old_event of pyodideWorker.queue) {
245
+ if (!(old_event.model === event.model && old_event.attr === event.attr)) {
246
+ events.push(old_event)
247
+ }
248
+ }
249
+ events.push(event)
250
+ pyodideWorker.queue = events
251
+ return
252
+ }
253
+ const patch = jsdoc.create_json_patch([event])
254
+ pyodideWorker.busy = true
255
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
256
+ }
257
+
258
+ pyodideWorker.onmessage = async (event) => {
259
+ const msg = event.data
260
+
261
+ const body = document.getElementsByTagName('body')[0]
262
+ const loading_msgs = document.getElementsByClassName('pn-loading-msg')
263
+ if (msg.type === 'idle') {
264
+ if (pyodideWorker.queue.length) {
265
+ const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
266
+ pyodideWorker.busy = true
267
+ pyodideWorker.queue = []
268
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
269
+ } else {
270
+ pyodideWorker.busy = false
271
+ }
272
+ } else if (msg.type === 'status') {
273
+ let loading_msg
274
+ if (loading_msgs.length) {
275
+ loading_msg = loading_msgs[0]
276
+ } else if (body.classList.contains('pn-loading')) {
277
+ loading_msg = document.createElement('div')
278
+ loading_msg.classList.add('pn-loading-msg')
279
+ body.appendChild(loading_msg)
280
+ }
281
+ if (loading_msg != null) {
282
+ loading_msg.innerHTML = msg.msg
283
+ }
284
+ } else if (msg.type === 'render') {
285
+ const docs_json = JSON.parse(msg.docs_json)
286
+ const render_items = JSON.parse(msg.render_items)
287
+ const root_ids = JSON.parse(msg.root_ids)
288
+
289
+ // Remap roots in message to element IDs
290
+ const root_els = document.querySelectorAll('[data-root-id]')
291
+ const data_roots = []
292
+ for (const el of root_els) {
293
+ el.innerHTML = ''
294
+ data_roots.push([el.getAttribute('data-root-id'), el.id])
295
+ }
296
+ data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
297
+ const roots = {}
298
+ for (let i=0; i<data_roots.length; i++) {
299
+ roots[root_ids[i]] = data_roots[i][1]
300
+ }
301
+ render_items[0]['roots'] = roots
302
+ render_items[0]['root_ids'] = root_ids
303
+
304
+ // Embed content
305
+ const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
306
+
307
+ // Remove loading spinner and message
308
+ body.classList.remove("pn-loading", "arc")
309
+ for (const loading_msg of loading_msgs) {
310
+ loading_msg.remove()
311
+ }
312
+
313
+ // Setup bi-directional syncing
314
+ pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
315
+ jsdoc.on_change(send_change.bind(null, jsdoc), false)
316
+ pyodideWorker.postMessage({'type': 'rendered'})
317
+ pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
318
+ } else if (msg.type === 'patch') {
319
+ pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
320
+ }
321
+ };
322
+ </script>
323
+ <script type="application/json" id="p1260">
324
+ {"bdf6524f-6300-4712-933b-3702aa22cf38":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Bokeh","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1238","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1235","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1239","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01026"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;block&amp;#x27;"]],["close_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;none&amp;#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1240","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1241","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1235"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-140403941563984","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1242","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1243","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1235"}],"margin":0,"sizing_mode":"stretch_both","align":"start","children":[{"type":"object","name":"Figure","id":"p1048","attributes":{"subscribed_events":{"type":"set","entries":["selectiongeometry","reset"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1244","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"width":null,"height":null,"margin":[5,10],"sizing_mode":"stretch_both","align":"start","x_range":{"type":"object","name":"Range1d","id":"p1018","attributes":{"tags":[[["sepal_length","sepal_length",null]],[]],"start":3.9399999999999995,"end":8.26,"reset_start":3.9399999999999995,"reset_end":8.26}},"y_range":{"type":"object","name":"Range1d","id":"p1019","attributes":{"tags":[[["sepal_width","sepal_width",null]],{"type":"map","entries":[["invert_yaxis",false],["autorange",false]]}],"start":1.76,"end":4.640000000000001,"reset_start":1.76,"reset_end":4.640000000000001}},"x_scale":{"type":"object","name":"LinearScale","id":"p1058"},"y_scale":{"type":"object","name":"LinearScale","id":"p1059"},"title":{"type":"object","name":"Title","id":"p1051","attributes":{"text_color":"#2B2B2B","text_font":"Open Sans, sans-serif","text_font_size":"1.15em"}},"outline_line_color":"#888888","outline_line_alpha":0.5,"outline_line_width":1,"renderers":[{"type":"object","name":"GlyphRenderer","id":"p1090","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1079","attributes":{"selected":{"type":"object","name":"Selection","id":"p1080","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1081"},"data":{"type":"map","entries":[["sepal_length",{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}],["sepal_width",{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1091","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1092"}}},"glyph":{"type":"object","name":"Scatter","id":"p1085","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"selection_glyph":{"type":"object","name":"Scatter","id":"p1087","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"nonselection_glyph":{"type":"object","name":"Scatter","id":"p1086","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"hover_glyph":{"type":"object","name":"Scatter","id":"p1088","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"muted_glyph":{"type":"object","name":"Scatter","id":"p1089","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}}}},{"type":"object","name":"BoxAnnotation","id":"p1096","attributes":{"level":"glyph","visible":false,"left":{"type":"object","name":"Node","id":"p1105","attributes":{"target":"frame","symbol":"left"}},"right":{"type":"object","name":"Node","id":"p1106","attributes":{"target":"frame","symbol":"right"}},"top":{"type":"object","name":"Node","id":"p1108","attributes":{"target":"frame","symbol":"top"}},"bottom":{"type":"object","name":"Node","id":"p1107","attributes":{"target":"frame","symbol":"bottom"}},"line_color":"#c9cbce","line_alpha":1.0,"fill_color":"#c9cbce","fill_alpha":0.2,"hover_line_alpha":1.0,"hover_fill_alpha":1.0}},{"type":"object","name":"GlyphRenderer","id":"p1120","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1109","attributes":{"selected":{"type":"object","name":"Selection","id":"p1110","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1111"},"data":{"type":"map","entries":[["sepal_length",{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}],["sepal_width",{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1121","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1122"}}},"glyph":{"type":"object","name":"Scatter","id":"p1115","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"selection_glyph":{"type":"object","name":"Scatter","id":"p1117","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"nonselection_glyph":{"type":"object","name":"Scatter","id":"p1116","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"hover_glyph":{"type":"object","name":"Scatter","id":"p1118","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"muted_glyph":{"type":"object","name":"Scatter","id":"p1119","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}}}}],"toolbar":{"type":"object","name":"Toolbar","id":"p1057","attributes":{"tools":[{"type":"object","name":"BoxSelectTool","id":"p1031","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1041","attributes":{"args":{"type":"map","entries":[["other",{"type":"object","name":"LassoSelectTool","id":"p1037","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1042","attributes":{"args":{"type":"map","entries":[["other",{"id":"p1031"}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"PolyAnnotation","id":"p1029","attributes":{"syncable":false,"level":"overlay","visible":false,"xs":[],"ys":[],"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"BoxAnnotation","id":"p1023","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"id":"p1037"},{"type":"object","name":"WheelZoomTool","id":"p1039","attributes":{"tags":["hv_created"],"renderers":"auto","zoom_together":"none"}},{"type":"object","name":"HoverTool","id":"p1040","attributes":{"tags":["hv_created"],"renderers":[{"id":"p1090"},{"id":"p1120"}],"tooltips":[["sepal_length","@{sepal_length}"],["sepal_width","@{sepal_width}"]]}},{"type":"object","name":"SaveTool","id":"p1070"},{"type":"object","name":"PanTool","id":"p1071"},{"type":"object","name":"BoxZoomTool","id":"p1072","attributes":{"overlay":{"type":"object","name":"BoxAnnotation","id":"p1073","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"left_units":"canvas","right_units":"canvas","top_units":"canvas","bottom_units":"canvas","line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"type":"object","name":"ResetTool","id":"p1078"}],"active_drag":{"id":"p1031"}}},"left":[{"type":"object","name":"LinearAxis","id":"p1065","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1066","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1067"},"axis_label":"sepal_width","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1068"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"below":[{"type":"object","name":"LinearAxis","id":"p1060","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1061","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1062"},"axis_label":"sepal_length","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1063"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"center":[{"type":"object","name":"Grid","id":"p1064","attributes":{"axis":{"id":"p1060"},"grid_line_color":null,"grid_line_alpha":0.25}},{"type":"object","name":"Grid","id":"p1069","attributes":{"dimension":1,"axis":{"id":"p1065"},"grid_line_color":null,"grid_line_alpha":0.25}}],"background_fill_color":"#ffffff","border_fill_color":"#F7F7F7","border_fill_alpha":0,"min_border_top":10,"min_border_bottom":10,"min_border_left":10,"min_border_right":10,"output_backend":"webgl"}}]}},{"type":"object","name":"panel.models.layout.Column","id":"p1125","attributes":{"name":"main-140403941567120","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1245","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1246","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1235"}],"margin":0,"sizing_mode":"stretch_both","align":"start","children":[{"type":"object","name":"Figure","id":"p1156","attributes":{"subscribed_events":{"type":"set","entries":["selectiongeometry","reset"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1247","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"width":null,"height":null,"margin":[5,10],"sizing_mode":"stretch_both","align":"start","x_range":{"type":"object","name":"Range1d","id":"p1126","attributes":{"tags":[[["petal_width","petal_width",null]],[]],"start":-0.13999999999999999,"end":2.74,"reset_start":-0.13999999999999999,"reset_end":2.74}},"y_range":{"type":"object","name":"Range1d","id":"p1127","attributes":{"tags":[[["petal_width_count","Count",null]],{"type":"map","entries":[["invert_yaxis",false],["autorange",false]]}],"end":37.4,"reset_start":0.0,"reset_end":37.4}},"x_scale":{"type":"object","name":"LinearScale","id":"p1166"},"y_scale":{"type":"object","name":"LinearScale","id":"p1167"},"title":{"type":"object","name":"Title","id":"p1159","attributes":{"text_color":"#2B2B2B","text_font":"Open Sans, sans-serif","text_font_size":"1.15em"}},"outline_line_color":"#888888","outline_line_alpha":0.5,"outline_line_width":1,"renderers":[{"type":"object","name":"GlyphRenderer","id":"p1198","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1187","attributes":{"selected":{"type":"object","name":"Selection","id":"p1188","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1189"},"data":{"type":"map","entries":[["top",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}],["left",{"type":"ndarray","array":{"type":"bytes","data":"mpmZmZmZuT8pXI/C9SjMP8L1KFyPwtU/cD0K16Nw3T+PwvUoXI/iP2ZmZmZmZuY/PQrXo3A96j8UrkfhehTuP/YoXI/C9fA/4noUrkfh8j/NzMzMzMz0P7gehetRuPY/pHA9Ctej+D+QwvUoXI/6P3sUrkfhevw/ZmZmZmZm/j8pXI/C9SgAQB+F61G4HgFAFa5H4XoUAkAK16NwPQoDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["right",{"type":"ndarray","array":{"type":"bytes","data":"KVyPwvUozD/C9Shcj8LVP3A9CtejcN0/j8L1KFyP4j9mZmZmZmbmPz0K16NwPeo/FK5H4XoU7j/2KFyPwvXwP+J6FK5H4fI/zczMzMzM9D+4HoXrUbj2P6RwPQrXo/g/kML1KFyP+j97FK5H4Xr8P2ZmZmZmZv4/KVyPwvUoAEAfhetRuB4BQBWuR+F6FAJACtejcD0KA0AAAAAAAAAEQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width",{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width_count",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1199","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1200"}}},"glyph":{"type":"object","name":"Quad","id":"p1193","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"selection_glyph":{"type":"object","name":"Quad","id":"p1195","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"nonselection_glyph":{"type":"object","name":"Quad","id":"p1194","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"hover_glyph":{"type":"object","name":"Quad","id":"p1196","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"muted_glyph":{"type":"object","name":"Quad","id":"p1197","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}}}},{"type":"object","name":"BoxAnnotation","id":"p1204","attributes":{"level":"glyph","visible":false,"left":{"type":"object","name":"Node","id":"p1213","attributes":{"target":"frame","symbol":"left"}},"right":{"type":"object","name":"Node","id":"p1214","attributes":{"target":"frame","symbol":"right"}},"top":{"type":"object","name":"Node","id":"p1216","attributes":{"target":"frame","symbol":"top"}},"bottom":{"type":"object","name":"Node","id":"p1215","attributes":{"target":"frame","symbol":"bottom"}},"line_color":"#c9cbce","line_alpha":1.0,"fill_color":"#c9cbce","fill_alpha":0.2,"hover_line_alpha":1.0,"hover_fill_alpha":1.0}},{"type":"object","name":"GlyphRenderer","id":"p1228","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1217","attributes":{"selected":{"type":"object","name":"Selection","id":"p1218","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1219"},"data":{"type":"map","entries":[["top",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}],["left",{"type":"ndarray","array":{"type":"bytes","data":"mpmZmZmZuT8pXI/C9SjMP8L1KFyPwtU/cD0K16Nw3T+PwvUoXI/iP2ZmZmZmZuY/PQrXo3A96j8UrkfhehTuP/YoXI/C9fA/4noUrkfh8j/NzMzMzMz0P7gehetRuPY/pHA9Ctej+D+QwvUoXI/6P3sUrkfhevw/ZmZmZmZm/j8pXI/C9SgAQB+F61G4HgFAFa5H4XoUAkAK16NwPQoDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["right",{"type":"ndarray","array":{"type":"bytes","data":"KVyPwvUozD/C9Shcj8LVP3A9CtejcN0/j8L1KFyP4j9mZmZmZmbmPz0K16NwPeo/FK5H4XoU7j/2KFyPwvXwP+J6FK5H4fI/zczMzMzM9D+4HoXrUbj2P6RwPQrXo/g/kML1KFyP+j97FK5H4Xr8P2ZmZmZmZv4/KVyPwvUoAEAfhetRuB4BQBWuR+F6FAJACtejcD0KA0AAAAAAAAAEQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width",{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width_count",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1229","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1230"}}},"glyph":{"type":"object","name":"Quad","id":"p1223","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"selection_glyph":{"type":"object","name":"Quad","id":"p1225","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"nonselection_glyph":{"type":"object","name":"Quad","id":"p1224","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"hover_glyph":{"type":"object","name":"Quad","id":"p1226","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"muted_glyph":{"type":"object","name":"Quad","id":"p1227","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}}}}],"toolbar":{"type":"object","name":"Toolbar","id":"p1165","attributes":{"tools":[{"type":"object","name":"BoxSelectTool","id":"p1139","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1149","attributes":{"args":{"type":"map","entries":[["other",{"type":"object","name":"LassoSelectTool","id":"p1145","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1150","attributes":{"args":{"type":"map","entries":[["other",{"id":"p1139"}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"PolyAnnotation","id":"p1137","attributes":{"syncable":false,"level":"overlay","visible":false,"xs":[],"ys":[],"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"BoxAnnotation","id":"p1131","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"id":"p1145"},{"type":"object","name":"WheelZoomTool","id":"p1147","attributes":{"tags":["hv_created"],"renderers":"auto","zoom_together":"none"}},{"type":"object","name":"HoverTool","id":"p1148","attributes":{"tags":["hv_created"],"renderers":[{"id":"p1198"},{"id":"p1228"}],"tooltips":[["petal_width","@{petal_width}"],["Count","@{petal_width_count}"]]}},{"type":"object","name":"SaveTool","id":"p1178"},{"type":"object","name":"PanTool","id":"p1179"},{"type":"object","name":"BoxZoomTool","id":"p1180","attributes":{"overlay":{"type":"object","name":"BoxAnnotation","id":"p1181","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"left_units":"canvas","right_units":"canvas","top_units":"canvas","bottom_units":"canvas","line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"type":"object","name":"ResetTool","id":"p1186"}],"active_drag":{"id":"p1139"}}},"left":[{"type":"object","name":"LinearAxis","id":"p1173","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1174","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1175"},"axis_label":"Count","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1176"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"below":[{"type":"object","name":"LinearAxis","id":"p1168","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1169","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1170"},"axis_label":"petal_width","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1171"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"center":[{"type":"object","name":"Grid","id":"p1172","attributes":{"axis":{"id":"p1168"},"grid_line_color":null,"grid_line_alpha":0.25}},{"type":"object","name":"Grid","id":"p1177","attributes":{"dimension":1,"axis":{"id":"p1173"},"grid_line_color":null,"grid_line_alpha":0.25}}],"background_fill_color":"#ffffff","border_fill_color":"#F7F7F7","border_fill_alpha":0,"min_border_top":10,"min_border_bottom":10,"min_border_left":10,"min_border_right":10,"output_backend":"webgl"}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
325
+ </script>
326
+ <script type="text/javascript">
327
+ (function() {
328
+ const fn = function() {
329
+ Bokeh.safely(function() {
330
+ (function(root) {
331
+ function embed_document(root) {
332
+ const docs_json = document.getElementById('p1260').textContent;
333
+ const render_items = [{"docid":"bdf6524f-6300-4712-933b-3702aa22cf38","roots":{"p1002":"d0a56b2a-f0e6-40d1-8b8f-3f3a6b1db1cf","p1009":"bbc1b4af-1fa6-45fd-9e80-691b823dc4f1","p1012":"c3c73736-69e6-4f43-82ff-dc138844764d","p1013":"becc99cc-5b2d-4904-9c08-9476a8cc030d","p1016":"dc61fe4c-8fdd-4524-96d3-a3f35d5781ae","p1017":"add04605-0627-4b50-86bb-65ced26ec51e","p1125":"e838e2a8-4055-4e77-b73a-6915f363fd82"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017","p1125"]}];
334
+ root.Bokeh.embed.embed_items(docs_json, render_items);
335
+ }
336
+ if (root.Bokeh !== undefined) {
337
+ embed_document(root);
338
+ } else {
339
+ let attempts = 0;
340
+ const timer = setInterval(function(root) {
341
+ if (root.Bokeh !== undefined) {
342
+ clearInterval(timer);
343
+ embed_document(root);
344
+ } else {
345
+ attempts++;
346
+ if (attempts > 100) {
347
+ clearInterval(timer);
348
+ console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
349
+ }
350
+ }
351
+ }, 10, root)
352
+ }
353
+ })(window);
354
+ });
355
+ };
356
+ if (document.readyState != "loading") fn();
357
+ else document.addEventListener("DOMContentLoaded", fn);
358
+ })();
359
+ </script>
360
+ </body>
361
+ </html>
crossfiltering_holoviews_bokeh.js ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
2
+
3
+ function sendPatch(patch, buffers, msg_id) {
4
+ self.postMessage({
5
+ type: 'patch',
6
+ patch: patch,
7
+ buffers: buffers
8
+ })
9
+ }
10
+
11
+ async function startApplication() {
12
+ console.log("Loading pyodide!");
13
+ self.postMessage({type: 'status', msg: 'Loading pyodide'})
14
+ self.pyodide = await loadPyodide();
15
+ self.pyodide.globals.set("sendPatch", sendPatch);
16
+ console.log("Loaded!");
17
+ await self.pyodide.loadPackage("micropip");
18
+ const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas']
19
+ for (const pkg of env_spec) {
20
+ let pkg_name;
21
+ if (pkg.endsWith('.whl')) {
22
+ pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
23
+ } else {
24
+ pkg_name = pkg
25
+ }
26
+ self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
27
+ try {
28
+ await self.pyodide.runPythonAsync(`
29
+ import micropip
30
+ await micropip.install('${pkg}');
31
+ `);
32
+ } catch(e) {
33
+ console.log(e)
34
+ self.postMessage({
35
+ type: 'status',
36
+ msg: `Error while installing ${pkg_name}`
37
+ });
38
+ }
39
+ }
40
+ console.log("Packages loaded!");
41
+ self.postMessage({type: 'status', msg: 'Executing code'})
42
+ const code = `
43
+
44
+ import asyncio
45
+
46
+ from panel.io.pyodide import init_doc, write_doc
47
+
48
+ init_doc()
49
+
50
+ """*Linked Brushing* is a very powerful technique. It's also often called
51
+ *Linked Selections* or *Crossfiltering*.
52
+
53
+ This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
54
+ (http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
55
+ [Introducing Dash HoloViews]\
56
+ (https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
57
+
58
+ This example uses the *Iris* dataset.
59
+ """
60
+ from typing import Tuple
61
+
62
+ import holoviews as hv
63
+ import pandas as pd
64
+ import panel as pn
65
+ from holoviews import opts
66
+ from panel.template import FastListTemplate
67
+
68
+
69
+ @pn.cache
70
+ def get_iris_data():
71
+ return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
72
+
73
+
74
+ ACCENT = "#F08080"
75
+
76
+ CSS = """
77
+ .main .card-margin.stretch_both {
78
+ height: calc(50vh - 65px) !important;
79
+ }
80
+ """
81
+ if not CSS in pn.config.raw_css:
82
+ pn.config.raw_css.append(CSS)
83
+
84
+ BOKEH_TOOLS = {
85
+ "tools": ["hover"], "active_tools": ["box_select"]
86
+ }
87
+
88
+
89
+ def get_linked_plots() -> Tuple:
90
+ """Returns a tuple (scatter, hist) of linked plots
91
+
92
+ See http://holoviews.org/user_guide/Linked_Brushing.html
93
+ """
94
+
95
+ dataset = hv.Dataset(get_iris_data())
96
+
97
+ scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
98
+ hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
99
+
100
+ # pylint: disable=no-value-for-parameter
101
+ selection_linker = hv.selection.link_selections.instance()
102
+ # pylint: disable=no-member
103
+ scatter = selection_linker(scatter).opts(
104
+ opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
105
+ )
106
+ hist = selection_linker(hist).opts(
107
+ opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
108
+ )
109
+
110
+ return scatter, hist
111
+
112
+
113
+ def create_app():
114
+ """Returns the app in a nice FastListTemplate"""
115
+ scatter, hist = get_linked_plots()
116
+ scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
117
+ hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
118
+
119
+ template = FastListTemplate(
120
+ site="Awesome Panel",
121
+ site_url="https://awesome-panel.org",
122
+ title="Linked Brushing with HoloViews and Bokeh",
123
+ accent=ACCENT,
124
+ main=[
125
+ # We need to wrap in Columns to get them to stretch properly
126
+ pn.Column(scatter_panel, sizing_mode="stretch_both"),
127
+ pn.Column(hist_panel, sizing_mode="stretch_both"),
128
+ ],
129
+ )
130
+ return template
131
+
132
+ pn.extension()
133
+ hv.extension("bokeh")
134
+ create_app().servable()
135
+
136
+
137
+ await write_doc()
138
+ `
139
+
140
+ try {
141
+ const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
142
+ self.postMessage({
143
+ type: 'render',
144
+ docs_json: docs_json,
145
+ render_items: render_items,
146
+ root_ids: root_ids
147
+ })
148
+ } catch(e) {
149
+ const traceback = `${e}`
150
+ const tblines = traceback.split('\n')
151
+ self.postMessage({
152
+ type: 'status',
153
+ msg: tblines[tblines.length-2]
154
+ });
155
+ throw e
156
+ }
157
+ }
158
+
159
+ self.onmessage = async (event) => {
160
+ const msg = event.data
161
+ if (msg.type === 'rendered') {
162
+ self.pyodide.runPythonAsync(`
163
+ from panel.io.state import state
164
+ from panel.io.pyodide import _link_docs_worker
165
+
166
+ _link_docs_worker(state.curdoc, sendPatch, setter='js')
167
+ `)
168
+ } else if (msg.type === 'patch') {
169
+ self.pyodide.globals.set('patch', msg.patch)
170
+ self.pyodide.runPythonAsync(`
171
+ state.curdoc.apply_json_patch(patch.to_py(), setter='js')
172
+ `)
173
+ self.postMessage({type: 'idle'})
174
+ } else if (msg.type === 'location') {
175
+ self.pyodide.globals.set('location', msg.location)
176
+ self.pyodide.runPythonAsync(`
177
+ import json
178
+ from panel.io.state import state
179
+ from panel.util import edit_readonly
180
+ if state.location:
181
+ loc_data = json.loads(location)
182
+ with edit_readonly(state.location):
183
+ state.location.param.update({
184
+ k: v for k, v in loc_data.items() if k in state.location.param
185
+ })
186
+ `)
187
+ }
188
+ }
189
+
190
+ startApplication()
crossfiltering_holoviews_bokeh.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """*Linked Brushing* is a very powerful technique. It's also often called
2
+ *Linked Selections* or *Crossfiltering*.
3
+
4
+ This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
5
+ (http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
6
+ [Introducing Dash HoloViews]\
7
+ (https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
8
+
9
+ This example uses the *Iris* dataset.
10
+ """
11
+ from typing import Tuple
12
+
13
+ import holoviews as hv
14
+ import pandas as pd
15
+ import panel as pn
16
+ from holoviews import opts
17
+ from panel.template import FastListTemplate
18
+
19
+
20
+ @pn.cache
21
+ def get_iris_data():
22
+ return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
23
+
24
+
25
+ ACCENT = "#F08080"
26
+
27
+ CSS = """
28
+ .main .card-margin.stretch_both {
29
+ height: calc(50vh - 65px) !important;
30
+ }
31
+ """
32
+ if not CSS in pn.config.raw_css:
33
+ pn.config.raw_css.append(CSS)
34
+
35
+ BOKEH_TOOLS = {
36
+ "tools": ["hover"], "active_tools": ["box_select"]
37
+ }
38
+
39
+
40
+ def get_linked_plots() -> Tuple:
41
+ """Returns a tuple (scatter, hist) of linked plots
42
+
43
+ See http://holoviews.org/user_guide/Linked_Brushing.html
44
+ """
45
+
46
+ dataset = hv.Dataset(get_iris_data())
47
+
48
+ scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
49
+ hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
50
+
51
+ # pylint: disable=no-value-for-parameter
52
+ selection_linker = hv.selection.link_selections.instance()
53
+ # pylint: disable=no-member
54
+ scatter = selection_linker(scatter).opts(
55
+ opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
56
+ )
57
+ hist = selection_linker(hist).opts(
58
+ opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
59
+ )
60
+
61
+ return scatter, hist
62
+
63
+
64
+ def create_app():
65
+ """Returns the app in a nice FastListTemplate"""
66
+ scatter, hist = get_linked_plots()
67
+ scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
68
+ hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
69
+
70
+ template = FastListTemplate(
71
+ site="Awesome Panel",
72
+ site_url="https://awesome-panel.org",
73
+ title="Linked Brushing with HoloViews and Bokeh",
74
+ accent=ACCENT,
75
+ main=[
76
+ # We need to wrap in Columns to get them to stretch properly
77
+ pn.Column(scatter_panel, sizing_mode="stretch_both"),
78
+ pn.Column(hist_panel, sizing_mode="stretch_both"),
79
+ ],
80
+ )
81
+ return template
82
+
83
+ pn.extension()
84
+ hv.extension("bokeh")
85
+ create_app().servable()
crossfiltering_holoviews_plotly.html ADDED
@@ -0,0 +1,355 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" >
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Linked Brushing with HoloViews and Plotly</title>
6
+ <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
7
+ <link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Plotly"> <style>
8
+ html, body {
9
+ display: flow-root;
10
+ box-sizing: border-box;
11
+ height: 100%;
12
+ margin: 0;
13
+ padding: 0;
14
+ }
15
+ </style>
16
+ <style>
17
+
18
+ .main .card-margin.stretch_both {
19
+ height: calc(100vh - 125px) !important;
20
+ }
21
+
22
+ </style>
23
+
24
+ <style type="text/css">
25
+ :host(.pn-loading),
26
+ .pn-loading {
27
+ overflow: hidden;
28
+ }
29
+
30
+ :host(.pn-loading):before,
31
+ .pn-loading:before {
32
+ position: absolute;
33
+ height: 100%;
34
+ width: 100%;
35
+ content: '';
36
+ z-index: 1000;
37
+ background-color: rgb(255, 255, 255, 0.5);
38
+ border-color: lightgray;
39
+ background-repeat: no-repeat;
40
+ background-position: center;
41
+ background-size: auto 50%;
42
+ border-width: 1px;
43
+ cursor: progress;
44
+ }
45
+
46
+ :host(.pn-loading) .pn-loading-msg,
47
+ .pn-loading .pn-loading-msg {
48
+ position: absolute;
49
+ top: 72%;
50
+ font-size: 2em;
51
+ color: black;
52
+ width: 100%;
53
+ text-align: center;
54
+ }
55
+
56
+
57
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
58
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
59
+ background-size: auto calc(min(50%, 400px));
60
+ }
61
+ </style><script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/jquery/jquery.slim.min.js"></script>
62
+ <script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/plotlyplot/plotly-2.18.0.min.js"></script>
63
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
64
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
65
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
67
+ <script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
68
+
69
+ <script type="text/javascript">
70
+ Bokeh.set_log_level("info");
71
+ </script><!-- Template CSS -->
72
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
73
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
74
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
75
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
76
+ <style type="text/css">
77
+
78
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
79
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
80
+ background-size: auto calc(min(50%, 400px));
81
+ }
82
+ </style>
83
+ <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
84
+
85
+ <style>
86
+ :root {
87
+ --background-color: #ffffff;
88
+ --body-font: Open Sans, sans-serif;
89
+ --corner-radius: 3;
90
+ --header-background: #F08080;
91
+ --header-color: #ffffff;
92
+ --sidebar-width: 330px;
93
+ }
94
+ body {
95
+ color: #2B2B2B;
96
+ background-color: var(--background-color);
97
+ font-family: var(--body-font);
98
+ }
99
+ #header a {
100
+ color: currentColor;
101
+ }
102
+ #header-design-provider {
103
+ --neutral-fill-hover: var(--header-background);
104
+ --neutral-fill-rest: var(--header-background);
105
+ --neutral-foreground-rest: var(--header-color);
106
+ background: var(--header-background);
107
+ color: var(--header-color);
108
+ }
109
+ #sidebar {
110
+ min-width: var(--sidebar-width);
111
+ max-width: var(--sidebar-width);
112
+ }
113
+ </style>
114
+
115
+ <!-- Template JS -->
116
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
117
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
118
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
119
+
120
+ <!-- Fast Script -->
121
+ <script type="text/javascript">
122
+ document.addEventListener('DOMContentLoaded', (event) => {
123
+ const header_design = new window.fastDesignProvider("#header-design-provider");
124
+ const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
125
+ body_design.setLuminance(1.0);
126
+ body_design.setAccentColor("#F08080")
127
+ body_design.setNeutralColor("#000000");
128
+ header_design.setLuminance(1.0);
129
+ header_design.setAccentColor("#ffffff");
130
+ header_design.setNeutralColor("#ffffff");
131
+ });
132
+ </script>
133
+ </head>
134
+ <body class="pn-loading pn-arc">
135
+ <fast-design-system-provider id="body-design-provider" use-defaults>
136
+ <div id="container">
137
+ <fast-design-system-provider id="header-design-provider">
138
+ <nav id="header" class="shadow" >
139
+ <div class="app-header">
140
+ <a class="title" href="https://awesome-panel.org" >&nbsp;Awesome Panel</a>
141
+ <span class="title">-</span>
142
+ <a class="title" href="" >Linked Brushing with HoloViews and Plotly</a>
143
+ </div>
144
+ <div id="header-items">
145
+ </div>
146
+ <div class="pn-toggle-theme">
147
+ <fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
148
+ <span slot="checked-message">
149
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
150
+ </span>
151
+ <span slot="unchecked-message">
152
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
153
+ </span>
154
+ </fast-switch>
155
+ <fast-tooltip anchor="theme-switch" position="bottom">
156
+ Toggle the Theme
157
+ </fast-tooltip>
158
+ </div>
159
+ <div class="pn-busy-container" id="busy-container">
160
+ <div id="deab833e-ac0f-4116-953c-e879a1bfc5bd" data-root-id="p1016" style="display: contents;"></div>
161
+ </div>
162
+ <fast-tooltip anchor="busy-container" position="left">
163
+ Busy Indicator
164
+ </fast-tooltip>
165
+ </nav>
166
+ </fast-design-system-provider>
167
+
168
+ <div class="row" id="content">
169
+
170
+ <div class="main" id="main">
171
+ <div class="main-margin" style="max-width: 850px;">
172
+ <div class="card-margin stretch_width">
173
+ <fast-card class="pn-wrapper">
174
+ <span class="fullscreen-button" onclick="toggleFullScreen(this)">
175
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
176
+ <path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
177
+ </svg>
178
+ </span>
179
+ <div id="be2fe477-8dfd-4e33-af98-95a8d054f7b9" data-root-id="p1017" style="display: contents;"></div>
180
+ </fast-card>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <fast-dialog id="pn-Modal" hidden>
185
+ <fast-button class="pn-modal-close" id="pn-closeModal">&times;</fast-button>
186
+ <div>
187
+ </div>
188
+ </fast-dialog>
189
+ </div>
190
+ </div>
191
+ </fast-design-system-provider>
192
+
193
+ <script type="text/javascript">
194
+
195
+ </script>
196
+
197
+ <script type="text/javascript">
198
+ function openNav() {
199
+ document.getElementById("sidebar").classList.remove("hidden");
200
+ document.getElementById("sidebar-button").onclick = closeNav;
201
+ }
202
+
203
+ function closeNav() {
204
+ document.getElementById("sidebar").classList.add("hidden");
205
+ document.getElementById("sidebar-button").onclick = openNav;
206
+ }
207
+
208
+ var modal = document.getElementById("pn-Modal");
209
+ var span = document.getElementById("pn-closeModal");
210
+
211
+ span.onclick = function() {
212
+ modal.style.display = "none";
213
+ }
214
+
215
+ window.onclick = function(event) {
216
+ if (event.target == modal) {
217
+ modal.style.display = "none";
218
+ }
219
+ }
220
+ </script>
221
+
222
+ <div id="d2c62822-e788-475d-8fc3-0ceaacc32344" data-root-id="p1009" style="display: contents;"></div>
223
+ <div id="d8930239-a736-4cdf-8e6d-d4104c064f69" data-root-id="p1012" style="display: contents;"></div>
224
+ <div id="bc910aae-b8ae-41ce-a4c9-9ab132afa0d8" data-root-id="p1002" style="display: contents;"></div>
225
+ <div id="fa7cc2b1-2f61-4e8f-bbd2-10a5445be963" data-root-id="p1013" style="display: contents;"></div>
226
+
227
+
228
+ <script type="text/javascript">
229
+ const pyodideWorker = new Worker("./crossfiltering_holoviews_plotly.js");
230
+ pyodideWorker.busy = false
231
+ pyodideWorker.queue = []
232
+
233
+ function send_change(jsdoc, event) {
234
+ if (event.setter_id != null && event.setter_id == 'py') {
235
+ return
236
+ } else if (pyodideWorker.busy && event.model && event.attr) {
237
+ let events = []
238
+ for (const old_event of pyodideWorker.queue) {
239
+ if (!(old_event.model === event.model && old_event.attr === event.attr)) {
240
+ events.push(old_event)
241
+ }
242
+ }
243
+ events.push(event)
244
+ pyodideWorker.queue = events
245
+ return
246
+ }
247
+ const patch = jsdoc.create_json_patch([event])
248
+ pyodideWorker.busy = true
249
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
250
+ }
251
+
252
+ pyodideWorker.onmessage = async (event) => {
253
+ const msg = event.data
254
+
255
+ const body = document.getElementsByTagName('body')[0]
256
+ const loading_msgs = document.getElementsByClassName('pn-loading-msg')
257
+ if (msg.type === 'idle') {
258
+ if (pyodideWorker.queue.length) {
259
+ const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
260
+ pyodideWorker.busy = true
261
+ pyodideWorker.queue = []
262
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
263
+ } else {
264
+ pyodideWorker.busy = false
265
+ }
266
+ } else if (msg.type === 'status') {
267
+ let loading_msg
268
+ if (loading_msgs.length) {
269
+ loading_msg = loading_msgs[0]
270
+ } else if (body.classList.contains('pn-loading')) {
271
+ loading_msg = document.createElement('div')
272
+ loading_msg.classList.add('pn-loading-msg')
273
+ body.appendChild(loading_msg)
274
+ }
275
+ if (loading_msg != null) {
276
+ loading_msg.innerHTML = msg.msg
277
+ }
278
+ } else if (msg.type === 'render') {
279
+ const docs_json = JSON.parse(msg.docs_json)
280
+ const render_items = JSON.parse(msg.render_items)
281
+ const root_ids = JSON.parse(msg.root_ids)
282
+
283
+ // Remap roots in message to element IDs
284
+ const root_els = document.querySelectorAll('[data-root-id]')
285
+ const data_roots = []
286
+ for (const el of root_els) {
287
+ el.innerHTML = ''
288
+ data_roots.push([el.getAttribute('data-root-id'), el.id])
289
+ }
290
+ data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
291
+ const roots = {}
292
+ for (let i=0; i<data_roots.length; i++) {
293
+ roots[root_ids[i]] = data_roots[i][1]
294
+ }
295
+ render_items[0]['roots'] = roots
296
+ render_items[0]['root_ids'] = root_ids
297
+
298
+ // Embed content
299
+ const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
300
+
301
+ // Remove loading spinner and message
302
+ body.classList.remove("pn-loading", "arc")
303
+ for (const loading_msg of loading_msgs) {
304
+ loading_msg.remove()
305
+ }
306
+
307
+ // Setup bi-directional syncing
308
+ pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
309
+ jsdoc.on_change(send_change.bind(null, jsdoc), false)
310
+ pyodideWorker.postMessage({'type': 'rendered'})
311
+ pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
312
+ } else if (msg.type === 'patch') {
313
+ pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
314
+ }
315
+ };
316
+ </script>
317
+ <script type="application/json" id="p1077">
318
+ {"bbfc5532-5c41-444f-bdbd-a46cd792fed8":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Plotly","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1049","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1046","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1050","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01434"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;block&amp;#x27;"]],["close_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;none&amp;#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1051","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1052","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1046"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-140445466445840","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1053","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1054","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1046"}],"height":870,"margin":0,"sizing_mode":"stretch_width","align":"start","children":[{"type":"object","name":"panel.models.widgets.Button","id":"p1021","attributes":{"subscribed_events":{"type":"set","entries":["button_click"]},"css_classes":["solid"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1055","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1056","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/button.css"}},{"id":"p1046"}],"margin":[5,10],"align":"start","label":"RESET PLOTS","tooltip":{"type":"object","name":"Tooltip","id":"p1018","attributes":{"position":"right","content":"Resets the plots. Plotly does not have a built in way to do this."}}}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1030","attributes":{"name":"Plotly01687","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1057","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1058","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",0.1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","9f078cc1-5725-40dd-88ee-7c88a74ad2d5"],["type","scatter"]]},{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","886e22cc-64f7-4d90-8337-4e68bf4dcb7f"],["type","scatter"]]}],"layout":{"type":"map","entries":[["autosize",false],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[4.12,8.08]],["side","bottom"],["title",{"type":"map","entries":[["text","sepal_length"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[1.76,4.640000000000001]],["side","left"],["title",{"type":"map","entries":[["text","sepal_width"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1022","attributes":{"selected":{"type":"object","name":"Selection","id":"p1023","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1024"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1025","attributes":{"selected":{"type":"object","name":"Selection","id":"p1026","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1027"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}},{"type":"object","name":"Spacer","id":"p1032","attributes":{"name":"Spacer01425","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1059","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"height":20,"min_height":20,"margin":0,"align":"start"}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1041","attributes":{"name":"Plotly01914","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1060","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1061","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",0.1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","82944638-dc4e-41e9-a0b4-52e5d64a2df1"],["width",0.11999999999999997],["type","bar"]]},{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","966ae77f-7ce0-44ed-9292-70ca0137872f"],["width",0.11999999999999997],["type","bar"]]}],"layout":{"type":"map","entries":[["autosize",false],["barmode","overlay"],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["selectdirection","h"],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[-0.01999999999999999,2.62]],["side","bottom"],["title",{"type":"map","entries":[["text","petal_width"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[-3.4000000000000004,37.4]],["side","left"],["title",{"type":"map","entries":[["text","Count"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1033","attributes":{"selected":{"type":"object","name":"Selection","id":"p1034","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1035"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1036","attributes":{"selected":{"type":"object","name":"Selection","id":"p1037","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1038"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
319
+ </script>
320
+ <script type="text/javascript">
321
+ (function() {
322
+ const fn = function() {
323
+ Bokeh.safely(function() {
324
+ (function(root) {
325
+ function embed_document(root) {
326
+ const docs_json = document.getElementById('p1077').textContent;
327
+ const render_items = [{"docid":"bbfc5532-5c41-444f-bdbd-a46cd792fed8","roots":{"p1002":"bc910aae-b8ae-41ce-a4c9-9ab132afa0d8","p1009":"d2c62822-e788-475d-8fc3-0ceaacc32344","p1012":"d8930239-a736-4cdf-8e6d-d4104c064f69","p1013":"fa7cc2b1-2f61-4e8f-bbd2-10a5445be963","p1016":"deab833e-ac0f-4116-953c-e879a1bfc5bd","p1017":"be2fe477-8dfd-4e33-af98-95a8d054f7b9"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017"]}];
328
+ root.Bokeh.embed.embed_items(docs_json, render_items);
329
+ }
330
+ if (root.Bokeh !== undefined) {
331
+ embed_document(root);
332
+ } else {
333
+ let attempts = 0;
334
+ const timer = setInterval(function(root) {
335
+ if (root.Bokeh !== undefined) {
336
+ clearInterval(timer);
337
+ embed_document(root);
338
+ } else {
339
+ attempts++;
340
+ if (attempts > 100) {
341
+ clearInterval(timer);
342
+ console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
343
+ }
344
+ }
345
+ }, 10, root)
346
+ }
347
+ })(window);
348
+ });
349
+ };
350
+ if (document.readyState != "loading") fn();
351
+ else document.addEventListener("DOMContentLoaded", fn);
352
+ })();
353
+ </script>
354
+ </body>
355
+ </html>
crossfiltering_holoviews_plotly.js ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
2
+
3
+ function sendPatch(patch, buffers, msg_id) {
4
+ self.postMessage({
5
+ type: 'patch',
6
+ patch: patch,
7
+ buffers: buffers
8
+ })
9
+ }
10
+
11
+ async function startApplication() {
12
+ console.log("Loading pyodide!");
13
+ self.postMessage({type: 'status', msg: 'Loading pyodide'})
14
+ self.pyodide = await loadPyodide();
15
+ self.pyodide.globals.set("sendPatch", sendPatch);
16
+ console.log("Loaded!");
17
+ await self.pyodide.loadPackage("micropip");
18
+ const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas', 'plotly']
19
+ for (const pkg of env_spec) {
20
+ let pkg_name;
21
+ if (pkg.endsWith('.whl')) {
22
+ pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
23
+ } else {
24
+ pkg_name = pkg
25
+ }
26
+ self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
27
+ try {
28
+ await self.pyodide.runPythonAsync(`
29
+ import micropip
30
+ await micropip.install('${pkg}');
31
+ `);
32
+ } catch(e) {
33
+ console.log(e)
34
+ self.postMessage({
35
+ type: 'status',
36
+ msg: `Error while installing ${pkg_name}`
37
+ });
38
+ }
39
+ }
40
+ console.log("Packages loaded!");
41
+ self.postMessage({type: 'status', msg: 'Executing code'})
42
+ const code = `
43
+
44
+ import asyncio
45
+
46
+ from panel.io.pyodide import init_doc, write_doc
47
+
48
+ init_doc()
49
+
50
+ """*Linked Brushing* is a very powerful technique. It's also often called
51
+ *Linked Selections* or *Crossfiltering*.
52
+
53
+ This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
54
+ (http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
55
+ [Introducing Dash HoloViews]\
56
+ (https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
57
+
58
+ This example uses the *Iris* dataset.
59
+ """
60
+ from typing import Tuple
61
+
62
+ import holoviews as hv
63
+ import panel as pn
64
+ from holoviews import opts
65
+ from panel.template import FastListTemplate
66
+ import plotly.io as pio
67
+ import pandas as pd
68
+
69
+ @pn.cache
70
+ def get_iris_data():
71
+ return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
72
+
73
+
74
+ ACCENT = "#F08080"
75
+
76
+ CSS = """
77
+ .main .card-margin.stretch_both {
78
+ height: calc(100vh - 125px) !important;
79
+ }
80
+ """
81
+
82
+ def _plotly_hooks(plot, element):
83
+ """Used by HoloViews to give plots plotly plots special treatment"""
84
+ fig = plot.state
85
+
86
+ fig["layout"]["dragmode"] = "select"
87
+ fig["config"]["displayModeBar"] = True
88
+ if isinstance(element, hv.Histogram):
89
+ # Constrain histogram selection direction to horizontal
90
+ fig["layout"]["selectdirection"] = "h"
91
+
92
+
93
+ def get_linked_plots() -> Tuple:
94
+ """Returns a tuple (scatter, hist) of linked plots
95
+
96
+ See http://holoviews.org/user_guide/Linked_Brushing.html
97
+ """
98
+
99
+ dataset = hv.Dataset(get_iris_data())
100
+
101
+ scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
102
+ hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
103
+
104
+ # pylint: disable=no-value-for-parameter
105
+ selection_linker = hv.selection.link_selections.instance()
106
+ # pylint: disable=no-member
107
+ scatter = selection_linker(scatter).opts(
108
+ opts.Scatter(color=ACCENT, size=10, hooks=[_plotly_hooks], width=800, height=400),
109
+ )
110
+ hist = selection_linker(hist).opts(
111
+ opts.Histogram(color=ACCENT, hooks=[_plotly_hooks], width=800, height=400)
112
+ )
113
+
114
+ return scatter, hist
115
+
116
+
117
+ def create_app():
118
+ """Returns the app in a nice FastListTemplate"""
119
+ if pn.config.theme == "dark":
120
+ pio.templates.default = "plotly_dark"
121
+ else:
122
+ pio.templates.default = "plotly_white"
123
+ scatter, hist = get_linked_plots()
124
+ scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both", backend="plotly")
125
+ hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both", backend="plotly")
126
+
127
+ def reset(event):
128
+ scatter, hist = get_linked_plots()
129
+ scatter_panel.object=scatter
130
+ hist_panel.object=hist
131
+
132
+ reset_button = pn.widgets.Button(name="RESET PLOTS", on_click=reset, description="Resets the plots. Plotly does not have a built in way to do this.")
133
+
134
+ template = FastListTemplate(
135
+ site="Awesome Panel",
136
+ site_url="https://awesome-panel.org",
137
+ title="Linked Brushing with HoloViews and Plotly",
138
+ accent=ACCENT,
139
+ main=[
140
+ # We need to wrap in Columns to get them to stretch properly
141
+ pn.Column(reset_button, scatter_panel, pn.layout.Spacer(height=20), hist_panel, height=870, sizing_mode="stretch_width"),
142
+ ],
143
+ main_max_width="850px",
144
+ )
145
+ return template
146
+
147
+ pn.extension("plotly", raw_css=[CSS])
148
+ hv.extension("plotly")
149
+ create_app().servable()
150
+
151
+
152
+ await write_doc()
153
+ `
154
+
155
+ try {
156
+ const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
157
+ self.postMessage({
158
+ type: 'render',
159
+ docs_json: docs_json,
160
+ render_items: render_items,
161
+ root_ids: root_ids
162
+ })
163
+ } catch(e) {
164
+ const traceback = `${e}`
165
+ const tblines = traceback.split('\n')
166
+ self.postMessage({
167
+ type: 'status',
168
+ msg: tblines[tblines.length-2]
169
+ });
170
+ throw e
171
+ }
172
+ }
173
+
174
+ self.onmessage = async (event) => {
175
+ const msg = event.data
176
+ if (msg.type === 'rendered') {
177
+ self.pyodide.runPythonAsync(`
178
+ from panel.io.state import state
179
+ from panel.io.pyodide import _link_docs_worker
180
+
181
+ _link_docs_worker(state.curdoc, sendPatch, setter='js')
182
+ `)
183
+ } else if (msg.type === 'patch') {
184
+ self.pyodide.globals.set('patch', msg.patch)
185
+ self.pyodide.runPythonAsync(`
186
+ state.curdoc.apply_json_patch(patch.to_py(), setter='js')
187
+ `)
188
+ self.postMessage({type: 'idle'})
189
+ } else if (msg.type === 'location') {
190
+ self.pyodide.globals.set('location', msg.location)
191
+ self.pyodide.runPythonAsync(`
192
+ import json
193
+ from panel.io.state import state
194
+ from panel.util import edit_readonly
195
+ if state.location:
196
+ loc_data = json.loads(location)
197
+ with edit_readonly(state.location):
198
+ state.location.param.update({
199
+ k: v for k, v in loc_data.items() if k in state.location.param
200
+ })
201
+ `)
202
+ }
203
+ }
204
+
205
+ startApplication()
crossfiltering_holoviews_plotly.py ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """*Linked Brushing* is a very powerful technique. It's also often called
2
+ *Linked Selections* or *Crossfiltering*.
3
+
4
+ This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
5
+ (http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
6
+ [Introducing Dash HoloViews]\
7
+ (https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
8
+
9
+ This example uses the *Iris* dataset.
10
+ """
11
+ from typing import Tuple
12
+
13
+ import holoviews as hv
14
+ import panel as pn
15
+ from holoviews import opts
16
+ from panel.template import FastListTemplate
17
+ import plotly.io as pio
18
+ import pandas as pd
19
+
20
+ @pn.cache
21
+ def get_iris_data():
22
+ return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
23
+
24
+
25
+ ACCENT = "#F08080"
26
+
27
+ CSS = """
28
+ .main .card-margin.stretch_both {
29
+ height: calc(100vh - 125px) !important;
30
+ }
31
+ """
32
+
33
+ def _plotly_hooks(plot, element):
34
+ """Used by HoloViews to give plots plotly plots special treatment"""
35
+ fig = plot.state
36
+
37
+ fig["layout"]["dragmode"] = "select"
38
+ fig["config"]["displayModeBar"] = True
39
+ if isinstance(element, hv.Histogram):
40
+ # Constrain histogram selection direction to horizontal
41
+ fig["layout"]["selectdirection"] = "h"
42
+
43
+
44
+ def get_linked_plots() -> Tuple:
45
+ """Returns a tuple (scatter, hist) of linked plots
46
+
47
+ See http://holoviews.org/user_guide/Linked_Brushing.html
48
+ """
49
+
50
+ dataset = hv.Dataset(get_iris_data())
51
+
52
+ scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
53
+ hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
54
+
55
+ # pylint: disable=no-value-for-parameter
56
+ selection_linker = hv.selection.link_selections.instance()
57
+ # pylint: disable=no-member
58
+ scatter = selection_linker(scatter).opts(
59
+ opts.Scatter(color=ACCENT, size=10, hooks=[_plotly_hooks], width=800, height=400),
60
+ )
61
+ hist = selection_linker(hist).opts(
62
+ opts.Histogram(color=ACCENT, hooks=[_plotly_hooks], width=800, height=400)
63
+ )
64
+
65
+ return scatter, hist
66
+
67
+
68
+ def create_app():
69
+ """Returns the app in a nice FastListTemplate"""
70
+ if pn.config.theme == "dark":
71
+ pio.templates.default = "plotly_dark"
72
+ else:
73
+ pio.templates.default = "plotly_white"
74
+ scatter, hist = get_linked_plots()
75
+ scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both", backend="plotly")
76
+ hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both", backend="plotly")
77
+
78
+ def reset(event):
79
+ scatter, hist = get_linked_plots()
80
+ scatter_panel.object=scatter
81
+ hist_panel.object=hist
82
+
83
+ reset_button = pn.widgets.Button(name="RESET PLOTS", on_click=reset, description="Resets the plots. Plotly does not have a built in way to do this.")
84
+
85
+ template = FastListTemplate(
86
+ site="Awesome Panel",
87
+ site_url="https://awesome-panel.org",
88
+ title="Linked Brushing with HoloViews and Plotly",
89
+ accent=ACCENT,
90
+ main=[
91
+ # We need to wrap in Columns to get them to stretch properly
92
+ pn.Column(reset_button, scatter_panel, pn.layout.Spacer(height=20), hist_panel, height=870, sizing_mode="stretch_width"),
93
+ ],
94
+ main_max_width="850px",
95
+ )
96
+ return template
97
+
98
+ pn.extension("plotly", raw_css=[CSS])
99
+ hv.extension("plotly")
100
+ create_app().servable()
index.js ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
2
+
3
+ function sendPatch(patch, buffers, msg_id) {
4
+ self.postMessage({
5
+ type: 'patch',
6
+ patch: patch,
7
+ buffers: buffers
8
+ })
9
+ }
10
+
11
+ async function startApplication() {
12
+ console.log("Loading pyodide!");
13
+ self.postMessage({type: 'status', msg: 'Loading pyodide'})
14
+ self.pyodide = await loadPyodide();
15
+ self.pyodide.globals.set("sendPatch", sendPatch);
16
+ console.log("Loaded!");
17
+ await self.pyodide.loadPackage("micropip");
18
+ const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas']
19
+ for (const pkg of env_spec) {
20
+ let pkg_name;
21
+ if (pkg.endsWith('.whl')) {
22
+ pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
23
+ } else {
24
+ pkg_name = pkg
25
+ }
26
+ self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
27
+ try {
28
+ await self.pyodide.runPythonAsync(`
29
+ import micropip
30
+ await micropip.install('${pkg}');
31
+ `);
32
+ } catch(e) {
33
+ console.log(e)
34
+ self.postMessage({
35
+ type: 'status',
36
+ msg: `Error while installing ${pkg_name}`
37
+ });
38
+ }
39
+ }
40
+ console.log("Packages loaded!");
41
+ self.postMessage({type: 'status', msg: 'Executing code'})
42
+ const code = `
43
+
44
+ import asyncio
45
+
46
+ from panel.io.pyodide import init_doc, write_doc
47
+
48
+ init_doc()
49
+
50
+ """*Linked Brushing* is a very powerful technique. It's also often called
51
+ *Linked Selections* or *Crossfiltering*.
52
+
53
+ This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
54
+ (http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
55
+ [Introducing Dash HoloViews]\
56
+ (https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
57
+
58
+ This example uses the *Iris* dataset.
59
+ """
60
+ from typing import Tuple
61
+
62
+ import holoviews as hv
63
+ import pandas as pd
64
+ import panel as pn
65
+ from holoviews import opts
66
+ from panel.template import FastListTemplate
67
+
68
+
69
+ @pn.cache
70
+ def get_iris_data():
71
+ return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
72
+
73
+
74
+ ACCENT = "#F08080"
75
+
76
+ CSS = """
77
+ .main .card-margin.stretch_both {
78
+ height: calc(50vh - 65px) !important;
79
+ }
80
+ """
81
+ if not CSS in pn.config.raw_css:
82
+ pn.config.raw_css.append(CSS)
83
+
84
+ BOKEH_TOOLS = {
85
+ "tools": ["hover"], "active_tools": ["box_select"]
86
+ }
87
+
88
+
89
+ def get_linked_plots() -> Tuple:
90
+ """Returns a tuple (scatter, hist) of linked plots
91
+
92
+ See http://holoviews.org/user_guide/Linked_Brushing.html
93
+ """
94
+
95
+ dataset = hv.Dataset(get_iris_data())
96
+
97
+ scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
98
+ hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
99
+
100
+ # pylint: disable=no-value-for-parameter
101
+ selection_linker = hv.selection.link_selections.instance()
102
+ # pylint: disable=no-member
103
+ scatter = selection_linker(scatter).opts(
104
+ opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
105
+ )
106
+ hist = selection_linker(hist).opts(
107
+ opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
108
+ )
109
+
110
+ return scatter, hist
111
+
112
+
113
+ def create_app():
114
+ """Returns the app in a nice FastListTemplate"""
115
+ scatter, hist = get_linked_plots()
116
+ scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
117
+ hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
118
+
119
+ template = FastListTemplate(
120
+ site="Awesome Panel",
121
+ site_url="https://awesome-panel.org",
122
+ title="Linked Brushing with HoloViews and Bokeh",
123
+ accent=ACCENT,
124
+ main=[
125
+ # We need to wrap in Columns to get them to stretch properly
126
+ pn.Column(scatter_panel, sizing_mode="stretch_both"),
127
+ pn.Column(hist_panel, sizing_mode="stretch_both"),
128
+ ],
129
+ )
130
+ return template
131
+
132
+ pn.extension()
133
+ hv.extension("bokeh")
134
+ create_app().servable()
135
+
136
+
137
+ await write_doc()
138
+ `
139
+
140
+ try {
141
+ const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
142
+ self.postMessage({
143
+ type: 'render',
144
+ docs_json: docs_json,
145
+ render_items: render_items,
146
+ root_ids: root_ids
147
+ })
148
+ } catch(e) {
149
+ const traceback = `${e}`
150
+ const tblines = traceback.split('\n')
151
+ self.postMessage({
152
+ type: 'status',
153
+ msg: tblines[tblines.length-2]
154
+ });
155
+ throw e
156
+ }
157
+ }
158
+
159
+ self.onmessage = async (event) => {
160
+ const msg = event.data
161
+ if (msg.type === 'rendered') {
162
+ self.pyodide.runPythonAsync(`
163
+ from panel.io.state import state
164
+ from panel.io.pyodide import _link_docs_worker
165
+
166
+ _link_docs_worker(state.curdoc, sendPatch, setter='js')
167
+ `)
168
+ } else if (msg.type === 'patch') {
169
+ self.pyodide.globals.set('patch', msg.patch)
170
+ self.pyodide.runPythonAsync(`
171
+ state.curdoc.apply_json_patch(patch.to_py(), setter='js')
172
+ `)
173
+ self.postMessage({type: 'idle'})
174
+ } else if (msg.type === 'location') {
175
+ self.pyodide.globals.set('location', msg.location)
176
+ self.pyodide.runPythonAsync(`
177
+ import json
178
+ from panel.io.state import state
179
+ from panel.util import edit_readonly
180
+ if state.location:
181
+ loc_data = json.loads(location)
182
+ with edit_readonly(state.location):
183
+ state.location.param.update({
184
+ k: v for k, v in loc_data.items() if k in state.location.param
185
+ })
186
+ `)
187
+ }
188
+ }
189
+
190
+ startApplication()
issue.html ADDED
@@ -0,0 +1,355 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" >
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Linked Brushing with HoloViews and Plotly</title>
6
+ <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
7
+ <link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Plotly"> <style>
8
+ html, body {
9
+ display: flow-root;
10
+ box-sizing: border-box;
11
+ height: 100%;
12
+ margin: 0;
13
+ padding: 0;
14
+ }
15
+ </style>
16
+ <style>
17
+
18
+ .main .card-margin.stretch_both {
19
+ height: calc(100vh - 125px) !important;
20
+ }
21
+
22
+ </style>
23
+
24
+ <style type="text/css">
25
+ :host(.pn-loading),
26
+ .pn-loading {
27
+ overflow: hidden;
28
+ }
29
+
30
+ :host(.pn-loading):before,
31
+ .pn-loading:before {
32
+ position: absolute;
33
+ height: 100%;
34
+ width: 100%;
35
+ content: '';
36
+ z-index: 1000;
37
+ background-color: rgb(255, 255, 255, 0.5);
38
+ border-color: lightgray;
39
+ background-repeat: no-repeat;
40
+ background-position: center;
41
+ background-size: auto 50%;
42
+ border-width: 1px;
43
+ cursor: progress;
44
+ }
45
+
46
+ :host(.pn-loading) .pn-loading-msg,
47
+ .pn-loading .pn-loading-msg {
48
+ position: absolute;
49
+ top: 72%;
50
+ font-size: 2em;
51
+ color: black;
52
+ width: 100%;
53
+ text-align: center;
54
+ }
55
+
56
+
57
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
58
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
59
+ background-size: auto calc(min(50%, 400px));
60
+ }
61
+ </style><script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/jquery/jquery.slim.min.js"></script>
62
+ <script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/plotlyplot/plotly-2.18.0.min.js"></script>
63
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
64
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
65
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
66
+ <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
67
+ <script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
68
+
69
+ <script type="text/javascript">
70
+ Bokeh.set_log_level("info");
71
+ </script><!-- Template CSS -->
72
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
73
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
74
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
75
+ <link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
76
+ <style type="text/css">
77
+
78
+ :host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
79
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
80
+ background-size: auto calc(min(50%, 400px));
81
+ }
82
+ </style>
83
+ <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
84
+
85
+ <style>
86
+ :root {
87
+ --background-color: #ffffff;
88
+ --body-font: Open Sans, sans-serif;
89
+ --corner-radius: 3;
90
+ --header-background: #F08080;
91
+ --header-color: #ffffff;
92
+ --sidebar-width: 330px;
93
+ }
94
+ body {
95
+ color: #2B2B2B;
96
+ background-color: var(--background-color);
97
+ font-family: var(--body-font);
98
+ }
99
+ #header a {
100
+ color: currentColor;
101
+ }
102
+ #header-design-provider {
103
+ --neutral-fill-hover: var(--header-background);
104
+ --neutral-fill-rest: var(--header-background);
105
+ --neutral-foreground-rest: var(--header-color);
106
+ background: var(--header-background);
107
+ color: var(--header-color);
108
+ }
109
+ #sidebar {
110
+ min-width: var(--sidebar-width);
111
+ max-width: var(--sidebar-width);
112
+ }
113
+ </style>
114
+
115
+ <!-- Template JS -->
116
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
117
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
118
+ <script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
119
+
120
+ <!-- Fast Script -->
121
+ <script type="text/javascript">
122
+ document.addEventListener('DOMContentLoaded', (event) => {
123
+ const header_design = new window.fastDesignProvider("#header-design-provider");
124
+ const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
125
+ body_design.setLuminance(1.0);
126
+ body_design.setAccentColor("#F08080")
127
+ body_design.setNeutralColor("#000000");
128
+ header_design.setLuminance(1.0);
129
+ header_design.setAccentColor("#ffffff");
130
+ header_design.setNeutralColor("#ffffff");
131
+ });
132
+ </script>
133
+ </head>
134
+ <body class="pn-loading pn-arc">
135
+ <fast-design-system-provider id="body-design-provider" use-defaults>
136
+ <div id="container">
137
+ <fast-design-system-provider id="header-design-provider">
138
+ <nav id="header" class="shadow" >
139
+ <div class="app-header">
140
+ <a class="title" href="https://awesome-panel.org" >&nbsp;Awesome Panel</a>
141
+ <span class="title">-</span>
142
+ <a class="title" href="" >Linked Brushing with HoloViews and Plotly</a>
143
+ </div>
144
+ <div id="header-items">
145
+ </div>
146
+ <div class="pn-toggle-theme">
147
+ <fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
148
+ <span slot="checked-message">
149
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
150
+ </span>
151
+ <span slot="unchecked-message">
152
+ <svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
153
+ </span>
154
+ </fast-switch>
155
+ <fast-tooltip anchor="theme-switch" position="bottom">
156
+ Toggle the Theme
157
+ </fast-tooltip>
158
+ </div>
159
+ <div class="pn-busy-container" id="busy-container">
160
+ <div id="af0a2967-1e3e-43cc-bb39-982e8bb0f3ca" data-root-id="p1016" style="display: contents;"></div>
161
+ </div>
162
+ <fast-tooltip anchor="busy-container" position="left">
163
+ Busy Indicator
164
+ </fast-tooltip>
165
+ </nav>
166
+ </fast-design-system-provider>
167
+
168
+ <div class="row" id="content">
169
+
170
+ <div class="main" id="main">
171
+ <div class="main-margin" style="max-width: 850px;">
172
+ <div class="card-margin stretch_width">
173
+ <fast-card class="pn-wrapper">
174
+ <span class="fullscreen-button" onclick="toggleFullScreen(this)">
175
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
176
+ <path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
177
+ </svg>
178
+ </span>
179
+ <div id="e3985a67-67fc-4898-b0ed-3a2d20970648" data-root-id="p1017" style="display: contents;"></div>
180
+ </fast-card>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ <fast-dialog id="pn-Modal" hidden>
185
+ <fast-button class="pn-modal-close" id="pn-closeModal">&times;</fast-button>
186
+ <div>
187
+ </div>
188
+ </fast-dialog>
189
+ </div>
190
+ </div>
191
+ </fast-design-system-provider>
192
+
193
+ <script type="text/javascript">
194
+
195
+ </script>
196
+
197
+ <script type="text/javascript">
198
+ function openNav() {
199
+ document.getElementById("sidebar").classList.remove("hidden");
200
+ document.getElementById("sidebar-button").onclick = closeNav;
201
+ }
202
+
203
+ function closeNav() {
204
+ document.getElementById("sidebar").classList.add("hidden");
205
+ document.getElementById("sidebar-button").onclick = openNav;
206
+ }
207
+
208
+ var modal = document.getElementById("pn-Modal");
209
+ var span = document.getElementById("pn-closeModal");
210
+
211
+ span.onclick = function() {
212
+ modal.style.display = "none";
213
+ }
214
+
215
+ window.onclick = function(event) {
216
+ if (event.target == modal) {
217
+ modal.style.display = "none";
218
+ }
219
+ }
220
+ </script>
221
+
222
+ <div id="b72ac8ad-a55f-4bbd-948f-bfc071c692a5" data-root-id="p1009" style="display: contents;"></div>
223
+ <div id="c5f6f8ff-2479-42ef-afc6-647d3df2c8fb" data-root-id="p1012" style="display: contents;"></div>
224
+ <div id="e69fd3b3-1a47-4712-aac3-28916ef68de3" data-root-id="p1002" style="display: contents;"></div>
225
+ <div id="a5fa7556-690a-4513-95a2-40589fb967bf" data-root-id="p1013" style="display: contents;"></div>
226
+
227
+
228
+ <script type="text/javascript">
229
+ const pyodideWorker = new Worker("./issue.js");
230
+ pyodideWorker.busy = false
231
+ pyodideWorker.queue = []
232
+
233
+ function send_change(jsdoc, event) {
234
+ if (event.setter_id != null && event.setter_id == 'py') {
235
+ return
236
+ } else if (pyodideWorker.busy && event.model && event.attr) {
237
+ let events = []
238
+ for (const old_event of pyodideWorker.queue) {
239
+ if (!(old_event.model === event.model && old_event.attr === event.attr)) {
240
+ events.push(old_event)
241
+ }
242
+ }
243
+ events.push(event)
244
+ pyodideWorker.queue = events
245
+ return
246
+ }
247
+ const patch = jsdoc.create_json_patch([event])
248
+ pyodideWorker.busy = true
249
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
250
+ }
251
+
252
+ pyodideWorker.onmessage = async (event) => {
253
+ const msg = event.data
254
+
255
+ const body = document.getElementsByTagName('body')[0]
256
+ const loading_msgs = document.getElementsByClassName('pn-loading-msg')
257
+ if (msg.type === 'idle') {
258
+ if (pyodideWorker.queue.length) {
259
+ const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
260
+ pyodideWorker.busy = true
261
+ pyodideWorker.queue = []
262
+ pyodideWorker.postMessage({type: 'patch', patch: patch})
263
+ } else {
264
+ pyodideWorker.busy = false
265
+ }
266
+ } else if (msg.type === 'status') {
267
+ let loading_msg
268
+ if (loading_msgs.length) {
269
+ loading_msg = loading_msgs[0]
270
+ } else if (body.classList.contains('pn-loading')) {
271
+ loading_msg = document.createElement('div')
272
+ loading_msg.classList.add('pn-loading-msg')
273
+ body.appendChild(loading_msg)
274
+ }
275
+ if (loading_msg != null) {
276
+ loading_msg.innerHTML = msg.msg
277
+ }
278
+ } else if (msg.type === 'render') {
279
+ const docs_json = JSON.parse(msg.docs_json)
280
+ const render_items = JSON.parse(msg.render_items)
281
+ const root_ids = JSON.parse(msg.root_ids)
282
+
283
+ // Remap roots in message to element IDs
284
+ const root_els = document.querySelectorAll('[data-root-id]')
285
+ const data_roots = []
286
+ for (const el of root_els) {
287
+ el.innerHTML = ''
288
+ data_roots.push([el.getAttribute('data-root-id'), el.id])
289
+ }
290
+ data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
291
+ const roots = {}
292
+ for (let i=0; i<data_roots.length; i++) {
293
+ roots[root_ids[i]] = data_roots[i][1]
294
+ }
295
+ render_items[0]['roots'] = roots
296
+ render_items[0]['root_ids'] = root_ids
297
+
298
+ // Embed content
299
+ const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
300
+
301
+ // Remove loading spinner and message
302
+ body.classList.remove("pn-loading", "arc")
303
+ for (const loading_msg of loading_msgs) {
304
+ loading_msg.remove()
305
+ }
306
+
307
+ // Setup bi-directional syncing
308
+ pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
309
+ jsdoc.on_change(send_change.bind(null, jsdoc), false)
310
+ pyodideWorker.postMessage({'type': 'rendered'})
311
+ pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
312
+ } else if (msg.type === 'patch') {
313
+ pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
314
+ }
315
+ };
316
+ </script>
317
+ <script type="application/json" id="p1077">
318
+ {"2c61dcc0-aa17-4eb8-86fc-f3d2c1f25269":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Plotly","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1049","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1046","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1050","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01434"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;block&amp;#x27;"]],["close_modal",["document.getElementById(&amp;#x27;pn-Modal&amp;#x27;).style.display = &amp;#x27;none&amp;#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1051","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1052","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1046"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-139622921603472","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1053","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1054","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1046"}],"height":870,"margin":0,"sizing_mode":"stretch_width","align":"start","children":[{"type":"object","name":"panel.models.widgets.Button","id":"p1021","attributes":{"subscribed_events":{"type":"set","entries":["button_click"]},"css_classes":["solid"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1055","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1056","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/button.css"}},{"id":"p1046"}],"margin":[5,10],"align":"start","label":"RESET PLOTS","tooltip":{"type":"object","name":"Tooltip","id":"p1018","attributes":{"position":"right","content":"Resets the plots. Plotly does not have a built in way to do this."}}}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1030","attributes":{"name":"Plotly01687","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1057","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1058","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",0.1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","1a8d74f4-4b53-4630-8f27-45fa19639e1a"],["type","scatter"]]},{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","02cc524c-655e-4ee8-8581-427acee47bb8"],["type","scatter"]]}],"layout":{"type":"map","entries":[["autosize",false],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[4.12,8.08]],["side","bottom"],["title",{"type":"map","entries":[["text","sepal_length"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[1.76,4.640000000000001]],["side","left"],["title",{"type":"map","entries":[["text","sepal_width"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1022","attributes":{"selected":{"type":"object","name":"Selection","id":"p1023","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1024"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1025","attributes":{"selected":{"type":"object","name":"Selection","id":"p1026","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1027"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}},{"type":"object","name":"Spacer","id":"p1032","attributes":{"name":"Spacer01425","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1059","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"height":20,"min_height":20,"margin":0,"align":"start"}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1041","attributes":{"name":"Plotly01914","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1060","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1061","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",0.1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","24e5413a-ea76-4e03-9aaa-e3b230fa29c4"],["width",0.11999999999999997],["type","bar"]]},{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","e1eea7e3-1dfb-41f5-bcf1-aaa0cd945c8e"],["width",0.11999999999999997],["type","bar"]]}],"layout":{"type":"map","entries":[["autosize",false],["barmode","overlay"],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["selectdirection","h"],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[-0.01999999999999999,2.62]],["side","bottom"],["title",{"type":"map","entries":[["text","petal_width"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[-3.4000000000000004,37.4]],["side","left"],["title",{"type":"map","entries":[["text","Count"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1033","attributes":{"selected":{"type":"object","name":"Selection","id":"p1034","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1035"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1036","attributes":{"selected":{"type":"object","name":"Selection","id":"p1037","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1038"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
319
+ </script>
320
+ <script type="text/javascript">
321
+ (function() {
322
+ const fn = function() {
323
+ Bokeh.safely(function() {
324
+ (function(root) {
325
+ function embed_document(root) {
326
+ const docs_json = document.getElementById('p1077').textContent;
327
+ const render_items = [{"docid":"2c61dcc0-aa17-4eb8-86fc-f3d2c1f25269","roots":{"p1002":"e69fd3b3-1a47-4712-aac3-28916ef68de3","p1009":"b72ac8ad-a55f-4bbd-948f-bfc071c692a5","p1012":"c5f6f8ff-2479-42ef-afc6-647d3df2c8fb","p1013":"a5fa7556-690a-4513-95a2-40589fb967bf","p1016":"af0a2967-1e3e-43cc-bb39-982e8bb0f3ca","p1017":"e3985a67-67fc-4898-b0ed-3a2d20970648"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017"]}];
328
+ root.Bokeh.embed.embed_items(docs_json, render_items);
329
+ }
330
+ if (root.Bokeh !== undefined) {
331
+ embed_document(root);
332
+ } else {
333
+ let attempts = 0;
334
+ const timer = setInterval(function(root) {
335
+ if (root.Bokeh !== undefined) {
336
+ clearInterval(timer);
337
+ embed_document(root);
338
+ } else {
339
+ attempts++;
340
+ if (attempts > 100) {
341
+ clearInterval(timer);
342
+ console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
343
+ }
344
+ }
345
+ }, 10, root)
346
+ }
347
+ })(window);
348
+ });
349
+ };
350
+ if (document.readyState != "loading") fn();
351
+ else document.addEventListener("DOMContentLoaded", fn);
352
+ })();
353
+ </script>
354
+ </body>
355
+ </html>