{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Microwave instability simulation\n",
"\n",
"A. Petrenko (Novosibirsk, 2019)\n",
"\n",
"This notebook explains the basics of longitudinal particle motion in a storage ring with impedance."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"(function(root) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = true;\n",
" var py_version = '3.4.1'.replace('rc', '-rc.').replace('.dev', '-dev.');\n",
" var reloading = false;\n",
" var Bokeh = root.Bokeh;\n",
"\n",
" if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\n",
" root._bokeh_timeout = Date.now() + 5000;\n",
" root._bokeh_failed_load = false;\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, js_modules, js_exports, callback) {\n",
" if (css_urls == null) css_urls = [];\n",
" if (js_urls == null) js_urls = [];\n",
" if (js_modules == null) js_modules = [];\n",
" if (js_exports == null) js_exports = {};\n",
"\n",
" root._bokeh_onload_callbacks.push(callback);\n",
"\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.length === 0 && js_modules.length === 0 && Object.keys(js_exports).length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" if (!reloading) {\n",
" console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" }\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",
" window._bokeh_on_load = on_load\n",
"\n",
" function on_error() {\n",
" console.error(\"failed to load \" + url);\n",
" }\n",
"\n",
" var skip = [];\n",
" if (window.requirejs) {\n",
" window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n",
" root._bokeh_is_loading = css_urls.length + 0;\n",
" } else {\n",
" root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n",
" }\n",
"\n",
" var existing_stylesheets = []\n",
" var links = document.getElementsByTagName('link')\n",
" for (var i = 0; i < links.length; i++) {\n",
" var link = links[i]\n",
" if (link.href != null) {\n",
"\texisting_stylesheets.push(link.href)\n",
" }\n",
" }\n",
" for (var i = 0; i < css_urls.length; i++) {\n",
" var url = css_urls[i];\n",
" if (existing_stylesheets.indexOf(url) !== -1) {\n",
"\ton_load()\n",
"\tcontinue;\n",
" }\n",
" const element = document.createElement(\"link\");\n",
" element.onload = on_load;\n",
" element.onerror = on_error;\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",
" } var existing_scripts = []\n",
" var scripts = document.getElementsByTagName('script')\n",
" for (var i = 0; i < scripts.length; i++) {\n",
" var script = scripts[i]\n",
" if (script.src != null) {\n",
"\texisting_scripts.push(script.src)\n",
" }\n",
" }\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n",
"\tif (!window.requirejs) {\n",
"\t on_load();\n",
"\t}\n",
"\tcontinue;\n",
" }\n",
" var element = document.createElement('script');\n",
" element.onload = on_load;\n",
" element.onerror = on_error;\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",
" for (var i = 0; i < js_modules.length; i++) {\n",
" var url = js_modules[i];\n",
" if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\n",
"\tif (!window.requirejs) {\n",
"\t on_load();\n",
"\t}\n",
"\tcontinue;\n",
" }\n",
" var element = document.createElement('script');\n",
" element.onload = on_load;\n",
" element.onerror = on_error;\n",
" element.async = false;\n",
" element.src = url;\n",
" element.type = \"module\";\n",
" console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.head.appendChild(element);\n",
" }\n",
" for (const name in js_exports) {\n",
" var url = js_exports[name];\n",
" if (skip.indexOf(url) >= 0 || root[name] != null) {\n",
"\tif (!window.requirejs) {\n",
"\t on_load();\n",
"\t}\n",
"\tcontinue;\n",
" }\n",
" var element = document.createElement('script');\n",
" element.onerror = on_error;\n",
" element.async = false;\n",
" element.type = \"module\";\n",
" console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" element.textContent = `\n",
" import ${name} from \"${url}\"\n",
" window.${name} = ${name}\n",
" window._bokeh_on_load()\n",
" `\n",
" document.head.appendChild(element);\n",
" }\n",
" if (!js_urls.length && !js_modules.length) {\n",
" on_load()\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",
" var js_urls = [];\n",
" var js_modules = [];\n",
" var js_exports = {};\n",
" var css_urls = [];\n",
" var inline_js = [ function(Bokeh) {\n",
" /* BEGIN bokeh.min.js */\n",
" 'use strict';\n",
" /*!\n",
" * Copyright (c) Anaconda, Inc., and Bokeh Contributors\n",
" * All rights reserved.\n",
" * \n",
" * Redistribution and use in source and binary forms, with or without modification,\n",
" * are permitted provided that the following conditions are met:\n",
" * \n",
" * Redistributions of source code must retain the above copyright notice,\n",
" * this list of conditions and the following disclaimer.\n",
" * \n",
" * Redistributions in binary form must reproduce the above copyright notice,\n",
" * this list of conditions and the following disclaimer in the documentation\n",
" * and/or other materials provided with the distribution.\n",
" * \n",
" * Neither the name of Anaconda nor the names of any contributors\n",
" * may be used to endorse or promote products derived from this software\n",
" * without specific prior written permission.\n",
" * \n",
" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n",
" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n",
" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n",
" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n",
" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n",
" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n",
" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n",
" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n",
" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n",
" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n",
" * THE POSSIBILITY OF SUCH DAMAGE.\n",
" */\n",
" (function(root, factory) {\n",
" const bokeh = factory();\n",
" bokeh.__bokeh__ = true;\n",
" if (typeof root.Bokeh === \"undefined\" || typeof root.Bokeh.__bokeh__ === \"undefined\") {\n",
" root.Bokeh = bokeh;\n",
" }\n",
" const Bokeh = root.Bokeh;\n",
" Bokeh[bokeh.version] = bokeh;\n",
" })(this, function() {\n",
" let define;\n",
" const parent_require = typeof require === \"function\" && require\n",
" return (function(modules, entry, aliases, externals) {\n",
" if (aliases === undefined) aliases = {};\n",
" if (externals === undefined) externals = {};\n",
"\n",
" const cache = {};\n",
"\n",
" const normalize = function(name) {\n",
" if (typeof name === \"number\")\n",
" return name;\n",
"\n",
" if (name === \"bokehjs\")\n",
" return entry;\n",
"\n",
" if (!externals[name]) {\n",
" const prefix = \"@bokehjs/\"\n",
" if (name.slice(0, prefix.length) === prefix)\n",
" name = name.slice(prefix.length)\n",
" }\n",
"\n",
" const alias = aliases[name]\n",
" if (alias != null)\n",
" return alias;\n",
"\n",
" const trailing = name.length > 0 && name[name.length-1] === \"/\";\n",
" const index = aliases[name + (trailing ? \"\" : \"/\") + \"index\"];\n",
" if (index != null)\n",
" return index;\n",
"\n",
" return name;\n",
" }\n",
"\n",
" const require = function(name) {\n",
" let mod = cache[name];\n",
" if (!mod) {\n",
" const id = normalize(name);\n",
"\n",
" mod = cache[id];\n",
" if (!mod) {\n",
" if (!modules[id]) {\n",
" if (externals[id] === false || (externals[id] == true && parent_require)) {\n",
" try {\n",
" mod = {exports: externals[id] ? parent_require(id) : {}};\n",
" cache[id] = cache[name] = mod;\n",
" return mod.exports;\n",
" } catch (e) {}\n",
" }\n",
"\n",
" const err = new Error(\"Cannot find module '\" + name + \"'\");\n",
" err.code = 'MODULE_NOT_FOUND';\n",
" throw err;\n",
" }\n",
"\n",
" mod = {exports: {}};\n",
" cache[id] = cache[name] = mod;\n",
"\n",
" function __esModule() {\n",
" Object.defineProperty(mod.exports, \"__esModule\", {value: true});\n",
" }\n",
"\n",
" function __esExport(name, value) {\n",
" Object.defineProperty(mod.exports, name, {\n",
" enumerable: true, get: function () { return value; }\n",
" });\n",
" }\n",
"\n",
" modules[id].call(mod.exports, require, mod, mod.exports, __esModule, __esExport);\n",
" } else {\n",
" cache[name] = mod;\n",
" }\n",
" }\n",
"\n",
" return mod.exports;\n",
" }\n",
" require.resolve = function(name) {\n",
" return \"\"\n",
" }\n",
"\n",
" const main = require(entry);\n",
" main.require = require;\n",
"\n",
" if (typeof Proxy !== \"undefined\") {\n",
" // allow Bokeh.loader[\"@bokehjs/module/name\"] syntax\n",
" main.loader = new Proxy({}, {\n",
" get: function(_obj, module) {\n",
" return require(module);\n",
" }\n",
" });\n",
" }\n",
"\n",
" main.register_plugin = function(plugin_modules, plugin_entry, plugin_aliases, plugin_externals) {\n",
" if (plugin_aliases === undefined) plugin_aliases = {};\n",
" if (plugin_externals === undefined) plugin_externals = {};\n",
"\n",
" for (let name in plugin_modules) {\n",
" modules[name] = plugin_modules[name];\n",
" }\n",
"\n",
" for (let name in plugin_aliases) {\n",
" aliases[name] = plugin_aliases[name];\n",
" }\n",
"\n",
" for (let name in plugin_externals) {\n",
" externals[name] = plugin_externals[name];\n",
" }\n",
"\n",
" const plugin = require(plugin_entry);\n",
"\n",
" for (let name in plugin) {\n",
" main[name] = plugin[name];\n",
" }\n",
"\n",
" return plugin;\n",
" }\n",
"\n",
" return main;\n",
" })\n",
" ([\n",
" function _(t,_,n,o,r){o();t(1).__exportStar(t(2),n),t(76)},\n",
" function _(e,t,r,n,o){n();var a=function(e,t){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},a(e,t)};function i(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}r.__extends=i;function c(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function u(e,t){return function(r,n){t(r,n,e)}}function f(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function l(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function c(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}s((n=n.apply(e,t||[])).next())}))}function p(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(s){return function(c){if(r)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function d(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function h(){for(var e=[],t=0;t1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof w?Promise.resolve(r.value.v).then(s,u):f(a[0][2],r)}catch(e){f(a[0][3],e)}var r}function s(e){c(\"next\",e)}function u(e){c(\"throw\",e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function g(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:w(e[n](t)),done:!1}:o?o(t):t}:o}}function O(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=_(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}}function j(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}r.__assign=function(){return r.__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;y--){var _={};for(var d in n)_[d]=\"access\"===d?{}:n[d];for(var d in n.access)_.access[d]=n.access[d];_.addInitializer=function(e){if(p)throw new TypeError(\"Cannot add initializers after decoration has completed\");a.push(i(e||null))};var h=(0,r[y])(\"accessor\"===s?{get:l.get,set:l.set}:l[u],_);if(\"accessor\"===s){if(void 0===h)continue;if(null===h||\"object\"!=typeof h)throw new TypeError(\"Object expected\");(c=i(h.get))&&(l.get=c),(c=i(h.set))&&(l.set=c),(c=i(h.init))&&o.unshift(c)}else(c=i(h))&&(\"field\"===s?o.unshift(c):l[u]=c)}f&&Object.defineProperty(f,n.name,l),p=!0},r.__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o0;)this.remove_root(this._roots[0])}finally{this._pop_all_models_freeze()}}interactive_start(e,t=null){null==this._interactive_plot&&(this._interactive_plot=e,this._interactive_plot.trigger_event(new y.LODStart)),this._interactive_finalize=t,this._interactive_timestamp=Date.now()}interactive_stop(){null!=this._interactive_plot&&(this._interactive_plot.trigger_event(new y.LODEnd),null!=this._interactive_finalize&&this._interactive_finalize()),this._interactive_plot=null,this._interactive_timestamp=null,this._interactive_finalize=null}interactive_duration(){return null==this._interactive_timestamp?-1:Date.now()-this._interactive_timestamp}destructively_move(e){if(e===this)throw new Error(\"Attempted to overwrite a document with itself\");e.clear();const t=(0,g.copy)(this._roots);this.clear();for(const e of t)if(null!=e.document)throw new Error(`Somehow we didn't detach ${e}`);if(0!=this._all_models.size)throw new Error(`this._all_models still had stuff in it: ${this._all_models}`);for(const s of t)e.add_root(s);e.set_title(this._title)}_push_all_models_freeze(){this._all_models_freeze_count+=1}_pop_all_models_freeze(){this._all_models_freeze_count-=1,0===this._all_models_freeze_count&&this._recompute_all_models()}_invalidate_all_models(){r.logger.debug(\"invalidating document models\"),0===this._all_models_freeze_count&&this._recompute_all_models()}_recompute_all_models(){let e=new Set;for(const t of this._roots)e=p.union(e,t.references());const t=new Set(this._all_models.values()),s=p.difference(t,e),o=p.difference(e,t),n=new Map;for(const t of e)n.set(t.id,t);for(const e of s)e.detach_document();for(const e of o)e.attach_document(this),this._new_models.add(e);this._all_models=n}roots(){return this._roots}_add_roots(...e){if(0==(e=e.filter((e=>!this._roots.includes(e)))).length)return!1;this._push_all_models_freeze();try{this._roots.push(...e)}finally{this._pop_all_models_freeze()}return!0}_remove_root(e){const t=this._roots.indexOf(e);if(t<0)return!1;this._push_all_models_freeze();try{this._roots.splice(t,1)}finally{this._pop_all_models_freeze()}return!0}_set_title(e){const t=e!=this._title;return t&&(this._title=e),t}add_root(e,{sync:t}={}){if(this._add_roots(e)){const s=new z.RootAddedEvent(this,e);s.sync=t??!0,this._trigger_on_change(s)}}remove_root(e,{sync:t}={}){if(this._remove_root(e)){const s=new z.RootRemovedEvent(this,e);s.sync=t??!0,this._trigger_on_change(s)}}set_title(e,{sync:t}={}){if(this._set_title(e)){const s=new z.TitleChangedEvent(this,e);s.sync=t??!0,this._trigger_on_change(s)}}title(){return this._title}get_model_by_id(e){return this._all_models.get(e)??null}get_model_by_name(e){const t=[];for(const s of this._all_models.values())s instanceof b.Model&&s.name==e&&t.push(s);switch(t.length){case 0:return null;case 1:return t[0];default:throw new Error(`Multiple models are named '${e}'`)}}on_message(e,t){const s=this._message_callbacks.get(e);null==s?this._message_callbacks.set(e,new Set([t])):s.add(t)}remove_on_message(e,t){this._message_callbacks.get(e)?.delete(t)}_trigger_on_message(e,t){const s=this._message_callbacks.get(e);if(null!=s)for(const e of s)e(t)}on_change(e,t=!1){this._callbacks.has(e)||this._callbacks.set(e,t)}remove_on_change(e){this._callbacks.delete(e)}_trigger_on_change(e){for(const[t,s]of this._callbacks)if(!s&&e instanceof z.DocumentEventBatch)for(const s of e.events)t(s);else t(e)}_trigger_on_event(e){const t=this._document_callbacks.get(e.event_name);if(null!=t)for(const s of t)(0,w.execute)(s,this,e)}on_event(e,...t){const s=(0,u.isString)(e)?e:e.prototype.event_name,o=this._document_callbacks.get(s)??[],n=t;this._document_callbacks.set(s,[...o,...n])}to_json_string(e=!0){return JSON.stringify(this.to_json(e))}to_json(e=!0){const t=new c.Serializer({include_defaults:e}).encode(this._roots);return{version:l.version,title:this._title,roots:t}}static from_json_string(e,t){const s=JSON.parse(e);return D.from_json(s,t)}static _handle_version(e){null==e.version&&r.logger.warn(\"'version' field is missing\");const t=e.version??\"0.0.0\",s=d.Version.from(t),o=d.Version.from(l.version),n=`new document using Bokeh ${t} and BokehJS ${l.version}`;(0,f.is_equal)(s,o)?r.logger.debug(n):r.logger.warn(`Bokeh/BokehJS version mismatch: ${n}`)}static from_json(e,t){r.logger.debug(\"Creating Document from JSON\"),D._handle_version(e);const s=new a.ModelResolver(_.default_resolver);if(null!=e.defs){new h.Deserializer(s).decode(e.defs)}const o=new D({resolver:s});o._push_all_models_freeze();const n=e=>t?.push(e);o.on_change(n,!0);const i=new h.Deserializer(s,o._all_models,(e=>e.attach_document(o))),l=i.decode(e.roots),c=null!=e.callbacks?i.decode(e.callbacks):{};o.remove_on_change(n);for(const[e,t]of(0,v.entries)(c))o.on_event(e,...t);for(const e of l)o.add_root(e);return null!=e.title&&o.set_title(e.title),o._pop_all_models_freeze(),o}replace_with_json(e){D.from_json(e).destructively_move(this)}create_json_patch(e){for(const t of e)if(t.document!=this)throw new Error(\"Cannot create a patch using events from a different document\");const t=new Map;for(const e of this._all_models.values())this._new_models.has(e)||t.set(e,e.ref());const s={events:new c.Serializer({references:t,binary:!0}).encode(e)};return this._new_models.clear(),s}apply_json_patch(e,t=new Map){this._push_all_models_freeze();const s=new h.Deserializer(this._resolver,this._all_models,(e=>e.attach_document(this))).decode(e.events,t);for(const e of s)switch(e.kind){case\"MessageSent\":{const{msg_type:t,msg_data:s}=e;this._trigger_on_message(t,s);break}case\"ModelChanged\":{const{model:t,attr:s,new:o}=e;t.setv({[s]:o},{sync:!1});break}case\"ColumnDataChanged\":{const{model:t,attr:s,data:o,cols:n}=e;if(null!=n){const e=(0,v.dict)(o),n=(0,v.dict)(t.property(s).get_value());for(const[t,s]of n)e.has(t)||e.set(t,s)}t.setv({data:o},{sync:!1,check_eq:!1});break}case\"ColumnsStreamed\":{const{model:t,attr:s,data:o,rollover:n}=e,i=t.property(s);t.stream_to(i,o,n,{sync:!1});break}case\"ColumnsPatched\":{const{model:t,attr:s,patches:o}=e,n=t.property(s);t.patch_to(n,o,{sync:!1});break}case\"RootAdded\":this.add_root(e.model,{sync:!1});break;case\"RootRemoved\":this.remove_root(e.model,{sync:!1});break;case\"TitleChanged\":this.set_title(e.title,{sync:!1});break;default:throw new Error(`unknown patch event type '${e.kind}'`)}this._pop_all_models_freeze()}}s.Document=D,D.__name__=\"Document\"},\n",
" function _(e,o,r,s,t){s();const l=e(8),n=e(9),a=e(14),f=e(46);r.default_resolver=new f.ModelResolver(null),r.register_models=function(e,o=!1){for(const t of(0,l.isArray)(e)?e:(0,n.values)(e))s=t,(0,l.isObject)(s)&&s.prototype instanceof a.HasProps&&r.default_resolver.register(t,o);var s}},\n",
" function _(n,t,r,i,e){i();\n",
" // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n",
" // Underscore may be freely distributed under the MIT license.\n",
" const{toString:o}=Object.prototype;function u(n){return null==n}function c(n){return null!=n}function s(n){return!0===n||!1===n||\"[object Boolean]\"===o.call(n)}function f(n){return\"[object Number]\"===o.call(n)}function l(n){return\"[object String]\"===o.call(n)}function a(n){return\"symbol\"==typeof n}function b(n){const t=typeof n;return\"function\"===t||\"object\"===t&&!!n}function y(n){return b(n)&&(u(n.constructor)||n.constructor===Object)}function j(n){return b(n)&&Symbol.iterator in n}r.is_undefined=function(n){return void 0===n},r.is_defined=function(n){return void 0!==n},r.is_nullish=u,r.isNull=function(n){return null==n},r.isNotNull=c,r.non_null=c,r.isBoolean=s,r.isNumber=f,r.isInteger=function(n){return f(n)&&Number.isInteger(n)},r.isString=l,r.isSymbol=a,r.isPrimitive=function(n){return null===n||s(n)||f(n)||l(n)||a(n)},r.isFunction=function(n){switch(o.call(n)){case\"[object Function]\":case\"[object AsyncFunction]\":case\"[object GeneratorFunction]\":case\"[object AsyncGeneratorFunction]\":return!0;default:return!1}},r.isArray=function(n){return Array.isArray(n)},r.isArrayOf=function(n,t){for(const r of n)if(!t(r))return!1;return!0},r.isArrayableOf=function(n,t){for(const r of n)if(!t(r))return!1;return!0},r.isTypedArray=function(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)},r.isObject=b,r.isBasicObject=function(n){return b(n)&&u(n.constructor)},r.isPlainObject=y,r.isDict=function(n){return n instanceof Map||y(n)},r.isIterable=j,r.isArrayable=function(n){return j(n)&&\"length\"in n}},\n",
" function _(e,t,n,s,i){var o;s();const r=e(8),c=e(10);function a(e){return e instanceof Map?[...e.keys()]:Object.keys(e)}function u(e){return e instanceof Map?[...e.values()]:Object.values(e)}function b(e){return e instanceof Map?[...e.entries()]:Object.entries(e)}function l(e){return e instanceof Map?e.size:Object.keys(e).length}n.assign=Object.assign,n.extend=n.assign,n.to_object=function(e){return(0,r.isPlainObject)(e)?e:Object.fromEntries(e)},n.keys=a,n.values=u,n.entries=b,n.typed_keys=Object.keys,n.typed_values=Object.values,n.typed_entries=Object.entries,n.clone=function(e){return e instanceof Map?new Map(e):{...e}},n.merge=function(e,t){const n=new Map,s=[...e.keys(),...t.keys()];for(const i of s){const s=e.get(i),o=t.get(i),r=void 0===s?[]:s,a=void 0===o?[]:o;n.set(i,(0,c.union)(r,a))}return n},n.size=l,n.is_empty=function(e){return 0==l(e)};const{hasOwnProperty:j}=Object.prototype;class h{constructor(e){this[o]=\"PlainObjectProxy\",this.obj=e}clear(){for(const e of this.keys())delete this.obj[e]}delete(e){const t=this.has(e);return t&&delete this.obj[e],t}has(e){return j.call(this.obj,e)}get(e){return this.has(e)?this.obj[e]:void 0}set(e,t){return this.obj[e]=t,this}get size(){return l(this.obj)}[(o=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}*keys(){yield*a(this.obj)}*values(){yield*u(this.obj)}*entries(){yield*b(this.obj)}forEach(e,t){for(const[n,s]of this.entries())e.call(t,s,n,this)}}n.PlainObjectProxy=h,h.__name__=\"PlainObjectProxy\",n.dict=function(e){return(0,r.isPlainObject)(e)?new h(e):e}},\n",
" function _(n,t,e,r,o){r();\n",
" // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n",
" // Underscore may be freely distributed under the MIT license.\n",
" const i=n(11),c=n(12),s=n(8),u=n(13);var f=n(13);o(\"map\",f.map),o(\"reduce\",f.reduce),o(\"min\",f.min),o(\"min_by\",f.min_by),o(\"max\",f.max),o(\"max_by\",f.max_by),o(\"sum\",f.sum),o(\"cumsum\",f.cumsum),o(\"every\",f.every),o(\"some\",f.some),o(\"find\",f.find),o(\"find_last\",f.find_last),o(\"find_index\",f.find_index),o(\"find_last_index\",f.find_last_index),o(\"sorted_index\",f.sorted_index),o(\"is_empty\",f.is_empty),o(\"includes\",f.includes),o(\"contains\",f.contains),o(\"sort_by\",f.sort_by);const l=Array.prototype.slice;function a(n){return l.call(n)}function h(n,t,e=1){(0,c.assert)(e>0,\"'step' must be a positive number\"),null==t&&(t=n,n=0);const{max:r,ceil:o,abs:i}=Math,s=n<=t?e:-e,u=r(o(i(t-n)/e),0),f=new Array(u);for(let t=0;t=0?t:n.length+t]},e.zip=function(...n){if(0==n.length)return[];const t=(0,u.min)(n.map((n=>n.length))),e=n.length,r=new Array(t);for(let o=0;on.length))),r=Array(e);for(let n=0;nn[t]))},e.argmax=function(n){return(0,u.max_by)(h(n.length),(t=>n[t]))},e.uniq=function(n){const t=new Set;for(const e of n)t.add(e);return[...t]},e.uniq_by=function(n,t){const e=[],r=[];for(const o of n){const n=t(o);(0,u.includes)(r,n)||(r.push(n),e.push(o))}return e},e._union=m,e.union=function(...n){return[...m(n)]},e.intersection=function(n,...t){const e=[];n:for(const r of n)if(!(0,u.includes)(e,r)){for(const n of t)if(!(0,u.includes)(n,r))continue n;e.push(r)}return e},e.difference=function(n,...t){const e=m(t);return(0,u.filter)(n,(n=>!e.has(n)))},e.symmetric_difference=function(n,t){const e=new Set(n),r=new Set(t),o=[];for(const n of e)r.has(n)||o.push(n);for(const n of r)e.has(n)||o.push(n);return o},e.remove_at=function(n,t){(0,c.assert)((0,s.isInteger)(t)&&t>=0);const e=a(n);return e.splice(t,1),e},e.remove=function(n,t){d(n,(n=>n==t))},e.remove_by=d,e.clear=function(n){n.splice(0,n.length)},e.split=function(n,t){const e=[],r=n.length;let o=0,i=0;for(;i=t)return n.slice(0,t);{const r=new Array(t-n.length);return void 0!==e&&r.fill(e),n.concat(r)}}},\n",
" function _(n,t,r,o,e){o();const a=n(8),c=n(12),{PI:u,abs:i,sign:f}=Math;function l(n){if(0==n)return 0;for(;n<=0;)n+=2*u;for(;n>2*u;)n-=2*u;return n}function s(n,t){return l(n-t)}function h(n,t,r=\"anticlock\"){return-(\"anticlock\"==r?1:-1)*n*g(t)}function g(n){switch(n){case\"deg\":return u/180;case\"rad\":return 1;case\"grad\":return u/200;case\"turn\":return 2*u}}function m(n,t){for(n=Math.abs(n),t=Math.abs(t);0!=t;)[n,t]=[t,n%t];return n}r.angle_norm=l,r.angle_dist=s,r.angle_between=function(n,t,r,o=!1){const e=s(t,r);if(0==e)return!1;if(e==2*u)return!0;const a=l(n),c=s(t,a)<=e&&s(a,r)<=e;return o?!c:c},r.randomIn=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},r.atan2=function(n,t){return Math.atan2(t[1]-n[1],t[0]-n[0])},r.radians=function(n){return n*(u/180)},r.degrees=function(n){return n/(u/180)},r.compute_angle=h,r.resolve_angle=h,r.invert_angle=function(n,t,r=\"anticlock\"){return-(\"anticlock\"==r?1:-1)*n/g(t)},r.to_radians_coeff=g,r.minmax=function(n,t){return n<=t?[n,t]:[t,n]},r.clamp=function(n,t,r){return nr?r:n},r.cycle=function(n,t,r){return n>r?t:n=0;e--)r+=o*n[e],o*=t;return r}},\n",
" function _(r,e,n,o,s){o();class a extends Error{}n.AssertionError=a,a.__name__=\"AssertionError\";class t extends Error{}function c(r,e){if(!(!0===r||!1!==r&&r()))throw new a(e??\"Assertion failed\")}n.UnreachableError=t,t.__name__=\"UnreachableError\",n.assert=c,n.assert_debug=function(r,e){\"undefined\"!=typeof DEBUG&&DEBUG&&c(r,e)},n.unreachable=function(r){throw new t(`unreachable code${null!=r?`: ${r}`:\"\"}`)}},\n",
" function _(n,t,e,r,o){r();const i=n(11),c=n(12),{floor:u}=Math;function f(n){const t=n.length;if(0==t)return!0;let e=n[0];for(let r=1;ro&&(t=o),null==e||e>o-t?e=o-t:e<0&&(e=0);const i=o-e+r.length,c=new n.constructor(i);let u=0;for(;u0?0:r-1;for(;o>=0&&of(n))),(0,c.assert)(0<=r&&o<=n.length);rf(n))),(0,c.assert)(0<=r&&o<=n.length);rn),e,r)}function x(n,t,e,r,o){const i=(o-e)/(r-t);let c=i*(n-t)+e;return isFinite(c)||(c=i*(n-r)+o,isFinite(c)||e!=o||(c=e)),c}function w(n,t){if(nt[t.length-1])return t.length;if(1==t.length)return 0;let e=0,r=t.length-1;for(;r-e!=1;){const o=e+Math.floor((r-e)/2);n>=t[o]?e=o:r=o}return e}e.is_empty=function(n){return 0==n.length},e.is_sorted=f,e.copy=function(n){return Array.isArray(n)?n.slice():new n.constructor(n)},e.splice=l,e.head=s,e.insert=function(n,t,e){return l(n,e,0,t)},e.append=function(n,t){return l(n,n.length,0,t)},e.prepend=function(n,t){return l(n,0,0,t)},e.index_of=function(n,t){return n.indexOf(t)},e.includes=a,e.contains=a,e.subselect=function(n,t){const e=t.length,r=new n.constructor(e);for(let o=0;o({index:e,key:t(n)})));return e.sort(((n,t)=>{const e=n.key,r=t.key;if(e!==r){if(e>r)return 1;if(en[e[r].index]))},e.min=function(n){let t=1/0;for(const e of n)!isNaN(e)&&et&&(t=e);return t},e.minmax=function(n){let t=1/0,e=-1/0;for(const r of n)isNaN(r)||(re&&(e=r));return[t,e]},e.minmax2=function(n,t){let e,r,o=1/0,i=-1/0,c=1/0,u=-1/0;const f=Math.min(n.length,t.length);for(let l=0;li&&(i=e),ru&&(u=r));return[o,i,c,u]},e.min_by=function(n,t){if(0==n.length)throw new Error(\"min_by() called with an empty array\");let e=n[0],r=t(e,0);for(let o=1,i=n.length;or&&(e=i,r=c)}return e},e.sum=function(n){let t=0;for(let e=0,r=n.length;et[r]=n+e),0),t},e.every=function(n,t){for(const e of n)if(!t(e))return!1;return!0},e.some=function(n,t){for(const e of n)if(t(e))return!0;return!1},e.find_index=d(1),e.find_last_index=d(-1),e.find=function(n,t){const r=(0,e.find_index)(n,t);return-1==r?void 0:n[r]},e.find_last=function(n,t){const r=(0,e.find_last_index)(n,t);return-1==r?void 0:n[r]},e.bisect_left_by=_,e.bisect_right_by=m,e.bisect_left=y,e.bisect_right=function(n,t,e=0,r){return m(n,t,(n=>n),e,r)},e.binary_search=function(n,t){const e=y(n,t);return e!=n.length&&n[e]==t?e:null},e.sorted_index=y,e.bin_counts=function(n,t){const r=t.length-1,o=Array(r).fill(0);for(let c=0;c(n-t)/r))}},\n",
" function _(t,e,s,n,i){var r;n();const o=t(1),c=t(15),a=t(17),h=o.__importStar(t(18)),_=o.__importStar(t(21)),u=t(12),l=t(40),f=t(9),p=t(8),d=t(26),g=t(32),y=t(41),m=t(26),v=t(42),w=t(31),b=o.__importStar(t(21)),S=t(28),$=t(43),x=new WeakMap;class P extends((0,c.Signalable)()){get is_syncable(){return!0}get type(){return this.constructor.__qualified__}static get __qualified__(){let t=x.get(this);if(null==t){const{__module__:e,__name__:s}=this;t=null!=e?`${e}.${s}`:s,x.set(this,t)}return t}static set __qualified__(t){x.set(this,t)}get[Symbol.toStringTag](){return this.constructor.__qualified__}static _fix_default(t,e){if(void 0===t||t===h.unset)return()=>h.unset;if((0,p.isFunction)(t))return t;if((0,p.isPrimitive)(t))return()=>t;{const e=new w.Cloner;return()=>e.clone(t)}}static define(t){for(const[e,s]of(0,f.entries)((0,p.isFunction)(t)?t(b):t)){if(e in this.prototype._props)throw new Error(`attempted to redefine property '${this.prototype.type}.${e}'`);if(e in this.prototype)throw new Error(`attempted to redefine attribute '${this.prototype.type}.${e}'`);Object.defineProperty(this.prototype,e,{get(){return this.properties[e].get_value()},set(t){return this.setv({[e]:t}),this},configurable:!1,enumerable:!0});const[t,n,i={}]=s,r={type:t,default_value:this._fix_default(n,e),options:i};this.prototype._props={...this.prototype._props,[e]:r}}}static internal(t){const e={};for(const[s,n]of(0,f.entries)((0,p.isFunction)(t)?t(b):t)){const[t,i,r={}]=n;e[s]=[t,i,{...r,internal:!0}]}this.define(e)}static mixins(t){function e(t,e){const s={};for(const[n,i]of(0,f.entries)(e))s[t+n]=i;return s}const s={},n=[];for(const i of(0,p.isArray)(t)?t:[t])if((0,p.isArray)(i)){const[t,r]=i;(0,f.extend)(s,e(t,r)),n.push([t,r])}else{const t=i;(0,f.extend)(s,t),n.push([\"\",t])}this.define(s),this.prototype._mixins=[...this.prototype._mixins,...n]}static override(t){for(const[e,s]of(0,f.entries)(t)){const t=this._fix_default(s,e);if(!(e in this.prototype._props))throw new Error(`attempted to override nonexistent '${this.prototype.type}.${e}'`);const n=this.prototype._props[e],i={...this.prototype._props};i[e]={...n,default_value:t},this.prototype._props=i}}static toString(){return this.__qualified__}toString(){return`${this.type}(${this.id})`}property(t){if(t in this.properties)return this.properties[t];throw new Error(`unknown property ${this.type}.${t}`)}get attributes(){const t={};for(const e of this)e.is_unset||(t[e.attr]=e.get_value());return t}[w.clone](t){const e=new Map;for(const s of this)s.dirty&&e.set(s.attr,t.clone(s.get_value()));return new this.constructor(e)}[m.equals](t,e){for(const s of this){const n=t.property(s.attr);if(!e.eq(s.get_value(),n.get_value()))return!1}return!0}[v.pretty](t){const e=t.token,s=[];for(const n of this)if(n.dirty){const i=n.get_value();s.push(`${n.attr}${e(\":\")} ${t.to_string(i)}`)}return`${this.constructor.__qualified__}${e(\"(\")}${e(\"{\")}${s.join(`${e(\",\")} `)}${e(\"}\")}${e(\")\")}`}[g.serialize](t){const e=this.ref();t.add_ref(this,e);const s={};for(const e of this)if(e.syncable&&(t.include_defaults||e.dirty)&&(!e.readonly||!e.is_unset)){const n=e.get_value();s[e.attr]=t.encode(n)}const{type:n,id:i}=this,r={type:\"object\",name:n,id:i};return(0,f.is_empty)(s)?r:{...r,attributes:s}}constructor(t={}){super(),this.document=null,this.destroyed=new c.Signal0(this,\"destroyed\"),this.change=new c.Signal0(this,\"change\"),this.transformchange=new c.Signal0(this,\"transformchange\"),this.exprchange=new c.Signal0(this,\"exprchange\"),this.streaming=new c.Signal0(this,\"streaming\"),this.patching=new c.Signal(this,\"patching\"),this.properties={},this._watchers=new WeakMap,this._pending=!1,this._changing=!1;const e=(0,p.isPlainObject)(t)&&\"id\"in t;this.id=e?t.id:(0,l.unique_id)();for(const[t,{type:e,default_value:s,options:n}]of(0,f.entries)(this._props)){let i;if(e instanceof h.PropertyAlias){const s=this.properties[e.attr];if(void 0===s)throw new Error(`can't resolve ${e.attr} before ${t} to create an alias`);Object.defineProperty(this.properties,t,{get:()=>s,configurable:!1,enumerable:!1})}else i=e instanceof _.Kind?new h.PrimitiveProperty(this,t,e,s,n):new e(this,t,_.Any,s,n),this.properties[t]=i}e?(0,u.assert)(1==(0,f.keys)(t).length,\"'id' cannot be used together with property initializers\"):(this.initialize_props(t),this.finalize(),this.connect_signals())}initialize_props(t){const e=(0,f.dict)(t),s=new Set;for(const t of this){const n=e.get(t.attr);t.initialize(n),s.add(t.attr)}for(const[t,n]of e)s.has(t)||this.property(t).set_value(n)}finalize(){this.initialize()}initialize(){}assert_initialized(){for(const t of this)t.syncable&&!t.readonly&&t.get_value()}connect_signals(){for(const t of this){if(!(t instanceof h.VectorSpec||t instanceof h.ScalarSpec))continue;if(t.is_unset)continue;const e=t.get_value();null!=e.transform&&this.connect(e.transform.change,(()=>this.transformchange.emit())),(0,S.isExpr)(e)&&this.connect(e.expr.change,(()=>this.exprchange.emit()))}}disconnect_signals(){c.Signal.disconnect_receiver(this)}destroy(){this.disconnect_signals(),this.destroyed.emit()}clone(){return(new w.Cloner).clone(this)}_clear_watchers(){this._watchers=new WeakMap}changed_for(t){const e=this._watchers.get(t);return this._watchers.set(t,!1),e??!0}_setv(t,e){const s=e.check_eq,n=new Set,i=this._changing;this._changing=!0;for(const[e,i]of t)!1!==s&&!e.is_unset&&(0,d.is_equal)(e.get_value(),i)||(e.set_value(i),n.add(e));n.size>0&&(this._clear_watchers(),this._pending=!0);for(const t of n)t.change.emit();if(!i){if(!e.no_change)for(;this._pending;)this._pending=!1,this.change.emit();this._pending=!1,this._changing=!1}return n}setv(t,e={}){const s=(0,f.entries)(t);if(0==s.length)return;if(e.silent){this._clear_watchers();for(const[t,e]of s)this.properties[t].set_value(e);return}const n=new Map,i=new Map;for(const[t,e]of s){const s=this.properties[t];n.set(s,e),i.set(s,s.is_unset?void 0:s.get_value())}const r=this._setv(n,e),{document:o}=this;if(null!=o){const t=[];for(const[e,s]of i)r.has(e)&&t.push([e,s,e.get_value()]);for(const[e,s,n]of t)if(e.may_have_refs&&this._needs_invalidate(s,n)){o._invalidate_all_models();break}const s=e.sync??!0;this._push_changes(t,s)}}ref(){return{id:this.id}}*[Symbol.iterator](){yield*(0,f.values)(this.properties)}*syncable_properties(){for(const t of this)t.syncable&&(yield t)}*own_properties(){const t=Object.getPrototypeOf(this),e=Object.getPrototypeOf(t),s=new Set((0,f.keys)(e._props));for(const t of this)s.has(t.attr)||(yield t)}static _value_record_references(t,e,s){if(!(0,p.isObject)(t)||!(0,a.may_have_refs)(t))return;const{recursive:n}=s;if(t instanceof r){if(!e.has(t)&&(e.add(t),n))for(const s of t.syncable_properties())if(!s.is_unset&&s.may_have_refs){const t=s.get_value();r._value_record_references(t,e,{recursive:n})}}else if((0,p.isIterable)(t))for(const s of t)r._value_record_references(s,e,{recursive:n});else if((0,p.isPlainObject)(t))for(const s of(0,f.values)(t))r._value_record_references(s,e,{recursive:n})}static references(t,e){const s=new Set;return r._value_record_references(t,s,e),s}references(){return r.references(this,{recursive:!0})}_doc_attached(){}_doc_detached(){}attach_document(t){if(null!=this.document){if(this.document==t)return;throw new Error(\"models must be owned by only a single document\")}this.document=t,this._doc_attached()}detach_document(){this._doc_detached(),this.document=null}_needs_invalidate(t,e){const s=new Set;r._value_record_references(e,s,{recursive:!1});const n=new Set;r._value_record_references(t,n,{recursive:!1});for(const t of s)if(!n.has(t))return!0;for(const t of n)if(!s.has(t))return!0;return!1}_push_changes(t,e){if(!this.is_syncable)return;const{document:s}=this;if(null==s)return;const n=[];for(const[i,,r]of t)if(i.syncable){const t=new y.ModelChangedEvent(s,this,i.attr,r);t.sync=e,n.push(t)}if(0!=n.length){let t;1==n.length?[t]=n:t=new y.DocumentEventBatch(s,n),s._trigger_on_change(t)}}on_change(t,e){for(const s of(0,p.isArray)(t)?t:[t])this.connect(s.change,e)}stream_to(t,e,s,{sync:n}={}){const i=t.get_value();if((0,$.stream_to_columns)(i,e,s),this._clear_watchers(),t.set_value(i),this.streaming.emit(),null!=this.document){const i=new y.ColumnsStreamedEvent(this.document,this,t.attr,e,s);i.sync=n??!0,this.document._trigger_on_change(i)}}patch_to(t,e,{sync:s}={}){const n=t.get_value(),i=(0,$.patch_to_columns)(n,e);if(this._clear_watchers(),t.set_value(n),this.patching.emit([...i]),null!=this.document){const n=new y.ColumnsPatchedEvent(this.document,this,t.attr,e);n.sync=s??!0,this.document._trigger_on_change(n)}}}s.HasProps=P,(r=P).prototype._props={},r.prototype._mixins=[]},\n",
" function _(n,e,t,s,r){s();const l=n(16),i=n(10);class o{constructor(n,e){this.sender=n,this.name=e}connect(n,e=null){t.receivers_for_sender.has(this.sender)||t.receivers_for_sender.set(this.sender,[]);const s=t.receivers_for_sender.get(this.sender);if(null!=f(s,this,n,e))return!1;const r=e??n;u.has(r)||u.set(r,[]);const l=u.get(r),i={signal:this,slot:n,context:e};return s.push(i),l.push(i),!0}disconnect(n,e=null){const s=t.receivers_for_sender.get(this.sender);if(null==s||0===s.length)return!1;const r=f(s,this,n,e);if(null==r)return!1;const l=e??n,i=u.get(l);return r.signal=null,g(s),g(i),!0}emit(n){const e=t.receivers_for_sender.get(this.sender)??[];for(const{signal:t,slot:s,context:r}of e)t===this&&s.call(r,n,this.sender)}}t.Signal=o,o.__name__=\"Signal\";class c extends o{emit(){super.emit(void 0)}}t.Signal0=c,c.__name__=\"Signal0\",function(n){n.disconnect_between=function(n,e){const s=t.receivers_for_sender.get(n);if(null==s||0===s.length)return;const r=u.get(e);if(null!=r&&0!==r.length){for(const e of r){if(null==e.signal)return;e.signal.sender===n&&(e.signal=null)}g(s),g(r)}},n.disconnect_sender=function(n){const e=t.receivers_for_sender.get(n);if(null!=e&&0!==e.length){for(const n of e){if(null==n.signal)return;const e=n.context??n.slot;n.signal=null,g(u.get(e))}g(e)}},n.disconnect_receiver=function(n,e,s){const r=u.get(n);if(null!=r&&0!==r.length){for(const n of r){if(null==n.signal)return;if(null!=e&&n.slot!=e)continue;const r=n.signal.sender;null!=s&&s.has(r)||(n.signal=null,g(t.receivers_for_sender.get(r)))}g(r)}},n.disconnect_all=function(n){const e=t.receivers_for_sender.get(n);if(null!=e&&0!==e.length){for(const n of e)n.signal=null;g(e)}const s=u.get(n);if(null!=s&&0!==s.length){for(const n of s)n.signal=null;g(s)}}}(o||(t.Signal=o={})),t.Signalable=function(){return class{connect(n,e){return n.connect(e,this)}disconnect(n,e){return n.disconnect(e,this)}}},t.receivers_for_sender=new WeakMap;const u=new WeakMap;function f(n,e,t,s){return(0,i.find)(n,(n=>n.signal===e&&n.slot===t&&n.context===s))}const a=new Set;function g(n){0==a.size&&(async()=>{await(0,l.defer)(),function(){for(const n of a)(0,i.remove_by)(n,(n=>null==n.signal));a.clear()}()})(),a.add(n)}},\n",
" function _(e,n,t,o,r){o();const s=new MessageChannel,i=new Map;s.port1.onmessage=e=>{const n=e.data,t=i.get(n);if(null!=t)try{t()}finally{i.delete(n)}};let a=1;function l(e){return new Promise((n=>setTimeout(n,e)))}t.defer=function(){return new Promise((e=>{const n=a++;i.set(n,e),s.port2.postMessage(n)}))},t.delay=l,t.poll=async function(e,n=50,t=500){for(;!e()&&t>=0;)await l(n),t-=n},t.paint=function(){return new Promise((e=>{requestAnimationFrame((()=>e()))}))},t.idle=function(){return new Promise((e=>{requestIdleCallback((()=>e()))}))}},\n",
" function _(s,n,r,e,t){e();const i=s(8);function f(s){return r.has_refs in s}r.is_ref=function(s){return(0,i.isPlainObject)(s)&&\"id\"in s&&!(\"type\"in s)},r.has_refs=Symbol(\"has_refs\"),r._is_HasRefs=f,r.is_HasRefs=function(s){return(0,i.isObject)(s)&&f(s)},r.may_have_refs=function(s){if(f(s))return s[r.has_refs];const n=s.constructor;return!f(n)||n[r.has_refs]}},\n",
" function _(e,t,r,n,a){n(),r.TextBaselineSpec=r.TextAlignSpec=r.FontStyleSpec=r.FontSizeSpec=r.FontSpec=r.LineDashSpec=r.LineCapSpec=r.LineJoinSpec=r.MarkerSpec=r.ArraySpec=r.NullStringSpec=r.StringSpec=r.AnySpec=r.NDArraySpec=void 0;const s=e(1),i=e(15),l=e(19),_=s.__importStar(e(20)),o=e(24),c=e(10),u=e(13),d=e(11),S=e(22),p=e(27),h=e(8),m=e(28),f=e(29),v=e(30),y=e(38),x=e(12),g=e(32),A=e(39);function w(e){try{return JSON.stringify(e)}catch{return e.toString()}}function z(e){return(0,h.isPlainObject)(e)&&(void 0===e.value?0:1)+(void 0===e.field?0:1)+(void 0===e.expr?0:1)==1}a(\"Uniform\",A.Uniform),a(\"UniformScalar\",A.UniformScalar),a(\"UniformVector\",A.UniformVector),r.isSpec=z;let b=null;r.use_theme=function(e=null){b=e},r.unset=Symbol(\"unset\");class C extends Error{}r.UnsetValueError=C,C.__name__=\"UnsetValueError\";class F{get syncable(){return!this.internal}get is_unset(){return this._value===r.unset}get initialized(){return this._initialized}initialize(e=r.unset){if(this._initialized)throw new Error(\"already initialized\");let t=r.unset;if(e!==r.unset)t=e,this._dirty=!0;else{const e=this._default_override();if(e!==r.unset)t=e;else{let e=!1;if(null!=b){const r=b.get(this.obj,this.attr);void 0!==r&&(t=r,e=!0)}e||(t=this.default_value(this.obj))}}t!==r.unset?(null!=this.kind.coerce&&(t=this.kind.coerce(t)),this._update(t)):this._value=r.unset,this._initialized=!0}get_value(){if(this._value!==r.unset)return this._value;throw new C(`${this.obj}.${this.attr} is unset`)}set_value(e){this._initialized?(this._update(e),this._dirty=!0):this.initialize(e),y.diagnostics.report(this)}_default_override(){return r.unset}get dirty(){return this._dirty}constructor(e,t,n,a,s={}){this._value=r.unset,this._initialized=!1,this._dirty=!1,this.obj=e,this.attr=t,this.kind=n,this.default_value=a,this.change=new i.Signal0(this.obj,\"change\"),this.internal=s.internal??!1,this.readonly=s.readonly??!1,this.convert=s.convert,this.on_update=s.on_update,this.may_have_refs=n.may_have_refs()}_update(e){if(this.validate(e),null!=this.convert){const t=this.convert(e,this.obj);void 0!==t&&(e=t)}this._value=e,this.on_update?.(e,this.obj)}toString(){return`Prop(${this.obj}.${this.attr}, value: ${w(this._value)})`}normalize(e){return e}validate(e){if(!this.valid(e))throw new Error(`${this.obj}.${this.attr} given invalid value: ${w(e)}`)}valid(e){return this.kind.valid(e)}}r.Property=F,F.__name__=\"Property\";class q{constructor(e){this.attr=e}}r.PropertyAlias=q,q.__name__=\"PropertyAlias\",r.Alias=function(e){return new q(e)};class N extends F{}r.PrimitiveProperty=N,N.__name__=\"PrimitiveProperty\";class U extends N{_default_override(){return f.settings.dev?\"Bokeh\":r.unset}}r.Font=U,U.__name__=\"Font\";class $ extends F{constructor(){super(...arguments),this._value=r.unset}get_value(){if(this._value!==r.unset)return this._value;throw new Error(`${this.obj}.${this.attr} is unset`)}_update(e){if(z(e)?this._value=e:this._value={value:e},(0,h.isPlainObject)(this._value)){const{_value:e}=this;this._value[g.serialize]=t=>{const{value:r,field:n,expr:a,transform:s,units:i}=e;return t.encode_struct(void 0!==r?{type:\"value\",value:r,transform:s,units:i}:void 0!==n?{type:\"field\",field:n,transform:s,units:i}:{type:\"expr\",expr:a,transform:s,units:i})}}(0,m.isValue)(this._value)&&this.validate(this._value.value)}materialize(e){return e}scalar(e,t){return new A.UniformScalar(e,t)}uniform(e){const t=this.get_value(),r=e.get_length()??1;if((0,m.isExpr)(t)){const{expr:n,transform:a}=t;let s=n.compute(e);return null!=a&&(s=a.compute(s)),s=this.materialize(s),this.scalar(s,r)}{const{value:e,transform:n}=t;let a=e;return null!=n&&(a=n.compute(a)),a=this.materialize(a),this.scalar(a,r)}}}r.ScalarSpec=$,$.__name__=\"ScalarSpec\";class j extends ${}r.AnyScalar=j,j.__name__=\"AnyScalar\";class D extends ${}r.DictScalar=D,D.__name__=\"DictScalar\";class B extends ${}r.ColorScalar=B,B.__name__=\"ColorScalar\";class E extends ${}r.NumberScalar=E,E.__name__=\"NumberScalar\";class L extends ${}r.StringScalar=L,L.__name__=\"StringScalar\";class P extends ${}r.NullStringScalar=P,P.__name__=\"NullStringScalar\";class T extends ${}r.ArrayScalar=T,T.__name__=\"ArrayScalar\";class V extends ${}r.LineJoinScalar=V,V.__name__=\"LineJoinScalar\";class k extends ${}r.LineCapScalar=k,k.__name__=\"LineCapScalar\";class J extends ${}r.LineDashScalar=J,J.__name__=\"LineDashScalar\";class X extends ${_default_override(){return f.settings.dev?\"Bokeh\":r.unset}}r.FontScalar=X,X.__name__=\"FontScalar\";class Y extends ${}r.FontSizeScalar=Y,Y.__name__=\"FontSizeScalar\";class G extends ${}r.FontStyleScalar=G,G.__name__=\"FontStyleScalar\";class I extends ${}r.TextAlignScalar=I,I.__name__=\"TextAlignScalar\";class O extends ${}r.TextBaselineScalar=O,O.__name__=\"TextBaselineScalar\";class R extends F{constructor(){super(...arguments),this._value=r.unset}get_value(){if(this._value!==r.unset)return this._value;throw new Error(`${this.obj}.${this.attr} is unset`)}_update(e){if(z(e)?this._value=e:this._value={value:e},(0,h.isPlainObject)(this._value)){const{_value:e}=this;this._value[g.serialize]=t=>{const{value:r,field:n,expr:a,transform:s,units:i}=e;return t.encode_struct(void 0!==r?{type:\"value\",value:r,transform:s,units:i}:void 0!==n?{type:\"field\",field:n,transform:s,units:i}:{type:\"expr\",expr:a,transform:s,units:i})}}(0,m.isValue)(this._value)&&this.validate(this._value.value)}materialize(e){return e}v_materialize(e){return e}scalar(e,t){return new A.UniformScalar(e,t)}vector(e){return new A.UniformVector(e)}uniform(e){const t=this.get_value(),r=e.get_length()??1;if((0,m.isField)(t)){const{field:n,transform:a}=t;let s=e.get_column(n);if(null!=s)return null!=a&&(s=a.v_compute(s)),s=this.v_materialize(s),this.vector(s);{const e=`attempted to retrieve property array for nonexistent field '${n}'`;if(f.settings.force_fields)throw new Error(e);return l.logger.warn(e),this.scalar(null,r)}}if((0,m.isExpr)(t)){const{expr:r,transform:n}=t;let a=r.v_compute(e);return null!=n&&(a=n.v_compute(a)),a=this.v_materialize(a),this.vector(a)}if((0,m.isValue)(t)){const{value:e,transform:n}=t;let a=e;return null!=n&&(a=n.compute(a)),a=this.materialize(a),this.scalar(a,r)}(0,x.unreachable)()}array(e){let t;const r=e.get_length()??1,n=this.get_value();if((0,m.isField)(n)){const{field:a}=n,s=e.get_column(a);if(null!=s)t=this.normalize(s);else{const e=`attempted to retrieve property array for nonexistent field '${a}'`;if(f.settings.force_fields)throw new Error(e);l.logger.warn(e);const n=new Float64Array(r);n.fill(NaN),t=n}}else if((0,m.isExpr)(n)){const{expr:r}=n;t=this.normalize(r.v_compute(e))}else{const e=this.normalize([n.value])[0];if((0,h.isNumber)(e)){const n=new Float64Array(r);n.fill(e),t=n}else t=(0,c.repeat)(e,r)}const{transform:a}=n;return null!=a&&(t=a.v_compute(t)),t}}r.VectorSpec=R,R.__name__=\"VectorSpec\";class M extends R{}r.DataSpec=M,M.__name__=\"DataSpec\";class H extends R{constructor(){super(...arguments),this._value=r.unset}_update(e){if(super._update(e),this._value!==r.unset){const{units:e}=this._value;if(null!=e&&!(0,c.includes)(this.valid_units,e))throw new Error(`units must be one of ${this.valid_units.join(\", \")}; got: ${e}`)}}get units(){return this._value!==r.unset?this._value.units??this.default_units:this.default_units}set units(e){if(this._value===r.unset)throw new Error(`${this.obj}.${this.attr} is unset`);e!=this.default_units?this._value.units=e:delete this._value.units}}r.UnitsSpec=H,H.__name__=\"UnitsSpec\";class K extends H{array(e){return new Float64Array(super.array(e))}}r.NumberUnitsSpec=K,K.__name__=\"NumberUnitsSpec\";class Q extends M{}r.BaseCoordinateSpec=Q,Q.__name__=\"BaseCoordinateSpec\";class W extends Q{}r.CoordinateSpec=W,W.__name__=\"CoordinateSpec\";class Z extends Q{}r.CoordinateSeqSpec=Z,Z.__name__=\"CoordinateSeqSpec\";class ee extends Q{}r.CoordinateSeqSeqSeqSpec=ee,ee.__name__=\"CoordinateSeqSeqSeqSpec\";class te extends W{constructor(){super(...arguments),this.dimension=\"x\"}}r.XCoordinateSpec=te,te.__name__=\"XCoordinateSpec\";class re extends W{constructor(){super(...arguments),this.dimension=\"y\"}}r.YCoordinateSpec=re,re.__name__=\"YCoordinateSpec\";class ne extends Z{constructor(){super(...arguments),this.dimension=\"x\"}}r.XCoordinateSeqSpec=ne,ne.__name__=\"XCoordinateSeqSpec\";class ae extends Z{constructor(){super(...arguments),this.dimension=\"y\"}}r.YCoordinateSeqSpec=ae,ae.__name__=\"YCoordinateSeqSpec\";class se extends ee{constructor(){super(...arguments),this.dimension=\"x\"}}r.XCoordinateSeqSeqSeqSpec=se,se.__name__=\"XCoordinateSeqSeqSeqSpec\";class ie extends ee{constructor(){super(...arguments),this.dimension=\"y\"}}r.YCoordinateSeqSeqSeqSpec=ie,ie.__name__=\"YCoordinateSeqSeqSeqSpec\";class le extends K{get default_units(){return\"rad\"}get valid_units(){return[..._.AngleUnits]}materialize(e){return e*-(0,d.to_radians_coeff)(this.units)}v_materialize(e){const t=-(0,d.to_radians_coeff)(this.units),r=new Float32Array(e.length);return(0,u.mul)(e,t,r),r}array(e){throw new Error(\"not supported\")}}r.AngleSpec=le,le.__name__=\"AngleSpec\";class _e extends K{get default_units(){return\"data\"}get valid_units(){return[..._.SpatialUnits]}}r.DistanceSpec=_e,_e.__name__=\"DistanceSpec\";class oe extends _e{materialize(e){return e??NaN}}r.NullDistanceSpec=oe,oe.__name__=\"NullDistanceSpec\";class ce extends M{v_materialize(e){return new Uint8Array(e)}array(e){return new Uint8Array(super.array(e))}}r.BooleanSpec=ce,ce.__name__=\"BooleanSpec\";class ue extends M{v_materialize(e){return(0,h.isTypedArray)(e)?e:new Int32Array(e)}array(e){return new Int32Array(super.array(e))}}r.IntSpec=ue,ue.__name__=\"IntSpec\";class de extends M{v_materialize(e){return(0,h.isTypedArray)(e)?e:new Float64Array(e)}array(e){return new Float64Array(super.array(e))}}r.NumberSpec=de,de.__name__=\"NumberSpec\";class Se extends de{valid(e){return(0,h.isNumber)(e)&&e>=0}}r.ScreenSizeSpec=Se,Se.__name__=\"ScreenSizeSpec\";class pe extends M{materialize(e){return(0,S.encode_rgba)((0,S.color2rgba)(e))}v_materialize(e){if(!(0,v.is_NDArray)(e))return this._from_css_array(e);if(\"uint32\"==e.dtype&&1==e.dimension)return(0,p.to_big_endian)(e);if(\"uint8\"==e.dtype&&1==e.dimension){const[t]=e.shape,r=new o.RGBAArray(4*t);let n=0;for(const t of e)r[n++]=t,r[n++]=t,r[n++]=t,r[n++]=255;return new o.ColorArray(r.buffer)}if(\"uint8\"==e.dtype&&2==e.dimension){const[t,r]=e.shape;if(4==r)return new o.ColorArray(e.buffer);if(3==r){const n=new o.RGBAArray(4*t);for(let a=0,s=0;a0)return e in i?i[e]:i[e]=new _(e,l);throw new TypeError(\"Logger.get() expects a non-empty string name and an optional log-level\")}constructor(e,l=_.INFO){this._name=e,this.set_level(l)}get level(){return this.get_level()}get_level(){return this._log_level}set_level(e){if(e instanceof v)this._log_level=e;else{if(!_.log_levels.hasOwnProperty(e))throw new Error(\"Logger.set_level() expects a log-level object or a string name of a log-level\");this._log_level=_.log_levels[e]}const l=`[${this._name}]`;for(const{level:e,method:o}of(0,r.values)(_.log_levels))e\",\"*\"),n.HTTPMethod=(0,a.Enum)(\"POST\",\"GET\"),n.HexTileOrientation=(0,a.Enum)(\"pointytop\",\"flattop\"),n.HoverMode=(0,a.Enum)(\"mouse\",\"hline\",\"vline\"),n.ImageOrigin=(0,a.Enum)(\"bottom_left\",\"top_left\",\"bottom_right\",\"top_right\"),n.LatLon=(0,a.Enum)(\"lat\",\"lon\"),n.LegendClickPolicy=(0,a.Enum)(\"none\",\"hide\",\"mute\"),n.LegendLocation=n.Anchor,n.LineCap=(0,a.Enum)(\"butt\",\"round\",\"square\"),n.LineDash=(0,a.Enum)(\"solid\",\"dashed\",\"dotted\",\"dotdash\",\"dashdot\"),n.LineJoin=(0,a.Enum)(\"miter\",\"round\",\"bevel\"),n.LinePolicy=(0,a.Enum)(\"prev\",\"next\",\"nearest\",\"interp\",\"none\"),n.Location=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\"),n.Logo=(0,a.Enum)(\"normal\",\"grey\"),n.MapType=(0,a.Enum)(\"satellite\",\"roadmap\",\"terrain\",\"hybrid\"),n.MarkerType=(0,a.Enum)(\"asterisk\",\"circle\",\"circle_cross\",\"circle_dot\",\"circle_x\",\"circle_y\",\"cross\",\"dash\",\"diamond\",\"diamond_cross\",\"diamond_dot\",\"dot\",\"hex\",\"hex_dot\",\"inverted_triangle\",\"plus\",\"square\",\"square_cross\",\"square_dot\",\"square_pin\",\"square_x\",\"star\",\"star_dot\",\"triangle\",\"triangle_dot\",\"triangle_pin\",\"x\",\"y\"),n.MutedPolicy=(0,a.Enum)(\"show\",\"ignore\"),n.Orientation=(0,a.Enum)(\"vertical\",\"horizontal\"),n.OutputBackend=(0,a.Enum)(\"canvas\",\"svg\",\"webgl\"),n.PaddingUnits=(0,a.Enum)(\"percent\",\"absolute\"),n.Place=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\",\"center\"),n.PointPolicy=(0,a.Enum)(\"snap_to_data\",\"follow_mouse\",\"none\"),n.RadiusDimension=(0,a.Enum)(\"x\",\"y\",\"max\",\"min\"),n.RenderLevel=(0,a.Enum)(\"image\",\"underlay\",\"glyph\",\"guide\",\"annotation\",\"overlay\"),n.ResetPolicy=(0,a.Enum)(\"standard\",\"event_only\"),n.ResolutionType=(0,a.Enum)(\"microseconds\",\"milliseconds\",\"seconds\",\"minsec\",\"minutes\",\"hourmin\",\"hours\",\"days\",\"months\",\"years\"),n.RoundingFunction=(0,a.Enum)(\"round\",\"nearest\",\"floor\",\"rounddown\",\"ceil\",\"roundup\"),n.ScrollbarPolicy=(0,a.Enum)(\"auto\",\"visible\",\"hidden\"),n.SelectionMode=(0,a.Enum)(\"replace\",\"append\",\"intersect\",\"subtract\",\"xor\"),n.Side=(0,a.Enum)(\"above\",\"below\",\"left\",\"right\"),n.SizingMode=(0,a.Enum)(\"stretch_width\",\"stretch_height\",\"stretch_both\",\"scale_width\",\"scale_height\",\"scale_both\",\"fixed\",\"inherit\"),n.Sort=(0,a.Enum)(\"ascending\",\"descending\"),n.SpatialUnits=(0,a.Enum)(\"screen\",\"data\"),n.StartEnd=(0,a.Enum)(\"start\",\"end\"),n.StepMode=(0,a.Enum)(\"after\",\"before\",\"center\"),n.TapBehavior=(0,a.Enum)(\"select\",\"inspect\"),n.TapGesture=(0,a.Enum)(\"tap\",\"doubletap\"),n.TextAlign=(0,a.Enum)(\"left\",\"right\",\"center\"),n.TextBaseline=(0,a.Enum)(\"top\",\"middle\",\"bottom\",\"alphabetic\",\"hanging\",\"ideographic\"),n.TextureRepetition=(0,a.Enum)(\"repeat\",\"repeat_x\",\"repeat_y\",\"no_repeat\"),n.LabelOrientation=(0,a.Enum)(\"vertical\",\"horizontal\",\"parallel\",\"normal\"),n.TooltipAttachment=(0,a.Enum)(\"horizontal\",\"vertical\",\"left\",\"right\",\"above\",\"below\"),n.UpdateMode=(0,a.Enum)(\"replace\",\"append\"),n.VerticalAlign=(0,a.Enum)(\"top\",\"middle\",\"bottom\"),n.ToolIcon=(0,a.Enum)(\"append_mode\",\"arrow_down_to_bar\",\"arrow_up_from_bar\",\"auto_box_zoom\",\"bold\",\"box_edit\",\"box_select\",\"box_zoom\",\"caret_down\",\"caret_left\",\"caret_right\",\"caret_up\",\"check\",\"chevron_down\",\"chevron_left\",\"chevron_right\",\"chevron_up\",\"clear_selection\",\"copy\",\"crosshair\",\"delete\",\"freehand_draw\",\"fullscreen\",\"help\",\"hover\",\"intersect_mode\",\"invert_selection\",\"italic\",\"lasso_select\",\"line_edit\",\"maximize\",\"minimize\",\"pan\",\"pin\",\"point_draw\",\"pointer\",\"poly_draw\",\"poly_edit\",\"polygon_select\",\"range\",\"redo\",\"replace_mode\",\"reset\",\"save\",\"see_off\",\"see_on\",\"settings\",\"square\",\"square_check\",\"subtract_mode\",\"tap_select\",\"text_align_center\",\"text_align_left\",\"text_align_right\",\"undo\",\"unknown\",\"unpin\",\"wheel_pan\",\"wheel_zoom\",\"x_box_select\",\"x_box_zoom\",\"x_grip\",\"x_pan\",\"xor_mode\",\"y_box_select\",\"y_box_zoom\",\"y_grip\",\"y_pan\",\"zoom_in\",\"zoom_out\")},\n",
" function _(e,t,r,n,s){n();const i=e(1).__importStar(e(8)),a=e(22),_=e(9),o=e(17),u=globalThis.Map,l=globalThis.Set,y=globalThis.Node;class c{}r.Kind=c,c.__name__=\"Kind\",function(e){class t extends c{may_have_refs(){return!1}}t.__name__=\"Primitive\",e.Primitive=t;class r extends t{valid(e){return void 0!==e}toString(){return\"Any\"}may_have_refs(){return!0}}r.__name__=\"Any\",e.Any=r;class n extends t{valid(e){return void 0!==e}toString(){return\"Unknown\"}may_have_refs(){return!0}}n.__name__=\"Unknown\",e.Unknown=n;class s extends t{valid(e){return i.isBoolean(e)}toString(){return\"Bool\"}}s.__name__=\"Bool\",e.Bool=s;class d extends c{constructor(e){super(),this.obj_type=e}valid(e){return e instanceof this.obj_type}toString(){const e=this.obj_type;return`Ref(${e.__name__??e.toString()})`}may_have_refs(){const{obj_type:e}=this;return!(o.has_refs in e)||e[o.has_refs]}}d.__name__=\"Ref\",e.Ref=d;class h extends c{valid(e){return i.isObject(e)}toString(){return\"AnyRef\"}may_have_refs(){return!0}}h.__name__=\"AnyRef\",e.AnyRef=h;class p extends t{valid(e){return i.isNumber(e)}toString(){return\"Float\"}}p.__name__=\"Float\",e.Float=p;class m extends p{valid(e){return super.valid(e)&&i.isInteger(e)}toString(){return\"Int\"}}m.__name__=\"Int\",e.Int=m;class v extends p{valid(e){return super.valid(e)&&0<=e&&e<=1}toString(){return\"Percent\"}}v.__name__=\"Percent\",e.Percent=v;class f extends c{constructor(e){super(),this.types=e,this.types=e}valid(e){return this.types.some((t=>t.valid(e)))}toString(){return`Or(${this.types.map((e=>e.toString())).join(\", \")})`}may_have_refs(){return this.types.some((e=>e.may_have_refs()))}}f.__name__=\"Or\",e.Or=f;class S extends c{constructor(e){super(),this.types=e,this.types=e}valid(e){if(!i.isArray(e))return!1;for(let t=0;te.toString())).join(\", \")})`}may_have_refs(){return this.types.some((e=>e.may_have_refs()))}}S.__name__=\"Tuple\",e.Tuple=S;class g extends c{constructor(e){super(),this.struct_type=e}valid(e){if(!i.isPlainObject(e))return!1;const t=new _.PlainObjectProxy(this.struct_type);for(const r of(0,_.keys)(e))if(!t.has(r))return!1;for(const[r,n]of t){const t=e[r];if(!n.valid(t))return!1}return!0}toString(){return`Struct({${(0,_.typed_entries)(this.struct_type).map((([e,t])=>`${e.toString()}: ${t}`)).join(\", \")}})`}may_have_refs(){return(0,_.typed_values)(this.struct_type).some((e=>e.may_have_refs()))}}g.__name__=\"Struct\",e.Struct=g;class b extends c{constructor(e){super(),this.struct_type=e}valid(e){if(!i.isPlainObject(e))return!1;const t=new _.PlainObjectProxy(e),r=new _.PlainObjectProxy(this.struct_type);for(const e of t.keys())if(!r.has(e))return!1;for(const[e,n]of r){const r=t.get(e);if(void 0!==r&&!n.valid(r))return!1}return!0}toString(){return`Struct({${(0,_.typed_entries)(this.struct_type).map((([e,t])=>`${e.toString()}?: ${t}`)).join(\", \")}})`}may_have_refs(){return(0,_.typed_values)(this.struct_type).some((e=>e.may_have_refs()))}}b.__name__=\"PartialStruct\",e.PartialStruct=b;class x extends c{constructor(e){super(),this.item_type=e}valid(e){return i.isIterable(e)}toString(){return`Iterable(${this.item_type.toString()})`}may_have_refs(){return this.item_type.may_have_refs()}}x.__name__=\"Iterable\",e.Iterable=x;class w extends c{constructor(e){super(),this.item_type=e}valid(e){return i.isArray(e)||i.isTypedArray(e)}toString(){return`Arrayable(${this.item_type.toString()})`}may_have_refs(){return this.item_type.may_have_refs()}}w.__name__=\"Arrayable\",e.Arrayable=w;class K extends c{constructor(e){super(),this.item_type=e}valid(e){return i.isArray(e)&&e.every((e=>this.item_type.valid(e)))}toString(){return`List(${this.item_type.toString()})`}may_have_refs(){return this.item_type.may_have_refs()}}K.__name__=\"List\",e.List=K;class N extends t{valid(e){return null===e}toString(){return\"Null\"}}N.__name__=\"Null\",e.Null=N;class P extends c{constructor(e){super(),this.base_type=e}valid(e){return null===e||this.base_type.valid(e)}toString(){return`Nullable(${this.base_type.toString()})`}may_have_refs(){return this.base_type.may_have_refs()}}P.__name__=\"Nullable\",e.Nullable=P;class A extends c{constructor(e){super(),this.base_type=e}valid(e){return void 0===e||this.base_type.valid(e)}toString(){return`Opt(${this.base_type.toString()})`}may_have_refs(){return this.base_type.may_have_refs()}}A.__name__=\"Opt\",e.Opt=A;class $ extends c{valid(e){return e instanceof ArrayBuffer}toString(){return\"Bytes\"}may_have_refs(){return!1}}$.__name__=\"Bytes\",e.Bytes=$;class O extends t{valid(e){return i.isString(e)}toString(){return\"Str\"}}O.__name__=\"Str\",e.Str=O;class j extends O{constructor(e){super(),this.regex=e}valid(e){return super.valid(e)&&this.regex.test(e)}toString(){return`Regex(${this.regex.toString()})`}}j.__name__=\"Regex\",e.Regex=j;class F extends t{constructor(e){super(),this.values=new l(e)}valid(e){return this.values.has(e)}*[Symbol.iterator](){yield*this.values}toString(){return`Enum(${[...this.values].map((e=>e.toString())).join(\", \")})`}}F.__name__=\"Enum\",e.Enum=F;class R extends c{constructor(e){super(),this.item_type=e}valid(e){if(!(e instanceof u||i.isPlainObject(e)))return!1;for(const t of(0,_.values)(e))if(!this.item_type.valid(t))return!1;return!0}toString(){return`Dict(${this.item_type.toString()})`}may_have_refs(){return this.item_type.may_have_refs()}}R.__name__=\"Dict\",e.Dict=R;class B extends c{constructor(e,t){super(),this.key_type=e,this.item_type=t}coerce(e){return i.isPlainObject(e)&&(0,_.is_empty)(e)?new u:e}valid(e){if(!(e instanceof u))return!1;for(const[t,r]of e.entries())if(!this.key_type.valid(t)||!this.item_type.valid(r))return!1;return!0}toString(){return`Mapping(${this.key_type.toString()}, ${this.item_type.toString()})`}may_have_refs(){return this.key_type.may_have_refs()||this.item_type.may_have_refs()}}B.__name__=\"Mapping\",e.Mapping=B;class I extends c{constructor(e){super(),this.item_type=e}valid(e){if(!(e instanceof l))return!1;for(const t of e)if(!this.item_type.valid(t))return!1;return!0}toString(){return`Set(${this.item_type.toString()})`}may_have_refs(){return this.item_type.may_have_refs()}}I.__name__=\"Set\",e.Set=I;class k extends c{valid(e){return(0,a.is_Color)(e)}toString(){return\"Color\"}may_have_refs(){return!1}}k.__name__=\"Color\",e.Color=k;class C extends O{toString(){return\"CSSLength\"}}C.__name__=\"CSSLength\",e.CSSLength=C;class L extends c{valid(e){return i.isFunction(e)}toString(){return\"Func(...)\"}may_have_refs(){return!1}}L.__name__=\"Func\",e.Func=L;class T extends c{constructor(e){super(),this.base_type=e}valid(e){return this.base_type.valid(e)&&e>=0}toString(){return`NonNegative(${this.base_type.toString()})`}may_have_refs(){return this.base_type.may_have_refs()}}T.__name__=\"NonNegative\",e.NonNegative=T;class M extends c{constructor(e){super(),this.base_type=e}valid(e){return this.base_type.valid(e)&&e>0}toString(){return`Positive(${this.base_type.toString()})`}may_have_refs(){return this.base_type.may_have_refs()}}M.__name__=\"Positive\",e.Positive=M;class E extends c{valid(e){return e instanceof y}toString(){return\"Node\"}may_have_refs(){return!1}}E.__name__=\"Node\",e.Node=E}(r.Kinds||(r.Kinds={})),r.Any=new r.Kinds.Any,r.Unknown=new r.Kinds.Unknown,r.Bool=new r.Kinds.Bool,r.Float=new r.Kinds.Float,r.Int=new r.Kinds.Int,r.Bytes=new r.Kinds.Bytes,r.Str=new r.Kinds.Str;r.Regex=e=>new r.Kinds.Regex(e),r.Null=new r.Kinds.Null;r.Nullable=e=>new r.Kinds.Nullable(e);r.Opt=e=>new r.Kinds.Opt(e);r.Or=(...e)=>new r.Kinds.Or(e);r.Tuple=(...e)=>new r.Kinds.Tuple(e);r.Struct=e=>new r.Kinds.Struct(e);r.PartialStruct=e=>new r.Kinds.PartialStruct(e);r.Iterable=e=>new r.Kinds.Iterable(e);r.Arrayable=e=>new r.Kinds.Arrayable(e);r.List=e=>new r.Kinds.List(e);r.Dict=e=>new r.Kinds.Dict(e);r.Mapping=(e,t)=>new r.Kinds.Mapping(e,t);r.Set=e=>new r.Kinds.Set(e);r.Enum=(...e)=>new r.Kinds.Enum(e);r.Ref=e=>new r.Kinds.Ref(e);r.AnyRef=()=>new r.Kinds.AnyRef;r.Func=()=>new r.Kinds.Func,r.Node=new r.Kinds.Node;r.NonNegative=e=>new r.Kinds.NonNegative(e);r.Positive=e=>new r.Kinds.Positive(e),r.Percent=new r.Kinds.Percent,r.Alpha=r.Percent,r.Color=new r.Kinds.Color,r.Auto=(0,r.Enum)(\"auto\"),r.CSSLength=new r.Kinds.CSSLength,r.FontSize=r.Str,r.Font=r.Str,r.Angle=r.Float,r.Boolean=r.Bool,r.String=r.Str,r.Number=r.Float,r.Array=r.List,r.Map=r.Mapping,r.Function=r.Func},\n",
" function _(n,r,t,e,s){e();const u=n(23),c=n(11),i=n(8),{round:o,sqrt:l}=Math;function a(n){return(0,c.clamp)(o(n),0,255)}function f(){return[0,0,0,0]}function g(n){return[n>>24&255,n>>16&255,n>>8&255,255&n]}function b(n,r=1){const[t,e,s,u]=(()=>{if(null==n)return[0,0,0,0];if((0,i.isInteger)(n))return g(n);if((0,i.isString)(n))return p(n)??[0,0,0,0];if(2==n.length){const[r,t]=n;return b(r,t)}{const[r,t,e,s=1]=n;return[r,t,e,a(255*s)]}})();return[t,e,s,a(r*u)]}t.byte=a,t.transparent=f,t.encode_rgba=function([n,r,t,e]){return n<<24|r<<16|t<<8|e},t.decode_rgba=g,t.color2rgba=b;const h={0:\"0\",1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",10:\"a\",11:\"b\",12:\"c\",13:\"d\",14:\"e\",15:\"f\"};function d(n){return h[n>>4]+h[15&n]}function $([n,r,t,e]){return`rgba(${n}, ${r}, ${t}, ${e/255})`}t.rgba2css=$,t.color2css=function(n,r){const[t,e,s,u]=b(n,r);return $([t,e,s,u])},t.color2hex=function(n,r){const[t,e,s,u]=b(n,r),c=`#${d(t)}${d(e)}${d(s)}`;return 255==u?c:`${c}${d(u)}`},t.color2hexrgb=function(n){const[r,t,e]=b(n);return`#${d(r)}${d(t)}${d(e)}`};const m=/^rgba?\\(\\s*(?[^\\s,]+?)\\s+(?[^\\s,]+?)\\s+(?[^\\s,]+?)(?:\\s*\\/\\s*(?[^\\s,]+?))?\\s*\\)$/,N=/^rgba?\\(\\s*(?[^\\s,]+?)\\s*,\\s*(?[^\\s,]+?)\\s*,\\s*(?[^\\s,]+?)(?:\\s*,\\s*(?[^\\s,]+?))?\\s*\\)$/,_=(()=>{const n=document.createElement(\"canvas\");n.width=1,n.height=1;const r=n.getContext(\"2d\"),t=r.createLinearGradient(0,0,1,1);return n=>{r.fillStyle=t,r.fillStyle=n;const e=r.fillStyle;return e!=t?e:null}})();function p(n){if(\"\"==(n=n.trim().toLowerCase()))return null;if(\"transparent\"==n)return[0,0,0,0];if((0,u.is_named_color)(n))return g(u.named_colors[n]);if(\"#\"==n[0]){const r=Number(`0x${n.substring(1)}`);if(isNaN(r))return null;switch(n.length-1){case 3:{const n=r>>8&15,t=r>>4&15,e=r>>0&15;return[n<<4|n,t<<4|t,e<<4|e,255]}case 4:{const n=r>>12&15,t=r>>8&15,e=r>>4&15,s=r>>0&15;return[n<<4|n,t<<4|t,e<<4|e,s<<4|s]}case 6:return[r>>16&255,r>>8&255,r>>0&255,255];case 8:return[r>>24&255,r>>16&255,r>>8&255,r>>0&255]}}else if(n.startsWith(\"rgb\")){const r=n.match(m)??n.match(N);if(null!=r?.groups){let{r:n,g:t,b:e,a:s=\"1\"}=r.groups;const u=n.endsWith(\"%\"),c=t.endsWith(\"%\"),i=e.endsWith(\"%\"),o=s.endsWith(\"%\");if(!(u&&c&&i)&&(u||c||i))return null;u&&(n=n.slice(0,-1)),c&&(t=t.slice(0,-1)),i&&(e=e.slice(0,-1)),o&&(s=s.slice(0,-1));let l=Number(n),f=Number(t),g=Number(e),b=Number(s);return isNaN(l+f+g+b)?null:(u&&(l=l/100*255),c&&(f=f/100*255),i&&(g=g/100*255),b=255*(o?b/100:b),l=a(l),f=a(f),g=a(g),b=a(b),[l,f,g,b])}}else{const r=_(n);if(null!=r)return p(r)}return null}t.css4_parse=p,t.is_Color=function(n){return!!(0,i.isInteger)(n)||(!(!(0,i.isString)(n)||null==p(n))||!(!(0,i.isArray)(n)||3!=n.length&&4!=n.length))},t.is_dark=function([n,r,t]){return 1-(.299*n+.587*r+.114*t)/255>=.6},t.brightness=function(n){const[r,t,e]=b(n);return l(.299*r**2+.587*t**2+.114*e**2)/255},t.luminance=function(n){const[r,t,e]=b(n);return(.2126*r**2.2+.7152*t**2.2+.0722*e**2.2)/255**2.2}},\n",
" function _(e,r,l,a,i){a();l.named_colors={aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},l.is_named_color=function(e){return e in l.named_colors}},\n",
" function _(r,t,n,o,a){o(),n.GeneratorFunction=Object.getPrototypeOf((function*(){})).constructor,n.AsyncGeneratorFunction=Object.getPrototypeOf((async function*(){})).constructor,n.ColorArray=Uint32Array,n.RGBAArray=Uint8ClampedArray,n.infer_type=function(r,t){return r instanceof Float64Array||r instanceof Array||t instanceof Float64Array||t instanceof Array?Float64Array:Float32Array},n.ScreenArray=Float32Array,n.to_screen=function(r){return r instanceof Float32Array?r:Float32Array.from(r)},a(\"Indices\",r(25).BitSet)},\n",
" function _(t,s,r,e,i){var n,o;e();const _=t(26),a=t(12),h=t(17);class c{constructor(t,s=0){this[n]=\"BitSet\",this._count=null,this.size=t,this._nwords=Math.ceil(t/c._word_length),0==s||1==s?(this._array=new Uint32Array(this._nwords),1==s&&this._array.fill(4294967295)):((0,a.assert)(s.length==this._nwords,\"Initializer size mismatch\"),this._array=s)}clone(){return new c(this.size,new Uint32Array(this._array))}[(n=Symbol.toStringTag,o=h.has_refs,_.equals)](t,s){if(!s.eq(this.size,t.size))return!1;const{_nwords:r}=this,e=this.size%c._word_length,i=0==e?r:r-1;for(let s=0;s>>5,r=31&t;return 1==(this._array[s]>>r&1)}set(t,s=!0){this._check_bounds(t),this._count=null;const r=t>>>5,e=31&t;s?this._array[r]|=1<>>t&1)&&(e+=1)}return e}*ones(){const{_array:t,_nwords:s,size:r}=this;for(let e=0,i=0;i>>t&1)&&(yield e);else e+=c._word_length}}*zeros(){const{_array:t,_nwords:s,size:r}=this;for(let e=0,i=0;i>>t&1)&&(yield e);else e+=c._word_length}}_check_size(t){(0,a.assert)(this.size==t.size,`Size mismatch (${this.size} != ${t.size})`)}invert(){for(let t=0;t>>0}add(t){this._check_size(t);for(let s=0;s0;)if(n[c]===t)return o[c]===e;n.push(t),o.push(e);const l=(()=>{if(a(t)&&a(e))return t[r.equals](e,this);switch(s){case\"[object Array]\":case\"[object Uint8Array]\":case\"[object Int8Array]\":case\"[object Uint16Array]\":case\"[object Int16Array]\":case\"[object Uint32Array]\":case\"[object Int32Array]\":case\"[object Float32Array]\":case\"[object Float64Array]\":return this.arrays(t,e);case\"[object Map]\":return this.maps(t,e);case\"[object Set]\":return this.sets(t,e);case\"[object Object]\":if(t.constructor==e.constructor&&(null==t.constructor||t.constructor===Object))return this.objects(t,e);case\"[object Function]\":if(t.constructor==e.constructor&&t.constructor===Function)return this.eq(`${t}`,`${e}`)}if(\"undefined\"!=typeof Node&&t instanceof Node)return this.nodes(t,e);throw new u(`can't compare objects of type ${s}`)})();return n.pop(),o.pop(),l}numbers(t,e){return Object.is(t,e)}arrays(t,e){const{length:r}=t;if(r!=e.length)return!1;for(let s=0;s0,i.is_little_endian=(()=>{const n=new ArrayBuffer(4),t=new Uint8Array(n);new Uint32Array(n)[1]=168496141;let i=!0;return 10==t[4]&&11==t[5]&&12==t[6]&&13==t[7]&&(i=!1),i})(),i.BYTE_ORDER=i.is_little_endian?\"little\":\"big\",i.to_big_endian=function(n){if(i.is_little_endian){const t=new Uint32Array(n.length),i=new DataView(t.buffer);let e=0;for(const t of n)i.setUint32(e,t),e+=4;return t}return n}},\n",
" function _(i,n,e,t,u){t();const c=i(8);e.isValue=function(i){return(0,c.isPlainObject)(i)&&\"value\"in i},e.isField=function(i){return(0,c.isPlainObject)(i)&&\"field\"in i},e.isExpr=function(i){return(0,c.isPlainObject)(i)&&\"expr\"in i}},\n",
" function _(e,t,r,s,_){s();class i{constructor(){this._dev=!1,this._wireframe=!1,this._force_webgl=!1,this._force_fields=!1}set dev(e){this._dev=e}get dev(){return this._dev}set wireframe(e){this._wireframe=e}get wireframe(){return this._wireframe}set force_webgl(e){this._force_webgl=e}get force_webgl(){return this._force_webgl}set force_fields(e){this._force_fields=e}get force_fields(){return this._force_fields}}r.Settings=i,i.__name__=\"Settings\",r.settings=new i},\n",
" function _(e,t,s,r,n){var a,i,h,u,o,l,c,p,y,_;r();const A=e(8),d=e(27),g=e(26),f=e(31),m=e(32),w=Symbol(\"__ndarray__\");function N(e,t){return{type:\"ndarray\",array:t.encode(\"object\"==e.dtype?Array.from(e):e.buffer),order:d.BYTE_ORDER,dtype:e.dtype,shape:e.shape}}class D extends Uint8Array{constructor(e,t){super(e),this[a]=!0,this.dtype=\"bool\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(a=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new D(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return 1==this[e]}}s.BoolNDArray=D,D.__name__=\"BoolNDArray\";class q extends Uint8Array{constructor(e,t){super(e),this[i]=!0,this.dtype=\"uint8\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(i=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new q(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Uint8NDArray=q,q.__name__=\"Uint8NDArray\";class b extends Int8Array{constructor(e,t){super(e),this[h]=!0,this.dtype=\"int8\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(h=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new b(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Int8NDArray=b,b.__name__=\"Int8NDArray\";class U extends Uint16Array{constructor(e,t){super(e),this[u]=!0,this.dtype=\"uint16\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(u=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new U(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Uint16NDArray=U,U.__name__=\"Uint16NDArray\";class I extends Int16Array{constructor(e,t){super(e),this[o]=!0,this.dtype=\"int16\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(o=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new I(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Int16NDArray=I,I.__name__=\"Int16NDArray\";class x extends Uint32Array{constructor(e,t){super(e),this[l]=!0,this.dtype=\"uint32\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(l=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new x(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Uint32NDArray=x,x.__name__=\"Uint32NDArray\";class z extends Int32Array{constructor(e,t){super(e),this[c]=!0,this.dtype=\"int32\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(c=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new z(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Int32NDArray=z,z.__name__=\"Int32NDArray\";class F extends Float32Array{constructor(e,t){super(e),this[p]=!0,this.dtype=\"float32\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(p=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new F(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Float32NDArray=F,F.__name__=\"Float32NDArray\";class j extends Float64Array{constructor(e,t){super(e),this[y]=!0,this.dtype=\"float64\",this.shape=t??(O(e)?e.shape:[this.length]),this.dimension=this.shape.length}[(y=w,g.equals)](e,t){return t.eq(this.shape,e.shape)&&t.arrays(this,e)}[f.clone](e){return new j(this,e.clone(this.shape))}[m.serialize](e){return N(this,e)}get(e){return this[e]}}s.Float64NDArray=j,j.__name__=\"Float64NDArray\";class B extends Array{get shape(){return this._shape??[this.length]}get dimension(){return this.shape.length}constructor(e,t){const s=e instanceof ArrayBuffer?new Float64Array(e):e;if(super((0,A.isNumber)(s)?s:s.length),this[_]=!0,this.dtype=\"object\",!(0,A.isNumber)(s))for(let e=0;e{switch(!0){case e instanceof Uint8Array:return\"uint8\";case e instanceof Int8Array:return\"int8\";case e instanceof Uint16Array:return\"uint16\";case e instanceof Int16Array:return\"int16\";case e instanceof Uint32Array:return\"uint32\";case e instanceof Int32Array:return\"int32\";case e instanceof Float32Array:return\"float32\";case e instanceof ArrayBuffer:case e instanceof Float64Array:return\"float64\";default:return\"object\"}})()),t){case\"bool\":return new D(e,s);case\"uint8\":return new q(e,s);case\"int8\":return new b(e,s);case\"uint16\":return new U(e,s);case\"int16\":return new I(e,s);case\"uint32\":return new x(e,s);case\"int32\":return new z(e,s);case\"float32\":return new F(e,s);case\"float64\":return new j(e,s);case\"object\":return new B(e,s)}}},\n",
" function _(n,e,t,o,r){o();const i=n(9),c=n(8);function l(n){return(0,c.isObject)(n)&&t.clone in n}t.clone=Symbol(\"clone\"),t.is_Cloneable=l;class s extends Error{}t.CloningError=s,s.__name__=\"CloningError\";class a{constructor(){}clone(n){if(l(n))return n[t.clone](this);if((0,c.isPrimitive)(n))return n;if((0,c.isArray)(n)){const e=n.length,t=new Array(e);for(let o=0;o[this.clone(n),this.clone(e)])));if(n instanceof Set)return new Set([...n].map((n=>this.clone(n))));throw new s(`${Object.prototype.toString.call(n)} is not cloneable`)}}t.Cloner=a,a.__name__=\"Cloner\"},\n",
" function _(r,e,i,a,f){a();const o=r(1);var l=r(33);f(\"Serializer\",l.Serializer),f(\"SerializationError\",l.SerializationError),f(\"serialize\",l.serialize);var t=r(35);f(\"Buffer\",t.Buffer),f(\"Base64Buffer\",t.Base64Buffer),o.__exportStar(r(37),i)},\n",
" function _(e,r,t,n,i){n();const s=e(12),a=e(9),c=e(8),o=e(34),u=e(27),l=e(35);t.serialize=Symbol(\"serialize\");class f extends Error{}t.SerializationError=f,f.__name__=\"SerializationError\";class y{constructor(e){this.value=e}to_json(){return JSON.stringify(this.value)}}y.__name__=\"Serialized\";class d{constructor(e){this._circular=new WeakSet,this.binary=e?.binary??!1,this.include_defaults=e?.include_defaults??!1;const r=e?.references;this._references=null!=r?new Map(r):new Map}get_ref(e){return this._references.get(e)}add_ref(e,r){(0,s.assert)(!this._references.has(e)),this._references.set(e,r)}to_serializable(e){return new y(this.encode(e))}encode(e){const r=this.get_ref(e);if(null!=r)return r;if(!(0,c.isObject)(e))return this._encode(e);this._circular.has(e)&&this.error(\"circular reference\"),this._circular.add(e);try{return this._encode(e)}finally{this._circular.delete(e)}}_encode(e){if(function(e){return(0,c.isObject)(e)&&t.serialize in e}(e))return e[t.serialize](this);if((0,c.isArray)(e)){const r=e.length,t=new Array(r);for(let n=0;n[this.encode(e),this.encode(r)]))]}}if(null===e||(0,c.isBoolean)(e)||(0,c.isString)(e))return e;if((0,c.isNumber)(e))return isNaN(e)?{type:\"number\",value:\"nan\"}:isFinite(e)?e:{type:\"number\",value:(e<0?\"-\":\"+\")+\"inf\"};if(e instanceof Date){return{type:\"date\",iso:e.toISOString()}}if(e instanceof Set)return 0==e.size?{type:\"set\"}:{type:\"set\",entries:[...(0,o.map)(e.values(),(e=>this.encode(e)))]};if(e instanceof Map)return 0==e.size?{type:\"map\"}:{type:\"map\",entries:[...(0,o.map)(e.entries(),(([e,r])=>[this.encode(e),this.encode(r)]))]};if((0,c.isSymbol)(e)&&null!=e.description)return{type:\"symbol\",name:e.description};throw new f(`${Object.prototype.toString.call(e)} is not serializable`)}encode_struct(e){const r={};for(const[t,n]of(0,a.entries)(e))void 0!==n&&(r[t]=this.encode(n));return r}error(e){throw new f(e)}_encode_typed_array(e){const r=this.encode(e.buffer),t=(()=>{switch(e.constructor){case Uint8Array:return\"uint8\";case Int8Array:return\"int8\";case Uint16Array:return\"uint16\";case Int16Array:return\"int16\";case Uint32Array:return\"uint32\";case Int32Array:return\"int32\";case Float32Array:return\"float32\";case Float64Array:return\"float64\";default:this.error(`can't serialize typed array of type '${e[Symbol.toStringTag]}'`)}})();return{type:\"typed_array\",array:r,order:u.BYTE_ORDER,dtype:t}}}t.Serializer=d,d.__name__=\"Serializer\"},\n",
" function _(n,o,t,e,f){e();const i=n(10),r=n(12);var l=n(13);function*c(n){const o=n.length;for(let t=0;t=0);for(const t of n)0==o?yield t:o-=1}function*a(n,o){const t=n.length;if(o>t)return;const e=(0,i.range)(o);for(yield e.map((o=>n[o]));;){let f;for(const n of c((0,i.range)(o)))if(e[n]!=n+t-o){f=n;break}if(null==f)return;e[f]+=1;for(const n of(0,i.range)(f+1,o))e[n]=e[n-1]+1;yield e.map((o=>n[o]))}}f(\"min\",l.min),f(\"max\",l.max),t.range=function*(n,o,t=1){(0,r.assert)(t>0);const{abs:e,ceil:f,max:i}=Math;null==o&&(o=n,n=0);const l=n<=o?t:-t,c=i(f(e(o-n)/t),0);for(let o=0;o=0);let t=0;for(const e of n){if(!(t++String.fromCharCode(t)));return btoa(e.join(\"\"))},e.base64_to_buffer=function(t){const n=atob(t),e=n.length,r=new Uint8Array(e);for(let t=0,o=e;t\"'`])/g,(e=>{switch(e){case\"&\":return\"&\";case\"<\":return\"<\";case\">\":return\">\";case'\"':return\""\";case\"'\":return\"'\";case\"`\":return\"`\";default:return e}}))},r.unescape=function(e){return e.replace(/&(amp|lt|gt|quot|#x27|#x60);/g,((e,t)=>{switch(t){case\"amp\":return\"&\";case\"lt\":return\"<\";case\"gt\":return\">\";case\"quot\":return'\"';case\"#x27\":return\"'\";case\"#x60\":return\"`\";default:return t}}))},r.use_strict=function(e){return`'use strict';\\n${e}`},r.to_fixed=function(e,t){return e.toFixed(t).replace(/(\\.[0-9]*?)0+$/,\"$1\").replace(/\\.$/,\"\")},r.insert_text_on_position=function(e,t,r){const n=[];return n.push(e.slice(0,t)),n.push(r),n.push(e.slice(t)),n.join(\"\")}},\n",
" function _(e,t,s,n,a){n();const i=e(26),r=e(32);class d{constructor(e){this.sync=!0,this.document=e}get[Symbol.toStringTag](){return this.constructor.__name__}[i.equals](e,t){return t.eq(this.document,e.document)}}s.DocumentEvent=d,d.__name__=\"DocumentEvent\";class o extends d{constructor(e,t){super(e),this.events=t}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.events,e.events)}}s.DocumentEventBatch=o,o.__name__=\"DocumentEventBatch\";class l extends d{}s.DocumentChangedEvent=l,l.__name__=\"DocumentChangedEvent\";class h extends l{constructor(e,t,s){super(e),this.kind=\"MessageSent\",this.msg_type=t,this.msg_data=s}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.msg_type,e.msg_type)&&t.eq(this.msg_data,e.msg_data)}[r.serialize](e){return{kind:this.kind,msg_type:this.msg_type,msg_data:e.encode(this.msg_data)}}}s.MessageSentEvent=h,h.__name__=\"MessageSentEvent\";class u extends l{constructor(e,t,s,n){super(e),this.kind=\"ModelChanged\",this.model=t,this.attr=s,this.value=n}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)&&t.eq(this.attr,e.attr)&&t.eq(this.value,e.value)}[r.serialize](e){return{kind:this.kind,model:this.model.ref(),attr:this.attr,new:e.encode(this.value)}}}s.ModelChangedEvent=u,u.__name__=\"ModelChangedEvent\";class m extends l{constructor(e,t,s,n,a){super(e),this.kind=\"ColumnDataChanged\",this.model=t,this.attr=s,this.data=n,this.cols=a}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)&&t.eq(this.attr,e.attr)&&t.eq(this.data,e.data)&&t.eq(this.cols,e.cols)}[r.serialize](e){return{kind:this.kind,model:this.model.ref(),attr:this.attr,data:e.encode(this.data),cols:this.cols}}}s.ColumnDataChangedEvent=m,m.__name__=\"ColumnDataChangedEvent\";class c extends l{constructor(e,t,s,n,a){super(e),this.kind=\"ColumnsStreamed\",this.model=t,this.attr=s,this.data=n,this.rollover=a}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)&&t.eq(this.attr,e.attr)&&t.eq(this.data,e.data)&&t.eq(this.rollover,e.rollover)}[r.serialize](e){return{kind:this.kind,model:this.model.ref(),attr:this.attr,data:e.encode(this.data),rollover:this.rollover}}}s.ColumnsStreamedEvent=c,c.__name__=\"ColumnsStreamedEvent\";class _ extends l{constructor(e,t,s,n){super(e),this.kind=\"ColumnsPatched\",this.model=t,this.attr=s,this.patches=n}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)&&t.eq(this.attr,e.attr)&&t.eq(this.patches,e.patches)}[r.serialize](e){return{kind:this.kind,attr:this.attr,model:this.model.ref(),patches:e.encode(this.patches)}}}s.ColumnsPatchedEvent=_,_.__name__=\"ColumnsPatchedEvent\";class q extends l{constructor(e,t){super(e),this.kind=\"TitleChanged\",this.title=t}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.title,e.title)}[r.serialize](e){return{kind:this.kind,title:this.title}}}s.TitleChangedEvent=q,q.__name__=\"TitleChangedEvent\";class v extends l{constructor(e,t){super(e),this.kind=\"RootAdded\",this.model=t}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)}[r.serialize](e){return{kind:this.kind,model:e.encode(this.model)}}}s.RootAddedEvent=v,v.__name__=\"RootAddedEvent\";class p extends l{constructor(e,t){super(e),this.kind=\"RootRemoved\",this.model=t}[i.equals](e,t){return super[i.equals](e,t)&&t.eq(this.model,e.model)}[r.serialize](e){return{kind:this.kind,model:this.model.ref()}}}s.RootRemovedEvent=p,p.__name__=\"RootRemovedEvent\"},\n",
" function _(t,r,i,e,n){e();const s=t(8),o=t(9);i.pretty=Symbol(\"pretty\");class c{constructor(t){this.visited=new Set,this.precision=t?.precision}to_string(t){if((0,s.isObject)(t)){if(this.visited.has(t))return\"\";this.visited.add(t)}return function(t){return(0,s.isObject)(t)&&i.pretty in t}(t)?t[i.pretty](this):(0,s.isBoolean)(t)?this.boolean(t):(0,s.isNumber)(t)?this.number(t):(0,s.isString)(t)?this.string(t):(0,s.isArray)(t)?this.array(t):(0,s.isIterable)(t)?this.iterable(t):(0,s.isPlainObject)(t)?this.object(t):(0,s.isSymbol)(t)?this.symbol(t):t instanceof ArrayBuffer?this.array_buffer(t):`${t}`}token(t){return t}boolean(t){return`${t}`}number(t){return null!=this.precision?t.toFixed(this.precision):`${t}`}string(t){const r=t.includes(\"'\"),i=t.includes('\"');return r&&i?`\\`${t.replace(/`/g,\"\\\\`\")}\\``:i?`'${t}'`:`\"${t}\"`}symbol(t){return t.toString()}array(t){const r=this.token,i=[];for(const r of t)i.push(this.to_string(r));return`${r(\"[\")}${i.join(`${r(\",\")} `)}${r(\"]\")}`}iterable(t){const r=this.token,i=Object(t)[Symbol.toStringTag]??\"Object\",e=this.array(t);return`${i}${r(\"(\")}${e}${r(\")\")}`}object(t){const r=this.token,i=[];for(const[e,n]of(0,o.entries)(t))i.push(`${e}${r(\":\")} ${this.to_string(n)}`);return`${r(\"{\")}${i.join(`${r(\",\")} `)}${r(\"}\")}`}array_buffer(t){return`ArrayBuffer(#${t.byteLength})`}}i.Printer=c,c.__name__=\"Printer\",i.to_string=function(t,r){return new c(r).to_string(t)}},\n",
" function _(t,r,n,e,o){e();const s=t(1),c=t(8),u=t(9),l=t(44),i=s.__importStar(t(45));function a(t,r,n){if((0,c.isArray)(t)&&(0,c.isArray)(r)){const e=t.concat(r);return null!=n&&e.length>n?e.slice(-n):e}const e=t.length+r.length;if(null!=n&&e>n){const o=e-n,s=t.length,u=(()=>{if(t.length{if((0,c.isTypedArray)(t))return t.constructor;if((0,c.isTypedArray)(r))return r.constructor;throw new Error(\"unsupported array types\")})())(n);return e.set(t,0),e}return t})();for(let t=o,r=s;t{if((0,c.isTypedArray)(t))return t;if((0,c.isTypedArray)(r))return new r.constructor(t);throw new Error(\"unsupported array types\")})();return i.concat(n,r)}}function f(t,r){let n,e,o;return(0,c.isNumber)(t)?(n=t,o=t+1,e=1):(n=null!=t.start?t.start:0,o=null!=t.stop?t.stop:r,e=null!=t.step?t.step:1),[n,o,e]}function p(t,r){const n=new Set;let e=!1;for(const[o,s]of r){let r,u,l,i;if((0,c.isArray)(o)){const[e]=o;n.add(e),r=t[e].shape,u=t[e],i=s,2===o.length?(r=[1,r[0]],l=[o[0],0,o[1]]):l=o}else(0,c.isNumber)(o)?(i=[s],n.add(o)):(i=s,e=!0),l=[0,0,o],r=[1,t.length],u=t;let a=0;const[p,d,y]=f(l[1],r[0]),[h,_,g]=f(l[2],r[1]);for(let t=p;t{try{return this._decode(e)}finally{t=new Set(this._finalizable),this._decoding=!1,this._buffers.clear(),this._finalizable.clear()}})();for(const e of t)this.finalize?.(e),e.finalize(),e.assert_initialized();for(const e of t)e.connect_signals();return s}_decode(e){if((0,l.isArray)(e))return this._decode_plain_array(e);if(!(0,l.isPlainObject)(e))return e;if(!(0,l.isString)(e.type))return(0,l.isString)(e.id)?this._decode_ref(e):this._decode_plain_object(e);{const r=h.get(e.type);if(null!=r)return r(e,this);switch(e.type){case\"ref\":return this._decode_ref(e);case\"symbol\":return this._decode_symbol(e);case\"number\":return this._decode_number(e);case\"array\":return this._decode_array(e);case\"set\":return this._decode_set(e);case\"map\":return this._decode_map(e);case\"bytes\":return this._decode_bytes(e);case\"slice\":return this._decode_slice(e);case\"date\":return this._decode_date(e);case\"value\":return this._decode_value(e);case\"field\":return this._decode_field(e);case\"expr\":return this._decode_expr(e);case\"typed_array\":return this._decode_typed_array(e);case\"ndarray\":return this._decode_ndarray(e);case\"object\":return(0,l.isString)(e.id)?this._decode_object_ref(e):this._decode_object(e);default:this.error(`unable to decode an object of type '${e.type}'`)}}}_decode_symbol(e){this.error(`can't resolve named symbol '${e.name}'`)}_decode_number(e){if(\"value\"in e){const{value:r}=e;if((0,l.isString)(r))switch(r){case\"nan\":return NaN;case\"+inf\":return 1/0;case\"-inf\":return-1/0}else if((0,l.isNumber)(r))return r}this.error(`invalid number representation '${e}'`)}_decode_plain_array(e){return(0,c.map)(e,(e=>this._decode(e)))}_decode_plain_object(e){const r={};for(const[t,s]of(0,a.entries)(e))r[t]=this._decode(s);return r}_decode_array(e){const r=[];for(const t of e.entries??[])r.push(this._decode(t));return r}_decode_set(e){const r=new Set;for(const t of e.entries??[])r.add(this._decode(t));return r}_decode_map(e){const r=(0,c.map)(e.entries??[],(([e,r])=>[this._decode(e),this._decode(r)]));return r.every((([e,r])=>(0,l.isString)(e)))?Object.fromEntries(r):new Map(r)}_decode_bytes(e){const{data:r}=e;if(!(0,d.is_ref)(r))return(0,l.isString)(r)?(0,u.base64_to_buffer)(r):r.buffer;{const e=this._buffers.get(r.id);if(null!=e)return e;this.error(`buffer for id=${r.id} not found`)}}_decode_slice(e){const r=this._decode(e.start),t=this._decode(e.stop),s=this._decode(e.step);return new f.Slice({start:r,stop:t,step:s})}_decode_date(e){const r=this._decode(e.iso);return new Date(r)}_decode_value(e){return{value:this._decode(e.value),transform:null!=e.transform?this._decode(e.transform):void 0,units:null!=e.units?this._decode(e.units):void 0}}_decode_field(e){return{field:this._decode(e.field),transform:null!=e.transform?this._decode(e.transform):void 0,units:null!=e.units?this._decode(e.units):void 0}}_decode_expr(e){return{expr:this._decode(e.expr),transform:null!=e.transform?this._decode(e.transform):void 0,units:null!=e.units?this._decode(e.units):void 0}}_decode_typed_array(e){const{array:r,order:t,dtype:s}=e,n=this._decode(r);switch(t!=_.BYTE_ORDER&&(0,u.swap)(n,s),s){case\"uint8\":return new Uint8Array(n);case\"int8\":return new Int8Array(n);case\"uint16\":return new Uint16Array(n);case\"int16\":return new Int16Array(n);case\"uint32\":return new Uint32Array(n);case\"int32\":return new Int32Array(n);case\"float32\":return new Float32Array(n);case\"float64\":return new Float64Array(n);default:this.error(`unsupported dtype '${s}'`)}}_decode_ndarray(e){const{array:r,order:t,dtype:s,shape:n}=e,i=this._decode(r);return i instanceof ArrayBuffer&&t!=_.BYTE_ORDER&&(0,u.swap)(i,s),(0,o.ndarray)(i,{dtype:s,shape:n})}_decode_object(e){const{type:r,attributes:t}=e,s=this._resolve_type(r);return null!=t?new s(this._decode(t)):new s}_decode_ref(e){const r=this.references.get(e.id);if(null!=r)return r;this.error(`reference ${e.id} isn't known`)}_decode_object_ref(e){const{id:r,name:t,attributes:s}=e,n=this.references.get(r);if(null==n){const e=new(this._resolve_type(t))({id:r});this.references.set(r,e);const n=this._decode(s??{});return e.initialize_props(n),this._finalizable.add(e),e}if(n.type==t){const e=this._decode(s??{});return n.setv(e,{sync:!1}),n}this.error(`type mismatch for an existing reference '${n}', expected '${t}'`)}error(e){throw new y(e)}warning(e){i.logger.warn(e)}_resolve_type(e){const r=this.resolver.get(e);if(null!=r)return r;this.error(`could not resolve type '${e}', which could be due to a widget or a custom model not being registered before first usage`)}}t.Deserializer=p,p.__name__=\"Deserializer\"},\n",
" function _(t,s,e,i,n){i();const c=t(32);class l{constructor({start:t,stop:s,step:e}={}){this.start=t??null,this.stop=s??null,this.step=e??null}[c.serialize](t){return{type:\"slice\",start:t.encode(this.start),stop:t.encode(this.stop),step:t.encode(this.step)}}}e.Slice=l,l.__name__=\"Slice\"},\n",
" function _(e,r,s,t,i){t();const a=e(26),n=/^(?\\d+)\\.(?\\d+)\\.(?\\d+)(?:(?-dev\\.|-rc\\.|.dev|rc)(?\\d+))?(?:\\+(?\\d+)\\..+)?$/;var o;(o=s.ReleaseType||(s.ReleaseType={}))[o.Dev=0]=\"Dev\",o[o.Candidate=1]=\"Candidate\",o[o.Release=2]=\"Release\";class c{constructor(e,r,t,i=s.ReleaseType.Release,a=0,n=0){this.major=e,this.minor=r,this.patch=t,this.type=i,this.revision=a,this.build=n}static from(e){return function(e){const r=n.exec(e);if(null==r||null==r.groups)return null;const{groups:t}=r,i=Number(t.major),a=Number(t.minor),o=Number(t.patch),l=(()=>{switch(t.type){case\"-dev.\":case\".dev\":return s.ReleaseType.Dev;case\"-rc.\":case\"rc\":return s.ReleaseType.Candidate;default:return s.ReleaseType.Release}})(),u=void 0===t.revision?0:Number(t.revision),d=void 0===t.build?0:Number(t.build);return new c(i,a,o,l,u,d)}(e)}toString(){const{major:e,minor:r,patch:t,type:i,revision:a,build:n}=this;let o=`${e}.${r}.${t}`;switch(i){case s.ReleaseType.Dev:o+=`-dev.${a}`;case s.ReleaseType.Candidate:o+=`-rc.${a}`;case s.ReleaseType.Release:}return 0!=n&&(o+=`+${n}`),o}[a.equals](e){const{major:r,minor:s,patch:t,type:i,revision:a}=this;return r==e.major&&s==e.minor&&t==e.patch&&i==e.type&&a==e.revision}}s.Version=c,c.__name__=\"Version\"},\n",
" function _(n,e,t,c,u){c();const i=n(8);t.execute=function(n,e,...t){return(0,i.isFunction)(n)?n(e,...t):n.execute(e,...t)}},\n",
" function _(e,t,s,n,c){var i;n();const r=e(14),a=e(8),l=e(9),o=e(26),_=e(19),h=e(50);class u extends r.HasProps{get is_syncable(){return this.syncable}[o.equals](e,t){return(!!t.structural||t.eq(this.id,e.id))&&super[o.equals](e,t)}constructor(e){super(e)}initialize(){super.initialize(),this._js_callbacks=new Map}connect_signals(){super.connect_signals(),this._update_property_callbacks(),this.connect(this.properties.js_property_callbacks.change,(()=>this._update_property_callbacks())),this.connect(this.properties.js_event_callbacks.change,(()=>this._update_event_callbacks())),this.connect(this.properties.subscribed_events.change,(()=>this._update_event_callbacks()))}_process_event(e){for(const t of(0,l.dict)(this.js_event_callbacks).get(e.event_name)??[])(0,h.execute)(t,e);null!=this.document&&this.subscribed_events.has(e.event_name)&&this.document.event_manager.send_event(e)}trigger_event(e){null!=this.document&&(e.origin=this,this.document.event_manager.trigger(e))}_update_event_callbacks(){null!=this.document?this.document.event_manager.subscribed_models.add(this):_.logger.warn(\"WARNING: Document not defined for updating event callbacks\")}_update_property_callbacks(){const e=e=>{const[t,s=null]=e.split(\":\");return null!=s?this.properties[s][t]:this[t]};for(const[t,s]of this._js_callbacks){const n=e(t);for(const e of s)this.disconnect(n,e)}this._js_callbacks.clear();for(const[t,s]of(0,l.dict)(this.js_property_callbacks)){const n=s.map((e=>()=>(0,h.execute)(e,this)));this._js_callbacks.set(t,n);const c=e(t);for(const e of n)this.connect(c,e)}}_doc_attached(){0==this.js_event_callbacks.size&&0==this.subscribed_events.size||this._update_event_callbacks()}_doc_detached(){this.document.event_manager.subscribed_models.delete(this)}select(e){if((0,a.isString)(e))return[...this.references()].filter((t=>t instanceof i&&t.name===e));if((0,a.isPlainObject)(e)&&\"type\"in e)return[...this.references()].filter((t=>t.type==e.type));if(e.prototype instanceof r.HasProps)return[...this.references()].filter((t=>t instanceof e));throw new Error(`invalid selector ${e}`)}select_one(e){const t=this.select(e);switch(t.length){case 0:return null;case 1:return t[0];default:throw new Error(`found multiple objects matching the given selector ${e}`)}}get_one(e){const t=this.select_one(e);if(null!=t)return t;throw new Error(`could not find any objects matching the given selector ${e}`)}on_event(e,t){const s=(0,a.isString)(e)?e:e.prototype.event_name,n=(0,l.dict)(this.js_event_callbacks),c=n.get(s)??[];n.set(s,[...c,t])}}s.Model=u,i=u,u.__name__=\"Model\",i.define((({Any:e,Unknown:t,Bool:s,Str:n,List:c,Set:i,Dict:r,Nullable:a})=>({tags:[c(t),[]],name:[a(n),null],js_property_callbacks:[r(c(e)),{}],js_event_callbacks:[r(c(e)),{}],subscribed_events:[i(n),new globalThis.Set],syncable:[s,!0]})))},\n",
" function _(e,n,r,t,o){t();const s=e(1),c=e(51),u=s.__importStar(e(21)),a=e(8),i=e(9);r.decode_def=function(e,n){var r;function t(e){if((0,a.isString)(e))switch(e){case\"Any\":return u.Any;case\"Unknown\":return u.Unknown;case\"Bool\":return u.Bool;case\"Float\":return u.Float;case\"Int\":return u.Int;case\"Bytes\":return u.Bytes;case\"Str\":return u.Str;case\"Null\":return u.Null}else switch(e[0]){case\"Regex\":{const[,n,r]=e;return u.Regex(new RegExp(n,r))}case\"Nullable\":{const[,n]=e;return u.Nullable(t(n))}case\"Or\":{const[,n,...r]=e;return u.Or(t(n),...r.map(t))}case\"Tuple\":{const[,n,...r]=e;return u.Tuple(t(n),...r.map(t))}case\"List\":{const[,n]=e;return u.List(t(n))}case\"Struct\":{const[,...n]=e,r=n.map((([e,n])=>[e,t(n)]));return u.Struct((0,i.to_object)(r))}case\"Dict\":{const[,n]=e;return u.Dict(t(n))}case\"Mapping\":{const[,n,r]=e;return u.Mapping(t(n),t(r))}case\"Enum\":{const[,...n]=e;return u.Enum(...n)}case\"Ref\":{const[,r]=e,t=n.resolver.get(r.id);if(null!=t)return u.Ref(t);throw new Error(`${r.id} wasn't defined before referencing it`)}case\"AnyRef\":return u.AnyRef()}}const o=(()=>{const r=e.extends?.id??\"Model\";if(\"Model\"==r)return c.Model;const t=n.resolver.get(r);if(null!=t)return t;throw new Error(`base model ${r} of ${e.name} is not defined`)})(),l=(r=class extends o{},s.__setFunctionName(r,\"model\"),r.__qualified__=e.name,r);function d(e){return void 0===e?e:n.decode(e)}for(const n of e.properties??[]){const e=t(n.kind);l.define({[n.name]:[e,d(n.default)]})}for(const n of e.overrides??[])l.override({[n.name]:d(n.default)});return n.resolver.register(l),l}},\n",
" function _(e,t,s,n,a){var _,l,o,r,u,c,i,v,d,m,p,h,x,y,P,E,g,R,M,f,S,D,b,L,k,C,O,U;n();var T=this&&this.__decorate||function(e,t,s,n){var a,_=arguments.length,l=_<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,s):n;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)l=Reflect.decorate(e,t,s,n);else for(var o=e.length-1;o>=0;o--)(a=e[o])&&(l=(_<3?a(l):_>3?a(t,s,l):a(t,s))||l);return _>3&&l&&Object.defineProperty(t,s,l),l};const B=e(32),I=e(26);function j(e){return t=>{t.prototype.event_name=e}}class w{[B.serialize](e){const{event_name:t,event_values:s}=this;return{type:\"event\",name:t,values:e.encode(s)}}[I.equals](e,t){return this.event_name==e.event_name&&t.eq(this.event_values,e.event_values)}}s.BokehEvent=w,_=w,w.__name__=\"BokehEvent\",_.prototype.publish=!0;class G extends w{constructor(){super(...arguments),this.origin=null}get event_values(){return{model:this.origin}}}s.ModelEvent=G,G.__name__=\"ModelEvent\";class V extends w{}s.DocumentEvent=V,V.__name__=\"DocumentEvent\";let W=((l=class extends V{get event_values(){return{}}}).__name__=\"DocumentReady\",l);s.DocumentReady=W,s.DocumentReady=W=T([j(\"document_ready\")],W);class q extends V{}s.ConnectionEvent=q,q.__name__=\"ConnectionEvent\";class z extends q{constructor(){super(...arguments),this.timestamp=new Date}get event_values(){const{timestamp:e}=this;return{timestamp:e}}}s.ConnectionLost=z,o=z,z.__name__=\"ConnectionLost\",o.prototype.event_name=\"connection_lost\",o.prototype.publish=!1;let A=((r=class extends G{}).__name__=\"ButtonClick\",r);s.ButtonClick=A,s.ButtonClick=A=T([j(\"button_click\")],A);let F=((u=class extends G{constructor(e){super(),this.item=e}get event_values(){const{item:e}=this;return{...super.event_values,item:e}}}).__name__=\"MenuItemClick\",u);s.MenuItemClick=F,s.MenuItemClick=F=T([j(\"menu_item_click\")],F);let H=((c=class extends G{constructor(e){super(),this.value=e}get event_values(){const{value:e}=this;return{...super.event_values,value:e}}}).__name__=\"ValueSubmit\",c);s.ValueSubmit=H,s.ValueSubmit=H=T([j(\"value_submit\")],H);class J extends G{}s.UIEvent=J,J.__name__=\"UIEvent\";let K=((i=class extends J{}).__name__=\"LODStart\",i);s.LODStart=K,s.LODStart=K=T([j(\"lodstart\")],K);let N=((v=class extends J{}).__name__=\"LODEnd\",v);s.LODEnd=N,s.LODEnd=N=T([j(\"lodend\")],N);let Q=((d=class extends J{constructor(e,t,s,n){super(),this.x0=e,this.x1=t,this.y0=s,this.y1=n}get event_values(){const{x0:e,x1:t,y0:s,y1:n}=this;return{...super.event_values,x0:e,x1:t,y0:s,y1:n}}}).__name__=\"RangesUpdate\",d);s.RangesUpdate=Q,s.RangesUpdate=Q=T([j(\"rangesupdate\")],Q);let X=((m=class extends J{constructor(e,t){super(),this.geometry=e,this.final=t}get event_values(){const{geometry:e,final:t}=this;return{...super.event_values,geometry:e,final:t}}}).__name__=\"SelectionGeometry\",m);s.SelectionGeometry=X,s.SelectionGeometry=X=T([j(\"selectiongeometry\")],X);let Y=((p=class extends J{}).__name__=\"Reset\",p);s.Reset=Y,s.Reset=Y=T([j(\"reset\")],Y);class Z extends J{constructor(e,t,s,n,a){super(),this.sx=e,this.sy=t,this.x=s,this.y=n,this.modifiers=a}get event_values(){const{sx:e,sy:t,x:s,y:n,modifiers:a}=this;return{...super.event_values,sx:e,sy:t,x:s,y:n,modifiers:a}}}s.PointEvent=Z,Z.__name__=\"PointEvent\";let $=((h=class extends Z{constructor(e,t,s,n,a,_,l){super(e,t,s,n,l),this.delta_x=a,this.delta_y=_}get event_values(){const{delta_x:e,delta_y:t}=this;return{...super.event_values,delta_x:e,delta_y:t}}}).__name__=\"Pan\",h);s.Pan=$,s.Pan=$=T([j(\"pan\")],$);let ee=((x=class extends Z{constructor(e,t,s,n,a,_){super(e,t,s,n,_),this.scale=a}get event_values(){const{scale:e}=this;return{...super.event_values,scale:e}}}).__name__=\"Pinch\",x);s.Pinch=ee,s.Pinch=ee=T([j(\"pinch\")],ee);let te=((y=class extends Z{constructor(e,t,s,n,a,_){super(e,t,s,n,_),this.rotation=a}get event_values(){const{rotation:e}=this;return{...super.event_values,rotation:e}}}).__name__=\"Rotate\",y);s.Rotate=te,s.Rotate=te=T([j(\"rotate\")],te);let se=((P=class extends Z{constructor(e,t,s,n,a,_){super(e,t,s,n,_),this.delta=a}get event_values(){const{delta:e}=this;return{...super.event_values,delta:e}}}).__name__=\"MouseWheel\",P);s.MouseWheel=se,s.MouseWheel=se=T([j(\"wheel\")],se);let ne=((E=class extends Z{}).__name__=\"MouseMove\",E);s.MouseMove=ne,s.MouseMove=ne=T([j(\"mousemove\")],ne);let ae=((g=class extends Z{}).__name__=\"MouseEnter\",g);s.MouseEnter=ae,s.MouseEnter=ae=T([j(\"mouseenter\")],ae);let _e=((R=class extends Z{}).__name__=\"MouseLeave\",R);s.MouseLeave=_e,s.MouseLeave=_e=T([j(\"mouseleave\")],_e);let le=((M=class extends Z{}).__name__=\"Tap\",M);s.Tap=le,s.Tap=le=T([j(\"tap\")],le);let oe=((f=class extends Z{}).__name__=\"DoubleTap\",f);s.DoubleTap=oe,s.DoubleTap=oe=T([j(\"doubletap\")],oe);let re=((S=class extends Z{}).__name__=\"Press\",S);s.Press=re,s.Press=re=T([j(\"press\")],re);let ue=((D=class extends Z{}).__name__=\"PressUp\",D);s.PressUp=ue,s.PressUp=ue=T([j(\"pressup\")],ue);let ce=((b=class extends Z{}).__name__=\"PanStart\",b);s.PanStart=ce,s.PanStart=ce=T([j(\"panstart\")],ce);let ie=((L=class extends Z{}).__name__=\"PanEnd\",L);s.PanEnd=ie,s.PanEnd=ie=T([j(\"panend\")],ie);let ve=((k=class extends Z{}).__name__=\"PinchStart\",k);s.PinchStart=ve,s.PinchStart=ve=T([j(\"pinchstart\")],ve);let de=((C=class extends Z{}).__name__=\"PinchEnd\",C);s.PinchEnd=de,s.PinchEnd=de=T([j(\"pinchend\")],de);let me=((O=class extends Z{}).__name__=\"RotateStart\",O);s.RotateStart=me,s.RotateStart=me=T([j(\"rotatestart\")],me);let pe=((U=class extends Z{}).__name__=\"RotateEnd\",U);s.RotateEnd=pe,s.RotateEnd=pe=T([j(\"rotateend\")],pe)},\n",
" function _(e,n,t,i,o){i();const r=e(5),a=e(55),s=e(57),c=e(8),d=e(12);t.index=new Proxy(new a.ViewManager,{get(e,n){if((0,c.isString)(n)){const t=e.get_by_id(n);if(null!=t)return t}return Reflect.get(e,n)},has(e,n){if((0,c.isString)(n)){if(null!=e.get_by_id(n))return!0}return Reflect.has(e,n)},ownKeys:e=>e.roots.map((e=>e.model.id)),getOwnPropertyDescriptor(e,n){if((0,c.isString)(n)){const t=e.get_by_id(n);if(null!=t)return{configurable:!0,enumerable:!0,writable:!1,value:t}}return Reflect.getOwnPropertyDescriptor(e,n)}}),t.add_document_standalone=async function(e,n,i=[],o=!1){(0,d.assert)(null==e.views_manager);const c=new a.ViewManager([],t.index);async function l(o){null!=o.default_view?await async function(o){const r=await c.build_view(o);if(r instanceof s.DOMView){const t=e.roots().indexOf(o),a=i[t]??n;r.render_to(a)}t.index.add(r)}(o):e.notify_idle(o)}e.views_manager=c;for(const n of e.roots())await l(n);return o&&(window.document.title=e.title()),e.on_change((e=>{e instanceof r.RootAddedEvent?l(e.model):e instanceof r.RootRemovedEvent?function(e){const n=c.get(e);n?.remove()}(e.model):o&&e instanceof r.TitleChangedEvent&&(window.document.title=e.title)})),c}},\n",
" function _(t,e,n,o,i){o();const r=t(56);class s{constructor(t=[],e){this.global=e,this._roots=new Set(t)}toString(){return`ViewManager(${[...this._roots].map((t=>`${t}`)).join(\", \")})`}async build_view(t,e=null){const n=await(0,r.build_view)(t,{owner:this,parent:e});return null==e&&this.add(n),n}get(t){for(const e of this._roots)if(e.model==t)return e;return null}get_by_id(t){for(const e of this._roots)if(e.model.id==t)return e;return null}add(t){this._roots.add(t),this.global?.add(t)}delete(t){this._roots.delete(t),this.global?.delete(t)}remove(t){this.delete(t)}clear(){for(const t of this)t.remove()}get roots(){return[...this._roots]}*[Symbol.iterator](){yield*this._roots}*views(){yield*this.query((()=>!0))}*query(t){const e=new Set;function*n(o){if(!e.has(o)){e.add(o),t(o)&&(yield o);for(const t of o.children())yield*n(t)}}for(const t of this._roots)yield*n(t)}query_one(t){for(const e of this.query(t))return e;return null}*find(t){yield*this.query((e=>e.model==t))}*find_by_id(t){yield*this.query((e=>e.model.id==t))}find_one(t){for(const e of this.find(t))return e;return null}find_one_by_id(t){for(const e of this.find_by_id(t))return e;return null}get_one(t){const e=this.find_one(t);if(null!=e)return e;throw new Error(`cannot find a view for ${t}`)}get_one_by_id(t){const e=this.find_one_by_id(t);if(null!=e)return e;throw new Error(`cannot find a view for a model with '${t}' identity`)}find_all(t){return[...this.find(t)]}find_all_by_id(t){return[...this.find_by_id(t)]}}n.ViewManager=s,s.__name__=\"ViewManager\"},\n",
" function _(e,n,t,o,i){o();const s=e(10),c=e(12);async function l(e,n,t){(0,c.assert)(null!=e,\"model doesn't implement a view\");const o=new e({...t,model:n});return o.initialize(),await o.lazy_initialize(),o}t.build_view=async function(e,n={parent:null},t=(e=>e.default_view)){const o=await l(t(e),e,n);return o.connect_signals(),o},t.build_views=async function(e,n,t={parent:null},o=(e=>e.default_view)){const i=(0,s.difference)([...e.keys()],n),c=[];for(const n of i){const t=e.get(n);null!=t&&(e.delete(n),c.push(t),t.remove())}const a=[],r=n.filter((n=>!e.has(n)));for(const n of r){const i=await l(o(n),n,t);e.set(n,i),a.push(i)}for(const e of a)e.connect_signals();return{created:a,removed:c}},t.remove_views=function(e){for(const[n,t]of e)t.remove(),e.delete(n)}},\n",
" function _(s,e,t,i,l){i();const _=s(1),a=s(58),h=s(63),c=s(8),n=_.__importDefault(s(66));class r extends a.View{get children_el(){return this.shadow_el??this.el}initialize(){super.initialize(),this.el=this._createElement()}remove(){(0,h.remove)(this.el),super.remove()}stylesheets(){return[]}css_classes(){return[]}render_to(s){this.render(),s?.appendChild(this.el),this.after_render()}after_render(){this.reposition()}finish(){this._has_finished=!0,this.notify_finished()}_createElement(){return(0,h.createElement)(this.constructor.tag_name,{class:this.css_classes()})}reposition(s){}}t.DOMView=r,r.__name__=\"DOMView\",r.tag_name=\"div\";class p extends r{initialize(){super.initialize(),this.class_list=new h.ClassList(this.el.classList)}}t.DOMElementView=p,p.__name__=\"DOMElementView\";class d extends p{constructor(){super(...arguments),this._applied_stylesheets=[],this._applied_css_classes=[]}initialize(){super.initialize(),this.shadow_el=this.el.attachShadow({mode:\"open\"})}stylesheets(){return[...super.stylesheets(),n.default]}empty(){(0,h.empty)(this.shadow_el),this.class_list.clear(),this._applied_css_classes=[],this._applied_stylesheets=[]}render(){this.empty(),this._update_stylesheets(),this._update_css_classes(),this._update_css_variables()}reposition(s){this._update_css_variables()}*_stylesheets(){for(const s of this.stylesheets())yield(0,c.isString)(s)?new h.InlineStyleSheet(s):s}*_css_classes(){yield`bk-${this.model.type.replace(/\\./g,\"-\")}`,yield*this.css_classes()}*_css_variables(){}_apply_stylesheets(s){this._applied_stylesheets.push(...s),s.forEach((s=>s.install(this.shadow_el)))}_apply_css_classes(s){this._applied_css_classes.push(...s),this.class_list.add(...s)}_update_stylesheets(){this._applied_stylesheets.forEach((s=>s.uninstall())),this._applied_stylesheets=[],this._apply_stylesheets([...this._stylesheets()])}_update_css_classes(){this.class_list.remove(this._applied_css_classes),this._applied_css_classes=[],this._apply_css_classes([...this._css_classes()])}_update_css_variables(){for(const[s,e]of this._css_variables()){const t=s.startsWith(\"--\")?s:`--${s}`;this.el.style.setProperty(t,e)}}}t.DOMComponentView=d,d.__name__=\"DOMComponentView\"},\n",
" function _(e,t,s,n,r){n();const i=e(14),o=e(15),l=e(8),h=e(59),a=e(61),_=e(62),c=e(55);class d{get ready(){return this._ready}*children(){}mark_finished(){this._has_finished=!0}connect(e,t){let s=this._slots.get(t);return null==s&&(s=(e,s)=>{const n=Promise.resolve(t.call(this,e,s));this._ready=this._ready.then((()=>n)),this.root!=this&&(this.root._ready=this.root._ready.then((()=>this._ready)))},this._slots.set(t,s)),e.connect(s,this)}disconnect(e,t){return e.disconnect(t,this)}constructor(e){this.removed=new o.Signal0(this,\"removed\"),this._ready=Promise.resolve(void 0),this._slots=new WeakMap,this._destroyed=!1,this._idle_notified=!1;const{model:t,parent:s,owner:n}=e;this.model=t,this.parent=s,null==s?(this.root=this,this.owner=n??new c.ViewManager([this])):(this.root=s.root,this.owner=this.root.owner)}initialize(){this._has_finished=!1}async lazy_initialize(){}remove(){this.disconnect_signals(),this.owner.remove(this),this.removed.emit(),this._destroyed=!0}get is_destroyed(){return this._destroyed}toString(){return`${this.model.type}View(${this.model.id})`}serializable_state(){return{type:this.model.type}}get is_root(){return null==this.parent}has_finished(){return this._has_finished}get is_idle(){return this.has_finished()}connect_signals(){}disconnect_signals(){o.Signal.disconnect_receiver(this)}on_change(e,t){for(const s of(0,l.isArray)(e)?e:[e])this.connect(s.change,t)}on_transitive_change(e,t){const s=()=>{const t=e.is_unset?[]:e.get_value();return i.HasProps.references(t,{recursive:!1})},n=e=>{for(const s of e)this.connect(s.change,t)},r=e=>{for(const s of e)this.disconnect(s.change,t)};let o=s();n(o),this.on_change(e,(()=>{r(o),o=s(),n(o),t()}))}cursor(e,t){return null}notify_finished(){this.is_root?!this._idle_notified&&this.has_finished()&&null!=this.model.document&&(this._idle_notified=!0,this.model.document.notify_idle(this.model)):this.root.notify_finished()}resolve_frame(){return null}resolve_canvas(){return null}resolve_plot(){return null}resolve_target(e){if(!(0,l.isString)(e)){const t=[this.root];for(;;){const s=t.shift();if(null==s)break;if(s.model==e)return s;t.push(...s.children())}return null}{const t=e=>{let t=this;for(;null!=t;){const s=e(t);if(null!=s)return s;t=t.parent}return null};switch(e){case\"parent\":return this.parent;case\"frame\":return t((e=>e.resolve_frame()));case\"canvas\":return t((e=>e.resolve_canvas()));case\"plot\":return t((e=>e.resolve_plot()))}}}resolve_symbol(e){return{x:NaN,y:NaN}}resolve_node(e){const t=this.resolve_target(e.target);return null!=t?t.resolve_symbol(e):{x:NaN,y:NaN}}resolve_coordinate(e){if(e instanceof a.XY){let t=this;for(;null!=t&&null==t.resolve_xy;)t=t.parent;return t?.resolve_xy?.(e)??{x:NaN,y:NaN}}if(e instanceof _.Indexed){let t=this;for(;null!=t&&null==t.resolve_indexed;)t=t.parent;return t?.resolve_indexed?.(e)??{x:NaN,y:NaN}}return e instanceof h.Node?this.resolve_node(e):{x:NaN,y:NaN}}resolve_as_xy(e){const t=this.resolve_coordinate(e);return(0,l.isNumber)(t)?{x:NaN,y:NaN}:t}resolve_as_scalar(e,t){const s=this.resolve_coordinate(e);return(0,l.isNumber)(s)?s:s[t]}}s.View=d,d.__name__=\"View\"},\n",
" function _(t,e,r,n,o){var s;n();const a=t(60),i=t(51),_=t(21);r.ImplicitTarget=(0,_.Enum)(\"canvas\",\"plot\",\"frame\",\"parent\"),r.NodeTarget=(0,_.Or)((0,_.Ref)(i.Model),r.ImplicitTarget);class h{constructor(t,e=!1){this._left=null,this._right=null,this._top=null,this._bottom=null,this.target=t,this.frozen=e}_node(t){const{target:e,frozen:r}=this,n=new l({target:e,symbol:t});return r&&(this[`_${t}`]=n),n}get left(){return this._left??this._node(\"left\")}get right(){return this._right??this._node(\"right\")}get top(){return this._top??this._node(\"top\")}get bottom(){return this._bottom??this._node(\"bottom\")}freeze(){return new h(this.target,!0)}}r.BoxNodes=h,h.__name__=\"BoxNodes\";class l extends a.Coordinate{constructor(t){super(t)}static get frame(){return this._frame_nodes}static get canvas(){return this._canvas_nodes}}r.Node=l,s=l,l.__name__=\"Node\",s.define((({Str:t,Int:e})=>({target:[r.NodeTarget],symbol:[t],offset:[e,0]}))),l._frame_nodes=new h(\"frame\"),l._canvas_nodes=new h(\"canvas\")},\n",
" function _(o,n,e,t,s){t();const c=o(51);class r extends c.Model{constructor(o){super(o)}}e.Coordinate=r,r.__name__=\"Coordinate\"},\n",
" function _(n,e,o,t,s){var a;t();const c=n(60);class r extends c.Coordinate{constructor(n){super(n)}}o.XY=r,a=r,r.__name__=\"XY\",a.define((({Float:n})=>({x:[n],y:[n]})))},\n",
" function _(e,n,d,r,t){var o;r();const s=e(60);class c extends s.Coordinate{constructor(e){super(e)}}d.Indexed=c,o=c,c.__name__=\"Indexed\",o.define((({Int:e,AnyRef:n})=>({index:[e],renderer:[n()]})))},\n",
" function _(t,e,n,i,o){i(),n.supports_adopted_stylesheets=n.px=n.dom_ready=n.GlobalImportedStyleSheet=void 0;const s=t(8),l=t(9),r=t(64),c=t(65),a=t=>(e={},...n)=>{const i=document.createElement(t);(0,s.isPlainObject)(e)||(n=[e,...n],e={});for(let[t,n]of(0,l.entries)(e))if(null!=n&&(!(0,s.isBoolean)(n)||n))if(\"class\"===t&&((0,s.isString)(n)&&(n=n.split(/\\s+/)),(0,s.isArray)(n)))for(const t of n)null!=t&&i.classList.add(t);else if(\"style\"===t&&(0,s.isPlainObject)(n))for(const[t,e]of(0,l.entries)(n))i.style[t]=e;else if(\"data\"===t&&(0,s.isPlainObject)(n))for(const[t,e]of(0,l.entries)(n))i.dataset[t]=e;else i.setAttribute(t,n);function o(t){if((0,s.isString)(t))i.appendChild(document.createTextNode(t));else if(t instanceof Node)i.appendChild(t);else if(t instanceof NodeList||t instanceof HTMLCollection)for(const e of t)i.appendChild(e);else if(null!=t&&!1!==t)throw new Error(`expected a DOM element, string, false or null, got ${JSON.stringify(t)}`)}for(const t of n)if((0,s.isArray)(t))for(const e of t)o(e);else o(t);return i};function d(t){return document.createTextNode(t)}function h(t){const e=t.parentNode;null!=e&&e.removeChild(t)}function u(t){const e=parseFloat(t);return isFinite(e)?e:0}function f(t){const e=getComputedStyle(t);return{border:{top:u(e.borderTopWidth),bottom:u(e.borderBottomWidth),left:u(e.borderLeftWidth),right:u(e.borderRightWidth)},margin:{top:u(e.marginTop),bottom:u(e.marginBottom),left:u(e.marginLeft),right:u(e.marginRight)},padding:{top:u(e.paddingTop),bottom:u(e.paddingBottom),left:u(e.paddingLeft),right:u(e.paddingRight)}}}function p(t){const e=t.getBoundingClientRect();return{width:Math.ceil(e.width),height:Math.ceil(e.height)}}n.createElement=function(t,e,...n){return a(t)(e,...n)},n.div=a(\"div\"),n.span=a(\"span\"),n.canvas=a(\"canvas\"),n.link=a(\"link\"),n.style=a(\"style\"),n.a=a(\"a\"),n.p=a(\"p\"),n.i=a(\"i\"),n.pre=a(\"pre\"),n.button=a(\"button\"),n.label=a(\"label\"),n.legend=a(\"legend\"),n.fieldset=a(\"fieldset\"),n.input=a(\"input\"),n.select=a(\"select\"),n.option=a(\"option\"),n.optgroup=a(\"optgroup\"),n.textarea=a(\"textarea\"),n.createSVGElement=function(t,e=null,...n){const i=document.createElementNS(\"http://www.w3.org/2000/svg\",t);for(const[t,n]of(0,l.entries)(e??{}))null!=n&&!1!==n&&i.setAttribute(t,n);function o(t){if((0,s.isString)(t))i.appendChild(document.createTextNode(t));else if(t instanceof Node)i.appendChild(t);else if(t instanceof NodeList||t instanceof HTMLCollection)for(const e of t)i.appendChild(e);else if(null!=t&&!1!==t)throw new Error(`expected a DOM element, string, false or null, got ${JSON.stringify(t)}`)}for(const t of n)if((0,s.isArray)(t))for(const e of t)o(e);else o(t);return i},n.text=d,n.nbsp=function(){return d(\"\\xa0\")},n.append=function(t,...e){for(const n of e)t.appendChild(n)},n.remove=h,n.replaceWith=function(t,e){const n=t.parentNode;null!=n&&n.replaceChild(e,t)},n.prepend=function(t,...e){const n=t.firstChild;for(const i of e)t.insertBefore(i,n)},n.empty=function(t,e=!1){let n;for(;null!=(n=t.firstChild);)t.removeChild(n);if(e&&t instanceof Element)for(const e of t.attributes)t.removeAttributeNode(e)},n.contains=function(t,e){let n=e;for(;null!=n.parentNode;){const e=n.parentNode;if(e==t)return!0;n=e instanceof ShadowRoot?e.host:e}return!1},n.display=function(t,e=!0){t.style.display=e?\"\":\"none\"},n.undisplay=function(t){t.style.display=\"none\"},n.show=function(t){t.style.visibility=\"\"},n.hide=function(t){t.style.visibility=\"hidden\"},n.offset_bbox=function(t){const{top:e,left:n,width:i,height:o}=t.getBoundingClientRect();return new r.BBox({left:n+scrollX-document.documentElement.clientLeft,top:e+scrollY-document.documentElement.clientTop,width:i,height:o})},n.parent=function(t,e){let n=t;for(;null!=(n=n.parentElement);)if(n.matches(e))return n;return null},n.extents=f,n.size=p,n.scroll_size=function(t){return{width:Math.ceil(t.scrollWidth),height:Math.ceil(t.scrollHeight)}},n.outer_size=function(t){const{margin:{left:e,right:n,top:i,bottom:o}}=f(t),{width:s,height:l}=p(t);return{width:Math.ceil(s+e+n),height:Math.ceil(l+i+o)}},n.content_size=function(t){const{left:e,top:n}=t.getBoundingClientRect(),{padding:i}=f(t);let o=0,s=0;for(const l of(t.shadowRoot??t).children){const t=l.getBoundingClientRect();o=Math.max(o,Math.ceil(t.left-e-i.left+t.width)),s=Math.max(s,Math.ceil(t.top-n-i.top+t.height))}return{width:o,height:s}},n.bounding_box=function(t){const{x:e,y:n,width:i,height:o}=t.getBoundingClientRect();return new r.BBox({x:e,y:n,width:i,height:o})},n.box_size=function(t){const{width:e,height:n}=t.getBoundingClientRect();return{width:e,height:n}},n.position=function(t,e,n){const{style:i}=t;if(i.left=`${e.x}px`,i.top=`${e.y}px`,i.width=`${e.width}px`,i.height=`${e.height}px`,null==n)i.margin=\"\";else{const{top:t,right:e,bottom:o,left:s}=n;i.margin=`${t}px ${e}px ${o}px ${s}px`}};class g{constructor(t){this.class_list=t}get values(){const t=[];for(let e=0;ethis.class_list.remove(t))):this.class_list.remove(e);return this}clear(){for(const t of this.values)this.class_list.remove(t);return this}toggle(t,e){return(null!=e?e:!this.has(t))?this.add(t):this.remove(t),this}}var m;n.ClassList=g,g.__name__=\"ClassList\",n.classes=function(t){return new g(t.classList)},n.toggle_attribute=function(t,e,n){null==n&&(n=!t.hasAttribute(e)),n?t.setAttribute(e,\"true\"):t.removeAttribute(e)},(m=n.MouseButton||(n.MouseButton={}))[m.None=0]=\"None\",m[m.Primary=1]=\"Primary\",m[m.Secondary=2]=\"Secondary\",m[m.Auxiliary=4]=\"Auxiliary\",m[m.Left=1]=\"Left\",m[m.Right=2]=\"Right\",m[m.Middle=4]=\"Middle\";class _{install(t){t.append(this.el)}uninstall(){this.el.remove()}}n.StyleSheet=_,_.__name__=\"StyleSheet\";class y extends _{constructor(t){super(),this.el=(0,n.style)({type:\"text/css\"}),(0,s.isString)(t)?this._update(t):null!=t&&this._update((0,c.compose_stylesheet)(t))}get css(){return this.el.textContent??\"\"}_update(t){this.el.textContent=t}clear(){this.replace(\"\")}_to_css(t,e){return null==e?t:(0,c.compose_stylesheet)({[t]:e})}replace(t,e){this._update(this._to_css(t,e))}prepend(t,e){this._update(`${this._to_css(t,e)}\\n${this.css}`)}append(t,e){this._update(`${this.css}\\n${this._to_css(t,e)}`)}remove(){h(this.el)}}n.InlineStyleSheet=y,y.__name__=\"InlineStyleSheet\";class b extends y{install(){this.el.isConnected||document.head.appendChild(this.el)}}n.GlobalInlineStyleSheet=b,b.__name__=\"GlobalInlineStyleSheet\";class x extends _{constructor(t){super(),this.el=(0,n.link)({rel:\"stylesheet\",href:t})}replace(t){this.el.href=t}remove(){h(this.el)}}n.ImportedStyleSheet=x,x.__name__=\"ImportedStyleSheet\";class S extends x{install(){this.el.isConnected||document.head.appendChild(this.el)}}n.GlobalImportedStyleSheet=S,S.__name__=\"GlobalImportedStyleSheet\",n.dom_ready=async function(){if(\"loading\"==document.readyState)return new Promise(((t,e)=>{document.addEventListener(\"DOMContentLoaded\",(()=>t()),{once:!0})}))},n.px=function(t){return(0,s.isNumber)(t)?`${t}px`:t},n.supports_adopted_stylesheets=\"adoptedStyleSheets\"in ShadowRoot.prototype},\n",
" function _(t,e,i,r,h){r();const s=t(24),n=t(26),o=t(13),x=t(8),{min:y,max:u,round:g}=Math;function c(t,e){return isNaN(t)?e:isNaN(e)?t:y(t,e)}function a(t,e){return isNaN(t)?e:isNaN(e)?t:u(t,e)}i.empty=function(){return{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}},i.positive_x=function(){return{x0:Number.MIN_VALUE,y0:-1/0,x1:1/0,y1:1/0}},i.positive_y=function(){return{x0:-1/0,y0:Number.MIN_VALUE,x1:1/0,y1:1/0}},i.union=function(t,e){return{x0:c(t.x0,e.x0),x1:a(t.x1,e.x1),y0:c(t.y0,e.y0),y1:a(t.y1,e.y1)}},i.isXY=function(t){return(0,x.isPlainObject)(t)&&\"x\"in t&&\"y\"in t};class _{constructor(t,e=!1){if(null==t)this.x0=0,this.y0=0,this.x1=0,this.y1=0;else if(\"x0\"in t){const{x0:e,y0:i,x1:r,y1:h}=t;if(isFinite(e+i+r+h)){if(!(e<=r&&i<=h))throw new Error(`invalid bbox {x0: ${e}, y0: ${i}, x1: ${r}, y1: ${h}}`);this.x0=e,this.y0=i,this.x1=r,this.y1=h}else this.x0=NaN,this.y0=NaN,this.x1=NaN,this.y1=NaN}else if(\"x\"in t){const{x:e,y:i,width:r,height:h}=t;if(!(r>=0&&h>=0))throw new Error(`invalid bbox {x: ${e}, y: ${i}, width: ${r}, height: ${h}}`);this.x0=e,this.y0=i,this.x1=e+r,this.y1=i+h}else{let i,r,h,s;if(\"width\"in t)if(\"left\"in t)i=t.left,r=i+t.width;else if(\"right\"in t)r=t.right,i=r-t.width;else{const e=t.width/2;i=t.hcenter-e,r=t.hcenter+e}else i=t.left,r=t.right;if(\"height\"in t)if(\"top\"in t)h=t.top,s=h+t.height;else if(\"bottom\"in t)s=t.bottom,h=s-t.height;else{const e=t.height/2;h=t.vcenter-e,s=t.vcenter+e}else h=t.top,s=t.bottom;if(i>r||h>s){if(!e)throw new Error(`invalid bbox {left: ${i}, top: ${h}, right: ${r}, bottom: ${s}}`);i>r&&(i=r),h>s&&(h=s)}this.x0=i,this.y0=h,this.x1=r,this.y1=s}}static from_lrtb({left:t,right:e,top:i,bottom:r}){return new _({x0:Math.min(t,e),y0:Math.min(i,r),x1:Math.max(t,e),y1:Math.max(i,r)})}clone(){return new _(this)}equals(t){return this.x0==t.x0&&this.y0==t.y0&&this.x1==t.x1&&this.y1==t.y1}[n.equals](t,e){return e.eq(this.x0,t.x0)&&e.eq(this.y0,t.y0)&&e.eq(this.x1,t.x1)&&e.eq(this.y1,t.y1)}toString(){return`BBox({left: ${this.left}, top: ${this.top}, width: ${this.width}, height: ${this.height}})`}get is_valid(){const{x0:t,x1:e,y0:i,y1:r}=this;return isFinite(t+e+i+r)}get is_empty(){const{x0:t,x1:e,y0:i,y1:r}=this;return 0==t&&0==e&&0==i&&0==r}get left(){return this.x0}get top(){return this.y0}get right(){return this.x1}get bottom(){return this.y1}get p0(){return{x:this.x0,y:this.y0}}get p1(){return{x:this.x1,y:this.y1}}get x(){return this.x0}get y(){return this.y0}get width(){return this.x1-this.x0}get height(){return this.y1-this.y0}get size(){return{width:this.width,height:this.height}}get rect(){const{x0:t,y0:e,x1:i,y1:r}=this;return{p0:{x:t,y:e},p1:{x:i,y:e},p2:{x:i,y:r},p3:{x:t,y:r}}}get box(){const{x:t,y:e,width:i,height:r}=this;return{x:t,y:e,width:i,height:r}}get lrtb(){const{left:t,right:e,top:i,bottom:r}=this;return{left:t,right:e,top:i,bottom:r}}get x_range(){return{start:this.x0,end:this.x1}}get y_range(){return{start:this.y0,end:this.y1}}get h_range(){return this.x_range}get v_range(){return this.y_range}get ranges(){return[this.x_range,this.y_range]}get aspect(){return this.width/this.height}get hcenter(){return(this.left+this.right)/2}get vcenter(){return(this.top+this.bottom)/2}get area(){return this.width*this.height}resolve(t){switch(t){case\"top_left\":return{x:this.left,y:this.top};case\"top_center\":return{x:this.hcenter,y:this.top};case\"top_right\":return{x:this.right,y:this.top};case\"center_left\":return{x:this.left,y:this.vcenter};case\"center_center\":case\"center\":return{x:this.hcenter,y:this.vcenter};case\"center_right\":return{x:this.right,y:this.vcenter};case\"bottom_left\":return{x:this.left,y:this.bottom};case\"bottom_center\":return{x:this.hcenter,y:this.bottom};case\"bottom_right\":return{x:this.right,y:this.bottom};case\"top\":return this.top;case\"left\":return this.left;case\"right\":return this.right;case\"bottom\":return this.bottom;case\"width\":return this.width;case\"height\":return this.height;default:return{x:NaN,y:NaN}}}round(){return new _({x0:g(this.x0),x1:g(this.x1),y0:g(this.y0),y1:g(this.y1)})}relative(){const{width:t,height:e}=this;return new _({x:0,y:0,width:t,height:e})}translate(t,e){const{x:i,y:r,width:h,height:s}=this;return new _({x:t+i,y:e+r,width:h,height:s})}scale(t){return new _({x0:this.x0*t,x1:this.x1*t,y0:this.y0*t,y1:this.y1*t})}relativize(t,e){return[t-this.x,e-this.y]}contains(t,e){return this.x0<=t&&t<=this.x1&&this.y0<=e&&e<=this.y1}clip(t,e){return tthis.x1&&(t=this.x1),ethis.y1&&(e=this.y1),[t,e]}grow_by(t){return new _({left:this.left-t,right:this.right+t,top:this.top-t,bottom:this.bottom+t})}shrink_by(t){return new _({left:this.left+t,right:this.right-t,top:this.top+t,bottom:this.bottom-t},!0)}union(t){return new _({x0:y(this.x0,t.x0),y0:y(this.y0,t.y0),x1:u(this.x1,t.x1),y1:u(this.y1,t.y1)})}intersection(t){return this.intersects(t)?new _({x0:u(this.x0,t.x0),y0:u(this.y0,t.y0),x1:y(this.x1,t.x1),y1:y(this.y1,t.y1)}):null}intersects(t){return!(t.x1this.x1||t.y1this.y1)}get x_screen(){const t=this;return this._x_screen??(this._x_screen={compute:e=>t.left+e,invert:e=>e-t.left,v_compute(e){const{left:i}=t;return new s.ScreenArray((0,o.map)(e,(t=>i+t)))},v_invert(e){const{left:i}=t;return(0,o.map)(e,(t=>t-i))},get source_range(){return t.x_range},get target_range(){return t.x_range}})}get y_screen(){const t=this;return this._y_screen??(this._y_screen={compute:e=>t.top+e,invert:e=>e-t.top,v_compute(e){const{top:i}=t;return new s.ScreenArray((0,o.map)(e,(t=>i+t)))},v_invert(e){const{top:i}=t;return(0,o.map)(e,(t=>t-i))},get source_range(){return t.y_range},get target_range(){return t.y_range}})}get x_view(){const t=this;return this._x_view??(this._x_view={compute:e=>t.left+e,invert:e=>e-t.left,v_compute(e){const{left:i}=t;return new s.ScreenArray((0,o.map)(e,(t=>i+t)))},v_invert(e){const{left:i}=t;return(0,o.map)(e,(t=>t-i))},get source_range(){return t.x_range},get target_range(){return t.x_range}})}get y_view(){const t=this;return this._y_view??(this._y_view={compute:e=>t.bottom-e,invert:e=>t.bottom-e,v_compute(e){const{bottom:i}=t;return new s.ScreenArray((0,o.map)(e,(t=>i-t)))},v_invert(e){const{bottom:i}=t;return(0,o.map)(e,(t=>i-t))},get source_range(){return t.y_range},get target_range(){return{start:t.bottom,end:t.top}}})}get xview(){return this.x_view}get yview(){return this.y_view}}i.BBox=_,_.__name__=\"BBox\"},\n",
" function _(n,t,e,o,r){o();const s=n(19),i=n(9),c=n(8),l=document.createElement(\"div\").style;function f(n){if(n.startsWith(\"--\"))return n;const t=n.replaceAll(/_/g,\"-\").replaceAll(/[A-Z]/g,(n=>`-${n.toLowerCase()}`));if(t in l)return t;const e=`-webkit-${t}`;if(e in l)return e;const o=`-moz-${t}`;return o in l?o:(s.logger.warn(`unknown CSS property '${n}'`),null)}function*u(n){if((0,c.isPlainObject)(n)||n instanceof Map)for(const[t,e]of(0,i.entries)(n)){const n=f(t);null!=n&&(yield[n,e])}else for(const t of n.own_properties())if(t.dirty){const n=f(t.attr);null!=n&&(yield[n,t.get_value()])}}e.apply_styles=function(n,t){for(const[e,o]of u(t))(0,c.isString)(o)?n.setProperty(e,o):n.removeProperty(e)},e.compose_stylesheet=function(n){const t=[];for(const[e,o]of(0,i.entries)(n)){t.push(`${e} {`);for(const[n,e]of u(o))(0,c.isString)(e)&&0!=e.length&&t.push(` ${n}: ${e};`);t.push(\"}\")}return t.join(\"\\n\")}},\n",
" function _(e,o,i,n,t){n(),i.default=\":host{--base-font:var(--bokeh-base-font, Helvetica, Arial, sans-serif);--mono-font:var(--bokeh-mono-font, monospace);--font-size:var(--bokeh-font-size, 12px);--line-height:calc(20 / 14);--line-height-computed:calc(var(--font-size) * var(--line-height));--border-radius:4px;--padding-vertical:6px;--padding-horizontal:12px;--bokeh-top-level:1000;}:host{box-sizing:border-box;font-family:var(--base-font);font-size:var(--font-size);line-height:var(--line-height);}*,*:before,*:after{box-sizing:inherit;font-family:inherit;}pre,code{font-family:var(--mono-font);margin:0;}\"},\n",
" function _(n,t,o,e,s){e();const a=n(68),c=n(19),r=n(54);o._get_ws_url=function(n,t){let o,e=\"ws:\";return\"https:\"==window.location.protocol&&(e=\"wss:\"),null!=t?(o=document.createElement(\"a\"),o.href=t):o=window.location,null!=n?\"/\"==n&&(n=\"\"):n=o.pathname.replace(/\\/+$/,\"\"),`${e}//${o.host}${n}/ws`};const i=new Map;o.add_document_from_session=async function(n,t,o,e=[],s=!1){const l=window.location.search.substring(1);let d;try{d=await function(n,t,o){const e=(0,a.parse_token)(t).session_id;i.has(n)||i.set(n,new Map);const s=i.get(n);return s.has(e)||s.set(e,(0,a.pull_session)(n,t,o)),s.get(e)}(n,t,l)}catch(n){const o=(0,a.parse_token)(t).session_id;throw c.logger.error(`Failed to load Bokeh session ${o}: ${n}`),n}return(0,r.add_document_standalone)(d.document,o,e,s)}},\n",
" function _(e,s,n,t,o){t();const r=e(19),i=e(5),l=e(69),c=e(70),_=e(71);n.DEFAULT_SERVER_WEBSOCKET_URL=\"ws://localhost:5006/ws\",n.DEFAULT_TOKEN=\"eyJzZXNzaW9uX2lkIjogImRlZmF1bHQifQ\";let h=0;function a(e){let s=e.split(\".\")[0];const n=s.length%4;return 0!=n&&(s+=\"=\".repeat(4-n)),JSON.parse(atob(s.replace(/_/g,\"/\").replace(/-/g,\"+\")))}n.parse_token=a;class d{constructor(e=n.DEFAULT_SERVER_WEBSOCKET_URL,s=n.DEFAULT_TOKEN,t=null){this._number=h++,this.socket=null,this.session=null,this.closed_permanently=!1,this._current_handler=null,this._pending_replies=new Map,this._pending_messages=[],this._receiver=new c.Receiver,this.url=e,this.token=s,this.args_string=t,this.id=a(s).session_id.split(\".\")[0],r.logger.debug(`Creating websocket ${this._number} to '${this.url}' session '${this.id}'`)}async connect(){if(this.closed_permanently)throw new Error(\"Cannot connect() a closed ClientConnection\");if(null!=this.socket)throw new Error(\"Already connected\");this._current_handler=null,this._pending_replies.clear(),this._pending_messages=[];try{let e=`${this.url}`;return null!=this.args_string&&this.args_string.length>0&&(e+=`?${this.args_string}`),this.socket=new WebSocket(e,[\"bokeh\",this.token]),new Promise(((e,s)=>{this.socket.binaryType=\"arraybuffer\",this.socket.onopen=()=>this._on_open(e,s),this.socket.onmessage=e=>this._on_message(e),this.socket.onclose=e=>this._on_close(e,s),this.socket.onerror=()=>this._on_error(s)}))}catch(e){throw r.logger.error(`websocket creation failed to url: ${this.url}`),r.logger.error(` - ${e}`),e}}close(){this.closed_permanently||(r.logger.debug(`Permanently closing websocket connection ${this._number}`),this.closed_permanently=!0,null!=this.socket&&this.socket.close(1e3,`close method called on ClientConnection ${this._number}`),this.session._connection_closed())}_schedule_reconnect(e){setTimeout((()=>{this.closed_permanently||(r.logger.info(`Websocket connection ${this._number} disconnected, will not attempt to reconnect`),this.session?.notify_connection_lost())}),e)}send(e){null!=this.socket?e.send(this.socket):r.logger.error(\"not connected so cannot send\",e)}async send_with_reply(e){const s=await new Promise(((s,n)=>{this._pending_replies.set(e.msgid(),{resolve:s,reject:n}),this.send(e)}));if(\"ERROR\"==s.msgtype())throw new Error(`Error reply ${s.content.text}`);return s}async _pull_doc_json(){const e=l.Message.create(\"PULL-DOC-REQ\",{},{}),s=await this.send_with_reply(e);if(!(\"doc\"in s.content))throw new Error(\"No 'doc' field in PULL-DOC-REPLY\");return s.content.doc}async _repull_session_doc(e,s){r.logger.debug(null!=this.session?\"Repulling session\":\"Pulling session for first time\");try{const n=await this._pull_doc_json();if(null==this.session)if(this.closed_permanently)r.logger.debug(\"Got new document after connection was already closed\"),s(new Error(\"The connection has been closed\"));else{const s=[],t=i.Document.from_json(n,s);this.session=new _.ClientSession(this,t);for(const e of s)t._trigger_on_change(e);for(const e of this._pending_messages)this.session.handle(e);this._pending_messages=[],r.logger.debug(\"Created a new session from new pulled doc\"),e(this.session)}else this.session.document.replace_with_json(n),r.logger.debug(\"Updated existing session with new pulled doc\")}catch(e){console.trace(e),r.logger.error(`Failed to repull session ${e}`),s(e instanceof Error?e:`${e}`)}}_on_open(e,s){r.logger.info(`Websocket connection ${this._number} is now open`),this._current_handler=n=>{this._awaiting_ack_handler(n,e,s)}}_on_message(e){null==this._current_handler&&r.logger.error(\"Got a message with no current handler set\");try{this._receiver.consume(e.data)}catch(e){this._close_bad_protocol(`${e}`)}const s=this._receiver.message;if(null!=s){const e=s.problem();null!=e&&this._close_bad_protocol(e),this._current_handler(s)}}_on_close(e,s){r.logger.info(`Lost websocket ${this._number} connection, ${e.code} (${e.reason})`),this.socket=null,this._pending_replies.forEach((e=>e.reject(\"Disconnected\"))),this._pending_replies.clear(),this.closed_permanently||this._schedule_reconnect(2e3),s(new Error(`Lost websocket connection, ${e.code} (${e.reason})`))}_on_error(e){r.logger.debug(`Websocket error on socket ${this._number}`);const s=\"Could not open websocket\";r.logger.error(`Failed to connect to Bokeh server: ${s}`),e(new Error(s))}_close_bad_protocol(e){r.logger.error(`Closing connection: ${e}`),null!=this.socket&&this.socket.close(1002,e)}_awaiting_ack_handler(e,s,n){\"ACK\"===e.msgtype()?(this._current_handler=e=>this._steady_state_handler(e),this._repull_session_doc(s,n)):this._close_bad_protocol(\"First message was not an ACK\")}_steady_state_handler(e){const s=e.reqid(),n=this._pending_replies.get(s);null!=n?(this._pending_replies.delete(s),n.resolve(e)):null!=this.session?this.session.handle(e):\"PATCH-DOC\"!=e.msgtype()&&this._pending_messages.push(e)}}n.ClientConnection=d,d.__name__=\"ClientConnection\",n.pull_session=function(e,s,n){return new d(e,s,n).connect()}},\n",
" function _(e,s,t,r,n){r();const i=e(32),a=e(40),h=e(12);class f{get buffers(){return this._buffers}constructor(e,s,t){this._buffers=new Map,this.header=e,this.metadata=s,this.content=t}static assemble(e,s,t){const r=JSON.parse(e),n=JSON.parse(s),i=JSON.parse(t);return new f(r,n,i)}assemble_buffer(e,s){const t=this.header.num_buffers??0;if(t<=this._buffers.size)throw new Error(`too many buffers received, expecting ${t}`);const{id:r}=JSON.parse(e);this._buffers.set(r,s)}static create(e,s,t){const r=f.create_header(e);return new f(r,s,t)}static create_header(e){return{msgid:(0,a.unique_id)(),msgtype:e}}complete(){const{num_buffers:e}=this.header;return null==e||this._buffers.size==e}send(e){(0,h.assert)(null==this.header.num_buffers);const s=[],t=JSON.stringify(this.content,((e,t)=>{if(t instanceof i.Buffer){const e={id:`${s.length}`};return s.push([e,t.buffer]),e}return t})),r=s.length;r>0&&(this.header.num_buffers=r);const n=JSON.stringify(this.header),a=JSON.stringify(this.metadata);e.send(n),e.send(a),e.send(t);for(const[t,r]of s)e.send(JSON.stringify(t)),e.send(r)}msgid(){return this.header.msgid}msgtype(){return this.header.msgtype}reqid(){return this.header.reqid}problem(){return\"msgid\"in this.header?\"msgtype\"in this.header?null:\"No msgtype in header\":\"No msgid in header\"}}t.Message=f,f.__name__=\"Message\"},\n",
" function _(t,e,s,_,r){_();const i=t(69),h=t(8),a=t(12);class n{constructor(){this.message=null,this._partial=null,this._fragments=[],this._buf_header=null,this._current_consumer=this._HEADER}consume(t){this._current_consumer(t)}_HEADER(t){this._assume_text(t),this.message=null,this._partial=null,this._fragments=[t],this._buf_header=null,this._current_consumer=this._METADATA}_METADATA(t){this._assume_text(t),this._fragments.push(t),this._current_consumer=this._CONTENT}_CONTENT(t){this._assume_text(t),this._fragments.push(t);const[e,s,_]=this._fragments;(0,a.assert)(null!=e&&null!=s&&null!=_),this._partial=i.Message.assemble(e,s,_),this._check_complete()}_BUFFER_HEADER(t){this._assume_text(t),this._buf_header=t,this._current_consumer=this._BUFFER_PAYLOAD}_BUFFER_PAYLOAD(t){this._assume_binary(t),(0,a.assert)(null!=this._partial&&null!=this._buf_header),this._partial.assemble_buffer(this._buf_header,t),this._check_complete()}_assume_text(t){if(!(0,h.isString)(t))throw new Error(\"Expected text fragment but received binary fragment\")}_assume_binary(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Expected binary fragment but received text fragment\")}_check_complete(){this._partial.complete()?(this.message=this._partial,this._current_consumer=this._HEADER):this._current_consumer=this._BUFFER_HEADER}}s.Receiver=n,n.__name__=\"Receiver\"},\n",
" function _(e,n,t,o,s){o();const c=e(5),i=e(53),_=e(69),r=e(19);class a{constructor(e,n){this._document_listener=e=>{this._document_changed(e)},this._connection=e,this.document=n,this.document.on_change(this._document_listener,!0)}get id(){return this._connection.id}handle(e){const n=e.msgtype();switch(n){case\"PATCH-DOC\":this._handle_patch(e);break;case\"OK\":this._handle_ok(e);break;case\"ERROR\":this._handle_error(e);break;default:r.logger.debug(`Doing nothing with message '${n}'`)}}notify_connection_lost(){this.document.event_manager.send_event(new i.ConnectionLost)}close(){this._connection.close()}_connection_closed(){this.document.remove_on_change(this._document_listener)}async request_server_info(){const e=_.Message.create(\"SERVER-INFO-REQ\",{},{});return(await this._connection.send_with_reply(e)).content}async force_roundtrip(){await this.request_server_info()}_document_changed(e){const n=(e instanceof c.DocumentEventBatch?e.sync?e.events:[]:[e]).filter((e=>e.sync));if(0==n.length)return;const t=this.document.create_json_patch(n),o=_.Message.create(\"PATCH-DOC\",{},t);this._connection.send(o)}_handle_patch(e){this.document.apply_json_patch(e.content,e.buffers)}_handle_ok(e){r.logger.trace(`Unhandled OK reply to ${e.reqid()}`)}_handle_error(e){r.logger.error(`Unhandled ERROR reply to ${e.reqid()}: ${e.content.text}`)}}t.ClientSession=a,a.__name__=\"ClientSession\"},\n",
" function _(n,e,o,t,r){t();const i=n(63),l=n(8);function s(n){let e=(0,l.isString)(n)?document.getElementById(n):n;if(null==e)throw new Error(`Error rendering Bokeh model: could not find ${(0,l.isString)(n)?`#${n}`:n} HTML tag`);if(!(0,i.contains)(document.body,e))throw new Error(`Error rendering Bokeh model: element ${(0,l.isString)(n)?`#${n}`:n} must be under `);if(e instanceof HTMLElement&&\"SCRIPT\"==e.tagName){const n=(0,i.div)();(0,i.replaceWith)(e,n),e=n}return e}o._resolve_element=function(n){const{elementid:e}=n;return null!=e?s(e):document.body},o._resolve_root_elements=function(n){const e=[];if(null!=n.root_ids&&null!=n.roots)for(const o of n.root_ids)e.push(s(n.roots[o]));return e}},\n",
" function _(e,o,t,n,r){n();const s=e(5),i=e(70),c=e(19),l=e(9),g=e(54),a=e(72);function f(e,o){o.buffers.length>0?e.consume(o.buffers[0].buffer):e.consume(o.content.data);const t=e.message;null!=t&&this.apply_json_patch(t.content,t.buffers)}function m(e,o){if(\"undefined\"!=typeof Jupyter&&null!=Jupyter.notebook.kernel){c.logger.info(`Registering Jupyter comms for target ${e}`);const t=Jupyter.notebook.kernel.comm_manager;try{t.register_target(e,(t=>{c.logger.info(`Registering Jupyter comms for target ${e}`);const n=new i.Receiver;t.on_msg(f.bind(o,n))}))}catch(e){c.logger.warn(`Jupyter comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else if(o.roots()[0].id in t.kernels){c.logger.info(`Registering JupyterLab comms for target ${e}`);const n=t.kernels[o.roots()[0].id];try{n.registerCommTarget(e,(t=>{c.logger.info(`Registering JupyterLab comms for target ${e}`);const n=new i.Receiver;t.onMsg=f.bind(o,n)}))}catch(e){c.logger.warn(`Jupyter comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else if(\"undefined\"!=typeof google&&null!=google.colab.kernel){c.logger.info(`Registering Google Colab comms for target ${e}`);const t=google.colab.kernel.comms;try{t.registerTarget(e,(async t=>{c.logger.info(`Registering Google Colab comms for target ${e}`);const n=new i.Receiver;for await(const e of t.messages){const t={data:e.data},r=[];for(const o of e.buffers??[])r.push(new DataView(o));const s={content:t,buffers:r};f.bind(o)(n,s)}}))}catch(e){c.logger.warn(`Google Colab comms failed to register. push_notebook() will not function. (exception reported: ${e})`)}}else console.warn(\"Jupyter notebooks comms not available. push_notebook() will not function. If running JupyterLab ensure the latest @bokeh/jupyter_bokeh extension is installed. In an exported notebook this warning is expected.\")}t.kernels={},t.embed_items_notebook=async function(e,o){if(1!=(0,l.size)(e))throw new Error(\"embed_items_notebook expects exactly one document in docs_json\");const t=s.Document.from_json((0,l.values)(e)[0]);for(const e of o){null!=e.notebook_comms_target&&m(e.notebook_comms_target,t);const o=(0,a._resolve_element)(e),n=(0,a._resolve_root_elements)(e);await(0,g.add_document_standalone)(t,o,n);for(const e of n)e instanceof HTMLElement&&e.removeAttribute(\"id\")}}},\n",
" function _(t,_,o,r,n){r();const a=t(1);a.__exportStar(t(69),o),a.__exportStar(t(70),o)},\n",
" function _(e,t,o,l,n){l(),o.safely=function(e,t=!1){try{return e()}catch(e){if(function(e){const t=document.createElement(\"div\");t.style.backgroundColor=\"#f2dede\",t.style.border=\"1px solid #a94442\",t.style.borderRadius=\"4px\",t.style.display=\"inline-block\",t.style.fontFamily=\"sans-serif\",t.style.marginTop=\"5px\",t.style.minWidth=\"200px\",t.style.padding=\"5px 5px 5px 10px\",t.classList.add(\"bokeh-error-box-into-flames\");const o=document.createElement(\"span\");o.style.backgroundColor=\"#a94442\",o.style.borderRadius=\"0px 4px 0px 0px\",o.style.color=\"white\",o.style.cursor=\"pointer\",o.style.cssFloat=\"right\",o.style.fontSize=\"0.8em\",o.style.margin=\"-6px -6px 0px 0px\",o.style.padding=\"2px 5px 4px 5px\",o.title=\"close\",o.setAttribute(\"aria-label\",\"close\"),o.appendChild(document.createTextNode(\"x\")),o.addEventListener(\"click\",(()=>s.removeChild(t)));const l=document.createElement(\"h3\");l.style.color=\"#a94442\",l.style.margin=\"8px 0px 0px 0px\",l.style.padding=\"0px\",l.appendChild(document.createTextNode(\"Bokeh Error\"));const n=document.createElement(\"pre\");n.style.whiteSpace=\"unset\",n.style.overflowX=\"auto\",n.appendChild(document.createTextNode(e)),t.appendChild(o),t.appendChild(l),t.appendChild(n);const s=document.getElementsByTagName(\"body\")[0];s.insertBefore(t,s.firstChild)}(e instanceof Error&&null!=e.stack?e.stack:`${e}`),t)return;throw e}}},\n",
" function _(t,r,o,_,e){_();const s=t(1),i=t(7),m=s.__importStar(t(77));(0,i.register_models)(m);const n=s.__importStar(t(526));(0,i.register_models)(n)},\n",
" function _(t,_,r,o,a){o();const e=t(1);e.__exportStar(t(78),r),e.__exportStar(t(262),r),e.__exportStar(t(310),r),e.__exportStar(t(320),r),e.__exportStar(t(325),r),e.__exportStar(t(326),r),e.__exportStar(t(335),r),e.__exportStar(t(238),r),e.__exportStar(t(344),r),e.__exportStar(t(386),r),e.__exportStar(t(387),r),e.__exportStar(t(391),r),e.__exportStar(t(393),r),e.__exportStar(t(267),r),e.__exportStar(t(415),r),e.__exportStar(t(416),r),e.__exportStar(t(425),r),e.__exportStar(t(442),r),e.__exportStar(t(443),r),e.__exportStar(t(252),r),e.__exportStar(t(445),r),e.__exportStar(t(250),r),e.__exportStar(t(448),r),e.__exportStar(t(449),r),e.__exportStar(t(454),r),e.__exportStar(t(197),r),e.__exportStar(t(459),r),e.__exportStar(t(468),r),e.__exportStar(t(472),r),e.__exportStar(t(482),r)},\n",
" function _(e,o,a,n,r){n();const t=e(1);r(\"Annotation\",e(79).Annotation),r(\"Arrow\",e(123).Arrow),r(\"ArrowHead\",e(165).ArrowHead),r(\"OpenHead\",e(165).OpenHead),r(\"NormalHead\",e(165).NormalHead),r(\"TeeHead\",e(165).TeeHead),r(\"VeeHead\",e(165).VeeHead),r(\"BaseColorBar\",e(167).BaseColorBar),r(\"Band\",e(257).Band),r(\"BoxAnnotation\",e(259).BoxAnnotation),r(\"ColorBar\",e(261).ColorBar),r(\"ContourColorBar\",e(277).ContourColorBar),r(\"Label\",e(278).Label),r(\"LabelSet\",e(279).LabelSet),r(\"Legend\",e(280).Legend),r(\"LegendItem\",e(281).LegendItem),r(\"PolyAnnotation\",e(282).PolyAnnotation),r(\"ScaleBar\",e(283).ScaleBar);var l=e(284);r(\"Metric\",l.Metric),r(\"ReciprocalMetric\",l.ReciprocalMetric),r(\"MetricLength\",l.MetricLength),r(\"ReciprocalMetricLength\",l.ReciprocalMetricLength),r(\"ImperialLength\",l.ImperialLength),r(\"Angular\",l.Angular),r(\"Slope\",e(285).Slope),r(\"Span\",e(286).Span),r(\"TextAnnotation\",e(169).TextAnnotation),r(\"Title\",e(168).Title),r(\"ToolbarPanel\",e(287).ToolbarPanel),r(\"Whisker\",e(304).Whisker),t.__exportStar(e(305),a)},\n",
" function _(t,e,i,n,s){var o;n();const r=t(80);class l extends r.CompositeRendererView{get_size(){if(this.displayed){const{width:t,height:e}=this._get_size();return{width:Math.round(t),height:Math.round(e)}}return{width:0,height:0}}_get_size(){throw new Error(\"not implemented\")}connect_signals(){super.connect_signals();const t=this.model.properties;this.on_change(t.visible,(()=>{null!=this.layout&&(this.layout.visible=this.model.visible,this.plot_view.request_layout())}))}get needs_clip(){return null==this.layout}serializable_state(){const t=super.serializable_state(),e=this.bbox?.round()??this.layout?.bbox;return null==e?t:{...t,bbox:e}}}i.AnnotationView=l,l.__name__=\"AnnotationView\";class a extends r.CompositeRenderer{constructor(t){super(t)}}i.Annotation=a,o=a,a.__name__=\"Annotation\",o.override({level:\"annotation\"})},\n",
" function _(e,s,t,i,r){var n;i();const _=e(81),a=e(107),d=e(122),l=e(56),o=e(21),h=(0,o.Or)((0,o.Ref)(a.UIElement),(0,o.Ref)(d.DOMNode));class w extends _.RendererView{constructor(){super(...arguments),this._renderer_views=new Map,this._element_views=new Map,this._has_rendered_elements=!1}get renderer_views(){return this.model.renderers.map((e=>this._renderer_views.get(e)))}get element_views(){return this.model.elements.map((e=>this._element_views.get(e)))}*children(){yield*super.children(),yield*this.renderer_views,yield*this.element_views}async lazy_initialize(){await super.lazy_initialize(),await this._build_renderers(),await this._build_elements()}async _build_renderers(){return await(0,l.build_views)(this._renderer_views,this.model.renderers,{parent:this.plot_view})}async _build_elements(){return await(0,l.build_views)(this._element_views,this.model.elements,{parent:this.plot_view})}async _update_renderers(){await this._build_renderers()}async _update_elements(){const{created:e}=await this._build_elements(),s=new Set(e);for(const e of this.element_views)e.el.remove();for(const e of this.element_views){s.has(e)?e.render_to(this.plot_view.shadow_el):this.plot_view.shadow_el.append(e.el)}}remove(){(0,l.remove_views)(this._renderer_views),(0,l.remove_views)(this._element_views),super.remove()}connect_signals(){super.connect_signals();const{renderers:e,elements:s}=this.model.properties;this.on_change(e,(async()=>{await this._update_renderers()})),this.on_change(s,(async()=>{await this._update_elements()}))}render(){if(!this._has_rendered_elements){for(const e of this.element_views)e.render_to(this.plot_view.shadow_el);this._has_rendered_elements=!0}super.render();const{displayed:e}=this;for(const s of this.element_views)s.reposition(e)}has_finished(){if(!super.has_finished())return!1;for(const e of this.renderer_views)if(!e.has_finished())return!1;for(const e of this.element_views)if(!e.has_finished())return!1;return!0}serializable_state(){const{children:e,...s}=super.serializable_state();return{...s,children:[...e??[],...this.renderer_views.map((e=>e.serializable_state())),...this.element_views.map((e=>e.serializable_state()))]}}}t.CompositeRendererView=w,w.__name__=\"CompositeRendererView\";class m extends _.Renderer{constructor(e){super(e)}}t.CompositeRenderer=m,n=m,m.__name__=\"CompositeRenderer\",n.define((({List:e,Ref:s})=>({renderers:[e(s(_.Renderer)),[]],elements:[e(h),[]]})))},\n",
" function _(e,t,i,n,s){var r,o;n();const a=e(1),_=e(58),l=e(56),u=a.__importStar(e(82)),c=e(20),d=e(8),h=e(51),m=e(12),p=e(91),v=e(64),g=e(106);class f extends h.Model{constructor(e){super(e)}}i.RendererGroup=f,r=f,f.__name__=\"RendererGroup\",r.define((({Bool:e})=>({visible:[e,!0]})));class y extends _.View{constructor(){super(...arguments),this._context_menu=null,this._custom_coordinates=null}get context_menu(){return this._context_menu}get coordinates(){const{_coordinates:e}=this;return null!=e?e:this._coordinates=this._initialize_coordinates()}set coordinates(e){this._custom_coordinates=e}initialize(){super.initialize(),this.visuals=new u.Visuals(this)}async lazy_initialize(){await super.lazy_initialize();const{context_menu:e}=this.model;null!=e&&(this._context_menu=await(0,l.build_view)(e,{parent:this.plot_view}))}remove(){this._context_menu?.remove(),super.remove()}connect_signals(){super.connect_signals();const{group:e}=this.model;null!=e&&this.on_change(e.properties.visible,(()=>{this.model.visible=e.visible}));const{x_range_name:t,y_range_name:i}=this.model.properties;this.on_change([t,i],(()=>delete this._coordinates)),this.connect(this.plot_view.frame.change,(()=>delete this._coordinates))}_initialize_coordinates(){if(null!=this._custom_coordinates)return this._custom_coordinates;const{coordinates:e}=this.model,{frame:t}=this.plot_view;if(null!=e)return e.get_transform(t);{const{x_range_name:e,y_range_name:i}=this.model,n=t.x_scales.get(e),s=t.y_scales.get(i);return(0,m.assert)(null!=n,`missing '${e}' range`),(0,m.assert)(null!=s,`missing '${i}' range`),new p.CoordinateTransform(n,s)}}get plot_view(){return this.parent}get plot_model(){return this.parent.model}get layer(){const{overlays:e,primary:t}=this.canvas;return\"overlay\"==this.model.level?e:t}get canvas(){return this.plot_view.canvas_view}request_render(){this.request_paint()}request_paint(){this.plot_view.request_paint(this)}request_layout(){this.plot_view.request_layout()}notify_finished(){this.plot_view.notify_finished()}notify_finished_after_paint(){this.plot_view.notify_finished_after_paint()}get needs_clip(){return!1}get has_webgl(){return!1}get displayed(){return this.model.visible}render(){this.update_geometry(),this.compute_geometry(),this.displayed&&this._render(),this._has_finished=!0}renderer_view(e){}update_geometry(){}compute_geometry(){}resolve_frame(){return this.plot_view.frame}resolve_canvas(){return this.plot_view.canvas}resolve_plot(){return this.plot_view}resolve_symbol(e){const t=this;if(\"bbox\"in t&&t.bbox instanceof v.BBox){const i=t.bbox.resolve(e.symbol),{offset:n}=e;if((0,d.isNumber)(i))return i+n;{const{x:e,y:t}=i;return{x:e+n,y:t+n}}}return{x:NaN,y:NaN}}get attribution(){return null}}i.RendererView=y,y.__name__=\"RendererView\";class w extends h.Model{constructor(e){super(e)}}i.Renderer=w,o=w,w.__name__=\"Renderer\",o.define((({Bool:e,Str:t,Ref:i,Nullable:n})=>({group:[n(i(f)),null],level:[c.RenderLevel,\"image\"],visible:[e,!0],x_range_name:[t,\"default\"],y_range_name:[t,\"default\"],coordinates:[n(i(p.CoordinateMapping)),null],propagate_hover:[e,!1],context_menu:[n(i(g.Menu)),null]})))},\n",
" function _(e,a,r,t,c){t();const n=e(1),l=e(83);c(\"Line\",l.Line),c(\"LineScalar\",l.LineScalar),c(\"LineVector\",l.LineVector);const s=e(86);c(\"Fill\",s.Fill),c(\"FillScalar\",s.FillScalar),c(\"FillVector\",s.FillVector);const i=e(87);c(\"Text\",i.Text),c(\"TextScalar\",i.TextScalar),c(\"TextVector\",i.TextVector);const o=e(88);c(\"Hatch\",o.Hatch),c(\"HatchScalar\",o.HatchScalar),c(\"HatchVector\",o.HatchVector);const u=e(90);c(\"Image\",u.Image),c(\"ImageScalar\",u.ImageScalar),c(\"ImageVector\",u.ImageVector);const V=n.__importStar(e(85)),S=e(84);c(\"VisualProperties\",S.VisualProperties),c(\"VisualUniforms\",S.VisualUniforms);class m{*[Symbol.iterator](){yield*this._visuals}constructor(e){this._visuals=[];for(const[a,r]of e.model._mixins){const t=(()=>{switch(r){case V.Line:return new l.Line(e,a);case V.LineScalar:return new l.LineScalar(e,a);case V.LineVector:return new l.LineVector(e,a);case V.Fill:return new s.Fill(e,a);case V.FillScalar:return new s.FillScalar(e,a);case V.FillVector:return new s.FillVector(e,a);case V.Text:return new i.Text(e,a);case V.TextScalar:return new i.TextScalar(e,a);case V.TextVector:return new i.TextVector(e,a);case V.Hatch:return new o.Hatch(e,a);case V.HatchScalar:return new o.HatchScalar(e,a);case V.HatchVector:return new o.HatchVector(e,a);case V.Image:return new u.Image(e,a);case V.ImageScalar:return new u.ImageScalar(e,a);case V.ImageVector:return new u.ImageVector(e,a);default:throw new Error(\"unknown visual\")}})();t instanceof S.VisualProperties&&t.update(),this._visuals.push(t),Object.defineProperty(this,a+t.type,{get:()=>t,configurable:!1,enumerable:!0})}}}r.Visuals=m,m.__name__=\"Visuals\"},\n",
" function _(e,t,i,l,s){l();const a=e(1),n=e(84),h=a.__importStar(e(85)),o=e(22),_=e(8);function r(e){if((0,_.isArray)(e))return e;switch(e){case\"solid\":return[];case\"dashed\":return[6];case\"dotted\":return[2,4];case\"dotdash\":return[2,4,6,4];case\"dashdot\":return[6,4,2,4];default:return e.split(\" \").map(Number).filter(_.isInteger)}}i.resolve_line_dash=r;class u extends n.VisualProperties{get doit(){const e=this.line_color.get_value(),t=this.line_alpha.get_value(),i=this.line_width.get_value();return!(null==e||0==t||0==i)}apply(e){const{doit:t}=this;return t&&(this.set_value(e),e.stroke()),t}values(){return{color:this.line_color.get_value(),alpha:this.line_alpha.get_value(),width:this.line_width.get_value(),join:this.line_join.get_value(),cap:this.line_cap.get_value(),dash:this.line_dash.get_value(),offset:this.line_dash_offset.get_value()}}set_value(e){const t=this.line_color.get_value(),i=this.line_alpha.get_value();e.strokeStyle=(0,o.color2css)(t,i),e.lineWidth=this.line_width.get_value(),e.lineJoin=this.line_join.get_value(),e.lineCap=this.line_cap.get_value(),e.setLineDash(r(this.line_dash.get_value())),e.lineDashOffset=this.line_dash_offset.get_value()}}i.Line=u,u.__name__=\"Line\";class c extends n.VisualUniforms{get doit(){const e=this.line_color.value,t=this.line_alpha.value,i=this.line_width.value;return!(0==e||0==t||0==i)}apply(e){const{doit:t}=this;return t&&(this.set_value(e),e.stroke()),t}values(){return{color:this.line_color.value,alpha:this.line_alpha.value,width:this.line_width.value,join:this.line_join.value,cap:this.line_cap.value,dash:this.line_dash.value,offset:this.line_dash_offset.value}}set_value(e){const t=this.line_color.value,i=this.line_alpha.value;e.strokeStyle=(0,o.color2css)(t,i),e.lineWidth=this.line_width.value,e.lineJoin=this.line_join.value,e.lineCap=this.line_cap.value,e.setLineDash(r(this.line_dash.value)),e.lineDashOffset=this.line_dash_offset.value}}i.LineScalar=c,c.__name__=\"LineScalar\";class d extends n.VisualUniforms{get doit(){const{line_color:e}=this;if(e.is_Scalar()&&0==e.value)return!1;const{line_alpha:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{line_width:i}=this;return!i.is_Scalar()||0!=i.value}v_doit(e){return 0!=this.line_color.get(e)&&(0!=this.line_alpha.get(e)&&0!=this.line_width.get(e))}apply(e,t){const i=this.v_doit(t);return i&&(this.set_vectorize(e,t),e.stroke()),i}values(e){return{color:this.line_color.get(e),alpha:this.line_alpha.get(e),width:this.line_width.get(e),join:this.line_join.get(e),cap:this.line_cap.get(e),dash:this.line_dash.get(e),offset:this.line_dash_offset.get(e)}}set_vectorize(e,t){const i=this.line_color.get(t),l=this.line_alpha.get(t),s=this.line_width.get(t),a=this.line_join.get(t),n=this.line_cap.get(t),h=this.line_dash.get(t),_=this.line_dash_offset.get(t);e.strokeStyle=(0,o.color2css)(i,l),e.lineWidth=s,e.lineJoin=a,e.lineCap=n,e.setLineDash(r(h)),e.lineDashOffset=_}}i.LineVector=d,d.__name__=\"LineVector\",u.prototype.type=\"line\",u.prototype.attrs=Object.keys(h.Line),c.prototype.type=\"line\",c.prototype.attrs=Object.keys(h.LineScalar),d.prototype.type=\"line\",d.prototype.attrs=Object.keys(h.LineVector)},\n",
" function _(t,s,o,i,r){i();class e{*[Symbol.iterator](){yield*this._props}constructor(t,s=\"\"){this.obj=t,this.prefix=s;const o=this;this._props=[];for(const i of this.attrs){const r=t.model.properties[s+i];r.change.connect((()=>this.update())),o[i]=r,this._props.push(r)}}update(){}}o.VisualProperties=e,e.__name__=\"VisualProperties\";class p{*[Symbol.iterator](){for(const t of this.attrs)yield this.obj.model.properties[this.prefix+t]}constructor(t,s=\"\"){this.obj=t,this.prefix=s;for(const o of this.attrs)Object.defineProperty(this,o,{get:()=>t[s+o]})}update(){}}o.VisualUniforms=p,p.__name__=\"VisualUniforms\"},\n",
" function _(l,e,a,t,o){t();const c=l(1),r=c.__importStar(l(18)),n=l(20),_=c.__importStar(l(21)),i=l(9),h=l(8);a.Line={line_color:[_.Nullable(_.Color),\"black\"],line_alpha:[_.Alpha,1],line_width:[_.Float,1],line_join:[n.LineJoin,\"bevel\"],line_cap:[n.LineCap,\"butt\"],line_dash:[_.Or(n.LineDash,_.Array(_.Float)),[]],line_dash_offset:[_.Float,0]},a.Fill={fill_color:[_.Nullable(_.Color),\"gray\"],fill_alpha:[_.Alpha,1]},a.Image={global_alpha:[_.Alpha,1]},a.Hatch={hatch_color:[_.Nullable(_.Color),\"black\"],hatch_alpha:[_.Alpha,1],hatch_scale:[_.Float,12],hatch_pattern:[_.Nullable(_.Or(n.HatchPatternType,_.Str)),null],hatch_weight:[_.Float,1],hatch_extra:[_.Dict(_.AnyRef()),{}]},a.Text={text_color:[_.Nullable(_.Color),\"#444444\"],text_outline_color:[_.Nullable(_.Color),null],text_alpha:[_.Alpha,1],text_font:[r.Font,\"helvetica\"],text_font_size:[_.FontSize,\"16px\"],text_font_style:[n.FontStyle,\"normal\"],text_align:[n.TextAlign,\"left\"],text_baseline:[n.TextBaseline,\"bottom\"],text_line_height:[_.Float,1.2]},a.LineScalar={line_color:[r.ColorScalar,\"black\"],line_alpha:[r.NumberScalar,1],line_width:[r.NumberScalar,1],line_join:[r.LineJoinScalar,\"bevel\"],line_cap:[r.LineCapScalar,\"butt\"],line_dash:[r.LineDashScalar,[]],line_dash_offset:[r.NumberScalar,0]},a.FillScalar={fill_color:[r.ColorScalar,\"gray\"],fill_alpha:[r.NumberScalar,1]},a.ImageScalar={global_alpha:[r.NumberScalar,1]},a.HatchScalar={hatch_color:[r.ColorScalar,\"black\"],hatch_alpha:[r.NumberScalar,1],hatch_scale:[r.NumberScalar,12],hatch_pattern:[r.NullStringScalar,null],hatch_weight:[r.NumberScalar,1],hatch_extra:[r.DictScalar,{}]},a.TextScalar={text_color:[r.ColorScalar,\"#444444\"],text_outline_color:[r.ColorScalar,null],text_alpha:[r.NumberScalar,1],text_font:[r.FontScalar,\"helvetica\"],text_font_size:[r.FontSizeScalar,\"16px\"],text_font_style:[r.FontStyleScalar,\"normal\"],text_align:[r.TextAlignScalar,\"left\"],text_baseline:[r.TextBaselineScalar,\"bottom\"],text_line_height:[r.NumberScalar,1.2]},a.LineVector={line_color:[r.ColorSpec,\"black\"],line_alpha:[r.NumberSpec,1],line_width:[r.NumberSpec,1],line_join:[r.LineJoinSpec,\"bevel\"],line_cap:[r.LineCapSpec,\"butt\"],line_dash:[r.LineDashSpec,[]],line_dash_offset:[r.NumberSpec,0]},a.FillVector={fill_color:[r.ColorSpec,\"gray\"],fill_alpha:[r.NumberSpec,1]},a.ImageVector={global_alpha:[r.NumberSpec,1]},a.HatchVector={hatch_color:[r.ColorSpec,\"black\"],hatch_alpha:[r.NumberSpec,1],hatch_scale:[r.NumberSpec,12],hatch_pattern:[r.NullStringSpec,null],hatch_weight:[r.NumberSpec,1],hatch_extra:[r.DictScalar,{}]},a.TextVector={text_color:[r.ColorSpec,\"#444444\"],text_outline_color:[r.ColorSpec,null],text_alpha:[r.NumberSpec,1],text_font:[r.FontSpec,\"helvetica\"],text_font_size:[r.FontSizeSpec,\"16px\"],text_font_style:[r.FontStyleSpec,\"normal\"],text_align:[r.TextAlignSpec,\"left\"],text_baseline:[r.TextBaselineSpec,\"bottom\"],text_line_height:[r.NumberSpec,1.2]},a.attrs_of=function(l,e,a,t=!1){const o={};for(const c of(0,i.keys)(a)){const a=`${e}${c}`,r=l[a];o[(0,h.isString)(t)?`${t}${c}`:t?a:c]=r}return o}},\n",
" function _(l,t,e,i,s){i();const a=l(1),o=l(84),r=a.__importStar(l(85)),_=l(22);class c extends o.VisualProperties{get doit(){const l=this.fill_color.get_value(),t=this.fill_alpha.get_value();return!(null==l||0==t)}apply(l,t){const{doit:e}=this;return e&&(this.set_value(l),l.fill(t)),e}values(){return{color:this.fill_color.get_value(),alpha:this.fill_alpha.get_value()}}set_value(l){const t=this.fill_color.get_value(),e=this.fill_alpha.get_value();l.fillStyle=(0,_.color2css)(t,e)}}e.Fill=c,c.__name__=\"Fill\";class h extends o.VisualUniforms{get doit(){const l=this.fill_color.value,t=this.fill_alpha.value;return!(0==l||0==t)}apply(l,t){const{doit:e}=this;return e&&(this.set_value(l),l.fill(t)),e}values(){return{color:this.fill_color.value,alpha:this.fill_alpha.value}}set_value(l){const t=this.fill_color.value,e=this.fill_alpha.value;l.fillStyle=(0,_.color2css)(t,e)}}e.FillScalar=h,h.__name__=\"FillScalar\";class u extends o.VisualUniforms{get doit(){const{fill_color:l}=this;if(l.is_Scalar()&&0==l.value)return!1;const{fill_alpha:t}=this;return!t.is_Scalar()||0!=t.value}v_doit(l){return 0!=this.fill_color.get(l)&&0!=this.fill_alpha.get(l)}apply(l,t,e){const i=this.v_doit(t);return i&&(this.set_vectorize(l,t),l.fill(e)),i}values(l){return{color:this.fill_color.get(l),alpha:this.fill_alpha.get(l)}}set_vectorize(l,t){const e=this.fill_color.get(t),i=this.fill_alpha.get(t);l.fillStyle=(0,_.color2css)(e,i)}}e.FillVector=u,u.__name__=\"FillVector\",c.prototype.type=\"fill\",c.prototype.attrs=Object.keys(r.Fill),h.prototype.type=\"fill\",h.prototype.attrs=Object.keys(r.FillScalar),u.prototype.type=\"fill\",u.prototype.attrs=Object.keys(r.FillVector)},\n",
" function _(t,e,l,s,o){s();const i=t(1),_=t(84),a=i.__importStar(t(85)),n=t(22),h=new Map;function r(t,e){const l=h.get(t);if(null==l){const l=new WeakSet([e]);h.set(t,l)}else{if(l.has(e))return;l.add(e)}const{fonts:s}=document;s.check(t)||s.load(t).then((()=>e.request_render()))}class u extends _.VisualProperties{get doit(){const t=this.text_color.get_value(),e=this.text_alpha.get_value();return!(null==t||0==e)}update(){if(!this.doit)return;r(this.font_value(),this.obj)}values(){return{color:this.text_color.get_value(),outline_color:this.text_outline_color.get_value(),alpha:this.text_alpha.get_value(),font:this.text_font.get_value(),font_size:this.text_font_size.get_value(),font_style:this.text_font_style.get_value(),align:this.text_align.get_value(),baseline:this.text_baseline.get_value(),line_height:this.text_line_height.get_value()}}set_value(t){const e=this.text_color.get_value(),l=this.text_outline_color.get_value(),s=this.text_alpha.get_value();t.fillStyle=(0,n.color2css)(e,s),t.strokeStyle=(0,n.color2css)(l,s),t.font=this.font_value(),t.textAlign=this.text_align.get_value(),t.textBaseline=this.text_baseline.get_value()}font_value(){return`${this.text_font_style.get_value()} ${this.text_font_size.get_value()} ${this.text_font.get_value()}`}}l.Text=u,u.__name__=\"Text\";class x extends _.VisualUniforms{get doit(){const t=this.text_color.value,e=this.text_alpha.value;return!(0==t||0==e)}update(){if(!this.doit)return;r(this.font_value(),this.obj)}values(){return{color:this.text_color.value,outline_color:this.text_outline_color.value,alpha:this.text_alpha.value,font:this.text_font.value,font_size:this.text_font_size.value,font_style:this.text_font_style.value,align:this.text_align.value,baseline:this.text_baseline.value,line_height:this.text_line_height.value}}set_value(t){const e=this.text_color.value,l=this.text_alpha.value,s=this.text_outline_color.value,o=this.font_value(),i=this.text_align.value,_=this.text_baseline.value;t.fillStyle=(0,n.color2css)(e,l),t.strokeStyle=(0,n.color2css)(s,l),t.font=o,t.textAlign=i,t.textBaseline=_}font_value(){return`${this.text_font_style.value} ${this.text_font_size.value} ${this.text_font.value}`}}l.TextScalar=x,x.__name__=\"TextScalar\";class c extends _.VisualUniforms{_assert_font(t){r(this.font_value(t),this.obj)}values(t){return this._assert_font(t),{color:this.text_color.get(t),outline_color:this.text_outline_color.get(t),alpha:this.text_alpha.get(t),font:this.text_font.get(t),font_size:this.text_font_size.get(t),font_style:this.text_font_style.get(t),align:this.text_align.get(t),baseline:this.text_baseline.get(t),line_height:this.text_line_height.get(t)}}get doit(){const{text_color:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{text_alpha:e}=this;return!e.is_Scalar()||0!=e.value}v_doit(t){return 0!=this.text_color.get(t)&&0!=this.text_alpha.get(t)}apply(t,e){const l=this.v_doit(e);return l&&this.set_vectorize(t,e),l}set_vectorize(t,e){this._assert_font(e);const l=this.text_color.get(e),s=this.text_outline_color.get(e),o=this.text_alpha.get(e),i=this.font_value(e),_=this.text_align.get(e),a=this.text_baseline.get(e);t.fillStyle=(0,n.color2css)(l,o),t.strokeStyle=(0,n.color2css)(s,o),t.font=i,t.textAlign=_,t.textBaseline=a}font_value(t){return`${this.text_font_style.get(t)} ${this.text_font_size.get(t)} ${this.text_font.get(t)}`}}l.TextVector=c,c.__name__=\"TextVector\",u.prototype.type=\"text\",u.prototype.attrs=Object.keys(a.Text),x.prototype.type=\"text\",x.prototype.attrs=Object.keys(a.TextScalar),c.prototype.type=\"text\",c.prototype.attrs=Object.keys(a.TextVector)},\n",
" function _(t,e,a,i,r){i();const h=t(1),s=t(84),n=t(89),c=h.__importStar(t(18)),_=h.__importStar(t(85)),l=t(9);class o extends s.VisualProperties{constructor(){super(...arguments),this._update_iteration=0}update(){if(this._update_iteration++,this._hatch_image=null,!this.doit)return;const t=this.hatch_color.get_value(),e=this.hatch_alpha.get_value(),a=this.hatch_scale.get_value(),i=this.hatch_pattern.get_value(),r=this.hatch_weight.get_value(),h=t=>{this._hatch_image=t},s=(0,l.dict)(this.hatch_extra.get_value()).get(i);if(null!=s){const i=s.get_pattern(t,e,a,r);if(i instanceof Promise){const{_update_iteration:t}=this;i.then((e=>{this._update_iteration==t&&(h(e),this.obj.request_render())}))}else h(i)}else{const s=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(s,i,t,e,a,r);h(c)}}get doit(){const t=this.hatch_color.get_value(),e=this.hatch_alpha.get_value(),a=this.hatch_pattern.get_value();return!(null==t||0==e||\" \"==a||\"blank\"==a||null==a)}apply(t,e){const{doit:a}=this;return a&&(this.set_value(t),t.layer.undo_transform((()=>t.fill(e)))),a}set_value(t){const e=this.pattern(t);t.fillStyle=e??\"transparent\"}pattern(t){const e=this._hatch_image;return null==e?null:t.createPattern(e,this.repetition())}repetition(){const t=this.hatch_pattern.get_value(),e=(0,l.dict)(this.hatch_extra.get_value()).get(t);if(null==e)return\"repeat\";switch(e.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}}a.Hatch=o,o.__name__=\"Hatch\";class u extends s.VisualUniforms{constructor(){super(...arguments),this._static_doit=!1,this._update_iteration=0}_compute_static_doit(){const t=this.hatch_color.value,e=this.hatch_alpha.value,a=this.hatch_pattern.value;return!(0==t||0==e||\" \"==a||\"blank\"==a||null==a)}update(){this._update_iteration++;const t=this.hatch_color.length;if(this._hatch_image=new c.UniformScalar(null,t),this._static_doit=this._compute_static_doit(),!this._static_doit)return;const e=this.hatch_color.value,a=this.hatch_alpha.value,i=this.hatch_scale.value,r=this.hatch_pattern.value,h=this.hatch_weight.value,s=e=>{this._hatch_image=new c.UniformScalar(e,t)},_=(0,l.dict)(this.hatch_extra.value).get(r);if(null!=_){const t=_.get_pattern(e,a,i,h);if(t instanceof Promise){const{_update_iteration:e}=this;t.then((t=>{this._update_iteration==e&&(s(t),this.obj.request_render())}))}else s(t)}else{const t=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(t,r,e,a,i,h);s(c)}}get doit(){return this._static_doit}apply(t,e){const{doit:a}=this;return a&&(this.set_value(t),t.layer.undo_transform((()=>t.fill(e)))),a}set_value(t){t.fillStyle=this.pattern(t)??\"transparent\"}pattern(t){const e=this._hatch_image.value;return null==e?null:t.createPattern(e,this.repetition())}repetition(){const t=this.hatch_pattern.value;if(null!=t){const e=(0,l.dict)(this.hatch_extra.value).get(t);if(null!=e)switch(e.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}return\"repeat\"}}a.HatchScalar=u,u.__name__=\"HatchScalar\";class p extends s.VisualUniforms{constructor(){super(...arguments),this._static_doit=!1,this._update_iteration=0}_compute_static_doit(){const{hatch_color:t}=this;if(t.is_Scalar()&&0==t.value)return!1;const{hatch_alpha:e}=this;if(e.is_Scalar()&&0==e.value)return!1;const{hatch_pattern:a}=this;if(a.is_Scalar()){const t=a.value;if(\" \"==t||\"blank\"==t||null==t)return!1}return!0}update(){this._update_iteration++;const t=this.hatch_color.length;if(this._hatch_image=new c.UniformScalar(null,t),this._static_doit=this._compute_static_doit(),!this._static_doit)return;const e=(t,e,a,i,r,h)=>{const s=(0,l.dict)(this.hatch_extra.value).get(t);if(null!=s){const t=s.get_pattern(e,a,i,r);if(t instanceof Promise){const{_update_iteration:e}=this;t.then((t=>{this._update_iteration==e&&(h(t),this.obj.request_render())}))}else h(t)}else{const s=this.obj.canvas.create_layer(),c=(0,n.get_pattern)(s,t,e,a,i,r);h(c)}};if(this.hatch_color.is_Scalar()&&this.hatch_alpha.is_Scalar()&&this.hatch_scale.is_Scalar()&&this.hatch_pattern.is_Scalar()&&this.hatch_weight.is_Scalar()){const a=this.hatch_color.value,i=this.hatch_alpha.value,r=this.hatch_scale.value;e(this.hatch_pattern.value,a,i,r,this.hatch_weight.value,(e=>{this._hatch_image=new c.UniformScalar(e,t)}))}else{const a=new Array(t);a.fill(null),this._hatch_image=new c.UniformVector(a);for(let i=0;i{a[i]=t}))}}}get doit(){return this._static_doit}v_doit(t){if(!this.doit)return!1;if(0==this.hatch_color.get(t))return!1;if(0==this.hatch_alpha.get(t))return!1;const e=this.hatch_pattern.get(t);return\" \"!=e&&\"blank\"!=e&&null!=e}apply(t,e,a){const i=this.v_doit(e);return i&&(this.set_vectorize(t,e),t.layer.undo_transform((()=>t.fill(a)))),i}set_vectorize(t,e){t.fillStyle=this.pattern(t,e)??\"transparent\"}pattern(t,e){const a=this._hatch_image.get(e);return null==a?null:t.createPattern(a,this.repetition(e))}repetition(t){const e=this.hatch_pattern.get(t);if(null!=e){const t=(0,l.dict)(this.hatch_extra.value).get(e);if(null!=t)switch(t.repetition){case\"repeat\":return\"repeat\";case\"repeat_x\":return\"repeat-x\";case\"repeat_y\":return\"repeat-y\";case\"no_repeat\":return\"no-repeat\"}}return\"repeat\"}}a.HatchVector=p,p.__name__=\"HatchVector\",o.prototype.type=\"hatch\",o.prototype.attrs=Object.keys(_.Hatch),u.prototype.type=\"hatch\",u.prototype.attrs=Object.keys(_.HatchScalar),p.prototype.type=\"hatch\",p.prototype.attrs=Object.keys(_.HatchVector)},\n",
" function _(e,o,a,r,s){r();const i=e(19),n=e(22);function l(e,o,a){e.moveTo(0,a+.5),e.lineTo(o,a+.5),e.stroke()}function t(e,o,a){e.moveTo(a+.5,0),e.lineTo(a+.5,o),e.stroke()}function c(e,o){e.moveTo(0,o),e.lineTo(o,0),e.stroke(),e.moveTo(0,0),e.lineTo(o,o),e.stroke()}a.hatch_aliases={\" \":\"blank\",\".\":\"dot\",o:\"ring\",\"-\":\"horizontal_line\",\"|\":\"vertical_line\",\"+\":\"cross\",'\"':\"horizontal_dash\",\":\":\"vertical_dash\",\"@\":\"spiral\",\"/\":\"right_diagonal_line\",\"\\\\\":\"left_diagonal_line\",x:\"diagonal_cross\",\",\":\"right_diagonal_dash\",\"`\":\"left_diagonal_dash\",v:\"horizontal_wave\",\">\":\"vertical_wave\",\"*\":\"criss_cross\"},a.get_pattern=function(e,o,r,s,k,_){return e.resize(k,k),e.prepare(),function(e,o,r,s,k,_){const T=k,h=T/2,v=h/2,d=(0,n.color2css)(r,s);switch(e.strokeStyle=d,e.fillStyle=d,e.lineCap=\"square\",e.lineWidth=_,a.hatch_aliases[o]??o){case\"blank\":break;case\"dot\":e.arc(h,h,h/2,0,2*Math.PI,!0),e.fill();break;case\"ring\":e.arc(h,h,h/2,0,2*Math.PI,!0),e.stroke();break;case\"horizontal_line\":l(e,T,h);break;case\"vertical_line\":t(e,T,h);break;case\"cross\":l(e,T,h),t(e,T,h);break;case\"horizontal_dash\":l(e,h,h);break;case\"vertical_dash\":t(e,h,h);break;case\"spiral\":{const o=T/30;e.moveTo(h,h);for(let a=0;a<360;a++){const r=.1*a,s=h+o*r*Math.cos(r),i=h+o*r*Math.sin(r);e.lineTo(s,i)}e.stroke();break}case\"right_diagonal_line\":e.moveTo(.5-v,T),e.lineTo(v+.5,0),e.stroke(),e.moveTo(v+.5,T),e.lineTo(3*v+.5,0),e.stroke(),e.moveTo(3*v+.5,T),e.lineTo(5*v+.5,0),e.stroke();break;case\"left_diagonal_line\":e.moveTo(v+.5,T),e.lineTo(.5-v,0),e.stroke(),e.moveTo(3*v+.5,T),e.lineTo(v+.5,0),e.stroke(),e.moveTo(5*v+.5,T),e.lineTo(3*v+.5,0),e.stroke();break;case\"diagonal_cross\":c(e,T);break;case\"right_diagonal_dash\":e.moveTo(v+.5,3*v+.5),e.lineTo(3*v+.5,v+.5),e.stroke();break;case\"left_diagonal_dash\":e.moveTo(v+.5,v+.5),e.lineTo(3*v+.5,3*v+.5),e.stroke();break;case\"horizontal_wave\":e.moveTo(0,v),e.lineTo(h,3*v),e.lineTo(T,v),e.stroke();break;case\"vertical_wave\":e.moveTo(v,0),e.lineTo(3*v,h),e.lineTo(v,T),e.stroke();break;case\"criss_cross\":c(e,T),l(e,T,h),t(e,T,h);break;default:i.logger.warn(`unknown hatch pattern: ${o}`)}}(e.ctx,o,r,s,k,_),e.canvas}},\n",
" function _(a,t,e,l,s){l();const o=a(1),r=a(84),p=o.__importStar(a(85));class _ extends r.VisualProperties{get doit(){return!(0==this.global_alpha.get_value())}apply(a){const{doit:t}=this;return t&&this.set_value(a),t}values(){return{global_alpha:this.global_alpha.get_value()}}set_value(a){const t=this.global_alpha.get_value();a.globalAlpha=t}}e.Image=_,_.__name__=\"Image\";class i extends r.VisualUniforms{get doit(){return!(0==this.global_alpha.value)}apply(a){const{doit:t}=this;return t&&this.set_value(a),t}values(){return{global_alpha:this.global_alpha.value}}set_value(a){const t=this.global_alpha.value;a.globalAlpha=t}}e.ImageScalar=i,i.__name__=\"ImageScalar\";class g extends r.VisualUniforms{get doit(){const{global_alpha:a}=this;return!a.is_Scalar()||0!=a.value}v_doit(a){return 0!=this.global_alpha.get(a)}apply(a,t){const e=this.v_doit(t);return e&&this.set_vectorize(a,t),e}values(a){return{alpha:this.global_alpha.get(a)}}set_vectorize(a,t){const e=this.global_alpha.get(t);a.globalAlpha=e}}e.ImageVector=g,g.__name__=\"ImageVector\",_.prototype.type=\"image\",_.prototype.attrs=Object.keys(p.Image),i.prototype.type=\"image\",i.prototype.attrs=Object.keys(p.ImageScalar),g.prototype.type=\"image\",g.prototype.attrs=Object.keys(p.ImageVector)},\n",
" function _(e,a,s,t,r){var c;t();const n=e(51),_=e(92),o=e(97),i=e(99),g=e(100),l=e(101),u=e(94),h=e(102),y=e(105);class x{constructor(e,a){this.x_scale=e,this.y_scale=a,this.x_source=this.x_scale.source_range,this.y_source=this.y_scale.source_range,this.ranges=[this.x_source,this.y_source],this.scales=[this.x_scale,this.y_scale]}map_to_screen(e,a){return[this.x_scale.v_compute(e),this.y_scale.v_compute(a)]}map_from_screen(e,a){return[this.x_scale.v_invert(e),this.y_scale.v_invert(a)]}}s.CoordinateTransform=x,x.__name__=\"CoordinateTransform\";class p extends n.Model{constructor(e){super(e)}get x_ranges(){return new Map([[\"default\",this.x_source]])}get y_ranges(){return new Map([[\"default\",this.y_source]])}_get_scale(e,a,s){if(e instanceof y.FactorRange!=a instanceof g.CategoricalScale)throw new Error(`Range ${e.type} is incompatible is Scale ${a.type}`);a instanceof i.LogScale&&e instanceof h.DataRange1d&&(e.scale_hint=\"log\");const t=a.clone();return t.setv({source_range:e,target_range:s}),t}get_transform(e){const{x_source:a,x_scale:s,x_target:t}=this,r=this._get_scale(a,s,t),{y_source:c,y_scale:n,y_target:_}=this,o=this._get_scale(c,n,_),i=new l.CompositeScale({source_scale:r,source_range:r.source_range,target_scale:e.x_scale,target_range:e.x_target}),g=new l.CompositeScale({source_scale:o,source_range:o.source_range,target_scale:e.y_scale,target_range:e.y_target});return new x(i,g)}}s.CoordinateMapping=p,c=p,p.__name__=\"CoordinateMapping\",c.define((({Ref:e})=>({x_source:[e(u.Range),()=>new h.DataRange1d],y_source:[e(u.Range),()=>new h.DataRange1d],x_scale:[e(_.Scale),()=>new o.LinearScale],y_scale:[e(_.Scale),()=>new o.LinearScale],x_target:[e(u.Range)],y_target:[e(u.Range)]})))},\n",
" function _(e,t,r,n,s){var _;n();const a=e(93),c=e(94),o=e(95),i=e(24);class u extends a.Transform{constructor(e){super(e)}compute(e){return this.s_compute(e)}v_compute(e){const t=new i.ScreenArray(e.length),{s_compute:r}=this;for(let n=0;n({source_range:[e(c.Range)],target_range:[e(o.Range1d)]})))},\n",
" function _(n,s,o,r,c){r();const e=n(51);class t extends e.Model{constructor(n){super(n)}}o.Transform=t,t.__name__=\"Transform\"},\n",
" function _(t,e,n,l,s){var u;l();const a=t(51),i=t(21),o=(0,i.Nullable)((0,i.Or)((0,i.Tuple)((0,i.Nullable)(i.Float),(0,i.Nullable)(i.Float)),i.Auto));class r extends a.Model{constructor(t){super(t),this.have_updated_interactively=!1,this.plots=new Set}get computed_bounds(){return this._computed_bounds}get is_reversed(){return this.start>this.end}get is_valid(){return isFinite(this.min)&&isFinite(this.max)}get span(){return Math.abs(this.end-this.start)}}n.Range=r,u=r,r.__name__=\"Range\",u.define((({Float:t,Nullable:e})=>({bounds:[o,null,{on_update(t,e){const[n,l]=\"auto\"==t||null==t?[null,null]:t;e._computed_bounds=[n??-1/0,l??1/0]}}],min_interval:[e(t),null],max_interval:[e(t),null]})))},\n",
" function _(t,e,s,n,r){var a;n();const i=t(96);class _ extends i.NumericalRange{constructor(t){super(t)}_set_auto_bounds(){if(\"auto\"==this.bounds){const t=Math.min(this._reset_start,this._reset_end),e=Math.max(this._reset_start,this._reset_end);this._computed_bounds=[t,e]}}initialize(){super.initialize(),this._set_auto_bounds()}get min(){return Math.min(this.start,this.end)}get max(){return Math.max(this.start,this.end)}reset(){this._set_auto_bounds();const{_reset_start:t,_reset_end:e}=this;this.start!=t||this.end!=e?this.setv({start:t,end:e}):this.change.emit()}map(t){return new a({start:t(this.start),end:t(this.end)})}widen(t){let{start:e,end:s}=this;return this.is_reversed?(e+=t,s-=t):(e-=t,s+=t),new a({start:e,end:s})}}s.Range1d=_,a=_,_.__name__=\"Range1d\",a.define((({Float:t,Nullable:e})=>({reset_start:[e(t),null,{on_update(t,e){e._reset_start=t??e.start}}],reset_end:[e(t),null,{on_update(t,e){e._reset_end=t??e.end}}]}))),a.override({start:0,end:1})},\n",
" function _(n,e,t,c,r){var o;c();const a=n(1),s=n(94),u=a.__importStar(n(18)),_=n(11);class m extends s.Range{constructor(n){super(n)}}t.NumericalRange=m,o=m,m.__name__=\"NumericalRange\",o.define((({Float:n})=>({start:[n,u.unset,{convert(n,e){const[t,c]=e.computed_bounds;return(0,_.clamp)(n,t,c)}}],end:[n,u.unset,{convert(n,e){const[t,c]=e.computed_bounds;return(0,_.clamp)(n,t,c)}}]})))},\n",
" function _(t,e,n,r,s){r();const a=t(98);class _ extends a.ContinuousScale{constructor(t){super(t)}get s_compute(){const[t,e]=this._linear_compute_state();return n=>t*n+e}get s_invert(){const[t,e]=this._linear_compute_state();return n=>(n-e)/t}_linear_compute_state(){const t=this.source_range.start,e=this.source_range.end,n=this.target_range.start,r=(this.target_range.end-n)/(e-t);return[r,-r*t+n]}}n.LinearScale=_,_.__name__=\"LinearScale\"},\n",
" function _(n,c,o,s,e){s();const t=n(92);class u extends t.Scale{constructor(n){super(n)}}o.ContinuousScale=u,u.__name__=\"ContinuousScale\"},\n",
" function _(t,e,s,a,r){a();const o=t(98);class n extends o.ContinuousScale{constructor(t){super(t)}get s_compute(){const[t,e,s,a]=this._compute_state();return r=>{if(0==s)return 0;{const o=(Math.log(r)-a)/s;return isFinite(o)?o*t+e:NaN}}}get s_invert(){const[t,e,s,a]=this._compute_state();return r=>{const o=(r-e)/t;return Math.exp(s*o+a)}}_get_safe_factor(t,e){let s=t<0?0:t,a=e<0?0:e;if(s==a)if(0==s)[s,a]=[1,10];else{const t=Math.log10(s);s=10**Math.floor(t),a=Math.ceil(t)!=Math.floor(t)?10**Math.ceil(t):10**(Math.ceil(t)+1)}return[s,a]}_compute_state(){const t=this.source_range.start,e=this.source_range.end,s=this.target_range.start,a=this.target_range.end-s,[r,o]=this._get_safe_factor(t,e);let n,c;0==r?(n=Math.log(o),c=0):(n=Math.log(o/r),c=Math.log(r));return[a,s,n,c]}}s.LogScale=n,n.__name__=\"LogScale\"},\n",
" function _(t,e,c,a,s){a();const n=t(92),r=t(97),{_linear_compute_state:o}=r.LinearScale.prototype;class l extends n.Scale{constructor(t){super(t)}get s_compute(){const[t,e]=o.call(this),c=this.source_range;return a=>t*c.synthetic(a)+e}get s_invert(){const[t,e]=o.call(this);return c=>(c-e)/t}}c.CategoricalScale=l,l.__name__=\"CategoricalScale\"},\n",
" function _(e,t,s,c,r){var n;c();const _=e(92),o=e(13);class a extends _.Scale{constructor(e){super(e)}get s_compute(){const e=this.source_scale.s_compute,t=this.target_scale.s_compute;return s=>t(e(s))}get s_invert(){const e=this.source_scale.s_invert,t=this.target_scale.s_invert;return s=>e(t(s))}compute(e){return this.s_compute(e)}v_compute(e){const{s_compute:t}=this;return(0,o.map)(e,t)}invert(e){return this.s_invert(e)}v_invert(e){const{s_invert:t}=this;return(0,o.map)(e,t)}}s.CompositeScale=a,n=a,a.__name__=\"CompositeScale\",n.define((({Ref:e})=>({source_scale:[e(_.Scale)],target_scale:[e(_.Scale)]})))},\n",
" function _(t,i,n,a,e){var s;a();const l=t(1),_=t(103),o=t(20),r=t(34),d=t(11),h=t(19),u=l.__importStar(t(64)),g=t(104);n.auto_ranged=Symbol(\"auto_ranged\"),n.is_auto_ranged=function(t){return n.auto_ranged in t};class p extends _.DataRange{constructor(t){super(t),this.have_updated_interactively=!1}initialize(){super.initialize(),this._initial_start=isNaN(this.start)?null:this.start,this._initial_end=isNaN(this.end)?null:this.end,this._initial_range_padding=this.range_padding,this._initial_range_padding_units=this.range_padding_units,this._initial_follow=this.follow,this._initial_follow_interval=this.follow_interval,this._initial_default_span=this.default_span,this._plot_bounds=new Map}get min(){return Math.min(this.start,this.end)}get max(){return Math.max(this.start,this.end)}computed_renderers(){const{renderers:t}=this,i=(0,r.flat_map)(this.plots,(t=>t.auto_ranged_renderers.map((t=>t.model))));return(0,g.compute_renderers)(0==t.length?\"auto\":t,[...i])}_compute_plot_bounds(t,i){let n=u.empty();for(const a of t){const t=i.get(a);null==t||!a.visible&&this.only_visible||(n=u.union(n,t))}return n}adjust_bounds_for_aspect(t,i){const n=u.empty();let a=t.x1-t.x0;a<=0&&(a=1);let e=t.y1-t.y0;e<=0&&(e=1);const s=.5*(t.x1+t.x0),l=.5*(t.y1+t.y0);return ao&&(\"start\"==this.follow?l=s+_*o:\"end\"==this.follow&&(s=l-_*o)),[s,l]}update(t,i,n,a){if(this.have_updated_interactively)return;const e=this.computed_renderers();let s=this._compute_plot_bounds(e,t);null!=a&&(s=this.adjust_bounds_for_aspect(s,a)),this._plot_bounds.set(n,s);const[l,_]=this._compute_min_max(this._plot_bounds.entries(),i);let[o,r]=this._compute_range(l,_);null!=this._initial_start&&(\"log\"==this.scale_hint?this._initial_start>0&&(o=this._initial_start):o=this._initial_start),null!=this._initial_end&&(\"log\"==this.scale_hint?this._initial_end>0&&(r=this._initial_end):r=this._initial_end);let d=!1;\"auto\"==this.bounds&&(this._computed_bounds=[o,r],d=!0);const[h,u]=[this.start,this.end];if(o!=h||r!=u){const t={};o!=h&&(t.start=o),r!=u&&(t.end=r),this.setv(t),d=!1}d&&this.change.emit()}reset(){this.have_updated_interactively=!1,this.setv({range_padding:this._initial_range_padding,range_padding_units:this._initial_range_padding_units,follow:this._initial_follow,follow_interval:this._initial_follow_interval,default_span:this._initial_default_span},{silent:!0}),this.change.emit()}}n.DataRange1d=p,s=p,p.__name__=\"DataRange1d\",s.define((({Bool:t,Float:i,Nullable:n})=>({range_padding:[i,.1],range_padding_units:[o.PaddingUnits,\"percent\"],flipped:[t,!1],follow:[n(o.StartEnd),null],follow_interval:[n(i),null],default_span:[i,2],only_visible:[t,!1]}))),s.internal((({Enum:t})=>({scale_hint:[t(\"log\",\"auto\"),\"auto\"]})))},\n",
" function _(e,a,n,r,t){var s;r();const c=e(96);class o extends c.NumericalRange{constructor(e){super(e)}}n.DataRange=o,s=o,o.__name__=\"DataRange\",s.define((({List:e,AnyRef:a,Or:n,Auto:r})=>({renderers:[n(e(a()),r),[]]}))),s.override({start:NaN,end:NaN})},\n",
" function _(n,e,r,t,u){t(),r.compute_renderers=function(n,e){return\"auto\"==n?e:n??[]}},\n",
" function _(t,n,e,s,i){var r;s();const a=t(1),o=t(94),p=t(20),c=a.__importStar(t(18)),g=t(21),l=t(24),h=t(15),u=t(10),d=t(8),_=t(12);function f(t,n,e=0){const s=new Map;for(let i=0;ip.get(t).value)));i.set(t,{value:g/r,mapping:p}),a+=r+n+c}return[i,(r.size-1)*n+o]}function v(t,n,e,s,i=0){const r=new Map,a=new Map;for(const[n,e,s]of t){const t=a.get(n)??[];a.set(n,[...t,[e,s]])}let o=i,p=0;for(const[t,i]of a){const a=i.length,[c,g]=m(i,e,s,o);p+=g;const l=(0,u.sum)(i.map((([t])=>c.get(t).value)));r.set(t,{value:l/a,mapping:c}),o+=a+n+g}return[r,(a.size-1)*n+p]}e.Factor=(0,g.Or)(g.Str,(0,g.Tuple)(g.Str,g.Str),(0,g.Tuple)(g.Str,g.Str,g.Str)),e.FactorSeq=(0,g.Or)((0,g.List)(g.Str),(0,g.List)((0,g.Tuple)(g.Str,g.Str)),(0,g.List)((0,g.Tuple)(g.Str,g.Str,g.Str))),e.map_one_level=f,e.map_two_levels=m,e.map_three_levels=v;class S extends o.Range{constructor(t){super(t),this.invalidate_synthetic=new h.Signal0(this,\"invalidate_synthetic\")}get min(){return this.start}get max(){return this.end}initialize(){super.initialize(),this._init()}connect_signals(){super.connect_signals(),this.connect(this.properties.factors.change,(()=>this.reset())),this.connect(this.properties.factor_padding.change,(()=>this.reset())),this.connect(this.properties.group_padding.change,(()=>this.reset())),this.connect(this.properties.subgroup_padding.change,(()=>this.reset())),this.connect(this.properties.range_padding.change,(()=>this.reset())),this.connect(this.properties.range_padding_units.change,(()=>this.reset()))}reset(){this._init(),this.invalidate_synthetic.emit()}_lookup(t){switch(t.length){case 1:{const[n]=t,e=this._mapping.get(n);return null!=e?e.value:NaN}case 2:{const[n,e]=t,s=this._mapping.get(n);if(null!=s){const t=s.mapping.get(e);if(null!=t)return t.value}return NaN}case 3:{const[n,e,s]=t,i=this._mapping.get(n);if(null!=i){const t=i.mapping.get(e);if(null!=t){const n=t.mapping.get(s);if(null!=n)return n.value}}return NaN}}}synthetic(t){if((0,d.isNumber)(t))return t;if((0,d.isString)(t))return this._lookup([t]);let n=0;const e=t[t.length-1];return(0,d.isNumber)(e)&&(n=e,t=t.slice(0,-1)),this._lookup(t)+n}v_synthetic(t){const n=t.length,e=new l.ScreenArray(n);for(let s=0;s{if((0,u.every)(this.factors,d.isString)){const t=this.factors,[n,e]=f(t,this.factor_padding);return{levels:1,mapping:n,tops:null,mids:null,inside_padding:e}}if((0,u.every)(this.factors,(t=>(0,d.isArray)(t)&&2==t.length&&(0,d.isString)(t[0])&&(0,d.isString)(t[1])))){const t=this.factors,[n,e]=m(t,this.group_padding,this.factor_padding),s=[...n.keys()];return{levels:2,mapping:n,tops:s,mids:null,inside_padding:e}}if((0,u.every)(this.factors,(t=>(0,d.isArray)(t)&&3==t.length&&(0,d.isString)(t[0])&&(0,d.isString)(t[1])&&(0,d.isString)(t[2])))){const t=this.factors,[n,e]=v(t,this.group_padding,this.subgroup_padding,this.factor_padding),s=[...n.keys()],i=[];for(const[t,e]of n)for(const n of e.mapping.keys())i.push([t,n]);return{levels:3,mapping:n,tops:s,mids:i,inside_padding:e}}(0,_.unreachable)()})();this._mapping=n,this.tops=e,this.mids=s;let r=0,a=this.factors.length+i;if(\"percent\"==this.range_padding_units){const t=(a-r)*this.range_padding/2;r-=t,a+=t}else r-=this.range_padding,a+=this.range_padding;this.setv({start:r,end:a,levels:t},{silent:!0}),\"auto\"==this.bounds&&(this._computed_bounds=[r,a])}}e.FactorRange=S,r=S,S.__name__=\"FactorRange\",r.define((({Float:t})=>({factors:[e.FactorSeq,[]],factor_padding:[t,0],subgroup_padding:[t,.8],group_padding:[t,1.4],range_padding:[t,0],range_padding_units:[p.PaddingUnits,\"percent\"],start:[t,c.unset,{readonly:!0}],end:[t,c.unset,{readonly:!0}]}))),r.internal((({Float:t,Str:n,List:e,Tuple:s,Nullable:i})=>({levels:[t],mids:[i(e(s(n,n))),null],tops:[i(e(n)),null]})))},\n",
" function _(e,t,s,i,n){var o;i();const l=e(1),d=e(107),r=e(115),h=e(116),a=e(118),c=e(119),_=e(63),u=e(20),m=e(56),v=e(10),p=e(8),w=l.__importStar(e(120)),f=w,y=l.__importDefault(e(121));class b extends d.UIElementView{constructor(){super(...arguments),this._menu_views=new Map,this._open=!1,this._item_click=e=>{e.disabled||(e.action?.execute(this.model,{item:e}),this.hide())},this._on_mousedown=e=>{e.composedPath().includes(this.el)||this.prevent_hide?.(e)||this.hide()},this._on_keydown=e=>{\"Escape\"==e.key&&this.hide()},this._on_blur=()=>{this.hide()}}*children(){yield*super.children(),yield*this._menu_views.values()}async lazy_initialize(){await super.lazy_initialize();const e=this.model.items.map((e=>e instanceof h.ActionItem?e.menu:null)).filter(p.isNotNull);await(0,m.build_views)(this._menu_views,e,{parent:this})}get is_open(){return this._open}remove(){this._unlisten(),(0,m.remove_views)(this._menu_views),super.remove()}_listen(){document.addEventListener(\"mousedown\",this._on_mousedown),document.addEventListener(\"keydown\",this._on_keydown),window.addEventListener(\"blur\",this._on_blur)}_unlisten(){document.removeEventListener(\"mousedown\",this._on_mousedown),document.removeEventListener(\"keydown\",this._on_keydown),window.removeEventListener(\"blur\",this._on_blur)}stylesheets(){return[...super.stylesheets(),w.default,y.default]}render(){super.render();const e=(()=>{const{reversed:e,items:t}=this.model;return e?(0,v.reversed)(t):t})();for(const t of e)if(t instanceof c.DividerItem){const e=(0,_.div)({class:f.divider});this.shadow_el.append(e)}else if(t instanceof h.ActionItem){const e=(0,_.div)({class:f.check}),s=(0,_.div)({class:f.icon}),i=(0,_.div)({class:f.label},t.label),n=(0,_.div)({class:f.shortcut},t.shortcut),o=(0,_.div)({class:f.chevron}),{icon:l}=t;if(null!=l)if(l.startsWith(\"data:image\")){const e=`url(\"${encodeURI(l)}\")`;s.style.backgroundImage=e}else if(l.startsWith(\"--\"))s.style.backgroundImage=`var(${l})`;else if(l.startsWith(\".\")){const e=l.substring(1);s.classList.add(e)}else if(u.ToolIcon.valid(l)){const e=`bk-tool-icon-${l.replace(/_/g,\"-\")}`;s.classList.add(e)}const d=(0,_.div)({class:f.item,title:t.tooltip,tabIndex:0},e,s,i,n,o);d.classList.toggle(f.menu,null!=t.menu),d.classList.toggle(f.disabled,t.disabled),t instanceof a.CheckableItem&&(d.classList.add(f.checkable),d.classList.toggle(f.checked,t.checked)),d.addEventListener(\"click\",(()=>{this._item_click(t)})),d.addEventListener(\"keydown\",(e=>{\"Enter\"==e.key&&this._item_click(t)}));const{menu:r}=t;null!=r&&(d.addEventListener(\"pointerenter\",(()=>{this._menu_views.get(r)._show_submenu(d)})),d.addEventListener(\"pointerleave\",(()=>{this._menu_views.get(r).hide()}))),this.shadow_el.append(d)}}_show_submenu(e){if(0==this.model.items.length)return void this.hide();this.render(),e.append(this.el);const{style:t}=this.el;t.left=\"100%\",t.top=\"0\",this._listen(),this._open=!0}show(e){if(0==this.model.items.length)return void this.hide();const{parent:t}=this;if(null==t)return void this.hide();this.render();(t.el.shadowRoot??t.el).append(this.el);const{style:s}=this.el;s.left=(0,_.px)(e.x),s.top=(0,_.px)(e.y),this._listen(),this._open=!0}hide(){this._open&&(this._open=!1,this._unlisten(),this.el.remove())}}s.MenuView=b,b.__name__=\"MenuView\";class k extends d.UIElement{constructor(e){super(e)}}s.Menu=k,o=k,k.__name__=\"Menu\",o.prototype.default_view=b,o.define((({Bool:e,List:t,Ref:s})=>({items:[t(s(r.MenuItem)),[]],reversed:[e,!1]})))},\n",
" function _(e,t,s,i,l){var n;i();const r=e(1),_=e(51),o=e(59),a=e(108),h=e(109),u=e(57),y=e(56),c=e(65),d=e(63),p=e(110),b=e(64),f=e(9),x=e(8),m=r.__importDefault(e(114)),v=e(21);s.StylesLike=(0,v.Or)((0,v.Dict)((0,v.Nullable)(v.Str)),(0,v.Ref)(a.Styles)),s.StyleSheets=(0,v.List)((0,v.Or)((0,v.Ref)(h.StyleSheet),v.Str,(0,v.Dict)(s.StylesLike))),s.CSSVariables=(0,v.Dict)((0,v.Ref)(o.Node));const{round:g,floor:S}=Math;class w extends u.DOMComponentView{constructor(){super(...arguments),this._display=new d.InlineStyleSheet,this.style=new d.InlineStyleSheet,this._bbox=new b.BBox,this._context_menu=null,this._is_displayed=!1}*_css_classes(){yield*super._css_classes(),yield*this.model.css_classes}*_css_variables(){yield*super._css_variables();for(const[e,t]of(0,f.entries)(this.model.css_variables)){const s=this.resolve_coordinate(t);(0,x.isNumber)(s)&&(yield[e,`${s}px`])}}*_stylesheets(){yield*super._stylesheets(),yield this.style,yield this._display,yield*this._computed_stylesheets()}*_computed_stylesheets(){for(const e of this.model.stylesheets)e instanceof h.StyleSheet?yield e.underlying():yield new d.InlineStyleSheet(e)}stylesheets(){return[...super.stylesheets(),m.default]}update_style(){this.style.clear()}box_sizing(){return{width_policy:\"auto\",height_policy:\"auto\",width:null,height:null,aspect_ratio:null}}get bbox(){return this._bbox}update_bbox(){return this._update_bbox()}_update_bbox(){const e=(()=>{if(this.el.isConnected){if(null!=this.el.offsetParent)return!0;{const{position:e,display:t}=getComputedStyle(this.el);return\"fixed\"==e&&\"none\"!=t}}return!1})(),t=e?(()=>{const e=this.el.getBoundingClientRect(),{left:t,top:s}=(()=>{if(null!=this.parent){const t=this.parent.el.getBoundingClientRect();return{left:e.left-t.left,top:e.top-t.top}}return{left:0,top:0}})();return new b.BBox({left:g(t),top:g(s),width:S(e.width),height:S(e.height)})})():new b.BBox,s=!this._bbox.equals(t);return this._bbox=t,this._is_displayed=e,s}initialize(){super.initialize(),this._resize_observer=new ResizeObserver((e=>this.after_resize())),this._resize_observer.observe(this.el,{box:\"border-box\"})}async lazy_initialize(){await super.lazy_initialize();const{context_menu:e}=this.model;null!=e&&(this._context_menu=await(0,y.build_view)(e,{parent:this}))}connect_signals(){super.connect_signals();const{visible:e,styles:t,css_classes:s,css_variables:i,stylesheets:l}=this.model.properties;this.on_change(e,(()=>this._update_visible())),this.on_change(t,(()=>this._update_styles())),this.on_change(s,(()=>this._update_css_classes())),this.on_transitive_change(i,(()=>this._update_css_variables())),this.on_change(l,(()=>this._update_stylesheets())),this.el.addEventListener(\"contextmenu\",(e=>this.show_context_menu(e)))}get_context_menu(e){return this._context_menu}show_context_menu(e){if(!e.shiftKey){const t=this.el.getBoundingClientRect(),s=e.x-t.x,i=e.y-t.y,l=this.get_context_menu({x:s,y:i});null!=l&&(e.stopPropagation(),e.preventDefault(),l.show({x:s,y:i}))}}remove(){this._resize_observer.disconnect(),this._context_menu?.remove(),super.remove()}_after_resize(){}after_resize(){this.update_bbox()&&this._after_resize(),this.finish()}render(){super.render(),this._apply_styles(),this._apply_visible()}_after_render(){}after_render(){super.after_render(),this.update_style(),this.update_bbox(),this._after_render(),this.is_displayed||this.finish()}get is_displayed(){return this._is_displayed}_apply_visible(){this.model.visible?this._display.clear():this._display.replace(\":host { display: none !important; }\")}_apply_styles(){(0,c.apply_styles)(this.el.style,this.model.styles)}_update_visible(){this._apply_visible()}_update_styles(){this.el.removeAttribute(\"style\"),this._apply_styles()}export(e=\"auto\",t=!0){const s=\"auto\"==e||\"png\"==e?\"canvas\":\"svg\",i=new p.CanvasLayer(s,t),{width:l,height:n}=this.bbox;return i.resize(l,n),i}serializable_state(){return{...super.serializable_state(),bbox:this.bbox}}resolve_symbol(e){const t=this.bbox.resolve(e.symbol),{offset:s}=e;if((0,x.isNumber)(t))return t+s;{const{x:e,y:i}=t;return{x:e+s,y:i+s}}}}s.UIElementView=w,w.__name__=\"UIElementView\";class z extends _.Model{constructor(e){super(e)}}s.UIElement=z,n=z,z.__name__=\"UIElement\",n.define((({Bool:e,List:t,Str:i,AnyRef:l})=>({visible:[e,!0],css_classes:[t(i),[]],css_variables:[s.CSSVariables,{}],styles:[s.StylesLike,{}],stylesheets:[s.StyleSheets,[]],context_menu:[(0,v.Nullable)(l()),null]})))},\n",
" function _(l,n,u,_,e){var t;_();const o=l(51);class r extends o.Model{constructor(l){super(l)}}u.Styles=r,t=r,r.__name__=\"Styles\",t.define((({Str:l,Nullable:n})=>({align_content:[n(l),null],align_items:[n(l),null],align_self:[n(l),null],alignment_baseline:[n(l),null],all:[n(l),null],animation:[n(l),null],animation_delay:[n(l),null],animation_direction:[n(l),null],animation_duration:[n(l),null],animation_fill_mode:[n(l),null],animation_iteration_count:[n(l),null],animation_name:[n(l),null],animation_play_state:[n(l),null],animation_timing_function:[n(l),null],aspect_ratio:[n(l),null],backface_visibility:[n(l),null],background:[n(l),null],background_attachment:[n(l),null],background_clip:[n(l),null],background_color:[n(l),null],background_image:[n(l),null],background_origin:[n(l),null],background_position:[n(l),null],background_position_x:[n(l),null],background_position_y:[n(l),null],background_repeat:[n(l),null],background_size:[n(l),null],baseline_shift:[n(l),null],block_size:[n(l),null],border:[n(l),null],border_block_end:[n(l),null],border_block_end_color:[n(l),null],border_block_end_style:[n(l),null],border_block_end_width:[n(l),null],border_block_start:[n(l),null],border_block_start_color:[n(l),null],border_block_start_style:[n(l),null],border_block_start_width:[n(l),null],border_bottom:[n(l),null],border_bottom_color:[n(l),null],border_bottom_left_radius:[n(l),null],border_bottom_right_radius:[n(l),null],border_bottom_style:[n(l),null],border_bottom_width:[n(l),null],border_collapse:[n(l),null],border_color:[n(l),null],border_image:[n(l),null],border_image_outset:[n(l),null],border_image_repeat:[n(l),null],border_image_slice:[n(l),null],border_image_source:[n(l),null],border_image_width:[n(l),null],border_inline_end:[n(l),null],border_inline_end_color:[n(l),null],border_inline_end_style:[n(l),null],border_inline_end_width:[n(l),null],border_inline_start:[n(l),null],border_inline_start_color:[n(l),null],border_inline_start_style:[n(l),null],border_inline_start_width:[n(l),null],border_left:[n(l),null],border_left_color:[n(l),null],border_left_style:[n(l),null],border_left_width:[n(l),null],border_radius:[n(l),null],border_right:[n(l),null],border_right_color:[n(l),null],border_right_style:[n(l),null],border_right_width:[n(l),null],border_spacing:[n(l),null],border_style:[n(l),null],border_top:[n(l),null],border_top_color:[n(l),null],border_top_left_radius:[n(l),null],border_top_right_radius:[n(l),null],border_top_style:[n(l),null],border_top_width:[n(l),null],border_width:[n(l),null],bottom:[n(l),null],box_shadow:[n(l),null],box_sizing:[n(l),null],break_after:[n(l),null],break_before:[n(l),null],break_inside:[n(l),null],caption_side:[n(l),null],caret_color:[n(l),null],clear:[n(l),null],clip:[n(l),null],clip_path:[n(l),null],clip_rule:[n(l),null],color:[n(l),null],color_interpolation:[n(l),null],color_interpolation_filters:[n(l),null],column_count:[n(l),null],column_fill:[n(l),null],column_gap:[n(l),null],column_rule:[n(l),null],column_rule_color:[n(l),null],column_rule_style:[n(l),null],column_rule_width:[n(l),null],column_span:[n(l),null],column_width:[n(l),null],columns:[n(l),null],content:[n(l),null],counter_increment:[n(l),null],counter_reset:[n(l),null],cursor:[n(l),null],direction:[n(l),null],display:[n(l),null],dominant_baseline:[n(l),null],empty_cells:[n(l),null],fill:[n(l),null],fill_opacity:[n(l),null],fill_rule:[n(l),null],filter:[n(l),null],flex:[n(l),null],flex_basis:[n(l),null],flex_direction:[n(l),null],flex_flow:[n(l),null],flex_grow:[n(l),null],flex_shrink:[n(l),null],flex_wrap:[n(l),null],float:[n(l),null],flood_color:[n(l),null],flood_opacity:[n(l),null],font:[n(l),null],font_family:[n(l),null],font_feature_settings:[n(l),null],font_kerning:[n(l),null],font_size:[n(l),null],font_size_adjust:[n(l),null],font_stretch:[n(l),null],font_style:[n(l),null],font_synthesis:[n(l),null],font_variant:[n(l),null],font_variant_caps:[n(l),null],font_variant_east_asian:[n(l),null],font_variant_ligatures:[n(l),null],font_variant_numeric:[n(l),null],font_variant_position:[n(l),null],font_weight:[n(l),null],gap:[n(l),null],glyph_orientation_vertical:[n(l),null],grid:[n(l),null],grid_area:[n(l),null],grid_auto_columns:[n(l),null],grid_auto_flow:[n(l),null],grid_auto_rows:[n(l),null],grid_column:[n(l),null],grid_column_end:[n(l),null],grid_column_gap:[n(l),null],grid_column_start:[n(l),null],grid_gap:[n(l),null],grid_row:[n(l),null],grid_row_end:[n(l),null],grid_row_gap:[n(l),null],grid_row_start:[n(l),null],grid_template:[n(l),null],grid_template_areas:[n(l),null],grid_template_columns:[n(l),null],grid_template_rows:[n(l),null],height:[n(l),null],hyphens:[n(l),null],image_orientation:[n(l),null],image_rendering:[n(l),null],inline_size:[n(l),null],justify_content:[n(l),null],justify_items:[n(l),null],justify_self:[n(l),null],left:[n(l),null],letter_spacing:[n(l),null],lighting_color:[n(l),null],line_break:[n(l),null],line_height:[n(l),null],list_style:[n(l),null],list_style_image:[n(l),null],list_style_position:[n(l),null],list_style_type:[n(l),null],margin:[n(l),null],margin_block_end:[n(l),null],margin_block_start:[n(l),null],margin_bottom:[n(l),null],margin_inline_end:[n(l),null],margin_inline_start:[n(l),null],margin_left:[n(l),null],margin_right:[n(l),null],margin_top:[n(l),null],marker:[n(l),null],marker_end:[n(l),null],marker_mid:[n(l),null],marker_start:[n(l),null],mask:[n(l),null],mask_composite:[n(l),null],mask_image:[n(l),null],mask_position:[n(l),null],mask_repeat:[n(l),null],mask_size:[n(l),null],mask_type:[n(l),null],max_block_size:[n(l),null],max_height:[n(l),null],max_inline_size:[n(l),null],max_width:[n(l),null],min_block_size:[n(l),null],min_height:[n(l),null],min_inline_size:[n(l),null],min_width:[n(l),null],object_fit:[n(l),null],object_position:[n(l),null],opacity:[n(l),null],order:[n(l),null],orphans:[n(l),null],outline:[n(l),null],outline_color:[n(l),null],outline_offset:[n(l),null],outline_style:[n(l),null],outline_width:[n(l),null],overflow:[n(l),null],overflow_anchor:[n(l),null],overflow_wrap:[n(l),null],overflow_x:[n(l),null],overflow_y:[n(l),null],overscroll_behavior:[n(l),null],overscroll_behavior_block:[n(l),null],overscroll_behavior_inline:[n(l),null],overscroll_behavior_x:[n(l),null],overscroll_behavior_y:[n(l),null],padding:[n(l),null],padding_block_end:[n(l),null],padding_block_start:[n(l),null],padding_bottom:[n(l),null],padding_inline_end:[n(l),null],padding_inline_start:[n(l),null],padding_left:[n(l),null],padding_right:[n(l),null],padding_top:[n(l),null],page_break_after:[n(l),null],page_break_before:[n(l),null],page_break_inside:[n(l),null],paint_order:[n(l),null],perspective:[n(l),null],perspective_origin:[n(l),null],place_content:[n(l),null],place_items:[n(l),null],place_self:[n(l),null],pointer_events:[n(l),null],position:[n(l),null],quotes:[n(l),null],resize:[n(l),null],right:[n(l),null],rotate:[n(l),null],row_gap:[n(l),null],ruby_align:[n(l),null],ruby_position:[n(l),null],scale:[n(l),null],scroll_behavior:[n(l),null],shape_rendering:[n(l),null],stop_color:[n(l),null],stop_opacity:[n(l),null],stroke:[n(l),null],stroke_dasharray:[n(l),null],stroke_dashoffset:[n(l),null],stroke_linecap:[n(l),null],stroke_linejoin:[n(l),null],stroke_miterlimit:[n(l),null],stroke_opacity:[n(l),null],stroke_width:[n(l),null],tab_size:[n(l),null],table_layout:[n(l),null],text_align:[n(l),null],text_align_last:[n(l),null],text_anchor:[n(l),null],text_combine_upright:[n(l),null],text_decoration:[n(l),null],text_decoration_color:[n(l),null],text_decoration_line:[n(l),null],text_decoration_style:[n(l),null],text_emphasis:[n(l),null],text_emphasis_color:[n(l),null],text_emphasis_position:[n(l),null],text_emphasis_style:[n(l),null],text_indent:[n(l),null],text_justify:[n(l),null],text_orientation:[n(l),null],text_overflow:[n(l),null],text_rendering:[n(l),null],text_shadow:[n(l),null],text_transform:[n(l),null],text_underline_position:[n(l),null],top:[n(l),null],touch_action:[n(l),null],transform:[n(l),null],transform_box:[n(l),null],transform_origin:[n(l),null],transform_style:[n(l),null],transition:[n(l),null],transition_delay:[n(l),null],transition_duration:[n(l),null],transition_property:[n(l),null],transition_timing_function:[n(l),null],translate:[n(l),null],unicode_bidi:[n(l),null],user_select:[n(l),null],vertical_align:[n(l),null],visibility:[n(l),null],white_space:[n(l),null],widows:[n(l),null],width:[n(l),null],will_change:[n(l),null],word_break:[n(l),null],word_spacing:[n(l),null],word_wrap:[n(l),null],writing_mode:[n(l),null],z_index:[n(l),null]})))},\n",
" function _(e,t,n,l,r){var s,i;l();const u=e(1),S=e(51),_=u.__importStar(e(63));class d extends S.Model{constructor(e){super(e)}}n.StyleSheet=d,d.__name__=\"StyleSheet\";class h extends d{constructor(e){super(e)}underlying(){return new _.InlineStyleSheet(this.css)}}n.InlineStyleSheet=h,s=h,h.__name__=\"InlineStyleSheet\",s.define((({Str:e})=>({css:[e]})));class o extends d{constructor(e){super(e)}underlying(){return new _.ImportedStyleSheet(this.url)}}n.ImportedStyleSheet=o,i=o,o.__name__=\"ImportedStyleSheet\",i.define((({Str:e})=>({url:[e]})));class y extends h{constructor(e){super(e),this._underlying=null}underlying(){return null==this._underlying&&(this._underlying=new _.GlobalInlineStyleSheet(this.css)),this._underlying}}n.GlobalInlineStyleSheet=y,y.__name__=\"GlobalInlineStyleSheet\";class c extends o{constructor(e){super(e),this._underlying=null}underlying(){return null==this._underlying&&(this._underlying=new _.GlobalImportedStyleSheet(this.url)),this._underlying}}n.GlobalImportedStyleSheet=c,c.__name__=\"GlobalImportedStyleSheet\"},\n",
" function _(t,e,s,i,a){i();const n=t(111),r=t(64),h=t(63);class o{get canvas(){return this._canvas}get ctx(){return this._ctx}get el(){return this._el}constructor(t,e){switch(this.pixel_ratio=1,this.bbox=new r.BBox,this.backend=t,this.hidpi=e,t){case\"webgl\":case\"canvas\":{this._el=this._canvas=(0,h.canvas)({class:\"bk-layer\"});const t=this.canvas.getContext(\"2d\");if(null==t)throw new Error(\"unable to obtain 2D rendering context\");this._ctx=t,e&&(this.pixel_ratio=devicePixelRatio);break}case\"svg\":{const t=new n.SVGRenderingContext2D;this._ctx=t,this._canvas=t.get_svg(),this._el=(0,h.div)({class:\"bk-layer\"});this._el.attachShadow({mode:\"open\"}).appendChild(this._canvas);break}}this._ctx.layer=this}resize(t,e){if(this.bbox.width==t&&this.bbox.height==e)return;this.bbox=new r.BBox({left:0,top:0,width:t,height:e});const{target:s}=this;s.width=t*this.pixel_ratio,s.height=e*this.pixel_ratio}get target(){return this._ctx instanceof n.SVGRenderingContext2D?this._ctx:this.canvas}undo_transform(t){const{ctx:e}=this,s=e.getTransform();e.resetTransform();try{t(e)}finally{e.setTransform(s)}}prepare(){const{ctx:t,hidpi:e,pixel_ratio:s}=this;t.save(),e&&(t.scale(s,s),t.translate(.5,.5)),this.clear()}clear(){const{x:t,y:e,width:s,height:i}=this.bbox;this.ctx.clearRect(t,e,s,i)}finish(){this.ctx.restore()}to_blob(){const{_canvas:t}=this;if(t instanceof HTMLCanvasElement)return new Promise(((e,s)=>{t.toBlob((t=>null!=t?e(t):s()),\"image/png\")}));{const t=this._ctx.get_serialized_svg(!0),e=new Blob([t],{type:\"image/svg+xml\"});return Promise.resolve(e)}}}s.CanvasLayer=o,o.__name__=\"CanvasLayer\"},\n",
" function _(t,e,i,s,r){s();const n=t(112),a=t(8),o=t(113),l=t(11),h=t(63);function _(t){const e={left:\"start\",right:\"end\",center:\"middle\",start:\"start\",end:\"end\"};return t in e?e[t]:e.start}function c(t){const e={alphabetic:\"alphabetic\",hanging:\"hanging\",top:\"text-before-edge\",bottom:\"text-after-edge\",middle:\"central\"};return t in e?e[t]:e.alphabetic}const p=function(t,e){const i=new Map,s=t.split(\",\");e=e??10;for(let t=0;t=0?Math.acos(e):-Math.acos(e)}const v=A(g),w=A(b);this.lineTo(m+g[0]*r,f+g[1]*r),this.arc(m,f,r,v,w)}stroke(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"fill\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"stroke\"),null!=this._clip_path&&this.__currentElement.setAttribute(\"clip-path\",this._clip_path)}fill(t,e){let i=null;if(t instanceof Path2D)i=t;else{if(null!=e)throw new Error(\"invalid arguments\");e=t}if(null!=i)throw new Error(\"not implemented\");\"none\"!=this.__currentElement.getAttribute(\"fill\")&&this.__init_element(),\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"stroke\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"fill\"),null!=e&&this.__currentElement.setAttribute(\"fill-rule\",e),null!=this._clip_path&&this.__currentElement.setAttribute(\"clip-path\",this._clip_path)}rect(t,e,i,s){isFinite(t+e+i+s)&&(this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+s),this.lineTo(t,e+s),this.lineTo(t,e),this.closePath())}fillRect(t,e,i,s){isFinite(t+e+i+s)&&(this.beginPath(),this.rect(t,e,i,s),this.fill())}strokeRect(t,e,i,s){isFinite(t+e+i+s)&&(this.beginPath(),this.rect(t,e,i,s),this.stroke())}__clearCanvas(){(0,h.empty)(this.__defs),(0,h.empty)(this.__root),this.__root.appendChild(this.__defs),this.__currentElement=this.__root}clearRect(t,e,i,s){if(!isFinite(t+e+i+s))return;if(0===t&&0===e&&i===this.width&&s===this.height)return void this.__clearCanvas();const r=this.__createElement(\"rect\",{x:t,y:e,width:i,height:s,fill:\"#FFFFFF\"},!0);this._apply_transform(r),this.__root.appendChild(r)}roundRect(t,e,i,s,r){throw new Error(\"not implemented\")}createLinearGradient(t,e,i,s){if(!isFinite(t+e+i+s))throw new Error(\"The provided double value is non-finite\");const[r,n]=this._transform.apply(t,e),[a,o]=this._transform.apply(i,s),l=this.__createElement(\"linearGradient\",{id:this._random_string(),x1:`${r}px`,x2:`${a}px`,y1:`${n}px`,y2:`${o}px`,gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(l),new m(l,this)}createRadialGradient(t,e,i,s,r,n){if(!isFinite(t+e+i+s+r+n))throw new Error(\"The provided double value is non-finite\");const[a,o]=this._transform.apply(t,e),[l,h]=this._transform.apply(s,r),_=this.__createElement(\"radialGradient\",{id:this._random_string(),cx:`${l}px`,cy:`${h}px`,r:`${n}px`,r0:`${i}px`,fx:`${a}px`,fy:`${o}px`,gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(_),new m(_,this)}createConicGradient(t,e,i){throw Error(\"not implemented\")}__parseFont(){const[,t,e,i,s,,r]=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\'\\\"\\sa-z0-9]+?)\\s*$/i.exec(this.font);return{style:t??\"normal\",size:s??\"10px\",family:r??\"sans-serif\",weight:i??\"normal\",decoration:e??\"normal\"}}__applyText(t,e,i,s){const r=this.__parseFont(),n=this.__createElement(\"text\",{\"font-family\":r.family,\"font-size\":r.size,\"font-style\":r.style,\"font-weight\":r.weight,\"text-decoration\":r.decoration,x:e,y:i,\"text-anchor\":_(this.textAlign),\"dominant-baseline\":c(this.textBaseline)},!0);n.appendChild(this.__document.createTextNode(t)),this._apply_transform(n),this.__currentElement=n,this.__applyStyleToCurrentElement(s);const a=(()=>{if(null!=this._clip_path){const t=this.__createElement(\"g\");return t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(n),t}return n})();this.__root.appendChild(a)}fillText(t,e,i){isFinite(e+i)&&this.__applyText(t,e,i,\"fill\")}strokeText(t,e,i){isFinite(e+i)&&this.__applyText(t,e,i,\"stroke\")}measureText(t){return this.__ctx.font=this.font,this.__ctx.measureText(t)}arc(t,e,i,s,r,n=!1){this.ellipse(t,e,i,i,0,s,r,n)}ellipse(t,e,i,s,r,a,o,h=!1){if(!isFinite(t+e+i+s+r+a+o))return;if(i<0||s<0)throw new DOMException(\"IndexSizeError, radius can't be negative\");const _=h?o-a:a-o;a%=2*Math.PI,o%=2*Math.PI;const c=(new n.AffineTransform).translate(t,e).rotate(r),p=i*Math.cos(a),u=s*Math.sin(a),[d,m]=c.apply(p,u);this.lineTo(d,m);const f=180*r/Math.PI,g=h?0:1;if(Math.abs(a-o)<2*l.float32_epsilon&&!(Math.abs(_)<2*l.float32_epsilon&&_<0)){const[t,e]=this._transform.apply(d,m),r=i*Math.cos(a+Math.PI),n=s*Math.sin(a+Math.PI),[o,l]=c.apply(r,n),[h,_]=this._transform.apply(o,l);this.__addPathCommand(t,e,`A ${i} ${s} ${f} 0 ${g} ${h} ${_} A ${i} ${s} ${f} 0 ${g} ${t} ${e}`)}else{const t=i*Math.cos(o),e=s*Math.sin(o),[r,n]=c.apply(t,e);let l=o-a;l<0&&(l+=2*Math.PI);const _=h!==l>Math.PI?1:0,[p,u]=this._transform.apply(r,n);this.__addPathCommand(p,u,`A ${i} ${s} ${f} ${_} ${g} ${p} ${u}`)}}clip(t,e){let i=null;if(t instanceof Path2D)i=t;else{if(null!=e)throw new Error(\"invalid arguments\");e=t}if(null!=i)throw new Error(\"not implemented\");const s=this.__createElement(\"clipPath\"),r=this._random_string();this.__applyCurrentDefaultPath(),null!=e&&this.__currentElement.setAttribute(\"clip-rule\",e),s.setAttribute(\"id\",r),s.appendChild(this.__currentElement),this.__defs.appendChild(s),this._clip_path=`url(#${r})`}drawImage(t,...e){let i,s,r,n,a,o,l,h;if(2==e.length){if([i,s]=e,!isFinite(i+s))return;a=0,o=0;const[_,c]=d(t);r=l=_,n=h=c}else if(4==e.length){if([i,s,r,n]=e,!isFinite(i+s+r+n))return;a=0,o=0;const[_,c]=d(t);l=_,h=c}else{if(8!==e.length)throw new Error(`Inavlid number of arguments passed to drawImage: ${arguments.length}`);if([a,o,l,h,i,s,r,n]=e,!isFinite(a+o+l+h+i+s+r+n))return}const _=this.__root,c=this._transform.clone().translate(i,s);if(t instanceof g||t instanceof SVGSVGElement){const e=(t instanceof SVGSVGElement?t:t.get_svg()).cloneNode(!0);let i;c.is_identity&&1==this.globalAlpha&&null==this._clip_path?i=_:(i=this.__createElement(\"g\"),c.is_identity||this._apply_transform(i,c),1!=this.globalAlpha&&i.setAttribute(\"opacity\",`${this.globalAlpha}`),null!=this._clip_path&&i.setAttribute(\"clip-path\",this._clip_path),_.appendChild(i));for(const t of[...e.childNodes])if(t instanceof SVGDefsElement){for(const e of[...t.childNodes])if(e instanceof Element){const t=e.getAttribute(\"id\");this.__ids.add(t),this.__defs.appendChild(e.cloneNode(!0))}}else i.appendChild(t.cloneNode(!0))}else if(t instanceof HTMLImageElement||t instanceof SVGImageElement){const e=this.__createElement(\"image\");if(e.setAttribute(\"width\",`${r}`),e.setAttribute(\"height\",`${n}`),e.setAttribute(\"preserveAspectRatio\",\"none\"),1!=this.globalAlpha&&e.setAttribute(\"opacity\",`${this.globalAlpha}`),0!=a||0!=o||l!==t.width||h!==t.height){const e=this.__document.createElement(\"canvas\");e.width=r,e.height=n;e.getContext(\"2d\").drawImage(t,a,o,l,h,0,0,r,n),t=e}this._apply_transform(e,c);const i=t instanceof HTMLCanvasElement?t.toDataURL():t.getAttribute(\"src\");if(e.setAttribute(\"href\",i),null!=this._clip_path){const t=this.__createElement(\"g\");t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(e),_.appendChild(t)}else _.appendChild(e)}else if(t instanceof HTMLCanvasElement){const e=this.__createElement(\"image\");e.setAttribute(\"width\",`${r}`),e.setAttribute(\"height\",`${n}`),e.setAttribute(\"preserveAspectRatio\",\"none\"),1!=this.globalAlpha&&e.setAttribute(\"opacity\",`${this.globalAlpha}`);const i=this.__document.createElement(\"canvas\");i.width=r,i.height=n;const s=i.getContext(\"2d\");if(s.imageSmoothingEnabled=!1,s.drawImage(t,a,o,l,h,0,0,r,n),t=i,this._apply_transform(e,c),e.setAttribute(\"href\",t.toDataURL()),null!=this._clip_path){const t=this.__createElement(\"g\");t.setAttribute(\"clip-path\",this._clip_path),t.appendChild(e),_.appendChild(t)}else _.appendChild(e)}}createPattern(t,e){const i=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"pattern\"),s=this._random_string(),[r,n]=d(t);if(i.setAttribute(\"id\",s),i.setAttribute(\"width\",`${r}`),i.setAttribute(\"height\",`${n}`),i.setAttribute(\"patternUnits\",\"userSpaceOnUse\"),t instanceof HTMLCanvasElement||t instanceof HTMLImageElement||t instanceof SVGImageElement){const e=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\"),s=t instanceof HTMLCanvasElement?t.toDataURL():t.getAttribute(\"src\");e.setAttribute(\"href\",s),i.appendChild(e),this.__defs.appendChild(i)}else if(t instanceof g){for(const e of[...t.__root.childNodes])e instanceof SVGDefsElement||i.appendChild(e.cloneNode(!0));this.__defs.appendChild(i)}else{if(!(t instanceof SVGSVGElement))throw new Error(\"unsupported\");for(const e of[...t.childNodes])e instanceof SVGDefsElement||i.appendChild(e.cloneNode(!0));this.__defs.appendChild(i)}return new f(i,this)}getLineDash(){const{lineDash:t}=this;return(0,a.isString)(t)?t.split(\",\").map((t=>parseInt(t))):t??[]}setLineDash(t){t.length>0?this.lineDash=t.join(\",\"):this.lineDash=null}getTransform(){return this._transform.to_DOMMatrix()}setTransform(...t){let e;e=(0,a.isNumber)(t[0])?new DOMMatrix(t):t[0]instanceof DOMMatrix?t[0]:new DOMMatrix(Object.values(null==t[0])),this._transform=n.AffineTransform.from_DOMMatrix(e)}resetTransform(){this._transform=new n.AffineTransform}isPointInPath(...t){throw new Error(\"not implemented\")}isPointInStroke(...t){throw new Error(\"not implemented\")}createImageData(...t){throw new Error(\"not implemented\")}getImageData(t,e,i,s){throw new Error(\"not implemented\")}putImageData(...t){throw new Error(\"not implemented\")}drawFocusIfNeeded(...t){throw new Error(\"not implemented\")}scrollPathIntoView(...t){throw new Error(\"not implemented\")}}i.SVGRenderingContext2D=g,g.__name__=\"SVGRenderingContext2D\",g.__random=o.random},\n",
" function _(t,r,s,e,i){e();const n=t(26),{sin:a,cos:h}=Math;class o{constructor(t=1,r=0,s=0,e=1,i=0,n=0){this.a=t,this.b=r,this.c=s,this.d=e,this.e=i,this.f=n}toString(){const{a:t,b:r,c:s,d:e,e:i,f:n}=this;return`matrix(${t}, ${r}, ${s}, ${e}, ${i}, ${n})`}static from_DOMMatrix(t){const{a:r,b:s,c:e,d:i,e:n,f:a}=t;return new o(r,s,e,i,n,a)}to_DOMMatrix(){const{a:t,b:r,c:s,d:e,e:i,f:n}=this;return new DOMMatrix([t,r,s,e,i,n])}clone(){const{a:t,b:r,c:s,d:e,e:i,f:n}=this;return new o(t,r,s,e,i,n)}[n.equals](t,r){return r.eq(this.a,t.a)&&r.eq(this.b,t.b)&&r.eq(this.c,t.c)&&r.eq(this.d,t.d)&&r.eq(this.e,t.e)&&r.eq(this.f,t.f)}reset(){this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0}get is_identity(){const{a:t,b:r,c:s,d:e,e:i,f:n}=this;return 1==t&&0==r&&0==s&&1==e&&0==i&&0==n}apply_point(t){const[r,s]=this.apply(t.x,t.y);return{x:r,y:s}}apply_rect(t){return{p0:this.apply_point(t.p0),p1:this.apply_point(t.p1),p2:this.apply_point(t.p2),p3:this.apply_point(t.p3)}}apply(t,r){const{a:s,b:e,c:i,d:n,e:a,f:h}=this;return[s*t+i*r+a,e*t+n*r+h]}iv_apply(t,r){const{a:s,b:e,c:i,d:n,e:a,f:h}=this,o=t.length;for(let c=0;cthis.uniform(t,e)))}normal(t,e){return this.normals(t,e,1)[0]}normals(t,e,n){const[s,r]=[t,e],l=new Float64Array(n);for(let t=0;t({icon:[n(r),null],label:[l],tooltip:[n(l),null],shortcut:[n(l),null],menu:[n(t()),null],disabled:[e,!1],action:[n(o(u.Callback)),null]})))},\n",
" function _(c,a,l,n,s){n();const e=c(51);class o extends e.Model{constructor(c){super(c)}}l.Callback=o,o.__name__=\"Callback\"},\n",
" function _(e,c,t,n,o){var s;n();const a=e(116);class _ extends a.ActionItem{constructor(e){super(e)}}t.CheckableItem=_,s=_,_.__name__=\"CheckableItem\",s.define((({Bool:e})=>({checked:[e,!1]})))},\n",
" function _(e,t,n,s,c){s();const i=e(115);class r extends i.MenuItem{constructor(e){super(e)}}n.DividerItem=r,r.__name__=\"DividerItem\"},\n",
" function _(e,o,r,i,t){i(),r.item=\"bk-item\",r.divider=\"bk-divider\",r.check=\"bk-check\",r.icon=\"bk-icon\",r.label=\"bk-label\",r.shortcut=\"bk-shortcut\",r.chevron=\"bk-chevron\",r.disabled=\"bk-disabled\",r.menu=\"bk-menu\",r.checkable=\"bk-checkable\",r.checked=\"bk-checked\",r.default=\":host{position:absolute;display:inline-grid;grid-template-columns:repeat(5, max-content);grid-template-rows:auto;user-select:none;-webkit-user-select:none;cursor:pointer;width:auto;height:auto;z-index:var(--bokeh-top-level);font-size:var(--font-size);background-color:#fff;border:1px solid #ccc;border-radius:var(--border-radius);box-shadow:2px 4px 8px rgba(0, 0, 0, 0.175);}.bk-item,.bk-divider{position:relative;display:grid;grid-template-columns:subgrid;grid-column:span 5;align-items:center;}.bk-check{grid-column:1;}.bk-icon{grid-column:2;}.bk-label{grid-column:3;}.bk-shortcut{grid-column:4;}.bk-chevron{grid-column:5;}.bk-divider{cursor:default;overflow:hidden;background-color:#e5e5e5;height:1px;margin:1px 5px;}.bk-item{padding:0.5em;}.bk-item:hover{background-color:#f9f9f9;}.bk-item:focus,.bk-item:focus-visible{outline:1px dotted var(--active-tool-highlight);outline-offset:-1px;}.bk-item::-moz-focus-inner{border:0;}.bk-item.bk-disabled{color:gray;}.bk-item.bk-disabled .bk-icon{color:var(--bokeh-icon-color-disabled);}.bk-item:first-of-type{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);}.bk-item:last-of-type{border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);}.bk-icon{position:relative;width:16px;height:16px;mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-position:center center;-webkit-mask-position:center center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;background-size:100% 100%;background-origin:border-box;background-position:center center;background-repeat:no-repeat;}.bk-label{padding:0 0.5em;}.bk-shortcut{text-align:right;font-size:90%;color:gray;}.bk-chevron{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-caret-right);-webkit-mask-image:var(--bokeh-icon-caret-right);mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-position:center center;-webkit-mask-position:center center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;width:12px;height:12px;}.bk-item:not(.bk-menu) .bk-chevron{display:none;}.bk-item.bk-checkable .bk-check{width:16px;height:16px;}.bk-item.bk-checkable.bk-checked .bk-check{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-check);-webkit-mask-image:var(--bokeh-icon-check);mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-position:center center;-webkit-mask-position:center center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;}\"},\n",
" function _(o,e,t,i,n){i(),t.tool_icon_square_check=t.tool_icon_square=t.tool_icon_check=t.tool_icon_text_align_right=t.tool_icon_text_align_center=t.tool_icon_text_align_left=t.tool_icon_italic=t.tool_icon_bold=t.tool_icon_delete=t.tool_icon_pointer=t.tool_icon_unpin=t.tool_icon_pin=t.tool_icon_maximize=t.tool_icon_minimize=t.tool_icon_arrow_up_from_bar=t.tool_icon_arrow_down_to_bar=t.tool_icon_y_grip=t.tool_icon_x_grip=t.tool_icon_see_off=t.tool_icon_see_on=void 0,t.tool_icon_copy=\"bk-tool-icon-copy\",t.tool_icon_replace_mode=\"bk-tool-icon-replace-mode\",t.tool_icon_append_mode=\"bk-tool-icon-append-mode\",t.tool_icon_intersect_mode=\"bk-tool-icon-intersect-mode\",t.tool_icon_subtract_mode=\"bk-tool-icon-subtract-mode\",t.tool_icon_xor_mode=\"bk-tool-icon-xor-mode\",t.tool_icon_invert_selection=\"bk-tool-icon-invert-selection\",t.tool_icon_clear_selection=\"bk-tool-icon-clear-selection\",t.tool_icon_box_select=\"bk-tool-icon-box-select\",t.tool_icon_x_box_select=\"bk-tool-icon-x-box-select\",t.tool_icon_y_box_select=\"bk-tool-icon-y-box-select\",t.tool_icon_box_zoom=\"bk-tool-icon-box-zoom\",t.tool_icon_x_box_zoom=\"bk-tool-icon-x-box-zoom\",t.tool_icon_y_box_zoom=\"bk-tool-icon-y-box-zoom\",t.tool_icon_auto_box_zoom=\"bk-tool-icon-auto-box-zoom\",t.tool_icon_zoom_in=\"bk-tool-icon-zoom-in\",t.tool_icon_zoom_out=\"bk-tool-icon-zoom-out\",t.tool_icon_help=\"bk-tool-icon-help\",t.tool_icon_hover=\"bk-tool-icon-hover\",t.tool_icon_crosshair=\"bk-tool-icon-crosshair\",t.tool_icon_lasso_select=\"bk-tool-icon-lasso-select\",t.tool_icon_pan=\"bk-tool-icon-pan\",t.tool_icon_x_pan=\"bk-tool-icon-x-pan\",t.tool_icon_y_pan=\"bk-tool-icon-y-pan\",t.tool_icon_range=\"bk-tool-icon-range\",t.tool_icon_polygon_select=\"bk-tool-icon-polygon-select\",t.tool_icon_redo=\"bk-tool-icon-redo\",t.tool_icon_reset=\"bk-tool-icon-reset\",t.tool_icon_save=\"bk-tool-icon-save\",t.tool_icon_tap_select=\"bk-tool-icon-tap-select\",t.tool_icon_undo=\"bk-tool-icon-undo\",t.tool_icon_wheel_pan=\"bk-tool-icon-wheel-pan\",t.tool_icon_wheel_zoom=\"bk-tool-icon-wheel-zoom\",t.tool_icon_box_edit=\"bk-tool-icon-box-edit\",t.tool_icon_freehand_draw=\"bk-tool-icon-freehand-draw\",t.tool_icon_poly_draw=\"bk-tool-icon-poly-draw\",t.tool_icon_point_draw=\"bk-tool-icon-point-draw\",t.tool_icon_poly_edit=\"bk-tool-icon-poly-edit\",t.tool_icon_line_edit=\"bk-tool-icon-line-edit\",t.tool_icon_settings=\"bk-tool-icon-settings\",t.tool_icon_unknown=\"bk-tool-icon-unknown\",t.tool_icon_fullscreen=\"bk-tool-icon-fullscreen\",t.tool_icon_chevron_up=\"bk-tool-icon-chevron-up\",t.tool_icon_chevron_down=\"bk-tool-icon-chevron-down\",t.tool_icon_chevron_left=\"bk-tool-icon-chevron-left\",t.tool_icon_chevron_right=\"bk-tool-icon-chevron-right\",t.tool_icon_caret_up=\"bk-tool-icon-caret-up\",t.tool_icon_caret_down=\"bk-tool-icon-caret-down\",t.tool_icon_caret_left=\"bk-tool-icon-caret-left\",t.tool_icon_caret_right=\"bk-tool-icon-caret-right\",t.tool_icon_see_on=\"bk-tool-icon-see-on\",t.tool_icon_see_off=\"bk-tool-icon-see-off\",t.tool_icon_x_grip=\"bk-tool-icon-x-grip\",t.tool_icon_y_grip=\"bk-tool-icon-y-grip\",t.tool_icon_arrow_down_to_bar=\"bk-tool-icon-arrow-down-to-bar\",t.tool_icon_arrow_up_from_bar=\"bk-tool-icon-arrow-up-from-bar\",t.tool_icon_minimize=\"bk-tool-icon-minimize\",t.tool_icon_maximize=\"bk-tool-icon-maximize\",t.tool_icon_pin=\"bk-tool-icon-pin\",t.tool_icon_unpin=\"bk-tool-icon-unpin\",t.tool_icon_pointer=\"bk-tool-icon-pointer\",t.tool_icon_delete=\"bk-tool-icon-delete\",t.tool_icon_bold=\"bk-tool-icon-bold\",t.tool_icon_italic=\"bk-tool-icon-italic\",t.tool_icon_text_align_left=\"bk-tool-icon-text-align-left\",t.tool_icon_text_align_center=\"bk-tool-icon-text-align-center\",t.tool_icon_text_align_right=\"bk-tool-icon-text-align-right\",t.tool_icon_check=\"bk-tool-icon-check\",t.tool_icon_square=\"bk-tool-icon-square\",t.tool_icon_square_check=\"bk-tool-icon-square-check\",t.default=':host{--bokeh-icon-color:#a1a6a9;--bokeh-icon-color-disabled:#d4d9db;}.bk-tool-icon-copy{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-copy);-webkit-mask-image:var(--bokeh-icon-copy);}.bk-tool-icon-replace-mode{background-image:var(--bokeh-icon-replace-mode, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AUFFxokK3gniQAAAHpJREFUWMNjXLhsJcNAAiaGAQajDhhwB7DgEP+PxmeksvjgDwFcLmYkUh2hkBj8IcBIZXsYh1w2/I8v3sgAOM0bLYhGc8GgrwuICgldfQO88pcvXvg/aOuCUQeM5oLRuoCFCJcTbOMh5XOiW0JDNhdQS3y0IBp1ABwAAF8KGrhC1Eg6AAAAAElFTkSuQmCC\"));}.bk-tool-icon-append-mode{background-image:var(--bokeh-icon-append-mode, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AUFFxkZWD04WwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAoUlEQVRYw+1WQQ6AIAwrhO8Y/bIXEz9jIMSDr8ETCUEPQzA4pMeFLKNbu4l5WR0CDOMEALBGIzMuQIBEZQjPgP9JLjwTfBjY9sO9lZsFA9IafZng3BlIyVefgd8XQFZBAWe8jfNxwsDhir6rzoCiPiy1K+J8/FRQemv2XfAdFcQ9znU4Viqg9ta1qYJ+D1BnAIBrkgGVOrXNqUA9rbyZm/AEzFh4jEeY/soAAAAASUVORK5CYII=\"));}.bk-tool-icon-intersect-mode{background-image:var(--bokeh-icon-intersect-mode, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AUFFxkrkOpp2wAAAPhJREFUWMPtV1EKwjAMTUavI3oawR/vtn5srJdREfzwMvHHQlcT2mpdMzFfWxiP5r2+JMN+mAiCOB72CABgR1cln4oOGocJnuMTSxWk8jMm7OggYkYXA9gPE3uyd8NXHONJ+eYMdE/NqCJmEZ5ZqlJJ4sUksKN7cYSaPoCZFWR1QI+Xm1fBACU63Cw22x0AAJxudwrffVwvZ+JmQdAHZkw0d4EpAMCw8k87pMdbnwtizQumJYv3nwV6XOA1qbUT/oQLUJgFRbsiNwFVucBIlyR3p0tdMp+XmFjfLKi1LatyAXtCRjPWBdL3Ke3VuACJKFfDr/xFN2fgAR/Go0qaLlmEAAAAAElFTkSuQmCC\"));}.bk-tool-icon-subtract-mode{background-image:var(--bokeh-icon-subtract-mode, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AUFFxgsF5XNOQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAABFUlEQVRYw9VWUQqDMAxNpWfxQxD1MoP97G7zQ5mH2RTZYLtM9lWoMbXtxLXNX4OG9r28l4hrd0PQoqxqAACYpxH25C/nkwCHyCBwSPoS09k1T5Fo+4EiExcC4v584xGFmyIXHBLRISAVZyZufUPVa4rcrwmPDgr93ylo+2GliLRUYHK6th/o/6r7nfLpqaCsagEA8Hh9FmcNKeRmgeYDC+SCq0B6FFi8/BcV6BdR9cL3gCv3ijPKOacsn3rBEcjmaVxpfGcg4wHxzgJJnc6241Hn23DERFRAu1bNcWa3Q0uXi62XR6sCaWoSejbtdLYmU3kTEunNgj0bUbQqYG/IcMaqwPS9jftoVCAQ0ZVDJwf0zQdH4AsyW6fpQu4YegAAAABJRU5ErkJggg==\"));}.bk-tool-icon-xor-mode{background-image:var(--bokeh-icon-xor-mode, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAAmJLR0QA/4ePzL8AAACXSURBVEjH3VXBCcAwCDxLxgl0oM7nQEL3sa9ASLQIqS3UT4SIOfXOECsAADsAwb1/ECbbsGilvdKfli9OgmUEdGo8uKb0QIZ6PUvrwfcJzCn0zGtM9fx1BKzzFMTgvRf3jBZGs1TnxeVNwUIxxsqrWmBNYmJptewBBuZMwas3uiP+sA+8i8i2rpSlRg7+FaxZCHpFpu/EC1y3NtihGuwKAAAAAElFTkSuQmCC\"));}.bk-tool-icon-invert-selection{background-image:var(--bokeh-icon-invert-selection, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAAmJLR0QA/4ePzL8AAAC2SURBVEjH7VVJEoQwCGysPMeqPCjv40FU+R/moCbMmEWNenFygUug6aYTmhRdZwBeX8ClVJboCRDN5SN4zc8gkBaCtaONKZ+vB0JEcT0HtmvtBALS+rnatAEAF/KcCroThXKZRAP0J3IUT25bpG33m1TwBCCqQOY9IKtCDsVkiOxQQdR6we2dlR+ws7FMYQObKsgJFUyB8Wtev2W+hYB1dtoxFa4mMaJQqb6PDRmPeIH+X1t/gQ8PhzjuVbw+wwAAAABJRU5ErkJggg==\"));}.bk-tool-icon-clear-selection{background-image:var(--bokeh-icon-clear-selection, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AUGEhcuan3d3wAAAoRJREFUWMPtlzFP3EAQhd+b3TNSzg0N5TWXLkJQUUaKhIQ4fgP/g5ArrriE/I3opEgRrZtIVJR0FJQ010SioUmEZHtnUpwN9gWHGA5BJCy58MraffvmfZ41v3z9hqe8BE98vQh4cgG+Ydzmnrng8efvQJNi/uN7dznx/B3ggtfhf4ehNdUttRzBDIm/2VTiiWCG1HK0nc+3UWtq8BQIiEEakEQOADBIA4QCQmBqoHBhFNR27ikQSmGdYCdTqCpEHMDZmEKRWUBEv1gBDg5SzRJnpopILWICgWuRYflLamuzxB2BmtYqSRIka5VWU8QduXO+1hRc5YZu5GAwmP2ZJzND0IBu5HCV2+NQcAhAVRsnC2IbPzPdSjzd6to6VtfWkXi6YLaVWr7xoAwkfpb8MnC3SH7rKSMBe4M0jA/OTicFIbtCGRIyNbURhcf3ErCd6YwA1m0HgAxhw1NGQnlXBHG4kylVlSJuH0RfIP2CkL2I/qS1gIAAQiBl1QwFggIHtyxgrxK5PgyfC0JWKoT0HLh8LwoietB4TYKaIl7yeNURxB05UtMxDOcVQlZIrlRKdK6m47gjR/fuBRQihyLArtNeJD50Izcx2Eczu7iFkIug4VM3cpOr3MKDekFED0fWUHv9Zq0kpLnridjhY3XDg7NTN0jDrhO3X7O9Wg7wwyANu4mnayNg3gmbu0tCNoUyBNGv2l4rB9EXynA7082FOxAQLhU6rQVO9T2AvWowFToNCJcPORGxIRcnpjZSKATSU9NxvOQnAPArDSaQoUKnNI4iufkGtD4P3EHIcWZhz4HLceSOyrR3Izf5memPAL2cX3yhAkonysZVaWLBkd9dw1Ivv2a/AYPkK+ty1U1DAAAAAElFTkSuQmCC\"));}.bk-tool-icon-box-select{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-box-select);-webkit-mask-image:var(--bokeh-icon-box-select);}.bk-tool-icon-x-box-select{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-x-box-select);-webkit-mask-image:var(--bokeh-icon-x-box-select);}.bk-tool-icon-y-box-select{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-y-box-select);-webkit-mask-image:var(--bokeh-icon-y-box-select);}.bk-tool-icon-box-zoom{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-box-zoom);-webkit-mask-image:var(--bokeh-icon-box-zoom);}.bk-tool-icon-x-box-zoom{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-x-box-zoom);-webkit-mask-image:var(--bokeh-icon-x-box-zoom);}.bk-tool-icon-y-box-zoom{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-y-box-zoom);-webkit-mask-image:var(--bokeh-icon-y-box-zoom);}.bk-tool-icon-auto-box-zoom{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-auto-box-zoom);-webkit-mask-image:var(--bokeh-icon-auto-box-zoom);}.bk-tool-icon-zoom-in{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-zoom-in);-webkit-mask-image:var(--bokeh-icon-zoom-in);}.bk-tool-icon-zoom-out{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-zoom-out);-webkit-mask-image:var(--bokeh-icon-zoom-out);}.bk-tool-icon-help{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-help);-webkit-mask-image:var(--bokeh-icon-help);}.bk-tool-icon-hover{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-hover);-webkit-mask-image:var(--bokeh-icon-hover);}.bk-tool-icon-crosshair{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-crosshair);-webkit-mask-image:var(--bokeh-icon-crosshair);}.bk-tool-icon-lasso-select{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-lasso-select);-webkit-mask-image:var(--bokeh-icon-lasso-select);}.bk-tool-icon-pan{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-pan);-webkit-mask-image:var(--bokeh-icon-pan);}.bk-tool-icon-x-pan{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-x-pan);-webkit-mask-image:var(--bokeh-icon-x-pan);}.bk-tool-icon-y-pan{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-y-pan);-webkit-mask-image:var(--bokeh-icon-y-pan);}.bk-tool-icon-range{background-image:var(--bokeh-icon-range, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAABCJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjMyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgICA8cmRmOkJhZy8+CiAgICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTgtMDQtMjhUMTQ6MDQ6NDk8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMy43PC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrsrWBhAAAD60lEQVRYCcVWv2scRxSemZ097SHbSeWkcYwwclDhzr1Q5T6QE1LghP6BGNIYJGRWNlaZItiFK1mr+JAu4HQu0kjpU8sgF3ITAsaFg0hOvt2Zyfvmdsa7a610Unx44Zgf773vvfneezPHNzrbhn3CT3xC3wPXYOC8LDzqdi8YY/gwh4BeknS/2th6dr2kf94AOp3OFyWgMyziOPbMDxV9FTtJnl1ut795Xd0/YQ0/vtYQwMT1KXWCfr2IjOWwtNehwN4xL9ykTrm6Pzl58yLn3J+mKh9mXbT3uRjGEDph+O8/TjfP5dBp7Ha7AX7O3o5nZeD/0E/OGyXntDgzA0X6qmCnrVutVlrUWV9f/3xo+pwhGDhvEPHOjoxnZjJggXmMHzBQ7NGNp9vxk61fr0HR7e/u7pZzCGHlc7qwBYYTT7tJYSx1AQzppyFPft5apta9w7SKcn0b7P7+/jCsDQ5mbc0dCmIJGDN0ehdcjsmkm6A6KUeKFOTE11PLxrC7Ukqh3ylL2fT0NAP9q6ur6rRCJJYsbKB0JsbCKMuy+xREePDyxQPCz+Crlw062QcA5wBOOt1l6vIl2WiI9F1fN6Q+BBqit6hEC4Hk08GQJMn4myjSP7RavVxgdaVUh/3U6HCMsPr9pYnJKRziHtWQ+un58+hGs6nsjQSjpuTyKGN3CX+FBwHXSiEVgjP+O8X6N12kIePES+GzTKAkGbNp8yJsGUMVzz8jPKReiyAQRimy5/cjye5RpF8utFp/+nwmT7d/NMzcFkS7yjJNGDaPURQxIQThEQy0SyF4l5WJYYhBa816vZ6dU7A6CAhbZVow/pDe0O9hVOoCi13r4BgBAvJHqMSQL2vE/iH6IAXEwgrRVUmBoRRwnwJQT98xEeVeSUyB4dJ5nwJBKdCFFGRmUCcu7rwIYypCTblaChuNBhWODrman5ub+4v0rMNBt8z6Ezh7GksJQpCbm79cMQE7QBFm/X6f0rjWnv8WRYg/QdbUpwDAEBy8vPyA8rNGzg3a8MiElwiM7dAtRqNoNptjGPM1laVxP9umWEMGLOKhKUOJDtBwDmzsw9fC/CzHr9SGuCTi2LbbKvVtmqXpCjMihBFa79Wrt5fGx9PDzc3fmu32Lf8qFliwU9emKhBSp+kRKn/hu9k1COEDbFdt/BoKWOAkuEbdVYyoIXv8+I/QK9dMHEb1Knb7MHOv8LFFOsjzCVHWOD7Ltn+MXCRF4729vWMDK+p8rLkvwjLg4N4v741m5YuwCI9CvHp1Ha8gFdBoPnQAkGsYYGxxcfEI7QQlFCTGUXwjAz4tWF+EpymOWu7fglE7qsOvrYE6g4+9/x/vhRbMdLOCFgAAAABJRU5ErkJggg==\"));}.bk-tool-icon-polygon-select{background-image:var(--bokeh-icon-polygon-select, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEjc1OfiVKAAAAe1JREFUWMPt1r9rU1EUB/DPK0XbqphFHETo4OCiFhwF0V1KHbRSROLqon+AUMVRRFBwEbRFMBiV+mMW/wIxi5OD1kERRVKRJHUwLvfBTZrU5OWBGXLgQu7Jfe98z/ec7z0vKa88b2q1BDtRHdAPBaylm1NzsxsOjPnPNt6WSWprbft+/c3I3zOAjhT1Y4+fvcjEQJIXnVECSa+AhqIHqlHH5lWCZoe+Gk4GRgDG86j9SAUdlDBSQaZhlOkuHyoVdJmsw98D1S5fM4NYM1LCpqM+Lwa240oLgmZzpVZvzKT75VLZcqksSZKWlQeAy/iORVwIvh31xvotvK7VG3Px4aWHj3Jl4C2uYSvq+Bn8v6LLbaVWb9zsBiKLCvbiNG7gLm7jAYqbPHMJMziZ9lsKoh8GtqCEVVzHftwJn+TFHp4/hg8BSCYVfMOZoPEv2NZGdy9WCGUr9toDR3E2/H4V6nwRe/BmgN65H1ZhvMuB3XiKIyFoGefwO6ysVkUlrNUNsyAK/jli533Q+Y8cJFvAeXyMS1CI/jiMr/gUtD2LQwMGr4R3p7bY3oQHQ5b38CT4D2AXXg6YcQXHpyYnlqKsi5iOAVSwL9zd7zJ09r+Cpwq72omFMazjT9Dnibym0dTkRDUKrrgwH7MwXVyYB38BstaGDfLUTsgAAAAASUVORK5CYII=\"));}.bk-tool-icon-redo{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-redo);-webkit-mask-image:var(--bokeh-icon-redo);}.bk-tool-icon-reset{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-reset);-webkit-mask-image:var(--bokeh-icon-reset);}.bk-tool-icon-save{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-save);-webkit-mask-image:var(--bokeh-icon-save);}.bk-tool-icon-tap-select{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-tap-select);-webkit-mask-image:var(--bokeh-icon-tap-select);}.bk-tool-icon-undo{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-undo);-webkit-mask-image:var(--bokeh-icon-undo);}.bk-tool-icon-wheel-pan{background-image:var(--bokeh-icon-wheel-pan, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEgswOmEYWAAABddJREFUWMO9l09oXNcVxn/n3vc0fzRjj2RHyIZ6ERuy6CarxJtS0pQSCsXNpqGFWK5tTHAwyqIGN7VdEts1LV04BEoxdlJnUbfNogtDCYWQRZOSxtAUCoFiJY0pWJVUjeTKM9LMe+9+Xcyb8ZMychuofeHCffeee7/vnXvOuefYlV/+mv932//tb91z/Y2rvxmMHQ+4FcEfOIGN4A+UwDDwoQScc7vM7AIwB8yZ2QXn3K77Ab6OgJnVgeOSbkqaBiaACUnTkm4Cx3OZzwf+qzcRQup1zNZ9RwDe+0YI4YKZTUn6zCGSMLOfAF/03r+QZdnyfwO+ePEiI6N1nPMgMDMkETLRbd2mXG8gCbd9YiIKIUxLKoLfBN7I+80+CUlTIYTp7RMT0b3Af37p8kh5y9gZcy4Fzt+5szqSaxkzUR7dwtrKMmaGW242d0t6vrD/He/90865o865o977p4F3Ctp4frnZ3L0Z+OryUrVSrZ0z8ZxhHjhcq1XPrS43q/0flDlK9XpPA2ma7gMeyvfPx3H8TJZlH4YQWiGEVpZlH8Zx/Awwn8s8lKbpvmq1ahvB641SXNk6dhLskNA2MIBtwKHK1vGTW8bKMRbAMgyPqWeETxUM8VSSJAv52JmZA0iSZMHMThWwnipXKp8hsLLcSaIR92oU8xjSayCQXotiHotG3Ku3m+0EOQwPQCDggMf7BzQajSs5eAk4B5zLx4O1vD2eJMmAQKliscgASJMw21pansFs1swQ/DNLmUmTMNuXX+taXHTDaj5OW612R1JZ0nFJJ/J+XFJ5aWmpA6S5bHV8fHsPHFU6q3pJCjtFxtrKMuXRLUUXXxdrRLazFOtUolZlsGhmACsgnHPTwJnCnjP5HMBKLotzxsTE9rgDL0t6LoriKsDIaB31ZEK+JxQJRHFUBR2NqLw8OTkZR0OC0ntm9k1JWU7OA4vD/mZ+YfElsANmNEKi75vztzB5M8uAr+bx48me88g757PQ1U5zNg52YH7hX8l6f+4Fi3c3BqHNmkI4YQOV2MGCNu9qHPYCewfzbrC+XSGcWEcgTRKA3wFfyzdDz5d+D3x9CIcfA4eBbQS9LscskgfLnHNPAnslvS/pbZDHLLPADpx9N9fqpSIBH8cxWZY9m6bpb4Ev5fN/iKLo2TRNgdx/eo8Wk5O7Ts/N/SOSdMjHdj4kmgkIEJLJzPZKetvMTkIvFLsR25Ml2gfuF5M7vnA66sdooJYkCSGERe/9VAjhzRxoKk3Tvg3U8nulVqvx8cyNpER2umM+SdOkbc5B8JhpqBdIgTRR24h+lpKen731aRIN7thscH9Zlv0d2F8YD2TIX7F2uw3A7ZWV1a0TYz9ca8cJZHRbuRuaDfUCw9/qJHamPOKToAwHtHN6lMvlSkH2o7wDMDo6WuGuQbbn5+YAKNcb3J5fSvrhtTY+vsOPuD1IOyRhMOkj9kSx29HfXB5RUnS964NT2+3vbGbxG9auO2cDNuV6A8NTb5TitBuOpQkfYD2vwOxgmvBB2g3Hto5X42EJyVsFlztbKpXGNgqVSqUxSWcLU2+tdToa9hasLjfPYlwGa+bTi8Dl1dvNsyvNtQQL9MO2w+HM7BqwlAtPdrvdq9773WAVsIr3fne3270KTOYyS2Z2bbXdHhogKmPj7YWF+VOSXs/v/9KdO+0fVBrjbRkgB/KIDBnYu9f/7D+ZmfmRxPd6qwB8YmZXcq1MAQ/nJhTM+OnDe/a8+PGNG9lm19V/D1Qw7HXZlcRa69+U6w38l5/4ipxzf5X0CPBILjcGPJH34pVcc8692FxcXLlXRnTwwH7+9P4f8aWe3fY59LIqo1NMyQBCCHNmdgx4BegUWefjDvCKmR0LIcz9L8nokSNH+PRvH4HC3YQ098pSbevg24qlmZmNmtmjkg4D3+j/tZldkvQXSa3PW5ptlpL3ZaIN99OS9F7+IgKUgSyEkNyv2nHT7DZX0dr9rpjua2l2r4rogRAYVqZvnPsPqVnpEXjEaB4AAAAASUVORK5CYII=\"));}.bk-tool-icon-wheel-zoom{background-image:var(--bokeh-icon-wheel-zoom, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEgskILvMJQAABTtJREFUWMPdl1+MXVUVxn/fPvf2zrSFmUKnoBCUdjRoVaIxEpO2JhilMYBCtBQS2hejpg1Uo2NUrIFAoyGmtiE+GHwQGtvQJhqDmKYRBv+URFsFDNCSptH60DJTO3dKnX/33rM/H7rvsDu9M20fDMaVnGTvtb69z7fWXmvtc/TEzqd4OyXwNsv/FwFJQVI/sA14SZKRLOlPkr5TrVYXHz70quYkEEK4TtI2YAgYkrQthHDdhV5uuw+43/ZrwCbgRttgY/tjtrc0m83X3/f+D6ydnJhYcB4BSZcBA7aP2d4ELAGW2N5k+xgwkDB0IH19CGGH7R8B1aQeAf4KvAw0ku4K2zu7uru3ApdPEyiKohd4TNKjtjt5h6RHgccSNrddbvuHtm9Jqoak7xVF8WFgdavV+pSk5cCObNmXgK++85prCj3z28HKqZMnH7D9YAY4BvwujT8BvCuL1INX9vVt+dfwcCvNb7f9q2RuSfrGvWu/sL2Nf3LX7pzvj4ENSGBPVarVd4fRkZFltjdmoMGiKO4IIWwIIWwoiuIOYDDzeOPoyMiyFLkum7WJCMDztrcrTTrIRuAQZ6NcK1utL4dWq/VZoC8BhqvV6l1lWb4YYxyLMY6VZflitVq9CxhOmL60hhCKeYiV7WMKIXw9jT1HpXw3c+bOAKzOjJubzebJrKQCQLPZPClpc7bP6rMYKtjXth2OMf7tIkr11Wz8oQDc1Fb09vY+kQw1YAuwJY2nbUluAnCWpKkaFl6IQIzxivaR2SYA89sJVK/Xp2x32R6w/a30DNjuqtfrU0ArYecDCEqgLqm94T0dEm9mBG7PxkdDlkBnkhebgIezNQ8nHcCZPL9ijE1Jf/bZZoPtzbavmqNZLbf9tSxq+yoduuJ+SZ+zXSZyBXCqU+d8fvC5yRUrV+0G2j3g2hDCLyXd/+Su3QdnvP/zCuH72LWsgf2k0oHlH2c2odlkxcpVEdgr6aDtjyb8x20/J+mA7T9I6rL9SWA5dne2/GdXLl58qNJh398An85yTMA+4DOz8Dgu6Zu2dwJXJ91ltm8Gbp7Fgb+EEB4aHhpq5CEtACqVyr3AC0AlPS8k3TSmQ2YPhhBuS/1/LpmS9JTtNTHGfwBU2uUALARotVqniqJYH2Pck85pfavVaufAwnQvnHc0McaDKVptebN94QAnJB0EdtjekydyZXqjs/0ZgLIs/w6sy8bnYGYJ63pgERKC05JutT1kOwITwL9tvzlzUQUYB+Zjs2DBgu6xsbGJZHstByZbezregcBXeCsEz1bnzXt5anLyzLq71zDLxTRdVgemdx0fv2e2w5thO5DbiqL4oKT3ZKpnpyYnz+SY2ZpTAPZmJfdIrVZbNBNUq9UW2X4kU+2dcf53Aj1pj2PA7y/6m1DS00A9za9uNBq7iqJYBuoGdRdFsazRaOzKSqye1rTbaa/tlbYrqXQP2X4FIA9/J1l39xrC0v7+w5IeB8XkwS1lWe6TGJAYKMty31tfO4qSHl/a3384I3CDpI+kzC4lnRfrue6GytEjR8oQwlY73gC0L4qlth/q0M1/LYWtR48cKQF6enrC6dOnVwGLEpnxnp7en4+O1i/tszzGOCTpPmB7ahb57QUwBWyXdF+McWg6MScmuoA8OX8xOlpvXGz422XYTsB/SnpA0h7bX5R0WzI9HUL4qe2XbI+dk3xl+V7gxoztD5jRI+YK/zkEEokx2/uB/RdzIfUtueqVN04cXwF8G3iHY3z9Urw/j8ClyhsnjrcS2Vv/J/8NLxT+/zqBTkcxU/cfEkyEAu3kmjAAAAAASUVORK5CYII=\"));}.bk-tool-icon-box-edit{background-image:var(--bokeh-icon-box-edit, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEg4QfHjM1QAAAGRJREFUWMNjXLhsJcNAAiaGAQYsDAwM/+lsJ+OgCwGsLqMB+D8o08CoA0YdMOqAUQewDFQdMBoFIyoN/B/U7YFRB7DQIc7xyo9GwbBMA4xDqhxgISH1klXbDYk0QOseEeOgDgEAIS0JQleje6IAAAAASUVORK5CYII=\"));}.bk-tool-icon-freehand-draw{background-image:var(--bokeh-icon-freehand-draw, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADTElEQVRYCeWWTWwMYRjH/88721X1lZJIGxJxcEE4OOiBgzjXWh8TJKR76kWacOBGxdEJIdk4VChZI/phidRBHMRRIr7DSUiaSCRFRM3u88gz+o7Z6bBTdjmYZPf9eJ55fv/5zzvvDPC/H9QsA66Olo9Ga+/MdR+Ljm2/KQIULsz9FqItGdOfJKLhApLgVkiSCGODjWit7QpKWy+TNrFeXvzKVUT8NiTVaIgDcbiCFJ7GiT8WkARXAdYBK0Lbhi/CenArRNskuM7/tgNp4ArQ42dwjf3WY5gWTqC7O/NbNn2Xkfw/YwdSw/We14HP2IEZwX+y9cZ9SH0LmgFP7UCz4KkENBNeV0Cz4b8U8DfgKiDxMWwUXETqLvJpCQpXZfawbzS7t9v5pL19cHBwfja7YA0y/lyCM0+E5hv5+piZXwKYcF23as+37bTXsQVqgkL0p/34fHR7DcBtbetFsBmGDwMOJCggYG55yw7dMlk6DuC1Bdu2RsCU9TYWQq2IoGbsreZ5NzvEqfSBsIsIy8OTbcdgiRHeh4o8AFAEwDakbY2AaCCpH7V9aGhoUUUy3UyVbkPYFuYLDlUZH8XBpwxkK0Dbgxg5HcVi0ent7a0RULMIozaHBSMfF9b2SzdutFcFB2FkwMIJOG6qfteXOa1nHZ48tyefuwyfT9s6wtzZ3t7eZse2DR2I228TtHXzuWCx9g8MtK5cuHCZTH4tiHEOa4xFngvTyS8f35d6enomiCi4/foEXBkZaQuukChL4FYA2Whd7YcC4gEdW3CpdL3LtGAVCVYJywEyTpAuJKeMOKXZs/Bw947C50KhUFOG4cwz35cjWNBlHGeD53n3xsfHP/T19U1qciggar8Fa4I3PHobIotBWBtc2hSiChyZxVzM53Pv7FVH6Tp3uVy+g0r1ImD2GjIrQGYIxjnfuXTZGICS5k/bBwJoubwEFX4TLah9EXomJGMA3za+f9913Yl4TnzsDQ+vE6YTZOjHh4ngibstt1pzQwd04F0bPStEBpXqRoBeQ/AKghfBnOEKgS+Q7z91Xfdz/HGKg8Ox7z8iYD9z6wqTkZFgnvhMGP9VZ2or1XVkPM9z0mytSfVsHa1RLBZbLoyNzUnK+ydz3wC6I9x+lwbngwAAAABJRU5ErkJggg==\"));}.bk-tool-icon-poly-draw{background-image:var(--bokeh-icon-poly-draw, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEjglo9eZgwAAAc5JREFUWMPt1zFrU1EUB/DfS4OmVTGDIChCP4BgnQXRxVHqIJUupp9AB8VBQcRBQUXIB9DWQoMRiXZzcnQSA34A7aAuHSJKkgo2LvfBrU3aJnlYkBy4vHcP557zP/9z3r33JdXa647N0kHSZd5Nn0rSxc8G3cXp85sMcnZZ8vge3osZ+l3vB8CWFA0iL14t79h210swAjACMAIwAjACkB90D/8/GchI9ve4nPwTBh5E9ws7OepzGWb9EddSn51Op9ZstadSg4VK1UKlKkmSDSMLALewiuNh/hVJq71Wxttmqz0dG88vPc+MgWP4grvYG3SLOBrZFFFrttqPe4HIDxh4GSei+98iSlusuYopXEAjBtEPA3tQwUpwluAbDm4TPJUz+BTW9l2Ce6G7L0X/Bw8D3T/7SKKIDzHg7QCcxjvcQAEtXAnrrg/RP0/DKPbqgcN4iVOR7gcO4dcQgRuoh7HSqwlP4n20m63jJu5n8MkWMYfP3UowhzdR8FU8w9iQwevBdyq3/27CMRzAE5yLuvsRLg+ZcR1nJ8YL81HWJUzGAPaFZwe/Q5MdyYDyNHgjzO90YyGHtVDncuiJchaHw8R4oREFV5qdiVmYLM3OgD9k5209/atmIAAAAABJRU5ErkJggg==\"));}.bk-tool-icon-point-draw{background-image:var(--bokeh-icon-point-draw, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gEMEiERGWPELgAAA4RJREFUWMO1lr1uG1cQhb9ztdRSP7AF1QxgwKlcuZSqRC9gWUUUINWqTh5AnaFOnVPEteQmRuhCURqWsSqqc9IolREXdEvQBElxtdw7KURSFEVKu4w8wAKLxdw9Z+bMnRmZGXfZ29//II8th4WwGVNyIoQLYB5vxA9Caq04iUd9A+7ZlsNC2I7TdSd2hZXMJKlnTqp9jtl/GBaqoyQ0noFKpUIzBicYYc+DEFpxkglc4oVJa5gvDn8v1xV2irG3FM4NSVwjUKlUaMcpJhCGmSEJQ6QGD8M5WnHCd8+f3QCXpPLx8WNwv0j6Bm9FMK7FJ3WBE+R/2t7c/GBmFvSBrzRTCsyTDjXrxUgEMtpxynJYmJoBJ4VAybwVARgvL7Oik0okCodnKpVKX7P0leiVMb0VvbJT+upznK4vh0GIeQwwQStJkHQD3MwsCALTJRG7Qrdrj5m/djgYaIa0hlkRdJk26XEgC9txurccBtVW3IudBImmZuACUP+ZlIDBt9FKcubYNTcAH/X0RYM1E7utJPlqe+uZzPxUcEkiSS4sTT95n15Mud0xWC0o2PAWOCdK3KYZlFxfM+tHOcnMzNr1es18ug+cgsVjP4yBU/Ppfrter1m/+l0+zYygML1xRVHU7TSb1cSzBzoBzszsH+AMdJJ49jrNZjWKou6wBnwOzcyndBpNbuueURR1Dw8Pq35p9cc5p/Dy9Dypt7jXrtdGwQECS9NPhr6Gq6txUzNigE6zydLK6lTw12/KT4FGFEUfJX2YJNONq5tVs4ODA7sD/DnwJ/BoADZuE3tHFs12dna6d4C/BI6AlbyzI8ii2TTw12/KK33gb2cdXsNZoAntbZC2SeO4c9592k/5eNQbiwvFd1kJuFGwLJr1wSPg/SwpvyFBHufOeXcFeAlE97U/uCxOY+P3b+Bn4B3Q+L8EdJfD4a+/AbC4UBzPxiPg3wlHZquB28Cn2IuR9x3gr3uV4DbwfvSDOvi4uFA8BDZmIRHkjHpS9Ht9iRqd8+5G3g05mAGcQbsdiX5QJ428G7Kygo8XYdb1/K4NWVmjzkNge2sz84bs+ELmpDDLtqWsNZBXgvmw8CTtpWVMT7x5YWBjLARnwZfKQNYN2U2LPvrh+5nBt7c2M2/It9bArCTKR8eZN+SJ13AScPnoODeRdqNenH+wul5w2gUr2WUjMFAt8bZ/0axX/wNnv4H8vTFb1QAAAABJRU5ErkJggg==\"));}.bk-tool-icon-poly-edit{background-image:var(--bokeh-icon-poly-edit, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gELFi46qJmxxAAABV9JREFUWMOdl19vFFUYxn9n9u9sCyylUIzWUoMQBAWCMdEEIt6xIRQSLIEKtvHe6AcA4yeQb7CAUNJy0daLeomJN8SEULAC2kBBapBKoLvbmdl/c14vdmY7u91tF95kknPOnHmf95znPc97Ro2OTeBbdjFDT3c32ZxVHUOE9kSMB0/m6ExuoJn1H+ur6Y+OTfD50SMN5168OgrAlyf7CfuD+z7+iDs3p8hkLUQ0iFQ/yFl5Nm/qonfHVva+s32Zw9GxCYILsZ08tpNfBhbs+1YN4OH9+7huGdECSBVfqUosbsllfmauBqiR+cCNwOr7AEo8pPHJnymXykhg5fUWjoQpl0vVvhZhbSzGoUOHqgBlt6B6uruj2Zy1E9jo0fhfeyL2x4Mnc8VErK0KUEOB64JSyptfG4RSytsJjUJVxw2lsFy3urL9nx1Qd25ObctkrVMi+jQivd7U2ZyV/3Hzpq7h3h1b/7p9Y0o8v8rwAbTWrGpSocN/FGDlbAI0Rl23PCBan0Ok158H9Ipwzi25A/Mzc9Gl/BYx/E4kYqC1NKRARNAaDCNUM27Z+Zr+ouXs0q4+LSLBHPYCFkTkC6uU39kwCdsS7WRKmaYUiAhdnZ3MPX2K4+QjQI+C94A93rMzm8ltMwyDeDzWjMZeEb2pYQDdW3vITU2jtUZ5QThOPgm8C7wP7J15OPsBsB3oWpGnVWisCeDS1VHj4vBI92+/3tgB7Ab2AruAXiDBK5oIOkhtkEYRNRuJhObrd8Dl9ewf4D5wG7hVLpen29vb5wzD+BrkbBMaL3d1dk5nsrnlFDTTFWAWmAZueWD3gCemGde2k2fw1Al1YXhEvjozoO49eczdqekrWmsc2zlrmvEKOGoW1GUjFLqSk2KpJrCLwyMCPAP+BO54QL8DM6YZX/ClsP9YnwKkXnIBP4jdIpJRpdJTCYdMwwi98KU0Hjc/dDILNyUcwTCWdOSMJ0TRmBktGRhLugu0xyLk7CIqVNm+0bGJptl1YXikD0grpY4Rjc4a8Fbgdab/6OGbAJeCUuyJnnHmZH9pbSyGuBXV8NUwlUpR1EWyixmSyTWEwqGlJ2Swbo2JXbAAfgDGgGQA9I1A9t1tlq0AxrXxn0ilUpw4fhQqYkH/sT41OTnJJwf2s6FjI5mshdYa7bqVR2uezr9MJmJt14FvGrh/O9D+e6UkM/xyCuCqEKCYnJyUTKFQrZDHjxzGshwWLQcRsOz8Hi85P23id0ug/XilAMLBmm4tPGdoaKjSH5+oAGrhwvBI9SjZTn4QSK9yenoD7dlrExPoJlXW8G8ytpNHxRKk02lGxsdRKFwXLNvx5yY94HQLGhGk4LFCYQSqaE0AwWM1eOoEbR0dKBSW7bC4mKuffxs4D/wCLKwQQPAUzIkslfp6cVomROWSolh0GjldAM4nzDi2k9/i5UAzC9aKfwNJ3zgJg9YEvN6+C7SHgKm69+sD7RfNnKTTaZRPQfAut4oFV//IS7gkcB34VlVo8kGzphlfB+DU+TfNGBpZtRastvrvARJmfMF28ge9sc2B9/PNnCilMIDwK6y8/ow/Ai4kvILTljAXvDvEvrqKSUs60KolzPjBxspavQD2tKqCAGF/Ba+xE/Wbilu54wZV8NEKF5fXzQHl/bh4hUsE0WAXSlDMYcQSrQXgCmsTseXHsJkNnjqBFGwKJaHsKlxtUHYVhbLCzr1kaOA4bcn1y1Swmb+iLpJKpVrfgdpfsiVVCYcgluwgnU7jEgJ4s5UkLFtWYyHyEg0/N1q1tmQH+YXnAMFr97Nmv3p+0QsHQRsF8qpBOE5+rb9Nkaj50tVQKjqh4OU3GNL/1/So3vuUgbAAAAAASUVORK5CYII=\"));}.bk-tool-icon-line-edit{background-image:var(--bokeh-icon-line-edit, url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAG/3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarVdpknSpDfzPKXwEJBDLccQW4Rv4+E4BtXR198znCdeLLijgQUoppWg3//Pv5f6FDwefXJRcUk3J4xNrrKzoFH8+pyUf9/f+8J3C7y/j7jnBGApow/mZ5l2vGJfXCzne8fZ13OV+9yl3ozvx2DDYyXbauCDvRoHPON3frl5Imt7MuX8hH0seiz9/xwxnDMFgYMczUPD7m89J4fwp/iK+OVRbiMf6gm8K4bv/3NN1Pzjw2fvwn+93PLzccTZ6mJU+/HTHSX723/bSOyLi58n8jmiqz/798+a/tUZZax7rNCKOakzXqIcpu4eFDe483kh4Mv4E/byfiqd49R2OHzC1Od/woxLD44siDVJaNHfbqQNi5MkZLXPnsMdKyFy5gwwCHXhocXahhhEK+OhgLmCYn1hon1vtPBxWcPIgrGTCZrR5fHvc58A/fb5stJaFOZEvT18BF1t8AYYxZ99YBUJoXZ/K9i+50/jPjxEbwKBsNxcYqL6dLZrQK7bC5jl4cVga/Ql5yuNuABfhbAEYCmDAJwpCiXxmzkTwYwE/CuQcIjcwQOKEB1ByDCGBnMJ2Nt7JtNey8BmGvIAICSlkUFODgqwYJSbkW0EIqZMgUUSSZClSRVNIMUlKKSfTKc0hxyw55ZxLrllLKLFISSWXUmrRyjVAxsTVVHMttVZVHKpRsZdivWKgcQstNmmp5VZabdoRPj126annXnrtOniEAQlwI408yqhDJ02E0oxTZpp5llmnLsTaCisuWWnlVVZd+mTtsvqVtU/m/po1uqzxJsrW5RdrGM75sQWZnIhxBsY4EhjPxgACmo0zXyhGNuaMM185uBCEgVKMnEHGGBiMk1gWPbl7Mfcrbw7e/V9545+Yc0bd/4M5Z9S9Mfedtx9YG7rlNmyCLAvhUyhkQPrNhvO5AJFnrZIR0plaLL5liQYdDi5TubaIokFDkmoFEB8CzxZVxemssDqthPhUblPgW1iQU5g6XwNwyVI7bUFRm035iNziMkgWvEso2SXnsJfveR0Y4SlVF8YWC1pVQhJiQa8JwDvlMNIxAfq3F7GDObHU1LlhzlZaWwNp6BvACxAgInGXlllMGZCpEnZHrGA6GM2718xuFcz7YdUQxzEEfjdWz4GlkcwaonT0pgA6mB25grPILtnSMhuCpsGhmMU6uJbixJs4lbKHqh+wos1jW2rchyGRCIvN9MXu+KAmMSfAlIKVvi/tybhCPJZCu2Ow9pLdyo427+X2ovMBmKNu8PA0zgl3fS0PB1DWWkVYB47bkyiJHhkFPzTzCjzn4Dq1mqoIWzCmcDGsHQmQAQdEHsixK1IXESd5rLU7THVJNV8obHS8sZeN0G5Jdt5pQTVKCCbgK1hItTS8o92iEZpuWJ/oC2r/0+zTmhvFXoaMVKRe27altDtid6OvG1hENVwBnC61KKugNoemOiPCCNb3GoHAZOFuDxxPsD+07nbSPcr/o1Zmc4jARhotrA5F5ZcjP9rPk90vR8A+k028A+8+5wKlHVID542sMzMCuXktkRzUCpE+xCBZywjNcJITx0II9x5948CekBl4XaC5OCX2nCyObdwN3HwQh5DWL/BBEkhDYHn/vpXNgZkVTZs8rj+HO8JFC6qvDVhgAEQSYCDyC86rMhG1WPzAVB9ZldDWG6EzDcFiqJBDvFS8mXDv3SK2LPoguVB2kwUx7UL5KqZWiEzocsbvSjNnaYDNtcYJuA5cDcsrvHd6yCxGjqvl9+wh3Qh8Kc9py8sNW8ncU8qwxdPj1qIGfrPqlXeoS4/JLa/LwRLTCtxuSoZUT+2Su6kXW3QNacYQbId6NUKVbROpviybFSPQQL9lhB2MamEnFyB9Y+hrG1+xBg+L0QG2TZdTdlcsBdq9oHdt9Bu5/IM9+Nfh1AwrSqlboTA6Bgq568A7UfbaMrZjoQZhQphofvNw93+bN+5X7FYKBgLmRid+tSdV6c02A4R0cHwKobmoMt5+6WI9XNISFIywpf6RMd5/a91vE78FzVHIFmxud4woyJx76OMTCa4yhgN3iJO2VfRPFMv9sYTxFzU+1eWeYS52pwOoSJldZY6koib4P1O427rbeUrNZfu44hWjz5ZSuu/vKPpimoXbLkfxWSPetvxDWG5jQSaZCxA3ad+p6rlttDhK+YwwK1LHVe0drDtorc5vnQ1247g58vewDtU7L3DRwrG4dhCUDRKKOtYr2dXHtpt+33d1WZmfkAHdl7Q8ENF+CNgB+nOw29n5F7SeNo/ckbu4laLTCdqJLHjmhJbKzmrCEX7zULrhefuHmu0V/1nbP1pnb6FaT7sOxn4pvWkfrYhYtCeJ4Xv+kOXrroIs1eHWXN1/AfzaY94ms5vaAAABg2lDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV/TSkUqDnYQUchQnSyIijhqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxcnRSdJES/5cUWsR4cNyPd/ced+8AoVFhmhUaBzTdNtPJhJjNrYrhV4QwjAgGIMrMMuYkKQXf8XWPAF/v4jzL/9yfo1fNWwwIiMSzzDBt4g3i6U3b4LxPHGUlWSU+Jx4z6YLEj1xXPH7jXHRZ4JlRM5OeJ44Si8UOVjqYlUyNeIo4pmo65QtZj1XOW5y1So217slfGMnrK8tcpzmEJBaxBAkiFNRQRgU24rTqpFhI037Cxz/o+iVyKeQqg5FjAVVokF0/+B/87tYqTE54SZEE0PXiOB8jQHgXaNYd5/vYcZonQPAZuNLb/moDmPkkvd7WYkdA3zZwcd3WlD3gcgcYeDJkU3alIE2hUADez+ibckD/LdCz5vXW2sfpA5ChrlI3wMEhMFqk7HWfd3d39vbvmVZ/P2aecqIM1FFZAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AQdDBkQmV+argAABM5JREFUWMOtl9trHFUcxz9n9jYzm7Tb9JIWGtqUllLwVgRBQWl90S6lTaGmF6E2/4H+A4r+A0offdlWodL4kEZw9bG+iC9iKqLF0os0EBq02dtcdmdnfj7szGZ2M5vulv5g4JwzZ873+7ufUfMLi0RSa1TZNzVFrW511xBhzMxx79EyOwrbGSSzZ073zOcXFnlv5lTi3mvfzAPwwYVZ0tHiq6+/xu+/LlGtWYgEINL9oG657N41yfSRgxw9cHjDgfMLi8QVsR0X23E3gMXnkXQJ3L9zB99vI4EA0sVXqsPF93xW7y73ACVJBJwE1j8HUBIi3Sz/QNtrIzHN+yWdSdNue915IMKWXI4TJ050Adp+U+2bmkrV6tZeYAXwEJExMyf3Hi0rM5fvAvS4wPdBKRW6vZeEUiq0RIBCddddpymu0+rRbPvEzkPVmmWLBA1EdGAbYNctt7V712QwfeSgd/uXJQnPVVoEEAQBTxXpuEMELNtNNFW1WrsrQdBCRImQEeE/wBUh53v+7tW7y5n1+BZRIoJSioXvy3itdgclURSZTBrP87AdV57G1TT0d4GPgC+Bw8Ca7bifATsTgzBvjlH1qgNdICJM7tjB8soKw4jtuD+Gw3c229e1wF+P/uHPpT86rhBBRHActwAcAl4EjgIvAYcFJnlOoq5dv6EBU8AR4OUQ6AVgGjATwuC5YUdZ4A+z+1mBTUM/AKwqpZSIpPfu2VP7+/6DYEMMPE9N83lzq23ZWwxDd4GaQnmgUloqperSCpKC8HGCXz8G7NANU8CWUKPzsUDbyLPVyjYC39e0VMZx3Ccoha4b4lQqbUlnsBqNWCXpEMgKfA38DNSBcdPQr4zlMtTtFiqlulmQmJv9ks2idUZGZMjZmZMAfBUvxWHR0y5dmPV2FcbPG9ncFdPQS3nTuAJQLBZpBS1qjSqFwjipdGr9SWlsHTewm9ZmnngMKAaV9nBd+/bmdxSLRc6dnemm3+yZ06pcLvPGW2+yfWIn1ZpFEAQEvt95goCV1TXMXH4zAt4woaRF7RTAVylAUS6Xpdpsdjvk2VMnsSyHhuVEZTh+xgywBhwLfZIdKRfj7dWqPGFubq7T428ukslkaHttLNsZ9P3nwIfh+DhwS4EO9DA0zByBCE2n1fPxpQuznSCaX1js9nFp2pjbtqGhobQ0jUY9CbgALERah3IM+El1rNqTaqaph5W1uYGAFrfA5YvnyE9MoFBYtjMI/BXgQR/4pqVDZL3V9/cYrX+x7SnsXh/H5TLwW2iBQbVLNgn65CDsrSPOIJOXwmdQ4fRHrZilUqmXwNXrNzbbfxv4ArgFVBLeJ95oDEMHwHHcvvUcRqEwuBf0SSUEB9gfxsAgAkO1kcj/WvwKPaR8EhvPAUvRtdIMtR1FtBH37w8DEeChaehXw/xfAnzHcVOjEkhHrIe0Qlz7T8PuWLEd9+2w9KphgUUgQJ7JAgAPDT13NTrJyOYqIilrlEwQv/NPMTSByxfPIU37eCqtq2zWmPYDjbavaLYVdn2NuffPjqRJK2hRLBaHzoK+X7L1QE+nIFeYoFQqkTVMaTn2UOe1LWtwEJqGzqgRnS9M4Fb+3XBJGfSrFzW9dBw0icioJBzHzUXdMJM18APwWo6Kmy1O6X+V8UHDotBqogAAAABJRU5ErkJggg==\"));}.bk-tool-icon-settings{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-settings);-webkit-mask-image:var(--bokeh-icon-settings);}.bk-tool-icon-unknown{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-unknown);-webkit-mask-image:var(--bokeh-icon-unknown);}.bk-tool-icon-fullscreen{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-fullscreen);-webkit-mask-image:var(--bokeh-icon-fullscreen);}.bk-tool-icon-chevron-up{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-chevron-up);-webkit-mask-image:var(--bokeh-icon-chevron-up);}.bk-tool-icon-chevron-down{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-chevron-down);-webkit-mask-image:var(--bokeh-icon-chevron-down);}.bk-tool-icon-chevron-left{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-chevron-left);-webkit-mask-image:var(--bokeh-icon-chevron-left);}.bk-tool-icon-chevron-right{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-chevron-right);-webkit-mask-image:var(--bokeh-icon-chevron-right);}.bk-tool-icon-caret-up{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-caret-up);-webkit-mask-image:var(--bokeh-icon-caret-up);}.bk-tool-icon-caret-down{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-caret-down);-webkit-mask-image:var(--bokeh-icon-caret-down);}.bk-tool-icon-caret-left{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-caret-left);-webkit-mask-image:var(--bokeh-icon-caret-left);}.bk-tool-icon-caret-right{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-caret-right);-webkit-mask-image:var(--bokeh-icon-caret-right);}.bk-tool-icon-see-on{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-see-on);-webkit-mask-image:var(--bokeh-icon-see-on);}.bk-tool-icon-see-off{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-see-off);-webkit-mask-image:var(--bokeh-icon-see-off);}.bk-tool-icon-x-grip{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-y-grip);-webkit-mask-image:var(--bokeh-icon-y-grip);}.bk-tool-icon-y-grip{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-y-grip);-webkit-mask-image:var(--bokeh-icon-y-grip);}.bk-tool-icon-arrow-down-to-bar{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-arrow-down-to-bar);-webkit-mask-image:var(--bokeh-icon-arrow-down-to-bar);}.bk-tool-icon-arrow-up-from-bar{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-arrow-up-from-bar);-webkit-mask-image:var(--bokeh-icon-arrow-up-from-bar);}.bk-tool-icon-minimize{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-minimize);-webkit-mask-image:var(--bokeh-icon-minimize);}.bk-tool-icon-maximize{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-maximize);-webkit-mask-image:var(--bokeh-icon-maximize);}.bk-tool-icon-pin{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-pin);-webkit-mask-image:var(--bokeh-icon-pin);}.bk-tool-icon-unpin{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-unpin);-webkit-mask-image:var(--bokeh-icon-unpin);}.bk-tool-icon-pointer{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-hand-pointing);-webkit-mask-image:var(--bokeh-icon-hand-pointing);}.bk-tool-icon-delete{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-trash);-webkit-mask-image:var(--bokeh-icon-trash);}.bk-tool-icon-bold{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-bold);-webkit-mask-image:var(--bokeh-icon-bold);}.bk-tool-icon-italic{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-italic);-webkit-mask-image:var(--bokeh-icon-italic);}.bk-tool-icon-text-align-left{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-text-align-left);-webkit-mask-image:var(--bokeh-icon-text-align-left);}.bk-tool-icon-text-align-center{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-text-align-center);-webkit-mask-image:var(--bokeh-icon-text-align-center);}.bk-tool-icon-text-align-right{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-text-align-right);-webkit-mask-image:var(--bokeh-icon-text-align-right);}.bk-tool-icon-check{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-check);-webkit-mask-image:var(--bokeh-icon-check);}.bk-tool-icon-square{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-square);-webkit-mask-image:var(--bokeh-icon-square);}.bk-tool-icon-square-check{background-color:var(--bokeh-icon-color);mask-image:var(--bokeh-icon-square-check);-webkit-mask-image:var(--bokeh-icon-square-check);}:host{--bokeh-icon-question-mark:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M8%208a3.5%203%200%200%201%203.5%20-3h1a3.5%203%200%200%201%203.5%203a3%203%200%200%201%20-2%203a3%204%200%200%200%20-2%204%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2212%22%20y1%3D%2219%22%20x2%3D%2212%22%20y2%3D%2219.01%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-help:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2212%22%20y1%3D%2217%22%20x2%3D%2212%22%20y2%3D%2217.01%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2013.5a1.5%201.5%200%200%201%201%20-1.5a2.6%202.6%200%201%200%20-3%20-4%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-x:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%206l-12%2012%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%206l12%2012%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-settings:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M10.325%204.317c.426%20-1.756%202.924%20-1.756%203.35%200a1.724%201.724%200%200%200%202.573%201.066c1.543%20-.94%203.31%20.826%202.37%202.37a1.724%201.724%200%200%200%201.065%202.572c1.756%20.426%201.756%202.924%200%203.35a1.724%201.724%200%200%200%20-1.066%202.573c.94%201.543%20-.826%203.31%20-2.37%202.37a1.724%201.724%200%200%200%20-2.572%201.065c-.426%201.756%20-2.924%201.756%20-3.35%200a1.724%201.724%200%200%200%20-2.573%20-1.066c-1.543%20.94%20-3.31%20-.826%20-2.37%20-2.37a1.724%201.724%200%200%200%20-1.065%20-2.572c-1.756%20-.426%20-1.756%20-2.924%200%20-3.35a1.724%201.724%200%200%200%201.066%20-2.573c-.94%20-1.543%20.826%20-3.31%202.37%20-2.37c1%20.608%202.296%20.07%202.572%20-1.065z%22%3E%3C%2Fpath%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%3E%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-unknown:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M14%203v4a1%201%200%200%200%201%201h4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M17%2021h-10a2%202%200%200%201%20-2%20-2v-14a2%202%200%200%201%202%20-2h7l5%205v11a2%202%200%200%201%20-2%202z%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2017v.01%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2014a1.5%201.5%200%201%200%20-1.14%20-2.474%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-fullscreen:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Crect%20x%3D%223%22%20y%3D%2216%22%20width%3D%225%22%20height%3D%225%22%20rx%3D%221%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%2012v-6a2%202%200%200%201%202%20-2h12a2%202%200%200%201%202%202v12a2%202%200%200%201%20-2%202h-6%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%208h4v4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M16%208l-5%205%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-save:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%2017v2a2%202%200%200%200%202%202h12a2%202%200%200%200%202%20-2v-2%22%20%2F%3E%0A%20%20%3Cpolyline%20points%3D%227%2011%2012%2016%2017%2011%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2212%22%20y1%3D%224%22%20x2%3D%2212%22%20y2%3D%2216%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-copy:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Crect%20x%3D%228%22%20y%3D%228%22%20width%3D%2212%22%20height%3D%2212%22%20rx%3D%222%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M16%208v-2a2%202%200%200%200%20-2%20-2h-8a2%202%200%200%200%20-2%202v8a2%202%200%200%200%202%202h2%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-tap-select:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%226%22%20y2%3D%2212%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2212%22%20y1%3D%223%22%20x2%3D%2212%22%20y2%3D%226%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%227.8%22%20y1%3D%227.8%22%20x2%3D%225.6%22%20y2%3D%225.6%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2216.2%22%20y1%3D%227.8%22%20x2%3D%2218.4%22%20y2%3D%225.6%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%227.8%22%20y1%3D%2216.2%22%20x2%3D%225.6%22%20y2%3D%2218.4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2012l9%203l-4%202l-2%204l-3%20-9%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-lasso-select:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4.028%2013.252c-.657%20-.972%20-1.028%20-2.078%20-1.028%20-3.252c0%20-3.866%204.03%20-7%209%20-7s9%203.134%209%207s-4.03%207%20-9%207c-1.913%200%20-3.686%20-.464%20-5.144%20-1.255%22%20%2F%3E%0A%20%20%3Ccircle%20cx%3D%225%22%20cy%3D%2215%22%20r%3D%222%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M5%2017c0%201.42%20.316%202.805%201%204%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-pan:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%209l3%203l-3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%209l-3%203l3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M9%2018l3%203l3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%206l-3%20-3l-3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2012h9%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2012h9%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2012v9%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%203v9%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-x-pan:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%209l3%203l-3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%209l-3%203l3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2012h9%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2012h9%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-y-pan:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M9%2018l3%203l3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%206l-3%20-3l-3%203%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2012v9%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%203v9%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-box-select:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%206v-1a1%201%200%200%201%201%20-1h1m5%200h2m5%200h1a1%201%200%200%201%201%201v1m0%205v2m0%205v1a1%201%200%200%201%20-1%201h-1m-5%200h-2m-5%200h-1a1%201%200%200%201%20-1%20-1v-1m0%20-5v-2%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-x-box-select:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M17%2013l-4%204%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M13%2013l4%204%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%206v-1a1%201%200%200%201%201%20-1h1m5%200h2m5%200h1a1%201%200%200%201%201%201v1m0%205v2m0%205v1a1%201%200%200%201%20-1%201h-1m-5%200h-2m-5%200h-1a1%201%200%200%201%20-1%20-1v-1m0%20-5v-2%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-y-box-select:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M13%2013l2%202l2%20-2%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2015v2.5%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%206v-1a1%201%200%200%201%201%20-1h1m5%200h2m5%200h1a1%201%200%200%201%201%201v1m0%205v2m0%205v1a1%201%200%200%201%20-1%201h-1m-5%200h-2m-5%200h-1a1%201%200%200%201%20-1%20-1v-1m0%20-5v-2%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-box-zoom:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2215%22%20cy%3D%2215%22%20r%3D%225%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M22%2022l-3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018h-1a2%202%200%200%201%20-2%20-2v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2011v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%206v-1a2%202%200%200%201%202%20-2h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10%203h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%203h1a2%202%200%200%201%202%202v1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-x-box-zoom:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M17%2013l-4%204%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M13%2013l4%204%22%20%2F%3E%0A%20%20%3Ccircle%20cx%3D%2215%22%20cy%3D%2215%22%20r%3D%225%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M22%2022l-3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018h-1a2%202%200%200%201%20-2%20-2v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2011v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%206v-1a2%202%200%200%201%202%20-2h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10%203h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%203h1a2%202%200%200%201%202%202v1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-y-box-zoom:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M13%2013l2%202l2%20-2%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2015v2.5%22%20%2F%3E%0A%20%20%3Ccircle%20cx%3D%2215%22%20cy%3D%2215%22%20r%3D%225%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M22%2022l-3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018h-1a2%202%200%200%201%20-2%20-2v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2011v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%206v-1a2%202%200%200%201%202%20-2h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10%203h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%203h1a2%202%200%200%201%202%202v1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-auto-box-zoom:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2215%22%20cy%3D%2215%22%20r%3D%225%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M22%2022l-3%20-3%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018h-1a2%202%200%200%201%20-2%20-2v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%2011v-1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M3%206v-1a2%202%200%200%201%202%20-2h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10%203h1%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%203h1a2%202%200%200%201%202%202v1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-zoom-in:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%227%22%20y1%3D%2210%22%20x2%3D%2213%22%20y2%3D%2210%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2210%22%20y1%3D%227%22%20x2%3D%2210%22%20y2%3D%2213%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2221%22%20y1%3D%2221%22%20x2%3D%2215%22%20y2%3D%2215%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-zoom-out:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%227%22%20y1%3D%2210%22%20x2%3D%2213%22%20y2%3D%2210%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%2221%22%20y1%3D%2221%22%20x2%3D%2215%22%20y2%3D%2215%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-undo:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M9%2013l-4%20-4l4%20-4m-4%204h11a4%204%200%200%201%200%208h-1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-redo:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M15%2013l4%20-4l-4%20-4m4%204h-11a4%204%200%200%200%200%208h1%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-reset:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M20%2011a8.1%208.1%200%200%200%20-15.5%20-2m-.5%20-4v4h4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%2013a8.1%208.1%200%200%200%2015.5%202m.5%204v-4h-4%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-hover:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M12%2020l-3%20-3h-2a3%203%200%200%201%20-3%20-3v-6a3%203%200%200%201%203%20-3h10a3%203%200%200%201%203%203v6a3%203%200%200%201%20-3%203h-2l-3%203%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%228%22%20y1%3D%229%22%20x2%3D%2216%22%20y2%3D%229%22%20%2F%3E%0A%20%20%3Cline%20x1%3D%228%22%20y1%3D%2213%22%20x2%3D%2214%22%20y2%3D%2213%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-crosshair:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M20%2012h-4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%2012h4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%2020v-4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M12%204v4%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-chevron-up:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpolyline%20points%3D%226%2015%2012%209%2018%2015%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-chevron-down:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-chevron-left:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpolyline%20points%3D%2215%206%209%2012%2015%2018%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-chevron-right:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpolyline%20points%3D%229%206%2015%2012%209%2018%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-caret-up:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%2015l-6%20-6l-6%206h12%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-caret-down:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%2015l-6%20-6l-6%206h12%22%20transform%3D%22rotate(180%2012%2012)%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-caret-left:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%2015l-6%20-6l-6%206h12%22%20transform%3D%22rotate(270%2012%2012)%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-caret-right:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M18%2015l-6%20-6l-6%206h12%22%20transform%3D%22rotate(90%2012%2012)%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-see-on:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%222%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M22%2012c-2.667%204.667%20-6%207%20-10%207s-7.333%20-2.333%20-10%20-7c2.667%20-4.667%206%20-7%2010%20-7s7.333%202.333%2010%207%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-see-off:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cline%20x1%3D%223%22%20y1%3D%223%22%20x2%3D%2221%22%20y2%3D%2221%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10.584%2010.587a2%202%200%200%200%202.828%202.83%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M9.363%205.365a9.466%209.466%200%200%201%202.637%20-.365c4%200%207.333%202.333%2010%207c-.778%201.361%20-1.612%202.524%20-2.503%203.488m-2.14%201.861c-1.631%201.1%20-3.415%201.651%20-5.357%201.651c-4%200%20-7.333%20-2.333%20-10%20-7c1.369%20-2.395%202.913%20-4.175%204.632%20-5.341%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-cursor-rotate:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%20%20%3Cg%20stroke-width%3D%224%22%20stroke%3D%22white%22%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M9%204.55a8%208%200%200%201%206%2014.9m0%20-4.45v5h5%22%20%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3Cg%20stroke-width%3D%222%22%20stroke%3D%22black%22%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M9%204.55a8%208%200%200%201%206%2014.9m0%20-4.45v5h5%22%20%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A\") 12 12, auto;--bokeh-icon-x-grip:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M5%209m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M5%2015m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%209m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%2015m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M19%209m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M19%2015m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-y-grip:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M9%205m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M9%2012m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M9%2019m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M15%205m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M15%2012m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M15%2019m-1%200a1%201%200%201%200%202%200a1%201%200%201%200%20-2%200%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-arrow-down-to-bar:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%2020l16%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%2014l0%20-10%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%2014l4%20-4%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%2014l-4%20-4%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-arrow-up-from-bar:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M12%204l0%2010%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%204l4%204%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M12%204l-4%204%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M4%2020l16%200%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-minimize:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M15%2019v-2a2%202%200%200%201%202%20-2h2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M15%205v2a2%202%200%200%200%202%202h2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M5%2015h2a2%202%200%200%201%202%202v2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M5%209h2a2%202%200%200%200%202%20-2v-2%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-maximize:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%208v-2a2%202%200%200%201%202%20-2h2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M4%2016v2a2%202%200%200%200%202%202h2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v2%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M16%2020h2a2%202%200%200%200%202%20-2v-2%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-pin:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M15%204.5l-4%204l-4%201.5l-1.5%201.5l7%207l1.5%20-1.5l1.5%20-4l4%20-4%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M9%2015l-4.5%204.5%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M14.5%204l5.5%205.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-unpin:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M3%203l18%2018%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%204.5l-3.249%203.249m-2.57%201.433l-2.181%20.818l-1.5%201.5l7%207l1.5%20-1.5l.82%20-2.186m1.43%20-2.563l3.25%20-3.251%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M9%2015l-4.5%204.5%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M14.5%204l5.5%205.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-hand-pointing:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M8%2013v-8.5a1.5%201.5%200%200%201%203%200v7.5%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M11%2011.5v-2a1.5%201.5%200%201%201%203%200v2.5%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M14%2010.5a1.5%201.5%200%200%201%203%200v1.5%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M17%2011.5a1.5%201.5%200%200%201%203%200v4.5a6%206%200%200%201%20-6%206h-2h.208a6%206%200%200%201%20-5.012%20-2.7a69.74%2069.74%200%200%201%20-.196%20-.3c-.312%20-.479%20-1.407%20-2.388%20-3.286%20-5.728a1.5%201.5%200%200%201%20.536%20-2.022a1.867%201.867%200%200%201%202.28%20.28l1.47%201.47%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-trash:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%207l16%200%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M10%2011l0%206%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M14%2011l0%206%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M5%207l1%2012a2%202%200%200%200%202%202h8a2%202%200%200%200%202%20-2l1%20-12%22%3E%3C%2Fpath%3E%0A%20%20%3Cpath%20d%3D%22M9%207v-3a1%201%200%200%201%201%20-1h4a1%201%200%200%201%201%201v3%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-bold:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M7%205h6a3.5%203.5%200%200%201%200%207h-6z%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M13%2012h1a3.5%203.5%200%200%201%200%207h-7v-7%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-italic:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M11%205l6%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M7%2019l6%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M14%205l-4%2014%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-text-align-left:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%206l16%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%2012l10%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M4%2018l14%200%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-text-align-center:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%206l16%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M8%2012l8%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018l12%200%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-text-align-right:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%206l16%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M10%2012l10%200%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M6%2018l14%200%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-check:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M5%2012l5%205l10%20-10%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-square:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M3%203m0%202a2%202%200%200%201%202%20-2h14a2%202%200%200%201%202%202v14a2%202%200%200%201%20-2%202h-14a2%202%200%200%201%20-2%20-2z%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");--bokeh-icon-square-check:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20stroke-width%3D%222%22%20stroke%3D%22currentColor%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M3%203m0%202a2%202%200%200%201%202%20-2h14a2%202%200%200%201%202%202v14a2%202%200%200%201%20-2%202h-14a2%202%200%200%201%20-2%20-2z%22%20%2F%3E%0A%20%20%3Cpath%20d%3D%22M9%2012l2%202l4%20-4%22%20%2F%3E%0A%3C%2Fsvg%3E%0A\");}'},\n",
" function _(e,o,_,d,s){d();const n=e(57),c=e(51);class t extends n.DOMView{}_.DOMNodeView=t,t.__name__=\"DOMNodeView\";class M extends c.Model{constructor(e){super(e)}}_.DOMNode=M,M.__name__=\"DOMNode\",M.__module__=\"bokeh.models.dom\"},\n",
" function _(t,e,s,a,r){var n;a();const i=t(1),_=t(124),o=t(165),l=t(85),d=t(20),c=t(24),h=t(56),u=t(24),p=i.__importStar(t(18)),v=t(11);class y extends _.DataAnnotationView{*children(){yield*super.children();const{start:t,end:e}=this;null!=t&&(yield t),null!=e&&(yield e)}async lazy_initialize(){await super.lazy_initialize();const{start:t,end:e}=this.model;null!=t&&(this.start=await(0,h.build_view)(t,{parent:this})),null!=e&&(this.end=await(0,h.build_view)(e,{parent:this}))}set_data(t){super.set_data(t);const e=u.Indices.all_set(this._x_start.length);this.start?.set_data(t,e),this.end?.set_data(t,e)}remove(){this.start?.remove(),this.end?.remove(),super.remove()}map_data(){const{frame:t}=this.plot_view,[e,s]=(()=>{switch(this.model.start_units){case\"canvas\":return[new c.ScreenArray(this._x_start),new c.ScreenArray(this._y_start)];case\"screen\":return[t.bbox.xview.v_compute(this._x_start),t.bbox.yview.v_compute(this._y_start)];case\"data\":return[this.coordinates.x_scale.v_compute(this._x_start),this.coordinates.y_scale.v_compute(this._y_start)]}})(),[a,r]=(()=>{switch(this.model.end_units){case\"canvas\":return[new c.ScreenArray(this._x_end),new c.ScreenArray(this._y_end)];case\"screen\":return[t.bbox.xview.v_compute(this._x_end),t.bbox.yview.v_compute(this._y_end)];case\"data\":return[this.coordinates.x_scale.v_compute(this._x_end),this.coordinates.y_scale.v_compute(this._y_end)]}})();this._sx_start=e,this._sy_start=s,this._sx_end=a,this._sy_end=r;const n=e.length,i=this._angles=new c.ScreenArray(n);for(let t=0;t({x_start:[p.XCoordinateSpec,{field:\"x_start\"}],y_start:[p.YCoordinateSpec,{field:\"y_start\"}],start_units:[d.CoordinateUnits,\"data\"],start:[e(t(o.ArrowHead)),null],x_end:[p.XCoordinateSpec,{field:\"x_end\"}],y_end:[p.YCoordinateSpec,{field:\"y_end\"}],end_units:[d.CoordinateUnits,\"data\"],end:[e(t(o.ArrowHead)),()=>new o.OpenHead]})))},\n",
" function _(t,e,n,s,a){var o;s();const i=t(1),c=t(79),r=t(125),_=t(130),l=t(131),h=i.__importStar(t(18));class d extends c.AnnotationView{constructor(){super(...arguments),this._initial_set_data=!1}connect_signals(){super.connect_signals();const t=()=>{this.set_data(this.model.source),this._rerender()};this.connect(this.model.change,t),this.connect(this.model.source.streaming,t),this.connect(this.model.source.patching,t),this.connect(this.model.source.change,t)}_rerender(){this.request_render()}set_data(t){const e=this;for(const n of this.model)if(n instanceof h.VectorSpec||n instanceof h.ScalarSpec)if(n instanceof h.BaseCoordinateSpec){const s=n.array(t);e[`_${n.attr}`]=s}else{const s=n.uniform(t);e[`${n.attr}`]=s}this.plot_model.use_map&&(null!=e._x&&l.inplace.project_xy(e._x,e._y),null!=e._xs&&l.inplace.project_xsys(e._xs,e._ys));for(const t of this.visuals)t.update()}_render(){this._initial_set_data||(this.set_data(this.model.source),this._initial_set_data=!0),this.map_data(),this.paint(this.layer.ctx)}}n.DataAnnotationView=d,d.__name__=\"DataAnnotationView\";class u extends c.Annotation{constructor(t){super(t)}}n.DataAnnotation=u,o=u,u.__name__=\"DataAnnotation\",o.define((({Ref:t})=>({source:[t(r.ColumnarDataSource),()=>new _.ColumnDataSource]})))},\n",
" function _(t,e,n,s,r){var i;s();const a=t(19),c=t(126),o=t(15),l=t(12),u=t(10),h=t(30),d=t(9),f=t(8),g=t(128),_=t(127),p=t(129);class y extends p.DataSource{get_array(t){const e=(0,d.dict)(this.data);let n=e.get(t);return null==n?e.set(t,n=[]):(0,f.isArray)(n)||e.set(t,n=Array.from(n)),n}constructor(t){super(t),this.selection_manager=new c.SelectionManager(this)}initialize(){super.initialize(),this._select=new o.Signal0(this,\"select\"),this.inspect=new o.Signal(this,\"inspect\")}get inferred_defaults(){const t=new Map;for(const[e,n]of(0,d.entries)(this.data)){const s=(()=>{if((0,h.is_NDArray)(n))switch(n.dtype){case\"bool\":return!1;case\"uint8\":case\"int8\":case\"uint16\":case\"int16\":case\"uint32\":case\"int32\":case\"float32\":case\"float64\":return 0;case\"object\":return null}else if((0,f.isArray)(n)&&0!=n.length){const[t]=n;if(null===t)return null;if((0,f.isBoolean)(t))return!1;if((0,f.isNumber)(t))return 0;if((0,f.isString)(t))return\"\";if((0,f.isArray)(t))return[]}})();void 0!==s&&t.set(e,s)}return t}get(t){const e=this.get_column(t);return(0,l.assert)(null!=e,`unknown column '${t}' in ${this}`),e}set(t,e){(0,d.dict)(this.data).set(t,e)}get_column(t){return(0,d.dict)(this.data).get(t)??null}columns(){return(0,d.keys)(this.data)}get_length(t=!0){const e=(0,u.uniq)((0,d.values)(this.data).map((t=>(0,h.is_NDArray)(t)?t.shape[0]:t.length)));switch(e.length){case 0:return null;case 1:return e[0];default:{const n=\"data source has columns of inconsistent lengths\";if(t)return a.logger.warn(n),e.sort()[0];throw new Error(n)}}}get length(){return this.get_length()??0}clear(){const t=(0,d.clone)(this.data),e=(0,d.dict)(t);for(const[t,n]of e){const s=new n.constructor(0);e.set(t,s)}this.data=t}stream(t,e,{sync:n}={}){this.stream_to(this.properties.data,t,e,{sync:n})}patch(t,{sync:e}={}){this.patch_to(this.properties.data,t,{sync:e})}}n.ColumnarDataSource=y,i=y,y.__name__=\"ColumnarDataSource\",i.define((({Ref:t,Dict:e,Unknown:n})=>({default_values:[e(n),{}],selection_policy:[t(g.SelectionPolicy),()=>new g.UnionRenderers]}))),i.internal((({AnyRef:t})=>({inspected:[t(),()=>new _.Selection]})))},\n",
" function _(e,t,s,o,c){o();const n=e(127);function i(e){return\"GlyphRenderer\"==e.model.type}function r(e){return\"GraphRenderer\"==e.model.type}class l{constructor(e){this.inspectors=new Map,this.source=e}select(e,t,s,o=\"replace\"){const c=[],n=[];for(const t of e)i(t)?c.push(t):r(t)&&n.push(t);let l=!1;for(const e of n){const c=e.model.selection_policy.hit_test(t,e);l=l||e.model.selection_policy.do_selection(c,e.model,s,o)}if(c.length>0){const e=this.source.selection_policy.hit_test(t,c);l=l||this.source.selection_policy.do_selection(e,this.source,s,o)}return l}inspect(e,t){let s=!1;if(i(e)){const o=e.hit_test(t);if(null!=o){s=!o.is_empty();const c=this.get_or_create_inspector(e.model);c.update(o,!0,\"replace\"),this.source.setv({inspected:c},{silent:!0}),this.source.inspect.emit([e.model,{geometry:t}])}}else if(r(e)){const o=e.model.inspection_policy.hit_test(t,e);s=e.model.inspection_policy.do_inspection(o,t,e,!1,\"replace\")}return s}invert(e){const t=this.source.get_length();null!=t&&(this.source.selected.invert(t),null!=e&&this.get_or_create_inspector(e.model).invert(t))}clear(e){this.source.selected.clear(),null!=e&&this.get_or_create_inspector(e.model).clear()}get_or_create_inspector(e){let t=this.inspectors.get(e);return null==t&&(t=new n.Selection,this.inspectors.set(e,t)),t}}s.SelectionManager=l,l.__name__=\"SelectionManager\"},\n",
" function _(i,e,s,n,t){var c;n();const d=i(51),h=i(10),l=i(9),_=i(21),u=i(13);s.OpaqueIndices=(0,_.Arrayable)(_.Int),s.MultiIndices=(0,_.Mapping)(_.Int,s.OpaqueIndices);class a extends d.Model{constructor(i){super(i)}get_view(){return this.view}get selected_glyph(){return this.selected_glyphs.length>0?this.selected_glyphs[0]:null}add_to_selected_glyphs(i){this.selected_glyphs.push(i)}update(i,e=!0,s=\"replace\"){switch(s){case\"replace\":this.update_through_replacement(i);break;case\"append\":this.update_through_union(i);break;case\"intersect\":this.update_through_intersection(i);break;case\"subtract\":this.update_through_subtraction(i);break;case\"xor\":this.update_through_symmetric_difference(i)}}invert(i){const e=new Set(this.indices),s=[];for(let n=0;n[i(e),s]))),image_indices:this.image_indices.map((e=>({...e,index:i(e.index)})))})}is_empty(){return 0==this.indices.length&&0==this.line_indices.length&&0==this.image_indices.length}_union_image_indices(...i){const e=new Map,s=new Map,n=[];for(const t of i)for(const i of t){const{index:t,i:c,j:d}=i,h=e.get(t),l=s.get(t);null!=h&&null!=l?h.has(c)&&l.has(d)||(n.push(i),h.add(c),l.add(d)):(n.push(i),e.set(t,new Set([c])),s.set(t,new Set([d])))}return n}update_through_replacement(i){this.indices=i.indices,this.line_indices=i.line_indices,this.multiline_indices=i.multiline_indices,this.image_indices=i.image_indices,this.view=i.view,this.selected_glyphs=i.selected_glyphs}update_through_union(i){this.indices=(0,h.union)(this.indices,i.indices),this.selected_glyphs=(0,h.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,h.union)(i.line_indices,this.line_indices),this.image_indices=this._union_image_indices(this.image_indices,i.image_indices),this.view=i.view,this.multiline_indices=(0,l.merge)(i.multiline_indices,this.multiline_indices)}update_through_intersection(i){this.indices=(0,h.intersection)(this.indices,i.indices),this.selected_glyphs=(0,h.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,h.union)(i.line_indices,this.line_indices),this.image_indices=this._union_image_indices(this.image_indices,i.image_indices),this.view=i.view,this.multiline_indices=(0,l.merge)(i.multiline_indices,this.multiline_indices)}update_through_subtraction(i){this.indices=(0,h.difference)(this.indices,i.indices),this.selected_glyphs=(0,h.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,h.union)(i.line_indices,this.line_indices),this.image_indices=this._union_image_indices(this.image_indices,i.image_indices),this.view=i.view,this.multiline_indices=(0,l.merge)(i.multiline_indices,this.multiline_indices)}update_through_symmetric_difference(i){this.indices=(0,h.symmetric_difference)(this.indices,i.indices),this.selected_glyphs=(0,h.union)(i.selected_glyphs,this.selected_glyphs),this.line_indices=(0,h.union)(i.line_indices,this.line_indices),this.image_indices=this._union_image_indices(this.image_indices,i.image_indices),this.view=i.view,this.multiline_indices=(0,l.merge)(i.multiline_indices,this.multiline_indices)}}s.Selection=a,c=a,a.__name__=\"Selection\",c.define((({Int:i,List:e,Struct:n})=>({indices:[s.OpaqueIndices,[]],line_indices:[s.OpaqueIndices,[]],multiline_indices:[s.MultiIndices,new Map],image_indices:[e(n({index:i,i,j:i,flat_index:i})),[]]}))),c.internal((({List:i,AnyRef:e,Nullable:s})=>({selected_glyphs:[i(e()),[]],view:[s(e()),null]})))},\n",
" function _(e,t,n,s,o){s();const r=e(51);class c extends r.Model{do_selection(e,t,n,s){return null!=e&&(t.selected.update(e,n,s),t._select.emit(),!t.selected.is_empty())}}n.SelectionPolicy=c,c.__name__=\"SelectionPolicy\";class l extends c{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!=t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_intersection(t);return e}return null}}n.IntersectRenderers=l,l.__name__=\"IntersectRenderers\";class _ extends c{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!=t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_union(t);return e}return null}}n.UnionRenderers=_,_.__name__=\"UnionRenderers\"},\n",
" function _(e,n,c,o,t){var a;o();const r=e(51),s=e(127);class l extends r.Model{constructor(e){super(e)}}c.DataSource=l,a=l,l.__name__=\"DataSource\",a.define((({Ref:e})=>({selected:[e(s.Selection),()=>new s.Selection,{readonly:!0}]})))},\n",
" function _(a,n,o,e,r){var t;e();const c=a(125);class u extends c.ColumnarDataSource{constructor(a){super(a)}}o.ColumnDataSource=u,t=u,u.__name__=\"ColumnDataSource\",t.define((({Unknown:a,Dict:n,Arrayable:o})=>({data:[n(o(a)),{}]})))},\n",
" function _(n,t,e,o,r){o();const c=n(1),i=c.__importDefault(n(132)),l=c.__importDefault(n(133)),a=n(24),s=new l.default(\"GOOGLE\"),u=new l.default(\"WGS84\"),f=(0,i.default)(u,s);e.wgs84_mercator={compute:(n,t)=>isFinite(n)&&isFinite(t)?f.forward([n,t]):[NaN,NaN],invert:(n,t)=>isFinite(n)&&isFinite(t)?f.inverse([n,t]):[NaN,NaN]};const _={lon:[-20026376.39,20026376.39],lat:[-20048966.1,20048966.1]},p={lon:[-180,180],lat:[-85.06,85.06]},{min:g,max:h}=Math;function m(n,t){const o=g(n.length,t.length),r=(0,a.infer_type)(n,t),c=new r(o),i=new r(o);return e.inplace.project_xy(n,t,c,i),[c,i]}e.clip_mercator=function(n,t,e){const[o,r]=_[e];return[h(n,o),g(t,r)]},e.in_bounds=function(n,t){const[e,o]=p[t];return e2?void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name?\"number\"==typeof o.z?[o.x,o.y,o.z].concat(t.splice(3)):[o.x,o.y,t[2]].concat(t.splice(3)):[o.x,o.y].concat(t.splice(2)):[o.x,o.y]):(a=(0,c.default)(e,n,t,r),2===(i=Object.keys(t)).length||i.forEach((function(r){if(void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name){if(\"x\"===r||\"y\"===r||\"z\"===r)return}else if(\"x\"===r||\"y\"===r)return;a[r]=t[r]})),a)}function l(e){return e instanceof i.default?e:e.oProj?e.oProj:(0,i.default)(e)}t.default=function(e,n,t){e=l(e);var r,o=!1;return void 0===n?(n=e,e=u,o=!0):(void 0!==n.x||Array.isArray(n))&&(t=n,n=e,e=u,o=!0),n=l(n),t?f(e,n,t):(r={forward:function(t,r){return f(e,n,t,r)},inverse:function(t,r){return f(n,e,t,r)}},o&&(r.oProj=n),r)}},\n",
" function _(t,e,a,s,i){s();const l=t(1),u=l.__importDefault(t(134)),r=l.__importDefault(t(145)),d=l.__importDefault(t(146)),o=t(154),f=l.__importDefault(t(156)),p=l.__importDefault(t(157)),m=l.__importDefault(t(141)),n=t(158);function h(t,e){if(!(this instanceof h))return new h(t);e=e||function(t){if(t)throw t};var a=(0,u.default)(t);if(\"object\"==typeof a){var s=h.projections.get(a.projName);if(s){if(a.datumCode&&\"none\"!==a.datumCode){var i=(0,m.default)(f.default,a.datumCode);i&&(a.datum_params=a.datum_params||(i.towgs84?i.towgs84.split(\",\"):null),a.ellps=i.ellipse,a.datumName=i.datumName?i.datumName:a.datumCode)}a.k0=a.k0||1,a.axis=a.axis||\"enu\",a.ellps=a.ellps||\"wgs84\",a.lat1=a.lat1||a.lat0;var l=(0,o.sphere)(a.a,a.b,a.rf,a.ellps,a.sphere),d=(0,o.eccentricity)(l.a,l.b,l.rf,a.R_A),_=(0,n.getNadgrids)(a.nadgrids),c=a.datum||(0,p.default)(a.datumCode,a.datum_params,l.a,l.b,d.es,d.ep2,_);(0,r.default)(this,a),(0,r.default)(this,s),this.a=l.a,this.b=l.b,this.rf=l.rf,this.sphere=l.sphere,this.es=d.es,this.e=d.e,this.ep2=d.ep2,this.datum=c,this.init(),e(null,this)}else e(t)}else e(t)}h.projections=d.default,h.projections.start(),a.default=h},\n",
" function _(t,r,n,u,e){u();const f=t(1),i=f.__importDefault(t(135)),a=f.__importDefault(t(142)),o=f.__importDefault(t(137)),l=f.__importDefault(t(141));var C=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];var d=[\"3857\",\"900913\",\"3785\",\"102113\"];n.default=function(t){if(!function(t){return\"string\"==typeof t}(t))return t;if(function(t){return t in i.default}(t))return i.default[t];if(function(t){return C.some((function(r){return t.indexOf(r)>-1}))}(t)){var r=(0,a.default)(t);if(function(t){var r=(0,l.default)(t,\"authority\");if(r){var n=(0,l.default)(r,\"epsg\");return n&&d.indexOf(n)>-1}}(r))return i.default[\"EPSG:3857\"];var n=function(t){var r=(0,l.default)(t,\"extension\");if(r)return(0,l.default)(r,\"proj4\")}(r);return n?(0,o.default)(n):r}return function(t){return\"+\"===t[0]}(t)?(0,o.default)(t):void 0}},\n",
" function _(t,r,i,e,n){e();const f=t(1),a=f.__importDefault(t(136)),l=f.__importDefault(t(137)),u=f.__importDefault(t(142));function o(t){var r=this;if(2===arguments.length){var i=arguments[1];\"string\"==typeof i?\"+\"===i.charAt(0)?o[t]=(0,l.default)(arguments[1]):o[t]=(0,u.default)(arguments[1]):o[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?o.apply(r,t):o(t)}));if(\"string\"==typeof t){if(t in o)return o[t]}else\"EPSG\"in t?o[\"EPSG:\"+t.EPSG]=t:\"ESRI\"in t?o[\"ESRI:\"+t.ESRI]=t:\"IAU2000\"in t?o[\"IAU2000:\"+t.IAU2000]=t:console.log(t);return}}(0,a.default)(o),i.default=o},\n",
" function _(t,l,G,S,e){S(),G.default=function(t){t(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),t(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),t(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),t.WGS84=t[\"EPSG:4326\"],t[\"EPSG:3785\"]=t[\"EPSG:3857\"],t.GOOGLE=t[\"EPSG:3857\"],t[\"EPSG:900913\"]=t[\"EPSG:3857\"],t[\"EPSG:102113\"]=t[\"EPSG:3857\"]}},\n",
" function _(t,n,o,a,u){a();const e=t(1),r=t(138),i=e.__importDefault(t(139)),f=e.__importDefault(t(140)),l=e.__importDefault(t(141));o.default=function(t){var n,o,a,u={},e=t.split(\"+\").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,n){var o=n.split(\"=\");return o.push(!0),t[o[0].toLowerCase()]=o[1],t}),{}),c={proj:\"projName\",datum:\"datumCode\",rf:function(t){u.rf=parseFloat(t)},lat_0:function(t){u.lat0=t*r.D2R},lat_1:function(t){u.lat1=t*r.D2R},lat_2:function(t){u.lat2=t*r.D2R},lat_ts:function(t){u.lat_ts=t*r.D2R},lon_0:function(t){u.long0=t*r.D2R},lon_1:function(t){u.long1=t*r.D2R},lon_2:function(t){u.long2=t*r.D2R},alpha:function(t){u.alpha=parseFloat(t)*r.D2R},gamma:function(t){u.rectified_grid_angle=parseFloat(t)},lonc:function(t){u.longc=t*r.D2R},x_0:function(t){u.x0=parseFloat(t)},y_0:function(t){u.y0=parseFloat(t)},k_0:function(t){u.k0=parseFloat(t)},k:function(t){u.k0=parseFloat(t)},a:function(t){u.a=parseFloat(t)},b:function(t){u.b=parseFloat(t)},r_a:function(){u.R_A=!0},zone:function(t){u.zone=parseInt(t,10)},south:function(){u.utmSouth=!0},towgs84:function(t){u.datum_params=t.split(\",\").map((function(t){return parseFloat(t)}))},to_meter:function(t){u.to_meter=parseFloat(t)},units:function(t){u.units=t;var n=(0,l.default)(f.default,t);n&&(u.to_meter=n.to_meter)},from_greenwich:function(t){u.from_greenwich=t*r.D2R},pm:function(t){var n=(0,l.default)(i.default,t);u.from_greenwich=(n||parseFloat(t))*r.D2R},nadgrids:function(t){\"@null\"===t?u.datumCode=\"none\":u.nadgrids=t},axis:function(t){var n=\"ewnsud\";3===t.length&&-1!==n.indexOf(t.substr(0,1))&&-1!==n.indexOf(t.substr(1,1))&&-1!==n.indexOf(t.substr(2,1))&&(u.axis=t)},approx:function(){u.approx=!0}};for(n in e)o=e[n],n in c?\"function\"==typeof(a=c[n])?a(o):u[a]=o:u[n]=o;return\"string\"==typeof u.datumCode&&\"WGS84\"!==u.datumCode&&(u.datumCode=u.datumCode.toLowerCase()),u}},\n",
" function _(S,_,P,R,I){R(),P.PJD_3PARAM=1,P.PJD_7PARAM=2,P.PJD_GRIDSHIFT=3,P.PJD_WGS84=4,P.PJD_NODATUM=5,P.SRS_WGS84_SEMIMAJOR=6378137,P.SRS_WGS84_SEMIMINOR=6356752.314,P.SRS_WGS84_ESQUARED=.0066943799901413165,P.SEC_TO_RAD=484813681109536e-20,P.HALF_PI=Math.PI/2,P.SIXTH=.16666666666666666,P.RA4=.04722222222222222,P.RA6=.022156084656084655,P.EPSLN=1e-10,P.D2R=.017453292519943295,P.R2D=57.29577951308232,P.FORTPI=Math.PI/4,P.TWO_PI=2*Math.PI,P.SPI=3.14159265359},\n",
" function _(o,r,a,e,s){e();var n={};a.default=n,n.greenwich=0,n.lisbon=-9.131906111111,n.paris=2.337229166667,n.bogota=-74.080916666667,n.madrid=-3.687938888889,n.rome=12.452333333333,n.bern=7.439583333333,n.jakarta=106.807719444444,n.ferro=-17.666666666667,n.brussels=4.367975,n.stockholm=18.058277777778,n.athens=23.7163375,n.oslo=10.722916666667},\n",
" function _(t,e,f,o,u){o(),f.default={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}}},\n",
" function _(e,r,t,a,n){a();var o=/[\\s_\\-\\/\\(\\)]/g;t.default=function(e,r){if(e[r])return e[r];for(var t,a=Object.keys(e),n=r.toLowerCase().replace(o,\"\"),f=-1;++f0?90:-90)):(e.lat0=_(e.lat1>0?90:-90),e.lat_ts=e.lat1)}(n),n}},\n",
" function _(t,e,r,i,s){i(),r.default=function(t){return new c(t).output()};var h=1,o=/\\s/,n=/[A-Za-z]/,a=/[A-Za-z84_]/,u=/[,\\]]/,d=/[\\d\\.E\\-\\+]/;function c(t){if(\"string\"!=typeof t)throw new Error(\"not a string\");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=h}c.prototype.readCharicter=function(){var t=this.text[this.place++];if(4!==this.state)for(;o.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case h:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},c.prototype.afterquote=function(t){if('\"'===t)return this.word+='\"',void(this.state=4);if(u.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in afterquote yet, index '+this.place)},c.prototype.afterItem=function(t){return\",\"===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=h)):\"]\"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=h,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},c.prototype.number=function(t){if(!d.test(t)){if(u.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in number yet, index '+this.place)}this.word+=t},c.prototype.quoted=function(t){'\"'!==t?this.word+=t:this.state=5},c.prototype.keyword=function(t){if(a.test(t))this.word+=t;else{if(\"[\"===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=h)}if(!u.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in keyword yet, index '+this.place);this.afterItem(t)}},c.prototype.neutral=function(t){if(n.test(t))return this.word=t,void(this.state=2);if('\"'===t)return this.word=\"\",void(this.state=4);if(d.test(t))return this.word=t,void(this.state=3);if(!u.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in neutral yet, index '+this.place);this.afterItem(t)},c.prototype.output=function(){for(;this.place90&&a*o.R2D<-90&&h*o.R2D>180&&h*o.R2D<-180)return null;if(Math.abs(Math.abs(a)-o.HALF_PI)<=o.EPSLN)return null;if(this.sphere)i=this.x0+this.a*this.k0*(0,n.default)(h-this.long0),s=this.y0+this.a*this.k0*Math.log(Math.tan(o.FORTPI+.5*a));else{var e=Math.sin(a),r=(0,l.default)(this.e,a,e);i=this.x0+this.a*this.k0*(0,n.default)(h-this.long0),s=this.y0-this.a*this.k0*Math.log(r)}return t.x=i,t.y=s,t}function M(t){var i,s,h=t.x-this.x0,a=t.y-this.y0;if(this.sphere)s=o.HALF_PI-2*Math.atan(Math.exp(-a/(this.a*this.k0)));else{var e=Math.exp(-a/(this.a*this.k0));if(-9999===(s=(0,u.default)(this.e,e)))return null}return i=(0,n.default)(this.long0+h/(this.a*this.k0)),t.x=i,t.y=s,t}s.init=f,s.forward=_,s.inverse=M,s.names=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],s.default={init:f,forward:_,inverse:M,names:s.names}},\n",
" function _(t,n,r,u,a){u(),r.default=function(t,n,r){var u=t*n;return r/Math.sqrt(1-u*u)}},\n",
" function _(t,n,u,a,f){a();const e=t(1),o=t(138),_=e.__importDefault(t(150));u.default=function(t){return Math.abs(t)<=o.SPI?t:t-(0,_.default)(t)*o.TWO_PI}},\n",
" function _(n,t,u,f,c){f(),u.default=function(n){return n<0?-1:1}},\n",
" function _(t,n,a,o,u){o();const c=t(138);a.default=function(t,n,a){var o=t*a,u=.5*t;return o=Math.pow((1-o)/(1+o),u),Math.tan(.5*(c.HALF_PI-n))/o}},\n",
" function _(t,a,n,r,f){r();const h=t(138);n.default=function(t,a){for(var n,r,f=.5*t,o=h.HALF_PI-2*Math.atan(a),u=0;u<=15;u++)if(n=t*Math.sin(o),o+=r=h.HALF_PI-2*Math.atan(a*Math.pow((1-n)/(1+n),f))-o,Math.abs(r)<=1e-10)return o;return-9999}},\n",
" function _(n,i,e,t,r){function a(){}function f(n){return n}t(),e.init=a,e.forward=f,e.inverse=f,e.names=[\"longlat\",\"identity\"],e.default={init:a,forward:f,inverse:f,names:e.names}},\n",
" function _(t,r,e,a,n){a();const f=t(1),i=t(138),u=f.__importStar(t(155)),c=f.__importDefault(t(141));e.eccentricity=function(t,r,e,a){var n=t*t,f=r*r,u=(n-f)/n,c=0;return a?(n=(t*=1-u*(i.SIXTH+u*(i.RA4+u*i.RA6)))*t,u=0):c=Math.sqrt(u),{es:u,e:c,ep2:(n-f)/f}},e.sphere=function(t,r,e,a,n){if(!t){var f=(0,c.default)(u.default,a);f||(f=u.WGS84),t=f.a,r=f.b,e=f.rf}return e&&!r&&(r=(1-1/e)*t),(0===e||Math.abs(t-r)3&&(0===s.datum_params[3]&&0===s.datum_params[4]&&0===s.datum_params[5]&&0===s.datum_params[6]||(s.datum_type=d.PJD_7PARAM,s.datum_params[3]*=d.SEC_TO_RAD,s.datum_params[4]*=d.SEC_TO_RAD,s.datum_params[5]*=d.SEC_TO_RAD,s.datum_params[6]=s.datum_params[6]/1e6+1))),r&&(s.datum_type=d.PJD_GRIDSHIFT,s.grids=r),s.a=_,s.b=t,s.es=u,s.ep2=p,s}},\n",
" function _(t,e,n,r,i){r();var u={};function o(t){if(0===t.length)return null;var e=\"@\"===t[0];return e&&(t=t.slice(1)),\"null\"===t?{name:\"null\",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:u[t]||null,isNull:!1}}function l(t){return t/3600*Math.PI/180}function a(t,e,n){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,n)))}function d(t){return t.map((function(t){return[l(t.longitudeShift),l(t.latitudeShift)]}))}function g(t,e,n){return{name:a(t,e+8,e+16).trim(),parent:a(t,e+24,e+24+8).trim(),lowerLatitude:t.getFloat64(e+72,n),upperLatitude:t.getFloat64(e+88,n),lowerLongitude:t.getFloat64(e+104,n),upperLongitude:t.getFloat64(e+120,n),latitudeInterval:t.getFloat64(e+136,n),longitudeInterval:t.getFloat64(e+152,n),gridNodeCount:t.getInt32(e+168,n)}}function f(t,e,n,r){for(var i=e+176,u=[],o=0;oa.y||N>a.x||g1e-12&&Math.abs(n.y)>1e-12);if(d<0)return console.log(\"Inverse grid shift iterator failed to converge.\"),a;a.x=(0,u.default)(l.x+t.ll[0]),a.y=l.y+t.ll[1]}else isNaN(l.x)||(a.x=r.x+l.x,a.y=r.y+l.y);return a}function f(r,e){var t,a={x:r.x/e.del[0],y:r.y/e.del[1]},i=Math.floor(a.x),l=Math.floor(a.y),n=a.x-1*i,o=a.y-1*l,u={x:Number.NaN,y:Number.NaN};if(i<0||i>=e.lim[0])return u;if(l<0||l>=e.lim[1])return u;t=l*e.lim[0]+i;var d=e.cvs[t][0],s=e.cvs[t][1];t++;var y=e.cvs[t][0],f=e.cvs[t][1];t+=e.lim[0];var x=e.cvs[t][0],m=e.cvs[t][1];t--;var N=e.cvs[t][0],c=e.cvs[t][1],_=n*o,g=n*(1-o),v=(1-n)*(1-o),S=(1-n)*o;return u.x=v*d+g*y+S*N+_*x,u.y=v*s+g*f+S*c+_*m,u}t.default=function(r,e,t){if((0,o.compareDatums)(r,e))return t;if(r.datum_type===n.PJD_NODATUM||e.datum_type===n.PJD_NODATUM)return t;var a=r.a,i=r.es;if(r.datum_type===n.PJD_GRIDSHIFT){if(0!==s(r,!1,t))return;a=n.SRS_WGS84_SEMIMAJOR,i=n.SRS_WGS84_ESQUARED}var l=e.a,u=e.b,y=e.es;if(e.datum_type===n.PJD_GRIDSHIFT&&(l=n.SRS_WGS84_SEMIMAJOR,u=n.SRS_WGS84_SEMIMINOR,y=n.SRS_WGS84_ESQUARED),i===y&&a===l&&!d(r.datum_type)&&!d(e.datum_type))return t;if(t=(0,o.geodeticToGeocentric)(t,i,a),d(r.datum_type)&&(t=(0,o.geocentricToWgs84)(t,r.datum_type,r.datum_params)),d(e.datum_type)&&(t=(0,o.geocentricFromWgs84)(t,e.datum_type,e.datum_params)),t=(0,o.geocentricToGeodetic)(t,y,l,u),e.datum_type===n.PJD_GRIDSHIFT&&0!==s(e,!0,t))return;return t},t.applyGridShift=s},\n",
" function _(a,t,r,m,s){m();const u=a(138);r.compareDatums=function(a,t){return a.datum_type===t.datum_type&&(!(a.a!==t.a||Math.abs(a.es-t.es)>5e-11)&&(a.datum_type===u.PJD_3PARAM?a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]:a.datum_type!==u.PJD_7PARAM||a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]&&a.datum_params[3]===t.datum_params[3]&&a.datum_params[4]===t.datum_params[4]&&a.datum_params[5]===t.datum_params[5]&&a.datum_params[6]===t.datum_params[6]))},r.geodeticToGeocentric=function(a,t,r){var m,s,_,e,n=a.x,d=a.y,i=a.z?a.z:0;if(d<-u.HALF_PI&&d>-1.001*u.HALF_PI)d=-u.HALF_PI;else if(d>u.HALF_PI&&d<1.001*u.HALF_PI)d=u.HALF_PI;else{if(d<-u.HALF_PI)return{x:-1/0,y:-1/0,z:a.z};if(d>u.HALF_PI)return{x:1/0,y:1/0,z:a.z}}return n>Math.PI&&(n-=2*Math.PI),s=Math.sin(d),e=Math.cos(d),_=s*s,{x:((m=r/Math.sqrt(1-t*_))+i)*e*Math.cos(n),y:(m+i)*e*Math.sin(n),z:(m*(1-t)+i)*s}},r.geocentricToGeodetic=function(a,t,r,m){var s,_,e,n,d,i,p,P,y,z,M,o,A,c,x,h=1e-12,f=a.x,I=a.y,F=a.z?a.z:0;if(s=Math.sqrt(f*f+I*I),_=Math.sqrt(f*f+I*I+F*F),s/r1e-24&&A<30);return{x:c,y:Math.atan(M/Math.abs(z)),z:x}},r.geocentricToWgs84=function(a,t,r){if(t===u.PJD_3PARAM)return{x:a.x+r[0],y:a.y+r[1],z:a.z+r[2]};if(t===u.PJD_7PARAM){var m=r[0],s=r[1],_=r[2],e=r[3],n=r[4],d=r[5],i=r[6];return{x:i*(a.x-d*a.y+n*a.z)+m,y:i*(d*a.x+a.y-e*a.z)+s,z:i*(-n*a.x+e*a.y+a.z)+_}}},r.geocentricFromWgs84=function(a,t,r){if(t===u.PJD_3PARAM)return{x:a.x-r[0],y:a.y-r[1],z:a.z-r[2]};if(t===u.PJD_7PARAM){var m=r[0],s=r[1],_=r[2],e=r[3],n=r[4],d=r[5],i=r[6],p=(a.x-m)/i,P=(a.y-s)/i,y=(a.z-_)/i;return{x:p+d*P-n*y,y:-d*p+P+e*y,z:n*p-e*P+y}}}},\n",
" function _(e,a,i,s,n){s(),i.default=function(e,a,i){var s,n,r,c=i.x,d=i.y,f=i.z||0,u={};for(r=0;r<3;r++)if(!a||2!==r||void 0!==i.z)switch(0===r?(s=c,n=-1!==\"ew\".indexOf(e.axis[r])?\"x\":\"y\"):1===r?(s=d,n=-1!==\"ns\".indexOf(e.axis[r])?\"y\":\"x\"):(s=f,n=\"z\"),e.axis[r]){case\"e\":case\"n\":u[n]=s;break;case\"w\":case\"s\":u[n]=-s;break;case\"u\":void 0!==i[n]&&(u.z=s);break;case\"d\":void 0!==i[n]&&(u.z=-s);break;default:return null}return u}},\n",
" function _(n,t,e,u,f){u(),e.default=function(n){var t={x:n[0],y:n[1]};return n.length>2&&(t.z=n[2]),n.length>3&&(t.m=n[3]),t}},\n",
" function _(e,i,n,t,r){function o(e){if(\"function\"==typeof Number.isFinite){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(\"number\"!=typeof e||e!=e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}t(),n.default=function(e){o(e.x),o(e.y)}},\n",
" function _(e,i,s,o,n){var l,t,a,r,_;o();const c=e(1),d=e(166),p=e(85),T=c.__importStar(e(18));class m extends d.MarkingView{}s.ArrowHeadView=m,m.__name__=\"ArrowHeadView\";class v extends d.Marking{constructor(e){super(e)}}s.ArrowHead=v,l=v,v.__name__=\"ArrowHead\",l.define((()=>({size:[T.NumberSpec,25]})));class u extends m{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(0,0),e.lineTo(.5*s,s)}render(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),this.visuals.line.apply(e,i)}}s.OpenHeadView=u,u.__name__=\"OpenHeadView\";class h extends v{constructor(e){super(e)}}s.OpenHead=h,t=h,h.__name__=\"OpenHead\",t.prototype.default_view=u,t.mixins(p.LineVector);class V extends m{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(.5*s,s)}render(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),e.closePath(),this.visuals.fill.apply(e,i),this.visuals.line.apply(e,i)}}s.NormalHeadView=V,V.__name__=\"NormalHeadView\";class H extends v{constructor(e){super(e)}}s.NormalHead=H,a=H,H.__name__=\"NormalHead\",a.prototype.default_view=V,a.mixins([p.LineVector,p.FillVector]),a.override({fill_color:\"black\"});class w extends m{clip(e,i){this.visuals.line.set_vectorize(e,i);const s=this.size.get(i);e.moveTo(.5*s,s),e.lineTo(.5*s,-2),e.lineTo(-.5*s,-2),e.lineTo(-.5*s,s),e.lineTo(0,.5*s),e.lineTo(.5*s,s)}render(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,s),e.lineTo(0,0),e.lineTo(-.5*s,s),e.lineTo(0,.5*s),e.closePath(),this.visuals.fill.apply(e,i),this.visuals.line.apply(e,i)}}s.VeeHeadView=w,w.__name__=\"VeeHeadView\";class x extends v{constructor(e){super(e)}}s.VeeHead=x,r=x,x.__name__=\"VeeHead\",r.prototype.default_view=w,r.mixins([p.LineVector,p.FillVector]),r.override({fill_color:\"black\"});class g extends m{render(e,i){const s=this.size.get(i);e.beginPath(),e.moveTo(.5*s,0),e.lineTo(-.5*s,0),this.visuals.line.apply(e,i)}clip(e,i){}}s.TeeHeadView=g,g.__name__=\"TeeHeadView\";class z extends v{constructor(e){super(e)}}s.TeeHead=z,_=z,z.__name__=\"TeeHead\",_.prototype.default_view=g,_.mixins(p.LineVector)},\n",
" function _(e,t,n,i,s){var a;i();const r=e(1),c=e(51),o=e(58),_=r.__importStar(e(82)),u=r.__importStar(e(18));class l extends o.View{initialize(){super.initialize(),this.visuals=new _.Visuals(this)}request_render(){this.parent.request_render()}get canvas(){return this.parent.canvas}set_data(e,t){const n=this;for(const i of this.model){if(!(i instanceof u.VectorSpec||i instanceof u.ScalarSpec))continue;const s=i.uniform(e).select(t);n[`${i.attr}`]=s}}}n.MarkingView=l,l.__name__=\"MarkingView\";class d extends c.Model{constructor(e){super(e)}}n.Marking=d,a=d,d.__name__=\"Marking\",a.define((({})=>({})))},\n",
" function _(t,e,i,r,o){var a;r();const n=t(1),_=t(79),s=t(168),l=t(185),h=t(186),c=t(191),u=t(188),d=t(197),p=t(189),m=t(238),f=t(190),g=t(250),w=t(252),b=t(173),y=t(20),x=n.__importStar(t(85)),v=t(253),k=t(254),z=t(256),j=t(170),B=t(56),S=t(64),L=t(8);class T extends _.AnnotationView{get orientation(){return this._orientation}*children(){yield*super.children(),yield this._axis_view,yield this._title_view}initialize(){super.initialize();const{ticker:t,formatter:e}=this.model;this._ticker=\"auto\"!=t?t:this._create_ticker(),this._formatter=\"auto\"!=e?e:this._create_formatter(),this._major_range=this._create_major_range(),this._major_scale=this._create_major_scale(),this._minor_range=new w.Range1d({start:0,end:1}),this._minor_scale=new g.LinearScale,this._frame=new l.CartesianFrame(this._major_scale,this._minor_scale,this._major_range,this._minor_range),this._axis=this._create_axis(),this._apply_axis_properties(),this._title=new s.Title,this._apply_title_properties()}async lazy_initialize(){await super.lazy_initialize();const t=this,e={get parent(){return t.parent},get root(){return t.root},get frame(){return t._frame},get canvas_view(){return t.parent.canvas_view},request_layout(){t.layout.dirty=!0,t.parent.request_layout()},request_paint(){t.parent.request_paint(t)},request_render(){t.request_paint()},notify_finished_after_paint(){t.parent.notify_finished_after_paint()}};this._axis_view=await(0,B.build_view)(this._axis,{parent:e}),this._title_view=await(0,B.build_view)(this._title,{parent:e})}remove(){this._title_view.remove(),this._axis_view.remove(),super.remove()}_apply_axis_properties(){const t={ticker:this._ticker,formatter:this._formatter,major_label_standoff:this.model.label_standoff,axis_line_color:null,major_tick_in:this.model.major_tick_in,major_tick_out:this.model.major_tick_out,minor_tick_in:this.model.minor_tick_in,minor_tick_out:this.model.minor_tick_out,major_label_overrides:this.model.major_label_overrides,major_label_policy:this.model.major_label_policy,...x.attrs_of(this.model,\"major_label_\",x.Text,!0),...x.attrs_of(this.model,\"major_tick_\",x.Line,!0),...x.attrs_of(this.model,\"minor_tick_\",x.Line,!0)};this._axis.setv(t)}_apply_title_properties(){const t={text:this.model.title??\"\",standoff:this.model.title_standoff,...x.attrs_of(this.model,\"title_\",x.Text,!1)};this._title.setv(t)}connect_signals(){super.connect_signals(),this.connect(this.model.change,(()=>{this._apply_title_properties(),this._apply_axis_properties()})),this.connect(this._ticker.change,(()=>this.request_render())),this.connect(this._formatter.change,(()=>this.request_render()))}_update_frame(){const[t,e,i,r]=(()=>\"horizontal\"==this.orientation?[this._major_scale,this._minor_scale,this._major_range,this._minor_range]:[this._minor_scale,this._major_scale,this._minor_range,this._major_range])();this._frame.in_x_scale=t,this._frame.in_y_scale=e,this._frame.x_range=i,this._frame.y_range=r,this._frame.configure_scales()}update_layout(){const{location:t,width:e,height:i,padding:r,margin:o}=this.model,[a,n]=(()=>{if(!(0,L.isString)(t))return[\"end\",\"start\"];switch(t){case\"top_left\":return[\"start\",\"start\"];case\"top\":case\"top_center\":return[\"start\",\"center\"];case\"top_right\":return[\"start\",\"end\"];case\"bottom_left\":return[\"end\",\"start\"];case\"bottom\":case\"bottom_center\":return[\"end\",\"center\"];case\"bottom_right\":return[\"end\",\"end\"];case\"left\":case\"center_left\":return[\"center\",\"start\"];case\"center\":case\"center_center\":return[\"center\",\"center\"];case\"right\":case\"center_right\":return[\"center\",\"end\"]}})(),_=this._orientation=(()=>{const{orientation:t}=this.model;return\"auto\"==t?null!=this.panel?this.panel.is_horizontal?\"horizontal\":\"vertical\":\"start\"==n||\"end\"==n||\"center\"==a?\"vertical\":\"horizontal\":t})();this._update_frame();const s=new k.NodeLayout,l=new k.VStack,h=new k.VStack,c=new k.HStack,u=new k.HStack;s.absolute=!0,l.absolute=!0,h.absolute=!0,c.absolute=!0,u.absolute=!0,s.on_resize((t=>this._frame.set_geometry(t)));const d=new z.BorderLayout;this._inner_layout=d,d.absolute=!0,d.center_panel=s,d.top_panel=l,d.bottom_panel=h,d.left_panel=c,d.right_panel=u;const p={left:r,right:r,top:r,bottom:r},m=(()=>{if(null==this.panel){if((0,L.isString)(t))return{left:o,right:o,top:o,bottom:o};{const[e,i]=t;return{left:e,right:o,top:o,bottom:i}}}if(!(0,L.isString)(t)){const[e,i]=t;return d.fixup_geometry=(t,r)=>{const o=t,a=this.layout.bbox,{width:n,height:_}=t;if(t=new S.BBox({left:a.left+e,bottom:a.bottom-i,width:n,height:_}),null!=r){const e=t.left-o.left,i=t.top-o.top,{left:a,top:n,width:_,height:s}=r;r=new S.BBox({left:a+e,top:n+i,width:_,height:s})}return[t,r]},{left:e,right:0,top:0,bottom:i}}d.fixup_geometry=(t,e)=>{const i=t;if(\"horizontal\"==_){const{top:e,width:i,height:r}=t;if(\"end\"==n){const{right:o}=this.layout.bbox;t=new S.BBox({right:o,top:e,width:i,height:r})}else if(\"center\"==n){const{hcenter:o}=this.layout.bbox;t=new S.BBox({hcenter:Math.round(o),top:e,width:i,height:r})}}else{const{left:e,width:i,height:r}=t;if(\"end\"==a){const{bottom:o}=this.layout.bbox;t=new S.BBox({left:e,bottom:o,width:i,height:r})}else if(\"center\"==a){const{vcenter:o}=this.layout.bbox;t=new S.BBox({left:e,vcenter:Math.round(o),width:i,height:r})}}if(null!=e){const r=t.left-i.left,o=t.top-i.top,{left:a,top:n,width:_,height:s}=e;e=new S.BBox({left:a+r,top:n+o,width:_,height:s})}return[t,e]}})();let f,g,w,b;if(d.padding=p,null!=this.panel)f=\"max\",g=void 0,w=void 0,b=void 0;else if(\"auto\"==(\"horizontal\"==_?e:i)){f=\"fixed\";const t=this._get_major_size_factor();null!=t&&(g=25*t),w={percent:.3},b={percent:.8}}else f=\"fit\",g=void 0;if(\"horizontal\"==_){const t=\"auto\"==e?void 0:e,r=\"auto\"==i?25:i;d.set_sizing({width_policy:f,height_policy:\"min\",width:g,min_width:w,max_width:b,halign:n,valign:a,margin:m}),d.center_panel.set_sizing({width_policy:\"auto\"==e?\"fit\":\"fixed\",height_policy:\"fixed\",width:t,height:r})}else{const t=\"auto\"==e?25:e,r=\"auto\"==i?void 0:i;d.set_sizing({width_policy:\"min\",height_policy:f,height:g,min_height:w,max_height:b,halign:n,valign:a,margin:m}),d.center_panel.set_sizing({width_policy:\"fixed\",height_policy:\"auto\"==i?\"fit\":\"fixed\",width:t,height:r})}l.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),h.set_sizing({width_policy:\"fit\",height_policy:\"min\"}),c.set_sizing({width_policy:\"min\",height_policy:\"fit\"}),u.set_sizing({width_policy:\"min\",height_policy:\"fit\"});const{_title_view:y}=this;\"horizontal\"==_?(y.panel=new j.SidePanel(\"above\"),y.update_layout(),l.children.push(y.layout)):(y.panel=new j.SidePanel(\"left\"),y.update_layout(),c.children.push(y.layout));const{panel:x}=this,B=null!=x&&_==x.orientation?x.side:\"horizontal\"==_?\"below\":\"right\",T=(()=>{switch(B){case\"above\":return l;case\"below\":return h;case\"left\":return c;case\"right\":return u}})(),{_axis_view:q}=this;if(q.panel=new j.SidePanel(B),q.update_layout(),null!=q.layout&&T.children.push(q.layout),null!=this.panel){const t=new v.Grid([{layout:d,row:0,col:0}]);t.absolute=!0,\"horizontal\"==_?t.set_sizing({width_policy:\"max\",height_policy:\"min\"}):t.set_sizing({width_policy:\"min\",height_policy:\"max\"}),this.layout=t}else this.layout=this._inner_layout;const{visible:A}=this.model;this.layout.sizing.visible=A}_create_axis(){return new c.LinearAxis}_create_formatter(){return new m.BasicTickFormatter}_create_major_range(){return new w.Range1d({start:0,end:1})}_create_major_scale(){return new g.LinearScale}_create_ticker(){return new d.BasicTicker}_get_major_size_factor(){return null}_render(){const{ctx:t}=this.layer;t.save(),this._paint_bbox(t,this._inner_layout.bbox),this._paint_colors(t,this._inner_layout.center_panel.bbox),this._title_view.render(),this._axis_view.render(),t.restore()}_paint_bbox(t,e){const{x:i,y:r}=e;let{width:o,height:a}=e;i+o>=this.parent.canvas_view.bbox.width&&(o-=1),r+a>=this.parent.canvas_view.bbox.height&&(a-=1),t.save(),this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(t),t.fillRect(i,r,o,a)),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(t),t.strokeRect(i,r,o,a)),t.restore()}serializable_state(){const{children:t=[],...e}=super.serializable_state();return t.push(this._title_view.serializable_state()),t.push(this._axis_view.serializable_state()),{...e,children:t}}}i.BaseColorBarView=T,T.__name__=\"BaseColorBarView\";class q extends _.Annotation{constructor(t){super(t)}}i.BaseColorBar=q,a=q,q.__name__=\"BaseColorBar\",a.mixins([[\"major_label_\",x.Text],[\"title_\",x.Text],[\"major_tick_\",x.Line],[\"minor_tick_\",x.Line],[\"border_\",x.Line],[\"bar_\",x.Line],[\"background_\",x.Fill]]),a.define((({Alpha:t,Float:e,Str:i,Tuple:r,Or:o,Ref:a,Auto:n,Nullable:_})=>({location:[o(y.Anchor,r(e,e)),\"top_right\"],orientation:[o(y.Orientation,n),\"auto\"],title:[_(o(i,a(b.BaseText))),null],title_standoff:[e,2],width:[o(e,n),\"auto\"],height:[o(e,n),\"auto\"],scale_alpha:[t,1],ticker:[o(a(u.Ticker),n),\"auto\"],formatter:[o(a(p.TickFormatter),n),\"auto\"],major_label_overrides:[h.LabelOverrides,new Map],major_label_policy:[a(f.LabelingPolicy),()=>new f.NoOverlap],label_standoff:[e,5],margin:[e,30],padding:[e,10],major_tick_in:[e,5],major_tick_out:[e,0],minor_tick_in:[e,0],minor_tick_out:[e,0]}))),a.override({background_fill_color:\"#ffffff\",background_fill_alpha:.95,bar_line_color:null,border_line_color:null,major_label_text_font_size:\"11px\",major_tick_line_color:\"#ffffff\",minor_tick_line_color:null,title_text_font_size:\"13px\",title_text_font_style:\"italic\"})},\n",
" function _(e,t,i,a,s){var o;a();const r=e(1),n=e(169),c=e(20),l=r.__importStar(e(183));class h extends n.TextAnnotationView{_get_position(){const e=this.model.offset,t=this.model.standoff/2,{align:i,vertical_align:a}=this.model;let s,o;const{bbox:r}=this.layout;switch(this.panel.side){case\"above\":case\"below\":switch(a){case\"top\":o=r.top+t;break;case\"middle\":o=r.vcenter;break;case\"bottom\":o=r.bottom-t}switch(i){case\"left\":s=r.left+e;break;case\"center\":s=r.hcenter;break;case\"right\":s=r.right-e}break;case\"left\":switch(a){case\"top\":s=r.left+t;break;case\"middle\":s=r.hcenter;break;case\"bottom\":s=r.right-t}switch(i){case\"left\":o=r.bottom-e;break;case\"center\":o=r.vcenter;break;case\"right\":o=r.top+e}break;case\"right\":switch(a){case\"top\":s=r.right-t;break;case\"middle\":s=r.hcenter;break;case\"bottom\":s=r.left+t}switch(i){case\"left\":o=r.top+e;break;case\"center\":o=r.vcenter;break;case\"right\":o=r.bottom-e}}return{sx:s,sy:o}}get anchor(){const{align:e,vertical_align:t}=this.model;return l.text_anchor(\"auto\",e,t)}get origin(){return this._get_position()}get angle(){return this.panel.get_label_angle_heuristic(\"parallel\")}_get_size(){const e=e=>0==e?0:2+e+this.model.standoff,{width:t,height:i}=super._get_size();return this.panel.is_horizontal?{width:t,height:e(i)}:{width:e(t),height:i}}}i.TitleView=h,h.__name__=\"TitleView\";class _ extends n.TextAnnotation{constructor(e){super(e)}}i.Title=_,o=_,_.__name__=\"Title\",o.prototype.default_view=h,o.define((({Float:e})=>({vertical_align:[c.VerticalAlign,\"bottom\"],align:[c.TextAlign,\"left\"],offset:[e,0],standoff:[e,10]}))),o.override({text_font_size:\"13px\",text_font_style:\"bold\",text_line_height:1})},\n",
" function _(t,e,i,s,n){var a;s();const r=t(1),o=t(79),d=t(170),h=t(173),_=t(56),l=t(8),c=t(174),u=t(182),g=r.__importStar(t(183)),p=t(64),x=t(184),y=r.__importStar(t(85));class w extends o.AnnotationView{*children(){yield*super.children(),yield this._text_view}async lazy_initialize(){await super.lazy_initialize(),await this._init_text()}async _init_text(){const{text:t}=this.model,e=(0,l.isString)(t)?(0,c.parse_delimited_string)(t):t;this._text_view=await(0,_.build_view)(e,{parent:this})}update_layout(){const{panel:t}=this;this.layout=null!=t?new d.SideLayout(t,(()=>this.get_size()),!1):void 0}connect_signals(){super.connect_signals();const{text:t}=this.model.properties;this.on_change(t,(async()=>{this._text_view.remove(),await this._init_text()})),this.connect(this.model.change,(()=>this.request_render()))}remove(){this._text_view.remove(),super.remove()}has_finished(){return!!super.has_finished()&&!!this._text_view.has_finished()}get displayed(){return super.displayed&&\"\"!=this._text_view.model.text&&this.visuals.text.doit}get padding(){return g.padding(this.model.padding)}get border_radius(){return g.border_radius(this.model.border_radius)}_get_size(){if(!this.displayed)return{width:0,height:0};const t=this._text_view.graphics();t.angle=this.angle,t.align=\"auto\",t.visuals=this.visuals.text.values();const e=t.size(),{padding:i}=this;return{width:e.width+i.left+i.right,height:e.height+i.top+i.bottom}}compute_geometry(){super.compute_geometry();const t=this._text_view.graphics();t.position={sx:0,sy:0,x_anchor:\"left\",y_anchor:\"top\"},t.angle=0,t.align=\"auto\",t.visuals=this.visuals.text.values();const e=t.size(),{sx:i,sy:s}=this.origin,{anchor:n,padding:a,border_radius:r,angle:o}=this,d=e.width+a.left+a.right,h=e.height+a.top+a.bottom;this._text_box=t,this._rect={sx:i,sy:s,width:d,height:h,angle:o,anchor:n,padding:a,border_radius:r}}_render(){this.compute_geometry();const{ctx:t}=this.layer,{sx:e,sy:i,width:s,height:n,angle:a,anchor:r,padding:o,border_radius:d}=this._rect,h=this._text_box,_=r.x*s,l=r.y*n;t.translate(e,i),t.rotate(a),t.translate(-_,-l);const{background_fill:c,background_hatch:u,border_line:g,text:y}=this.visuals;if(c.doit||u.doit||g.doit){t.beginPath();const e=new p.BBox({x:0,y:0,width:s,height:n});(0,x.round_rect)(t,e,d),c.apply(t),u.apply(t),g.apply(t)}if(y.doit){const{left:e,top:i}=o;t.translate(e,i),h.paint(t),t.translate(-e,-i)}t.translate(_,l),t.rotate(-a),t.translate(-e,-i)}}i.TextAnnotationView=w,w.__name__=\"TextAnnotationView\";class m extends o.Annotation{constructor(t){super(t)}}i.TextAnnotation=m,a=m,m.__name__=\"TextAnnotation\",a.mixins([y.Text,[\"border_\",y.Line],[\"background_\",y.Fill],[\"background_\",y.Hatch]]),a.define((({Str:t,Or:e,Ref:i})=>({text:[e(t,i(h.BaseText)),\"\"],padding:[u.Padding,0],border_radius:[u.BorderRadius,0]}))),a.override({border_line_color:null,background_fill_color:null,background_hatch_color:null})},\n",
" function _(t,e,i,l,a){l();const r=t(171),o=t(172),n=t(8),s=Math.PI/2,h={above:{parallel:0,normal:-s,horizontal:0,vertical:-s},below:{parallel:0,normal:s,horizontal:0,vertical:s},left:{parallel:-s,normal:0,horizontal:0,vertical:-s},right:{parallel:s,normal:0,horizontal:0,vertical:s}},c={above:{parallel:\"bottom\",normal:\"center\",horizontal:\"bottom\",vertical:\"center\"},below:{parallel:\"top\",normal:\"center\",horizontal:\"top\",vertical:\"center\"},left:{parallel:\"bottom\",normal:\"center\",horizontal:\"center\",vertical:\"bottom\"},right:{parallel:\"bottom\",normal:\"center\",horizontal:\"center\",vertical:\"bottom\"}},_={above:{parallel:\"center\",normal:\"left\",horizontal:\"center\",vertical:\"left\"},below:{parallel:\"center\",normal:\"left\",horizontal:\"center\",vertical:\"left\"},left:{parallel:\"center\",normal:\"right\",horizontal:\"right\",vertical:\"center\"},right:{parallel:\"center\",normal:\"left\",horizontal:\"left\",vertical:\"center\"}},g={above:\"right\",below:\"left\",left:\"right\",right:\"left\"},b={above:\"left\",below:\"right\",left:\"right\",right:\"left\"};class d{constructor(t,e){this.side=t,this.face=(()=>{if(null!=e&&\"auto\"!=e)return e;switch(this.side){case\"left\":case\"above\":return\"front\";case\"right\":case\"below\":return\"back\"}})(),this.dimension=\"above\"==this.side||\"below\"==this.side?0:1,this.orientation=0==this.dimension?\"horizontal\":\"vertical\",this.is_horizontal=0==this.dimension,this.is_vertical=1==this.dimension,this.normals=(()=>{const t=\"front\"==this.face?-1:1;switch(this.side){case\"left\":case\"right\":return[t,0];case\"above\":case\"below\":return[0,t]}})()}get face_adjusted_side(){const{side:t,face:e}=this;switch(t){case\"left\":case\"right\":return\"front\"==e?\"left\":\"right\";case\"above\":case\"below\":return\"front\"==e?\"above\":\"below\"}}get_label_text_heuristics(t){const e=this.face_adjusted_side;return(0,n.isString)(t)?{vertical_align:c[e][t],align:_[e][t]}:{vertical_align:\"center\",align:(t<0?g:b)[e]}}get_label_angle_heuristic(t){if((0,n.isString)(t)){const e=this.face_adjusted_side;return h[e][t]}return-t}}i.SidePanel=d,d.__name__=\"SidePanel\";class f extends o.ContentLayoutable{constructor(t,e,i=!1){super(),this.panel=t,this.get_size=e,this.rotate=i,this.panel.is_horizontal?this.set_sizing({width_policy:\"max\",height_policy:\"fixed\"}):this.set_sizing({width_policy:\"fixed\",height_policy:\"max\"})}_content_size(){const{width:t,height:e}=this.get_size();return!this.rotate||this.panel.is_horizontal?new r.Sizeable({width:t,height:e}):new r.Sizeable({width:e,height:t})}has_size_changed(){const{width:t,height:e}=this._content_size();return this.panel.is_horizontal?this.bbox.height!=e:this.bbox.width!=t}}i.SideLayout=f,f.__name__=\"SideLayout\"},\n",
" function _(h,t,i,e,w){e();const n=h(21),{min:d,max:s}=Math;class g{constructor(h={}){this.width=null!=h.width?h.width:0,this.height=null!=h.height?h.height:0}bounded_to({width:h,height:t}){return new g({width:this.width==1/0&&null!=h?h:this.width,height:this.height==1/0&&null!=t?t:this.height})}expanded_to({width:h,height:t}){return new g({width:h!=1/0?s(this.width,h):this.width,height:t!=1/0?s(this.height,t):this.height})}expand_to({width:h,height:t}){this.width=s(this.width,h),this.height=s(this.height,t)}narrowed_to({width:h,height:t}){return new g({width:d(this.width,h),height:d(this.height,t)})}narrow_to({width:h,height:t}){this.width=d(this.width,h),this.height=d(this.height,t)}grow_by({left:h,right:t,top:i,bottom:e}){const w=this.width+h+t,n=this.height+i+e;return new g({width:w,height:n})}shrink_by({left:h,right:t,top:i,bottom:e}){const w=s(this.width-h-t,0),n=s(this.height-i-e,0);return new g({width:w,height:n})}map(h,t){return new g({width:h(this.width),height:(null!=t?t:h)(this.height)})}}i.Sizeable=g,g.__name__=\"Sizeable\",i.SizingPolicy=(0,n.Enum)(\"fixed\",\"fit\",\"min\",\"max\")},\n",
" function _(i,t,e,h,s){h();const n=i(171),r=i(64),_=i(8),g=i(12),{abs:o,min:l,max:a,round:d}=Math;class u{constructor(){this.absolute=!1,this.position={left:0,top:0},this._bbox=new r.BBox,this._inner_bbox=new r.BBox,this._sizing=null,this._dirty=!1,this._handlers=[]}*[Symbol.iterator](){}get bbox(){return this._bbox}get inner_bbox(){return this._inner_bbox}get sizing(){return(0,g.assert)(null!=this._sizing),this._sizing}set dirty(i){this._dirty=i}get dirty(){return this._dirty}get visible(){return this.sizing.visible}set visible(i){this.sizing.visible!=i&&(this.sizing.visible=i,this._dirty=!0)}set_sizing(i={}){const t=i.width_policy??\"fit\",e=i.width,h=i.min_width,s=i.max_width,n=i.height_policy??\"fit\",r=i.height,_=i.min_height,g=i.max_height,o=i.aspect,l=i.margin??{top:0,right:0,bottom:0,left:0},a=i.visible??!0,d=i.halign??\"start\",u=i.valign??\"start\";this._sizing={width_policy:t,min_width:h,width:e,max_width:s,height_policy:n,min_height:_,height:r,max_height:g,aspect:o,margin:l,visible:a,halign:d,valign:u,size:{width:e,height:r}},this._init()}_init(){}_set_geometry(i,t){this._bbox=i,this._inner_bbox=t}set_geometry(i,t){const{fixup_geometry:e}=this;null!=e&&([i,t]=e(i,t)),this._set_geometry(i,t??i);for(const i of this._handlers)i(this._bbox,this._inner_bbox)}on_resize(i){this._handlers.push(i)}is_width_expanding(){return\"max\"==this.sizing.width_policy}is_height_expanding(){return\"max\"==this.sizing.height_policy}apply_aspect(i,{width:t,height:e}){const{aspect:h}=this.sizing;if(null!=h){const{width_policy:s,height_policy:n}=this.sizing,r=(i,t)=>{const e={max:4,fit:3,min:2,fixed:1};return e[i]>e[t]};if(\"fixed\"!=s&&\"fixed\"!=n)if(s==n){const s=t,n=d(t/h),r=d(e*h),_=e;o(i.width-s)+o(i.height-n)<=o(i.width-r)+o(i.height-_)?(t=s,e=n):(t=r,e=_)}else r(s,n)?e=d(t/h):t=d(e*h);else\"fixed\"==s?e=d(t/h):\"fixed\"==n&&(t=d(e*h))}return{width:t,height:e}}measure(i){if(null==this._sizing&&this.set_sizing(),!this.sizing.visible)return{width:0,height:0};const t=i=>\"fixed\"==this.sizing.width_policy&&null!=this.sizing.width?this.sizing.width:i,e=i=>\"fixed\"==this.sizing.height_policy&&null!=this.sizing.height?this.sizing.height:i,h=new n.Sizeable(i).shrink_by(this.sizing.margin).map(t,e),s=this._measure(h),r=this.clip_size(s,h),_=t(r.width),g=e(r.height),o=this.apply_aspect(h,{width:_,height:g});return{...s,...o}}compute(i={}){const t=this.measure({width:null!=i.width&&this.is_width_expanding()?i.width:1/0,height:null!=i.height&&this.is_height_expanding()?i.height:1/0}),{width:e,height:h}=t,{left:s,top:n}=this.position,_=new r.BBox({left:s,top:n,width:e,height:h});let g;if(null!=t.inner){const{left:i,top:s,right:n,bottom:_}=t.inner;g=new r.BBox({left:i,top:s,right:e-n,bottom:h-_})}this.set_geometry(_,g)}get xview(){return this.bbox.xview}get yview(){return this.bbox.yview}clip_size(i,t){function e(i,t,e,h){return null==e?e=0:(0,_.isNumber)(e)||(e=d(e.percent*t)),null==h?h=1/0:(0,_.isNumber)(h)||(h=d(h.percent*t)),a(e,l(i,h))}return{width:e(i.width,t.width,this.sizing.min_width,this.sizing.max_width),height:e(i.height,t.height,this.sizing.min_height,this.sizing.max_height)}}has_size_changed(){const{_dirty:i}=this;return this._dirty=!1,i}}e.Layoutable=u,u.__name__=\"Layoutable\";class c extends u{_measure(i){const t=this._content_size(),e=i.bounded_to(this.sizing.size).bounded_to(t);return{width:(()=>{switch(this.sizing.width_policy){case\"fixed\":return null!=this.sizing.width?this.sizing.width:t.width;case\"min\":return t.width;case\"fit\":return e.width;case\"max\":return a(t.width,e.width)}})(),height:(()=>{switch(this.sizing.height_policy){case\"fixed\":return null!=this.sizing.height?this.sizing.height:t.height;case\"min\":return t.height;case\"fit\":return e.height;case\"max\":return a(t.height,e.height)}})()}}}e.ContentLayoutable=c,c.__name__=\"ContentLayoutable\";class w extends c{constructor(i){super(),this.text=i}_content_size(){return new n.Sizeable(this.text.size())}}e.TextLayout=w,w.__name__=\"TextLayout\";class x extends c{constructor(i={}){super(),this.size=i}_content_size(){return new n.Sizeable(this.size)}}e.FixedLayout=x,x.__name__=\"FixedLayout\"},\n",
" function _(e,s,t,a,n){var _;a();const x=e(51),c=e(58);class i extends c.View{}t.BaseTextView=i,i.__name__=\"BaseTextView\";class o extends x.Model{constructor(e){super(e)}}t.BaseText=o,_=o,o.__name__=\"BaseText\",_.define((({Str:e})=>({text:[e]})))},\n",
" function _(n,e,t,i,o){i();const r=n(175),l=n(181),s=n(10),c=[{start:\"$$\",end:\"$$\",inline:!1},{start:\"\\\\[\",end:\"\\\\]\",inline:!1},{start:\"\\\\(\",end:\"\\\\)\",inline:!0}];function d(n){return n.split(\"\").map((n=>`\\\\${n}`)).join(\"\")}t.parse_delimited_string=function(n){const e=[];for(const t of c){const i=d(t.start),o=d(t.end),r=new RegExp(`${i}([^]*?)${o}`,\"gm\");for(const i of n.matchAll(r)){const{index:n}=i;if(null!=n){const[o,r]=i;e.push({index:n,outer:o,inner:r,delim:t})}}}if(e.length>0){if(1==e.length){const[t]=e,i=t.index,o=t.outer.length;if(0==i&&o==n.length){const n=t.inner;return new r.TeX({text:n,inline:t.delim.inline})}}let t=\"\",i=0;for(const o of(0,s.sort_by)(e,(n=>n.index))){const e=o.index;i<=e&&(t+=0!=e?`\\\\text{${n.slice(i,e)}}${o.inner}`:`${o.inner}`,i=e+o.outer.length)}return t+=ithis.load_image()))}set visuals(t){const e=t.color,s=t.alpha,i=t.font_style;let n=t.font_size;const h=t.font,{font_size_scale:o,_base_font_size:r}=this,a=(0,d.parse_css_font_size)(n);if(null!=a){let{value:t,unit:e}=a;t*=o,\"em\"==e&&0!=r&&(t*=r,e=\"px\"),n=`${t}${e}`}const _=`${i} ${n} ${h}`;this.font=_,this.color=(0,c.color2css)(e,s);const l=t.align;this._x_anchor=l;const u=t.baseline;this._y_anchor=(()=>{switch(u){case\"top\":return\"top\";case\"middle\":return\"center\";case\"bottom\":return\"bottom\";default:return\"baseline\"}})()}_computed_position(){const{width:t,height:e}=this._size(),{sx:s,sy:i,x_anchor:n=this._x_anchor,y_anchor:h=this._y_anchor}=this.position,o=(0,d.font_metrics)(this.font);return{x:s-(()=>{if((0,_.isNumber)(n))return n*t;switch(n){case\"left\":return 0;case\"center\":return.5*t;case\"right\":return t}})(),y:i-(()=>{if((0,_.isNumber)(h))return h*e;switch(h){case\"top\":return o.height>e?e-(-this.valign-o.descent)-o.height:0;case\"center\":case\"baseline\":return.5*e;case\"bottom\":return o.height>e?e+o.descent+this.valign:e}})()}}size(){const{width:t,height:e}=this._size(),{angle:s}=this;if(null==s||0==s)return{width:t,height:e};{const i=Math.cos(Math.abs(s)),n=Math.sin(Math.abs(s));return{width:Math.abs(t*i+e*n),height:Math.abs(t*n+e*i)}}}get_image_dimensions(){const t=(0,d.font_metrics)(this.font),e=this.svg_element.getAttribute(\"style\")?.split(\";\");if(null!=e){const s=new Map;e.forEach((t=>{const[e,i]=t.split(\":\");\"\"!=e.trim()&&s.set(e.trim(),i.trim())}));const i=(0,d.parse_css_length)(s.get(\"vertical-align\"));\"ex\"==i?.unit?this.valign=i.value*t.x_height:\"px\"==i?.unit&&(this.valign=i.value)}const s=(()=>{const t=this.svg_element.getAttribute(\"width\"),e=this.svg_element.getAttribute(\"height\");return{width:null!=t&&t.endsWith(\"ex\")?parseFloat(t):1,height:null!=e&&e.endsWith(\"ex\")?parseFloat(e):1}})();return{width:t.x_height*s.width,height:t.x_height*s.height}}get truncated_text(){return this.model.text.length>6?`${this.model.text.substring(0,6)}...`:this.model.text}_size(){if(null==this.svg_image)return\"failed\"==this.provider.status||\"not_started\"==this.provider.status?{width:(0,u.text_width)(this.truncated_text,this.font),height:(0,d.font_metrics)(this.font).height}:{width:this._base_font_size,height:this._base_font_size};const t=(0,d.font_metrics)(this.font);let{width:e,height:s}=this.get_image_dimensions();s=Math.max(s,t.height);return{width:e*(\"%\"==this.width?.unit?this.width.value:1),height:s*(\"%\"==this.height?.unit?this.height.value:1)}}bbox(){const{p0:t,p1:e,p2:s,p3:i}=this.rect(),n=Math.min(t.x,e.x,s.x,i.x),h=Math.min(t.y,e.y,s.y,i.y),o=Math.max(t.x,e.x,s.x,i.x),r=Math.max(t.y,e.y,s.y,i.y);return new p.BBox({left:n,right:o,top:h,bottom:r})}rect(){const t=this._rect(),{angle:e}=this;if(null==e||0==e)return t;{const{sx:s,sy:i}=this.position,n=new x.AffineTransform;return n.translate(s,i),n.rotate(e),n.translate(-s,-i),n.apply_rect(t)}}paint_rect(t){const{p0:e,p1:s,p2:i,p3:n}=this.rect();t.save(),t.strokeStyle=\"red\",t.lineWidth=1,t.beginPath();const{round:h}=Math;t.moveTo(h(e.x),h(e.y)),t.lineTo(h(s.x),h(s.y)),t.lineTo(h(i.x),h(i.y)),t.lineTo(h(n.x),h(n.y)),t.closePath(),t.stroke(),t.restore()}paint_bbox(t){const{x:e,y:s,width:i,height:n}=this.bbox();t.save(),t.strokeStyle=\"blue\",t.lineWidth=1,t.beginPath();const{round:h}=Math;t.moveTo(h(e),h(s)),t.lineTo(h(e),h(s+n)),t.lineTo(h(e+i),h(s+n)),t.lineTo(h(e+i),h(s)),t.closePath(),t.stroke(),t.restore()}async request_image(){if(null==this.provider.MathJax)return;const t=this._process_text();if(null==t)return void(this._has_finished=!0);const e=t.children[0];this.svg_element=e,e.setAttribute(\"font\",this.font),e.setAttribute(\"stroke\",this.color);const s=e.outerHTML,i=`data:image/svg+xml;utf-8,${encodeURIComponent(s)}`;this.svg_image=await(0,l.load_image)(i)}async load_image(){await this.request_image(),this.parent.request_layout()}paint(t){null==this.svg_image&&(\"not_started\"!=this.provider.status&&\"loading\"!=this.provider.status||this.provider.ready.connect((()=>this.load_image())),\"loaded\"==this.provider.status&&this.load_image()),t.save();const{sx:e,sy:s}=this.position,{angle:i}=this;null!=i&&0!=i&&(t.translate(e,s),t.rotate(i),t.translate(-e,-s));const{x:n,y:h}=this._computed_position();if(null!=this.svg_image){const{width:e,height:s}=this.get_image_dimensions();t.drawImage(this.svg_image,n,h,e,s)}else\"failed\"!=this.provider.status&&\"not_started\"!=this.provider.status||(t.fillStyle=this.color,t.font=this.font,t.textAlign=\"left\",t.textBaseline=\"alphabetic\",t.fillText(this.truncated_text,n,h+(0,d.font_metrics)(this.font).ascent));t.restore(),this._has_finished||\"failed\"!=this.provider.status&&null==this.svg_image||(this._has_finished=!0,this.parent.notify_finished_after_paint())}}s.MathTextView=y,y.__name__=\"MathTextView\";class v extends f.BaseText{constructor(t){super(t)}}s.MathText=v,v.__name__=\"MathText\";class b extends y{get styled_text(){return this.text}_process_text(){}_size(){return{width:(0,u.text_width)(this.text,this.font),height:(0,d.font_metrics)(this.font).height}}paint(t){t.save();const{sx:e,sy:s}=this.position,{angle:i}=this;null!=i&&0!=i&&(t.translate(e,s),t.rotate(i),t.translate(-e,-s));const{x:n,y:h}=this._computed_position();t.fillStyle=this.color,t.font=this.font,t.textAlign=\"left\",t.textBaseline=\"alphabetic\",t.fillText(this.text,n,h+(0,d.font_metrics)(this.font).ascent),t.restore(),this._has_finished=!0,this.parent.notify_finished_after_paint()}}s.AsciiView=b,b.__name__=\"AsciiView\";class w extends v{constructor(t){super(t)}}s.Ascii=w,h=w,w.__name__=\"Ascii\",h.prototype.default_view=b;class M extends y{get styled_text(){let t=this.text.trim(),e=t.match(/