diff --git a/notebook/indicator.ipynb b/notebook/indicator.ipynb index 6fb6d9f..52e21c2 100644 --- a/notebook/indicator.ipynb +++ b/notebook/indicator.ipynb @@ -7,8 +7,8 @@ "variableName$1": "dailies_df" }, "ExecuteTime": { - "end_time": "2026-01-28T09:02:14.676305Z", - "start_time": "2026-01-28T09:02:07.695819Z" + "end_time": "2026-01-29T02:33:37.960810Z", + "start_time": "2026-01-29T02:33:24.206860Z" } }, "cell_type": "code", @@ -199,18 +199,18 @@ "" ] }, - "execution_count": 115, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 115 + "execution_count": 1 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-01-28T09:02:14.810005Z", - "start_time": "2026-01-28T09:02:14.717550Z" + "end_time": "2026-01-29T02:33:38.731788Z", + "start_time": "2026-01-29T02:33:38.062150Z" } }, "cell_type": "code", @@ -398,18 +398,18 @@ "" ] }, - "execution_count": 116, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 116 + "execution_count": 2 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-01-28T09:02:15.548521Z", - "start_time": "2026-01-28T09:02:15.510447Z" + "end_time": "2026-01-29T02:33:39.810533Z", + "start_time": "2026-01-29T02:33:39.416568Z" } }, "cell_type": "code", @@ -697,18 +697,18 @@ "" ] }, - "execution_count": 117, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 117 + "execution_count": 3 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-01-28T09:02:16.150130Z", - "start_time": "2026-01-28T09:02:15.595633Z" + "end_time": "2026-01-29T02:33:42.597061Z", + "start_time": "2026-01-29T02:33:40.380307Z" } }, "cell_type": "code", @@ -748,13 +748,13 @@ } } ], - "execution_count": 118 + "execution_count": 4 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-01-28T09:02:16.319469Z", - "start_time": "2026-01-28T09:02:16.309796Z" + "end_time": "2026-01-29T02:33:42.780271Z", + "start_time": "2026-01-29T02:33:42.768861Z" } }, "cell_type": "code", @@ -765,13 +765,13 @@ ], "id": "29759a1d33476c0f", "outputs": [], - "execution_count": 119 + "execution_count": 5 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-01-28T09:25:07.614723Z", - "start_time": "2026-01-28T09:25:07.551413Z" + "end_time": "2026-01-29T02:33:42.923721Z", + "start_time": "2026-01-29T02:33:42.839479Z" } }, "cell_type": "code", @@ -1039,18 +1039,21 @@ "" ] }, - "execution_count": 140, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 140 + "execution_count": 6 }, { "metadata": { + "tags": [ + "dailies_chart" + ], "ExecuteTime": { - "end_time": "2026-01-28T09:37:49.556583Z", - "start_time": "2026-01-28T09:37:48.675074Z" + "end_time": "2026-01-29T02:40:03.594219Z", + "start_time": "2026-01-29T02:40:03.137486Z" } }, "cell_type": "code", @@ -1062,6 +1065,8 @@ "output_notebook()\n", "\n", "width = 1200\n", + "up_color = \"lightgray\"\n", + "down_color = \"darkgray\"\n", "\n", "price_figure = figure(\n", " width=width,\n", @@ -1083,8 +1088,8 @@ "\n", "price_figure.segment(dailies_df.index, dailies_df[\"High\"], dailies_df.index, dailies_df[\"Low\"], color=\"black\")\n", "\n", - "price_figure.vbar(dailies_df_inc.index, 0.6, dailies_df_inc[\"Open\"], dailies_df_inc[\"Close\"], color=\"grey\")\n", - "price_figure.vbar(dailies_df_dec.index, 0.6, dailies_df_dec[\"Open\"], dailies_df_dec[\"Close\"], color=\"black\")\n", + "price_figure.vbar(dailies_df_inc.index, 0.6, dailies_df_inc[\"Open\"], dailies_df_inc[\"Close\"], color=up_color)\n", + "price_figure.vbar(dailies_df_dec.index, 0.6, dailies_df_dec[\"Open\"], dailies_df_dec[\"Close\"], color=down_color)\n", "\n", "price_figure.line(dailies_df.index, dailies_df[\"sma30\"], color=\"orange\")\n", "price_figure.line(dailies_df.index, dailies_df[\"sma60\"], color=\"red\")\n", @@ -1100,6 +1105,13 @@ "macd_figure.line(dailies_df.index, dailies_df[\"macd\"], color=\"orange\")\n", "macd_figure.line(dailies_df.index, dailies_df[\"signal\"], color=\"red\")\n", "\n", + "# 绘制 macd 图的 hist 柱状图\n", + "macd_df_inc = dailies_df[dailies_df[\"hist\"] >= 0]\n", + "macd_df_dec = dailies_df[dailies_df[\"hist\"] < 0]\n", + "\n", + "macd_figure.vbar(macd_df_inc.index, 0.6, 0, macd_df_inc[\"hist\"], color=up_color)\n", + "macd_figure.vbar(macd_df_dec.index, 0.6, macd_df_dec[\"hist\"], 0, color=down_color)\n", + "\n", "# show(price_figure)\n", "# show(macd_figure)\n", "show(column(price_figure, macd_figure))" @@ -1119,7 +1131,7 @@ " \n", "
\n", " \n", - " Loading BokehJS ...\n", + " Loading BokehJS ...\n", "
\n" ] }, @@ -1131,8 +1143,8 @@ }, { "data": { - "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"c90ae62e-0202-4ae5-bdf9-7daece276f71\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.8.2.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"c90ae62e-0202-4ae5-bdf9-7daece276f71\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", - "application/vnd.bokehjs_load.v0+json": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"c90ae62e-0202-4ae5-bdf9-7daece276f71\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.8.2.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"c90ae62e-0202-4ae5-bdf9-7daece276f71\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"f9ed2936-dd2c-4caa-ab15-7563ec286bd4\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.8.2.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"f9ed2936-dd2c-4caa-ab15-7563ec286bd4\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", + "application/vnd.bokehjs_load.v0+json": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"f9ed2936-dd2c-4caa-ab15-7563ec286bd4\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.8.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.8.2.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"f9ed2936-dd2c-4caa-ab15-7563ec286bd4\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data", @@ -1144,7 +1156,7 @@ "data": { "text/html": [ "\n", - "
\n" + "
\n" ] }, "metadata": {}, @@ -1155,12 +1167,12 @@ }, { "data": { - "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"461e0e03-87f9-4576-89e3-a9521a5fa29a\":{\"version\":\"3.8.2\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"p8952\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"p8953\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Column\",\"id\":\"p8951\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p8824\",\"attributes\":{\"width\":1200,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p8825\",\"attributes\":{\"bounds\":[-1,188]}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p8826\",\"attributes\":{\"bounds\":[1329.177368,1766.731374]}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p8833\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p8834\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p8831\",\"attributes\":{\"text_color\":\"#5B5B5B\",\"text_font\":\"Helvetica\",\"text_font_size\":\"1.15em\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8862\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8856\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8857\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8858\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x0\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y0\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/3VUa1BUZRjmmolTuxKXuAxMxhAoLlgEzOTigxYOsismGjRgg0JckhiCILC4mEqECirs+c45XBVZQGgyaXNRN4KQi0Jxi0VIEYiQiKJVQKEk+vFxZpzp1zPve773eb/3ed7zvXJrS8BzmQQBJ1y4IyYEPNYeH5hiEHqhxyLKmGAkba/kqBfBYaPreWvnGNR9si+rdITBhZ+Cgt79mME/bltTHjQxsDcrODdrR2A6N+1g6kDwelyWTZmIILotpWCHHkEDb2h05GcGgYadEy6lQt3qgHuzWg3zv+cp0v7Kdy4/fe1XBgP9AUt+PUIdRVGGvD86j8CvZGrRbYTAYH9l8LECAsyPd8wdIkg/6eATvZ+AaY/f7BpEVu5tPLC9UuIszFs+YXHFdDeB5667xdfMBP4vjTWeczKCnJob3/qHCjw0v1B/1tlfQqCubYp0qyP4zH19/LlWgucdA43LZ4VzVG+qM62j83eoqw9HaoU5Kf5lWrQgbhP0s3g/N/GqmkHqvoYwbZ7wner6hexhxbNiBucrdMl91QpoRrwTCksV2Kpq/Fzdo0CU6GuD8O8VqH+v5EWdCQOx1Dl//YQCd5pPFRUtKpCtM94YYc9Ar2q0pTiIgX9oq1rnxeCsZLfTBnOB/8mY8vUof7Or1xN4p0Y9rDPnhH6U3+oXSVOEnMGQfEZ+P1LYE+o39Z/qQPMU6d5Rv6iftI7q/eS+UP+pT7W5tpMytRBbFd8PlOUQyM1P7BhMIiiLTz4YoyGIe3j7w6FugsvE3bfGkgWfmiBvdGEx25vRb7udxavim5G5ySzuNdsNVr7JIi3k4h6tD4tt9i7hhrEsEmUW80sVLPZK9jw2v8qiPFXv+N/DLDJlB3sHLnHw0M8az5vgMKLyt4kTcYiVbvNqCefwsn6Dr+4kh5rU3DbPfA5d5M7j0E08smWPxGaRPFKlrFlpPI+d4iR7nOJRINs5/XtCITaMDUfZhhdi9fW3ugrsCjGh7PR6ZpBHXartU4m+PIaVWxa7HXm8pi8/utGHR7C9KM3ShYeTzmHSWschPyQ/bkqfx5AyJdS9k0NuSMeP8ipuJZ5U3QqubuKwpu/AjNsqHp3EMqxBK9y7nexqfCGdwwdSE224hsMBSfXgH61CPUU6V332n8212QKOq0yvrInh8E22k6PIlcNMc63lmBGHYyHeZ0xn2RX8b98eWQm6UV7aV6v8SsMkcvhIdltRvMRCKn77fLszBy/xGWOXLhYRUtVCzkXBF6Oxuz2nNwv+Uh8pUr9vKENHNJGC79XZvX4e61hsEhu1zdiykEtavhtcxaJPNeetMGDRpPyh/NPl92F4+T+LLVl+t3SH3GIGCHS9as+MaSGfFLLOsiiXIEgaZnepnMBJnJyjiiEw0dWdvplO0K1yLZuvIoiSNVq/xBHojVm5PxglMMy3eYMxZPEvJpUInuAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}],[\"x1\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y1\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/3VSbUyTVxSmAhGmHcUIrNu0qOgKluIYi4wEPRTkY6PiwImD6mDlswoRmKSIcziGFogQN9573/fdAIlahrqZ6IoIVNSVDw3sg4+BikYoDHEkQlsgQ5D5Y29vwrJfT8495zz3nPM8jlFPpvv1CKR19zO//BHBA/mk3JyCYF2p31TVVQQLW2Rqy20EAe0FE8l1CE4zKxRVRQg0JnvvJBECm++H2ypjSb92/zWH5j8RjFimj3p3kf6EdTnJApb0CUekt5Pk5D/XjLKcpgYEMbZdY5JqBHn7WhL6yxEc3C40misIPzdX2OgmVcQ5wj/wR9RiRDeCkMwTb5xxwgCzo50zRzCcHXNtXBWNoSPI8R29DFvzW3c9rmxejeHq0X0nqofI3Fx83K613HkGQQtra1c4iKCzoe54Sj8CFpxLB/5CYD8QViv1xFbkeNM61BXv2xB+cRPzu08RhhkZ70ENQ/7jeLi4bP0B/vQkAsd/9eD2W7o3pwOXv9AXG5ucT+5Yb17oDc8l98tYsFTrJiqg/HHo3fpwyop3FkeeHWMp0A9ty/62moKdPanLv+uiINXpp2XKnymIm+IXfdFBgUx3q7ihm4JWTUhNnz0CQaDnN15jFNiJCl3CJihrPGvzECunCK6J/1Xw6jAF4rzDZVODFOR4xxWE3iC4tK9GGi3e7ILgA0V7g8kfga97vn5zMNmH88f/+YG7G6cT5wfOH5wfufxSXRUXul1T7YlezRuUunth//XPsVMeQWmJGISV5pjIEgwBoqqNHQ0Y1vIGJY+6XuqLM2r5NzC8LbDrmHyThl7dzDZqGQ2KwLf0UQsY5NK2m/eX01b8UHrqE3UiDfd0+oe+Cho+ku5+4dJEw2IPf/XeORqe94QebjxDwxVN4smsPhrqNeJNTj4MOBvfvayKYMC2t/fKdAwDYpPH+OsmBgojfbNzV7Iwb+BZmpxZWGMsKQ3ew0IfPl85V8KCSrr1Na98FvaKnD53k7CQFfhKv1LPwG5R+KO8bsLThd0SWvoZsBhy6gv2M+BinJc7nGXgYGCwf5uSvHM4qlvVuCKdYKDg43N3PBmYNFxyM9ox0IaL13/lQea+rnlmuKRhIEjgHpxaSJBWpXhvDCF7cft2a5+u/VvIgIOxNssH0RAmMvNqWmn4RbuhIP4mDROGUfWOi+SdiytU1WUnn9JWPn/B1/aS32jIiXSdXTxP6u9qFUP6FKIHm5ctvyWhwcYo9LMMYzgQqbluMBH92rSUzJ1PW3Xm8Br2C73oRlvr8+LHde89weBkOrIlfQBDjWbHyueZL30myC3RpRPs1KXx4qIwzA9HU3uKMVzGWodDSeT9UHy8+oUfhk8j5/KLt5OYqxvv8ZoLDiCxf4S5/bMfMPwDTI5TiOAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8863\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8864\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p8859\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p8860\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p8861\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8871\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8865\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8866\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8867\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DyyvDAQAA4F92MZdZHsNOUySbcpADeTSvXGzLUpSFA3LA1MaiHZQssVYOIicXnLRSXv+c76uvJQiCkK2GbTNiu1E77LTLbmP22GufcRP2O+CgQw6bNOWIo4457oSTTjntjLOmnXPeBRddctkVM2bNuWreNdfdcNOCW26746577nvgoUceW/TEkmVPPbPiuRdWvfTKa2veeOuddRve++CjTz774qtvvvth00+//PbHX//8B3jw17KMAQAA\"},\"shape\":[99],\"dtype\":\"int32\",\"order\":\"little\"}],[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/2VQa0hTcRx1OSsE6yplbJVgRhjMUTBipdXBHlZoYhmViiTla9kkLdE00XxrLBXv/z6YVmCbj/CDZj4jfGRSs2IaDBNJZ5EpqNOtNIW+dL0f+nQ458f5cc7xvKVL7WonmFqyZ/kNESyWBJztjCLw/Kef1BbufLKVgWxK2XsjhOCad2osxYv3I29zZmPrCZT1o9oHTaK+diAwfamXYMFDv0INiv91e2662ecJXCxBRuV+Bvj1zeS4x8AQ3ba5+ztBVIPZM95F5AmD6VXnnBhM3L+kzFczCH2o4PJcmXX/hhjjlYIqBo5AyZenHAMe7mWWGTGHd5lqoaaF4OXi2siZNIKk4zLrYhVBWu3Kh7kLNA5v6Y7ITqLBFgUvzzfRKEs0ZLq9oHF+OH6TfohGYGtPSbuZhm/GXd3CGI0OTY2PzZVgZvKQPMdBw2z46dXhJHLBN95frtf/odd1mnreECQncKqbHKi+TJCfGTveWSrmE/Z6zTtL88ZEzJW+eeTuIOt7CP2FvinJ2X35cSL3kowpxocYkIzGJp9hBm2M6nTjDhY/+r1GjWEs9kk0Glkui3KNZW66nIWaqnRRfGLRXBxTdPszi6zgWpX/VQ5JR0+oB65ziFZO+odpOfja9k7LbRxW+yVLXe48ioOXqW1xPKyGjXxyDg+ZtW/22SoHXaTpY0jd/34BlZLfxnCViM4jI832ixz0Gj9Tb7XIhTwCCjkLIo9VethZvDNETbyKY3GQkg7O72LBZ6SE9ChYSK1fzRUBLFxtLRXvsxn4UmmlrYkM5JLtOtxhcEqpznscLuqm1gRJRKh4360tKiywMPgLDzXgARgDAAA=\"},\"shape\":[99],\"dtype\":\"float64\",\"order\":\"little\"}],[\"bottom\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/12QfSzUcRzHkTNangotlYeUKXPNpTS69S5PU5mHVmsxJaFdspppd9N0WnQyl+L3/f1+ZylTFyk2Jeep/giTMXPOYw+4w0iGm5PF0l/nt/XXa+8/Pp/P+/PqUlVmJw8SZEy5bOWvEjjdkKc3qQgUsM8fmiXwFgS4De+gcdk9PclOQRA26SkKf0GgjK+3bJ4i4FeOpN2r5uaGBiLXw9UEE0uGOz7dHLPN2x7ZLxMEp+XufG5Lw6uJ7T2YQ8Ms4dWFnGIa1zrExadMaMyVrFalHKI3+jR7JNYNh9Go4bX4L5+h8aehbP9pPo3eaZsrvytofLeoGx0ppyGUhmRFTHF7jD2sIqcNgy0E7vl+i6XvuP5f1ifmsxQUtIG+syGFFFJs35slfqaQ7nNRGvqRgpckQ774jcKs9oizdJlCGT/Gy9uRYEu7LDg7hkCt/OnSYELQICr10G8maJMFl/XzCHbH9tjZaKmNLNPzfK66EgjcMlu8gwjuZyb9aHzIefrft9GPfM91a8MCQdxrtVMKj4Z/1NjTZgfOl/FvYzb6aFdSJ92sGRj67g7sCmMQzS+4JE5gUCgamp8p5FgrS3hwq5+BwPRTqL6AxSaNptZwlsVSa/oHaTyLeL42MDqNhZd+74yznsVLUZPV3ygFJELG4dlNBbKFnjEjHiVw0Cz4pDYqMKo8vtrrqcBXpTjOr5ubl8d29URUsFhpDTjnomJhrztcIwrn7lloSqKL3nJMFQYdbU9kUS4xyV8bZXDA1NeqfoTBQuub7TpzFo66tQjLcha/WifFIVUMtulP9FgIGJjrxtSPjzHoVMaNtyQzmOtbZMaLaAS4lu7rUNF4IpmwzZVwXNPGUOfzuEwkVdUefTQ68247qldo/AMyrvUEGAMAAA==\"},\"shape\":[99],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8872\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8873\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8868\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"grey\"},\"fill_color\":{\"type\":\"value\",\"value\":\"grey\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"grey\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8869\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"grey\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"grey\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"grey\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8870\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"grey\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"grey\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"grey\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8880\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8874\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8875\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8876\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DsUpCAQAAwNdgDWqDc5mgIC2KSdTQ0haioygoOIRDpJNNgZQYQjiEkRGEiWQNFhFJfp93cEEQBBuG3HTLsBGjbhtzx13j7pkwacq0+2bMmvPAvIceeeyJp55ZsGjJshWr1qzb8NymF17asm3HK6/teuOtPfveOfDeoQ+OfPTJsc+++OrEN6fOfHfuh58u/PLbH3/9c+m/K9ejT3x0SAEAAA==\"},\"shape\":[82],\"dtype\":\"int32\",\"order\":\"little\"}],[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WRa0iTcRjFs2Z326tYgprmpVyQl0JU6HYUzZKNZXSDjbBCswkSiDYpc5qYhU0w3/9laqWCZC67MVNQDFlhpBk6vJRCeYmsoLk2A1OsD819Oh9+5+F5znnSU0eS6rIoetuaijKGCYokryo85wgWoxK09m6C1l+LlsN5BOqHA1suuNNl3mVYJbk+RpAWlJMuGFxz0kLFUGYFxbXbofGZZynIm0v7Ik9RfC44EVESRxF79FNthzdFoHdVvSOAIrNHW5WywuXrCDlvGk12+Z0890uAV8QfAn1wlofDSjDrVTMv9BBM2R1Xw/sI1im/OoY7CSKaPmQXtxB8n4jx1c2JkOXn6mfHRLRr7obY1pNldfKtqn5h04SIkSHl0pEBV26nJmaX+t2Xuvpx3mPU+8/I2yjS//f3ulFM2ObB4BgsHPJPZihQPTk+HM9QrvFMlccyKAOLDo5pOS7Lx8XaJYa9boqS8HgD5k2OwcCd1SiXv3z8tMuAFKFFVx9jQJ3Grkn7zbHBcs4atcYAmS10xtfG8bFRq47u49CrevsVDzhmTKOnm7o5VluqU+884tDJswZHnnG0l/00G8v48l6myQjfnsjRWibbIY3kqNLc09/4xmA1G30mJRybJxcUaxs47OacVt0ZDj9b/8aEaYY4odJ913uGH+ZpbVKzK0+QW8PbK2EMuwVJj9WfYdTUOb5HzfCCRh9q9mGwmOYOiCsZ1PvDOpWL//6nCvap0VN0N75rKH5OsTBxTDx5k6Iyf0pamk8hE/JumS5S/AW8YhjzkAIAAA==\"},\"shape\":[82],\"dtype\":\"float64\",\"order\":\"little\"}],[\"bottom\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WPbUhTYRiGi81MTdRFBv1waCMlbFmIhl/cSiWWIiIi1WZa2NRIKik6aWaYdkybGex9z3uQ/AgktVwpSzOHGOsDSoQ50yIy8yN/LNLlTDCp/hzPr4uL54b7uSc+pP9NsRMEnjOWvOgjWItIurL0koDTD+aO1xP8qolL6dcRDIoKZeVngpkld9meYYJMxfD38CaCMsdJc4WGILg2cvF+D0H5HU1iQR7FwM7Tlo/JFP/PT5rjKVTLPzQqDUVbTu/mgTkCXYc90OBBcWkuSKVdJZi6lqW9eUDO3VC+qg9YJjCGnPV1L8iU+qV/Jca8qXDmtxN0jGVn55cS6Au6RsP0JiRZhmr67CZ8sd1tbFyVqVRXbkt2mnB80bfq+lsTvNLn3eNWeYfkPWX66qYpuVdys4c1ejmVru/1c12NKJygqCsKyEiNFqCc/mpviBPQSyMPd24XcFTd35ygZti9cZ9X7ycBZ7TnubpgEa/5gy1VJhFH/LsqWqNE+DhOLUR4ijBzWYYxJ0NL0VJR7m+GFVtMVlAfQ472W2xGMcOsRdXvU8jwjA/b5beXwXji/UjaQ4bn/E/bI55B4XB0uzMZ1C7SOZnA1vsfcBtq/0wK6Obzbl0Ykzne9tRKSti6S7nHvDg/WipgqytxZNN+ASJ3MW0oXEA7P5oSFSLvk1wXH2pNX6OYtmXHeq9QeLt6Gt6VU7Twh7asFlMYUod2hDKKe9yMXzVHEeZ/+balkMLa5ukxe4ziHwAaZj2QAgAA\"},\"shape\":[82],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8881\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8882\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8877\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"fill_color\":{\"type\":\"value\",\"value\":\"black\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8878\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"black\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p8879\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"black\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8889\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8883\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8884\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8885\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WTeTTVaRjHyzqEinI14YpcI3WdpqSQ+eZaRt2kxSldIVlKe1RkikqK1hHv+3vR4pREaUGLqDAUWepKlAoRZiRNMZapmN+Z0zn99Tnv+2zv832ed6i1qXjuZIqNPqrVGUYUy+xFWWtMKMZ1eqgpmlPsm69t0z2VYutspecTplHcirLzXc+fP5XOcVrJ25Weu6SLeep+8/cwya9pmULhODZri5YFRUfxUGq/iMLW/HX61EkUCj/e3PnLeIrHQ30WEi2K+VxJbrwyRbuNxExdiY877/UkdQT/nvoFSwu+Ejjdf5hpPEiwqvlixdo+gnzX4tARPQQvwncsu/2ewE1pqyHpIKg9Gz7/1zcEvtM7V75rItjvoSJM4ClSXeG++yXBxkUnnlc3EAw9XVvl10hwfMW84j7eX2YsSAlvIXAdo2aTxnOHtW/qtbcEJ6UZFzraCSbL9yZHdBKopFbl//GBwCBdohDbS6DLbZEI+gmCWls3VQwQhLQbaos/E5gd16kIHiJIbrVudlal+I3TE2mNo9BQiMEkIUVv83nhS14HecEh2c/GFBVZN1IKJ3/XKXXXgwkXzCgGazWUKkXf78WjrKe48uyWy33X8f5S23dqI/k8L9of9E7Wo4i9ee/cR17Pl/qnMkRqFOo+Pu+yFSlCR8Z1XeH1urGlNPgE34+rReg4Ea9H9OFXTxOfEOzNbio3LSFI6rYo7coj2NDyy2y/awTtEZpF19MJhm95FoSdIhjbVjNQlUiwLyKg8U4cgWTV+g+yvQRe7Fan8U6CXr85S6esIzhjX26gIiOwFxg6Rc4nqCgetDw3j6CowTyoyJogoXpuwywxQZ5maZiviGBU6Lk9iUYEp3Q6FmbqE4R+9ksbo8fXO/1GcEiXoNIj4/gsAcEBza2qbTxzZ5Zt+nsCgXKUbdL5iQQtMmHdZ57d3ivDvQ0JjHyudL6YSlD8rV7MrqL0xQ4Eke77tXykvL1yKM55Od+H1nh7N18Cz8I7zdnBBPIfXBoiwwj2HPw6WH6AwFRbamVyjCDK6bh5HiN4H9ccaZLG70fbrpcl2QSNEwe33S0kGFO9d2BNDYF3soZzKL8/jXqinUf4Pa07HKGyaBTFs4MtEf783GPzDe5qTqeYVJ+ftcSRYvn4N6LPyynOBoxTCFtPcWl4UapKJMWRAYG6J6Goqf3ikJFJYYZ97q8KKAwrbJKdnlIk1qelXv+L4ob2R039YQof2Y77eQIOOa4PstWsOJxekCcJWcwBh/okbps5yLB2bmg8h2NH1f7VyOZgXVe6caqcQ8xS9cbzHRza/JYlKX/hkO1x689gbQarqGGx3RSGNL3pX6VgSLBaV3N0Cfv/P9X6M9gdnaGctIXhIXUvmrSHIfLx7vSOWAadNTE5egl8fPSl6PtnGXzFBWmjMxkCZ17senSd4UKP8uIFtxmiKt9sLCtiqBCklj4uY2ix9L/8upwh9plkxeoqBlvVA/3r5QzOJ9s7P/EUR5gotT1h+HjPVuJQzbBd0mcgLGW4HhnkWMPny1UIWliYxWA+4Pr7bL5us2Wcg/AYz6s6Fy0jGW4oKx5s2s6wwznN2GczQ2t2iq44gEE30Pi9tRdDweHDQxXuDEnBgdNMHRkqDboULW0Z4t8qSndNY/hUwqTFxgy9LszjmoBhwgaXRA91hrqMkKP9wxxyD7kVuPdwKE0y9TrXxevsn+NS2cJhRpy+p289hxNBdjcflXFICTEb7XeHg7NQpaooncO2yjNeYyiHS8rJTW0xHAKweGZmGIfqjJro5GB+TjrLnh3x4iC/LOth7hy874w0NHLkYMdeScOtOUSvvhqYY8HBD3GJGkIOntY/XQrR4SC1cDf4qsjBaGf8P179FP8BIUxvteAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8890\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8891\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8886\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8887\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8888\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8898\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8892\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8893\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8894\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/22UezDWWRjHlRW5RO+WimWyiFKbSpKKL6V37Vtuu5sxsSTdiKalmWS0NpdRK7dyzu9XrouK5FpY127oQoQkm1ci5RLlkjt7dqaZ9o/96zNnznOe5/t9znNOlc3Lj9+BosHrzDHBFooqD2F1lhFFsFFmpL0BRUdS1eYBfQqtT7TVWo/CyWyfTaU2xRaj7IPx6hS5JeI/h1Uo7jQWRtsspShvCVrevJiiotu+zfJrinsDmp5PlSjqpWcc1yygcIw3nrSX/cLf7u4pl2B0+rzOGPC9eWE+RfqIhbmqNIVJRGngNSmKdijeippD8db6tbfkLEHwoEvXqWmCNGX/dE3G1l1X6xKnCOR9ZjZlzBA81J7QaGDxfZbKXX6M03u1vrf5H9pnx6f0z6VY65+l0cjqzOAvz1oZisDPugZ02/y95ShO5wVKRMhTRJdXNP7NfCwz279CgfnaF1i7/PlCCvHkATN15ld25VnDHAHF0RDZ+5sXUcDh7ZMrjF4BJoa5yhSJJQY9+Syu9XP8/M/xq3enTjgwjnwjdHVjeW+0tBy6xOrYhbjITcl/0aPukVQ+y3Qqea1P12L61cKadWSYb6kQ13bzUYI50RNTtoMEW5+PtmOAoMh9/KVMN0GyWyDZ3knQcMWiuVZM0F0zGBL3gmBmOGGjRyMBH9ez0b2O4PGLV91eNQSnwj3Lih4TRGdZtUk8ZPtlGvG/VhL4ZqWsuHeHoE2jQsKijGDHxTctlUUEouRC3qiQILL3g8a5AnYv8vXmdTcJOmxrdcpzCKpFDu3jGQTrynyL/dIIbN/tU8i4QmA/alCtlkKwe3hctziJQL8tWzMogSDpJ/mkw/EE4gvbxmrjCNy1MmW8Ywkqz1flyPIEQtVpdVEMgfNWsWlUNMGU2DFXJorp0I/12BFJUJo6+k43gvmsVxEXhxPM7V97/BSjjemxVfnnCcJPJ/6uxuhq6x92jtHRPL1mKTtXlqC3N4nlueynSMcYA1wmJI1Z/iXDqQWmFwiOmC7rGLr4hfYh2nK3CIGVQ0yFL2Pj+4iGJUznrrx6w1Dmx0BP6XoN85no9lGl4DrBxdS1yj65rI+L3IrsWN/OZhf/eJ/1s/UJ51j1iEDv6qvqqibGj4bawnYCT+NU54O9BFHaxSon2P0W86+Lm9i81hWmbi9l82HqJHhm+S17j4KxsAOGFIL9pSdeW1I4921Na3Ki2Baywa3Vh0LaSjF2zVmKnSJcHYijWJWp6yjIZnM/ovvo7W2Knrw5isI6iheuwoyJdvYPPA01KRykCFIY3JM2l0NW4eyDBwIOKTdaZk5rcIjkMyVF+hxWD9sqGoOD96hEa541h6/mCSUELhyGho/mhHtyuCu1vmaBHwf/oKEtmqEcFJZNbkokHAr+OLmhN5mDwSKTvarZHPR+TtwtVcLqJEtqaVVx0M9S2h5bz8E5rdNO1Mrh6WGim9XF4Yh1vtfRfg45nWTy/ScOOjqRD/hZDhuQ6H5Pmoea0Xi5pRKP/PgFtvFLeYx4uk0Ea/KYrraXOKPHo+PcyWZen7G1z912E4/R4ArloG08Eu6IFm8255GdtspDvJOHnFrwRh1LHsppXbqZjOIBH7nuH3hUx7nGqzP6zPNfLvMfRnd+CHAQ8fCrXnNJxNbvTRY+eybkMV9FMdrSgsdNC7cezoxHjM6tklojHrN1x1uM1v97PrJXdzWP592XI6y0eQQI/HbcVmN1u4Vhhxbz0Bq7FvpSluWJM1jnO8NhvEajJnaQQ1PG1OTIGw4aRrJ9MU0cYofi0mwfcgjgVtr1sz4+FqvK/5LH4R+fxKBb4AUAAA==\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8899\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8900\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8895\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8896\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8897\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p8832\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p8845\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p8846\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p8847\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p8848\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"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\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p8854\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p8853\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p8855\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p8840\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p8841\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p8842\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p8843\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p8835\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p8836\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p8837\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_overrides\":{\"type\":\"map\",\"entries\":[[0,\"2025-01-02\"],[1,\"2025-01-03\"],[2,\"2025-01-06\"],[3,\"2025-01-07\"],[4,\"2025-01-08\"],[5,\"2025-01-09\"],[6,\"2025-01-10\"],[7,\"2025-01-13\"],[8,\"2025-01-14\"],[9,\"2025-01-15\"],[10,\"2025-01-16\"],[11,\"2025-01-17\"],[12,\"2025-01-20\"],[13,\"2025-01-21\"],[14,\"2025-01-22\"],[15,\"2025-01-23\"],[16,\"2025-01-24\"],[17,\"2025-01-27\"],[18,\"2025-02-05\"],[19,\"2025-02-06\"],[20,\"2025-02-07\"],[21,\"2025-02-10\"],[22,\"2025-02-11\"],[23,\"2025-02-12\"],[24,\"2025-02-13\"],[25,\"2025-02-14\"],[26,\"2025-02-17\"],[27,\"2025-02-18\"],[28,\"2025-02-19\"],[29,\"2025-02-20\"],[30,\"2025-02-21\"],[31,\"2025-02-24\"],[32,\"2025-02-25\"],[33,\"2025-02-26\"],[34,\"2025-02-27\"],[35,\"2025-02-28\"],[36,\"2025-03-03\"],[37,\"2025-03-04\"],[38,\"2025-03-05\"],[39,\"2025-03-06\"],[40,\"2025-03-07\"],[41,\"2025-03-10\"],[42,\"2025-03-11\"],[43,\"2025-03-12\"],[44,\"2025-03-13\"],[45,\"2025-03-14\"],[46,\"2025-03-17\"],[47,\"2025-03-18\"],[48,\"2025-03-19\"],[49,\"2025-03-20\"],[50,\"2025-03-21\"],[51,\"2025-03-24\"],[52,\"2025-03-25\"],[53,\"2025-03-26\"],[54,\"2025-03-27\"],[55,\"2025-03-28\"],[56,\"2025-03-31\"],[57,\"2025-04-01\"],[58,\"2025-04-02\"],[59,\"2025-04-03\"],[60,\"2025-04-07\"],[61,\"2025-04-08\"],[62,\"2025-04-09\"],[63,\"2025-04-10\"],[64,\"2025-04-11\"],[65,\"2025-04-14\"],[66,\"2025-04-15\"],[67,\"2025-04-16\"],[68,\"2025-04-17\"],[69,\"2025-04-18\"],[70,\"2025-04-21\"],[71,\"2025-04-22\"],[72,\"2025-04-23\"],[73,\"2025-04-24\"],[74,\"2025-04-25\"],[75,\"2025-04-28\"],[76,\"2025-04-29\"],[77,\"2025-04-30\"],[78,\"2025-05-06\"],[79,\"2025-05-07\"],[80,\"2025-05-08\"],[81,\"2025-05-09\"],[82,\"2025-05-12\"],[83,\"2025-05-13\"],[84,\"2025-05-14\"],[85,\"2025-05-15\"],[86,\"2025-05-16\"],[87,\"2025-05-19\"],[88,\"2025-05-20\"],[89,\"2025-05-21\"],[90,\"2025-05-22\"],[91,\"2025-05-23\"],[92,\"2025-05-26\"],[93,\"2025-05-27\"],[94,\"2025-05-28\"],[95,\"2025-05-29\"],[96,\"2025-05-30\"],[97,\"2025-06-03\"],[98,\"2025-06-04\"],[99,\"2025-06-05\"],[100,\"2025-06-06\"],[101,\"2025-06-09\"],[102,\"2025-06-10\"],[103,\"2025-06-11\"],[104,\"2025-06-12\"],[105,\"2025-06-13\"],[106,\"2025-06-16\"],[107,\"2025-06-17\"],[108,\"2025-06-18\"],[109,\"2025-06-19\"],[110,\"2025-06-20\"],[111,\"2025-06-23\"],[112,\"2025-06-24\"],[113,\"2025-06-25\"],[114,\"2025-06-26\"],[115,\"2025-06-27\"],[116,\"2025-06-30\"],[117,\"2025-07-01\"],[118,\"2025-07-02\"],[119,\"2025-07-03\"],[120,\"2025-07-04\"],[121,\"2025-07-07\"],[122,\"2025-07-08\"],[123,\"2025-07-09\"],[124,\"2025-07-10\"],[125,\"2025-07-11\"],[126,\"2025-07-14\"],[127,\"2025-07-15\"],[128,\"2025-07-16\"],[129,\"2025-07-17\"],[130,\"2025-07-18\"],[131,\"2025-07-21\"],[132,\"2025-07-22\"],[133,\"2025-07-23\"],[134,\"2025-07-24\"],[135,\"2025-07-25\"],[136,\"2025-07-28\"],[137,\"2025-07-29\"],[138,\"2025-07-30\"],[139,\"2025-07-31\"],[140,\"2025-08-01\"],[141,\"2025-08-04\"],[142,\"2025-08-05\"],[143,\"2025-08-06\"],[144,\"2025-08-07\"],[145,\"2025-08-08\"],[146,\"2025-08-11\"],[147,\"2025-08-12\"],[148,\"2025-08-13\"],[149,\"2025-08-14\"],[150,\"2025-08-15\"],[151,\"2025-08-18\"],[152,\"2025-08-19\"],[153,\"2025-08-20\"],[154,\"2025-08-21\"],[155,\"2025-08-22\"],[156,\"2025-08-25\"],[157,\"2025-08-26\"],[158,\"2025-08-27\"],[159,\"2025-08-28\"],[160,\"2025-08-29\"],[161,\"2025-09-01\"],[162,\"2025-09-02\"],[163,\"2025-09-03\"],[164,\"2025-09-04\"],[165,\"2025-09-05\"],[166,\"2025-09-08\"],[167,\"2025-09-09\"],[168,\"2025-09-10\"],[169,\"2025-09-11\"],[170,\"2025-09-12\"],[171,\"2025-09-15\"],[172,\"2025-09-16\"],[173,\"2025-09-17\"],[174,\"2025-09-18\"],[175,\"2025-09-19\"],[176,\"2025-09-22\"],[177,\"2025-09-23\"],[178,\"2025-09-24\"],[179,\"2025-09-25\"],[180,\"2025-09-26\"],[181,\"2025-09-29\"],[182,\"2025-09-30\"],[183,\"2025-10-09\"],[184,\"2025-10-10\"],[185,\"2025-10-13\"],[186,\"2025-10-14\"],[187,\"2025-10-15\"]]},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p8838\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p8839\",\"attributes\":{\"axis\":{\"id\":\"p8835\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p8844\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p8840\"}}}],\"min_border\":0}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p8901\",\"attributes\":{\"width\":1200,\"height\":200,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p8902\",\"attributes\":{\"bounds\":[-1,188]}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p8903\",\"attributes\":{\"bounds\":[-31.177939072646268,52.459862763673755]}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p8910\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p8911\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p8908\",\"attributes\":{\"text_color\":\"#5B5B5B\",\"text_font\":\"Helvetica\",\"text_font_size\":\"1.15em\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8939\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8933\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8934\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8935\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/xVUezTVWRTeXUrybFyuxuPevJnLvdfbzWN7Lg1JWEtTxKhUmNKgYpj1I6XCqJhpLCQtlsfENDV5xj1ReYQhj2ooadLksVJXyshjTn996zu/s39n7/3tb8OrOta4SBUB3Id5nAIJrLw3n5KTIXBZfeXvIxsIbJx/FspXJdC9WH0uVYPAXC/7vphLmJtbvG06DQijE5YR7UnRKjosK3AzAV5Jd8utTQQE6hrZ7zkE0p44116gWFXSXzPyJYF/WptjG/QJ4/WFv+l7PfofdeW+QhonnxcS8px+116MWS3XJPBM8S3K0bitx50559gEwi89n+bRPAY/5l9TonnJTgefZq0lcH65+1XlnAR4jvoP/B67gG24esQRWo/MjIPSKW1kxB4q0548hKjJtexwijvql7lxXITkcdfGRi2EsJLdPgI1hFap9liSEkKeR0qEkwqC6v1npvLrEXSrelzSAWHpmLsoaN4F/Ly2nY6RQXgpLiyfWofg3X7Iu0wRge39KWi7PIKeQ6Axn8YZSlv+VNNAKHUVjpbRPCLtE2Mj9BHmA74L79JEqBGnBBsoIGQ5igcO/+cCsFO3radRAqVXi8OU1hCok9tz1IjWa39mwWqbGoHIc9f8TtJ+NPBWR9tpfz1TIlM7tAk8NTdrc6b9C/9NKXZYj4DvXLp70mbCRAaylgZ5BPb6kEAHC4LDOXVNSZYELE3Gi8asCd5wjco2tyEkQGB43ZCiK4s15E/PM/WjcnhWBDjmL6dCRIRp3iEOEVgQpiprl1eZMWHSNEJPzxoSMB+LkD6mOj5ybeQX03fZ7SzVOfreXOWlgnouAeEhpVzQJVBYmBOtqUOgf3qiWJaerz9zXu4Pyi+W+S1p0jrURC03FGl9irUeZl+vIxDyQ1tmiVQCJ15kZ09+dIGaZMGpd1QfebvhRDNthAerhzwrqY6zdk6hKnpUz3fN1Q76yIh012hKDBFG7l1c6jBBRicwz6iIotRMi2VujBB4cczDzRiZs2dNk3sob57QSHM2Qib+zgnWtBHCVn6sSzaf6m/fwP1eiHDwhcWrewJkDDlmsioCqlPSUL6tBcK3PV7TXgJEyZCFvTW9J03ozUyzRAzmmOy9Y0njB+LMWTaIFT+W71uwQYj0zUiMskU4u15XI4dyK2ArG9ki86/3ZLrYDuHD62DrK3ZIXC+cSlqxRxSmpgVdcEKoyBjOU3BGKIlZNtnviIzNkFq0nxMS20yd/JtOyCRP1B976ITP+y7P1HARiVrnx8m7rniFLV1MN3NDxv/3Nd7gjuif0DEq9kSyk+/1YMEDeRW2fcb9HsgcntY4OOWG5Cdr5a4qROaJ1CFrxBFJXMauXF8xkiZ7Kc7YIl5qS/GpoHWtDsqLPGg/dmeE/qVP+zWUoO0Fugh2fNXiNxwEYU1ujSad58iXLQZSOv+k9PjT+QYJdNw6WZ6/IgGDRM2wWTk6z+y7Bl1LEoBK6dqlWQmo7pnxquqXwJWm+KJN4xKwF6hP1C1LYPBXh54bdA/pfdgQEKREwKpbrrWW7oHeY3kR23UJw23e33GU7o++DW8cZOk8uuVVqgQZEYgX2QVqfOZcrZgRisYv7nN86V5p4SnFKW8kEFrQNVpIfeQQFbFgoEXg0UGF2Ao6p5x9cpMydI/N88KT1Q0JsxKWYN1qRuBAe/z+hs/+GWi41yUkjMX22pZOEfXVpyO/lIkIKhh381nUJ2+67dwqqE/quJ6bCywI1IYtVl8VEKZct3RRnsY9vJ1a9IRyFenlOKElYWqaBBs1rQjD2iS3a4s1YVZ97nxDfYfCgddBlZaEKN4Obqum93Y8knfeQ/l1X/2fTSnmHlitk6doU7n4Wiok8PYr25MyAgJnAjvJOnO6f1MXA/jUp9Uy9e29PPI/ZRs6POAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8940\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8941\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8936\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8937\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8938\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p8948\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p8942\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p8943\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p8944\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3IezwTCBwAcK3YYs0sY4xZzDw3Nmnltd+8OuUqlRBND3pgHaVk5fW5CKHoDuEoeZTKUR+luuxXaSFJUq2SHkpJ5VEpRNef3+/Z9BNhIVIjCFByEvac0YPnrMa8jS5UEO7xZ1XWzYIVvtL6NdZfxJ0tUcfbv15VxLRfZCzfO6FY/5JWU7dQC7lHeXK3nzRM/fruQCdbD0WC2I0OKj0MbZswoenoY/+V7Kx2a31kpUqLlG/18Y10863CmUx8Pz8oK0BgjFe0VvQIN7PQTqv5ene9MSokjkuf/WuE7TxeFCeHiZpqLvmfuIa43XuZ6rI5A0cdKoaCPtAxxyOl5cqJuVjZB80v66no3PjBvMJQE6UtvJt+pT8UaomijgcLYhUlBXwn3/FxMdmmqGFDAhGie3JvWIRqg9J1vqUjgwalcXXhGitosLRKJWMe1QGXCbXpLgcdaGtdzF9vTYUaegt5js0cSLcO/XYybjbIprnlzu4kaMprlu2fIsL0Ben93kEShOej5MZPEvidU/VGPyCBJEJSWH6ODMmJa+fKHHVALfgm2S+VDkXee9Mu2+rBK5+GXFGsLryj6N77s1wHngT8t28NmQy1gaeoQuJMqOP/cTc4bUSs5jmHQmi6oNgymf7o4OhnRcjeZ/6HlxAwod6HGGuuieFlP7x9gnVwv/hkRVEkHTvfv23MZzOwqr56wzOSIfasTf192y42TokqLqsf4qCgWun/7LYlUu6sLB9YZotN0vR1M5h2WNU+M0iaYo/SrOiQYqIAEymbPE8zBHiwNNOFdu7XX1KKbWLssPDl7DPRmTycGzBDxCmywUOuFFZQhxVWFR9lvCZZYmStqjx0MxeHTs2KyBnkYFaBcp9PpRmaUTonEu6Z4oAq+SpDwxQPlMeVKT+yUUXMP7jhDQu9u82oJqOGuNDZJ3p8nx7ydpvGJ9+mIl2nq3b6NQHZ760S3W73KibozWMtSV/EgsnFvI5KDdBt7LO+raACtdoyg2agBzupDynVBUwISWp/sWHQBCrzs/MstswDVkaO80SeKQgzsu+dLTWDnCPq8VrmHBjl2pyZfZ4D13nfo3S9uOCo3N09EGYJ33yz+ht6rSD+tMQi9J018Cv79UpzbSAwrHaVfLktKEvkpl7zeNAV10x0aeDDX7FpMTdJ9kCt3ajaSRTA+fjijuhZQri+KxAr3wiB8KI2akjmAFuvBl6zHHeAY3n+rd1l86GfvDMpZZEjeL32MkyecITeoMFJapIIzpVo5kg7FkJwhF8FO20RtIaqz2td7AT8kQ+XRsecQPXYbxVkOIOs2HB7vNwFYi6Gfxrpc4UtM5IybvDEQI0b6jzkBZBcHk2I8pBA9vrWnqUz3KF3O63aM9cdhA9cMxkn3IF5i6Tl4uYOD1O6JCNyCaiCjDgL/gHoX9Y1s81aDN/Hti5fUuMCcq8B7hxtJ/j0Wde9TFsEwti+5QOjDtAQOujQYyGAdCYl9u4dW2Azp36uXWIJRceKnviGmcHhFfwCYZIxkIcZhxfOp4NcrigzI2sD37/GwciVCIHGi+yduQTASHqw4+pJsVq+e4by4ZC4vUTb4HrUfXFzap09c9NzRTCV5+H0eEzRZP50KMZDHcNFL2r4zdoYsiD3xJgRHROe03nhXQbYJg+UVeobI0vrcAGHwMY237PJO56zkDS1bgHZyAidqKIDdx2ZOFlf7RsjZGKrSbG4oo+Jx00rCIv9WPjF7TddQiAbdxf2rxXLTPHmNe8jL15x8OIwFwkyCxwv0/JhPrVCvqRbbWWTDaoiLzWm/bTF9R/WqMev5uHmvW967/zNw9SPUwm3pnlYWqQJEdv4KCRPGlDO8zHnlNW8+w/s0OTOXb2D2fbY/sjz7FsfAQ7T5iZOVwtQzVeDt/upALN3fCtOVRfiSGQAw1NfiCne/m8/GgrRImO0cd8v02j6yu89AtxV1We2OkyAzTSV/XCnPd7P3Hl+XaYdWn23SiEX2uL/R9jKtuAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p8949\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p8950\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8945\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8946\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p8947\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p8909\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p8922\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p8923\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p8924\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p8925\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"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\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p8931\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p8930\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p8932\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p8917\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p8918\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p8919\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p8920\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p8912\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p8913\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p8914\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p8915\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p8916\",\"attributes\":{\"axis\":{\"id\":\"p8912\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p8921\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p8917\"}}}]}}]}}]}};\n const render_items = [{\"docid\":\"461e0e03-87f9-4576-89e3-a9521a5fa29a\",\"roots\":{\"p8951\":\"c77c2aff-7b0c-4d60-8c94-ecdba1edbdc4\"},\"root_ids\":[\"p8951\"]}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", + "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"3abf45ff-dc05-4496-a2a4-029a342fe517\":{\"version\":\"3.8.2\",\"title\":\"Bokeh Application\",\"config\":{\"type\":\"object\",\"name\":\"DocumentConfig\",\"id\":\"p1450\",\"attributes\":{\"notifications\":{\"type\":\"object\",\"name\":\"Notifications\",\"id\":\"p1451\"}}},\"roots\":[{\"type\":\"object\",\"name\":\"Column\",\"id\":\"p1449\",\"attributes\":{\"children\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1304\",\"attributes\":{\"width\":1200,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1305\",\"attributes\":{\"bounds\":[-1,188]}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1306\",\"attributes\":{\"bounds\":[1329.177368,1766.731374]}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1313\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1314\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1311\",\"attributes\":{\"text_color\":\"#5B5B5B\",\"text_font\":\"Helvetica\",\"text_font_size\":\"1.15em\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1342\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1336\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1337\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1338\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x0\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y0\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/3VUa1BUZRjmmolTuxKXuAxMxhAoLlgEzOTigxYOsismGjRgg0JckhiCILC4mEqECirs+c45XBVZQGgyaXNRN4KQi0Jxi0VIEYiQiKJVQKEk+vFxZpzp1zPve773eb/3ed7zvXJrS8BzmQQBJ1y4IyYEPNYeH5hiEHqhxyLKmGAkba/kqBfBYaPreWvnGNR9si+rdITBhZ+Cgt79mME/bltTHjQxsDcrODdrR2A6N+1g6kDwelyWTZmIILotpWCHHkEDb2h05GcGgYadEy6lQt3qgHuzWg3zv+cp0v7Kdy4/fe1XBgP9AUt+PUIdRVGGvD86j8CvZGrRbYTAYH9l8LECAsyPd8wdIkg/6eATvZ+AaY/f7BpEVu5tPLC9UuIszFs+YXHFdDeB5667xdfMBP4vjTWeczKCnJob3/qHCjw0v1B/1tlfQqCubYp0qyP4zH19/LlWgucdA43LZ4VzVG+qM62j83eoqw9HaoU5Kf5lWrQgbhP0s3g/N/GqmkHqvoYwbZ7wner6hexhxbNiBucrdMl91QpoRrwTCksV2Kpq/Fzdo0CU6GuD8O8VqH+v5EWdCQOx1Dl//YQCd5pPFRUtKpCtM94YYc9Ar2q0pTiIgX9oq1rnxeCsZLfTBnOB/8mY8vUof7Or1xN4p0Y9rDPnhH6U3+oXSVOEnMGQfEZ+P1LYE+o39Z/qQPMU6d5Rv6iftI7q/eS+UP+pT7W5tpMytRBbFd8PlOUQyM1P7BhMIiiLTz4YoyGIe3j7w6FugsvE3bfGkgWfmiBvdGEx25vRb7udxavim5G5ySzuNdsNVr7JIi3k4h6tD4tt9i7hhrEsEmUW80sVLPZK9jw2v8qiPFXv+N/DLDJlB3sHLnHw0M8az5vgMKLyt4kTcYiVbvNqCefwsn6Dr+4kh5rU3DbPfA5d5M7j0E08smWPxGaRPFKlrFlpPI+d4iR7nOJRINs5/XtCITaMDUfZhhdi9fW3ugrsCjGh7PR6ZpBHXartU4m+PIaVWxa7HXm8pi8/utGHR7C9KM3ShYeTzmHSWschPyQ/bkqfx5AyJdS9k0NuSMeP8ipuJZ5U3QqubuKwpu/AjNsqHp3EMqxBK9y7nexqfCGdwwdSE224hsMBSfXgH61CPUU6V332n8212QKOq0yvrInh8E22k6PIlcNMc63lmBGHYyHeZ0xn2RX8b98eWQm6UV7aV6v8SsMkcvhIdltRvMRCKn77fLszBy/xGWOXLhYRUtVCzkXBF6Oxuz2nNwv+Uh8pUr9vKENHNJGC79XZvX4e61hsEhu1zdiykEtavhtcxaJPNeetMGDRpPyh/NPl92F4+T+LLVl+t3SH3GIGCHS9as+MaSGfFLLOsiiXIEgaZnepnMBJnJyjiiEw0dWdvplO0K1yLZuvIoiSNVq/xBHojVm5PxglMMy3eYMxZPEvJpUInuAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}],[\"x1\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y1\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/3VSbUyTVxSmAhGmHcUIrNu0qOgKluIYi4wEPRTkY6PiwImD6mDlswoRmKSIcziGFogQN9573/fdAIlahrqZ6IoIVNSVDw3sg4+BikYoDHEkQlsgQ5D5Y29vwrJfT8495zz3nPM8jlFPpvv1CKR19zO//BHBA/mk3JyCYF2p31TVVQQLW2Rqy20EAe0FE8l1CE4zKxRVRQg0JnvvJBECm++H2ypjSb92/zWH5j8RjFimj3p3kf6EdTnJApb0CUekt5Pk5D/XjLKcpgYEMbZdY5JqBHn7WhL6yxEc3C40misIPzdX2OgmVcQ5wj/wR9RiRDeCkMwTb5xxwgCzo50zRzCcHXNtXBWNoSPI8R29DFvzW3c9rmxejeHq0X0nqofI3Fx83K613HkGQQtra1c4iKCzoe54Sj8CFpxLB/5CYD8QViv1xFbkeNM61BXv2xB+cRPzu08RhhkZ70ENQ/7jeLi4bP0B/vQkAsd/9eD2W7o3pwOXv9AXG5ucT+5Yb17oDc8l98tYsFTrJiqg/HHo3fpwyop3FkeeHWMp0A9ty/62moKdPanLv+uiINXpp2XKnymIm+IXfdFBgUx3q7ihm4JWTUhNnz0CQaDnN15jFNiJCl3CJihrPGvzECunCK6J/1Xw6jAF4rzDZVODFOR4xxWE3iC4tK9GGi3e7ILgA0V7g8kfga97vn5zMNmH88f/+YG7G6cT5wfOH5wfufxSXRUXul1T7YlezRuUunth//XPsVMeQWmJGISV5pjIEgwBoqqNHQ0Y1vIGJY+6XuqLM2r5NzC8LbDrmHyThl7dzDZqGQ2KwLf0UQsY5NK2m/eX01b8UHrqE3UiDfd0+oe+Cho+ku5+4dJEw2IPf/XeORqe94QebjxDwxVN4smsPhrqNeJNTj4MOBvfvayKYMC2t/fKdAwDYpPH+OsmBgojfbNzV7Iwb+BZmpxZWGMsKQ3ew0IfPl85V8KCSrr1Na98FvaKnD53k7CQFfhKv1LPwG5R+KO8bsLThd0SWvoZsBhy6gv2M+BinJc7nGXgYGCwf5uSvHM4qlvVuCKdYKDg43N3PBmYNFxyM9ox0IaL13/lQea+rnlmuKRhIEjgHpxaSJBWpXhvDCF7cft2a5+u/VvIgIOxNssH0RAmMvNqWmn4RbuhIP4mDROGUfWOi+SdiytU1WUnn9JWPn/B1/aS32jIiXSdXTxP6u9qFUP6FKIHm5ctvyWhwcYo9LMMYzgQqbluMBH92rSUzJ1PW3Xm8Br2C73oRlvr8+LHde89weBkOrIlfQBDjWbHyueZL30myC3RpRPs1KXx4qIwzA9HU3uKMVzGWodDSeT9UHy8+oUfhk8j5/KLt5OYqxvv8ZoLDiCxf4S5/bMfMPwDTI5TiOAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1343\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1344\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p1339\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p1340\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Segment\",\"id\":\"p1341\",\"attributes\":{\"x0\":{\"type\":\"field\",\"field\":\"x0\"},\"y0\":{\"type\":\"field\",\"field\":\"y0\"},\"x1\":{\"type\":\"field\",\"field\":\"x1\"},\"y1\":{\"type\":\"field\",\"field\":\"y1\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1351\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1345\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1346\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1347\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DyyvDAQAA4F92MZdZHsNOUySbcpADeTSvXGzLUpSFA3LA1MaiHZQssVYOIicXnLRSXv+c76uvJQiCkK2GbTNiu1E77LTLbmP22GufcRP2O+CgQw6bNOWIo4457oSTTjntjLOmnXPeBRddctkVM2bNuWreNdfdcNOCW26746577nvgoUceW/TEkmVPPbPiuRdWvfTKa2veeOuddRve++CjTz774qtvvvth00+//PbHX//8B3jw17KMAQAA\"},\"shape\":[99],\"dtype\":\"int32\",\"order\":\"little\"}],[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/2VQa0hTcRx1OSsE6yplbJVgRhjMUTBipdXBHlZoYhmViiTla9kkLdE00XxrLBXv/z6YVmCbj/CDZj4jfGRSs2IaDBNJZ5EpqNOtNIW+dL0f+nQ458f5cc7xvKVL7WonmFqyZ/kNESyWBJztjCLw/Kef1BbufLKVgWxK2XsjhOCad2osxYv3I29zZmPrCZT1o9oHTaK+diAwfamXYMFDv0INiv91e2662ecJXCxBRuV+Bvj1zeS4x8AQ3ba5+ztBVIPZM95F5AmD6VXnnBhM3L+kzFczCH2o4PJcmXX/hhjjlYIqBo5AyZenHAMe7mWWGTGHd5lqoaaF4OXi2siZNIKk4zLrYhVBWu3Kh7kLNA5v6Y7ITqLBFgUvzzfRKEs0ZLq9oHF+OH6TfohGYGtPSbuZhm/GXd3CGI0OTY2PzZVgZvKQPMdBw2z46dXhJHLBN95frtf/odd1mnreECQncKqbHKi+TJCfGTveWSrmE/Z6zTtL88ZEzJW+eeTuIOt7CP2FvinJ2X35cSL3kowpxocYkIzGJp9hBm2M6nTjDhY/+r1GjWEs9kk0Glkui3KNZW66nIWaqnRRfGLRXBxTdPszi6zgWpX/VQ5JR0+oB65ziFZO+odpOfja9k7LbRxW+yVLXe48ioOXqW1xPKyGjXxyDg+ZtW/22SoHXaTpY0jd/34BlZLfxnCViM4jI832ixz0Gj9Tb7XIhTwCCjkLIo9VethZvDNETbyKY3GQkg7O72LBZ6SE9ChYSK1fzRUBLFxtLRXvsxn4UmmlrYkM5JLtOtxhcEqpznscLuqm1gRJRKh4360tKiywMPgLDzXgARgDAAA=\"},\"shape\":[99],\"dtype\":\"float64\",\"order\":\"little\"}],[\"bottom\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/12QfSzUcRzHkTNangotlYeUKXPNpTS69S5PU5mHVmsxJaFdspppd9N0WnQyl+L3/f1+ZylTFyk2Jeep/giTMXPOYw+4w0iGm5PF0l/nt/XXa+8/Pp/P+/PqUlVmJw8SZEy5bOWvEjjdkKc3qQgUsM8fmiXwFgS4De+gcdk9PclOQRA26SkKf0GgjK+3bJ4i4FeOpN2r5uaGBiLXw9UEE0uGOz7dHLPN2x7ZLxMEp+XufG5Lw6uJ7T2YQ8Ms4dWFnGIa1zrExadMaMyVrFalHKI3+jR7JNYNh9Go4bX4L5+h8aehbP9pPo3eaZsrvytofLeoGx0ppyGUhmRFTHF7jD2sIqcNgy0E7vl+i6XvuP5f1ifmsxQUtIG+syGFFFJs35slfqaQ7nNRGvqRgpckQ774jcKs9oizdJlCGT/Gy9uRYEu7LDg7hkCt/OnSYELQICr10G8maJMFl/XzCHbH9tjZaKmNLNPzfK66EgjcMlu8gwjuZyb9aHzIefrft9GPfM91a8MCQdxrtVMKj4Z/1NjTZgfOl/FvYzb6aFdSJ92sGRj67g7sCmMQzS+4JE5gUCgamp8p5FgrS3hwq5+BwPRTqL6AxSaNptZwlsVSa/oHaTyLeL42MDqNhZd+74yznsVLUZPV3ygFJELG4dlNBbKFnjEjHiVw0Cz4pDYqMKo8vtrrqcBXpTjOr5ubl8d29URUsFhpDTjnomJhrztcIwrn7lloSqKL3nJMFQYdbU9kUS4xyV8bZXDA1NeqfoTBQuub7TpzFo66tQjLcha/WifFIVUMtulP9FgIGJjrxtSPjzHoVMaNtyQzmOtbZMaLaAS4lu7rUNF4IpmwzZVwXNPGUOfzuEwkVdUefTQ68247qldo/AMyrvUEGAMAAA==\"},\"shape\":[99],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1352\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1353\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1348\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1349\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1350\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1360\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1354\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1355\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1356\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DsUpCAQAAwNdgDWqDc5mgIC2KSdTQ0haioygoOIRDpJNNgZQYQjiEkRGEiWQNFhFJfp93cEEQBBuG3HTLsBGjbhtzx13j7pkwacq0+2bMmvPAvIceeeyJp55ZsGjJshWr1qzb8NymF17asm3HK6/teuOtPfveOfDeoQ+OfPTJsc+++OrEN6fOfHfuh58u/PLbH3/9c+m/K9ejT3x0SAEAAA==\"},\"shape\":[82],\"dtype\":\"int32\",\"order\":\"little\"}],[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WRa0iTcRjFs2Z326tYgprmpVyQl0JU6HYUzZKNZXSDjbBCswkSiDYpc5qYhU0w3/9laqWCZC67MVNQDFlhpBk6vJRCeYmsoLk2A1OsD819Oh9+5+F5znnSU0eS6rIoetuaijKGCYokryo85wgWoxK09m6C1l+LlsN5BOqHA1suuNNl3mVYJbk+RpAWlJMuGFxz0kLFUGYFxbXbofGZZynIm0v7Ik9RfC44EVESRxF79FNthzdFoHdVvSOAIrNHW5WywuXrCDlvGk12+Z0890uAV8QfAn1wlofDSjDrVTMv9BBM2R1Xw/sI1im/OoY7CSKaPmQXtxB8n4jx1c2JkOXn6mfHRLRr7obY1pNldfKtqn5h04SIkSHl0pEBV26nJmaX+t2Xuvpx3mPU+8/I2yjS//f3ulFM2ObB4BgsHPJPZihQPTk+HM9QrvFMlccyKAOLDo5pOS7Lx8XaJYa9boqS8HgD5k2OwcCd1SiXv3z8tMuAFKFFVx9jQJ3Grkn7zbHBcs4atcYAmS10xtfG8bFRq47u49CrevsVDzhmTKOnm7o5VluqU+884tDJswZHnnG0l/00G8v48l6myQjfnsjRWibbIY3kqNLc09/4xmA1G30mJRybJxcUaxs47OacVt0ZDj9b/8aEaYY4odJ913uGH+ZpbVKzK0+QW8PbK2EMuwVJj9WfYdTUOb5HzfCCRh9q9mGwmOYOiCsZ1PvDOpWL//6nCvap0VN0N75rKH5OsTBxTDx5k6Iyf0pamk8hE/JumS5S/AW8YhjzkAIAAA==\"},\"shape\":[82],\"dtype\":\"float64\",\"order\":\"little\"}],[\"bottom\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WPbUhTYRiGi81MTdRFBv1waCMlbFmIhl/cSiWWIiIi1WZa2NRIKik6aWaYdkybGex9z3uQ/AgktVwpSzOHGOsDSoQ50yIy8yN/LNLlTDCp/hzPr4uL54b7uSc+pP9NsRMEnjOWvOgjWItIurL0koDTD+aO1xP8qolL6dcRDIoKZeVngpkld9meYYJMxfD38CaCMsdJc4WGILg2cvF+D0H5HU1iQR7FwM7Tlo/JFP/PT5rjKVTLPzQqDUVbTu/mgTkCXYc90OBBcWkuSKVdJZi6lqW9eUDO3VC+qg9YJjCGnPV1L8iU+qV/Jca8qXDmtxN0jGVn55cS6Au6RsP0JiRZhmr67CZ8sd1tbFyVqVRXbkt2mnB80bfq+lsTvNLn3eNWeYfkPWX66qYpuVdys4c1ejmVru/1c12NKJygqCsKyEiNFqCc/mpviBPQSyMPd24XcFTd35ygZti9cZ9X7ycBZ7TnubpgEa/5gy1VJhFH/LsqWqNE+DhOLUR4ijBzWYYxJ0NL0VJR7m+GFVtMVlAfQ472W2xGMcOsRdXvU8jwjA/b5beXwXji/UjaQ4bn/E/bI55B4XB0uzMZ1C7SOZnA1vsfcBtq/0wK6Obzbl0Ykzne9tRKSti6S7nHvDg/WipgqytxZNN+ASJ3MW0oXEA7P5oSFSLvk1wXH2pNX6OYtmXHeq9QeLt6Gt6VU7Twh7asFlMYUod2hDKKe9yMXzVHEeZ/+balkMLa5ukxe4ziHwAaZj2QAgAA\"},\"shape\":[82],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1361\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1362\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1357\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1358\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1359\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1369\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1363\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1364\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1365\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/0WTeTTVaRjHyzqEinI14YpcI3WdpqSQ+eZaRt2kxSldIVlKe1RkikqK1hHv+3vR4pREaUGLqDAUWepKlAoRZiRNMZapmN+Z0zn99Tnv+2zv832ed6i1qXjuZIqNPqrVGUYUy+xFWWtMKMZ1eqgpmlPsm69t0z2VYutspecTplHcirLzXc+fP5XOcVrJ25Weu6SLeep+8/cwya9pmULhODZri5YFRUfxUGq/iMLW/HX61EkUCj/e3PnLeIrHQ30WEi2K+VxJbrwyRbuNxExdiY877/UkdQT/nvoFSwu+Ejjdf5hpPEiwqvlixdo+gnzX4tARPQQvwncsu/2ewE1pqyHpIKg9Gz7/1zcEvtM7V75rItjvoSJM4ClSXeG++yXBxkUnnlc3EAw9XVvl10hwfMW84j7eX2YsSAlvIXAdo2aTxnOHtW/qtbcEJ6UZFzraCSbL9yZHdBKopFbl//GBwCBdohDbS6DLbZEI+gmCWls3VQwQhLQbaos/E5gd16kIHiJIbrVudlal+I3TE2mNo9BQiMEkIUVv83nhS14HecEh2c/GFBVZN1IKJ3/XKXXXgwkXzCgGazWUKkXf78WjrKe48uyWy33X8f5S23dqI/k8L9of9E7Wo4i9ee/cR17Pl/qnMkRqFOo+Pu+yFSlCR8Z1XeH1urGlNPgE34+rReg4Ea9H9OFXTxOfEOzNbio3LSFI6rYo7coj2NDyy2y/awTtEZpF19MJhm95FoSdIhjbVjNQlUiwLyKg8U4cgWTV+g+yvQRe7Fan8U6CXr85S6esIzhjX26gIiOwFxg6Rc4nqCgetDw3j6CowTyoyJogoXpuwywxQZ5maZiviGBU6Lk9iUYEp3Q6FmbqE4R+9ksbo8fXO/1GcEiXoNIj4/gsAcEBza2qbTxzZ5Zt+nsCgXKUbdL5iQQtMmHdZ57d3ivDvQ0JjHyudL6YSlD8rV7MrqL0xQ4Eke77tXykvL1yKM55Od+H1nh7N18Cz8I7zdnBBPIfXBoiwwj2HPw6WH6AwFRbamVyjCDK6bh5HiN4H9ccaZLG70fbrpcl2QSNEwe33S0kGFO9d2BNDYF3soZzKL8/jXqinUf4Pa07HKGyaBTFs4MtEf783GPzDe5qTqeYVJ+ftcSRYvn4N6LPyynOBoxTCFtPcWl4UapKJMWRAYG6J6Goqf3ikJFJYYZ97q8KKAwrbJKdnlIk1qelXv+L4ob2R039YQof2Y77eQIOOa4PstWsOJxekCcJWcwBh/okbps5yLB2bmg8h2NH1f7VyOZgXVe6caqcQ8xS9cbzHRza/JYlKX/hkO1x689gbQarqGGx3RSGNL3pX6VgSLBaV3N0Cfv/P9X6M9gdnaGctIXhIXUvmrSHIfLx7vSOWAadNTE5egl8fPSl6PtnGXzFBWmjMxkCZ17senSd4UKP8uIFtxmiKt9sLCtiqBCklj4uY2ix9L/8upwh9plkxeoqBlvVA/3r5QzOJ9s7P/EUR5gotT1h+HjPVuJQzbBd0mcgLGW4HhnkWMPny1UIWliYxWA+4Pr7bL5us2Wcg/AYz6s6Fy0jGW4oKx5s2s6wwznN2GczQ2t2iq44gEE30Pi9tRdDweHDQxXuDEnBgdNMHRkqDboULW0Z4t8qSndNY/hUwqTFxgy9LszjmoBhwgaXRA91hrqMkKP9wxxyD7kVuPdwKE0y9TrXxevsn+NS2cJhRpy+p289hxNBdjcflXFICTEb7XeHg7NQpaooncO2yjNeYyiHS8rJTW0xHAKweGZmGIfqjJro5GB+TjrLnh3x4iC/LOth7hy874w0NHLkYMdeScOtOUSvvhqYY8HBD3GJGkIOntY/XQrR4SC1cDf4qsjBaGf8P179FP8BIUxvteAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1370\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1371\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1366\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1367\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1368\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1378\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1372\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1373\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1374\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/22UezDWWRjHlRW5RO+WimWyiFKbSpKKL6V37Vtuu5sxsSTdiKalmWS0NpdRK7dyzu9XrouK5FpY127oQoQkm1ci5RLlkjt7dqaZ9o/96zNnznOe5/t9znNOlc3Lj9+BosHrzDHBFooqD2F1lhFFsFFmpL0BRUdS1eYBfQqtT7TVWo/CyWyfTaU2xRaj7IPx6hS5JeI/h1Uo7jQWRtsspShvCVrevJiiotu+zfJrinsDmp5PlSjqpWcc1yygcIw3nrSX/cLf7u4pl2B0+rzOGPC9eWE+RfqIhbmqNIVJRGngNSmKdijeippD8db6tbfkLEHwoEvXqWmCNGX/dE3G1l1X6xKnCOR9ZjZlzBA81J7QaGDxfZbKXX6M03u1vrf5H9pnx6f0z6VY65+l0cjqzOAvz1oZisDPugZ02/y95ShO5wVKRMhTRJdXNP7NfCwz279CgfnaF1i7/PlCCvHkATN15ld25VnDHAHF0RDZ+5sXUcDh7ZMrjF4BJoa5yhSJJQY9+Syu9XP8/M/xq3enTjgwjnwjdHVjeW+0tBy6xOrYhbjITcl/0aPukVQ+y3Qqea1P12L61cKadWSYb6kQ13bzUYI50RNTtoMEW5+PtmOAoMh9/KVMN0GyWyDZ3knQcMWiuVZM0F0zGBL3gmBmOGGjRyMBH9ez0b2O4PGLV91eNQSnwj3Lih4TRGdZtUk8ZPtlGvG/VhL4ZqWsuHeHoE2jQsKijGDHxTctlUUEouRC3qiQILL3g8a5AnYv8vXmdTcJOmxrdcpzCKpFDu3jGQTrynyL/dIIbN/tU8i4QmA/alCtlkKwe3hctziJQL8tWzMogSDpJ/mkw/EE4gvbxmrjCNy1MmW8Ywkqz1flyPIEQtVpdVEMgfNWsWlUNMGU2DFXJorp0I/12BFJUJo6+k43gvmsVxEXhxPM7V97/BSjjemxVfnnCcJPJ/6uxuhq6x92jtHRPL1mKTtXlqC3N4nlueynSMcYA1wmJI1Z/iXDqQWmFwiOmC7rGLr4hfYh2nK3CIGVQ0yFL2Pj+4iGJUznrrx6w1Dmx0BP6XoN85no9lGl4DrBxdS1yj65rI+L3IrsWN/OZhf/eJ/1s/UJ51j1iEDv6qvqqibGj4bawnYCT+NU54O9BFHaxSon2P0W86+Lm9i81hWmbi9l82HqJHhm+S17j4KxsAOGFIL9pSdeW1I4921Na3Ki2Baywa3Vh0LaSjF2zVmKnSJcHYijWJWp6yjIZnM/ovvo7W2Knrw5isI6iheuwoyJdvYPPA01KRykCFIY3JM2l0NW4eyDBwIOKTdaZk5rcIjkMyVF+hxWD9sqGoOD96hEa541h6/mCSUELhyGho/mhHtyuCu1vmaBHwf/oKEtmqEcFJZNbkokHAr+OLmhN5mDwSKTvarZHPR+TtwtVcLqJEtqaVVx0M9S2h5bz8E5rdNO1Mrh6WGim9XF4Yh1vtfRfg45nWTy/ScOOjqRD/hZDhuQ6H5Pmoea0Xi5pRKP/PgFtvFLeYx4uk0Ea/KYrraXOKPHo+PcyWZen7G1z912E4/R4ArloG08Eu6IFm8255GdtspDvJOHnFrwRh1LHsppXbqZjOIBH7nuH3hUx7nGqzP6zPNfLvMfRnd+CHAQ8fCrXnNJxNbvTRY+eybkMV9FMdrSgsdNC7cezoxHjM6tklojHrN1x1uM1v97PrJXdzWP592XI6y0eQQI/HbcVmN1u4Vhhxbz0Bq7FvpSluWJM1jnO8NhvEajJnaQQ1PG1OTIGw4aRrJ9MU0cYofi0mwfcgjgVtr1sz4+FqvK/5LH4R+fxKBb4AUAAA==\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1379\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1380\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1375\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1376\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1377\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1312\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1325\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1326\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1327\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1328\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"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\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1334\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1333\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1335\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1320\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1321\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1322\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1323\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1315\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1316\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1317\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_overrides\":{\"type\":\"map\",\"entries\":[[0,\"2025-01-02\"],[1,\"2025-01-03\"],[2,\"2025-01-06\"],[3,\"2025-01-07\"],[4,\"2025-01-08\"],[5,\"2025-01-09\"],[6,\"2025-01-10\"],[7,\"2025-01-13\"],[8,\"2025-01-14\"],[9,\"2025-01-15\"],[10,\"2025-01-16\"],[11,\"2025-01-17\"],[12,\"2025-01-20\"],[13,\"2025-01-21\"],[14,\"2025-01-22\"],[15,\"2025-01-23\"],[16,\"2025-01-24\"],[17,\"2025-01-27\"],[18,\"2025-02-05\"],[19,\"2025-02-06\"],[20,\"2025-02-07\"],[21,\"2025-02-10\"],[22,\"2025-02-11\"],[23,\"2025-02-12\"],[24,\"2025-02-13\"],[25,\"2025-02-14\"],[26,\"2025-02-17\"],[27,\"2025-02-18\"],[28,\"2025-02-19\"],[29,\"2025-02-20\"],[30,\"2025-02-21\"],[31,\"2025-02-24\"],[32,\"2025-02-25\"],[33,\"2025-02-26\"],[34,\"2025-02-27\"],[35,\"2025-02-28\"],[36,\"2025-03-03\"],[37,\"2025-03-04\"],[38,\"2025-03-05\"],[39,\"2025-03-06\"],[40,\"2025-03-07\"],[41,\"2025-03-10\"],[42,\"2025-03-11\"],[43,\"2025-03-12\"],[44,\"2025-03-13\"],[45,\"2025-03-14\"],[46,\"2025-03-17\"],[47,\"2025-03-18\"],[48,\"2025-03-19\"],[49,\"2025-03-20\"],[50,\"2025-03-21\"],[51,\"2025-03-24\"],[52,\"2025-03-25\"],[53,\"2025-03-26\"],[54,\"2025-03-27\"],[55,\"2025-03-28\"],[56,\"2025-03-31\"],[57,\"2025-04-01\"],[58,\"2025-04-02\"],[59,\"2025-04-03\"],[60,\"2025-04-07\"],[61,\"2025-04-08\"],[62,\"2025-04-09\"],[63,\"2025-04-10\"],[64,\"2025-04-11\"],[65,\"2025-04-14\"],[66,\"2025-04-15\"],[67,\"2025-04-16\"],[68,\"2025-04-17\"],[69,\"2025-04-18\"],[70,\"2025-04-21\"],[71,\"2025-04-22\"],[72,\"2025-04-23\"],[73,\"2025-04-24\"],[74,\"2025-04-25\"],[75,\"2025-04-28\"],[76,\"2025-04-29\"],[77,\"2025-04-30\"],[78,\"2025-05-06\"],[79,\"2025-05-07\"],[80,\"2025-05-08\"],[81,\"2025-05-09\"],[82,\"2025-05-12\"],[83,\"2025-05-13\"],[84,\"2025-05-14\"],[85,\"2025-05-15\"],[86,\"2025-05-16\"],[87,\"2025-05-19\"],[88,\"2025-05-20\"],[89,\"2025-05-21\"],[90,\"2025-05-22\"],[91,\"2025-05-23\"],[92,\"2025-05-26\"],[93,\"2025-05-27\"],[94,\"2025-05-28\"],[95,\"2025-05-29\"],[96,\"2025-05-30\"],[97,\"2025-06-03\"],[98,\"2025-06-04\"],[99,\"2025-06-05\"],[100,\"2025-06-06\"],[101,\"2025-06-09\"],[102,\"2025-06-10\"],[103,\"2025-06-11\"],[104,\"2025-06-12\"],[105,\"2025-06-13\"],[106,\"2025-06-16\"],[107,\"2025-06-17\"],[108,\"2025-06-18\"],[109,\"2025-06-19\"],[110,\"2025-06-20\"],[111,\"2025-06-23\"],[112,\"2025-06-24\"],[113,\"2025-06-25\"],[114,\"2025-06-26\"],[115,\"2025-06-27\"],[116,\"2025-06-30\"],[117,\"2025-07-01\"],[118,\"2025-07-02\"],[119,\"2025-07-03\"],[120,\"2025-07-04\"],[121,\"2025-07-07\"],[122,\"2025-07-08\"],[123,\"2025-07-09\"],[124,\"2025-07-10\"],[125,\"2025-07-11\"],[126,\"2025-07-14\"],[127,\"2025-07-15\"],[128,\"2025-07-16\"],[129,\"2025-07-17\"],[130,\"2025-07-18\"],[131,\"2025-07-21\"],[132,\"2025-07-22\"],[133,\"2025-07-23\"],[134,\"2025-07-24\"],[135,\"2025-07-25\"],[136,\"2025-07-28\"],[137,\"2025-07-29\"],[138,\"2025-07-30\"],[139,\"2025-07-31\"],[140,\"2025-08-01\"],[141,\"2025-08-04\"],[142,\"2025-08-05\"],[143,\"2025-08-06\"],[144,\"2025-08-07\"],[145,\"2025-08-08\"],[146,\"2025-08-11\"],[147,\"2025-08-12\"],[148,\"2025-08-13\"],[149,\"2025-08-14\"],[150,\"2025-08-15\"],[151,\"2025-08-18\"],[152,\"2025-08-19\"],[153,\"2025-08-20\"],[154,\"2025-08-21\"],[155,\"2025-08-22\"],[156,\"2025-08-25\"],[157,\"2025-08-26\"],[158,\"2025-08-27\"],[159,\"2025-08-28\"],[160,\"2025-08-29\"],[161,\"2025-09-01\"],[162,\"2025-09-02\"],[163,\"2025-09-03\"],[164,\"2025-09-04\"],[165,\"2025-09-05\"],[166,\"2025-09-08\"],[167,\"2025-09-09\"],[168,\"2025-09-10\"],[169,\"2025-09-11\"],[170,\"2025-09-12\"],[171,\"2025-09-15\"],[172,\"2025-09-16\"],[173,\"2025-09-17\"],[174,\"2025-09-18\"],[175,\"2025-09-19\"],[176,\"2025-09-22\"],[177,\"2025-09-23\"],[178,\"2025-09-24\"],[179,\"2025-09-25\"],[180,\"2025-09-26\"],[181,\"2025-09-29\"],[182,\"2025-09-30\"],[183,\"2025-10-09\"],[184,\"2025-10-10\"],[185,\"2025-10-13\"],[186,\"2025-10-14\"],[187,\"2025-10-15\"]]},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1318\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1319\",\"attributes\":{\"axis\":{\"id\":\"p1315\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1324\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1320\"}}}],\"min_border\":0}},{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1381\",\"attributes\":{\"width\":1200,\"height\":200,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1382\",\"attributes\":{\"bounds\":[-1,188]}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1383\",\"attributes\":{\"bounds\":[-31.177939072646268,52.459862763673755]}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1390\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1391\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1388\",\"attributes\":{\"text_color\":\"#5B5B5B\",\"text_font\":\"Helvetica\",\"text_font_size\":\"1.15em\"}},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1419\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1413\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1414\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1415\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/xVUezTVWRTeXUrybFyuxuPevJnLvdfbzWN7Lg1JWEtTxKhUmNKgYpj1I6XCqJhpLCQtlsfENDV5xj1ReYQhj2ooadLksVJXyshjTn996zu/s39n7/3tb8OrOta4SBUB3Id5nAIJrLw3n5KTIXBZfeXvIxsIbJx/FspXJdC9WH0uVYPAXC/7vphLmJtbvG06DQijE5YR7UnRKjosK3AzAV5Jd8utTQQE6hrZ7zkE0p44116gWFXSXzPyJYF/WptjG/QJ4/WFv+l7PfofdeW+QhonnxcS8px+116MWS3XJPBM8S3K0bitx50559gEwi89n+bRPAY/5l9TonnJTgefZq0lcH65+1XlnAR4jvoP/B67gG24esQRWo/MjIPSKW1kxB4q0548hKjJtexwijvql7lxXITkcdfGRi2EsJLdPgI1hFap9liSEkKeR0qEkwqC6v1npvLrEXSrelzSAWHpmLsoaN4F/Ly2nY6RQXgpLiyfWofg3X7Iu0wRge39KWi7PIKeQ6Axn8YZSlv+VNNAKHUVjpbRPCLtE2Mj9BHmA74L79JEqBGnBBsoIGQ5igcO/+cCsFO3radRAqVXi8OU1hCok9tz1IjWa39mwWqbGoHIc9f8TtJ+NPBWR9tpfz1TIlM7tAk8NTdrc6b9C/9NKXZYj4DvXLp70mbCRAaylgZ5BPb6kEAHC4LDOXVNSZYELE3Gi8asCd5wjco2tyEkQGB43ZCiK4s15E/PM/WjcnhWBDjmL6dCRIRp3iEOEVgQpiprl1eZMWHSNEJPzxoSMB+LkD6mOj5ybeQX03fZ7SzVOfreXOWlgnouAeEhpVzQJVBYmBOtqUOgf3qiWJaerz9zXu4Pyi+W+S1p0jrURC03FGl9irUeZl+vIxDyQ1tmiVQCJ15kZ09+dIGaZMGpd1QfebvhRDNthAerhzwrqY6zdk6hKnpUz3fN1Q76yIh012hKDBFG7l1c6jBBRicwz6iIotRMi2VujBB4cczDzRiZs2dNk3sob57QSHM2Qib+zgnWtBHCVn6sSzaf6m/fwP1eiHDwhcWrewJkDDlmsioCqlPSUL6tBcK3PV7TXgJEyZCFvTW9J03ozUyzRAzmmOy9Y0njB+LMWTaIFT+W71uwQYj0zUiMskU4u15XI4dyK2ArG9ki86/3ZLrYDuHD62DrK3ZIXC+cSlqxRxSmpgVdcEKoyBjOU3BGKIlZNtnviIzNkFq0nxMS20yd/JtOyCRP1B976ITP+y7P1HARiVrnx8m7rniFLV1MN3NDxv/3Nd7gjuif0DEq9kSyk+/1YMEDeRW2fcb9HsgcntY4OOWG5Cdr5a4qROaJ1CFrxBFJXMauXF8xkiZ7Kc7YIl5qS/GpoHWtDsqLPGg/dmeE/qVP+zWUoO0Fugh2fNXiNxwEYU1ujSad58iXLQZSOv+k9PjT+QYJdNw6WZ6/IgGDRM2wWTk6z+y7Bl1LEoBK6dqlWQmo7pnxquqXwJWm+KJN4xKwF6hP1C1LYPBXh54bdA/pfdgQEKREwKpbrrWW7oHeY3kR23UJw23e33GU7o++DW8cZOk8uuVVqgQZEYgX2QVqfOZcrZgRisYv7nN86V5p4SnFKW8kEFrQNVpIfeQQFbFgoEXg0UGF2Ao6p5x9cpMydI/N88KT1Q0JsxKWYN1qRuBAe/z+hs/+GWi41yUkjMX22pZOEfXVpyO/lIkIKhh381nUJ2+67dwqqE/quJ6bCywI1IYtVl8VEKZct3RRnsY9vJ1a9IRyFenlOKElYWqaBBs1rQjD2iS3a4s1YVZ97nxDfYfCgddBlZaEKN4Obqum93Y8knfeQ/l1X/2fTSnmHlitk6doU7n4Wiok8PYr25MyAgJnAjvJOnO6f1MXA/jUp9Uy9e29PPI/ZRs6POAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1420\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1421\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1416\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1417\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1418\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1428\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1422\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1423\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1424\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DB1cOAAAAwC9KKlsD2StR2UpJmdkyUiqkECLKKqNEyiwzhGhZobISf87dexcIBAJBDnGowYY4zFCHG2a4EY5wpKMc7RjHOs7xRhpltDFOcKKTjHWyU5zqNKc7w5nOcrZznGuc84x3vgtMMNEkF7rIxS5xqctc7gqTTXGlqaa5ynRXm2Gma1zrOte7wY1mucnNbnGr29zuDnea7S53u8e95rjPXPPcb74FFnrAgx6yyMMWW+IRj3rMUo97wpOWecrTlnvGs1ZY6TnPe8GLXrLKai97xates8Zar1vnDW9a7y0bbPS2d7zrPe/7wCabfegjH/vEpz6zxee+8KWtvvK1b2zzre9st8NOu+z2vR/86Cc/2+MXv/rNXvvs97s//OkvfzvgHwf96z//A0NX/L7wAgAA\"},\"shape\":[188],\"dtype\":\"int32\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3IezwTCBwAcK3YYs0sY4xZzDw3Nmnltd+8OuUqlRBND3pgHaVk5fW5CKHoDuEoeZTKUR+luuxXaSFJUq2SHkpJ5VEpRNef3+/Z9BNhIVIjCFByEvac0YPnrMa8jS5UEO7xZ1XWzYIVvtL6NdZfxJ0tUcfbv15VxLRfZCzfO6FY/5JWU7dQC7lHeXK3nzRM/fruQCdbD0WC2I0OKj0MbZswoenoY/+V7Kx2a31kpUqLlG/18Y10863CmUx8Pz8oK0BgjFe0VvQIN7PQTqv5ene9MSokjkuf/WuE7TxeFCeHiZpqLvmfuIa43XuZ6rI5A0cdKoaCPtAxxyOl5cqJuVjZB80v66no3PjBvMJQE6UtvJt+pT8UaomijgcLYhUlBXwn3/FxMdmmqGFDAhGie3JvWIRqg9J1vqUjgwalcXXhGitosLRKJWMe1QGXCbXpLgcdaGtdzF9vTYUaegt5js0cSLcO/XYybjbIprnlzu4kaMprlu2fIsL0Ben93kEShOej5MZPEvidU/VGPyCBJEJSWH6ODMmJa+fKHHVALfgm2S+VDkXee9Mu2+rBK5+GXFGsLryj6N77s1wHngT8t28NmQy1gaeoQuJMqOP/cTc4bUSs5jmHQmi6oNgymf7o4OhnRcjeZ/6HlxAwod6HGGuuieFlP7x9gnVwv/hkRVEkHTvfv23MZzOwqr56wzOSIfasTf192y42TokqLqsf4qCgWun/7LYlUu6sLB9YZotN0vR1M5h2WNU+M0iaYo/SrOiQYqIAEymbPE8zBHiwNNOFdu7XX1KKbWLssPDl7DPRmTycGzBDxCmywUOuFFZQhxVWFR9lvCZZYmStqjx0MxeHTs2KyBnkYFaBcp9PpRmaUTonEu6Z4oAq+SpDwxQPlMeVKT+yUUXMP7jhDQu9u82oJqOGuNDZJ3p8nx7ydpvGJ9+mIl2nq3b6NQHZ760S3W73KibozWMtSV/EgsnFvI5KDdBt7LO+raACtdoyg2agBzupDynVBUwISWp/sWHQBCrzs/MstswDVkaO80SeKQgzsu+dLTWDnCPq8VrmHBjl2pyZfZ4D13nfo3S9uOCo3N09EGYJ33yz+ht6rSD+tMQi9J018Cv79UpzbSAwrHaVfLktKEvkpl7zeNAV10x0aeDDX7FpMTdJ9kCt3ajaSRTA+fjijuhZQri+KxAr3wiB8KI2akjmAFuvBl6zHHeAY3n+rd1l86GfvDMpZZEjeL32MkyecITeoMFJapIIzpVo5kg7FkJwhF8FO20RtIaqz2td7AT8kQ+XRsecQPXYbxVkOIOs2HB7vNwFYi6Gfxrpc4UtM5IybvDEQI0b6jzkBZBcHk2I8pBA9vrWnqUz3KF3O63aM9cdhA9cMxkn3IF5i6Tl4uYOD1O6JCNyCaiCjDgL/gHoX9Y1s81aDN/Hti5fUuMCcq8B7hxtJ/j0Wde9TFsEwti+5QOjDtAQOujQYyGAdCYl9u4dW2Azp36uXWIJRceKnviGmcHhFfwCYZIxkIcZhxfOp4NcrigzI2sD37/GwciVCIHGi+yduQTASHqw4+pJsVq+e4by4ZC4vUTb4HrUfXFzap09c9NzRTCV5+H0eEzRZP50KMZDHcNFL2r4zdoYsiD3xJgRHROe03nhXQbYJg+UVeobI0vrcAGHwMY237PJO56zkDS1bgHZyAidqKIDdx2ZOFlf7RsjZGKrSbG4oo+Jx00rCIv9WPjF7TddQiAbdxf2rxXLTPHmNe8jL15x8OIwFwkyCxwv0/JhPrVCvqRbbWWTDaoiLzWm/bTF9R/WqMev5uHmvW967/zNw9SPUwm3pnlYWqQJEdv4KCRPGlDO8zHnlNW8+w/s0OTOXb2D2fbY/sjz7FsfAQ7T5iZOVwtQzVeDt/upALN3fCtOVRfiSGQAw1NfiCne/m8/GgrRImO0cd8v02j6yu89AtxV1We2OkyAzTSV/XCnPd7P3Hl+XaYdWn23SiEX2uL/R9jKtuAFAAA=\"},\"shape\":[188],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1429\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1430\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1425\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1426\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1427\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"red\",\"line_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1437\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1431\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1432\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1433\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3DaTaCAQAAwO8KQojwU086BSmlRciSNVsiu2TrItQtRF3OzHszFARByGFHHDXsmONOGHHSKaNOO+Osc8acN+6CCRddMumyKdOumDHrqjnzFiy6Zsl1N9y07Jbb7rhrxT33PfDQI4+teuKpZ557Yc1L6155bcMbb73z3gcfffLZpi+2fPXNdz/8tO2X33bs+mPPX//sO/AfSxxzGnABAAA=\"},\"shape\":[92],\"dtype\":\"int32\",\"order\":\"little\"}],[\"bottom\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/wHgAh/9eBGAMcOL5j/8lux4dx/wPzA/gfCNG/I/KNwSX11z9j/czG3vnQkAQOSTUEUHywFAHIMXOfFEAkBK/wIi0I4HQDs8VIp9JA1AGKirhvaWF0DgkF/vGoocQBnP/A+DDRpAer4FMXcBFUCQxd43GIcPQHR8WjMKRQNAQOwcvp7oyz8QiESzTMvdP8Bm32Fu5KM/fr9Fy43p/j8AS8453uAGQAByq+WPPxFAMHO9Ni/t5D+w/Bv2Qab5P3g76JSTLw9AYHzNO6lrDkBMqIhQxwQPQDyYMY+xvAxAmB5KV1BXDECs0w5cRygKQLxHQI0TrQdAMCbh005kBEAYLdE+cHn6P0in5qmnbPk/HGaT4CGFAUCw6cmaXbEHQIyckdsTmg9AOGRqf5bUEUAtFJvc48UWQIq25YYEZB1AoqcZvi0XHkCCkE6WmDIcQGjgy2PTyxhA7On+UJCzFUDwuxN5HWUVQI2ltRZS+hVApLvZR+tOEUBsb3UiahcHQIgnD5AqvQJAOAHwXzm7AECQSwHvtMvwP3BssmTGv/E/+GzQDKwgCUCWw/Q7q/4QQCRsWCHBnAdAHOhVC5SaAECQNp/03Sf1P0Dl95iHu/c/0A2H2Vk5+j+4sJ1Ubj8JQGAVh7TtxAVAgC+H28zVD0BodBnHnp8PQPCBnzeeJgxA8EfNijUJAUDArDuVKmcBQACnmv+A1QRA0Eivw5Y1A0DY61pa0x8IQIhZVxoOSRhAOC30Idn0FEAotdnIQvgGQLitfpYPNQhAkCzyHDPlBUBAFZ0ss0kCQJgyGFkjJw5APMCxBIiXFkBkn5SxGZ0UQIDL/oXB1RVAAG4lMIa7H0CYwRdL+7sXQBDKIUkZ/xFAgFNmK+PT4T8olyznak3yPxB+elIyGwZA0Jnd5JXH7D8A9vF61PGKPwDO6hVzias/QIq7bflB7T9Q59qMKCn+PyB2cmF+bAJAptXkcRW8EEBSlUySiZIXQEC7KcfgAgAA\"},\"shape\":[92],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1438\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1439\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1434\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"value\",\"value\":0},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1435\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"value\",\"value\":0},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1436\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"bottom\":{\"type\":\"field\",\"field\":\"bottom\"},\"top\":{\"type\":\"value\",\"value\":0},\"line_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"lightgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1446\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1440\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1441\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1442\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/w3D5zaCAQAA0E+RJOMVlHFOf5JNw3qxyA5JVvqDEMqM93PvOTcIgqDHkGF77TNiv1EHjDlo3CGHHXHUMRMmHXfCSadMmXbajDPOOue8Cy665LIrZs2Zt+Cqa6674aZFt9y25I677rnvgYceWfbYE0+teGbVc2teeOmV195Y99aGd977YNNHn3y25Yuvvtm247sffvrltz92/fXPf01pGICAAQAA\"},\"shape\":[96],\"dtype\":\"int32\",\"order\":\"little\"}],[\"top\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H4sIAAEAAAAC/wEAA//8WkXXw/ZYCMBXCfudj8cWwN+dsqlXwBnAGYs1DkCQF8AUpEyL8zYVwN0YdXuzCRbA5P+gTvKbGMBQ9m07EvYbwNqhkJSYixXA9uLabZAMCcBIdmdRW+zmvyCUTMNeb8y/gIbxkmy6ub8QJxm6QZ/nvzbOPmiR3gjALLCWJ/ZtAcAUbW3/tE3zv1gq+vpe3ea/wAPr9RtS2b8oB5P7LJfwv1TvO36aTfm/EFlHqyCb/b+0wYJT1Vbjv+DrmhjNLcG/IAryczEptb+Iy19ML4j7v9DXCQWejQbA2hevlcTiDMBX/iXYSAoSwKyC41EIiBTA8AJQ8DvyEsAmJ6i2q4YSwFL7MdSUohDAg9iwxY5rD8CbGl8NPSIRwHyArnZFQRDAYFr9oeCnBcBobfyLaoT+v0gQjOXUhxvAg3R7tHFmIMDPvIlsXvMgwOQuYWRiGBzAhI2s2b1gFsDQqPNHtXsOwBD3l22gxwDAgCCC8ucP0b+whUPNHzcJwLCoyCZZaRjAwP/EtmO3G8BMJjMjEn0gwHC/SqP9AyTA9Iv9Q+nZJMBcjKImb/snwOT9i5Gv5SjA6qPA32hYJsCIjyLPowcmwKABRNDRDSLAGuqJlTiYI8BI4Q08zpIiwAbBKg70lSDAPcvkAJu4FsAulVSwHTwPwFjfxA2EWwTA4J25CoLwAcCAQegspNEGwJrHunxlIAbASBHgpO5nCcDS3QHu5gAOwCE7iZyprRPATiMKdnkBFcCkaoQ4fesUwIOkEia61RLAbNoUAgIqCsCI2zwOHmUHwLi5bV5eJua/vhZIGBZtA8Aw2mIv6fUCwBTM8jTqqRDAdkoBwwmtE8CSdwFnEVEUwA56JUfEcBPASBOKfGszDsCgqlJ+SxMEwAAiYCeTPOW/oMGjYzZV4L+whxzGZz7qvyBGK4OwqOq/4GQcfPZo4r/I1elyUCwCwAgLX8cwVATAoFWhzpKLB8AAyY4ztIX3vwCInHnXu+m/YEaTeLcH5b/AY/lffL7RvwB+1O53Tq2/1CqLdQADAAA=\"},\"shape\":[96],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1447\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1448\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1443\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1444\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"VBar\",\"id\":\"p1445\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"width\":{\"type\":\"value\",\"value\":0.6},\"top\":{\"type\":\"field\",\"field\":\"top\"},\"line_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"darkgray\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1389\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1402\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1403\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1404\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1405\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"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\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1411\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1410\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1412\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1397\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1398\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1399\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1400\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1392\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1393\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1394\"},\"axis_label_standoff\":10,\"axis_label_text_color\":\"#5B5B5B\",\"axis_label_text_font\":\"Helvetica\",\"axis_label_text_font_size\":\"1.25em\",\"axis_label_text_font_style\":\"normal\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1395\"},\"major_label_text_color\":\"#5B5B5B\",\"major_label_text_font\":\"Helvetica\",\"major_label_text_font_size\":\"1.025em\",\"axis_line_color\":\"#5B5B5B\",\"axis_line_alpha\":0,\"major_tick_line_color\":\"#5B5B5B\",\"major_tick_line_alpha\":0,\"minor_tick_line_color\":\"#5B5B5B\",\"minor_tick_line_alpha\":0}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1396\",\"attributes\":{\"axis\":{\"id\":\"p1392\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1401\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1397\"}}}]}}]}}]}};\n const render_items = [{\"docid\":\"3abf45ff-dc05-4496-a2a4-029a342fe517\",\"roots\":{\"p1449\":\"ad9660e3-96ed-42d7-a285-6d205d325b35\"},\"root_ids\":[\"p1449\"]}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { - "id": "p8951" + "id": "p1449" } }, "output_type": "display_data", @@ -1169,7 +1181,7 @@ } } ], - "execution_count": 157 + "execution_count": 9 } ], "metadata": { diff --git a/pyproject.toml b/pyproject.toml index 0a392ab..812895d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,6 +5,7 @@ description = "Stock analysis" requires-python = ">=3.14" dependencies = [ "backtesting~=0.6.5", + "duckdb>=1.4.4", "jupyter~=1.1.1", "jupyter-bokeh>=4.0.5", "matplotlib~=3.10.8", diff --git a/uv.lock b/uv.lock index ee25092..bdaa119 100644 --- a/uv.lock +++ b/uv.lock @@ -352,6 +352,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, ] +[[package]] +name = "duckdb" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/9d/ab66a06e416d71b7bdcb9904cdf8d4db3379ef632bb8e9495646702d9718/duckdb-1.4.4.tar.gz", hash = "sha256:8bba52fd2acb67668a4615ee17ee51814124223de836d9e2fdcbc4c9021b3d3c", size = 18419763, upload-time = "2026-01-26T11:50:37.68Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/a6/f19e2864e651b0bd8e4db2b0c455e7e0d71e0d4cd2cd9cc052f518e43eb3/duckdb-1.4.4-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:25874f8b1355e96178079e37312c3ba6d61a2354f51319dae860cf21335c3a20", size = 28909554, upload-time = "2026-01-26T11:50:00.107Z" }, + { url = "https://files.pythonhosted.org/packages/0e/93/8a24e932c67414fd2c45bed83218e62b73348996bf859eda020c224774b2/duckdb-1.4.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:452c5b5d6c349dc5d1154eb2062ee547296fcbd0c20e9df1ed00b5e1809089da", size = 15353804, upload-time = "2026-01-26T11:50:03.382Z" }, + { url = "https://files.pythonhosted.org/packages/62/13/e5378ff5bb1d4397655d840b34b642b1b23cdd82ae19599e62dc4b9461c9/duckdb-1.4.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8e5c2d8a0452df55e092959c0bfc8ab8897ac3ea0f754cb3b0ab3e165cd79aff", size = 13676157, upload-time = "2026-01-26T11:50:06.232Z" }, + { url = "https://files.pythonhosted.org/packages/2d/94/24364da564b27aeebe44481f15bd0197a0b535ec93f188a6b1b98c22f082/duckdb-1.4.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1af6e76fe8bd24875dc56dd8e38300d64dc708cd2e772f67b9fbc635cc3066a3", size = 18426882, upload-time = "2026-01-26T11:50:08.97Z" }, + { url = "https://files.pythonhosted.org/packages/26/0a/6ae31b2914b4dc34243279b2301554bcbc5f1a09ccc82600486c49ab71d1/duckdb-1.4.4-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0440f59e0cd9936a9ebfcf7a13312eda480c79214ffed3878d75947fc3b7d6d", size = 20435641, upload-time = "2026-01-26T11:50:12.188Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b1/fd5c37c53d45efe979f67e9bd49aaceef640147bb18f0699a19edd1874d6/duckdb-1.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:59c8d76016dde854beab844935b1ec31de358d4053e792988108e995b18c08e7", size = 12762360, upload-time = "2026-01-26T11:50:14.76Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2d/13e6024e613679d8a489dd922f199ef4b1d08a456a58eadd96dc2f05171f/duckdb-1.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:53cd6423136ab44383ec9955aefe7599b3fb3dd1fe006161e6396d8167e0e0d4", size = 13458633, upload-time = "2026-01-26T11:50:17.657Z" }, +] + [[package]] name = "executing" version = "2.2.1" @@ -900,6 +915,7 @@ version = "0.1.0" source = { virtual = "." } dependencies = [ { name = "backtesting" }, + { name = "duckdb" }, { name = "jupyter" }, { name = "jupyter-bokeh" }, { name = "matplotlib" }, @@ -917,6 +933,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "backtesting", specifier = "~=0.6.5" }, + { name = "duckdb", specifier = ">=1.4.4" }, { name = "jupyter", specifier = "~=1.1.1" }, { name = "jupyter-bokeh", specifier = ">=4.0.5" }, { name = "matplotlib", specifier = "~=3.10.8" },