From f4d511afdb126de676914a74bf5143d913f62a4f Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 20 May 2018 12:30:14 +0200 Subject: Some more simulration exports --- firmware/Run_analysis.ipynb | 4874 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 4819 insertions(+), 55 deletions(-) (limited to 'firmware/Run_analysis.ipynb') diff --git a/firmware/Run_analysis.ipynb b/firmware/Run_analysis.ipynb index eea8d94..aeebf6d 100644 --- a/firmware/Run_analysis.ipynb +++ b/firmware/Run_analysis.ipynb @@ -9,7 +9,7 @@ "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", - "%matplotlib inline\n", + "%matplotlib notebook\n", "import numpy as np\n", "import numpy.polynomial.polynomial as poly\n", "\n", @@ -32,10 +32,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [], "source": [ "def fetch_run(names_or_ids):\n", @@ -70,13 +68,33 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ - "def plot_run(figtitle, *names_or_ids, combine_plots=False):\n", + "def apply_style(ax):\n", + " ax.spines['top'].set_visible(False)\n", + " ax.spines['right'].set_visible(False)\n", + " ax.spines['bottom'].set_color('#08bdf9')\n", + " ax.spines['left'].set_color('#08bdf9')\n", + " ax.tick_params(axis='x', colors='#01769D', which='both')\n", + " ax.tick_params(axis='y', colors='#01769D', which='both')\n", + " ax.xaxis.label.set_color('#01769D')\n", + " ax.yaxis.label.set_color('#01769D')\n", + " ax.grid(color='#08bdf9', linestyle=':')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "color_bright, color_dark = '#ffd2e9', '#fe3ea0'\n", + "\n", + "def plot_run(figtitle, *names_or_ids, figsize=None, combine_plots=False, svgfile=None):\n", " run_info, data, cal = fetch_run(names_or_ids)\n", " \n", " if combine_plots:\n", @@ -84,8 +102,9 @@ " else:\n", " rows = (len(data)+1)//2\n", " cols = 2 if len(data) > 1 else 1\n", - " fig, axs = plt.subplots(rows, cols, figsize=(16,5*max(2, rows)), squeeze=False)\n", - " fig.suptitle(figtitle)\n", + " fig, axs = plt.subplots(rows, cols, figsize=figsize or (8,3*max(2, rows)), squeeze=False)\n", + " if figtitle:\n", + " fig.suptitle(figtitle)\n", " if combine_plots:\n", " axs = np.array([axs[0,0]] * len(names_or_ids))\n", "\n", @@ -105,15 +124,18 @@ " \n", " offx, slope = fit_coefs = poly.polyfit(duty, volt, 1)\n", " fit_func = poly.polyval(duty, fit_coefs)\n", - " ax.errorbar(duty, volt/vref, yerr=stdev/vref)\n", - " ax.plot(duty, fit_func/vref)\n", + " ax.errorbar(duty, volt/vref, yerr=stdev/vref, color=color_bright, zorder=1)\n", + " ax.plot(duty, fit_func/vref, color=color_dark, zorder=2)\n", " \n", + " apply_style(ax)\n", " ax.set_xscale('log')\n", " ax.set_yscale('log')\n", " bit_offx = offx/slope\n", " offsets.append(bit_offx)\n", + " \n", " print('Channel {} offset: {:6.3f}lsb'.format(ch, bit_offx))\n", - " ax.set_title('Channel {}, offset={:.3f}lsb'.format(ch, bit_offx))\n", + " if figtitle:\n", + " ax.set_title('Channel {}, offset={:.3f}lsb'.format(ch, bit_offx))\n", " \n", " # reuse latest duty cycles here\n", " ax.set_xticks(duty)\n", @@ -124,17 +146,19 @@ "\n", " ax.set_xlim([min_x*0.9, max_x*1.1])\n", " ax.set_ylim([0, max_y*1.1])\n", + " \n", " if len(names_or_ids) > 1:\n", " print('Offset statistics: mean={:.4f}lsb, stdev={:.4f}lsb'.format(\n", - " statistics.mean(offsets), statistics.stdev(offsets)))" + " statistics.mean(offsets), statistics.stdev(offsets)))\n", + " \n", + " if svgfile:\n", + " fig.savefig(svgfile)" ] }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [], "source": [ "def fetch_runs(*names):\n", @@ -147,50 +171,2411 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": { - "collapsed": false, "scrolled": false }, "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { "data": { - "image/png": "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\n", + "text/html": [ + "" + ], "text/plain": [ - "" + "" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Channel 31 offset: 2.681lsb\n" + ] } ], "source": [ - "plot_run('All channels, blue runs', *fetch_runs('green1', 'green2', 'green3', 'green4'))" + "plot_run(None, *fetch_runs('green1'), figsize=(6, 4), svgfile='/tmp/driver_linearity_raw.svg')" ] }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nhu/n2CypUZsyJQoQDR8e23TOOy/GfveAzp/qxuYaLc2tDQ52kvLy3/9Gu5W99oIll4wquFtuCX//\ne83u//lnWGSR2o1R866xJaIppd5ABbAMMBrolmXZLVVt1C4jVj3dlGXZBfPwno7Nkhqdc86JYoT7\n7RftWI47LvqEDxsGyy2Xd3TlzURUkqZz0UXw/vvxxHP77WHChHjyucQSeUemYjS2RLQ2pJSybt26\nWaRIUqPx5Zew2mpRCb9793hI/e9/w0472RO0GFOLFnXv3t1EVJIgluMedxw88QRssglssAFsthnc\neGPekalYJqLFc2yW1Jh88AF06QIbbhgzoUssEbOj++/vUtxScUZUkoBbb429Hn37RgECgIEDYaWV\n4kvlzUS0eI7NkhqD77+HkSPhlFNg883hrLOiJ+hyy8HTT+cdXcNiIiqp0cuyGGQuuiiW46rhMREt\nnmOzpMbg2GPh+uth2WXh44+heXN44IFYorvhhnlH17BUNza78llSg9a7N0yaFH3AfvoJtt0274gk\nSVJdm1r59osvoFcvePTR2APavHmc3223fONrjExEJTUIU6ZAk5k6I0+eDKefHlVuV1wRjjhi1msk\nSVLDdtNNUCjA8cfDzjvDaadN6yWu/PgrmaSy98svMeM5fPiMx594IhLQQiGeeB54YA7BSWWmsrKS\nQqGQdxiSVGM//TTnc7/+GtVwH3wQjjoqXp9ySt3F1lgVCgUqKyurvcY9opLK3p13Ru+vO++Ev/1t\n2vFdd4XOneGgg/KLTXXHPaLFc2yWVG6efhoOOABGjZr13NixUSn/66/jgfU998Cnn8JCC9V9nI2V\nxYokNWhbbhlLbjfcEK68Mo7dfTccfTR8/jksski+8alumIgWz7FZUjnJMth0U3jjDfjmG1hmmRnP\nH3RQ9Aq/5prYrvPJJ3G96o7FiiQ1WO+8E083+/SBf/wjjp12WlS/e/xxk1BJkhqir76Crl2jANEm\nm0RP0LZt49zf/w7jxsFDD0VV3CWXjOMzJ6rKl3tEJZWt116LpbcnnRRPON9/H0aMgJ494eWXfeop\nSVJDdeSRsPji8Oyz0Lp1JKIw7eH0iBFxzVJL5Run5swZUUllafhw2GknuO462GOPOLbuurEX5C9/\n8amnJEkNzU8/wRZbRA2IgQPho4+iGOFaa8GwYTELesopcPjhcP75sXRX9ZczopLK0g03wP77T0tC\n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\nc2cixYPLAAAAAElFTkSuQmCC\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def frob_export_for_blog(data, svgfile=None):\n", + " fig, ax = plt.subplots(1, 1, figsize=(6, 4))\n", + " apply_style(ax)\n", + " ax.plot(data, color=color_dark)\n", + " ax.set_yscale('log')\n", + " ax.set_xscale('log')\n", + " ax.set_xlim((0, len(data)))\n", + " if svgfile:\n", + " fig.savefig(svgfile)\n", + "\n", + "frob_export_for_blog(bitslide(8, 2.5), svgfile='/tmp/uncorrected_brightness_sim.svg')" + ] + }, { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -242,9 +3436,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -269,9 +3461,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "data": { @@ -296,9 +3486,7 @@ { "cell_type": "code", "execution_count": 28, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -324,16 +3512,793 @@ }, { "cell_type": "code", - "execution_count": 52, - "metadata": { - "collapsed": false - }, + "execution_count": 19, + "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5UAAAF2CAYAAAD+57zWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeYlNXZx/HvsWBLNMZo7L4m0RgrICCxrt3YsPeGhVhi\nTeyF0Ri72LDGEgELgqhYEEEYkd4RUWxBBXuMQZEO5/3jkEQI7M6ys/vM7Hw/17WXyzLM/oLEw/2c\n+9wnxBiRJEmSJGlpLJN1AEmSJElS+bKolCRJkiQtNYtKSZIkSdJSs6iUJEmSJC01i0pJkiRJ0lKz\nqJQkSZIkLTWLSkmSJEnSUrOolCRJkiQttYKKyhDCuSGE8Qs+zqnvUJIkaclCCBuHEB4MITyVdRZJ\nkmosKkMIWwCnAC2ApsABIYRf1ncwSZK0eDHGSTHGU7POIUkSFLZT+RtgaIxxVoxxHvAacHD9xpIk\nqXKEEB4KIXwRQnhjka/vE0KYGEJ4N4RwcVb5JEmqTiFF5ZvAziGE1UMIKwP7AhvUbyxJkirKI8De\nP/xCCGEZoOOCr28BHB1C2GyRXxcaJp4kSUtWY1EZY5wI3Aj0BV4CxgJz6zmXJEkVI8Y4EPhmkS+3\nAt6LMX4UY5wDPAm0AQgh/DSEcC/Q1B1MSVLWlivkRTHGR0hPUQkh/AWYvOhrQgixuNEkSZUsxljp\nu3DrsfB6O4VUaBJj/CdwRk1v4NosSSqmJa3NhU5/XXPBPzcknad8YgnfxI+l+Gjfvn3mGcr1w987\nf+/8/Su/j0J+7wQsvrW11r85Wf/7ro8/H6X2fZb2vWr76wp9fSGvq+41S/tzpfrRkJn9c7Xk1/jn\nKvvvVZf3ad++fbVrTaH3VD4dQngTeA44M8Y4tbaLmiRJqpUpwIY/+PH6wKcZZWkwVVVVZfd9lva9\navvrCn19Ia+r7jUN9e+goTTk/x7/XC35Nf65yv571eV9avq1hba/7rzUCSRJUiECC+9OjgB+FULY\nCPgMOAo4OotgDcmisu6v9y//CyvHv/zX5b38c9UwyvHPVX0WlYXuVKoeNbb/kzUkf++Wnr93dePv\n39Lz9+5/hRAeBwYDm4YQPg4htI3pGq+zgVeACcCTMca3s8wp+f9f1Qf/XJW/EGNxzq6EEGKx3kuS\nVNlCCEQH9dRZCCG2b9+eqqoq/9ImSVoq+XyefD7P1VdfvcS12aJSklRyLCqLw7VZklQs1a3Ntr9K\nkiRJkpbonXeq/3mLSkmSJEnSYj3xBOy4Y/WvsaiUJEmSJC1k9mw491y44gro06f611pUSpLUiOVy\nOfL5fNYxJEll5KuvYJddYNIkuP32PM8+m6v29Q7qkSSVHAf1FIdrsySptoYNgyOPhOOOg2uugWUW\nbENWtzYv15ABJUmSJEmlJ0a47z5o3x4eeAAOOqjwX2tRKUmSJEkV7PvvoV07mDABBg2CTTap3a/3\nTKUkSZIkVah+/WDTTaFJExgypPYFJbhTKUmSJEkVZ/58uO46uOce6NQJ9thj6d/LolKSJEmSKsiX\nX8IJJ8C0aTByJKy7bt3ez/ZXSZIaMa8UkST90Jgx0KIFNG8O+XzNBWU+nyeXy1X7Gq8UkSSVHK8U\nKQ7XZknSD/XoAaefDh07whFH1O7XeqWIJEmSJFWouXPh0kuha1d46aW0U1lMFpWSpJIxaxbcf3/W\nKSRJajw+/zztSq60Ump9XWON4n8Pz1RKkkrC55/D9ttD375ZJ5Ekqfx98QUcfjhsuy3stlvaoayP\nghIsKiVJJeDll6FpUzj4YHjuuazTSJJU3gYOTIN4hg+Hhx6CXA6WXbb+vp/tr5KkzMybB1deCY88\nAt27w447Zp1IkqTyFSPceivccgs8/DDsu2/DfF+LSklSJj7/HE49Fb7/HsaNg7XWyjpR45TL5aiq\nqqKqqirrKJKkevT113DiifDVV2mHcsMNi/O++Xy+xqupvFJEktTgvvgC9tgD9tkHrr0WVlhh4Z/3\nSpHicG2WpMowcWLalTzkELj+elh++eJ/j+rWZs9USpIa1KBBsM02cNhhcNNN/1tQSpKkwvXqBVVV\ncPnlqe21PgrKmtj+KklqEDGmp6e33QadO6ddSkmStHTmzUvdPvffn/1cAotKSVK9+8c/4OST0znK\nsWNhvfWyTiRJUvn66qt0fnLGDBg5EtZdN9s8tr9KkurVyJGwww6w6abw+usWlJIk1cXQodCiBWy1\nFbzySvYFJbhTKUmqRwMGpLOTd9wBRx+ddRpJksrX9Olw1VXQpQvcc08aylMqLColSUUXI9x8M3To\nAI89BnvumXUiSZLK1zvvQJs20LQpjB8Pa66ZdaKFWVRKkorqX/9K5zw++ghGjbLdVZKkunj8cTj3\nXLjhBjjllKzTLF5BZypDCOeHEN4MIbwRQngshNCkvoNJksrPsGHQqlW6cHn4cAvKUpDL5Wq8tFqS\nVHpmzYKzz4YrroB+/bIrKPP5PLlcrtrXhJouRQ4hrAsMBDaLMc4OIXQFXowxdlrkdV6wLEkVKkZ4\n5BG45BK491449NC6vV91FyyrcK7NklSePvkkzSRYe214+GFYffWsE1W/Nhc6/XVZYJUQwnLAysCn\nxQonSSpvMaZ7sm69Ffr2rXtBKUlSJevXD5o3hwMOgKefLo2CsiY1nqmMMX4aQrgV+BiYDrwSY+xb\n78kkSSVv+nQ44QR4913o06c0xppLklSuOneG889P5yj32ivrNIWrsagMIfwEaANsBEwFuocQjokx\nPr7oa3/Ya1tVVUVVVVXRgkqSSsv48emakG23TXdRNqnDaft8Pu+5P0lSxZo9Gy6+GF58Me1Ubr11\n1olqp5AzlYcBe8cYT1vw4+OB7WKMf1jkdZ7bkKQK8be/wUUXwS23wPHHQyjy6UfPVBaHa7Mklb7P\nPkvXhayzTjo/ucYaWSdavLqeqfwYaB1CWDGEEIDdgbeLGVCSVB5mzPjvWPM+fVLra7ELSkmSKkXf\nvun8ZJs28OyzpVtQ1qSQM5XDQwjdgTHAnAX/fKC+g0mSSs8ZZ8A//wmDBpXvwidJUpbGj4cVVoDn\nnoMOHdL5yV13zTpV3dTY/lrwG9liI0mNVozQqRNceilMnAirrlq/38/21+JwbZak0hEj3HVX6viB\ndK9zt27pbudyUN3aXONOpSSpss2alc5P9umTBgjUd0EpSVJj8+23cOqp8P77abjd4MFw+umw/PJZ\nJysOi0pJ0hJNnpzOeWy0EQwcCD/9adaJJEkqL2++CYccArvtlorJFVdMk9Mbk0IG9UiSKtALL6Th\nAUcfDT16WFCWq1wu53UtkpSBGOGee6CqCq68Eu67LxWU5Safzy90deTieKZSkrSQGOGKK9JY82ef\nhe22a/gMnqksDtdmScrGtGlwyinw3nvwxBPw619nnaju6nqliCSpQsycCeefDy+/DG+8kU1BKUlS\nOXvjjTSEZ5VV0rT0xlBQ1sQzlZIkAD7/HA4/PLW5vvwyrLlm1okkSSov48bBHnvAzTfDiSdWzl3O\n7lRKksjnYZtt0j1ZzzxjQSlJUm3ECLffngrKu+6Ck06qnIIS3KmUpIoWI+RycP/98NhjaTGUJEmF\n+/77dD3IW2/B8OGw8cZZJ2p4FpWSVKG++QaOPx6++iqd/1hrrawTSZJUXt54Aw47DLbfHl5/HVZe\nOetE2bD9VZIq0OTJsN9+6f7J11+3oJQkqbaeeAJ23x3at4e//a1yC0pwp1KSKs7Agemp6llnweWX\nwzI+XpQkqWDTp6d21+HD4ZVXoFmzrBNlz79KSFKFiBH+8pc04fXhh9NFzBaUkiQV7u9/T62uAKNH\nW1D+mzuVklQBvvkGjjwSpk6FUaNg3XWzTiRJUvn47jvo1Amuvhquuip1+1TSdNea+Ixakhq5ESOg\nZUvYYot0CbMFpSRJhRs5Epo3hx49oFcv+MMfLCgX5U6lJDVigwfDIYekO7MOPzzrNJIklZfbboPr\nr4eOHeGII7JOU7osKiWpEYoR7r4brr0WHngADjww60SSJJWPqVPhjDNg3Li0U7nhhlknKm0WlZLU\nyEyblu6fnDQp7VT+4hdZJ1KWcrkcVVVVVFVVZR1FksrChAlw0EGwxx7pCEklXxUCkM/nyefz1b4m\nxBiL8s1CCLFY7yVJWjpjxqQ21113hXvugeWXzzrR0gkhEGP0xEoduTZLUu089BBcfDF06AAnnJB1\nmtJS3drsTqUklbkY0/CAsWPhvvtS26vnPiRJKtzUqWkAz6hRMGAAbL551onKi0WlJJWxWbPgtNPS\nmY8994T+/WHLLbNOJUlS+Xj3XTj00HT/5IgRsMoqWScqPxaVklSm3n8f2rRJV4UMGeKZD0mSaqtr\nVzj7bGjfHs4806tClpZFpSSVoccfh3PPTdNd27VzEZQkqbbOOgv69k13T267bdZpyptFpSSVkdmz\n4bLLoHv3tBBus03WiSRJKi+zZ6dhPH36wOjR8KMfZZ2o/FlUSlKZmDkTTjkF/vnPdOZjzTWzTiRJ\nUnmZNAmOPRbWWAOGDrWgLJZlsg4gSarZlCmw3XapsHz6aQtKSZJq69VX01p62GHw3HPw059mnajx\nsKiUpBL3/PPQvHl6stq9uwN5JEmqjfnz4Zpr4Pjj4ckn4YILYBmroKKy/VWSStTcuen8ZJcu0LMn\ntG6ddSJJksrLlClw4okwZw6MHAnrrpt1osbJGl2SStCnn8L++6f7J8eNs6CUJKm2hg2DHXaAXXaB\nfv0sKOtTjUVlCGHTEMKYEMLoBf+cGkI4pyHCSVIlmjw5LYAtWsALL3h+UpKk2ogR7roLDjgAbr0V\nrroKlrM/s17V+NsbY3wXaAYQQlgGmAI8U8+5JKki9e4Nxx0Hl16aznxIkqTCff01nHRS6vgZMgR+\n+cusE1WG2tbsewAfxBgn10cYSapU8+bB5ZfDo4/Cs8+mdh1JklS4t96Co46Cqqo0Kb1Jk6wTVY7a\nnqk8EniiPoJIUqX65BPYa690X9b48RaUkiQVIkYYNCgN4XnyyXR05A9/gDvusKBsaAXvVIYQlgcO\nBC5Z0mtyudx/Pq+qqqKqqqoO0SSp8Xv99TTivG3btFNZqWc+8vk8+Xw+6xiSpDIxdSqcdhp065au\n3fr2W3jlFWjWLOtklSnEGAt7YQgHAmfGGPdZws/HQt9LkpQWv+OPh7/+FQ48MOs0pSWEQIwxZJ2j\n3Lk2S2qMRo6Eo4+GPfdM5ye7dYP27eFHP8o6WeNW3dpcm2fiR2PrqyTVWYxw7bVwzz1pIdx556wT\nSZJUHjp0gBtugI4d4Ygj0tdatco2kwosKkMIK5GG9LSr3ziS1Lh9/TWccAJ8+SWMGQNrr511IkmS\nSt+//pXaXSdMgNGjYf31s06kHypoUE+McUaMcc0Y43f1HUiSGqtBg9LT1M02g8GDLSjVMHK5nOdV\nJZW1kSNh223h5z9PD2QtKBtWPp9faHbO4hR8prImntuQpMWLMZ2bvOKK9M82bbJOVPo8U1kcrs2S\nytn8+XDddXDnnXD33XD44VknqmzFOlMpSVoKnTrB7bdD//6wxRZZp5EkqfR98w20aweffpp2Kjfc\nMOtEqk5t76mUJNXC4MFwySXw8MMWlJIkFWLgQGjZMrW7vvKKBWU5sKiUpHoQIzz4IBx8cGrZad06\n60SSJJW2efPSUZEjjoBbbkkTXldZJetUKoTtr5JUZN9/nybUvfUW9OvnDqUkSTX59lvYd19YYQUY\nNw7WXDPrRKoNdyolqYjefReaNoXll4chQywoJUmqycCBsPXW0KIF9O1rQVmOLColqUieegp22AEu\nvRQefRRWWinrRJIkla558+DGG+HQQ9NRkdtvh+Dc77Jk+6sk1VGM8MgjqZjs2xe22SbrRJIklbZP\nPklnJ5dfHkaMcBhPuXOnUpLqYMYMOOMMuO026NPHglKSpJp89BE0awa/+12aPWBBWf4sKiVpKX34\nIbRqBV9/DYMGpfMgkiRpyT78EI48Es4+O016XcZqpFHwX6MkLYUePdIdWqeems5Srrpq1okkSSpt\nTz8Nv/1tum7r0kuzTqNi8kylJNXC/Plw8cXwxBPQuzc0b551IkmSStu0aXDhhfDKK9C9expqp8bF\nolKSCvT993DuuTBxYrpDa401sk4kSVJpGzcOTjghzRwYORJWXz3rRKoPtr9KUgE+/hh22ikN5nnh\nBQtKSZJqks/DnnvCeeelq7YsKBsvi0pJqsELL8C228Ixx0CXLvCTn2SdSJKk0jV3LrRvD8cdB507\nQ9u23j/Z2Nn+KklLMG8e/PGPabDA889D69ZZJ5IkqbRNngyHHQY//nFqd1177awTqSG4UylJi/HF\nF7DHHjB+fPqwoJQkqXpdu6b7Jw89NN3dbEFZOdyplKRFfPQRHHJIKiqvuw6WXTbrRJIkla7Zs+H0\n06F/f3j11TSUR5XFnUpJ+oF8Hlq1gsMPhxtusKCUJKk6U6bAgQfCP/6ROnssKCuTRaWkijV7Nnz7\nbfp8/vw0VODfw3guucShApIkVadfv/QgdrvtoFs3+NGPsk6krNj+KqkivfNOanFdbTXo2ROOOAJm\nzYKxY2GttbJOJ0lS6ZozBy6/HJ58Eh5+GPbZJ+tEypo7lZIqTteu6c7Jc86BL7+ErbZKT1oHDLCg\nlCSpOh98kK7ZmjABxoyxoFTiTqWkijFjBlxxBTzzDLz0ErRoAb/+Ncyc6aIoSVJNOnVKV21dfTWc\ncYbHRPRfFpWSKsInn8BRR8Gaa8KwYemfAFVVmcaSJKnkzZ8PHTvCrbemc5RbbZV1IpUa218lNXoT\nJ6ZWnT33hO7d/1tQSpKk6n37Ley3Xxpi17evBaUWz6JSUqP27LOwyy5w441w1VWwjP/VkySpIP8u\nIn/5Sxg8GDbZJOtEKlW2v0pqlObMSWc+HnkEXngBWrbMOpEkSeVh5ky4/np44AHo3Bn22CPrRCp1\nFpWSGp1PPoGTToJll4WRI2GddbJOJBVXCGFl4B5gFvBajPHxjCNJaiQ++yxdubXmmjBiBKy/ftaJ\nVA4KagQLIawWQugWQng7hDAhhLBdfQeTpKUxdGi6HmT77dMOpQWlGqlDgG4xxt8DB2YdRlJ5++47\nuPBC2HFH2Hpr2HdfeO45C0oVrtDTRXcAL8UYfwNsA7xdf5Ekaen87W9w0EFwzz2p9XU5ezFUJkII\nD4UQvgghvLHI1/cJIUwMIbwbQrj4Bz+1PjB5wefzGiyopEbnvfdgu+3Svc3XXgtDhsCVV3pdiGqn\nxqIyhPBjYKcY4yMAMca5McZv6z2ZJBVo3jy4+GK4/HJ47TVo0ybrRFKtPQLs/cMvhBCWATou+PoW\nwNEhhM0W/PRkUmEJ4F/9JNVajGmI3W9/C+ecA48+mq7Z+tWvsk6mclTIc/xfAP8IITxC2qUcCZwb\nY5xRr8kkqQCffgqnnAKzZ8O4cfCzn2WdSKq9GOPAEMJGi3y5FfBejPEjgBDCk0AbYCLwDNAxhLAf\n8HyDhpVU9j78EM4+G776CkaPhg03zDqRyl0hReVyQHPgrBjjyBDC7cAlQPtFX5jL5f7zeVVVFVXe\nKi6pHr3+Ohx7bBrKc8UV0KRJ1om0tPL5PPl8PusYpWY9/tviCjCFVGgSY5wOnFzIm7g2S/qhXr3g\nxBPT7uSFF8IKK2SdSKWqNmtziDFW/4IQfg4MiTH+YsGPdwQujjEesMjrYk3vJUnFECPcddd/x50f\ncEDNv0blJYRAjLGi2joX7FQ+H2PcesGPDwP2ijG2W/Dj44CWMcZza/Gers2SAJg+Hc46C/r0gaee\nSgPtpNqobm2ucacyxvhFCGFyCGHTGOO7wO7AW8UOKUmFmD8/7U6++y4MGgS/+EXWiaR6MwX4YVPa\n+sCnGWWRVMZmzEjXhKy+Orz9Nvz4x1knUmNT6PTXc4DHQghjSecqr6u/SJK0eP/4B+y/P3z+OQwe\nbEGpRiew8NCdEcCvQggbhRCaAEcBPTNJJqls9e8PW2wBP/85dO5sQan6UVBRGWMcF2NsGWNsGmM8\nJMY4tb6DSdIPDRuWWnW23BJ69/YMiBqXEMLjwGBg0xDCxyGEtjHGecDZwCvABODJGKNXekkqyLx5\ncPvtcNRRcPfdabqrV22pvvhHS1JJizGdm7zySujYEY44IutEUvHFGI9Zwtd7Ab3q8t65XM4BPVKF\nmTQJDj8cVlkFBg6ETTbJOpHKWSEDe2oc1FMohwFIKrYZM+DUU+Gdd6BTJ9h886wTqaFU4qCe+uDa\nLFWWGKFLlzTV9bLL0rUhwf+SqkjqNKhHkrIwYwa0aAHNmqWrQ1ZaKetEkiSVru++S4PsPv0UevaE\nVq2yTqRKUuigHklqMDHCNdfAb36TnrhaUEqStGR9+0LLlrD22jBkiAWlGp47lZJKysyZ6VLmd95J\nT1olSdKS3XEH3HJLur+5TRvbXZUNi0pJJePtt+Hgg2HbbWHoUFhxxawTSZJUmqZPh2uvhSeeSMN4\nNtoo60SqZLa/SioJjz4KO+8MF18Mjz1mQSkVSy6Xq3Fqn6Ty8uabsPXW8MEHFpSqf/l8nlwuV+1r\nnP4qKVMzZ8Ill8Dzz8Nzz6V7KCWnvxaHa7PUuMyfn6ahX3QRdOgAxx2XdSJVEqe/SipJM2fCMcek\nC5qHDYOf/SzrRJIklabPPoOjjkrT0Xv1SkdFpFJh+6ukTHz0UVoQl18ennrKglKSpCV5+eU03XX3\n3dPMAQtKlRp3KiU1uKefhjPOgMsvh3PPzTqNJEml6dtv4eSTYdw4ePhh2GuvrBNJi2dRKanBzJ6d\nzk9262brjiRJ1Zk4EQ47DHbcMQ3mWWGFrBNJS2b7q6QGMXky/O538N57MHasBaUkSYszbx5cemkq\nJs8+G+6914JSpc+dSkn17sMPoaoK2rZNLa/L+V8eqcHkcjmqqqqoqqrKOoqkGsyfD+3awaRJaXdy\n7bWzTiSlK0VquprKK0Uk1avnn0/F5NVXw1lnZZ1G5cIrRYrDtVkqH199Beedlx7E9u4NP/pR1omk\nhVW3Ntv+KqlezJ0Lf/oT/P738NJLFpSSJC1J9+6w+ebw85+nSa8WlCo3NqFJKrqPP4YTT0zXhYwf\nD2uskXUiSZJKz7x58Je/wIMPpt3J5s2zTiQtHXcqJRVVPg877JDGnvfqZUEpSdLiDBmS7p7s1w+G\nDbOgVHlzp1JS0fTsmQYMPPQQ7Ldf1mkkSSo9MUKHDnDzzXDbbXDUURA8Qa4yZ1Epqc5ihKuuSu07\nzz0H222XdSJJkkrP5Mlw7rnw0Udpd3KjjbJOJBWH7a+S6uTLL2HffaFv33R+0oJSKi25XK7GUfCS\n6leM0LEjNGsGW20FAwdaUKp85PN5crlcta/xShFJS23AgDSQ56ij4Jpr0mAeqRi8UqQ4XJul7M2e\nnSagDx8OPXrAL3+ZdSJp6VS3Ntv+KqlWYoS334b+/VMh+dBDsP/+WaeSJKn0vPYanHMO/OIXMGiQ\nV4Wo8bKolFSwb7+FY46B0aPhN79Ji+Vmm2WdSpKk0nPTTXD33XDLLXDYYQ7jUeNm+6ukgowaBccd\nB1VVcOedtrqqftn+WhyuzVI23nsPfvtbGDMGNtgg6zRScVS3NjuoR1K1YoS//hX22QdyObjnHgtK\nSZKWJMZ0hvLSSy0oVTlsf5W0RNOnw/nnw9Ch6QzllltmnUiSpNIVI9x/P3z+eTpLKVUKi0pJizVt\nGuy2WxouMGAArLZa1okkSSpdf/87/OEPMGkSdO1qV48qS0HtryGED0MI40IIY0IIw+s7lKRsTZgA\nLVtC8+bwxBMWlJIkVefVV9MZyp13hnHjYOuts04kNaxCdyrnA1Uxxm/qM4yk7HXpAhdckKbVnXBC\n1mkk1VUul6Oqqoqqqqqso0iNzr/nDlx5JTz1FOyyS9aJpOLL5/Pk8/lqX1PQ9NcQwiSgRYzx62pe\n44Q5qYxNnw6XXAK9eqWFsVmzrBOpkjn9tThcm6X68847qd31iy+gWzf49a+zTiTVr2JMf41A7xDC\niBDCacWLJqkUTJ4Mu+6aFsahQy0oJUmqzr33wg47wL77prubLShV6Qptf90+xvh5CGFNoE8I4e0Y\n48BFX5TL5f7zua02UnkYMwb23hvOOy+NP/dyZmWhkNYaScranDlpqutrr6WHsL/6VdaJpNJQUPvr\nQr8ghPbAdzHGDot83RYbqcx06ZKuDLnvPjj00KzTSP9l+2txuDZLxTNiBJxxBqyzDjz2GKy6ataJ\npIZV3dpc405lCGFlYJkY47QQwirAXsDVRc4oqQHNnJl2JZ95xvsnJUmqzowZaYDdc8/BjTfCccfZ\n1SMtqpD2158Dz4QQ4oLXPxZjfKV+Y0mqL3//Oxx/PKy9NowcCT/7WdaJJEkqTV98AW3awMYbw1tv\nwU9+knUiqTTVOKgnxjgpxtg0xtgsxrhVjPGGhggmqfj+fY/WQQelSXUWlJIkLd64cdC6NeyzDzz+\nuAWlVJ1CB/VIKnN33ZXadh57DPbYI+s0kiSVpu++g6uvhk6d4Pbb4Zhjsk4klT6LSqmRmzsXLroI\nuneHgQPh//4v60SSJJWmUaNSu+uee8Kbb8Jaa2WdSCoPFpVSIzZlCrRtC8sum64OWWONrBNJklSa\n3n4b9t8f7rkHDj446zRSeanxTKWk8pTPp7MgO+0Ezz9vQSlVqlwu5x2gUg0+/DDd2XzjjRaU0qLy\n+Ty5XK7a19T6nsolvpF3YUklIUa49Va47TZ48EH43e+yTiTVnvdUFodrs1Sz11+Hk06C886Ds8/O\nOo1Uuup0T6Wk8nLyyTBhAgwZAhtumHUaSZJK05dfppkDr76aBvIcemjWiaTyZVEpNSIvvpgWx4kT\nYeWVs04jSVJpGjw4FZHHHpvun/zxj7NOJJU3i0qpEYgRbr45PWl97DELSkmSlqRr19Tm2qlTuoNS\nUt1ZVEpl7l//gqOPhq++ghEjYL31sk4kSVLpmTsXbrgBHngA+vSBbbbJOpHUeDj9VSpjQ4ZA8+aw\n6aYwdKgFpSRJizN0KLRsCf36pc8tKKXicqdSKlP33w9XXJEmvLZpk3UaSZJKz/ffw/nnwwsvwC23\npM6e4FyLTWB4AAAgAElEQVRpqegsKqUyE2O6R6tTJ3jtNdh886wTSZJUej76KD103WYbePttWG21\nrBNJjZdFpVRGpk9Pk+o+/hheftkrQyRJWpzXX4cjjkhXhpx3nruTUn3zTKVUJt54A5o2TU9avYNS\nkqT/NWcO3HRTui7kb39Lra8WlFL9s6iUysCDD8Luu0P79mmRbNIk60SSJJWW115LD1/7908PX/fe\nO+tEUuWw/VUqYd9/n1p3+vWDAQPgN7/JOpEkSaXl++/hzDMhn4fbboODD3Z3UmpoFpVSiZo2LbXv\n/PjHMGgQ/PSnWSeSJKm0fPopHHggbLEFvPUWrLJK1omkymT7q1SC3nknTavbYAN48kkLSklLL5fL\nkc/ns44hFd0bb8Bvf5t2Jv/2NwtKqb7k83lyuVy1rwkxxqJ8sxBCLNZ7SZXs0Ufhj3+Em2+Gtm2z\nTiNlI4RAjNEGtjpybVZj9eyz0K4d3HUXHHlk1mmkylDd2mz7q1QiZsyAc8+FV19N5ye9f1KSpIV9\n9FG6IuTNN+G559JOpaTs2f4qlYD334fddoPvvoPRoy0oJUn6oVmz4LrroHnz9DF+vAWlVErcqZQy\n9t57sMsu8Kc/paevy/ioR5Kk/5g2DfbZJ93TPHIkbLxx1okkLcq/vkoNZPhwmDdv4a91756etP75\nz3DBBRaUkiT90IwZabrrZpvB889bUEqlyr/CSvVs9mw46STYbjvo3Tt9bc6ctCt53nnQpw+cckqm\nESVJKjmzZsEhh8A668D99/vgVSplTn+V6tH776epdBtuCL/+NcyfD2ecASeemO6f7NIFVl8965RS\n6XH6a3G4NqtczZkDRxyRCsmuXWE5D2xJmatubfaZj1RPunWDHXaAk0+GHj1g331Tu+sOO6RWnp49\nLSglSVrUl1/C4YenTp8nnrCglMqBRaVUZLNnw+WXw4UXpvMfZ50FIUCrVrDJJvDII2koz7LLZp1U\nkqTSMX9+anPdckv45S/h6aehSZOsU0kqhM9+pCKaMweOPRa+/RaGDEnnQP5txRX/e6ZSkiT915gx\n6XjIMstA376w9dZZJ5JUGwXvVIYQlgkhjA4h9KzPQFK5+uSTNMl15szU2vrDglKSJP2vGOGWW2Dv\nveG002DgQAtKqRzVpv31XOCt+goilbOXXkrtrYcdlgrKFVbIOpEkSaVt7tx0RKRTJxg1Kk1Cd8Kr\nVJ4Kan8NIawP7Av8BbigXhNJZWTuXLjmGnjwwTSdbqedsk4kSVLp++47OOqotI4OHAirrpp1Ikl1\nUejzoNuACwHnkksLfPkltGmTzk6OGGFBKUlSIT75BHbeGdZdF154wYJSagxqLCpDCPsBX8QYxwJh\nwYdU0aZMge22g803T62v662XdSJJkkrfyy+n+QNHHgkPPADLL591IknFUEj76w7AgSGEfYGVgB+H\nEDrFGE9Y9IW5XO4/n1dVVVFVVVWkmFLpeOUVOP54uPhiuMBmcKko8vk8+Xw+6xiS6smUKXDeeWnK\n61//mgbzSGo8QoyFd7SGEHYB/hhjPHAxPxdr815SuZk/H/78Z7jnHuje3XZXqT6FEIgx2hlTR67N\nytrcuXDnnXDddXDmmXDppbDSSlmnkrQ0qlubvadSKsBnn8Gpp8K0aekp67rrZp1IkqTS9sYbqbNn\nzTVh8GDYdNOsE0mqL7Ua3BxjfG1xu5RSYzZiRDr/0bQp9OljQSmpvORyOVuL1eCefRZ23z0dE+nT\nx4JSKmf5fH6hY46LU6v212rfyBYbNUIvvQQnnQQdO8IRR2SdRqoctr8Wh2uzGlqMqdX1vvugRw9o\n2TLrRJKKxfZXqZZihOuvh9tvh549oXXrrBNJklTaZsyAk0+GDz6AYcPs7JEqiUWltIh//hPatYNJ\nk2DsWBdFSZJq8skncNBBqc31tdccxiNVmlqdqZQau3+fn1x/fRg40IJSkqTqxAhPPQWtWsEhh0CX\nLhaUUiVyp1IiLYqdO8Of/gR33AFHH511IkmSStu778JZZ8EXX0DXrrDjjlknkpQVdyoloEMHuOGG\nNKHOglKSpCWbMQOuvBK23x723RdGjbKglCqdO5WqeKNHp6E8Q4bAJptknUaSpNL14otw9tlpquu4\ncbDeelknklQKLCpVsX7Y8nr33RaUkiQtybx5cNFF6f7J+++HPffMOpGkUmJRqYo0cyacdhqMHAn9\n+sGWW2adSJKk0vT993DssTB1ahpo99OfZp1IUqnxTKUqzjvvQPPmMGdOan21oJQkafE++wx22QV+\n8hPo3duCUtLiWVSqonTvDjvtBOefD0884dhzSZKWZPx4aN063T/5yCPQpEnWiSSVKttfVRFiTHdn\nXXRRGjLQsmXWiSRJKl29e8Pxx3vNlqTCWFSq0ZszB849F/r3h169oGnTrBNJklSaYkyDeHI56NHD\nq0IkFcaiUo3a5MnQpk0aeT5sGKy6ataJJEkqTe+9l64L+eQTGDgQfvWrrBNJKheeqVSj9eyz0KJF\nmljXs6cFpSRJizNjBrRvD7/9LeyxRxpiZ0EpqTbcqVSjM29eWhwffhiefx5atco6kSRJpenFF+Gc\nc9JU9LFjYf31s04kqRxZVKpRmTkTzjoL3n8fRo2CddbJOpEkSaXno4/SvIG33oJ774W99so6kaRy\nZvurGo1PP02tO998k3YoLSglSfpf994L226bjoiMH29BKanuLCrVKPx7quvhh8PTT3t+UpKkxXnw\nQbj55jS87oorYIUVsk4kqTGw/VVlbd48uOwy6Nw5DebZfvusE0mSVJp69ICrroLXXoNf/jLrNJIa\nE4tKla3PP4e2bWHWLHjjDfjZz7JOJElSaerfH04/HXr3hk02yTqNpMbG9leVpc8+S2dAttkGXn7Z\nglKSpCUZPRqOPBKeegqaNcs6jaTGyKJSZef11/97fvL666FJk6wTSZJUmt57D/bbD+6/H6qqsk4j\nqbGy/VVlI0a49lq46y7o0sVpdZIkVefTT9Na+ec/w8EHZ51GUmNmUamy8NVXcOKJ8PXXMG6c14VI\nklSdb76BvfeG3/8eTj016zSSGjvbX1XSJkxIk1233x623DK1vlpQSpK0ZNOnw/77p13Kiy/OOo2k\nShBijMV5oxBisd5LArjzztTuuuOOcNRRcMQRWSeS1FBCCMQYQ9Y5yp1rc+WZMwcOOgjWWAP+9jdY\nxu0DSUVS3dps+6tKznffwcknw1tvwYgRsNFGWSeSJKn0jR0L7drBuuvCQw9ZUEpqOP7nRiVl9GjY\nbjv4yU9g1CgLSklanBDCxiGEB0MIT2WdRdn7/nu46KLU7nr66fDMM7D88lmnklRJaiwqQwgrhBCG\nhRDGhBDGhxDaN0QwVZ7HHoN99oErroAHHoAVV8w6kSSVphjjpBij41fEyy/DVlvBJ5/Am2+mTp9g\n47ikBlZj+2uMcVYIYdcY4/QQwrLAoBBCrxjj8AbIpwoQI3TokO7Q6tULtt0260SS1DBCCA8B+wNf\nxBi3/sHX9wFuJz38fSjGeGNGEVWivvgCzj8fhg6Fe+9Nk14lKSsFtb/GGKcv+HQFUiHqqX8VxaxZ\ncOyx8OCD0KePBaWkivMIsFA5EEJYBui44OtbAEeHEDZb8HPHhxA6hBD+PQfbPakKE2M6L7nVVrDB\nBml30oJSUtYKKipDCMuEEMYAnwN9Yowj6jeWKsHEien85Ny5MGaM5yclVZ4Y40Dgm0W+3Ap4L8b4\nUYxxDvAk0GbB6zvHGC8AZoUQ7gWahhC8NKJCTJwIVVXpiEifPnDjjbDyylmnkqQCp7/GGOcDzUII\nqwLPhhA2jzG+tejrcrncfz6vqqqiqqqqSDHV2DzxBJx7broy5LTTPP8hVbp8Pk8+n886RqlYD5j8\ngx9PIRWa/xFj/CdwRiFv5trcONx3H1x5JVx1FZx5Jiy7bNaJJDV2tVmba31PZQjhKmBajLHDIl/3\nLizVaNastCA+/TR07Wq7q6TFq6R7KkMIGwHP//tMZQjhMGCvGGO7BT8+DmgZYzx3Kd7btbnMxZgG\n2HXrloby/OIXWSeSVKnqdE9lCOFnwJwY49QQwkrAHsANRc6oCjBrVrqQedllYfBgWGutrBNJUkma\nAmz4gx+vD3yaURZlaM4c+P3vYcIEGDQI1lwz60SStHiFnKlcB+gfQhgLDAN6xxhfqt9Yamw++ACa\nNYPVV4dnn7WglKQfCCw8cGcE8KsQwkYhhCbAUUDPTJIpM99/D23apCmv/fpZUEoqbTUWlTHG8THG\n5jHGpjHGrWOMf2mIYGo8unWD3/4Wzj473UW5XEEneSWp8QshPA4MBjYNIXwcQmgbY5wHnA28AkwA\nnowxvp1lTjWsr76CXXeFddaB556DVVbJOpEkVc+/3qvezJoFl10G3bvDSy9BixZZJ5Kk0hJjPGYJ\nX+8F9CrG98jlcg7oKSMffAD77ANHHQXXXOMgO0nZK2RgT60H9SzxjRwGoB+YMgWOPx5WWw3++lfb\ndiTVTiUN6qlPrs3lZdQoOOCANNDu9NOzTiNJC6tubS7onkqpNiZNSvdPVlWlKa8WlJIkVa9377RD\nec89FpSSyo9FpYrqhRegdes0/rx9e+/RkiSpJp07wwknpEF2Bx2UdRpJqj3PVKoo5s6FXA4eegh6\n9kw7lZIkaclihJtuSruT/fvD5ptnnUiSlo5FpepsyhQ45RSYNw/GjIG11846kSRJpW3ePLjgglRM\nDh4M662XdSJJWnq2v6pOhg5N7a6tW0OvXhaUklRqcrlcjVP71LDGj4cddoAJE2DAAAtKSaUtn8+T\ny+WqfY3TX7XUhg2D/feHBx6Agw/OOo2kxsTpr8Xh2lxaZs6EP/85rZvXXgunnQbL+HhfUpmobm22\n/VVL5dNP4cwz4eabLSglSapJPg/t2sHWW8O4cbDuulknkqTi8fmYam34cGjZEvbdN02rkyRJi/fN\nN3Dqqenu5ptvhu7dLSglNT4WlSpYjNChQ7qYuWPH1MJj244kSf8rRnjqKdhiC1hxxXR+sk2brFNJ\nUv2w/VUF+fZbOOaY1PY6YgRsuGHWiSRJKk0ffwxnnQV//3vamdx++6wTSVL9cp9JNRo7Flq1SoXk\nsGEWlJJUTpz+2nDmzYM774TmzdO6OWaMBaWk8uf0V9XZiBGpXefGG+G44yA4i1FSA3D6a3G4Njec\n8ePTNNcmTdJ01802yzqRJBVXdWuzO5VarBjhwQfTlSF33pkGDFhQSpK0sJkz4fLLYbfd4OST05RX\nC0pJlcYzlfofM2ZA27bpqeuAAfDrX2edSJKk0vPhh+nh62abwRtvwDrrZJ1IkrLhTqUWMmECNGuW\n2ndGjbKglCRpcYYPT+cl27VLw3gsKCVVMotK/cfjj8Ouu8Jll0GnTmkEuiRJWtizz8J++8F998E5\n52SdRpKyZ/uriBHuvRduuAF69047lZIkaWExwh13wM03Q69e0KJF1okkqTRYVFa4mTPh1FPhrbfg\nlVccLiBJ0uLMmwfnnQf9+8PgwbDRRlknkqTSYftrBXvvPWjaNC2UgwZZUEpSY+Q9lXU3bRocdBC8\n/TYMHGhBKamyeE+llqhzZ7jgArjuunSvliSVEu+pLA7X5rr77LM04XWbbdIZyiZNsk4kSdmobm22\n/bXCzJ4NF12Uhgz07w9bbpl1IkmSStObb6aC8rTT0hA772uWpMWzqKwgM2ak85PffJOuC1ljjawT\nSZJUmvr2hWOOgdtvT/+UJC2ZZyorxOTJ0KoVzJ2b7tOyoJQkafEefhiOPTatlxaUklQzi8pG6odH\naJ59FrbdFk46CZ58ElZeObNYkiSVrBjhiivSvIEBA2DnnbNOJEnlwfbXRubbb+GUU+Djj9OEuosv\nhq5d4cUXoWXLrNNJklSaZs2Ctm1h0iQYMgTWXDPrRJJUPtypbETGjYMdd0ytrdOmpSLy7bfhjTcs\nKCVJWpKvv4Y994Q5c6BfPwtKSaqtGovKEML6IYR+IYS3QgjjQwjnNEQwFS5G6NIF9tgDzj8f7r0X\nOnRI50F69vT8pCRVMu+prN7778P220Pr1qmzZ6WVsk4kSaWlKPdUhhDWBtaOMY4NIfwIGAW0iTFO\nXOR13oWVgVmz4Lzz0tmPzp2hefOsE0lS3XlPZXG4Nldv8GA45BDI5eD007NOI0mlrU73VMYYPwc+\nX/D5tBDC28B6wMRqf6Hq3dSpsNtusMEG6fzHqqtmnUiSpPLQrRuceSZ06gS/+13WaSSpvNXqTGUI\n4f+ApsCw+gijwk2YkKbSbb89PPOMBaUkSYWYORMuvxwuuAD69LGglKRiKHj664LW1+7AuTHGaYt7\nzQ97bauqqqiqqqpjPC3O00+np6t/+Uua9BpsEJNU5vL5vOf+VO8GDIDTToMtt4Thw2GddbJOJEmN\nQ41nKgFCCMsBLwC9Yox3LOE1ntuoZ7Nmpfuznnkmtetsv33WiSSpfnimsjhcm5N//Qsuugheegk6\ndoSDDso6kSSVn+rW5kLbXx8G3lpSQan698UXqd313XfT+UkLSkmSqhdj6u7ZYgtYbrl0dMSCUpKK\nr5DprzsAA4DxQFzwcVmM8eVFXufT0HoyfDgccACccQa0b2+7q6TGz53K4qjktfmTT+Css+Cdd+Cv\nf033OEuSll5dp78OApYteioV5Mkn4Zxz4KGHUmEpSZKWbP58uO++9BD2rLPS3ZMrrJB1Kklq3Aoe\n1KOGNWtWWhC7doVevWDbbbNOJElSaXvrrTSIB+C112DzzbPNI0mVolZXiqhhTJkCe+yRzn4MGWJB\nKUlSdWbNglwOdtkFjj0WXn/dglKSGpJFZYkZMCAVkXvuCc89B2uvnXUiSVI5y+Vyjfq6loEDoVkz\nGDsWxoxJV24t499uJKlo8vn8QldHLk5BV4oUopKHARRLhw5w003pupC99so6jSRlx0E9xdGY1+ap\nU+GSS6BnT7jzTjjkEAfZSVJ9KsaVIqpHc+fC5ZfDHXfAyJEWlJIkVeeZZ9I1IfPnp6Mihx5qQSlJ\nWXJQT8Y+/xxOPhnmzYOhQ2GddbJOJElSafr0U/jDH1Ih+fjj6f5mSVL23KnM0NCh0KIFbLMNvPCC\nBaUkSYszfz7cf39aL7fYAsaNs6CUpFLiTmUGYoTbboObb06L5IEHZp1IkqTSNHEitGsHc+ZA//6w\n5ZZZJ5IkLcqisoHFCEcfDW+/DcOHwwYbZJ1IkqTSM3s23HAD3HVXurf5jDNg2WWzTiVJWhyLygbW\nrVu6nHnkSGjSJOs0kiSVniFD4LTTYOONYfRoH8BKUqmzqGwgMcItt6SPHj0sKCVJWtS338Jll6V1\n8vbb4fDDneoqSeXAorIBTJ0KbdvCBx/AqFGw/vpZJ5IkqbS8/366Umu33dJ019VXzzqRJKlQTn+t\nZyNGwHbbpcmuw4dbUEqStKg334RddoFLL4UHH7SglKRy405lPYkROnWCCy+Ejh1t4ZEkaXFGjIAD\nDkjtrkcdlXUaSdLSsKisBzHCtdfCE09Anz7pXi1JkrSwAQPgsMPgoYdSYSlJKk8WlUU2fTqceGKa\n8Prqq6ntVZIkLezll+GEE9ID2N13zzqNJKkuPFNZRG++Ca1bw4orphHoFpSSpKzlcjny+XzWMRbS\nvXt6APvccxaUklTq8vk8uVyu2teEGGNRvlkIIRbrvcpR587wxz/CjTfCSSd5flKS6iKEQIzR/5LW\nUSmuzY8+mgbyvPQSNG2adRpJUqGqW5ttf62jmTP/uzj27g3NmmWdSJKk0tSxI9x0E/TrB5ttlnUa\nSVKxWFTWwYwZ8LvfpdHngwbBz36WdSJJkkrT9dengTwDBsD//V/WaSRJxeSZyqU0cWLaldx4Y3j6\naQtKSZIWJ8bU0dOliwWlJDVWFpVL4fHHYeed4aKL4JFHYBl/FyVJ+h/z58Mf/pCu13rtNVh33awT\nSZLqg+2vtTB9enra+sILnp+UJKk6c+fCKafA3/+erthabbWsE0mS6otFZYE+/hiOPjo9ZR0+HNZY\nI+tEkiSVplmz4JhjYNq09BB25ZWzTiRJqk82bhbgnXegVSvYd1/o2tWCUpKkJZk+Hdq0SZ/37GlB\nKUmVwKKyBj16wE47wQ03wOWXe35SkqQlmToV9tkH1lorPYRdYYWsE0mSGoLtr0swZw5ceSV07pzu\noGzRIutEkiSVrq+/hr33hu22g7vu8iGsJFUSi8rFmDwZTjoJmjSB0aPh5z/POpEkSaXrs89gzz3h\ngAPguusghKwTSZIaUo3PEUMID4UQvgghvNEQgbI0fToMHJieslZVwfPPW1BKklSdDz9Mx0SOPRau\nv96CUpIqUSHNKY8Ae9d3kCzNnw9XXZUG8Bx+ONx/f2p9Xc59XEmSlmjixHRv83nnpSu3JEmVqcay\nKcY4MISwUUOEycKXX0K7dvCPf8CkSWln0qeskiRVb+xY+N3v0u7kSSdlnUaSlKWKPkY/dCi0bg2b\nbgp9+8Laa1tQSpJUkyFD0lCeu+6yoJQkFXlQTy6X+8/nVVVVVFVVFfPtiyZGeOABaN8e7r4bDj00\n60SSVNny+Tz5fD7rGCrAq6/C0UfDo4+mnUpJkkKMseYXpfbX52OMW1fzmljIe2UtRjjlFBg1Cp56\nCn7966wTSZIWFUIgxmjvSB0Ve21+/vm0hnbrBrvsUrS3lSSVgerW5kJ3KsOCj7L2zTdw8snw+eep\ndWfllbNOJElSeXjyyTSQ58UXoWXLrNNIkkpJIVeKPA4MBjYNIXwcQmhb/7GKb/Ro2GEH2GADyOct\nKCVJKtSDD8If/wh9+lhQSpL+VyHTX49piCD1JcZ07uOii+DWW+G44xzGI0mqHLlcrk5zDm67De64\nIz2Q3WSTokaTJJWBQuYeFHSmshCleKZy5kw46ywYMQK6dIGtl3giVJJUSjxTWRx1WZtjhGuugcce\nSxPSN9ywyOEkSWWlGGcqy85XX8Huu6frQgYPhh/9KOtEkiSVhxjhwgvhlVfg9dfTHc6SJC1Jo7yn\nctQo2GknOOAA6N7dglKSpELNmwe//z0MHJhaXi0oJUk1aVQ7lTFC587wpz+lC5mPPDLrRJIklY85\nc+DEE+Gzz9JQnh//OOtEkqRy0GiKyu+/hwsugEGDUrtO06ZZJ5IkqXzMnAlHHAHz58NLL8FKK2Wd\nSJJULhpF++vHH0Pr1vDdd6motKCUJKlw06bB/vunQrJHDwtKSVLtlH1Rmc/DtttC27ZpQt1qq2Wd\nSJKk8vGvf8Fee8FGG8Hjj0OTJlknkiSVm7IuKrt0gcMPh65dU+ur909KklS4L7+EXXeFVq3gr3+F\nZZfNOpEkqRyV5ZnKmTPhiivg2WfT+clmzbJOJElSeZkyBfbYI52jvPpqH8xKkpZe2RWVkyen3cl1\n1oEhQ2DNNbNOJElSefngg1RQnnlmuo9SkqS6KKv211dfTecn27RJgwQsKCVJqp0JE2CXXeCSSywo\nJUnFUTY7lXfdBdddB926pcVQkiTVzqhRsN9+cOutcOyxWaeRJDUWIcZYnDcKIRbrvRY1aRK0aAEj\nR8LGG9fLt5AklZAQAjFGT/nV0Q/X5tdfh0MPhQcegIMOyjiYJKnsVLc2l3z7a+/esN128Oc/W1BK\nkrQ0eveGQw5JV29ZUEqSiq1k21/nz4crr4SHHkrnJ3fcMetEkiSVnx494PTT08T0HXbIOo0kqTEq\nyfbXTz+Ftm3T1SHdusFaaxXlbSVJZcL21+IIIcS11468+CI0b551GklSOSur9tfBg9OT1NatoW9f\nC0pJkuri1VctKCVJ9aukdipfeQWOPx7uuw8OPrgosSRJZcidyuKozyF6kqTKUt3aXBJnKmOEv/wF\nOnaE7t1hp52yTiRJkiRJKkTmReU//wknnQSffAJjx8Laa2edSJIkSZJUqEzPVA4Zkq4L+dWv0ucW\nlJIkSZJUXjLZqYwRHn4YLr0U7r03XcYsSZIkSSo/DV5UxggXXwwvvwz9+sGWWzZ0AkmSJElSsTRo\nUTl1Khx1FPzjH9C/P6yxRkN+d0mSJElSsTXYmcoRI6BlS/jFL9L5SQtKSZIkSSp/9V5UxpjOTe67\nL1x3Hdx9NyyX+cxZSZIkSVIx1Gt5N20anHcejBoFAwbAb35Tn99NkiRJktTQ6m2ncto02HVXmDED\nXnvNglKSpGIJIbQJITwQQngmhLBn1nn+v727j7m6rOM4/v6g01UOS5uUEtqD0cPmpCFark3NNG2T\nlujKKJ8arkDZ3Frm3Pgj/8C2ih5c5SQCLEhtBG6U5Ai3HiRbWKhUVBZQk1rCWrm5gk9//C7g5uY+\nD/c59znnPud8Xv9wznVf55wv312/8zvX73c9RETEcGuqUynpfZJ+K+n3kj7dqP7TT8OsWTB7Njzw\nAEyd2n6gg2zLli29DqFvJXetS+7ak/y1Lrlrn+31thcANwLX9jqeGB45fqMT0q76X8NOpaQpwFeB\ny4G3Ax+W9JZa9VetgksugSVLqrmU0sQFO6hyILUuuWtdctee5K91yd0RkpZL2ivpN6PKm72Yexdw\nb2ejjDgix290QtpV/2vmTuUcYKftv9j+L7AWmDtWxYUL4e674bHHYP78iQwzIiJiIK2gumh7WL2L\nuZI+KukLkk6XtBTYaPupbgfdSd36cTmRn9Pqe433dc3Wb6ZevTqD9gO/m/+ftKvaddKuev9Z7bxP\no9c206k8A9g94vmeUnaMfftg61Y455xmw4uIiBhetn8C7BtVXPNiru3Vtm8HrgbeA8yTtKCbMXda\nOpXt18+P/6P144//dt4r7ao7+rFddbJTKdv1K0jzgMvK3A0kzQfOs714VL36bxQRETEOtodiAoWk\nM4FHbJ9Tnl8NXD7qvDvH9m0tvHfOzRERMWFqnZub2VJkDzBjxPPpwN+a/YCIiIgYl7HOpy11DnNu\njoiIbmhm+OuTwJsknSnpBOBDwIbOhhURETG0mrqYGxERMVk07FTaPgAsAjYBzwBrbe/odGARERFD\nQsWMtUkAAAWZSURBVBx9dzIXcyMioq80nFMZERERnSHpO8BFwKnAXmCJ7RWSrgCWUV38XW57ae+i\njIiIqK+Z4a91jWMvraE11j5kkl4laZOk30l6VNLJI/72ZUk7JT0l6dzeRN17kqZL2izpWUnbJd1W\nypO7Jkg6UdJWSdtK/paU8rMkPVHyt0bS8aX8BElrS/5+LmlG/U8YfJKmSPqVpA3leXLXBEl/lvTr\n0vZ+Ucpy3I7B9nW2T7d9ou0ZtleU8h/Ynmn77HQoIyJismurU1lvL604yjH7kAF3AI/ZnglsBj4D\nUK5Ov9H22cAtwNe7Gegk8z/gdttvA94JLCztK7lrgu2XgIttzwLOBa6QdD5wD/D5kr/9wM3lJTcD\nL5T8LQM+14OwJ5vFwLMjnid3zTkIXGR7lu05pSzH7SQg6eWSviXpG5Ku63U8MRgkvV7S/ZIe7HUs\nMTgkzZV0n6R1kt7b63iivnbvVNbcSyuOqLEP2VxgZXm8kiN5mwusKq/bCpwsaVo34pxsbD9/aFNv\n2/8GdlAtWJHcNcn2i+XhiVSrPRu4GPheKV8JfKA8HpnXh6n2wBtakqYDVwL3jyi+hOSuGeLY80uO\n28nhg8BDtm8Brup1MDEYbD9n++O9jiMGi+31ZWulG4Frex1P1Ndup/IMYPeI53tKWTR2mu29UHWe\ngNNK+eic/pXkFElnUd1tewKYltw1pwzf3AY8D/wI+COw3/bBUmXkMXs4f2WBrv2STulyyJPJF4FP\nUbZykHQqsC+5a4qBRyU9KenQD80ctx0w1vSKUl5rasp0juT7QNcCjb7SQruKaKiNdnUXcG93ooxW\ntdupnLC9tOKw5HQUSSdR3f1ZXO5Y1spHcjeK7YNl+Ot0qpEFbx2rWvl3dP7EkOZP0vuBveVO+aG8\njF6hE5K7Wt5lezbVnd6Fkt5NjttOOWZ6RYOpKbupvg9g7NxHwPjb1eFq3Qkv+tS425WkpcDGQyPX\nYvJqt1OZvbRat/fQEC9JrwH+Xsr3AK8bUW+oc1oWQnkYWG17fSlO7sbJ9r+Ax4ELgFeWL3E4OkeH\n8yfpOGCq7dHDtofFhcBVkv4ErKEa9rqMamhmctdAuROJ7X8A36e6oJHjtgNqTK+oNzVlHTBP0r3A\nI92LNPrJeNuVpFMkfQ04N3cwo5YW2tWtVNNJ5kla0NVgY9za7VRmL63mjb7LsQG4oTy+AVg/ovxj\nAJIuoBqquLc7IU5K3wSetf2lEWXJXRMkvfrQCpuSXgZcSrXozI+Ba0q16zk6f9eXx9dQLaYylGzf\nWVbifAPV99pm2/NJ7hoqC8GcVB6/ArgM2E6O226qOTXF9ou2b7K90PaankQX/apeu3rB9ifKasX3\n9CS66Ff12tVXbJ9n+5O27+tJdNG049t5se0DkhYBmziyl9aOCYlsgGjEPmSSdgFLgKXAQ5JuAnZR\nfqja3ijpSkl/AP5DNTl5KEm6EPgIsL3MCzRwJ9UKnA8mdw29FlhZ7qxNAb5bcrQDWCvps8A2YHmp\nvxxYLWkn8E+qzlQc7Q6Su0amAeskmeoc823bmyT9khy33ZIhxdEJaVfRCWlXA6KtTiWA7R8CMycg\nloFlu9ay7ZfWqL+og+H0Dds/BY6r8efkrgHb24F3jFH+HHD+GOUvkdXVjmH7caqhw8ldE0qOjtlr\n0vYL5LjtlkxNiU5Iu4pOSLsaEO0Of42IiIjeGj29IlNTYiKkXUUnpF0NqHQqIyIi+lSZXvEz4M2S\ndkm6sWxrcyvV1JRngLWZmhLjkXYVnZB2NdhkZ9hyREREREREtCZ3KiMiIiIiIqJl6VRGRERERERE\ny9KpjIiIiIiIiJalUxkREREREREtS6cyIiIiIiIiWpZOZURERERERLQsncqIiIiIiIhoWTqVERER\nERER0bJ0KiMiIiIiIqJl/wdm8iJ2wRysSwAAAABJRU5ErkJggg==\n", + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frob_export_for_blog(simulate_bitslide(data), svgfile='/tmp/corrected_brightness_sim.svg')" + ] } ], "metadata": { @@ -367,9 +5131,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.4" + "version": "3.6.5" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } -- cgit