{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Buoy Data Analysis Sandbox"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.io as sio\n",
    "import numpy as np\n",
    "%matplotlib notebook\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "import glob"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Import GroundFault and Temperature Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading ../../../DecodedResults/2019.03.14T00.54.44_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T01.55.00_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T02.55.14_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T03.55.29_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T04.55.45_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T05.55.59_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T06.56.14_raw.mat\n",
      "Loading ../../../DecodedResults/2019.03.14T07.56.29_raw.mat\n"
     ]
    }
   ],
   "source": [
    "listing = glob.glob('../../../DecodedResults/2019.03.14*_raw.mat')\n",
    "gft = np.ndarray([0,1])\n",
    "gfd = np.ndarray([0,1])\n",
    "xbt = np.ndarray([0,1])\n",
    "xbd = np.ndarray([0,1])\n",
    "lon = np.ndarray([0,1])\n",
    "lat = np.ndarray([0,1])\n",
    "\n",
    "for filename in sorted(listing):\n",
    "    print(\"Loading %s\"%(filename))\n",
    "    mat = sio.loadmat(filename)\n",
    "    xbt = np.concatenate((gft, mat['XB_Time']))\n",
    "    lon = np.concatenate((gft, mat['XB_Lon']))\n",
    "    lat = np.concatenate((gft, mat['XB_Lat']))\n",
    "    \n",
    "\n",
    "\n",
    "'''\n",
    "\n",
    " \n",
    "    gft = np.concatenate((gft, mat['BC_Time']))\n",
    "    gfd = np.concatenate((gft, mat['BC_GroundFault']))\n",
    "    xbt = np.concatenate((gft, mat['XB_Time']))\n",
    "    xbd = np.concatenate((gft, mat['XB_Temp']))\n",
    "    print(\"LEN: %s\"%len(gft))\n",
    "''';"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "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 = $('<div/>');\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",
       "        fig.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",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\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 = $('<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 = $('<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 = $('<canvas/>');\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 = $('<div/>')\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 = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'] / mpl.ratio;\n",
       "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
       "    var x1 = msg['x1'] / mpl.ratio;\n",
       "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x * mpl.ratio;\n",
       "    var y = canvas_pos.y * mpl.ratio;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    var width = fig.canvas.width/mpl.ratio\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var width = this.canvas.width/mpl.ratio\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\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) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></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 = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></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",
       "        event.shiftKey = false;\n",
       "        // Send a \"J\" for go to next cell\n",
       "        event.which = 74;\n",
       "        event.keyCode = 74;\n",
       "        manager.command_mode();\n",
       "        manager.handle_keydown(event);\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<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 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": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAAAXNSR0IArs4c6QAAQABJREFUeAHs3Q24VWWdN/4bIy0hMBNURKTUHHAEhV4ATQvzLUzy6tH/lIWKGpp2pTVO8mS+ZAYzVgzZI2NzgcnfzEYarXwdeYiURFRGGBURlHhJRSQUCFRMfM697OB52Qf22znn3nt99nWdOHvt+17rd39+qwu/rLX37vJWwyN4ECBAgAABAgQIECBAgAABAp0qsFOnHt3BCRAgQIAAAQIECBAgQIAAgUxAQHciECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAEBAT2BJiiBAAECBAgQIECAAAECBAgI6M4BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR05wABAgQIECBAgAABAgQIEEhAQEBPoAlKIECAAAECBAgQIECAAAECArpzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3TlAgAABAgQIECBAgAABAgQSEBDQE2iCEggQIECAAAECBAgQIECAgIDuHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQHcOECBAgAABAgQIECBAgACBBAQE9ASaoAQCBAgQIECAAAECBAgQICCgOwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENCdAwQIECBAgAABAgQIECBAIAGBrgnUoIQOFNi6dWt4/vnnw/ve977QpUuXDjyyQxEgQIAAAQIECBAgkJLAW2+9FTZu3Bj69OkTdtrJtdsUeiOgp9CFDqwhhvN99923A4/oUAQIECBAgAABAgQI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iggQIECAAAECBAgQIEAghwICeg6bbskECBAgQIAAAQIECBAgkJ6AgJ5eT1REgAABAgQIECBAgAABAjkUENBz2HRLJkCAAAECBAgQIECAAIH0BAT09HqiIgIECBAgQIAAAQIECBDIoYCAnsOmWzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQA4FBPQcNt2SCRAgQIAAAQIECBAgQCA9AQE9vZ6oiAABAgQIECBAgAABAgRyKCCg57DplkyAAAECBAgQIECAAAEC6QkI6On1REUECBAgQIAAAQIECBAgkEMBAT2HTbdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEcCgjoOWy6JRMgQIAAAQIECBAgQIBAegICeno9UREBAgQIECBAgAABAgQI5FBAQM9h0y2ZAAECBAgQIECAAAECBNITENDT64mKCBAgQIAAAQIECBAgQCCHAgJ6DptuyQQIECBAgAABAgQIECCQnoCAnl5PVESAAAECBAgQIECAAAECORQQ0HPYdEsmQIAAAQIECBAgQIAAgfQEBPT0eqIiAgQIECBAgAABAgQIEMihgICew6ZbMgECBAgQIECAAAECBAikJyCgp9cTFREgQIAAAQIECBAgQIBADgUE9Bw23ZIJECBAgAABAgQIECBAID0BAT29nqiIAAECBAgQIECAAAECBHIoIKDnsOmWTIAAAQIECBAgQIAAAQLpCQjo6fVERQQIECBAgAABAgQIECCQQwEBPYdNt2QCBAgQIECAAAECBAgQSE9AQE+vJyoiQIAAAQIECBAgQIAAgRwKCOg5bLolEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAjkUEBAz2HTLZkAAQIECBAgQIAAAQIE0hMQ0NPriYoIECBAgAABAgQIECBAIIcCAnoOm27JBAgQIECAAAECBAgQIJCegICeXk9URIAAAQIECBAgQIAAAQI5FBDQc9h0SyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyKGAgJ7DplsyAQIECBAgQIAAAQIECKQnIKCn1xMVESBAgAABAgQIECBAgEAOBQT0HDbdkgkQIECAAAECBAgQIEAgPQEBPb2eqIgAAQIECBAgQIAAAQIEciggoOew6ZZMgAABAgQIECBAgAABAukJCOjp9URFBAgQIECAAAECBAgQIJBDAQE9h023ZAIECBAgQIAAAQIECBBIT0BAT68nKiJAgAABAgQIECBAgACBHAoI6DlsuiUTIECAAAECBAgQIECAQHoCAnp6PVERAQIECBAgQIAAAQIECORQQEDPYdMtmQABAgQIECBAgAABAgTSExDQ0+uJiggQIECAAAECBAgQIEAghwICeg6bbskECBAgQIAAAQIECBAgkJ6AgJ5eT1REgAABAgQIECBAgAABAjkUENBz2HRLJkCAAAECBAgQIECAAIH0BAT09HqiIgIECBAgQIAAAQIECBDIoYCAnsOmWzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQA4FBPQcNt2SCRAgQIAAAQIECBAgQCA9AQE9vZ6oiAABAgQIECBAgAABAgRyKCCg57DplkyAAAECBAgQIECAAAEC6QkI6On1REUECBAgQIAAAQIECBAgkEMBAT2HTbdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEcCgjoOWy6JRMgQIAAAQIECBAgQIBAegICeno9UREBAgQIECBAgAABAgQI5FBAQM9h0y2ZAAECBAgQIECAAAECBNITENDT64mKCBAgQIAAAQIECBAgQCCHAgJ6DptuyQQIECBAgAABAgQIECCQnoCAnl5PVESAAAECBAgQIECAAAECORQQ0HPYdEsmQIAAAQIECBAgQIAAgfQEBPT0eqIiAgQIECBAgAABAgQIEMihgICew6ZbMgECBAgQIECAAAECBAikJyCgp9cTFREgQIAAAQIECBAgQIBADgUE9Bw23ZIJECBAgAABAgQIECBAID0BAT29nqiIAAECBAgQIECAAAECBHIoIKDnsOmWTIAAAQIECBAgQIAAAQLpCQjo6fVERQQIECBAgAABAgQIECCQQwEBPYdNt2QCBAgQIECAAAECBAgQSE9AQE+vJyoiQIAAAQIECBAgQIAAgRwKCOg5bLolEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAjkUEBAz2HTLZkAAQIECBAgQIAAAQIE0hMQ0NPriYoIECBAgAABAgQIECBAIIcCAnoOm27JBAgQIECAAAECBAgQIJCegICeXk9URIAAAQIECBAgQIAAAQI5FBDQc9h0SyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyKGAgJ7DplsyAQIECBAgQIAAAQIECKQnIKCn1xMVESBAgAABAgQIECBAgEAOBQT0HDbdkgkQIECAAAECBAgQIEAgPQEBPb2eqIgAAQIECBAgQIAAAQIEciggoOew6ZZMgAABAgQIECBAgAABAukJCOgtejJlypQwaNCg0KNHj+xn+PDh4e677242au7cuWHkyJGhW7du2ZgjjzwyvPrqq83GNH3Sv3//0KVLl1Y/559/fjZs+fLlrV5rHH/rrbc23VX2+5///OfQt2/fbM4rr7zS6nUbCBAgQIAAAQIECBAgQKD2BAT0Fj2LwXfixIlh/vz54dFHH82C+OjRo8OTTz6ZjYzh/Pjjjw/HHntsePjhh8MjjzwSLrjggrDTTm1TxjEvvPDCtp/77rsv29cpp5yS/bnvvvtue61x3JVXXhm6d+8eTjjhhBYVhnDWWWdl/4jQ6gUbCBAgQIAAAQIECBAgQKBmBbq81fCo2eo7qPDdd989XHPNNVkwHjZsWDjmmGPCVVddVfbRL7zwwnDHHXeEpUuXZlfBC+3osMMOC0OGDAlTp05t9nK8wv/LX/4yXHbZZeHoo48OL7/8cthtt92ajdnekw0bNoSePXuG9evXZ1f/tzfWawQIECBAgAABAgQI1K+AbJBeb9u+7JterR1e0ZtvvhluueWWsGnTphBvdV+zZk2YN29e6N27dxgxYkTYc889w1FHHRXmzJlTdG1btmwJN910Uxg7dmyb4TxevV+wYEH2DwJNd7xo0aLw3e9+N0yfPn27V+ybzvE7AQIECBAgQIAAAQIECNSGgIBeoE+PP/54dnv5LrvsEs4999xw2223hYEDB4Zly5Zlo6+44opwzjnnhHvuuSe7yh2vZMer4cU8br/99hDfN37GGWe0OTxeNR8wYED2jwCNg15//fXwhS98IbuS369fv8bNO/wzzov/Mtb0Z4eTDCBAgAABAgQIECBAgACBDhcQ0AuQH3TQQdkV7Hi1/Lzzzgunn356iFevt27dmo0eN25cOPPMM0O8DX3SpEkhjp82bVqBPbXeFMN3fF95nz59Wr/YsCV+2NzNN9/c6ur5+PHjs9D+pS99qeC8tjZOmDAhu6U93tYef+L73T0IECBAgAABAgQIECBAID0BAb1AT3beeedwwAEHhKFDh4YYcAcPHhwmT54c9t5772x0vJre9BGvdq9cubLppoK/r1ixIsycOTOcffbZBV+PG2fMmBE2b94cxowZ02zMrFmzQvxE965du2Y/8ap9fOyxxx7h8ssvbza26ZMY7OP7zRt/Vq1a1fRlvxMgQIAAAQIECBAgQIBAIgJdE6kj6TLilfN4q3j8urR45fvpp59uVu+SJUsKftp6s0ENT2644Ybs/eujRo1q+dK25/EK+0knnRR69eq1bVv85Ve/+lWzr3KLnwwf38f+wAMPhP3337/Z2KZP4m368ceDAAECBAgQIECAAAECBNIWENBb9CdecY63oMf3eW/cuDG73Xz27Nnh3nvvzT7U7eKLL86uWMer6oceemi48cYbw+LFi7Mr3427ile3Tz755Ozr1xq3xZAfA3q8XT5eBS/0eOaZZ8L9998f7rrrrlYvtwzha9euzcbEq/elfIp7qx3bQIAAAQIECBAgQIAAAQJJCBROikmU1jlFxE9qj7eXx+8jj+/ZHjRoUBbO41erxUf8irTXXnstXHTRRWHdunXZ7e/xe82bBuhnn302NAboxlXEW9vjbfDxqndbj/g+9vg97PE71j0IECBAgAABAgQIECBAIF8Cvgc9X/3OPs3d96DnrOmWS4AAAQIECBAgQKCAgO9BL4DSyZt8SFwnN8DhCRAgQIAAAQIECBAgQIBAFBDQnQcECBAgQIAAAQIECBAgQCABAQE9gSYogQABAgQIECBAgAABAgQICOjOAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdOcAAQIECBAgQIAAAQIECBBIQEBAT6AJSiBAgAABAgQIECBAgAABAgK6c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd05QIAAAQIECBAgQIAAAQIEEhAQ0BNoghIIECBAgAABAgQIECBAgICA7hwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEB3DhAgQIAAAQIECBAgQIAAgQQEBPQEmqAEAgQIECBAgAABAgQIECAgoDsHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQnQMECBAgQIAAAQIECBAgQCABAQE9gSYogQABAgQIECBAgAABAgQICOjOAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdOcAAQIECBAgQIAAAQIECBBIQEBAT6AJSiBAgAABAgQIECBAgAABAgK6c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd05QIAAAQIECBAgQIAAAQIEEhAQ0BNoghIIECBAgAABAgQIECBAgICA7hwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEB3DhAgQIAAAQIECBAgQIAAgQQEBPQEmqAEAgQIECBAgAABAgQIECAgoDsHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQnQMECBAgQIAAAQIECBAgQCABAQE9gSYogQABAgQIECBAgAABAgQICOjOAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdOcAAQIECBAgQIAAAQIECBBIQEBAT6AJSiBAgAABAgQIECBAgAABAgK6c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd05QIAAAQIECBAgQIAAAQIEEhAQ0BNoghIIECBAgAABAgQIECBAgICA7hwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEB3DhAgQIAAAQIECBAgQIAAgQQEBPQEmqAEAgQIECBAgAABAgQIECAgoDsHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQnQMECBAgQIAAAQIECBAgQCABAQE9gSYogQABAgQIECBAgAABAgQICOjOAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdOcAAQIECBAgQIAAAQIECBBIQEBAT6AJSiBAgAABAgQIECBAgAABAgK6c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd05QIAAAQIECBAgQIAAAQIEEhAQ0BNoghIIECBAgAABAgQIECBAgICA7hwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEB3DhAgQIAAAQIECBAgQIAAgQQEBPQEmqAEAgQIECBAgAABAgQIECAgoDsHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQnQMECBAgQIAAAQIECBAgQCABAQE9gSYogQABAgQIECBAgAABAgQICOjOAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdOcAAQIECBAgQIAAAQIECBBIQEBAT6AJSiBAgAABAgQIECBAgAABAgK6c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd05QIAAAQIECBAgQIAAAQIEEhAQ0BNoghIIECBAgAABAgQIECBAgEBXBAQIECBQJYGtb4aw4sEQ/vJiCN33DGG/ESHs9K4q7dxuCBAgQIAAAQIE6l1AQK/3DlsfAQIdI7DoNyHc860QNjz/zvF69Anh+H8OYeBJ72zzGwECBAgQIECAAIE2BNzi3gaMzQQIEChaIIbz/xjTPJzHyRteeHt7fN2DAAECBAgQIECAwA4EBPQdAHmZAAEC2xWIt7XHK+fhrQLD/rbtnktCiOM8CBAgQIAAAQIECGxHQEDfDo6XCBAgsEOB+J7zpre1t5rQENI3PPf2e9NbvWYDAQIECBAgQIAAgXcEBPR3LPxGgACB0gXiB8IV8yh2XDH7MoYAAQIECBAgQKAuBQT0umyrRREg0GEC8dPai3kUO66YfRlDgAABAgQIECBQlwICel221aIIEOgwgfhVavHT2kOXNg7ZsL3HPm9/5VobI2wmQIAAAQIECBAgEAUEdOcBAQIEKhGI33Mev0ote7QM6X97fvxE34deibG5BAgQIECAAIGcCAjoOWm0ZRIg0I4C8XvOT53ecKV87+YHiVfW43bfg97cxTMCBAgQIECAAIGCAl0LbrWRAAECBEoTiCH870a9/Wnt8QPh4nvO4+3v8Qq7BwECBAgQIECAAIEiBAT0IpAMIUCAQFECMYx/8BNFDTWIAAECBAgQIECAQEsBt7i3FPGcAAECBAgQIECAAAECBAh0goCA3gnoDkmAAAECBAgQIECAAAECBFoKCOgtRTwnQIAAAQIECBAgQIAAAQKdICCgdwK6QxIgQIAAAQIECBAgQIAAgZYCAnpLEc8JECBAgAABAgQIECBAgEAnCAjonYDukAQIECBAgAABAgQIECBAoKWAgN5SxHMCBAgQIECAAAECBAgQINAJAgJ6J6A7JAECBAgQIECAAAECBAgQaCkgoLcU8ZwAAQIECBAgQIAAAQIECHSCgIDeCegOSYAAAQIECBAgQIAAAQIEWgoI6C1FPCdAgAABAgQIECBAgAABAp0gIKB3ArpDEiBAgAABAgQIECBAgACBlgICeksRzwkQIECAAAECBAgQIECAQCcICOidgO6QBAgQIECAAAECBAgQIECgpYCA3lLEcwIECBAgQIAAAQIECBAg0AkCAnonoDskAQIECBAgQIAAAQIECBBoKSCgtxTxnAABAgQIECBAgAABAgQIdIKAgN4CfcqUKWHQoEGhR48e2c/w4cPD3Xff3WzU3Llzw8iRI0O3bt2yMUceeWR49dVXm41p+qR///6hS5curX7OP//8bNjy5ctbvdY4/tZbb83GLFy4MHzhC18I++67b3jve98bBgwYECZPntz0MH4nQIAAAQIECBAgQIAAgRoW6FrDtbdL6X379g0TJ04MBx54YHjrrbfCjTfeGEaPHh0ee+yxcPDBB4cYzo8//vgwfvz4cO2114auXbuGGJ532qntf+t45JFHwptvvrmt3ieeeCIcc8wx4ZRTTsm2xdD9wgsvbHs9/vLTn/40XHPNNeGEE07Its+fPz/07t073HTTTVlIf/DBB8NXvvKV8K53vStccMEFzeZ6QoAAAQIECBAgQIAAAQK1J9ClIYS+VXtld2zFu+++exaWzzrrrDBs2LAsXF911VVlF3HhhReGO+64IyxdujS7cl5oR4cddlgYMmRImDp1aqGXs23xCvxTTz0VZs2a1eaYli9s2LAh9OzZM6xfvz67+t/ydc8JECBAgAABAgQIEMiHgGyQXp/bvuybXq0dXlG86n3LLbeETZs2hXir+5o1a8K8efOyK9kjRowIe+65ZzjqqKPCnDlziq5ty5Yt2VXwsWPHthnO49XyBQsWhPgPAtt7xJAd//HAgwABAgQIECBAgAABAgRqX8At7gV6+Pjjj2eB/LXXXgvdu3cPt912Wxg4cGB46KGHstFXXHFF+MEPfhAOPfTQMH369HD00UeHeNt6vC1+R4/bb789vPLKK+GMM85oc2i8ah7fYx7/EaCtR7zF/Ze//GW488472xqSbX/99ddD/Gl8xH8l8yBAgAABAgQIECBAgACB9ARcQS/Qk4MOOii7gh2vlp933nnh9NNPD4sWLQpbt27NRo8bNy6ceeaZId6GPmnSpBDHT5s2rcCeWm+K4Tu+r7xPnz6tX2zYEj9s7uabb97u1fP4jwHxffGXX355OPbYYwvup3HjhAkTslva423t8Se+392DAAECBAgQIECAAAECBNITENAL9GTnnXcOBxxwQBg6dGiIAXfw4MHZJ6bvvffe2eh4Nb3pI17tXrlyZdNNBX9fsWJFmDlzZjj77LMLvh43zpgxI2zevDmMGTOm4Jj4DwXxin38gLhLL7204JimG+OH2cVb4Rt/Vq1a1fRlvxMgQIAAAQIECBAgQIBAIgJucS+iEfHKebxNPH5dWrzy/fTTTzebtWTJkm2ftt7shRZPbrjhhuz966NGjWrxyjtP4xX2k046KfTq1eudjX/77cknn8y+3i1e0b/66qtbvV5owy677BLijwcBAgQIECBAgAABAgQIpC0goLfoT7ziHG9B79evX9i4cWN2u/ns2bPDvffem32o28UXX5zdWh6vqsf3oMevYVu8eHF25btxV/EK98knn9zs689iyI8BPYbr+NVshR7PPPNMuP/++8Ndd93V6uV4W3v87vXjjjsufOMb3wirV6/OxsSvWSsU5lvtwAYCBAgQIECAAAECBAgQSFqgcFJMuuT2LS5+Unu8vTx+L3l8z/agQYOycB6/tzw+4lekxQ+Pu+iii8K6deuy29/vu+++sP/++28r7Nlnnw1r167d9jz+Em9tj7fBx09vb+sR38cev4e90PvK463vL730UvYJ8PG70Bsf++23X1i+fHnjU38SIECAAAECBAgQIECAQI0K+B70Gm1cuWX7rsNy5cwjQIAAAQIECBAgUF8CskF6/fQhcen1REUECBAgQIAAAQIECBAgkEMBAT2HTbdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEcCgjoOWy6JRMgQIAAAQIECBAgQIBAegICeno9UREBAgQIECBAgAABAgQI5FBAQM9h0y2ZAAECBAgQIECAAAECBNITENDT64mKCBAgQIAAAQIECBAgQCCHAgJ6DptuyQQIECBAgAABAgQIECCQnkDX9EpSEQECBAjkXeB7v/mfsOj5V8J73tU1nP3JA8OIA3vlncT6CRAgQIAAgRwICOg5aLIlEiBAoFYExt/63+EX819oVu6sZx8Oe+0awvf/19AwcuBezV7zhAABAgQI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RoVdd9019O7dO1x88cXhr3/967bX/UKAAAECBAoJdCu0sYhtMaSv37yliJGGECBAgAABAtUQENBbKPbt2zdMnDgxzJ8/Pzz66KNZEB89enR48skns5ExnB9//PHh2GOPDQ8//HB45JFHwgUXXBB22qltyjjmhRde2PZz3333Zfs65ZRTsj/33Xffba81jrvyyitD9+7dwwknnJCNefPNN7NwvmXLlvDggw+GG2+8MfzsZz8Ll112Wfa6/yFAgAABAm0J/Py8EW29tMPtg797n5C+QyUDCBAgQIBAdQS6vNXwqM6u6ncvu+++e7jmmmvCWWedFYYNGxaOOeaYcNVVV5W94AsvvDDccccdYenSpdmV80I7Ouyww8KQIUPC1KlTs5fjVfwTTzwxPP/882HPPffMtv3bv/1b+Na3vhVeeumlsPPOOxfaTattGzZsCD179gzr16/Prv63GmADAQIECNSlwOev/X2Y/9xfyl5bubfKl31AEwkQIECg3QVkg3YnLvkAbV/2LXlX9TchXrW+5ZZbwqZNm0K81X3NmjVh3rx52e3lI0aMyILyUUcdFebMmVP04uMV8JtuuimMHTu2zXAer94vWLAg+weBxh3HK/eHHHLItnAetx933HEh/p+q8ep+41h/EiBAgACBlgLfGnVwy00lPV+4cl1J4w0mQIAAAQIEShcQ0AuYPf7449nt5bvssks499xzw2233RYGDhwYli1blo2+4oorwjnnnBPuueee7Cr30UcfnV0NL7CrVptuv/328Morr4Qzzjij1WuNG+JV8wEDBoT4jwCNj9WrVzcL53F745X0+Fpbj9dffz0L8THIN/60NdZ2AgQIEKhfgY99aI/wH1/5eNkLHH3d3HDHgj+VPd9EAgQIECBAYMcCAnoBo4MOOii7gh2vlp933nnh9NNPD4sWLQpbt27NRo8bNy6ceeaZId6GPmnSpBDHT5s2rcCeWm+K4Tu+r7xPnz6tX2zYEj9s7uabb2529bzgwCI3TpgwIbulPd7WHn/i+909CBAgQCCfAjGkV3Kr+gW3LAyn/uT3+cSzagIECBAg0AECAnoB5Ph+7gMOOCAMHTo0xIA7ePDgMHny5LD33ntno+PV9KaPeLU7fsL6jh4rVqwIM2fODGeffXabQ2fMmBE2b94cxowZ02zMXnvtFV588cVm2xqfx9faeowfPz57v3l8z3n8WbVqVVtDbSdAgACBnAhUEtIf/tNfwrgbHsqJlGUSIECAAIGOFRDQi/COV87jreLx69Lile+nn3662awlS5aE/fbbr9m2Qk9uuOGG7P3r8avS2nrEK+wnnXRS6NWrV7Mh8T3w8db7+D74xkf8NPj4dXAt/8Gg8fX4Z7xNv/Er4xr/bPq63wkQIEAgnwKVhPR7n/5zPtGsmgABAgQItLOAgN4COF5xvv/++0P8bvIYiOPz2bNnh9NOOy37ULf43eM//vGPQ7zS/cwzz4TvfOc7YfHixc1uSY/vSf/JT37SbM8x5MeAHm+X7y0V+AsAAEAASURBVNq1a7PXGp/E/cVjF7rCHr/WLQbxL3/5y2HhwoXh3nvvDZdeemmI36UeQ7gHAQIECBAoVaC47/8ovNdjfnhP4RdsJUCAAAECBMoWKJwUy95d7U+MV6jj7eXx+8jje7YHDRqUheH41WrxEb8i7bXXXgsXXXRRWLduXXb7e7ySvf/++29b/LPPPhvWrl277Xn8Jd7aHm+Dj5/e3tYjvo89fg97DOMtH+9617uyr2aL74mPV9O7deuWhf3vfve7LYd6ToAAAQIEihJYMnFU+OAld4Zyvm916UtvhlmLVoeRA9t+m1VRRRhEgAABAgQIbBPwPejbKPLxi+86zEefrZIAAQKlCPRvCOnlPiq5Vb7cY5pHgAABAtURkA2q41jNvbjFvZqa9kWAAAECBGpQoJKQ/eDSl2pwxUomQIAAAQJpCgjoafZFVQQIECBAoEMFYkj//OA9Sz7mF6c+XPIcEwgQIECAAIHCAgJ6YRdbCRAgQIBA7gR++IWPhI/s063kdVdyi3zJBzOBAAECBAjUsYCAXsfNtTQCBAgQIFCqwIyvfbLUKdn4GNK/+YtHy5prEgECBAgQIPC2gIDuTCBAgAABAgSaCZT7nvRfLXxRSG8m6QkBAgQIEChNQEAvzctoAgQIECBAYDsCMaR7ECBAgAABAuUJCOjluZlFgAABAgTqWqDcq+gRxXvS6/rUsDgCBAgQaEcBAb0dce2aAAECBAjUssC+PcuvXkgv385MAgQIEMivgICe395bOQECBAgQ2K7AA+NHbff1Hb146k9+v6MhXidAgAABAgSaCAjoTTD8SoAAAQIECDQXqORW94f/9JfmO/OMAAECBAgQ2K6AgL5dHi8SIECAAAEClYR0t7o7fwgQIECAQPECAnrxVkYSIECAAIHcClQS0g9p+I50DwIECBAgQGDHAgL6jo2MIECAAAECBBoEyg3pGxvm/sP/uZ8hAQIECBAgsAMBAX0HQF4mQIAAAQIE3hEoN6Q/tGpjWLPh1Xd25DcCBAgQIECglYCA3orEBgIECBAgQGB7AuWG9I99f5aQvj1YrxEgQIBA7gUE9NyfAgAIECBAgEDpAl/6aJ/SJzXMiCF90j1PlDXXJAIECBAgUO8CAnq9d9j6CBAgQIBAOwh87/OHhZ3L3O/k2SuE9DLtTCNAgACB+hYQ0Ou7v1ZHgAABAgTaTWDJxFFl71tIL5vORAIECBCoYwEBvY6ba2kECBAgQKC9Bcp9P3qsS0hv7+7YPwECBAjUmoCAXmsdUy8BAgQIEEhMoJKQfsOcFYmtRjkECBAgQKDzBAT0zrN3ZAIECBAgUDcCH3h3eUvZ8NcQrp+1uLzJZhEgQIAAgToTENDrrKGWQ4AAAQIEOkNg/lXlvx992dpNnVGyYxIgQIAAgeQEBPTkWqIgAgQIECBQmwLl3ur+y/9eXZsLVjUBAgQIEKiygIBeZVC7I0CAAAECeRYoN6Tn2czaCRAgQIBAo4CA3ijhTwIECBAgQKAqAndecETJ+1mwcl3Jc0wgQIAAAQL1JiCg11tHrYcAAQIECHSywMF9e4avHLFfSVV87rq5JY03mAABAgQI1KOAgF6PXbUmAgQIECDQyQKfGdSn5Aqe/NP6kueYQIAAAQIE6klAQK+nbloLAQIECBBIRODQfruXXMmon8wpeY4JBAgQIECgngQE9HrqprUQIECAAIGEBHZOqBalECBAgACBWhAQ0GuhS2okQIAAAQI1KLBkYunfjb7Cd6LXYKeVTIAAAQLVEhDQqyVpPwQIECBAgEDFAl+4fnbF+7ADAgQIECBQqwICeq12Tt0ECBAgQKAGBKZ88dCSqnx+Y0nDDSZAgAABAnUlIKDXVTsthgABAgQIpCXwyuYtaRWkGgIECBAgkLCAgJ5wc5RGgAABAgRqXWC3XUv/qLgJdzxe68tWPwECBAgQKEtAQC+LzSQCBAgQIECgGIETBu1TzLBmY66fs7LZc08IECBAgEBeBAT0vHTaOgkQIECAQCcJfOKD7++kIzssAQIECBCoLQEBvbb6pVoCBAgQIFBzAqcf8cGSa/7tAlfRS0YzgQABAgRqXkBAr/kWWgABAgQIEEhb4NMH7x1671JajV+7xfvQSxMzmgABAgTqQUBAr4cuWgMBAgQIEEhc4LKTB5dc4Yq1m0qeYwIBAgQIEKhlAQG9lrundgIECBAgUCMCJx7at+RKj/rB7JLnmECAAAECBGpZQECv5e6pnQABAgQI1JDA8omjaqhapRIgQIAAgY4XENA73twRCRAgQIAAAQIECBAgQIBAKwEBvRWJDQQIECBAgEB7Cby/S2l7Pvy7d5Y2wWgCBAgQIFDDAgJ6DTdP6QQIECBAoNYEhh20R0klP7c5hPWbt5Q0x2ACBAgQIFCrAgJ6rXZO3QQIECBAoAYFppzx8ZKrPvpf7it5jgkECBAgQKAWBQT0WuyamgkQIECAQI4E1r4WwsbX3sjRii2VAAECBPIqIKDntfPWTYAAAQIEOkmgnE9zP3Hyf3VStQ5LgAABAgQ6TkBA7zhrRyJAgAABAgTKFFjxcpkTTSNAgAABAjUkIKDXULOUSoAAAQIE6kVgWL/u9bIU6yBAgAABAlUTENCrRmlHBAgQIECAQLECt3z1qGKHbhv3zJoN2373CwECBAgQqEcBAb0eu2pNBAgQIECgBgQG7fWekqqc8JsnSxpvMAECBAgQqDUBAb3WOqZeAgQIECBQJwK/ufDoklbyf59ZF1as3VTSHIMJECBAgEAtCQjotdQttRIgQIAAgZwL/PwPS3IuYPkECBAgUM8CAno9d9faCBAgQIBA4gI9Sqzvp3OfDw8vW1viLMMJECBAgEBtCAjotdEnVRIgQIAAgboU+LezPlbyuk796byS55hAgAABAgRqQUBAr4UuqZEAAQIECNSpwIgDe5W1sn+ftbiseSYRIECAAIGUBQT0lLujNgIECBAgkAOBaWOGlrzKq//r2TBr0eqS55lAgAABAgRSFhDQU+6O2ggQIECAQA4ERg7cK/R/f+kL/eUjK0qfZAYBAgQIEEhYQEBPuDlKI0CAAAECeRGY/a1RJS/13qfWhgeXvlTyPBMIECBAgECqAgJ6qp1RFwECBAgQyJlAzzLWO2fJi2XMMoUAAQIECKQpIKCn2RdVESBAgACB3AksnFj6VfTrHnCbe+5OFAsmQIBAHQsI6HXcXEsjQIAAAQK1JnDIXruUXLLb3EsmM4EAAQIEEhUQ0BNtjLIIECBAgEAeBX574adLXvZvF6wseY4JBAgQIEAgRQEBPcWuqIkAAQIECORY4OrRA0pa/V3zfd1aSWAGEyBAgECyAgJ6sq1RGAECBAgQyKfAacM/VNLC1zeMvm7mopLmGEyAAAECBFIUENBT7IqaCBAgQIAAgZIEbl/wXEnjDSZAgAABAikKCOgpdkVNBAgQIECAQEkCS9ZuCSvWbippjsEECBAgQCA1AQE9tY6ohwABAgQIEAj9epSOcNQPZpc+yQwCBAgQIJCQgICeUDOUQoAAAQIECLwt8PVj/74silmLfGBcWXAmESBAgEASAgJ6Em1QBAECBAgQINBU4PMf2a/p06J/Hzt9ftFjDSRAgAABAqkJCOipdUQ9BAgQIECAQCZwxrB9ypJ4cOlLZc0ziQABAgQIdLaAgN7ZHXB8AgQIECBAoKDAFZ87NOy7W8GXtrvxqt8s2O7rXiRAgAABAqkKCOipdkZdBAgQIECAQLjypKElKzz10paS55hAgAABAgRSEBDQU+iCGggQIECAAIGCAiMH7hWmjSk9pBfcmY0ECBAgQCBxAQE98QYpjwABAgQI5F0ghvRSH/0vubPUKcYTIECAAIFOFxDQO70FCiBAgAABAgR2JLB84qgdDWn1+tlT57baZgMBAgQIEEhZQEBPuTtqI0CAAAECBMoWmLl0XZh0zxNlzzeRAAECBAh0tICA3tHijkeAAAECBAh0mMDk2Ss67FgORIAAAQIEKhUQ0CsVNJ8AAQIECBDoEIFybnOPhX3z5kc7pD4HIUCAAAEClQoI6JUKmk+AAAECBAgkLfCr/3kxzFq0OukaFUeAAAECBKKAgO48IECAAAECBGpGoNyr6GOnz6+ZNSqUAAECBPIrIKDnt/dWToAAAQIEalLg9//4ybLqfnDpS2XNM4kAAQIECHSUgIDeUdKOQ4AAAQIECFRFYL89uoUrTxxQ8r6+OPXhkueYQIAAAQIEOlJAQO9IbcciQIAAAQIEqiJw+If3KGs//S+5s6x5JhEgQIAAgY4QENA7QtkxCBAgQIAAgaoKHNC7R5j5jU9UdZ92RoAAAQIEOltAQO/sDjg+AQIECBAgUJZADOkf2adbyXNdRS+ZzAQCBAgQ6CABAb2DoB2GAAECBAgQqL7AjK99svo7tUcCBAgQINBJAgJ6J8E7LAECBAgQIFAdgXK/eq06R7cXAgQIECBQPQEBvXqW9kSAAAECBAjUiMCCletqpFJlEiBAgECeBAT0PHXbWgkQIECAQJ0KlHoV/XPXza1TCcsiQIAAgVoWENBruXtqJ0CAAAECBMoWePJP68ueayIBAgQIEGgPAQG9PVTtkwABAgQIEEhe4Izr5yRfowIJECBAIF8CAnq++m21BAgQIECAwN8EXnoDBQECBAgQSEtAQE+rH6ohQIAAAQIEyhQ48oM9S5758SvvLHmOCQQIECBAoL0EBPT2krVfAgQIECBAoEMFpo87ouTjvfhqyVNMIECAAAEC7SYgoLcbrR0TIECAAAECHS3wkX26lXzIoya4il4ymgkECBAg0C4CAnq7sNopAQIECBAg0BkCM772yZIPu8KHuZdsZgIBAgQItI+AgN4+rvZKgAABAgQIdJLAPwzZu5OO7LAECBAgQKAyAQG9Mj+zCRAgQIAAgcQEJp46pOSK+l/iNveS0UwgQIAAgaoLCOhVJ7VDAgQIECBAoLMFPntwr5JLGHP9H0qeYwIBAgQIEKimgIBeTU37IkCAAAECBJIQuPbLHyu5jvv/+EqYdM8TJc8zgQABAgQIVEtAQK+WpP0QIECAAAECNS8wefYKIb3mu2gBBAgQqF0BAb12e6dyAgQIECBAYDsCyyeO2s6rbb8UQ7oHAQIECBDoDAEBvTPUHZMAAQIECBBIWuD6WYuTrk9xBAgQIFCfAgJ6i75OmTIlDBo0KPTo0SP7GT58eLj77rubjZo7d24YOXJk6NatWzbmyCOPDK+++mqzMU2f9O/fP3Tp0qXVz/nnn990WNjRfpcsWRJGjx4d9thjj+y4RxxxRPjd737XbB+eECBAgAABAu8IlHsVfcJ/PfvOTvxGgAABAgQ6SEBAbwHdt2/fMHHixDB//vzw6KOPZkE8huInn3wyGxlD9PHHHx+OPfbY8PDDD4dHHnkkXHDBBWGnndqmjGNeeOGFbT/33Xdftq9TTjll29GL2e+JJ54Y/vrXv4ZZs2Zl9Q0ePDjEbatXr962H78QIECAAAECzQXKDenN9+IZAQIECBBof4EubzU82v8wtX2E3XffPVxzzTXhrLPOCsOGDQvHHHNMuOqqq8pe1IUXXhjuuOOOsHTp0uyqetzRjva7du3a0KtXr3D//feHT3ziE9mxN27cmF1Jj4H/05/+dFH1bNiwIfTs2TOsX78+m1vUJIMIECBAgEAdCJT6Xee7Nqx5UZnvY68DLksgQCAHArJBek1u+7JverV2eEVvvvlmuOWWW8KmTZtCvNV9zZo1Yd68eaF3795hxIgRYc899wxHHXVUmDNnTtG1bdmyJdx0001h7Nix28J5Mfv9wAc+EA466KAwffr0rJ54Jf3666/Pahk6dGjRxzeQAAECBAgQKE5gc3HDjCJAgAABAlUTENALUD7++OOhe/fuYZdddgnnnntuuO2228LAgQPDsmXLstFXXHFFOOecc8I999wThgwZEo4++ujsaniBXbXadPvtt4dXXnklnHHGGdteK2a/8T3sM2fODI899lh43/veF97znveEH/3oR1kN73//+7ftq+Uvr7/+eoj/Mtb0p+UYzwkQIECAQB4EyrnVfcj/vjMPNNZIgAABAokICOgFGhGvVC9YsCC7Wn7eeeeF008/PSxatChs3bo1Gz1u3Lhw5plnhsMOOyxMmjQpu7I9bdq0AntqvWnq1KnhhBNOCH369Nn2YjH7je9EiB8qF6/eP/DAA9n73z/3uc+Fz372s9l727ftrMUvEyZMyG5pj7e1x5999923xQhPCRAgQIAAgbYE1r39V39bL9tOgAABAgSqKiCgF+DceeedwwEHHBDireMx4MYPY5s8eXLYe++9s9HxanrTx4ABA8LKlSubbir4+4oVK7Kr4GeffXaz14vZb/xguPi+9XjL/eGHH55dub/uuuvCe9/73nDjjTc221/TJ+PHj8/ebx7fcx5/Vq1a1fRlvxMgQIAAgVwJlHMVvdT3rucK1GIJECBAoKoCAnoRnPEKd7xVPH5dWrzy/fTTTzebFb/+bL/99mu2rdCTG264IbsCPmrUqGYvF7PfzZvffidcy0+Lj88br8A32+nfnsTb9Bu/Mq7xz0LjbCNAgAABAgTaFvjkP9/V9oteIUCAAAECVRIQ0FtAxivO8ZPSly9fHuJ70ePz2bNnh9NOOy37ULeLL744/PjHPw4zZswIzzzzTPjOd74TFi9enH3Ce+Ou4nvSf/KTnzQ+zf6MIToG9Hi7fNeuXZu9Ft9fvqP9xg+pi+81j/MXLlwY4j8KxDl//OMfQ8vA32znnhAgQIAAAQLNBMq5ir785bfCz+e+/Vk0zXbmCQECBAgQqKJA86RYxR3X6q7iJ6qPGTMme193fM/2oEGDwr333pt9tVpcU/yKtNdeey1cdNFFYd26ddnt7/Frzvbff/9tS3722WdD/Fq0po/4AW/xNvj46e2FHjva7x577JF9INy3v/3t7LvZ33jjjXDwwQeHX//611kNhfZpGwECBAgQIFA9gW//+qlw2vAPVW+H9kSAAAECBFoI+B70FiD1/tR3HdZ7h62PAAECBIoR+NWjK8I3ZzxRzNBmY374v/4+fP4jO35bW7NJnhAgQCBRAdkgvca4xT29nqiIAAECBAgQaGeBckN2OaG+nZdi9wQIECBQRwICeh0101IIECBAgACB4gWuHj2g+MFNRn5u8qwmz/xKgAABAgSqJyCgV8/SnggQIECAAIEaEojvJy8npC944dUaWqVSCRAgQKCWBAT0WuqWWgkQIECAAIGqCsSQvlsZ/zX0xSn3V7UOOyNAgAABAlGgjL+SwBEgQIAAAQIE6kdgwfdHlbyYB1dsLHmOCQQIECBAYEcCAvqOhLxOgAABAgQI1L3AAXuU/p9Evhe97k8LCyRAgECHC5T+t1GHl+iABAgQIECAAIH2FZj5jyeUfID4vegeBAgQIECgmgICejU17YsAAQIECBCoWYG+PUov/bu3Lyx9khkECBAgQKANAQG9DRibCRAgQIAAgXwJzPnfpb8XfdpDf8oXktUSIECAQLsKCOjtymvnBAgQIECAQL0LPLj0pXpfovURIECAQAcJCOgdBO0wBAgQIECAQPoC/zBk75KL/OLUh0ueYwIBAgQIECgkIKAXUrGNAAECBAgQyKXAxFOH5HLdFk2AAAECaQgI6Gn0QRUECBAgQIBAIgKfPbhXyZWcfv2ckueYQIAAAQIEWgoI6C1FPCdAgAABAgRyLXDtlz8WSg3pv//j+lybWTwBAgQIVEdAQK+Oo70QIECAAAECdSQQQ3qpj8v+c0GpU4wnQIAAAQLNBAT0ZhyeECBAgAABAgTeFhh3RL+SKKY//FxJ4w0mQIAAAQItBQT0liKeEyBAgAABAgQaBMafeEjJDj+fu6zkOSYQIECAAIFGAQG9UcKfBAgQIECAAIEWAh/ZZ9cWW7b/9Nu/fmr7A7xKgAABAgS2IyCgbwfHSwQIECBAgEC+BWZ87VMlA/zq0RUlzzGBAAECBAhEAQHdeUCAAAECBAgQqKLAN2c8UcW92RUBAgQI5ElAQM9Tt62VAAECBAgQIECAAAECBJIVENCTbY3CCBAgQIAAgRQEbj6r9K9cS6FuNRAgQIBA7QkI6LXXMxUTIECAAAECHSgw4sBeJR9t1qLVJc8xgQABAgQICOjOAQIECBAgQIDADgRGHVxaSB87ff4O9uhlAgQIECDQWkBAb21iCwECBAgQIECgmcD/+XLpt7kffMmdzfbhCQECBAgQ2JGAgL4jIa8TIECAAAECBMoQ2NQw56OXC+ll0JlCgACB3AoI6LltvYUTIECAAAECpQj8/h8/WcrwbOxLr5c8xQQCBAgQyLGAgJ7j5ls6AQIECBAgULzAfnt0K35wk5GfuNpV9CYcfiVAgACB7QgI6NvB8RIBAgQIECBAoKnAzG98ounTon5ftbGoYQYRIECAAIEgoDsJCBAgQIAAAQJFChzQu0c4vF/PIke/M+zSXz32zhO/ESBAgACBNgQE9DZgbCZAgAABAgQIFBL4+VePKLR5u9tueuT57b7uRQIECBAgEAUEdOcBAQIECBAgQKBEgSM/uFuJM0K4YPq8kueYQIAAAQL5EhDQ89VvqyVAgAABAgSqIDB93OEl7+WORWtLnmMCAQIECORLQEDPV7+tlgABAgQIEKiSQN/3lb6jBSteLn2SGQQIECCQGwEBPTettlACBAgQIECgmgKjBvcreXfT//BMyXNMIECAAIH8CAjo+em1lRIgQIAAAQJVFBh/4iEl7+0vr/215DkmECBAgEB+BAT0/PTaSgkQIECAAIEqC3zpo31K2uPBfUv/iraSDmAwAQIECNS0gIBe0+1TPAECBAgQINCZAt/7/GGhT/fiKnh3w7CvHzuwuMFGESBAgEAuBQT0XLbdogkQIECAAIFqCTx46aiwWxH/RTX28H2rdUj7IUCAAIE6FSjir5M6XbllESBAgAABAgSqJLDg+6PC9r4bfVxDOB//2UFVOprdECBAgEC9CnSt14VZFwECBAgQIECgIwUavxv9vJ/NC/OXrQ3v2jmEf/jYB93W3pFNcCwCBAjUuICAXuMNVD4BAgQIECCQlsCUMz6eVkGqIUCAAIGaEXCLe820SqEECBAgQIAAAQIECBAgUM8CAno9d9faCBAgQIAAAQIECBAgQKBmBAT0mmmVQgkQIECAAAECBAgQIECgngUE9HrurrURIECAAAECBAgQIECAQM0ICOg10yqFEiBAgAABAgQIECBAgEA9Cwjo9dxdayNAgAABAgQIECBAgACBmhEQ0GumVQolQIAAAQIECBAgQIAAgXoWENDrubvWRoAAAQIECBAgQIAAAQI1IyCg10yrFEqAAAECBAgQIECAAAEC9SwgoNdzd62NAAECBAgQIECAAAECBGpGQECvmVYplAABAgQIECBAgAABAgTqWUBAr+fuWhsBAgQIECBAgAABAgQI1IyAgF4zrVIoAQIECBAgQIAAAQIECNSzgIBez921NgIECBAgQIAAAQIECBCoGQEBvWZapVAC/6+9O4+Vsjr/AH5QCi4IinWjLC64t4BoFP1DLVZFTbXULdYWcStQiQGtFqoNWmM1talxaUz/UKRad9EobkXRtlRiUYGqFCTuVZRYwqKyKMxvztvc+d0LFxjRy5yZ85nkemd5553nfJ7j5X7vuxEgQIAAAQIECBAgQKCRBQT0Ru6usREgQIAAAQIECBAgQIBA3QgI6HXTKoUSIECAAAECBAgQIECAQCMLCOiN3F1jI0CAAAECBAgQIECAAIG6ERDQ66ZVCiVAgAABAgQIECBAgACBRhYQ0Bu5u8ZGgAABAgQIECBAgAABAnUjIKDXTasUSoAAAQIECBAgQIAAAQKNLCCgN3J3jY0AAQIECBAgQIAAAQIE6kZAQK+bVimUAAECBAgQIECAAAECBBpZQEBv5O4aGwECBAgQIECAAAECBAjUjYCAXjetUigBAgQIECBAgAABAgQINLKAgN7I3TU2AgQIECBAgAABAgQIEKgbAQG9blqlUAIECBAgQIAAAQIECBBoZAEBvZG7a2wECBAgQIAAAQIECBAgUDcCAnrdtEqhBAgQIECAAAECBAgQINDIAgJ6I3fX2AgQIECAAAECBAgQIECgbgQE9LpplUIJECBAgAABAgQIECBAoJEFBPRG7q6xESBAgAABAgQIECBAgEDdCAjoddMqhRIgQIAAAQIECBAgQIBAIwsI6I3cXWMjQIAAAQIECBAgQIAAgboRENDrplUKJUCAAAECBAgQIECAAIFGFhDQG7m7xkaAAAECBAgQIECAAAECdSMgoNdNqxRKgAABAgQIECBAgAABAo0sIKA3cneNjQABAgQIECBAgAABAgTqRkBAr5tWKZQAAQIECBAgQIAAAQIEGllAQG/k7hobAQIECBAgQIAAAQIECNSNgIBeN61SKAECBAgQIECAAAECBAg0soCA3sjdNTYCBAgQIECAAAECBAgQqBsBAb1uWqVQAgQIECBAgAABAgQIEGhkAQG9kbtrbAQIECBAgAABAgQIECBQNwICet20SqEECBAgQIAAAQIECBAg0MgCAnojd9fYCBAgQIAAAQIECBAgQKBuBAT0ummVQgkQIECAAAECBAgQIECgkQUE9EburrERIECAAAECBAgQIECAQN0ICOh10yqFEiBAgAABAgQIECBAgEAjCwjojdxdYyNAgAABAgQIECBAgACBuhEQ0OumVQolQIAAAQIECBAgQIAAgUYWENAbubvGRoAAAQIECBAgQIAAAQJ1IyCg102rFEqAAAECBAgQIECAAAECjSwgoDdyd42NAAECBAgQIECAAAECBOpGQECvm1YplAABAgQIECBAgAABAgQaWUBAb+TuGhsBAgQIECBAgAABAgQI1I2AgF43rVIoAQIECBAgQIAAAQIECDSygIDeyN01NgIECBAgQIAAAQIECBCoGwEBvW5apVACBAgQIECAAAECBAgQaGQBAb2Ru2tsBAgQIECAAAECBAgQIFA3AgJ63bRKoQQIECBAgAABAgQIECDQyAICeiN319gIECBAgAABAgQIECBAoG4EBPS6aZVCCRAgQIAAAQIECBAgQKCRBQT0Nbp7yy23hD59+oTOnTsXX4ceemh44oknWiw1bdq0MHDgwLD11lsXyxx++OFh2bJlLZZp/mDXXXcN7dq1W+vrggsuaL5YqGa9jz32WDjkkEPClltuGbbbbrvwgx/8oMU6PCBAgAABAgQIECBAgACB+hRoX59lt13V3bt3D9dee23Yc889Q6lUChMmTAgnnXRSmDFjRth///2LED1o0KAwduzYcNNNN4X27duHWbNmhc02W/ffOqZPnx5WrVpVKfrVV18NRx99dDj11FMrz8VwvqH1Pvjgg+H8888Pv/nNb4o/EHzxxRchrsuNAAECBAgQIECAAAECBOpfoF05hJbqfxhtO4KuXbuG6667Lpx77rlhwIABRbi+6qqrNvpDR40aFSZNmhTmzZtXbFWPK9rQemMYj1vir7zyyqKOjf3wJUuWhC5duoTFixcXW/83dj3eR4AAAQIECBAgQIBAfQvIBun1b92bfdOrdZNXFLd633PPPeHTTz8NcVf3BQsWhBdeeCHsuOOO4bDDDgs77bRTOOKII8LUqVOrrm3lypXhzjvvDOecc04lnFez3pdffjm8//77xZb6Aw44IOyyyy7huOOO2+AW9BUrVoT4P17zr6qLtSABAgQIECBAgAABAgQIbDIBAb0V6ldeeSV06tQpdOzYMQwfPjw89NBDYb/99gtvvvlmsfQVV1xR7Gr+5JNPhv79+4ejjjqq2BreyqrWeurhhx8OixYtCkOHDq28Vs16my9z+eWXF1vg4zHoRx55ZFi4cGFlXWveueaaa4ot5nGrefzq0aPHmot4TIAAAQIECBAgQIAAAQIJCAjorTRh7733DjNnziy2lo8YMSKcddZZYfbs2WH16tXF0sOGDQtnn312iFuyr7/++hCXv+2221pZ09pP3XrrrcWW727dulVerGa9Tctcdtll4eSTTw4HHnhgGD9+fLEV/v7776+sa8078Vj5uDt709d777235iIeEyBAgAABAgQIECBAgEACAk4S10oTOnToEHr37l28EoNwPMnbDTfcEMaMGVM8F7emN7/tu+++4d13323+VKv333nnnfD000+HiRMntng97q4eb+tbb2vLxC38u++++3o/Oy4Tv9wIECBAgAABAgQIECBAIG0BW9Cr6E/ceh2P5Y4naYtbvufOndviXa+//nro1atXi+daexC3eMfj10844YQWL1ez3viHghi0m3/2559/Ht5+++2qPrvFB3pAgAABAgQIECBAgAABAskJ2IK+RkviLuHx5Gs9e/YMS5cuDXfddVd47rnnwlNPPVXsTn7JJZeEcePGhb59+4Z+/foVl2GbM2dOeOCBByprisekDx48OIwcObLyXAz5MaDH3eXjpdma3+I10je03nhd9ng8fPzseBx5/INAPLN8vDW/XFvz9bpPgAABAgQIECBAgAABAvUj0DIp1k/dbVZpPKP6kCFDwvz584uTqvXp06cI5/G65fEWL5G2fPnyMHr06OLkbDGoT548Oeyxxx6Vmt54443w8ccfVx7HO3HX9rgbfDx7e2u3atYbA3kM9z/5yU/CsmXLwiGHHBKmTJkS4sni3AgQIECAAAECBAgQIECgvgVcB72++/elq3etwy9N5g0ECBAgQIAAAQIEGlJANkivrY5BT68nKiJAgAABAgQIECBAgACBDAUE9AybbsgECBAgQIAAAQIECBAgkJ6AgJ5eT1REgAABAgQIECBAgAABAhkKCOgZNt2QCRAgQIAAAQIECBAgQCA9AQE9vZ6oiAABAgQIECBAgAABAgQyFBDQM2y6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IECAAAECBAgQIFADAQG9FfS99947xJOvxa3lI0aMCGeddVaYPXt2WL16dbH0sGHDwtlnnx0OOOCAcP3114e4/G233dbKmtZ+6tZbbw3HHXdci2PIq1nvTTfdFJYuXRrGjh279krX80xcPu7O3vT13nvvrWdpLxEgQIAAAQIECBAgQIBArQTa1+qDU/7cDh06hN69exclHnjggcWJ4G644YYwZsyY4rm4Nb35bd999w3vvvtu86davf/OO++Ep59+OkycOLHF67vsskvxeH3rnTJlSnGW97hVv/ktbk0/88wzw4QJE5o/Xbkfl1/zPZUX3SFAgAABAgQIECBAgACBZARsQa+iFXELdzyWO14uLZ49fe7cuS3e9frrr4devXq1eK61B+PHjy+OXz/hhBNavFzNem+88cYwa9asYst+3Lr/+OOPF+u49957w9VXX91ifR4QIECAAAECBAgQIECAQP0J2IK+Rs/iLuFxF/SePXsWu5Tfdddd4bnnngtPPfVUcVK3Sy65JIwbNy707du3OHt63HI9Z86c8MADD1TWFI9JHzx4cHH5taYnY8iPAT3uLt++fUv2eI30Da031tP8Fo+Rj7c99tgjxEvDuREgQIAAAQIECBAgQIBAfQu0TIr1PZavpfp4RvUhQ4YU1yyPJ1Xr06dPEc7jpdXiLV4ibfny5WH06NFh4cKFRVCP1zWPQbnp9sYbb4SPP/646WHxPe7aHneDj2dvb+1WzXpbe5/nCBAgQIAAAQIECBAgQKAxBFwHvTH6WPUoXOuwaioLEiBAgAABAgQIEGhoAdkgvfY6Bj29nqiIAAECBAgQIECAAAECBDIUENAzbLohEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAhkKCCgZ9h0QyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyFBAQM+w6YZMgAABAgQIECBAgAABAukJCOjp9URFBAgQIECAAAECBAgQIJChgICeYdMNmQABAgQIECBAgAABAgTSExDQ0+uJiggQIECAAAECBAgQIEAgQwEBPcOmGzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQIYCAnqGTTdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEMBQT0DJtuyAQIECBAgAABAgQIECCQnoCAnl5PVESAAAECBAgQIECAAAECGQoI6Bk23ZAJECBAgAABAgQIECBAID0BAT29nqiIAAECBAgQIECAAAECBDIUENAzbLohEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAhkKCCgZ9h0QyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyFBAQM+w6YZMgAABAgQIECBAgAABAukJCOjp9URFBAgQIECAAAECBAgQIJChgICeYdMNmQABAgQIECBAgAABAgTSExDQ0+uJiggQIECAAAECBAgQIEAgQwEBPcOmGzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQIYCAnqGTTdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEMBQT0DJtuyAQIECBAgAABAgQIECCQnoCAnl5PVESAAAECBAgQIECAAAECGQoI6Bk23ZAJECBAgAABAgQIECBAID0BAT29nqiIAAECBAgQIECAAAECBDIUENAzbLohEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAhkKCCgZ9h0QyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyFBAQM+w6YZMgAABAgQIECBAgAABAukJCOjp9URFBAgQIECAAAECBAgQIJChgICeYdMNmQABAgQIECBAgAABAgTSExDQ0+uJiggQIECAAAECBAgQIEAgQwEBPcOmGzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQIYCAnqGTTdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEMBQT0DJtuyAQIECBAgAABAgQIECCQnoCAnl5PVESAAAECBAgQIECAAAECGQoI6Bk23ZAJECBAgAABAgQIECBAID0BAT29nqiIAAECBAgQIECAAAECBDIUENAzbLohEyBAgAABAgQIECBAgEB6AgJ6ej1REQECBAgQIECAAAECBAhkKCCgZ9h0QyZAgAABAgQIECBAgACB9AQE9PR6oiICBAgQIECAAAECBAgQyFBAQM+w6YZMgAABAgQIECBAgAABAukJCOjp9URFBAgQIECAAAECBAgQIJChgICeYdMNmQABAgQIECBAgAABAgTSExDQ0+uJiggQIECAAAECBAgQIEAgQwEBPcOmGzIBAgQIECBAgAABAgQIpCcgoKfXExURIECAAAECBAgQIECAQIYCAnqGTTdkAgQIECBAgAABAgQIEEhPQEBPrycqIkCAAAECBAgQIECAAIEMBQT0DJtuyAQIECBAgAABAgQIECCQnkD79EpSUVsKlEqlYvVLlixpy4+xbgIECBAgQIAAAQIEEhdoygRNGSHxcrMoT0DPos3/P8ilS5cWD3r06PH/T7pHgAABAgQIECBAgEC2AjEjdOnSJdvxpzTwduW/lvxvk2pKVamlzQRWr14dPvjgg7DNNtuEdu3atdnnWPGXF4h/wYx/OHnvvfdC586dv/wKvKOhBcyPhm7vVx6c+fGVCRt6BeZHQ7f3axmcOfK1MNblSmIUjOG8W7duYbPNHP2cQhNtQU+hC5uwhvg/Xvfu3TfhJ/qoLysQw7mA/mXV8lne/Min1xszUvNjY9TyeY/5kU+vN3ak5sjGytX3+2w5T6t//kySVj9UQ4AAAQIECBAgQIAAAQKZCgjomTbesAkQIECAAAECBAgQIEAgLYHNryjf0ipJNQTyFdh8883DkUceGdq3d/RJvrNg3SM3P9Zt45UQzA+zYH0C5sf6dLwWBcwR84BAGgJOEpdGH1RBgAABAgQIECBAgAABApkL2MU98wlg+AQIECBAgAABAgQIECCQhoCAnkYfVEGAAAECBAgQIECAAAECmQsI6JlPAMMnQIAAAQIECBAgQIAAgTQEBPQ0+qAKAgQIECBAgAABAgQIEMhcQEDPfAIYftsJLFy4MJx55pmhc+fOYdtttw3nnntu+OSTT9b7gcuXLw8XXHBB2H777UOnTp3CySefHD766KPKe2bNmhXOOOOM0KNHj7DllluGfffdN9xwww2V15vurFixIlx22WWhV69eoWPHjmHXXXcNt912W9PLvicgUMv50TT8f/zjH8UVA/r169f0lO+JCNRqfkycODEcffTRYYcddih+dh166KHhqaeeSkRFGU0CtZof8fOfe+650L9//+Lflt69e4fbb7+9qSzfExJoizkSh3fhhReGAw88sOj/uv7tiD8zBgwYELbZZpviZ0n8Xebtt99OSEcpBNIWENDT7o/q6lgghvPXXnstTJ48OUyaNCn87W9/Cz/96U/XO6LR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117FMelxJZtt9r8YF49Tj7vId+rUqfIVg/3q1avDW2+91eLzvkotLVbkQZsKtG/TtVs5AQIECBAgQIAAAQIEEhO4+OKLw9ChQ9db1e67777e1zf0YlMgjsedT5ky5UttPW9a90UXXRRGjx4d4hbz7bbbLrz99tvF8eZNtX3yySdh2LBh4cILL2x6S+V782Pdv45aKit2p00FBPQ25bVyAgQIECBAgAABAgRSE9hhhx1C/GqrW1MgnjdvXnj22WfD9ttvv9EfFbfyx0u1xVvc3b1Hjx6hf//+xeP4ffbs2aF3797F49b+83XW0tr6Pff1CgjoX6+ntREgQIAAAQIECBAg0EAC7777bli4cGGI3+Ox4DNnzixGF0Nx3LU83vbZZ5/izOnxDOoxEJ9yyinFJdYmTZpUvOfDDz8sluvatWvo0KFDcb+a9cZd3ONl1uIu7fFybddee2247777wuabb16sIx7bPmDAgOKkcOedd15x5vYY2OPZ32+++eaqaylW5j9JCLjMWhJtUAQBAgQIECBAgAABAikKxF3hJ0yYsFZpccv4kUceWTwft3KPHz++2G0+7oa+2267rbV8fKL5e6pZ78CBA4ugH8/o3rdv3zBu3Lhw3HHHtVh3vGzaZZddFqZNm1Yc677HHnuE008/PcTLtFVbS4sVelBTAQG9pvw+nAABAgQIECBAgAABAgQI/E/AWdzNBAIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdHOAAAECBAgQIECAAAECBAgkICCgJ9AEJRAgQIAAAQIECBAgQIAAAQHdHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQDcHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQzQECBAgQIECAAAECBAgQIJCAgICeQBOUQIAAAQIECBAgQIAAAQIEBHRzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3RwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEA3BwgQIECAAAECBAgQIECAQAICAnoCTVACAQIECBAgQIAAAQIECBAQ0M0BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR0c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd0cIECAAAECBAgQIECAAAECCQgI6Ak0QQkECBAgQIAAAQIECBAgQEBANwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENDNAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdHOAAAECBAgQIECAAAECBAgkICCgJ9AEJRAgQIAAAQIECBAgQIAAAQHdHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQDcHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQzQECBAgQIECAAAECBAgQIJCAgICeQBOUQIAAAQIECBAgQIAAAQIEBHRzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3RwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEA3BwgQIECAAAECBAgQIECAQAICAnoCTVACAQIECBAgQIAAAQIECBAQ0M0BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR0c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd0cIECAAAECBAgQIECAAAECCQgI6Ak0QQkECBAgQIAAAQIECBAgQEBANwcIECBAgAABAgQIECBAgEACAgJ6Ak1QAgECBAgQIECAAAECBAgQENDNAQIECBAgQIAAAQIECBAgkICAgJ5AE5RAgAABAgQIECBAgAABAgQEdHOAAAECBAgQIECAAAECBAgkICCgJ9AEJRAgQIAAAQIECBAgQIAAAQHdHCBAgAABAgQIECBAgAABAgkICOgJNEEJBAgQIECAAAECBAgQIEBAQDcHCBAgQIAAAQIECBAgQIBAAgICegJNUAIBAgQIECBAgAABAgQIEBDQzQECBAgQIECAAAECBAgQIJCAgICeQBOUQIAAAQIECBAgQIAAAQIEBHRzgAABAgQIECBAgAABAgQIJCAgoCfQBCUQIECAAAECBAgQIECAAAEB3RwgQIAAAQIECBAgQIAAAQIJCAjoCTRBCQQIECBAgAABAgQIECBAQEA3BwgQIECAAAECBAgQIECAQAICAnoCTVACAQIECBAgQIAAAQIECBAQ0M0BAgQIECBAgAABAgQIECCQgICAnkATlECAAAECBAgQIECAAAECBAR0c4AAAQIECBAgQIAAAQIECCQgIKAn0AQlECBAgAABAgQIECBAgAABAd0cIECAAAECBAgQIECAAAECCQgI6Ak0QQkECBAgQIAAAQIECBAgQOD/AFIdtShqiKKUAAAAAElFTkSuQmCC\" width=\"1000\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x10b63e438>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fig = plt.figure(figsize = (10,10))\n",
    "ax = fig.add_subplot(111)\n",
    "ax.scatter(lon, lat, alpha=0.1)\n",
    "\n",
    "pgn_lon = -121.924316\n",
    "pgn_lat = 36.772491\n",
    "\n",
    "ax.scatter(pgn_lon, pgn_lat)\n",
    "\n",
    "buoy_lat = 36.77230\n",
    "buoy_lon = -121.92481\n",
    "\n",
    "ax.scatter()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
