{ "cells": [ { "cell_type": "markdown", "id": "b36fe48a", "metadata": {}, "source": [ "# Data Workshop 2" ] }, { "cell_type": "markdown", "id": "1c953193", "metadata": {}, "source": [ "**Instructor:** Jared Brzenski jabrzenski@ucsd.edu\n", "\n", "**TAs:** Tommy Stone tstone@ucsd.edu\n", "\n", "\n", "This can be run as MATLAB or Python, depending on the environment chosen.\n", "\n", "MATLAB will be run first. If you want to skip to Python, scroll down to the **Python** header!\n", "\n", "For MATLAB, run ```pip install jupyter-matlab-proxy``` in your environmnet and activate MATLAB in the upper right corner.\n" ] }, { "cell_type": "markdown", "id": "8be50903", "metadata": {}, "source": [ "# MATLAB \n", "\n", "# Raw Data\n", "Lets say we are given the task of analyzing the hsitorical data fro mthe water gauge station at the [Prado Dam in Los Angeles](https://waterdata.usgs.gov/monitoring-location/USGS-11074000/#dataTypeId=continuous-00065-0&period=P7D).\n", "\n", "We want to download the [data](data/PradoDam.txt), clean it, and do some spectral analysis on it to see if there is anything interesting.\n", "\n" ] }, { "cell_type": "markdown", "id": "38a8b2ee", "metadata": {}, "source": [ "## Reading in the data\n", "\n", "If we do a quick check of the file, we note there is a giant header, then some columns of data.\n", "```\n", "# ---------------------------------- WARNING ----------------------------------------\n", "# Some of the data that you have obtained from this U.S. Geological Survey database\n", "# may not have received Director's approval. Any such data values are qualified\n", "# as provisional and are subject to revision. Provisional data are released on the\n", "# condition that neither the USGS nor the United States Government may be held liable\n", "# for any damages resulting from its use.\n", "#\n", "# Additional info: https://help.waterdata.usgs.gov/policies/provisional-data-statement\n", "#\n", "# File-format description: https://help.waterdata.usgs.gov/faq/about-tab-delimited-output\n", "# Automated-retrieval info: https://help.waterdata.usgs.gov/faq/automated-retrievals\n", "#\n", "# Contact: gs-w_support_nwisweb@usgs.gov\n", "# retrieved: 2020-04-29 18:30:02 EDT (caww01)\n", "#\n", "# Data for the following 1 site(s) are contained in this file\n", "# USGS 11074000 SANTA ANA R BL PRADO DAM CA\n", "# -----------------------------------------------------------------------------------\n", "#\n", "# Data provided for site 11074000\n", "# TS parameter statistic Description\n", "# 8183 00060 00003 Discharge, cubic feet per second (Mean)\n", "#\n", "# Data-value qualification codes included in this output:\n", "# A Approved for publication -- Processing and review completed.\n", "# P Provisional data subject to revision.\n", "# e Value has been estimated.\n", "# \n", "agency_cd\tsite_no\tdatetime\t8183_00060_00003\t8183_00060_00003_cd\n", "5s\t15s\t20d\t14n\t10s\n", "USGS\t11074000\t1940-09-30\t51.0\tA\n", "USGS\t11074000\t1940-10-01\t47.0\tA\n", "USGS\t11074000\t1940-10-02\t47.0\tA\n", "USGS\t11074000\t1940-10-03\t47.0\tA\n", "```\n" ] }, { "cell_type": "markdown", "id": "2e27df20-b2e9-4c36-ae28-8e3828df4cb9", "metadata": {}, "source": [ "This tells us the pertinent information about the file, where it came from, and what format the data displayed is in.\n", "\n", "In MATLAB, we can load this data in by giving the filename of the data location, and using readtable." ] }, { "cell_type": "code", "execution_count": 103, "id": "6b76be2c-0024-4690-a1d2-6db0af119162", "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning: Column headers from the file were modified to make them valid MATLAB identifiers before creating variable names for the table. The original column headers are saved in the VariableDescriptions property.\n", "Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names." ] } ], "source": [ "% MATLAB\n", "% read in a text file\n", "\n", "filename = 'data/PradoDam.txt';\n", "\n", "% Offer a helpful hint if we cant find the file\n", "[path, name, ext] = fileparts(filename);\n", "if ext ~= '.txt'\n", " fprint(\"Wrong file extension given.\\n\");\n", " return;\n", "end\n", "\n", "% We could read in the data raw with\n", "% ff = importdata(filename);\n", "\n", "% Or, read it in as a table with\n", "f = readtable(filename);" ] }, { "cell_type": "markdown", "id": "27d0099e-e6d6-48f6-9832-fe0b06c44de8", "metadata": {}, "source": [ "WE can examine the data by viewing the ```f``` variable, and note it is in columns already. we are interested in column 3 and 4, the date and measurements." ] }, { "cell_type": "code", "execution_count": 104, "id": "da287276-a57c-4e49-93d7-2ac3ab1f7eab", "metadata": {}, "outputs": [], "source": [ "% MATLAB\n", "date = f{:,3};\n", "flow = f{:,4};\n", "% Convert the date from a string into datenum object so MATLAB can do date specific work.\n", "date = datenum( f{:,3} );" ] }, { "cell_type": "code", "execution_count": 105, "id": "13c01d63-a0b2-4707-8d23-6057d24ea7a4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
months = 29066x1 double\n",
       "     9\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "    10\n",
       "...
" ], "text/plain": [ "months = 29066x1 double\n", " 9\n", " 10\n", " 10\n", " 10\n", " 10\n", " 10\n", " 10\n", " 10\n", " 10\n", " 10\n", "..." ] }, "execution_count": 105, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%MATLAB\n", "% Lets say we need a monthly average, we can do that with indexing ?!?\n", "months = month(date)\n", "\n", "for ii= 1:12\n", " indexes = find(months == ii);\n", " Total(ii) = sum( flow(indexes) );\n", " Average(ii) = Total(ii) / length(indexes);\n", "end\n", "\n", "date = datetime( date , 'ConvertFrom', 'datenum' );\n", "\n", "save ('save_data.mat', 'date', 'flow' );\n", "\n" ] }, { "cell_type": "markdown", "id": "3f84cb62-98d6-4eb6-bdab-8e798d1e685e", "metadata": {}, "source": [ "And conversely, if we are missing a newer MATLAB, or want to do this the way MATLAB is doing it under the hood, this is the equivalent to the above code. Be carefuly running it, it will clobber the variables in the above cells!" ] }, { "cell_type": "markdown", "id": "614b18bf-83a8-4f93-8b7f-60c1a1fddb63", "metadata": {}, "source": [ "## Removing NaNs\n", "If you scrolled through the data, you noticed there were some missing values, dates, etc. WE need to remove those from our data set. How can we find them efficiently?" ] }, { "cell_type": "code", "execution_count": 106, "id": "0cff4d02-bbce-4abc-8e44-8dcc9e970c55", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "inad =\n", "\n", " 0x1 empty double column vector\n", "\n" ] } ], "source": [ "% MATLAB \n", "% clean NaNs\n", "inan = find(isnan(flow));\n", "flow(inan) = []; % This effectively removes the entry\n", "date(inan) = []; % Do not forget the dates as well\n", "\n", "% Other equivalent ways of finding nans in dates\n", "% isnat == is not a time\n", "% if date is a date string\n", "\n", "% If we did everything correct, then this should be equal to zero\n", "inad = find(isnat(date))" ] }, { "cell_type": "markdown", "id": "6cdfde0f-cfe9-44bd-aca3-98099dae3f26", "metadata": {}, "source": [ "## Interpolation\n", "We look at the data, there may be time gaps, holes, etc. But we want a nice, steady time series.\n", "\n", "**We INTERPOLATE!**" ] }, { "cell_type": "code", "execution_count": 107, "id": "c27f15f8-75a5-464b-8a23-866a53ecf7dd", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAAB3RJTUUH6QkREDoAIaXPaAAAIABJREFUeJzt3X1wG/Wdx/GfJKuQpkA9QRmTMQz2RAi5OMUDd6c6OE6TTMCXBx6clpxRPCElHricE4WQS+lhkpK2U2C4wkBJyxDIJAEaHjppJzkewigkkwrXvZj47ibYCKdGEEMm2Idx4gfJku6PLTrxW1mSZVv7k/x+/ZGRfvrt7ncftJ9d7cZrikajAgAAo5mNLgAAACEIJACAIggkAIASCCQAgBIIJACAEggkAIASCCQAgBIIJACAEggkAIASCCQAgBIIJACAEggkAIASCCQAgBIIJACAEggkAIASCCRgwoyMjOzbt+/48eMTMrbjx4/v27dvZGRkQsYGqI9AQl75l3/5F5vNZrPZSkpKknQ7ffr0iRMnJnzqQ0NDK1eufP755ydkus8///zKlSuHhoZiLdqsXXbZZUuXLn388ceTDz5J8whMHgIJeWX9+vWXX375//7v/+7atSvWGIlEpPOMn/zkJw8//HB8h2AwqB+bNKB+PKMNGPt0YGAgyXRHG8PIyEgkEtGP8PPPPy8sLKytrS0oKNi4ceMtt9ySZHIJpyXVA6glCuSXlStXXnDBBdFotL+/XwjR2Ng4bdo0IURlZeXg4GA0Gt22bVts+//d73736KOPWq1WIcQVV1zh8/liA+7YsaOoqKi2tlZ7e88990yfPl0Icdddd2kTeuyxx7Qxz5o1680334wNuG7dumg0Wltba7FYhBCXXnqp1+vVTzcajeonHY1G16xZI4SYPn36smXLhBD9/f2xWRNCrFy5Unu9ZcsWIcTRo0e1t9Lk9NPS1wOohkBCvpECqbS09M0332xsbBRCvPbaa9Fo9L333rNarfPnzz906NBbb70lhHjwwQfPnz9/ww03OJ3O2IDTpk3btm3b0aNHtbff/e5333zzzdWrVwshjh071tzcLISor69/8803b7jhhksuueT8+fPxgeTz+f77v/+7u7u7qKjo5ptvlqb72Wef/ed//qd+0l6vVwjhdrtff/317373u0kC6fXXXxdCPPvss9pbaXLStBLWA6imYCLPtgD1LFq0aPHixUKIJ5988vz580KIa6+91mw2FxUVLVq0aOfOnUKIo0ePfvDBB2fOnPH7/bEB77jjjq1btwoh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wpZsFhmJRFpaWqxW67e+9a1Yo74AqSXLizHNIqVFrdpi1PfJ/taYHIE0wbq6uu68885Tp05VV1cLIQYGBurr67/44ot9+/YNDw9fc801QojFixefPHnS6/V+/vnn1157rdvt7u3tPXDgwJdffjlnzhxFijx06NADDzxgsVgGBgbKysoULPK1117bvXu31+v1er2//OUvKysrN27cmM0iU1Y4ODhYX18fjUaPHDly5MiRBQsWKLgY9S3ZLNLv92/YsKGnp+ell17q6+urqKgQQugLkFqyvBjTLFJa1KotRn2f7G+NqUUxoTZv3vzKK6/89Kc/1d7+4Q9/2Llzp/Z66dKl4XB4ZGTk7rvvjvX/05/+tGXLFu31TTfdFA6HVShyYGBg+fLlIyMjKhcZ6/nZZ5/dfvvt2S8yZYXvvPNOrCSXy6XmYpRajh07luUitUmEw+Gqqqpooo1Nasl+hekUGf36os7+uk6nwvg+hmyNKXEXwAR75JFHLrnkktjbYDAYe1tUVNTe3t7b29vX1/fGG2/4fD4hRHd3t8vl0jrY7Xa/369CkceOHauqqvJ6vfv37z979qyaRcY+2r1796pVq7JfZMoKKysrP/7448OHDz/99NO1tbVqLkap5aOPPspykdq9SKdPny4tLRWJvhFSSyAQyP5iTFmk+Pqizv66TqfC+D6GbI0p5fxt34q77rrr1q9fb7FYPvroo1OnTlksloKCgttuuy0cDh89evTZZ58tLS3Vzq+FEBaLpaenR4Uiz50719LSUlFRMW3atDVr1tx2220zZ85UrUitfWBg4J133tm8ebP2NzsMLFJfodVqnTt37s6dO/v6+h566KGDBw8quK6lluLi4uuvvz7LRQ4PD2/duvX+++8XQrS3t0tLSWppa2urqqrKcoUpi5Q6p+xgVIWxPq+88orhW6MeZ0iTq6Sk5LnnnrvoootWrFhRWFg4e/bswsLCFStWLFmy5Mc//vHQ0FBVVdVof2nCwCJNJtPy5csXLlx44403Xn311ZFIRMEitfY9e/b88Ic/FEn/ZodRFR45cqSvr2/v3r0vvPDC9u3b58yZo+BilFpuvfXWLBcZCoU2btx41113aX/rS78epZaKiorsL8aURUr9s781plNhfB/Dvy8JEUiTzmazLVy48MyZMzNnzowd1wshQqFQb29vdXW1Cn9pQirS6XRq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" }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "% Interpolate for hourly times\n", "% using interp1\n", "\n", "firstday = datenum( date(1) ); % first time\n", "lastday = datenum( date(end) ); % last time\n", "xq = firstday : 1/24 : lastday; % make a vector with perfect hour spacing\n", "yq = interp1(datenum(date), flow, xq, 'pchip'); % Interpolate to that perfectly spaced vector\n", "close all\n", "subplot(2,1,1)\n", "xq_datetime = datetime( xq , 'ConvertFrom', 'datenum' );\n", "plot(xq_datetime,yq); title('Interpolated Data');\n", "subplot(2,1,2)\n", "plot(date, flow); title('Original Data');\n", "\n" ] }, { "cell_type": "markdown", "id": "02d9ddf9-250f-4de7-aa47-fa31c39fef0a", "metadata": {}, "source": [ "## Filtering Data\n", "\n", "OK, now lets filter this data, to see some sort of pattern in the data.\n", "\n", "This is usually the first part of spectral analysis, where we look and see if there are any time (frequency) components to our data." ] }, { "cell_type": "markdown", "id": "c15559c4-10bb-4623-8d3b-46d9bda988ff", "metadata": {}, "source": [ "Generic Example:" ] }, { "cell_type": "code", "execution_count": 108, "id": "78324a5f-e0d9-47a9-bb1f-83fa8827b63c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAAB3RJTUUH6QkREDoDuKye0gAAIABJREFUeJztnV+oX9WVx/dPQ+lYTaGhFGQefDEXAgMdJ0KvJQFTgim0tB0IJRSH6QxMtIVK3mZEBa0vlTCgfeiDUChISx+mdISBiCODI2IJQxPy4BChVfBBZmSgvSlJb6z+5uEkx333n3XW/r/2/n0/FHvzu+d3zt77rL2+e621z7mr9XqtAAAAgNbc0roBAAAAgFIQJAAAAEKAIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABBBx4J09erV73//+8eOHfvyl7986dKl1s0BAACQxGq9XrduQySPPPLIF77whVOnTrVuCAAAgAz0GiG9//77v/3tb6FGAAAwDL1GSC+//PIvfvGLT37ykxcvXjx06NBTTz114MAB45itra0mbQMAALFcvny5dRO87GvdgEiuX7/+zjvv/PznP9+/f/+Pf/zj55577sknn7QPEzX0W1tbaA8B2rOItCahPTTS2qPEL9N7Tdl94hOf+PznP79//36l1KFDh957773WLQIAAJBEr4J0zz33XLx48erVq0qpt99++3Of+1zrFgEAAEii1xqSUurcuXM/+tGP7rzzzvfee+/555//7Gc/axwgMF4GAICGCPeKvdaQlFInTpw4ceJE61YAAADIQ68pOwAAAIMBQQIAACACCBIAAAARQJAAAACIAIIEAABABBAkAAAAIoAgAQAAEAEECQAAgAggSAAAAEQAQQIAACACCBIAAAARQJAAAACIAIIEAABABBAkAAAAIoAgAQAAEAEECQAAgAggSAAAAEQAQQIAACACCBIAAAARQJAAAFxWq9YtAEMDQQIAcFmvP9YkiBPIzr7WDQAA9MSsSet166aA4UCEBAAAQAQQJABAAHN4hJQdyA4ECQDAZbX6OFOHlB3IDgQJAMAFIgSKAkECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEA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AACACCBIAAAARABBAgAAIAIIEgAAABFAkAAAAIgAggQAAEAEECQAAAAigCABAAAQAQQJAACACCBIAAAARABBAgAAIAIIEgAAABFAkAAAAIgAggQAAEAEECQAAAAigCABAAAQAQQJAACACCBIAAAARABBAgAAIAIIEgAAABFAkAAAAIgAggQAAEAEECQAAAAigCABAAAQAQQJAACACCBIAAAARABBAgAAIAIIEgAAABFAkOqxtbXVugl7QHtopLVHyWsS2kMjrT3y6ViQrl69+v3vf//YsWNf/vKXL1261Lo5AAAAktjXugHx/NM//dMXvvCFxx9/vHVDAAAAZKDXCOn999//7W9/e+rUqdYNAQAAkIfVer1u3YYYXn755V/84hef/OQnL168eOjQoaeeeurAgQPGMUjgAgCAweXLl1s3wUtPKbtLly69++67SqkTJ05cv379nXfe+fnPf75///4f//jHzz333JNPPmkcL3ncAQAAGPSUsrt+/fq1a9euXbumlPrEJz7x+c9/fv/+/UqpQ4cOvffee61bBwAAIImeIqTDhw8fPnx4+vmee+7553/+56tXr952221vv/325z73ubZtAwAAkEivNSSl1Llz5370ox/deeed77333vPPP//Zz362dYsAAADE07EgAQAAGImeakgAAAAGBoIEAABABBAkAAAAIoAgAQAAEMGYgvTSSy8dP378i1/84g9/+MMKl7ty5crTTz995MiR7e3ts2fPEm2wPyza1HPnzh07dkxIe+yX4bZt0k9+8pOvfvWrf/3Xf/2P//iPu7u7Ddvz4osvHj9+PPSK5Rqmt0eIbRtDNNHQvI32NLdtoz1ybDuY9XD8/ve/v//++3//+9+v1+uHH374jTfeqHDFc+fOrdfrDz/88OTJk//5n//pbIP9YdGm/u///u/f/M3fHD582Hnp+u353ve+99Of/nT+Z9smvf3221/5ylf+9Kc/rdfrp5566l//9V9btefJJ5984okn/vIv/3L6J/OK5Rpmt6e5bRtNmmho3nZ72tq20R45th3BgBHSG2+8cfjw4eklDl/72td++ctflr7i/v37H3jgAaXULbfcctddd+3s7DjbYH9YtKmPPvroY4899uGHHzovXbk99stw2zbpjjvu+Oijj/70pz8ppXZ3d//sz/6sVXtOnTqlv/WKecVyDTPaI8G2jSZNNDRvoz3NbdtojxzbjmBAQfrDH/5w++23Tz/fdtttOzs71S69s7Nz4cKFo0ePOttgf1iuqS+88ML29vbdd989/bN5ey5evPjnf/7nZ86cuf/++7/73e/+3//9X9smHThw4KGHHvrmN7/5D//wD3feeefx48dbtWe+RxPMK5ZrmNGemYa2bTeprXkb7Wlu20Z75Nh2BAMKUit2d3e/853vPPHEE3fccUfblvzmN7959dVX/+7v/q5tM3Sml+E++eST//Ef//FXf/VXzz33XNv2fPTRRy+//PL999//F3/xF//+7//+P//zP23bIxw5tq3kmTdsOyM9vcuOyac+9UMWBLAAAAJRSURBVKnpBaxKqT/+8Y+z5hdld3f39OnTDz744JEjR3xtsD8s1NRnn3326tWrZ86cmRp25syZ733ve//1X//Vqj3Kehnur371q+3t7YZD9G//9m+f/vSnH3nkEaXUXXfddfbs2S996UsN2zPDvGLNhomybSXPvGHbGRkwQrr33nsvXLgw7S155ZVXtre3S1/xgw8+ePjhh7/1rW9N2XZfG+wPCzX1oYce+u53v3vy5MmTJ0/eeuutJ0+evP322xu2Ryl1zz33XLx48erVq0qp6WW4bYdovV5PSfbpZ+ela7ZnhnnFag2TZttKnnnDtjMyYIR04MCBb3/721//+tc/85nPHDhw4Bvf+EbpK7744ovnz59/8803p7+nfvTo0WeeecZug7NhJZp66NCh+ed9+/bdd999zgtVa890rUceeeTUqVPzy3CdV6/WpAceeOCll17627/9209/+tPvvvvus88+27Y9M8wrVmuYNNtW8swbtp2RYV+u+tFHH63X61tvvVVaG+wPqzW1eXuY16rWJGntkd8wse1p3iRpt0xae5gMK0gAAAD6YsAaEgAAgB6BIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABABBAkAAIAIIEgAAABEAEECAAAgAggSAAAAEUCQAAAAiACCBAAAQAQQJAAAACKAIAEAABDB/wP28uQlbBnnuAAAAABJRU5ErkJggg==" }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%% Filters\n", "% deciding what filter to use on your data. This is personal, decide what\n", "% is the best option. This uses the Butterworth filter \"butter\"\n", "\n", "t = 0 : 1 : 5*3600; % Time, maybe when measurements were taken\n", "y = sin(t*2*pi/3600) + randn(size(t)); % Nice cyclic data, with noise added\n", "\n", "% Setup some values for our filters\n", "T = t(2) - t(1); % 1 second\n", "samplingf = 1/T; % 1 Hz\n", "cutoff = 1/(60); % 1/60 Hz, 1/1 min cutoof frequencies higher than this\n", "\n", "% First have to setup filter, with parameters A,B\n", "[B A] = butter(2, cutoff/(0.5*samplingf), 'low');\n", "% Filter the y data, save is as fy\n", "fy = filtfilt(B, A, y);\n", "\n", "%% Plot the results\n", "% Original noisy data\n", "figure\n", "plot(t,y, 'b-x');\n", "hold on;\n", "% Filtered data, (red line)\n", "plot(t,fy,'r-o');\n", "hold on;\n", "% Original, non-noisy function (yellow line)\n", "plot(t, sin(t*2*pi/3600), 'y');\n" ] }, { "cell_type": "code", "execution_count": 109, "id": "e7815538-b035-4b5a-95ac-ae420e961c30", "metadata": {}, "outputs": [ { "data": { "image/png": "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TcFoiWrbtm3btm3z+Xy2CenQoUMFBQXz589/77339u7dK4R46KGHenp6rrnmGrfbrX/imDFjNm/eXFtb+9///d/WOjU1NUIIr9f79ttv/8Vf/EWUhPT222/ry0dV1bq6uo8//ri9vb2oqOiWW24xBvPFF19YK6RorQHRccgO2aejo+OHP/zhokWL7rrrLiHE//zP/wghVq5BlkBPAAAXzklEQVRcee211548edLr9dbW1p44ccJaeM011wghFixYcOONN548efKNN95Yvnz5woULZ82a9frrr0f5xAULFixcuFAI8Ytf/KKnp8da4eDBg0ePHhVCfOtb39KPIhrNmDEjLy+vqKhowYIF27dvF0LU1tYePXq0o6OjpaVFr7Zs2bJNmzYJIWzrHD9+XAhRVVU1d+7c48ePr169OvqCCgaD2otjx47t3bu3p6cnFAr19PQYg7GtEH22QIqQkJB97rjjjry8PK3L1umdrxBCP3ljW2g8AWM9hWNLO3Rme+ZGc/vttz///PPa69OnT8czz3nz5k2fPv273/2usVA7lhi9jnZ6yfZslu7DDz8UQkybNk0I8dJLL61YsWLNmjXLli3z+XzWyjErAOlBQkKWefLJJ999990VK1a8//77Wsns2bOFEDt27AiFQlu3bh07duz8+fO1wYSp0HSVQZrl5eW1tLTs3bv3wgsvFEJ89tlnP/zhDz///PMvvvjCWnnGjBnWOlqC+eUvf9nd3f30009b3+Xz+Xbu3Pnhhx/+4he/mDdvnjYAOnbsmBBi8eLFX/va1xobG6+++mpjMG6327YCkH5c9o0so51HeeGFF5YO+va3v/3UU0+9/vrrN9xww/Hjx1999dXzzjvv8ssvtxZmNvIf/ehHBw8evOGGG06dOqXFVlRUNHPmTK1FJrNmzbLWufbaa1euXKm1fc6cOdZ31dXVLV++/J133tmwYYN2GkkIsWzZsilTpsyfP//OO++8/fbbTcHs37/ftgKQfoqqqpmOAUgOv99vPQRnW5gp2u9Y9aNtfr8/Pz8/ypFA2zq216nHZF0O1mDkWVAYmUhIAAApcMgOACAFEhIAQAokJACAFEhIAAAp5PLvkFwuV6ZDwMhy9GizKhRFqEKISy5h84N0mpubMx1CNLmckIRh6btcLsnXRHLR3oxQlHOvUxePJI1NDxqbdR8xHNIdsgsGg/39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sGFDf3//7t2729rarrrqqvS0y9a+ffvWrFnz1Vdfffzxx1u3bp09e/YFF1xgrTN16lRTobHhWdTqKCs3injWsrGx2rusJem3Y8eOf/mXf1m6dOmQ3pXAVm2dTL9U77mRSjIibXtupJLsla0XNZw8efKzzz7TfoH0+9//ftKkSaNGjTLV2bp16/LlyxsbG7XJ3/zmNwsXLly1apUQoqKi4q//+q+1c04/+clPrrvuOq3OlVde+eKLL+qv165dm57mWPX29m7atOn111+fOHGiEKKxsfHee+994403uru7a2trg8Hg7NmzOzo6nnjiiTNnzsyePfvP/uzP9PcaG55drda0trb+/ve/HzVq1LXXXjt69OhAIPCHP/whGAx+8sknTqfzsssuM1aOZy0bG6uxlqTfv//7v1955ZWHDh2aOXOmsY2lpaXf/va3tZLRo0c3NzfffPPN+rsS2KqtkxmUoj1XI0Mz07nnamRodbJk3yE7TUtLywsvvKC93r17t+3Q+NFHHx0/frw+6ff79cmioqKmpiYhxL59+yZNmmT8ZhEKhfr7+59//vmKiooUNiCW/fv3X3XVVdo2LYQoKSkJhUJCiMrKyt7eXkVRenp6vvrqq7y8vFGjRpmu5jA2PLtardm/f//YsWOPHz/+yCOPCCFOnz79t3/7t4cOHfr6179+3333mW7GEXMtWxtrLUm/Q4cOlZSUVFRU7N69Wwy28ciRI2PGjFm7dm1ra+vp06d//OMfv/baa6b+OoGtWob26lK350rSzDTvuZK0OlmydYSUgFmzZq1du9bhcHzyySfHjx/Xbuvw8ssv/+pXv3r77bf1agcOHHj55ZdPnTq1cuXKzAUr/H7/6NGjjSUXXnjhK6+8MmfOnCVLlmglF1988c6dO//yL/8yynyyq9WaO+64449//OOoUaM++ugjreSb3/ym9lWxubk5+q/NTO294IILHn/8cWNjbZuffrt3777ttttmzpz50EMPaecMvvnNb95xxx1CiNOnT7/xxht33nmnEOLBBx+MPp+Y61eS9g5HPNuwPM1M554rT6uTJRcSUiAQiKfa1KlTn3nmmSNHjixZsuS3v/3t9OnTN23adPnll7/55ptHjhzp7e2dPn36jBkzPB6Px+MJhUKLFi265pprCgoKUh2/rXHjxnV3dxtLjh079r3vfW+oV0VmV6uFEC0tLT/+8Y9vvPFG42F3/QYc48ePDwaDUd5uau9rr71mauyvf/1ra/NT2ySL3t7e2tra//3f/xVCOByOPXv2LFy4cNKkSdpfzz///K6uLiHERRddFHNWMdfv7373u4y3N5Ik7rkyrFZNOvdceVqdLNl6yG7ixImnT5/WXp84cSLOdxUWFl5//fUdHR2TJ092OBy33nrr9OnTCwoK8vLy8vPzCwoKtMG1JrMXxF999dVHjhxpbW3VJv/jP/7j4osvPv/88/fv36/XycvL6+npiTmrLGq1EGL37t1er3fVqlWmc0XxM7b3O9/5jqmx1uYnN/54vPnmm8uWLXv66aeffvrpLVu2aEftDh8+rP21qanJ7XbHP7fo67eioiLj7TVK0Z4rw2rVpHPPlafVyZKtIySXyxUMBlevXp2fn3/++efH+a7169f7/f7u7u7HHntMCDF79mz9T729vZdddtm2bdv2798/adKktra25cuXZ3AF5+XlPfnkk/fee29xcbHf7w8Gg4899tjEiRPfe++9lStXjhs3bvHixdo1SOvWrVu5cqV+h1mrLGq1EKKiouLv//7vf/vb344bNy4/P5Ht09he/VC+GGyssaa1JD1ee+21p556Snv953/+52PGjAmFQoWFhatXrx41alRHR8e2bdvivwI++vqdN2+ecTIj7TVK0Z5rrJzZZqZzzzVWlmHlDl+W/TC2paXl8ccf37p1qzYZDAYdDkf8b4/nhg6hUCgYDMrzXcMaszag0UsCgUD0aLOl1frKDYVCqqoOac0aZeNtO/7v//7vwQcf3LJly1A3aZEl7U3Dniub9Oy5OSabRkibNm36wx/+8MADD+glQ91146mfl5cn1RZgjdkUXswskhWtNq7cYUaScCaTQQLBy9/e9Oy5sknPnptjsmyEBOSkQCDw8ccfX3nllZkOBMgkEhIAQAoSHZsCAIxkJCQAgBRISAAAKZCQAABSICEBAKRAQgIASIGEBACQAgkJACAFEhIAQAokJACAFEhIAAApkJAAAFIgIQEApEBCAgBIgYQEAJACCQkAIAUSEgBACiQkAIAUSEgAACmQkAAAUiAhAQCkQEICAEiBhAQAkAIJCQAgBRISAEAKJCQAgBRISAAAKZCQAABS+H/LNsVAZdLZBQAAAABJRU5ErkJggg==" }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%\n", "figure\n", "cutoff = 1/7; % (less than weekly )\n", "T = 1/( datenum(date(2)) - datenum( date(1) ) );\n", "[B A] = butter(2, cutoff/(0.3*T), 'low');\n", "\n", "% Aplly the filt forwards and backwards, to try to prevent phase shifting\n", "fx = filtfilt(B,A,flow);\n", "\n", "\n", "tiledlayout(2,1)\n", "nexttile\n", "plot(date,fx, 'b-', 'LineWidth',3); hold on;\n", "plot(date, flow, 'r');\n", "title('Filtered Data');\n", "\n", "nexttile\n", "plot(date,fx, 'b-', 'LineWidth',3); hold on;\n", "plot(date, flow, 'r');\n", "title('Zoom in Filtered Data')\n", "xlim([date(1000) date(1500)]);" ] }, { "cell_type": "markdown", "id": "77162886-bb13-4333-b927-1fdd459b2208", "metadata": {}, "source": [ "## Spectral Analysis - Fourier Space\n", "\n", "Now, we can take out filtered data, and analyze it in Fourier (frequency) space" ] }, { "cell_type": "code", "execution_count": 110, "id": "6ace5ea1-0843-45a1-9334-b5fd91eaafe8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
dim = 1
" ], "text/plain": [ "dim = 1" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAAB3RJTUUH6QkREDoIL35HWgAAFu9JREFUeJzt3X9oVff9+PGjSZo1aoaNWNj2h6VmV4QVW+Jq5iJol5nRT1Ep7RakFt1q1DFWWQvrVgWjdPhr69ptn7KW/YCWtbAyiR+krih1waaIVeeG9q6t2xDthjjqVRKvNt7PH/f7vd98Y0ztvTHnfU4ej7/OzT2R1/Hknqfn3JPruEKhEAFA3MbHPQAARJEgARAIQQIgCIIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRCkj5HP53fu3Ll169Z///vfcc8CkGaC9DEeffTRT33qUx0dHTfffHPcswCkWXXcAwTtzTff/MIXvtDa2hr3IADp5wxpOB988MGJEyeeeOKJFStWHD16NO5xANJsTAepq6tr4NnP7t27W1tb586d++yzzxa/8tFHH335y1/+0Y9+tHnz5l//+tcxjQkwJozdIHV2dr799ttnz54tPszlcps3b3711Vf3799//Pjxt956K4qiqVOnnjt3LoqiS5cuVVVVxTkuQNqlPEinTp3q7e0tPcxms6Xl9vb2DRs2lB729PQ0NTXV19dHUbRo0aIdO3ZEUTR//vy//vWv3//+93/4wx92dHSM4uAAY07Kb2qYMmXKc88998gjj9TV1XV3d3/00UeZTKb4VGNj48A1L1y4MHHixOJyXV1dLpcrLm/durW/v9/pEcCNlvIg1dbWrlq16rnnnstkMrW1tfPnzy/jD1EjgFGQ8kt2URTV1tbOmDFj7969d9999zCrTZgwoa+vr7h88eLF0tkSAKMj/UHat29fdXX1xo0bn3/++YHvJw0ye/bsw4cP5/P5KIr27NnT3Nw8ijMCkPYgvfvuu1euXLnnnnuK1+5eeumla63Z0NCwfPnyxYsXL126tLe3d8mSJaM5JwDjCoVC3DME5MqVK4VCwZtGAKMvwUHatm3b73//+9LD5ubmn/zkJzHOA0AlEhykgX7xi1/U1NQ88sgjcQ8CQJnSEKT+/v6vfOUrXV1dkyZNGvj10q8cAVA08PMBQpOG30N6+eWXv/rVrw6qUVHIf/Vly2QytitZ0rpptitxAv9nehrusnvxxReXLVsW9xQAVCTxQXrttdc+//nPf/azn417EAAqkvgg/fKXv/zmN78Z9xQAVCrZQTp48OBNN910xx13xD3IqErr1e20bleU3k2zXYysZAepqanp5ZdfjnsKAEZAsoMEQGoIEgBBECQAgiBIAARBkAAIgiABEARBAiAIggRAEAQJgCAIEgBBECQAgiBIAARBkAAIQpqD9Lf/+u+4RwDgeqU5SAAkiCABEARBAiAIggRAEAQJgCAIEgBBECQAgiBIAARBkAAIgiABEARBAiAIyQ5Sb2/vxo0bFyxY8LWvfe3o0aNxjwNA+arjHqAiTzzxxJw5c9atWxf3IABUKsFnSGfOnDlx4kR7e3vcgwAwAhJ8hnTkyJHPfe5za9euPXLkyMyZMzs7OxsaGgatk8lkigvZbHbUBwSIX+kwGL4EB+nSpUv/+Mc/Xnnllfr6+l/96lfPPPPMhg0bBq2jQ8AYN/AwGHicEnzJ7qabbpo1a1Z9fX0URTNnzvzggw/ingiA8iU4SHfdddeRI0d6e3ujKPr73/9+6623xj0RAOVL8CW7hoaG7373u+3t7Z/5zGc++OCD559/Pu6JAChfgoMURVFbW1tbW1vcUwAwAhJ8yQ6ANBEkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRAkAIJQHfcAFbnvvvvOnDlTXN67d29dXV288wBQtmQH6fTp02+//XbcUwAwApIdpJqamuFXyGQyxYVsNnvjxwEITukwGL4EBymfz/f3969cubKqqmrWrFkdHR1Xr6NDwBg38DAYeJwSHKTa2to333yzpqYml8s9+uijNTU1K1asiHsoAMqU7Lvsipfs6uvrH3zwwePHj8c9DgDlS3CQ+vr6SssHDx6cPn16jMMAUKEEX7J75513HnvssUwmc/r06dtuu+3xxx+PeyIAypfgIN1555179uyJewoARkaCL9kBkCaCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAhpCNJrr722YMGCuKcAoCKJD9KZM2d+97vfnT9/Pu5BAKhIddwDVOoHP/jBk08++fWvf33IZzOZTHEhm82O4lAAoSgdBsOX7CC9+OKLzc3NjY2N11pBh4AxbuBhMPA4JfiS3fvvv79v374VK1bEPQgAIyDBQfrpT3/a29u7du3atWvX5vP5tWvX9vf3xz0UAGVK8CW7VatWffjhh8XlPXv2PPDAA+PGjYt3JADKluAgzZw5s7RcXV39pS99KcZhAKhQgi/ZDXTo0KG4RwCgIikJEgBJJ0gABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCkOAgnTx5cu3atS0tLXPnzu3s7Ix7HAAqkuAgTZw4cfny5d3d3fv37z9x4sTrr78e90QAlK867gHKN3ny5MmTJ5eW+/v7450HgEokOEhRFJ06daqnp+fgwYNTp05ta2u7eoVMJlNcyGazozsaQBBKh8HwJTtI1dXVN9988/Tp03ft2pXNZq/+e9chYIwbeBgMPE7JDtKtt9567733RlE0ZcqUF154YevWrXFPBECZEnxTw+XLl0vL77333tSpU2McBoAKJfgM6Y033ti+ffvtt99+5syZhoaGp556Ku6JAChfgoPU2tra2toa9xQAjIwEX7IDIE0ECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgJDhI58+f37RpU0tLS3Nz87Zt2+IeB4CKJDhIhUJh9uzZ3d3d+/fvP3DgQHd3d9wTAVC+6rgHKF99ff3ChQujKBo/fvy0adNyudzV62QymeJCNpsd1eEAwlA6DIYvwUEqyeVyhw8fXrdu3dVP6RAwxg08DAYepwRfsivK5/Nr1qxZv379pEmT4p4FgPIlO0j5fL6jo+Ohhx5qaWmJexYAKpLgS3aXL19evXr10qVLW1tb454FgEolOEhdXV0HDhw4duxY8d2jefPmbdmyJe6hAChTgoN0//3333///XFPAcDISPZ7SACkhiABEARBAiAIggRAEAQJgCAIEgBBECQAgiBIAARBkAAIgiABEARBAiAIggRAEAQJgCAIEgBBECQAgiBIAARBkAAIgiABEARBAiAIggRAEAQJgCCkPEjjvrc37hEAuC4pDxIASSFIAARBkAAIQuKD1NXV1draGvcUAFSqOu4BKtLZ2dnf33/27Nm4BwGgUskOUnt7e2Nj486dO4dZJ5PJRFGUzWZHayiAgBSPgYmQ7CA1NjZ+7DpSBIxlA4+Bgccp8e8hAZAOggRAEAQJgCAIEgBBSEOQDh06FPcIAFQqDUECIAUECYAgpD9I/gcKgERIf5AASARBAiAIggRAEAQJgCAIEgBBECQAgiBIAARBkAAIgiABEARBAiAIggRAEMZKkAZ+op1PtwMI0JgI0rUKpEwA4RgTQQIgfGMoSM6HAEI2hoI00Ljv7R3UJ7kCiNcYDVKJDgEEojruAUbVkPm5niaN+97ewvYFN2AiAP6PsX6GNIxiqIa5uOfsCmAECdL/M/wbS6U+Xb2mMgFUTpAGK8bmk17cG/K0SagArp8gVWTIU6VPmrRBMRs+aR8bORWEYJXx+r3WdZrr+dMSZ1yhUIh7hvLt3r1727Ztvb293/jGN77zne8MejZZe6uwfcHAgYv3UJS+UrqlYtBGlb5r0ApX34LhvgwYNUO+3K71Ur36RT1wheiqo8Hw3zW8TCaTzWaveztGW4KDlMvlFi9evGPHjvr6+jVr1ixbtmzOnDkDV0hWkOJS+lkv/oiLFgxv0IslkONMOoKU4Nu+e3p6mpqa6uvroyhatGjRjh07BgWJ6zHMBcMQlP0vQRLqWtcAghLmiyUFEhykCxcuTJw4sbhcV1eXy+XinYcboYx30UgTu7tymUwm7hGuV4KDxEgZ8vrDkFfwXNMj9a71Y3/1Ozphnr1dbeA1usDjlOAgTZgwoa+vr7h88eLF0tnSmHI9V7GvJyGldQaufPU3qhGpd60f+0FfH/KLV7v6tTlk2yqYN1USHKTZs2c//fTT+Xy+trZ2z549zc3NcU90TQPvhRv476+rvzjwPpzrP0HRCQjT9bxgP/ZlPszxIUEnatcjwXfZRVH0yiuv/OY3v7nlllsaGhqeeeaZQc+Ozk4a8odjRArh+hgQjeihIPC77JIdpOGNZpAAwhd4kBJ8yW5kDfl7qdFQv5pa+roUAYwgQfr/DPl+5pBnWmoEMLLG1mfZDX//zLUaU9i+QH4AbrSxFaSiIW9xBiBeYzFIkRQBhGeMBgmA0IyhIA3/y2gAxGusBGmY/CgTQAjGSpBK5AcgTGMuSACESZAACMKYCJLLdADhGxNBAiB8ggRAENIfJNfrABIh/UECIBEECYAgCBIAQRAkAIIgSAAEQZAACIIgARAEQQIgCIIEQBAECYAgJD5IXV1dra2tcU8BQKWq4x6gIp2dnf39/WfPno17EAAqlewgtbe3NzY27ty5M+5BAKhUsoPU2Nj4setkMpkoirLZ7I0fByA4xWNgIiQsSEePHj158mQURW1tbVVVVdfzLVIEjGUDj4GBxylhQbp06VJfX1/cUwAw8hIWpKampqamprinAGDkJf62bwDSIQ1BOnToUNwjAFCpNAQJgBQQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCkOAgnT9/ftOmTS0tLc3Nzdu2bYt7HAAqkuAgFQqF2bNnd3d379+//8CBA93d3XFPBED5quMeoHz19fULFy6Momj8+PHTpk3L5XKDVvj8/6z+23/9dyaTiaIom83GMCJA3IrHwERIcJBKcrnc4cOH161bN+SzUgSMZQOPgYHHKWFBOnr06MmTJ6Moamtrq6qqiqIon8+vWbNm/fr1kyZNins6AMqXsCBdunSpr6+v9DCfz3d0dDz00EMtLS0xTgVA5RIWpKampqampuLy5cuXV69evXTp0tbW1ninAqByCQvSQF1dXQcOHDh27Fjx3aN58+Zt2bJl0DqF7QviGA2AT2xcoVCIe4YbJZPJuKMBoCTwo2KCfw8JgDQRJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAgSAEEQJACCIEgABEGQAAiCIAEQBEECIAiCBEAQBAmAIAhS8mQymbhHuCHSul1RejfNdjGyEhykkydPrl27tqWlZe7cuZ2dnXGPA0BFEhykiRMnLl++vLu7e//+/SdOnHj99dfjngiA8lXHPUD5Jk+ePHny5NJyf39/vPMAUIlxhUIh7hnKd+rUqZ6enoMHD376059+4oknBj3rQjDAINlsNu4RrilhZ0hHjx49efJkFEVtbW1VVVXV1dU333zz9OnTd+3alc1mBxUo5L93AAZJWJAuXbrU19dXenjrrbfee++9URRNmTLlhRde2Lp1a3yjAVCRhAWpqampqampuHz58uWampri8nvvvTd16tT45gKgUgkL0kBvvPHG9u3bb7/99jNnzjQ0NDz11FNxTwRA+ZJ9UwMAqZHg30MCIE0ECYAgCBIAQUhnkHbv3t3a2jp37txnn3027lkqMsyG3HfffXP+r97e3ljGG1ldXV2tra1xTzECrrUhqdll58+f37RpU0tLS3Nz87Zt2+IepyLDb0tqdlliPvmzkDrnzp2bP3/+uXPnCoXC6tWre3p64p6oTMNvyF133RXTXDfEhg0b1q9ff+edd8Y9SKWG2ZDU7LJz58699tprhUKhv7//gQce+NOf/hT3ROUbfltSs8v+85///PnPfy4uP/zww3/84x/jnedaUniG1NPT09TUVF9fH0XRokWLduzYEfdEZRp+Q0q/g5UO7e3tGzZsiHuKETDMhqRml9XX1y9cuDCKovHjx0+bNi2Xy8U9UfmG35bU7LLJkyffcccdpeVgP/kzwb+HdC0XLlyYOHFicbmuri65r5ZhNiSfz/f3969cubKqqmrWrFkdHR0xzThiGhsb4x5hZFxrQ9K3y6IoyuVyhw8fXrduXdyDjICrtyVlu6z0yZ9Tp05ta2uLe5yhpTBIY0Ftbe2bb75ZU1OTy+UeffTRmpqaFStWxD0Uw0nfLsvn82vWrFm/fv2kSZPinqVSQ25LynbZ8J/8GYgUXrKbMGFC6fPuLl68WDrJSJzhN6R4MaG+vv7BBx88fvx4DPPxCaVpl+Xz+Y6OjoceeqilpSXuWSo1zLakaZcVP/nzW9/61rJly1544YW4xxlaCoM0e/bsw4cP5/P5KIr27NnT3Nwc90RlGnJD9u3bF0XRwE+YPXjw4PTp0+Mako+Vvl12+fLl1atXL126tPjuS6INuS2p3GWl5ZA/+TOFl+waGhqWL1++ePHiW265paGhYcmSJXFPVKarN+T9999fuXLlkSNH3nnnncceeyyTyZw+ffq22257/PHH4x6WoaVyl3V1dR04cODYsWPFd1zmzZu3ZcuWuIcq09Xb0tHRkb5dlpRP/kztZ9lduXKlUChUVVXFPUilBm3IwM84v3z5clVV1fjxKTzNTRO7LHHSusvC35bUBgmAZAk3lQCMKYIEQBAECYAgCBIAQRAkAIIgSAAEQZAACIIgAaTcH/7wh7hHuC6CBJBmv/3tb3/2s5/FPcV1ESSA1Hr//fdPnjw5Y8aMuAe5LoIEkE5Xrlz58Y9/nKCPhRUkgETq6upqbW0tPdy9e3dra+vcuXOfffbZ4leefvrpL37xi3/5y18+/PDDQ4cOxTTmJyBIAMnT2dn59ttvnz17tvgwl8tt3rz51Vdf3b9///Hjx996660oihoaGv75z3/u2rXrX//6165du2Kd97qk8P9DAkiHU6dOTZ48ua6urvhw4H893t7e3tjYuHPnzuLDnp6epqam+vr6KIoWLVq0Y8eOOXPmPPzww8Vnv/3tbz/55JOjPv4n5gwJIFBTpkx5/vnne3t7oyjq7u4+ffp06anGxsaBa164cGHixInF5bq6ulwuN/DZn//85zd+2BHgDAkgULW1tatWrXruuecymUxtbe38+fPjnujGcoYEEK7a2toZM2bs3bv37rvvHma1CRMm9PX1FZcvXrxYOltKFkECCNe+ffuqq6s3btxYunY3pNmzZx8+fDifz0dRtGfPnubm5lGcccQIEkCg3n333StXrtxzzz3Fa3cvvfTStdZsaGhYvnz54sWLly5d2tvbu2TJktGcc6SMKxQKcc8AwAi4cuVKoVCoqqqKe5AyCRIAQXDJDoAgCBIAQRAkAIIgSAAEQZAACIIgARCE/wVSbFeBpVj7QAAAAABJRU5ErkJggg==" }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "Warning: Imaginary parts of complex X and/or Y arguments ignored." ] } ], "source": [ "% Make date back into a number\n", "d = datenum(date);\n", "d = d - d(1) + 1;\n", "\n", "L=length(date);\n", "n=2^nextpow2(L);\n", "dim=1\n", "\n", "% Take the Fast-Fourier-Transform to put in phase space\n", "orig=fft(fx,n,dim);\n", "\n", "figure\n", "plot(d, orig(1:length(d)));" ] }, { "cell_type": "code", "execution_count": 111, "id": "fc022240-97a9-4438-9ffa-843ae3db2884", "metadata": {}, "outputs": [ { "data": { "image/png": "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yg6AASOQAAhBIAEQgkACIITBDKS87rt6+PDhQ1969OhRlpVcv359fn6+8euW6+1rMZsKaG6Kvhbw4MGD9957b25ubmZm5oMPPmixuj7VsGUBWTbC3//+9/Pnz8/Nzc3Ozr777rst1tW/d2HLGjLeE+o+/PDD73znOy3WlcGBubGGjBuhzY4o4v2pawPniy+++Pa3v/3FF1/UarUzZ84sLS1ltupXX301l0ouX7586dKlb37zmy3W29diNhVQa2qKfhfwxRdffPjhh7VabX19/fjx43/+858zboTmAmrZNsK///3vv/zlL/Wfv//973/00UfZ7wbNNdQy3xNqtdo///nPt956a2pqart1ZXBgbqyhlnkjtNMR5dhPtjCAI6Qc77s6NjaWSyUnT568fPly6/X2tZhNBaSmpuh3AaVS6fXXX08p7dq166WXXqpUKhk3QnMBKdtGeOGFF77xjW80fl5fX89+N2iuIWW+J6SUfvzjH//kJz+prz37RmiuIWXeCO10RDHvT13UL8a20OZ9V3uuWq2ur6+fPn16dHT04MGDCwsLmVXy8ssvb/x1y/X2tZhNBTQ3Rb8LaKhUKsvLyxcvXvzoo48yboRNBWTfCP/4xz+Wlpbu37//4osvfve737127Vr2LbCphuwb4Xe/+93MzExjh8z+WGiuIeNGaLMjyqufbG0AAykve/bsuXPnztjYWKVSOXfu3NjY2PPPP593Ufloboq33347g/VWq9WzZ89eunTpueeey2B1zywg40bYvXv3V77ylQMHDvzhD3/I687Cm2ool8tZNsLf/va3P/3pT7/+9a/7t4oOasj4cCh0RzSAp+xyvO9qfaRcKpVOnDixsrKSVyVbrjfjYjY1RQYFVKvVhYWFN998c25ubrvV9bWGTQWkzBvhq1/96ve+970f/OAHb7311m9+85tcdoNNNaRsG+GXv/zlo0ePzp8/f/78+Wq1ev78+VdffTXjRmiuYX19PeM9oZ2OKOb9qQcwkPK672rj3U0p3b9//8CBA3lVsuV6syymuSn6XcDTp0/PnDnzxhtv1C/kbLe6/tXQXEDGjfD06dPGz3/9619ffPHF7HeD5hoyboQf/vCHP/rRj44fP378+PHR0dHjx49PTExk3AjNNWTcCG12RDHvTz2Ap+zyuu/qp59+euHChXK5vLa2tn///nfeeWfPnj25VLJlC2TZLM1N0e8Crl+/fu/evU8++eTixYsppddee+3999/PshGaCzh58mSWjfDHP/7xF7/4xde+9rV//etfk5OTP/vZz1544YWMd4PmGjLeE77+9a83ft69e/e3vvWtlFLGjdBcw/LycpaN0GZHFPP+1AN7c9X//Oc/tVptdHQ04/U+ffp0dHR0167/DT3zqmTL9WZZTHNTZFzAdqsb4EZoc/fraws015D7npD7bpCGck/owMAGEgDFMoDXkAAoIoEEQAgCCYAQBBIAIQgkAEIQSACEIJAACEEgARCCQAIgBIEEQAgCCYAQBBIAIQgkAEIQSACEIJAACEEgARCCQAIgBIEEQAgCCYAQBBIAIQgkAEIQSACEIJAACEEgARCCQAIgBIEEQAj/B1+pfPAPOaCbAAAAAElFTkSuQmCC" }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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+c9/nj59etSoUWlpaWPGjNGoh7+n2oda33Hbs2cPfYrdgAEDEhMTCSEvv/wyba5pV2L4/NICdFZfb2/vqqqqqqoqe3t7nUePlvf29ubfV4bmgKGEJBaLk5OTt23blpiY6OHhkZOTY+6He4JpunTpEh0d/e9//5ubm8vOzo5fgI6Lo5cbDn8WNY0Z1a5evbp06dLXX389Njb24cOH+rZ7/vz5K1eu7Nixg7708PAICQmhy/yn/tCFZ599VruGdevWcbPJKRQKjQg1Krx165bh2mpqavR9lr+P/J3lH6gWLVoMGzYsLS3t+PHj2p11lPakZ46Ojr169Tp+/PjKlSu5laNGjSKElJSUXL161cnJSbsebk/1HWrtPVWpVMePH6eDDjp16nT48OFDhw7Fx8dPnjzZz89PuxID51fnfql5XzjReSpVKpXGzxXYPIYGNcTExFy6dInrH587d66w8YABc+bMuXPnDv3btk+fPllZWfTqfP78+Z49ezZ0Bs9ff/114MCBI0aMcHFxuXnzps4yjx8/fvfddz/66CP6slevXnfv3vXx8QkICAgICKB3Yp5//vns7Gz6LNRTp041KAbtCnXW5uDg8OTJE5px6dNu9AWjTSqVZmVlVVZWcmumTZt2+PDhrKwsrrmpoW/fvtnZ2fw1p06dsre3f+edd77++mt+VadOnfrb3/5WUlLCPRROJ52HWueenjhxYtiwYVxGFIlE48aN+/e//52ZmWnM+dJWVVVFWzz5+flisZj7Tdd39HJzcz09PY2sHGwDQy2k69evp6enR0ZG0pdOTk5VVVW04Q8MWrt27fjx4wkhnTp1io+P/8c//tGpU6eioiITHvHy97///auvvlq4cGFlZWWfPn10lklMTCwvL1++fDkhxNfXd/78+XFxcRERET179iwsLHzjjTf8/f0lEsmECRMmTpzYtWvXLl26NCiGbt26aVfI1daxY0dazMHBYdKkSRMmTOjatWuHDh3on/Danx0wYID2Jrp37z5jxoxJkyZ5eno+++yza9as6d27d2FhYWhoqL4U3rt3b/oUKyovL0+lUtHxEa+99trWrVu5v9u2b9++adOm7Ozsw4cPa3fZcXQeap3H7ccff+QqP3Xq1MaNGzt27Pj777/HxcV169at3vOlrWXLlp9++qlarb5+/fq7777Lrdd55AkhV65cMdNTfYFdQt/E+j/9+/dXq9XTpk0rLCxU/3X/HKyFUqmsra1tTA2mfby2tpbeZudHUldX15gw+BUqlUqlUllRUcEfIlFXV6dzE9rBaNM4UBEREbdv3zZQPjo6+pdffqk3bC4eY/Zd56E2fNy0z2+Dzhc3OKWurk7fIeIfvbq6ujFjxugc6AE2jKEW0urVq319fauqqmJiYm7dukX/FgZr0fgnHpn2rCDtTzVtGDpr0/c8G2N2gTtQOTk5mZmZLi4u3bt3N1B+1apVqamp9T7ilgvJmGft6IzT8HHTPr+mnS8D4fErzMjImD9/fmOeiAbWiKGENGrUqPPnzxcUFBBCOnXqhJm/gR1isbjeLzY11J49exwdHT/55BPDxbp16/bqq6827aYtTyQShYWFGV9e3001sG0MTa566tQpPz8/OvYUAACaG4ZG2R04cGDMmDH+/v6xsbH5+flChwMAABbFUAuJqqysLCwsXL58+c8///zrr78KHQ4AAFgIQ/eQCCH5+fnvv//+pUuX2rdv/+233wodDgAAWA5DCal///6+vr7Lly83POgIAABsEkP3kJKTk5VK5eTJk6dOnXrnzh2hwwEAAIti7h4SIaSwsHDDhg0HDhzAPSQAgOaDoS67oqKi5OTkvXv3Pnz4sEuXLriHBADQrDDUQgoLC4uIiAgLC3Nzc2vkl+0BAMDqMJSQyP9v7w5tAAahIAy/sAJMwQhICJOxE0vgGQDLAAhMBUnDBC1p/88999wlZ04kxthaU0oZY3LOa4oGAPAHB1V2IYSUknNORGqt3vtSyttPAQAeclAzNudcaSQi1lqt9T6ABgD4toMCaYyxn733e5AUAPB5F7D30lz7moc4AAAAAElFTkSuQmCC" }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" }, { "name": "stderr", "output_type": "stream", "text": [ "Warning: Imaginary parts of complex X and/or Y arguments ignored." ] } ], "source": [ "P2 = abs(orig / L);\n", "\n", "P1 = P2(1:n/2 + 1);\n", "P1(2:end-1) = 2*P1(2:end-1);\n", "d = datenum(date);\n", "d = d - d(1) + 1;\n", "figure\n", "plot(d(1:500), P1(1:500), 'b-');\n", "\n", "\n", "figure\n", "tiledlayout(3,1)\n", "nexttile\n", "% Original Transformed Data\n", "plot(d/86400, orig(1:length(d))); title('Original Transform');\n", "nexttile\n", "% All Positive\n", "plot(d,P2(1:length(d))); title('Positive Transform');\n", "nexttile\n", "% MATLAB has built-in functions or other stuff\n", "pwelch(flow)" ] }, { "cell_type": "code", "execution_count": 112, "id": "2c7acb18-129d-4f66-891d-c7c3e862d835", "metadata": {}, "outputs": [], "source": [ "% MATLAB - Not necessary to run, also SUPER SLOW!!!!!!\n", "%raw_data = importdata(filename);\n", "%[nr nc] = size(raw_data);\n", "%date = zeros(nr,1);\n", "%Flow = zeros(nr,1);\n", "\n", "% Scan the rows for a string, string, string, float, and a string\n", "\n", "%for ii = 1:nr\n", " % row = textscan( raw_data{ii}, '%s%s%s%f%s');\n", " % agency = row{1};\n", " % % Check if the first string says USGS, we know we in the data!\n", "% if strcmp(agency, 'USGS')\n", "% date(ii) = datenum(row{3});\n", "% flow(ii) = row{4};\n", "% end\n", "%end\n", "\n", "%[nr nc] = size(f);\n", "%date = zeros( nr, 1);\n", "%Q = zeros( nr, 1);\n", "\n", "% Import the date and time and plot\n", "\n", "%date = f{:,3} ;\n", "%flow = f{:,4};\n", "\n", "%figure\n", "%plot(date, flow)\n", "%xtickformat('dd-MMM-yyyy');" ] }, { "cell_type": "markdown", "id": "bfbe07af-7e11-4be2-9def-94726e4df699", "metadata": {}, "source": [ "# Python\n", "\n", "# Raw Data\n", "Lets say we are given the task of analyzing the hsitorical data fro mthe water gauge station at the [Prado Dam in Los Angeles](https://waterdata.usgs.gov/monitoring-location/USGS-11074000/#dataTypeId=continuous-00065-0&period=P7D).\n", "\n", "We want to download the [data](data/PradoDam.txt), clean it, and do some spectral analysis on it to see if there is anything interesting.\n", "\n" ] }, { "cell_type": "markdown", "id": "4812aee1-75bd-471d-9cbe-01a881ae97e1", "metadata": {}, "source": [ "## Reading in the data\n", "\n", "If we do a quick check of the file, we note there is a giant header, then some columns of data.\n", "```\n", "# ---------------------------------- WARNING ----------------------------------------\n", "# Some of the data that you have obtained from this U.S. Geological Survey database\n", "# may not have received Director's approval. Any such data values are qualified\n", "# as provisional and are subject to revision. Provisional data are released on the\n", "# condition that neither the USGS nor the United States Government may be held liable\n", "# for any damages resulting from its use.\n", "#\n", "# Additional info: https://help.waterdata.usgs.gov/policies/provisional-data-statement\n", "#\n", "# File-format description: https://help.waterdata.usgs.gov/faq/about-tab-delimited-output\n", "# Automated-retrieval info: https://help.waterdata.usgs.gov/faq/automated-retrievals\n", "#\n", "# Contact: gs-w_support_nwisweb@usgs.gov\n", "# retrieved: 2020-04-29 18:30:02 EDT (caww01)\n", "#\n", "# Data for the following 1 site(s) are contained in this file\n", "# USGS 11074000 SANTA ANA R BL PRADO DAM CA\n", "# -----------------------------------------------------------------------------------\n", "#\n", "# Data provided for site 11074000\n", "# TS parameter statistic Description\n", "# 8183 00060 00003 Discharge, cubic feet per second (Mean)\n", "#\n", "# Data-value qualification codes included in this output:\n", "# A Approved for publication -- Processing and review completed.\n", "# P Provisional data subject to revision.\n", "# e Value has been estimated.\n", "# \n", "agency_cd\tsite_no\tdatetime\t8183_00060_00003\t8183_00060_00003_cd\n", "5s\t15s\t20d\t14n\t10s\n", "USGS\t11074000\t1940-09-30\t51.0\tA\n", "USGS\t11074000\t1940-10-01\t47.0\tA\n", "USGS\t11074000\t1940-10-02\t47.0\tA\n", "USGS\t11074000\t1940-10-03\t47.0\tA\n", "```\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "a436a73c-82e4-4a58-8733-d40df2a1720b", "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Python\n", "import os\n", "import pandas as pd\n", "import numpy as np\n", "import scipy.io\n", "from scipy.interpolate import PchipInterpolator\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 20, "id": "fe54ec2e-1a18-4fbc-acd0-66869a1686e8", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
agency_cdsite_nodatetime8183_00060_000038183_00060_00003_cd
0USGS110740001940-09-3051.0A
1USGS110740001940-10-0147.0A
2USGS110740001940-10-0247.0A
3USGS110740001940-10-0347.0A
4USGS110740001940-10-0455.0A
..................
29061USGS110740002020-04-24140P
29062USGS110740002020-04-25124P
29063USGS110740002020-04-26120P
29064USGS110740002020-04-27137P
29065USGS110740002020-04-28156P
\n", "

29066 rows × 5 columns

\n", "
" ], "text/plain": [ "0 agency_cd site_no datetime 8183_00060_00003 8183_00060_00003_cd\n", "0 USGS 11074000 1940-09-30 51.0 A\n", "1 USGS 11074000 1940-10-01 47.0 A\n", "2 USGS 11074000 1940-10-02 47.0 A\n", "3 USGS 11074000 1940-10-03 47.0 A\n", "4 USGS 11074000 1940-10-04 55.0 A\n", "... ... ... ... ... ...\n", "29061 USGS 11074000 2020-04-24 140 P\n", "29062 USGS 11074000 2020-04-25 124 P\n", "29063 USGS 11074000 2020-04-26 120 P\n", "29064 USGS 11074000 2020-04-27 137 P\n", "29065 USGS 11074000 2020-04-28 156 P\n", "\n", "[29066 rows x 5 columns]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# === Load the data (equivalent to readtable) ===\n", "filename = \"data/PradoDam.txt\"\n", "path, full_filename = os.path.split(filename)\n", "name, ext = os.path.splitext(full_filename)\n", "\n", "if ext.lower() != \".txt\":\n", " print(\"Wrong file extension given.\")\n", " raise SystemExit\n", "\n", "# Read file, skipping lines starting with '#'\n", "raw = pd.read_csv(\n", " filename,\n", " comment=\"#\", # ignore all lines starting with '#'\n", " sep=\"\\t\", # tab-delimited\n", " header=None, # first non-comment line is header\n", " dtype=str # read as strings first (safe)\n", ")\n", "\n", "# First row becomes header, drop second row (format specifiers)\n", "raw.columns = raw.iloc[0] # set column names from first row\n", "f = raw.drop(index=0).drop(index=1) # remove first and second row\n", "f = f.reset_index(drop=True) # reindex after dropping\n", "f" ] }, { "cell_type": "markdown", "id": "b5adf144-75bd-4402-ab80-a9dfe9a487d8", "metadata": {}, "source": [ "WE can examine the data by viewing the ```f``` variable, and note it is in columns already. we are interested in column 3 and 4, the date and measurements." ] }, { "cell_type": "code", "execution_count": 17, "id": "58260f2e-126c-4e41-bf43-1e1b018c4e62", "metadata": {}, "outputs": [], "source": [ "# Python\n", "f['datetime'] = pd.to_datetime(f['datetime'])\n", "f['8183_00060_00003'] = pd.to_numeric(f['8183_00060_00003'], errors='coerce')" ] }, { "cell_type": "code", "execution_count": 18, "id": "46a59421-d662-4e59-a832-7b3bd5bae27e", "metadata": {}, "outputs": [], "source": [ "# Extract relevant data\n", "dates = f['datetime']\n", "flow = f['8183_00060_00003'].to_numpy()" ] }, { "cell_type": "code", "execution_count": 19, "id": "c3e94a79-326b-47ce-84cd-9f86141acbc8", "metadata": {}, "outputs": [], "source": [ "# Python\n", "# === Monthly Averaging ===\n", "months = dates.dt.month\n", "totals = []\n", "averages = []\n", "for ii in range(1, 13):\n", " idx = np.where(months == ii)[0]\n", " if len(idx) > 0:\n", " totals.append(np.sum(flow[idx]))\n", " averages.append(np.mean(flow[idx]))\n", " else:\n", " totals.append(np.nan)\n", " averages.append(np.nan)\n", "\n", "totals = np.array(totals)\n", "averages = np.array(averages)\n" ] }, { "cell_type": "code", "execution_count": 28, "id": "2de164e8-6866-4ed0-a953-88a00eed27dd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1940-09-30\n", "1 1940-10-01\n", "2 1940-10-02\n", "3 1940-10-03\n", "4 1940-10-04\n", " ... \n", "29061 2020-04-24\n", "29062 2020-04-25\n", "29063 2020-04-26\n", "29064 2020-04-27\n", "29065 2020-04-28\n", "Name: datetime, Length: 29066, dtype: datetime64[ns]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dates" ] }, { "cell_type": "markdown", "id": "09526e9d-4e11-4dcb-9771-7fc29db8fb64", "metadata": {}, "source": [ "## Removing NaNs\n", "If you scrolled through the data, you noticed there were some missing values, dates, etc. WE need to remove those from our data set. How can we find them efficiently?" ] }, { "cell_type": "code", "execution_count": 23, "id": "e261e7b2-4b9f-4777-89c7-b743ddc3cc5b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(0)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Python \n", "# Clean NaNs\n", "nan_mask = np.isnan(flow)\n", "dates = dates[~nan_mask]\n", "flow = flow[~nan_mask]\n", "\n", "sum(np.isnan(flow))" ] }, { "cell_type": "markdown", "id": "56d68181-8104-4e94-8a4c-b9818ea74066", "metadata": {}, "source": [ "## Interpolation" ] }, { "cell_type": "code", "execution_count": 29, "id": "72c18cc6-167f-4b21-abce-310fce1ca726", "metadata": {}, "outputs": [ { "data": { "image/png": "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qFOnjmJ5SkoK2rVrp0iTmpqq8rmioiKkpaUpPu/n54eUlBSVNPK/9aWRr9dk6tSpmDhxouJvsViMgIAAhIWFwcvLy5hDJS0kEgmioqLQp08fuLq6Wjs7ZEdYdqgsWH7IVCw7ZCpHLzvjoyMBAF7eXggPD7FybhyLo5edikTegtoQZg28AwMD4efnhwMHDigCbbFYjJiYGIwZMwYAEBISgoyMDMTGxiIoKAgAcPDgQchkMgQHByvSfPnll5BIJIrCGBUVhaZNm8LHx0eR5sCBA5gwYYJi/1FRUQgJ0X5jcHd3h7u7u9pyV1dXFnoz4zklU7HsUFmw/JCpWHbIVI5edkQikUMfnzU5etmpCIy5fkYPrpadnY24uDjExcUBKB5QLS4uDklJSRCJRJgwYQK+/vpr7Ny5E5cuXcLw4cPh7++PQYMGAQCaN2+Ofv36YdSoUTh9+jROnDiBcePGYfDgwfD39wcADBkyBG5ubhg5ciTi4+OxefNmLF68WKW2evz48di7dy8WLFiAa9euYcaMGTh79izGjRtn7CERERERERERWYzRNd5nz55Fz549FX/Lg+ERI0Zg7dq1mDx5MnJycjB69GhkZGSga9eu2Lt3Lzw8PBSf2bhxI8aNG4fevXvDyckJr732GpYsWaJY7+3tjcjISIwdOxZBQUGoWbMmIiIiVOb67ty5MzZt2oRp06bhiy++QJMmTbBjxw60atXKpBNBRERERESqRBBZOwtEDsHowLtHjx4QBEHrepFIhFmzZmHWrFla01SvXh2bNm3SuZ82bdrg2LFjOtO88cYbeOONN3RnmIiIiIiIiMiKzDqPNxERERERERGpYuBNREREREREZEEMvImIiIiIiIgsiIE3ERERERERkQUx8CYiIiIiIo0EaB9UmYgMx8CbiIiIiIiIyIIYeBMRERERERFZEANvIiIiIiIiIgti4E1ERERERERkQQy8iYiIiIiIiCyIgTcRERERERGRBTHwJiIiIiIiIrIgBt5EREREREREFsTAm4iIiIiIiMiCGHgTERERERERWRADbyIiIiIiIiILYuBNREREREREZEEMvImIiIiIiIgsiIE3ERERERERkQUx8CYiIiIiIiKyIAbeRERERERERBbEwJuIiIiIiIjIghh4ExERERGRRoJg7RwQOQYG3kREREREREQWxMCbiIiIiIiIyIIYeBMRERERERFZkNkDb6lUiq+++gqBgYHw9PREo0aNMHv2bAhKHUQEQUBERATq1KkDT09PhIaG4saNGyrbSUtLw9ChQ+Hl5YVq1aph5MiRyM7OVklz8eJFdOvWDR4eHggICMC8efPMfThEREREREREZWL2wHvu3Ln46aefsGzZMly9ehVz587FvHnzsHTpUkWaefPmYcmSJVixYgViYmJQuXJl9O3bF/n5+Yo0Q4cORXx8PKKiorBr1y4cPXoUo0ePVqwXi8UICwtD/fr1ERsbi/nz52PGjBlYuXKluQ+JiIiIiIiIyGQu5t7gyZMnMXDgQPTv3x8A0KBBA/z+++84ffo0gOLa7kWLFmHatGkYOHAgAGD9+vXw9fXFjh07MHjwYFy9ehV79+7FmTNn0LFjRwDA0qVLER4eju+//x7+/v7YuHEjCgsLsXr1ari5uaFly5aIi4vDwoULVQJ0IiIiIiIyTfxDsbWzQOQQzF7j3blzZxw4cADXr18HAFy4cAHHjx/Hiy++CABITExEcnIyQkNDFZ/x9vZGcHAwoqOjAQDR0dGoVq2aIugGgNDQUDg5OSEmJkaRpnv37nBzc1Ok6du3LxISEpCenm7uwyIiIiIiIiIyidlrvKdMmQKxWIxmzZrB2dkZUqkU33zzDYYOHQoASE5OBgD4+vqqfM7X11exLjk5GbVr11bNqIsLqlevrpImMDBQbRvydT4+Pmp5KygoQEFBgeJvsbj4DZ5EIoFEIjH5mKmE/DzyfJKxWHaoLFh+yFQsO2SqilR2KsIxlqeKVHYcnTHX0OyB959//omNGzdi06ZNiubfEyZMgL+/P0aMGGHu3Rllzpw5mDlzptryyMhIVKpUyQo5clxRUVHWzgLZKZYdKguWHzIVyw6ZynHLTkmYsGfPHivmw3E5btmpOHJzcw1Oa/bAe9KkSZgyZQoGDx4MAGjdujXu3r2LOXPmYMSIEfDz8wMApKSkoE6dOorPpaSkoF27dgAAPz8/pKamqmy3qKgIaWlpis/7+fkhJSVFJY38b3ma0qZOnYqJEycq/haLxQgICEBYWBi8vLzKcNQkJ5FIEBUVhT59+sDV1dXa2SE7wrJDZcHyQ6Zi2SFTOXrZGR8dqfh3eHi4FXPieBy97FQk8hbUhjB74J2bmwsnJ9Wu487OzpDJZACAwMBA+Pn54cCBA4pAWywWIyYmBmPGjAEAhISEICMjA7GxsQgKCgIAHDx4EDKZDMHBwYo0X375JSQSiaLARkVFoWnTphqbmQOAu7s73N3d1Za7urqy0JsZzymZimWHyoLlh0zFskOmqghlx9GPz1oqQtlxdMZcP7MPrvbSSy/hm2++we7du3Hnzh1s374dCxcuxCuvvAIAEIlEmDBhAr7++mvs3LkTly5dwvDhw+Hv749BgwYBAJo3b45+/fph1KhROH36NE6cOIFx48Zh8ODB8Pf3BwAMGTIEbm5uGDlyJOLj47F582YsXrxYpUabiIiIiIiIyNrMXuO9dOlSfPXVV/jwww+RmpoKf39//O9//0NERIQizeTJk5GTk4PRo0cjIyMDXbt2xd69e+Hh4aFIs3HjRowbNw69e/eGk5MTXnvtNSxZskSx3tvbG5GRkRg7diyCgoJQs2ZNREREcCoxIiIiIiIisilmD7yrVq2KRYsWYdGiRVrTiEQizJo1C7NmzdKapnr16ti0aZPOfbVp0wbHjh0zNatEREREREREFmf2puZEREREREREVIKBNxEREREREZEFMfAmIiIiIiIisiAG3kREREREREQWxMCbiIiIiIiIyIIYeBMRERERERFZEANvIiIiIiIiIgti4E1ERERERERkQQy8iYiIiIiIiCyIgTcRERERERGRBTHwJiIiIiIiIrIgBt5EREREREREFsTAm4iIiIiIiMiCGHgTERERERERWRADbyIiIiIiIiILYuBNREREREREZEEMvImIiIiIiIgsiIE3ERERERERkQUx8CYiIiIiIiKyIAbeRERERERERBbEwJuIiIiIiIjIghh4ExEREfIlUiyMTMDF+xnWzgoREZHDYeBNRERE+OnwLSw5eBMvLzth7awQERE5HAbeREREhOspWdbOAhERkcNi4E1ERERwd+EjARERkaXwV5aIiIggWDsDZNNi76bjQUaetbNBRGS3LBJ4P3jwAG+//TZq1KgBT09PtG7dGmfPnlWsFwQBERERqFOnDjw9PREaGoobN26obCMtLQ1Dhw6Fl5cXqlWrhpEjRyI7O1slzcWLF9GtWzd4eHggICAA8+bNs8ThEBEROTwZI2/SIiE5C6/9dBJdvjto7ayY1ZHrj7Fo/3XIWPiJqByYPfBOT09Hly5d4Orqin///RdXrlzBggUL4OPjo0gzb948LFmyBCtWrEBM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rVq1BFdXV6F+/frCqFGjVH4wHQHLjvFlR1O5ASCsWbPGqLzYO5Yd85edpKQkoXv37kL16tUFd3d3oXHjxsKkSZMcci5dlh/jy897770n1K9fX3BzcxNq1aol9O7dWyXoNjQv9o5lx/xlpyLde8qLSBAEofzq14mIiIiIiIgqFvbxJiIiIiIiIrIgBt5EREREREREFsTAm4iIiIiIiMiCGHgTERERERERWRADbyIiIiIiIiILYuBNREREREREZEEMvImIiIiIiIgsiIE3ERERERERkQUx8CYiIiIiIiKyIAbeRERERERERBbEwJuIiIiIiIjIghh4ExEREREREVkQA28iIiIiIiIiC2LgTURERERERGRBDLyJiIiIiIiILIiBNxEREREREZEFMfAmIiIiIiIisiAG3kRERDrMmDEDIpHIpM+uXbsWIpEId+7cMW+mlNy5cwcikQhr16612D6sbd68eWjWrBlkMlm57E8kEmHGjBmKv029jhKJBAEBAfjxxx/Nm0EiIrI7DLyJiMghxcfH4+2330bdunXh7u4Of39/DB06FPHx8dbOmlUcPnwYIpFI8Z+7uzt8fX3Ro0cPfPvtt3j8+LHJ275y5QpmzJhhkRcMYrEYc+fOxeeffw4np5LHFuVjcXFxQfXq1REUFITx48fjypUrZs+HKVxdXTFx4kR88803yM/Pt3Z2iIjIihh4ExGRw9m2bRs6dOiAAwcO4N1338WPP/6IkSNH4tChQ+jQoQO2b99u8LamTZuGvLw8k/IxbNgw5OXloX79+iZ93hI+/vhj/Pbbb1i5ciUmTZqE6tWrY/r06WjevDkOHjxo0javXLmCmTNnWiTwXr16NYqKivDWW2+prevTpw9+++03rFmzBrNmzUKHDh2wbt06tG3bFgsXLjR5n3l5eZg2bVpZsq3w7rvv4smTJ9i0aZNZtkdERPbJxdoZICIiMqdbt25h2LBhaNiwIY4ePYpatWop1o0fPx7dunXDsGHDcPHiRTRs2FDrdnJyclC5cmW4uLjAxcW0n0tnZ2c4Ozub9FlL6datG15//XWVZRcuXEBYWBhee+01XLlyBXXq1LFS7tStWbMGL7/8Mjw8PNTWPfvss3j77bdVln333Xd46aWX8Omnn6JZs2YIDw83ep+a9mWqatWqISwsDGvXrsV7771ntu0SEZF9YY03ERE5lPnz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8OHD4e/vj0GDBgEAmjdvjn79+mHUqFE4ffo0Tpw4gXHjxmHw4MHw9/cHAAwZMgRubm4YOXIk4uPjsXnzZixevFilmfj48eOxd+9eLFiwANeuXcOMGTNw9uxZjBs3ruxnhYiIiIiIiMhMjG5qfvbsWfTs2VPxtzwYHjFiBNauXYvJkycjJycHo0ePRkZGBrp27Yq9e/fCw8ND8ZmNGzdi3Lhx6N27N5ycnPDaa69hyZIlivXe3t6IjIzE2LFjERQUhJo1ayIiIkJlru/OnTtj06ZNmDZtGr744gs0adIEO3bsQKtWrUw6EURERERERESWYHTg3aNHDwg65vMTiUSYNWsWZs2apTVN9erVsWnTJp37adOmDY4dO6YzzRtvvIE33nhDd4aJiIiIiMg0nMebyCzM2sebiIiIiIiIiFQx8CYiIiIiIiKyIAbeRERERERERBbEwJuIiIiIiIjIghh4ExEREREREVkQA28iIiIiIiIiC2LgTURERERERGRBDLyJiIiIiEgzzuNNZBYMvImIiIiIiIgsiIE3ERERERERkQUx8CYiIiIiIs1EImvngMghMPAmIiIiIiLN2MebyCwYeBMRERERERFZEANvIiIiIiIiIgti4E1ERERERERkQQy8iYiIiIhIM/bxJjILBt5EREREREREFsTAm4iIiIiINON0YkRmwcCbiIiIiIiIyIIYeBMRERERERFZEANvIiIiIiLSjIOrEZkFA28iIiIiIiIiC2LgTURERERERGRBDLyJiIiIiIiILIiBNxEREREREZEFMfAmIiIiIiIisiCzB95SqRRfffUVAgMD4enpiUaNGmH27NkQlEZEFAQBERERqFOnDjw9PREaGoobN26obCctLQ1Dhw6Fl5cXqlWrhpEjRyI7O1slzcWLF9GtWzd4eHggICAA8+bNM/fhEBEREREREZWJ2QPvuXPn4qeffsKyZctw9epVzJ07F/PmzcPSpUsVaebNm4clS5ZgxYoViImJQeXKldG3b1/k5+cr0gwdOhTx8fGIiorCrl27cPToUYwePVqxXiwWIywsDPXr10dsbCzmz5+PGTNmYOXKleY+JCIiIiIiIiKTuZh7gydPnsTAgQPRv39/AECDBg3w+++/4/Tp0wCKa7sXLVqEadOmYeDAgQCA9evXw9fXFzt27MDgwYNx9epV7N27F2fOnEHHjh0BAEuXLkV4eDi+//57+Pv7Y+PGjSgsLMTq1avh5uaGli1bIi4uDgsXLlQJ0ImIiIiIyEScx5vILMweeHfu3BkrV67E9evX8eyzz+LChQs4fvw4Fi5cCABITExEcnIyQkNDFZ/x9vZGcHAwoqP/v707j2+izP8A/klPKFDK2YJUhMWfgqIIKFYQRbBcHiiroqgsIqAWFXBB6yIK6qLuIuCKoi6IF4KoXCJHpZxSri4ol9wIAm1FaIstNNfz+2PI2UkySSaZSfJ5v17zSjJ58swz88xM5jvzzDMFGDBgAAoKCpCWlmYPugGgR48eiIuLw+bNm3HPPfegoKAAXbt2RVJSkj1Nz5498eabb+Ls2bOoV69etbJVVVWhqqrK/rm8vBwAYDKZYDKZ1F4Uitimq9X0yTfWkf6xjvSPdaRvrB/9Yx3pX7TVUeLFVyEEzFEwT9FWP9EoEuvIn7KqHni/8MILKC8vx5VXXon4+HhYLBa8/vrrGDhwIACgqKgIAJCenu7yu/T0dPt3RUVFaNy4sWtBExJQv359lzQtWrSoloftO7nAe9KkSZgwYUK18StXrkRKSkogs6uavLw8TadPvrGO9I91pH+sI31j/egf60j/oqWO7r74eu7PP7H6++81LYuaoqV+olkk1VFlZaXitKoH3l999RW++OILzJkzx978e+TIkWjatCkGDRqk9uT8kpubi9GjR9s/l5eXIzMzE9nZ2UhNTdWkTCaTCXl5ebj99tuRmJjo+wcUdqwj/WMd6R/rSN9YP/rHOtK/aK2jOnXqoE+fPloXI2jRWj/RJBLryNaCWgnVA+8xY8bghRdewIABAwAAbdu2xa+//opJkyZh0KBByMjIAAAUFxejSZMm9t8VFxejXbt2AICMjAyUlJS45Gs2m3HmzBn77zMyMlBcXOySxvbZlsZdcnIykpOTq41PTEzUvHL1UAbyjnWkf6wj/WMd6RvrR/9YR/oXbXVkAKJqfqKtfqJRJNWRP+VUvVfzyspKxMW5ZhsfHw+r1QoAaNGiBTIyMrBq1Sr79+Xl5di8eTOysrIAAFlZWSgtLUVhYaE9TX5+PqxWKzp16mRPs27dOpd29Xl5ebjiiitkm5kTERERERERaUH1wPvOO+/E66+/jqVLl+Lo0aNYsGAB3n77bdxzzz0AAIPBgJEjR+K1117D4sWLsXPnTjz66KNo2rQp+vXrBwBo3bo1evXqhaFDh2LLli348ccfMWLECAwYMABNmzYFADz00ENISkrCkCFDsHv3bsybNw/Tpk1zaUpOREREREREpDXVm5r/5z//wUsvvYSnnnoKJSUlaNq0KYYPH47x48fb04wdOxYVFRUYNmwYSktL0aVLFyxfvhw1atSwp/niiy8wYsQIdO/eHXFxcejfvz/eeecd+/d169bFypUrkZOTgw4dOqBhw4YYP348HyVGREREREREuqJ64F2nTh1MnToVU6dO9ZjGYDBg4sSJmDhxosc09evXx5w5c7xO65prrsH69esDLSoREREREXnD53gTqUL1puZERERERERE5MDAm4iIiIiI5O3dq3UJiKICA28iIiIiIiKiEGLgTURERERERBRCDLyJiIiIiIiIQoiBNxEREREREVEIMfAmIiIiIiIiCiEG3kREREREREQhxMCbiIiIiIiIKIQYeBMRERERERGFEANvIiIiIiIiohBi4E1EREREREQUQgy8iYiIiIiIiEKIgTcRERERERFRCDHwJiIiIiIiIgohBt5EREREREREIcTAm4iIiIiIiCiEGHgTERERERERhRADbyIiIiIiIqIQYuBNREREREREFEIMvImIiEhSWQkIoXUpiIiIog4DbyIiIkLq0aNITEsDhg7VuihERERRh4E3ERER4fJvvpHezJypbUGIiIiiEANvIiIigojjIQEREVGo8F+WiIiIiIiIKIQYeBMRERGRZyYT0Lcv8OqrWpdEXVYr8OefWpeCiGJESALvEydO4OGHH0aDBg1Qs2ZNtG3bFtu2bbN/L4TA+PHj0aRJE9SsWRM9evTAgQMHXPI4c+YMBg4ciNTUVKSlpWHIkCH4023n+PPPP+Pmm29GjRo1kJmZibfeeisUs0NEREQUu5YsAb7/Hhg/Hti0SevSqGfgQKBOHeDwYa1LQkQxQPXA++zZs+jcuTMSExOxbNky7NmzB5MnT0a9evXsad566y288847mDFjBjZv3oxatWqhZ8+euHDhgj3NwIEDsXv3buTl5eG7777DunXrMGzYMPv35eXlyM7ORvPmzVFYWIh//etfeOWVV/Dhhx+qPUtEREREsctkcrzPytKuHGqbO1d6ff99bctBRDEhQe0M33zzTWRmZuLjjz+2j2vRooX9vRACU6dOxbhx43D33XcDAD799FOkp6dj4cKFGDBgAPbu3Yvly5dj69at6NixIwDgP//5D/r06YN///vfaNq0Kb744gsYjUbMmjULSUlJuOqqq7Bjxw68/fbbLgE6EREREQUhMVHrEhARRTzVA+/FixejZ8+euO+++7B27VpccskleOqppzD04nNBjxw5gqKiIvTo0cP+m7p166JTp04oKCjAgAEDUFBQgLS0NHvQDQA9evRAXFwcNm/ejHvuuQcFBQXo2rUrkpKS7Gl69uyJN998E2fPnnW5wm5TVVWFqqoq++fy8nIAgMlkgsn5bG4Y2aar1fTJN9aR/rGO9I91pG8mkwkQwvUz6YqW25Dh3DmXA8ZoWT9spxMsFgusKsxTtO3nnE+3RMM8RVv9RKNIrCN/yqp64H348GG8//77GD16NF588UVs3boVzzzzDJKSkjBo0CAUFRUBANLT011+l56ebv+uqKgIjRs3di1oQgLq16/vksb5SrpznkVFRbKB96RJkzBhwoRq41euXImUlJQA51gdeXl5mk6ffGMd6R/rSP9YR/rV3un9999/r1k5yDsttqE2ixfjcqfP0bJ+3H3x9cjhw9it4jxFy37ubqf30VLnQPTUTzSLpDqqrKxUnFb1wNtqtaJjx4745z//CQC47rrrsGvXLsyYMQODBg1Se3J+yc3NxejRo+2fy8vLkZmZiezsbKSmpmpSJpPJhLy8PNx+++1IZFMuXWId6R/rSP9YR/pmMpnwx9tv2z/36dNHw9KQHC23ocR+/Vw+R9v60aJlSzRXYZ6ieT8XDXUezfUTLSKxjmwtqJVQPfBu0qQJ2rRp4zKudevW+OabbwAAGRkZAIDi4mI0adLEnqa4uBjt2rWzpykpKXHJw2w248yZM/bfZ2RkoLi42CWN7bMtjbvk5GQkJydXG5+YmKh55eqhDOQd60j/WEf6xzrSL4NTU3PWkX7pYRvSZPp//AGUlACtW6uT37lz9rfxcXGIV3Ge9FBHaoum+YnG+ok2kVRH/pRT9V7NO3fujH379rmM279/P5o3bw5A6mgtIyMDq1atsn9fXl6OzZs3I+tiT5lZWVkoLS1FYWGhPU1+fj6sVis6depkT7Nu3TqXdvV5eXm44oorZJuZExEREVGEatgQaNMG2LNHnfz273e8dzrpREQUKqoH3qNGjcKmTZvwz3/+EwcPHsScOXPw4YcfIicnBwBgMBgwcuRIvPbaa1i8eDF27tyJRx99FE2bNkW/i02ZWrdujV69emHo0KHYsmULfvzxR4wYMQIDBgxA06ZNAQAPPfQQkpKSMGTIEOzevRvz5s3DtGnTXJqSExFRiAkBzJ8PHDigdUmIKBKVlgJHjihPv3ZtyIpCRBRKqjc1v/7667FgwQLk5uZi4sSJaNGiBaZOnYqBAwfa04wdOxYVFRUYNmwYSktL0aVLFyxfvhw1atSwp/niiy8wYsQIdO/eHXFxcejfvz/eeecd+/d169bFypUrkZOTgw4dOqBhw4YYP348HyVGRBROixYB998vvedVIyLyl62V4tGjwMXWkWFhsTjec99FRGGgeuANAHfccQfuuOMOj98bDAZMnDgREydO9Jimfv36mDNnjtfpXHPNNVi/fn3A5SQioiDNnat1CShanDkDrFoF3Hkn4HQinmLEpk3hDbxnzQrftCKd0yOAiShwqjc1JyKiGLFtGzBvntaloGhx111S64ncXK1LQrFg2zatSxA54hguEKmBWxIREQWGQTep6ccfpddPP9W2HERERCHAwJuIiIj0c59rfLzWJSA9U2s9NRjUz5OIyAsG3kRERIQ6x49rXQSJc0BERESRTwjgvfeArVu1LommQtK5GhEREUWWOPdenhkAExGRGr7+Grj4aOlYbmHCK95EREQE4dyBknMQTkSxjSfhKFi7dmldAl1g4E1ERESwOt9bbTZrVxCKHVar4324r4LxHm/luHwoWDx5A4CBNxEREQGujwyqqNCuHDxAiw35+UBamuPzwoValYSIKCwYeBMREZHrFe81azQrB8WI3r2Bc+ccn/Pzlf2OJ2aIKEIx8CYiIiII58C7aVPtCkKxIc7tEFRpc+ZQNHs2m4Gff2aTak94soOCxXUIAANvIiIicpeSonUJKNrp6UB8+nTg2muBSZO0Lok+xdoJibIy4PHHlbfCIN/0tL1riIE3ERERudLyQJsHaLFB63qWm/7rr4e/HKQ/PXsCM2cC3btrXRJtnD8P/Pqr1qWISgy8iYiIyDXYjrUrXBR+WgfepFys1dXmzVqXQFtt2gCXXQb89JPWJYk6DLyJiIiISFtqnew5fVrbXvmjEU/ExZajR6XXb79VL89YO3njAQNvIiIicsUDbQo193VMjXXuzBmgUSOgQYPg8wq1o0eBzz6TOnbTu5Urgbw8rUuhilbffgvDl19qXYzIEAnrZoRh4E1EREQw6KWpOa+MkDfe1s3CQum1qsp3PnLrWTjX+xYtgEcfBd57L3zTDEZ2ttYlCN7Onbjq00+RMGiQ1iWJDGpuD9yvA2DgTURERESxRi+BwOrVWpcgZhjOntW6CJGFLZ9Ux8CbiIiIXPGAi6KdXgJvCh/3Z8eTd1ar1iWIOlwDiYiIiEhb4T7Zw5NLsYeBt3/UDLx5ogsAA28iIiJyx3u8Sa/UWj8YeMee+HjHe9Z/eHG/DoCBNxEREQF8jjd59uSTWpdAGX8O7rXuXE3Laeph2lpwrnOLRbtyUMxi4E1EREREnl1yidYlcIi1YDFU+vUDrr+eAShRGDHwJiIiIv08ToxiU7jXObkr3rHUHHbRIunxazt2aF0SbXAfF16xtG15wcCbiIgCwwMXCgUeoMUG7j9IS1z/SAMMvImIiMgVD0qJiEgtPKEKIAyB9xtvvAGDwYCRI0fax124cAE5OTlo0KABateujf79+6O4uNjld8eOHUPfvn2RkpKCxo0bY8yYMTCbzS5p1qxZg/bt2yM5ORmtWrXC7NmzQz07RERkwz9SotgQjhMxejjZo4cyhFus7sdjsa79FavrRgiFNPDeunUrPvjgA1xzzTUu40eNGoUlS5Zg/vz5WLt2LU6ePIl7773X/r3FYkHfvn1hNBqxceNGfPLJJ5g9ezbGjx9vT3PkyBH07dsX3bp1w44dOzBy5Eg8/vjjWLFiRShniYiIKPrxoJSinV6CCq23Na2nr5VYnW9/qLmM9LK9aSxkgfeff/6JgQMH4qOPPkK9evXs48vKyjBz5ky8/fbbuO2229ChQwd8/PHH2LhxIzZt2gQAWLlyJfbs2YPPP/8c7dq1Q+/evfHqq69i+vTpMBqNAIAZM2agRYsWmDx5Mlq3bo0RI0bgr3/9K6ZMmRKqWSIiIooNfI436ZVa6ybXs9jDYJs0FrLAOycnB3379kWPHj1cxhcWFsJkMrmMv/LKK3HppZeioKAAAFBQUIC2bdsiPT3dnqZnz54oLy/H7t277Wnc8+7Zs6c9DyIiIvIDD0pj09mzwG+/eU/DdSN0tD4BoPX0tcJ12jc1141YXc/cJIQi07lz5+J///sftm7dWu27oqIiJCUlIS0tzWV8eno6ioqK7Gmcg27b97bvvKUpLy/H+fPnUbNmzWrTrqqqQlVVlf1zeXk5AMBkMsFkMvk5l+qwTVer6ZNvrCP9Yx1pI85qRbzTZ2/Ln3WkbyaTyeVxYmaTCSLMdZV48VVcnD65CtU2lFi/vpTvyZNAw4ayaeIsFsXbulIJAJwPxYUQXuvdtn5YLBZYPaQzmM32A1tfZYwXotrVp2DXPX/qyDY/VqsVFg3Wd9v0TWYz4GH6iW6fI33/bXFeP4xGIEE+DHKe70if50Ao2db85bwPibZjBX/Kqnrgffz4cTz77LPIy8tDjRo11M4+KJMmTcKECROqjV+5ciVSUlI0KJFDXl6eptMn31hH+sc6Cq82hw/jcqfP33//vc/fsI706xan9wUFBThTWhrW6d998fXC+fNYqWBdilVqb0O25b5l5kycbttWNs3/7d+P1k6flWzrvvS1WFwOQs1ms9d8beXcvWcPjnhI1/Cnn9BZYRm7nD2LBm7jrBaLKvOmpI5s81NcXIwtGqzvtun/uGEDyk6d8prGRo1lo6V6+/ah68X3K1asgCU5WTad83xH+jwHwjb/hw8fxh6V5r/VL7/gqovvo+1YobKyUnFa1QPvwsJClJSUoH379vZxFosF69atw7vvvosVK1bAaDSitLTU5ap3cXExMjIyAAAZGRnYsmWLS762Xs+d07j3hF5cXIzU1FTZq90AkJubi9GjR9s/l5eXIzMzE9nZ2UhNTQ18poNgMpmQl5eH22+/HYmJ7ucWSQ9YR/rHOtJG3Lp1Lp/79OnjMS3rSN9MJhOMTp+zbrwRonNnj+lDqUbNml7XpVgV6m2o0w03QHTrJvtd3P/+5/JZjfqJj493+ZyQkKAo36uuugqtPaQzOF3w8ZVX/FtvVRsXFxcX1LwFUkfpjRurt76XlgLHjgFunRp707lLF+C66xSljfTt0lK3rv19z+xsoFYtn7+J9HkORsuWLXGZSvMft3ev/X20HSvYWlAroXrg3b17d+zcudNl3ODBg3HllVfi+eefR2ZmJhITE7Fq1Sr0798fALBv3z4cO3YMWVlZAICsrCy8/vrrKCkpQePGjQFIZz5SU1PRpk0bexr3MyZ5eXn2POQkJycjWebsVmJiouaVq4cykHesI/1jHYVZnGtDTSXLnnWkX0anpuYJ8fGARvVkMBi4jngRqm0oISHBc527BcmhmL5BYb7x8fGI95TOqemwz7xk7jlVWgZfEhMSFOcTFxeHOLWW5xVXSPfsr18PdOmi6CeJ3urdPW2Eb5cG5/VD4XxH+jwHw+u25i9/tk1E1rGCP+VUPfCuU6cOrr76apdxtWrVQoMGDezjhwwZgtGjR6N+/fpITU3F008/jaysLNx4440AgOzsbLRp0waPPPII3nrrLRQVFWHcuHHIycmxB85PPPEE3n33XYwdOxaPPfYY8vPz8dVXX2Hp0qVqzxIRERFR7NJTR1ShLIsKHUBd/8YbSJgwAdi6tdoJi5A7e1Z6XbJEceAdU51e6Wk9ppgUks7VfJkyZQri4uLQv39/VFVVoWfPnnjvvffs38fHx+O7777Dk08+iaysLNSqVQuDBg3CxIkT7WlatGiBpUuXYtSoUZg2bRqaNWuG//73v+jZs6cWs0RERBQ9eIAae8Jd5+7Ti5J1runFR+Ni2zagUydtC0OeRcn6RpElLIH3mjVrXD7XqFED06dPx/Tp0z3+pnnz5j5vvr/11luxfft2NYpIREREREoIof6V0nPngs8j2DLFSjAWK/Ppznn9iNVloJVYalnhRcie401EREQRSsuDUh6g6U+kBCn+lDPU65nSskTKso0GXNb+4b5YdQy8iYiIyPWglAeoscefOuf6oW++6of1x2WgBJeR6hh4ExEREUWbL74A3nxT61LoF6/mSWJ1OTCoJA1o0rkaERER6RgPSiPfww9Lr2fPAm+8EVxeeuoILZTT1mK+tA58ua2TJ1qvm1GIV7yJiIgIBr0cgPNgT116vep94YL6eXLdUUYv27qWuAx8U3MZcdsEwMCbiIiI3PGgNPZEyj3e0XYAr/W2pvby/O03YOdOdfMMBa2XO8UkNjUnIiIiVzwoJWfRuD6Eep6icZkpkZkpvR475nivF7FaJ4GKtpNcOsAr3kRERESkHAOYyBZo/flze8CuXYFNI1yULgOLJbTliBUM4gEw8CYiIiJ3bEoce2ItmA71eqblevyvf4Um38mTQ5NvuDjXidL1/Y8/QlMWikkMvImIKDAMkKJLrAVepJyeejX3Rk/7JL0uIyDwsh0+HPpphFIg60d8vPrloJjFwJuIiAKjxwMrCphLr+ZGo3YFOXpUu2mT/nG/oy49nawIJ65H4RWr65kbBt5ERKQOHshEj5kztS4BhZu37TdSrnj7Uy69BAJ6XZZyIqXneyX0Xj6KSgy8iYgoMO4HrjyQiR7t22s37ZYttZs2USzgvlo5LitSEQNvIiJSBw9QokeTJtpNu25d7aZNykTrth6t80US5/plXYeXXlqYaIyBNxERqYMHMtHDatVu2jxA04Y/Tc31yp91h+tZbIuUdVpL3EZUx8CbiIgCw6bm0UXL+uO6E1lYX74pXUahCm5++83zd77Kxvp1iOVlEcvzHiIJWheAiIgiVKR0uET+C3ddjhrleM+rLBRLQrWtFRYCzZr5Tue+vVVVAR07AtdfXz0tO1cjCgoDbyIiCgwD7+gV7rqcNi280yP/ROO2Hup50PoEUqC3DixbBuzaJQ3Rhvd4+0fNdVjr7UEn2NSciIgCE40H4zHMoJf64wGaNvRS/8HQ07oTqcszjqEBXbR0qdYliDrcuoiIKDDuHXBF6oEmVce6jD3+BK3RsH7oKUgPhUDrKDFR2+nbmM3AyJHA+PGqFKeajRuVpYuGdT1Q0djqQWNsak5ERIFh4B29tKzLaA+IIlE0btvROE9KeZv3+PjwlcObUaOAd9+V3vfpA9x4o7r533dfbK8D4cb9OgBe8SYiokAx8NZWbq7UAZJaj/5i/ZFS0bCu6CUQCNWyDDTfBJ1ck7MF3QDwxx/q5BkN622kmj9f6xLoAgNvIiIKDANvbb3xBrBtG/Dmm+rnzSvepFdqrZtcz+QlJXn+Tqv9Av9bIt/69VqXQBcYeBMRUWAYeOvDp5+qko0h1nv8tVi0LoG2/OkFO1rXj2idL3fe5tNb4B2Lxo0DSku1LgVFCQbeREQUGPdAJVYOWvUm2pa7Flci334bSEkBNm0K/7Qp/PbtA377LbTTiNTtUq1yR+r8u/voI+DZZ7UuBUUJBt5ERBQYXvHWh1AsdzXzrKwEHnpI3/f4PfccYDQCQ4dqXRLtxEqv5n/8AVx5JXDwoNYlCa1An+MdzQKd7y1b1C0HxSzVA+9Jkybh+uuvR506ddC4cWP069cP+/btc0lz4cIF5OTkoEGDBqhduzb69++P4uJilzTHjh1D3759kZKSgsaNG2PMmDEwm80uadasWYP27dsjOTkZrVq1wuzZs9WeHSIi8iRWmp/qncmkfp5q1uWUKcCXXwL3368svZb33v7yi3bT1lqsBGqHD4dnOkrX41Ct79FUZ6GitGNKLktSieqB99q1a5GTk4NNmzYhLy8PJpMJ2dnZqKiosKcZNWoUlixZgvnz52Pt2rU4efIk7r33Xvv3FosFffv2hdFoxMaNG/HJJ59g9uzZGO/0LL8jR46gb9++6NatG3bs2IGRI0fi8ccfx4oVK9SeJSIiksMr3vqg96ahRUWhyTcUzGZg926tS6F/3NblBdJPgtbL0p8TqP6UVev5UqKqSusSUIxR/ZkBy5cvd/k8e/ZsNG7cGIWFhejatSvKysowc+ZMzJkzB7fddhsA4OOPP0br1q2xadMm3HjjjVi5ciX27NmDH374Aenp6WjXrh1effVVPP/883jllVeQlJSEGTNmoEWLFpg8eTIAoHXr1tiwYQOmTJmCnj17qj1bRETkjvd4Rxe9dK6mdW/T+fnAVVdpW4ZwiZTgUKlg151ImU8lYqUFgz9idb5JN0J+j3dZWRkAoH79+gCAwsJCmEwm9OjRw57myiuvxKWXXoqCggIAQEFBAdq2bYv09HR7mp49e6K8vBy7L56JLigocMnDlsaWBxERhRiveOuDSoFqbecr01rWJf/H9Y/bunqWLtW6BK60PvHlr+XLgY4dgV27/P9tpM0rRTzVr3g7s1qtGDlyJDp37oyrr74aAFBUVISkpCSkpaW5pE1PT0fRxT/9oqIil6Db9r3tO29pysvLcf78edSsWbNaeaqqqlDl1KykvLwcAGAymWAKxT1yCtimq9X0yTfWkf6xjrQRbza7nL01GY0e7zdmHakv8eKrAGAOcrmaTCZ7foB0y5dVpbqKs1oR7zQdOYlunz2uJ1ardLCs8gFzqOZdTf5uQ87z5PE3QtjTmc1mCA/p4iwWex3a8wtyGbnXuT1fH+m91Y/BbLYf2HrKyzmNO2EwBLUtOW9H3pYnoLB+/OScp9fpO5XTfb/tbflYrVZYfJRV6fz7onReEnv3BgCIfv1g3rvXa54Wt3kzmUxAfHy1dO7rphAi6H1sJAn1uuktz0g8VvCnrCENvHNycrBr1y5s2LAhlJNRbNKkSZgwYUK18StXrkRKSooGJXLIy8vTdPrkG+tI/1hH4dXhxAk0c/r8Q14ejHXrev0N60g9d198raysxA/ff69afgCwZ/duHFYhTwBoe/QoWl58/72HPO92+yybzmLBrc89B2OdOtj46qtep3nZ99+jyebN2JKbC0uNGj7L6Dz93bt344hK8x4KSrch53nytNxhtdrTbd26FSUeOptqc/gwLncuw8qVMNWuragcSspn47GcTun37Nnjcd1ssGsXuvjIK+3gQdziYRpCCK9l8EkIezkLCgpwxsvznxXVj5+c89y+fTtOeji2TTh/Hn0vvt+wYQPKT560f1dv3z509ZD/bydOYLuPstrKUFhYiKKEwMMM53nZtm0bij2cbLOlM5WUYJmPstXfvRs3O31evnw5rDLPLXdfN/+sqEC+jvcJagv1uqkkz0g6VqisrFScNmSB94gRI/Ddd99h3bp1aNbMcWiWkZEBo9GI0tJSl6vexcXFyMjIsKfZ4tZ1v63Xc+c07j2hFxcXIzU1VfZqNwDk5uZi9OjR9s/l5eXIzMxEdnY2UlNTA5/ZIJhMJuTl5eH2229HYqLc+d8wsFhgWLUKokMHoEEDbcqgY7qoI/KKdaSN+C++cPnco3t3oHFj2bSso9BJqVULffr0CSoP9zP2bVq3xpVB5mkTt3Kl/b3Scsqm27MHiUePSt9nZwNeDuoT+/UDAPQ+cADW559XXFYAuOqqq9BapXlXUzDbkMfl7hRoX3/99RC9eskmi1u3zuXz7bffDtSr51cZlFCyfrRp08bjumlwOhngKS9DYaHHvA0GQ1DbksmpVWVWVhbETTcp+l2w26+c69q1QztP+Z47Z3/bpUsXoF07+2eDl+PAZpdcgiYKy9qhfXsIlearY8eOPvNKTEjwuRwtbvFBr969geRkn9OvrcI+NlKFYr779O7tsdVSJB4r2FpQK6F64C2EwNNPP40FCxZgzZo1aNGihcv3HTp0QGJiIlatWoX+/fsDAPbt24djx44hKysLgLSzev3111FSUoLGFw/i8vLykJqaijZt2tjTuJ8xycvLs+chJzk5GckyG1hiYqLmlatZGcrKgN69pXvqMjOBY8fCX4YIoYf1hLxjHYWZ2x9nYkIC4GP5s47UZwBUX6bxcXGIVyvPOMcNCUrLKZvOKahKtFp9rmsAEF9Z6fd8xMfHqzfvIaBoG3K7B9tjeqfAO8Hb9hvn2iVQotGoaPn7S8n64bV+nE7GeMzLywkbgxDBbUvOyzM+XvEyCnr7FQL4+WeXUV7r0305OafzsnziDAbEKSyr1+n7SUleSvaDBrd5qzbvnn5nMMTs/1Yo5jsxIaHaPkVuupGyzP0pp+qdq+Xk5ODzzz/HnDlzUKdOHRQVFaGoqAjnz58HANStWxdDhgzB6NGjsXr1ahQWFmLw4MHIysrCjTfeCADIzs5GmzZt8Mgjj+Cnn37CihUrMG7cOOTk5NgD5yeeeAKHDx/G2LFj8csvv+C9997DV199hVGjRqk9S9Ft0CBHRzbHj2tbFiKKbOxwSRuh6CDoyy+BVavUzzcYzifOL1zQrhzRxHmbffxxlyuhHtMBQNu2oSuTL6Hcz7g/qSFSTJ7sctUaQODLSa39Sbj/D86eBebMCe80ifykeuD9/vvvo6ysDLfeeiuaNGliH+bNm2dPM2XKFNxxxx3o378/unbtioyMDHz77bf27+Pj4/Hdd98hPj4eWVlZePjhh/Hoo49i4sSJ9jQtWrTA0qVLkZeXh2uvvRaTJ0/Gf//7Xz5KzF+LFmldAiKKVP48/5Uiy9atgNuTQzTn3AmS2azsN1G2Ttbbvx9xEyeG5vnDJ08CTsdZXnm5d1n3/A0shQAGD5aC21BOJxhvvBH4b6NpPz5wIHDxdhTSsUhex4IUkqbmvtSoUQPTp0/H9OnTPaZp3ry5z5vvb731Vmzfvt3vMkY0sxm47jqgc2dgxgytS0NEsSyaDtgiWWZm6PK2Wn02CQyJqirv917G6LrWdexY6U2tWsALL3hOGOjy+fXXwH4XzfLzgdmzpffPPec9rfNyD+c6Wrs28McfytMHWrbPPgPeegu42N+SV2qeePCnvAsXAiNHKssnRvcjYed+ojCGl7sG/6YUlHfekZ5V+MEH/u1kPZF5jIJXMbyxEJEP3D9oI5Sd/mjV9LZGDe8Ha7G+ru3erU4+SpdjuJa3H50Uhc2ff2pdAt/CeXIsN1dZOq220VjfN+hRSYnWJdANBt6R5scfHe8rKoLPz59HPZSVAc2bA08+Gfx0iSjy8epB9NOyTpcs8fydh8deVRMp66S/96xHynz567XXgvt9OJt364ncfAe6jvj6XVlZYPmGS7RuG9EkhuuIgXekcQ6U1bgS4U/g/cknUgdsajVx//PPyDiTTETyGHhrJxaW9X33uV4BjdYr3t98A9SsCUybpl6eoQq6Qu3UKd9pYjW49sbfwDsc9az1uiQn0P8sPc4LRSQG3pEmkM5llObni5pNmcxmoE4daVBjPogo/KIt8D50COjVC1izRuuS+BauZa11nebnS6/nzgEvvugYr3W51PTQQ9Krp/tSQykSA49gyxLKwF2r5RTMPLmX2VdeeloXKDLF8DrEwDtSmM3A++8DhYWOcWqsuP4E3v7eD+6Nc4+oZ86oly8RaSfS/0wfeghYsQLo1k3rkvgW6ctaKduJ2XHjgE8/dYxX2tQ8EgRSl9Fa/3qcr0CD2nDOSziveOuxjpxF074hWul9HQohBt6RYvp04KmngP37HePU2Ln4cxVbaeB97pzURHD+fM9pnB82bzQqLwMR6Ue0XfH+7TetS6Cc2svaU35qTEeNq3E7dsiPV/r7QKYZLqGYXqQ2NY8mWgfegVKr3Fod23EdJh1j4B0pCgqqjwt34K30fvA33wS+/hq4/35l0zWZlJeBiPSLBzzho/b9zpFWd6EMvI8f9/83kUpvTc2DDSD1dP93rAfeSp8Jr8SKFerkE20niyOF+/oZw8udgXekkFtJ9XrFu7jYdxrn+WGzIKLAnDgBDBjg+rSDcHLfL/3+uzbliDUWCzB5suNzKANvrQ+QbNN3P3AL5f+G+2PM9MhXvWhdb1oJxXyHoqm52v1I+FvGYJqhK13Ge/cqL48v772nPC2PKfUvVvdPYOAd2caPDz4Pf3bWat7jHa290xKF05AhwLx5QJcu2kzffduNhHujvdHT1TJvZs1yfZbuCy8AGzcGl2coA289NaVWItzrgZ7+A7U+AROO6YSrczVvAaDa+8pwPk5MC/6USY/lJ1cxfHKEgXekkNuRLFgQfL7+XPFWs1dzZzG8ARIF5fBhZel++gkYOBDYt0/d6bvvlyor1c2f5P30U/Vxd94ZXJ56PVj1dMJXaXkDuc80Uk7AqCEU9W6xAD17As89p37ekSRSmpr72/xar/uKQETTvESSmTO1LoFmGHhHilDtHEIRTCv5A+AVb6LgWCzAgQPK0g4fDsyZI72qyX3bvekmdfMneXL7zGCfDqHXztWCDbzVfDZ2JNHyf3XVKmDlSuDtt0OTv7eT9QsXOt5rfWwRzosKavZqrvVyC5bz03/cqTVvFy4AL78MbNmiTn6x5qWXtC6BZhh4xzp/Am81O2Fh4B0Zysqk3vQ3bNC6JORu1izlaTdvll7XrlW3DO77j1On1M2f5MXSPtPTPd6hpMa0rFZg507pBJkv0dbzejD3yCtZ9t6W6ZQpgU9bbeGsIzUvokR6K8SzZ0M/jcmTpc7jOnUK/bSike0xkTGIgXesC1XzcX9E+k4+UJEw3y+9JD0//uabtS4JuVu6NLT5nzgh3Ud87JjnNP37u34uKQltmSh0tL631xO9lsuXl14CrrkGePFFrUvindJmxhUVyvMM5r9NSb0qOZnhTbju8dZzU/NwdK6mFX/WP6Xz4vwoXwDYtUv5NKg6va9DIaSDqIs0pSTwtlikZ3Kr+YzbWL/ivXYtUL8+MHu21iXx7uBBrUtAWrnnHuCNN4AePTynSUlx/VxR4d8But5Eyr29kdZZ2X/+E/hvp0+X7l8/f951fCjLq0ZfCP/8p/T61lvB5xUINTvW+uEH/+7JDPV/erD5+/v7QPcLkXByXU6kH5P5c2LGn3kN9nYeIjDwjhyh2hEq+UP56CPpmdwvvKBens4i9c8pGA8/LDXjHjxY65J4l5gYurzLy4EZM3iVNFCBtlbZutW/dN7uI5fbdvlIsdALZ+Ct9UF4fj7w3XeO2yVsQlmuZctCl7ccvTc1HznSv/ShLlukHDOEs5xy/weB3h7oq9xy+ZrNwLZtwbdGCDV/59XZqlXqloViEgPvSOFpB3rhQnD5Kjl4X7FCeXmUivUr3iaT1iVQJlSBt8UCPPmkNGRnh2Ya0c6fwLtmTcf7G25QrwxyB1mnT6uXv14NHiw9wk2rg0y5fWbduurn6W281vRarkijZDkmJPiXZ6gDTqXbnad04WrZonVT83B2rjZ8OHD99cC4cf7/Vkv+rKuffBK6ckS7QLY5oxH429+k++mjCAPvSDdhQnC/D/SqmZqBt9Uq3a8aS82aa9VyvO/USb9XCUMReJ8/D1x2mdTLNiD/aCTyLdDAW022A9sePYBWraT3wXSsFClmzwZ+/DH4Z2cHSm7/W6eO+nlS5FKzqbmnnuU9CXXgrTR/LU5wK32Ot54FcsXb1tnnG2+oXx5/eVn3DcuXu47wp45C3a9KIP7zHyAnR//7b/fyKQjEDRs3Sic7/v534M8/Q1Sw8GPgHSk8bVR5ecHlq3bnauXl/v9m1SrgjjuAyy9Xtyx65vz85S1bgPHj1cn33Dlg+3b1dsKhCLzz8tTtLyBWhTrwVtr/AyAdmNuuirnfixtJ1OygKJTkphvsturvFe9jx6SDbK3ue9Ri2Z8+DTzxhPLbNZTSU1Nzud6G/Q28ncvmz9MX3H/ridIr3oE8w11NWvdqHqqm5t9/ryxfrXia782bET91qrK0keKZZ4D33gPWrdNm+mazdBuQr17KA7m45Lzf0fs65wcG3pFCy3u8lTZhGjVKau7ofDJg3jz5PJ1/X1Dgedr5+UBWFtC1K7Bpk++yRgK5gwY1rngbjUBqKtC+vXr3KIYi8NZDT/pKzZkDPPaYPm8N0Fvg/csv0vvevf2fFvlHbv/rb3Ngd/4+Cq5LF6nX+yFDgptuoLQ4YB4xAvjgA3Vv1wgXpctL7qqep3VLyTOMhwzxLyjw9D//44+O96G+4q1WCzStm5p7E4nP8S4uBj780PfVT0/LYufO6uMitVWCu9JSbab73HPAjTdKV6U9OXdOOi71l/N+p1kz/3+vUxF0BEyygt1BqtnU3HYm8ehRx7gBA5T/Xk737tIf8fr1UgAeDeTODKpxZv6RRxzvv/oq+PyA4A/m5URKz9EAMHAg8PHH0uCNxRK6WyVee02+RYQ/y1Fp4J2XB9x9N3DypP+Bt024ns+5ZYvUxM6fK67790u9TavV87pW67LzPtZGbls1m4FbbwWeespnlvH/+If8F5721cePS6/BtroKlBbBwZ494Z9moAK92iknLU1+vKdnGLufsPWnE1Hn1mDOnP/TPAVL7vMi979aVeW7Hwr3vnMioVdzf+/x9pZOD4G3XP9F3btL95Ln5Hj/rafyy92OEy2Bt5L52LED6NfP96PQNmxQPt133pFep03znEbuApynY16jEYalS5FQUeF64kzvnfb5gYF3pPC0Iwk2YHM/uHY+qxxIeeQEcr9QNJObXzV2/s4HJnpuah5JV7xtTp70/v3f/ibdKvHRR+pOt6JCeh7wq69KZ/ududext21XaVPR7Gxg8WLgkkuUpZcLvMOlUyepid0zzyj/TdeuwD/+ATz7rDpl0Crwlutd12Kpvk6sXy89uvD9931maSgsDKwsFRWO1g7hFC3/G+HqKdnTVVy5E1fuV8+c+yRRwn0fr8YVZOf69tTstFEj18/uV7wrKoB69YDbb/c+rSuu8L98Ns7llLvCGs7Wi4MHS08EkONcDvdH3ukhGL3rrurjdu+WXhcs8P5bT8tY7gS0HuZVDUoC0wEDgEWLgM6dvae7+WZ1ymQjVzZPJ+jfegsJ99yDvgMHum6/0VJPYOAdOTztSHydufLFfWfdpUtw5ZGTn+/992r/EX37rXQfnh6bBwPyOyG1z+b5akbWvz/w4IO+84nlwNv56pavE1yffy69vvaaumVw/rNxvwLgvs4o3XYBYOFC4L77pEfaeaLkpN6iRdLrzz8rn7ba/LkFxXbyYuXK0JQlEGodUOzfLz32MdC8PW2XTZsCv/7q/betW4evpYONP/8b3k6crVkj/V8oEYoTLT16qJ8nUH35pKdXT2OxAJmZ1cc//rjrZ3/6bbBYpKalzvxdbgZD9ZN/tn0NIHXIKbd/+uMP18/uLVs2bFA2L+fPAydOOD4772vlWpt48sorrp9LSqSWKW3aVE8b6IkvQOrXxVOz/zvvlB/v3Fz7m29cH9enZNsqKJDq6ZZbvKdzPxldVQUsWSL1B7R9u+fjNG8taXyVr2FD+fFJSdXHadEnSbBPI5Kj5Gki+/ZJr+Xl/u0/3bdnf3k6Mf/pp9XL8dJL9rcuJ4N5xZsigtks7di8HXwFGgR5ag4mx1ezTrUD7/79pfvwPvxQn1dF5OojnDuVkyelkxNz53oPvAD/Au/jx333aH3wYOQ8buTIEcd7NW4F8PceWsD1gNV9vfFVd97ccw/w9dfAxImB5wEAth5i/dkfqC2QDh09HewFEiAE4tdfpfWhoACoX99xcDpoENCxY+Dr29dfu57odD7gcW8x4c7Tf4HtKQS+yK0DZrPUA3wo5OYqT+utBUe3btL/hRJK69t9W/3mG6mJbLD7Eed8bf9tnlpQuQcuKSnV033xhfx03IPAv/zFc5nee8/186BBrrc9AYEdZ5w86QgOrVapMz9n7r1ny50ccr9q6m1fMWyY1AzX5l//kl4vv1y6/cbm6aelbfftt11bC5w4AZjNiHPvTM75pM7kydK87N1bffrBPFazf3/v37sfg/38s+MpFDbOV72VHDfddJP0um6d9/V62DDX/EaMkOqlbl3pvt8+fXxPy52v8l11lfx49x7NgfA/znTRIunKu4JWSACk1lmebhVy3uc++aR/5YiLU35iNjVV/rHC7vztSHHQIOk/y4N452NFXvGmsFMaQFZVSc1e58+X/iDat/ce6Cj5Q5Q72GjXztHsxxe5DSYcz/EeMUIKMFRQ9+BBGGbNUqescsvD+ey6GrwFwP4se6WBd2EhcOmlQI0a3s9U33ADsG2bsjy1tmaN473SA2b3dFar9Ef73HPSlcPXX/evDM7Bv/t640/Q5ymtryb0gQr0HuoJE6QDCH+2s0Batnj6jb/bt8EgXQ14/nn5K1bvviulMRikwEsIadlcdpm0Pvztb9IJlGHDpPr99FMpn7VrpStrzz7rug4o4RwkOO/fv/hCuuLm6WqLr9sFbPuUw4flr6K5BzXPPCM1UfZ1f29xcWAnMLx1ICkX2AwcWH2ckvvTLRZHHTof6E6bBjz0EHD2rGPc8ePSMndfln/9q3QieMYM39NbvNjjV3GjRzs+zJ8vlalFi+rb2+DBrkEkIP1nu/N0wsy9Lr2duHC/31YumA+0NYStHwG5puEvv+y6HcsFUIcOSSeOxoyR+slwbxHi7IMPXJswT5sGfPll9b47vvtO2nafew5o0EBaf3Nzpc6frr0W8SNHVs/XFqB7Ww5nzlS/t3bNGse6d+CA9Hu5fZSvzsZsLbKKioCxY+UDpG+/ddwS4G+Qk5zs/fsDBxzv//tf1+9++AH43/9cx1VWes/PeRnIzfs//wk4bys2cvch+3vSeN066RFezo9BtR0r/P671Mnw+vXyv12zxrFdKuh3AydPSvdQv/++6/GI8/fOfC03d3XrKn9CQ69evtMMGVK9LgHvF5a8bZNK84g0IoaVlZUJAKKsrEyzMhiNRrFw4UJhNBq9J0xMFELa3VQfnL39tu80ztq39522Uydl0/aU5rPPqud58qSyciqdj2B/44XRaHTktWRJ0PmJP/6oXsYaNYLP1z3Pbdvk0/32myPN6tVCWCye83z5ZWXL8bnnXKe9d6+yMqpYR4q2I384l+/xx5Wnzc93jP/vf6vP6/z53pe5s2efdfzul19cv+vVS/lyvO46+eX+wAOe58N5+P133/PtPBQXV0uqqI5sv//3vz2ncU9bq5b3dDt3ClFSIsS33zp+k5rqe342bxbCaq2e5oMPHGk2bnStI2/52YZVqxzvmzd3vF+zRj59q1bK8nUerFYh3n9f/ruOHYWYPVva5yxfbs/Sevnl3vN87TWpXj19v26df2WsrJTK6Sudt8GT+vWVpfe0XdiWoRBC5OUpL8eDD3pP99RTrtPPzZVPN3KkEJ07C3HunJTOYhHi0Uc95/vpp448y8vl01xzjSONxSJEnz6e84uPd6Q9fLj697fd5vp5/Xoprdksn19KihCDBwvRsqX0/yeEtE16mr7BIL3a/sO8LdPbb5fWpWDWI+c6fPhh/36Xmek7jW3bGDrUv3XaU5o33nBN17Chsnx9pTl4UEr39dfBL0/nITFRCJPJexlOnJC+V7JPqFnTMe9Hjihblt6mLRcD+DuPv/7q+rmw0JGX1SrEoUPVf7N5c/XpOvvlF9f1zL2ca9e65teypRAJCUL8/e/y+XmKI5z5szw9LSd306cHv85//733ZaUxf+JJXvGOFEqv6hQV+Zfvjh3Vxwnh+jnY5nFq9bANeG4aFy5Kr/J7I3eG1lf9rlkjnWH3596gjh0dV2ls+f/2m5SPTbdu0tnqDz+Uv0rufObb2xlH95YTclec/LVrl3Q29NNPfd9jdPo0urzwAgwzZwY/XTn+LHfnK0BynQDdd5/UrE9J03Pnnqrdr5ao8SxhX7cG2Ci5UucskHvCnPc73h5N4s7btrNsGdC2LdC4MXDvvd5/43zlEpA6b0tOlq54ffml1OHMjBnSlWub3bu99+Yqp3t3x3vnK5WemoIfPChd+Rs3TnkLhcmTPTc93LZNutJ+4YJ0FaOyEqiqgsH5qpScceO8PxbK33sl//53z01ClTIY5B9H6amn+2++cf3sbXnGxUlXxJX0X2DbT/rqc8XWLNtslso+aZJ8uqlTpc4Sn3xS6o9h5EhpP+iJ87bjqVm48//O//7n/bm4zvt69/u9Aen2AeenjNg6Y/LU23SHDtKTIQ4flv7DhZC2STmLFjlubVBy3JOXJ9+MPlBDh/qX3nZV3pv//Ed6VdL55i+/SMvH22NWX3hBatF4xx1AkybK7u9VcstHq1ZSk/4XX/SeTq53cHdfful4bzJJ8/XJJ57TP/qo9KqknxTn9d3TVd5hw3znY1O3ruP9ggW+O9+T07y56+cOHRz/8Tk58tulp6cCrFol3eLg/B9//Lj0aFMhHNuy+zHB4cPSuH//W/oPsCktlQYl21OLFp6/83W7kidKr1Z7a2nBK9768e6774rmzZuL5ORkccMNN4jNvs4gOYmoK96ezgKlpzvSWK1CDB8un+6ll5Tnu2yZa5prrgnuTJXcanbihHy6khLfef72m/y8fPutEG3aKDtLZza7XhX59Vf5dBUVwtK1qyPdm2/Kp5OzZ480uPO0jNyvgi5bVj3NiBHy0zpzxv8ztHLrEiBEhw5Snn/+6fp9ZaUQU6dK79esEeIf/5DeP/aYEGPHuqb9+mv5cvpzJtX9LL43StMptXSpa579+yuf/hVXOMb37+99mduuaHnivFx37PA8TW/zbrF4nv5dd/nOExBiwgTf8+08/PijtL4IIURVlRDnzgnjH3+IZR9/LIxVVdK8HDnivZy//+7Iw9u0DQbPae6+2/f2ZrUK8eqrQtxwQ/Db0PPPu9aFP7+Vax1hG9q2lV6zsvzP19cweLD37x96SP69+/DRR47l7umqa6iGxYuFeOUVIa68Uoirr/ad3mqVWvuoWYYDB9RZhwIZ3ntP+XKvqpKutPlKd/SoEBs2yC9rIRz7f9tw9qyysk6e7P17IYT4v/+T3s+aJcTTT1dP4+9VaV9D3bqOdXfHjvDWXYcOocn3jjtCk+/KldJ+2b2Vm/uwZ4//eV9/vfK0Qghx4YL0f+spjfNxnXOLJ0/Dpk3qLqu8PN/766wsRzlNJiFefNF7elsLq3HjhBg4UFlaX4OtdY/cVXnn4cUXPf8Pu9eNjdEoxJ13+q5LX/uvr77y9C+vC/7Ek/CZQsfmzp0rkpKSxKxZs8Tu3bvF0KFDRVpamiiWaeYoJ2IC71dfrb4Svv569Y1m9GhlK7fN/Pny6V5/3bmA3vN0DhaVTttqFeJf/5JPt3q1I523P0A5vnYqzuROULg7fdr7PM2ZU/03K1ZIB3/uaQcMEKJOHWU7weHDvTcr/OEHIY4fV5ZXoIMQUrN653FNmjje33xz9flzz8PW/FBJHSmpT0/cA7a9e6ufwPHHsWPKy+iprGazNP6vf/W+nD/5pPq8PPCA9F337kL07u1I69x0TW6anso4YYLn6ffp4ztPQLrlwJ37n+Tcua6fL71UahrXurXjpI6n5SSE532NXPB9/ryyuvHVfNpqlZqLh2Ib8taUN5jBfd5tQ8uWQiQlqTutefOk/Y3S9GfP+v7PiLXhmWe0L4Nag/MJyLIy9fKtU0eIYcMc27q3tN27e7+VAhDiqqsc+1Hnwfk2EefBeR/j7USlgsEaHy8d0ykN4s6fl05UqrUsX35Z2qetW6dOfnFxjmOXceOU/V/Y5svb996OcdwH92bc/g6epvWXv6i33OUGW7DoK93110snEbp1C215gh1yc6X//VdfldavcePk0/3tb47jbttJNOfBbHYN8ufPl9JOmeJ52rfd5vl/XgdiJvC+4YYbRE5Ojv2zxWIRTZs2FZMmTVL0+4gIvPfulV8JCwtdP8td6ZUbxoyR7jPzle7OO6X7xa+9NvCN1PlKsT9DZqYQixYpS/vhh9KVliee8J32yJHqVzLdh1dflQIGrXdwWg8//6xOPkuWOHbA8+Z5Tjd8uHTfv9UqDXLrfXa2dAXGPRB75x35PPftc023f79073Dv3tLV9Ouuc70f26agQD6/Q4dcA0UbuXvSrr5a+u6++3wvI+c8vQWB7md8PaVz358lJ3tOm5wsHSD5ynPAAKmcBw5Ir7//Xj2NEEKkpbmOe+017/M+Y4Zj/di/33ta28mUkSN9L9PffxeiqMh3ur59PZ8EjLQhFFeZhVB2j7M/g5L7XG3D8OFCfP559fFVVdL9v75+X6OGtN9RcjX20CEh6tUTIifHcx8k7oP7vc624ZVXvO8f3IeOHYW49VbpJJWPtKumThVmT/s856FRIyEGDZJOZnvbB/gz2O7PduapX5lbb1W2/5PrA0YuXY8ejqvtNu++Wz2deysed02bOtJ+8on8iXn3k69btkj/ZWvXSn1GjB/v+O6yy6T94z33CNGggTBu3+44prNa5del7t1d97u29WTGDNd0p05J9af0HuTSUsf3zvf/7tol/Sc984x0vOScTghpny7XZ8hjjzm+98T9N9u2Ocrrrd7feUdKs32793S2snq799g2zJql+LjTNHeulO+tt6qzbXBQNsyaJS13Xydm3Ifx4z2vgzoQE4F3VVWViI+PFwsWLHAZ/+ijj4q7fO14L9J94F1Z6b2TGG8rqaffeRoKCz03U3ceVqzwfNbYNmRkSOULtuMc5+GXXzyfhIjEwf0PNlSDTbimF87BW8dItqF5cyGGDJEOwD2ladZMCuqfftr3FWrn4d571ZuX7GxlTQP9OYBu3lyIFi3CUxedO0vrmd4PYhISAr968tVXgU/X+WA/FEOzZvL/CZmZUodfSg6EAXHaPfATIvimt+vXO97fd5/nppQHDwpRUeH4fPXV0skEIaQmmBcuSM2UnW8nO3fO84mY//2v+n+q2Sx/+0HTptL/la0DKCGkYMs9XevWUprnnxfCduwhN+1//tN1urbxhYWuLUPcOy10PvnkfPXn4q1i9uOFigqpJUJJSfWmylOner6F5cMPXdPec4+jk7tffpGCps6d5efphx/k83RfBs7L0GIR4sYbpeXmXk+2upVTVeW4xW3LFs/pAuHcnNmb998XoksX6TYuOWVlskG712O6gwelk79qHnNaLEL89FP14Nh2Iq5hQ+V5Wa1Sx1xyrfk8+eYbx/J0P9l98qRjnG1Z9ewplcnWmZrztOfPl05aeeoY9swZ1w4pnYcVKxzpTp3yekvD0s8+c9RPSYnvC0zvvOPYn8jdellR4dpZoLf9/fTpUp1ddllw+1X3oV8/dfMDpJMiR4+ql9+oUa716dyiz23YlJsrrPXqSSe8/vEPaf+vYzEReJ84cUIAEBs3bnQZP2bMGHHDDTfI/ubChQuirKzMPhw/flwAEKdPnxZGo1GToaKiQixcuFBUVFRU/76yUpid7tGw9Orl+v2FC8Lidu+E+ZlnhPH8eZd0phUrqq3U1ubNhbV1a2E8fVoYq6qktOXlwup2X62la1dhnjZNGDdvdp32H38Iq8xBvXHXLtd0Z88KS8eO1aeflCSMx465ljM/X1hlmmNbBgxwpDt3Tlg9nFQwjxghzG++KUwbNwrjgQPCuHWrzx2BqaBAGEtLZb+z1qghjNu2iYo//hCLv/pKVBQXC8vddwvTe+8JY0WFME+YICzdu1f/3aWXCvPw4cL4+++OefvuO2GNixOW7GzZ9cCWj2nRImHctk2qk8OHhTU+Xli6dBGmvDxhnjSpevlXrxbm8eOFaeFC+3Ixbt4sTGvWCGNZmet0nJq+GbdsEcYLF4T54tUny8MPC4uH+4UsvXoJq+0eU7nlFB8f0E7YcvfdwqT21TQOmgzGX3+V1vO1a4U1JcVr2vMy+yO5dUPptE0zZypKZ+nXz74tmJ1v1XGfl23bhPHCBSndmDFCAMKckyOMVVXS/MXHC0tWljBu2SJMc+cKY2mpMJ48KcxPPlltfywAYVq2TBgrK6X99aBBvpfl5s3CcsMN0kGHl3Tm0aOF6dtvhTUzU5hWrnR9+oItL7f9jG28tXVrYXQ7oDr/zTdi4cKFwnzxKRaW225zLK8JE4S1ZUthPHhQGKuqhPViqyDLnXdKy+W996qX78UXhbG42L7fNv7yi/Re5sqVedq0amU0bdjg/3/qb78J4759ytNXVQljebkw/vmnxzQmpybNxu3bPS5Ts1OTcmNhoWsen38uzK+95rs8TgfvtnVQ8fGCv4Ptf1+FwbRwocd1znasota0gh5+/llY27YVpi+/DEn+qtZRsMPvv0vbXjimpXR9qqqqfmziz3D6tDBPny6MJ04ompb5nXeE+dVXhWnmTGEsLfVcP//7n7Qdv/aatL+uqpL2X57ma88eYbnjDmH8+efq3124ICxut99Zr7lGGI8fr5bW/Mor1faH1ksuEaZVq4R58mT7fHj6H7Beeqn9mN/kfJLTef86fLgwffRRtXkxzZsnLIMGCWNxsbC49d9hLCpylHHUKO//Wbt3S/vRykph9XDPvXHnTo/L0ZqZKayNGzv+i5Yv1882pHA4ffq0UBp4G4QQQqN+3YJy8uRJXHLJJdi4cSOynHrXHDt2LNauXYvNmzdX+80rr7yCCRMmVBs/Z84cpKjZK2YsEiKwZ7EGKam8HOaaNWH19bxpIVDn+HGYUlJwoWFDj8kSKithTUiANSlJ5ZICiefOwZySAuHrebkK1D18GJbkZPzp7fmqgbBaUevUKZjq1IGxTh35OhUCGVu2oHleHn564glcqFcPBiGk+XJKbzCbkXbwIC7/9lvEmc04mZWFY556CxUCqb/+irQDB1DWsiVMKSkQcXE437ixPc+E8+cRX1WFvyxahGbr1uFC/fo4ffXVKGnfHmcvvxyWGjXseSWVleHS/Hyk/P47RFwcap84gRpnzmDjxImoSkuDwWyGiI9HnV9/RY2zZ1H3yBHUPH0atU6dQu2TJ7H96afxx1VXOeZHCKQUF6PFsmWofeIEDBYLijt0wPmGDXGhQQOUX3aZYx20WtFs/Xo0W7MG8VVViLNY8Ovtt+NE585SGQ0GGMxmJFRWIrmsDPUOHEBiRQXMNWog4fx5JJw/j6O9e8OYmgqD2QyDxQIRF4eUkhLUPnUKl6xfj1pFRYAQ+HnYMJS1auWyKBPLy9Fo506klJQgzmjEJT/+iP39++NEly4uzxdOKS6GwWxG6y++wCUbN8KSkIBD/frht1tuwbnMTNc8z51Dy+++w5Xz5tnHFYwbh9+vu05+fbZY0GrxYtT+7Tcc6dMHZW49uhrMZtQ+cQJ1jh9H688/R+2iIvzeti12PfYYyi+7zHW9EwJpBw7glrFjXfJYNns2jGlprvmaTLhk40a0e/ddmGrVwvlGjbDuzTer97p/Md84sxmNduzAXxYvxpE+fXDKuafmYCjcH9Y6eRLWhARpPfeSV9qhQxBxcShr2dJrfo1++gmXf/MNEiorcaRvXxzv1s3l+/q7d6Phrl3Y/9e/2teFJgUFSDt4EHsHDgTi4pBUVoZm69fjeNeuMKWmBj2PcuLPn8dflizBuWbNcOqmm1y+a7BzJ2oVFXneV2jg/+bNQ3JZGXYOHVptnmv8/jvq79uHk1lZvp+FrkDawYOwJCTgnK1n70hgtaLtf/+L0latcPy227QuDVH0slql/zOrFXEWi+9jX60IgTijEVZfz3iPEpWVlXjooYdQVlaGVG//mwAiNvA2Go1ISUnB119/jX62B9IDGDRoEEpLS7Fo0aJqv6mqqkKV0+NzysvLkZmZidOnT/tcUKFiMpmQl5eH22+/HYl63YBiHOtI/1hH+sc60jfWj/6xjvSPdaRvrB/9i8Q6Ki8vR8OGDRUF3glev9WxpKQkdOjQAatWrbIH3larFatWrcKIESNkf5OcnIxkmbMviYmJmleuHspA3rGO9I91pH+sI31j/egf60j/WEf6xvrRv0iqI3/KGbGBNwCMHj0agwYNQseOHXHDDTdg6tSpqKiowODBg7UuGhERERERERGACA+8H3jgAfz+++8YP348ioqK0K5dOyxfvhzp6elaF42IiIiIiIgIQIQH3gAwYsQIj03LiYiIiIiIiLQm09UrEREREREREamFgTcRERERERFRCDHwJiIiIiIiIgqhiL/HOxi2R5iXl5drVgaTyYTKykqUl5dHTLf5sYZ1pH+sI/1jHekb60f/WEf6xzrSN9aP/kViHdniSFtc6U1MB97nzp0DAGRmZmpcEiIiIiIiIopE586dQ926db2mMQgl4XmUslqtOHnyJOrUqQODwaBJGcrLy5GZmYnjx48jNTVVkzKQd6wj/WMd6R/rSN9YP/rHOtI/1pG+sX70LxLrSAiBc+fOoWnTpoiL834Xd0xf8Y6Li0OzZs20LgYAIDU1NWJWsFjFOtI/1pH+sY70jfWjf6wj/WMd6RvrR/8irY58Xem2YedqRERERERERCHEwJuIiIiIiIgohBh4ayw5ORkvv/wykpOTtS4KecA60j/Wkf6xjvSN9aN/rCP9Yx3pG+tH/6K9jmK6czUiIiIiIiKiUOMVbyIiIiIiIqIQYuBNREREREREFEIMvImIiIiIiIhCiIE3ERERERERUQgx8FbBunXrcOedd6Jp06YwGAxYuHChy/fFxcX429/+hqZNmyIlJQW9evXCgQMHZPMSQqB3796y+Rw7dgx9+/ZFSkoKGjdujDFjxsBsNodorqKLGnV06623wmAwuAxPPPGESxrWUeDU2o4KCgpw2223oVatWkhNTUXXrl1x/vx5+/dnzpzBwIEDkZqairS0NAwZMgR//vlnqGcv4gVbP0ePHq22/diG+fPn29NxGwqcGttQUVERHnnkEWRkZKBWrVpo3749vvnmG5c03IYCp0YdHTp0CPfccw8aNWqE1NRU3H///SguLnZJwzoKzKRJk3D99dejTp06aNy4Mfr164d9+/a5pLlw4QJycnLQoEED1K5dG/3796+2/JXsx9asWYP27dsjOTkZrVq1wuzZs0M9e1FBrTp65pln0KFDByQnJ6Ndu3ay0/r5559x8803o0aNGsjMzMRbb70VqtmKGmrUz08//YQHH3wQmZmZqFmzJlq3bo1p06ZVm1YkbkMMvFVQUVGBa6+9FtOnT6/2nRAC/fr1w+HDh7Fo0SJs374dzZs3R48ePVBRUVEt/dSpU2EwGKqNt1gs6Nu3L4xGIzZu3IhPPvkEs2fPxvjx40MyT9FGrToaOnQoTp06ZR+cd8Kso+CoUUcFBQXo1asXsrOzsWXLFmzduhUjRoxAXJxjVzdw4EDs3r0beXl5+O6777Bu3ToMGzYsLPMYyYKtn8zMTJdt59SpU5gwYQJq166N3r17A+A2FCw1tqFHH30U+/btw+LFi7Fz507ce++9uP/++7F9+3Z7Gm5DgQu2jioqKpCdnQ2DwYD8/Hz8+OOPMBqNuPPOO2G1Wu15sY4Cs3btWuTk5GDTpk3Iy8uDyWRCdna2yzYyatQoLFmyBPPnz8fatWtx8uRJ3HvvvfbvlezHjhw5gr59+6Jbt27YsWMHRo4ciccffxwrVqwI6/xGIjXqyOaxxx7DAw88IDud8vJyZGdno3nz5igsLMS//vUvvPLKK/jwww9DNm/RQI36KSwsROPGjfH5559j9+7d+Mc//oHc3Fy8++679jQRuw0JUhUAsWDBAvvnffv2CQBi165d9nEWi0U0atRIfPTRRy6/3b59u7jkkkvEqVOnquXz/fffi7i4OFFUVGQf9/7774vU1FRRVVUVsvmJRoHW0S233CKeffZZj/myjtQTaB116tRJjBs3zmO+e/bsEQDE1q1b7eOWLVsmDAaDOHHihLozEcWC2c85a9eunXjsscfsn7kNqSfQOqpVq5b49NNPXfKqX7++PQ23IfUEUkcrVqwQcXFxoqyszJ6mtLRUGAwGkZeXJ4RgHamppKREABBr164VQkjLOjExUcyfP9+eZu/evQKAKCgoEEIo24+NHTtWXHXVVS7TeuCBB0TPnj1DPUtRJ5A6cvbyyy+La6+9ttr49957T9SrV8/lv+f5558XV1xxhfozEcWCrR+bp556SnTr1s3+OVK3IV7xDrGqqioAQI0aNezj4uLikJycjA0bNtjHVVZW4qGHHsL06dORkZFRLZ+CggK0bdsW6enp9nE9e/ZEeXk5du/eHcI5iH5K6wgAvvjiCzRs2BBXX301cnNzUVlZaf+OdRQ6SuqopKQEmzdvRuPGjXHTTTchPT0dt9xyi0sdFhQUIC0tDR07drSP69GjB+Li4rB58+YwzU308WcbsiksLMSOHTswZMgQ+zhuQ6GjtI5uuukmzJs3D2fOnIHVasXcuXNx4cIF3HrrrQC4DYWSkjqqqqqCwWBAcnKyPU2NGjUQFxdnT8M6Uk9ZWRkAoH79+gCk/ZbJZEKPHj3saa688kpceumlKCgoAKBsP1ZQUOCShy2NLQ9SLpA6UqKgoABdu3ZFUlKSfVzPnj2xb98+nD17VqXSRz+16qesrMyeBxC52xAD7xCzrUy5ubk4e/YsjEYj3nzzTfz22284deqUPd2oUaNw00034e6775bNp6ioyGUnDsD+uaioKHQzEAOU1tFDDz2Ezz//HKtXr0Zubi4+++wzPPzww/bvWUeho6SODh8+DAB45ZVXMHToUCxfvhzt27dH9+7d7fdIFhUVoXHjxi55JyQkoH79+qyjICjdhpzNnDkTrVu3xk033WQfx20odJTW0VdffQWTyYQGDRogOTkZw4cPx4IFC9CqVSsA3IZCSUkd3XjjjahVqxaef/55VFZWoqKiAn//+99hsVjsaVhH6rBarRg5ciQ6d+6Mq6++GoC0bJOSkpCWluaSNj093b5slezHPKUpLy936ZOEvAu0jpTg/1Hw1KqfjRs3Yt68eS63y0TqNsTAO8QSExPx7bffYv/+/ahfvz5SUlKwevVq9O7d237f6eLFi5Gfn4+pU6dqW9gYpaSOAGDYsGHo2bMn2rZti4EDB+LTTz/FggULcOjQIQ1LHxuU1JHt/sbhw4dj8ODBuO666zBlyhRcccUVmDVrlpbFj3pKtyGb8+fPY86cOS5Xuym0lNbRSy+9hNLSUvzwww/Ytm0bRo8ejfvvvx87d+7UsPSxQUkdNWrUCPPnz8eSJUtQu3Zt1K1bF6WlpWjfvr3stkaBy8nJwa5duzB37lyti0IesI70TY362bVrF+6++268/PLLyM7OVrF02kjQugCxoEOHDtixYwfKyspgNBrRqFEjdOrUyd4MLD8/H4cOHap29qd///64+eabsWbNGmRkZGDLli0u39t6AJRrmk7+8VVHcjp16gQAOHjwIP7yl7+wjkLMVx01adIEANCmTRuX37Vu3RrHjh0DINVDSUmJy/dmsxlnzpxhHQXJn23o66+/RmVlJR599FGX8dyGQstXHR06dAjvvvsudu3ahauuugoAcO2112L9+vWYPn06ZsyYwW0oxJRsR9nZ2Th06BBOnz6NhIQEpKWlISMjAy1btgTA/ZwaRowYYe+UrlmzZvbxGRkZMBqNKC0tdTlmKy4uti9bJfuxjIyMar1sFxcXIzU1FTVr1gzFLEWdYOpICU91ZPuOvFOjfvbs2YPu3btj2LBhGDdunMt3kboN8fRoGNWtWxeNGjXCgQMHsG3bNnuz8hdeeAE///wzduzYYR8AYMqUKfj4448BAFlZWdi5c6fLn2leXh5SU1OrBRoUOE91JMdWT7aAj3UUHp7q6LLLLkPTpk2rPbZi//79aN68OQCpjkpLS1FYWGj/Pj8/H1ar1X4ihYKjZBuaOXMm7rrrLjRq1MhlPLeh8PBUR7Y+K9yvnMbHx9tblHAbCg8l21HDhg2RlpaG/Px8lJSU4K677gLAOgqGEAIjRozAggULkJ+fjxYtWrh836FDByQmJmLVqlX2cfv27cOxY8eQlZUFQNl+LCsryyUPWxpbHuSZGnWkRFZWFtatWweTyWQfl5eXhyuuuAL16tULfkailFr1s3v3bnTr1g2DBg3C66+/Xm06EbsNady5W1Q4d+6c2L59u9i+fbsAIN5++22xfft28euvvwohhPjqq6/E6tWrxaFDh8TChQtF8+bNxb333us1T7j1dmo2m8XVV18tsrOzxY4dO8Ty5ctFo0aNRG5ubihnLWoEW0cHDx4UEydOFNu2bRNHjhwRixYtEi1bthRdu3a1p2EdBUeN7WjKlCkiNTVVzJ8/Xxw4cECMGzdO1KhRQxw8eNCeplevXuK6664TmzdvFhs2bBCXX365ePDBB8M6r5FIrf3cgQMHhMFgEMuWLav2Hbeh4ARbR0ajUbRq1UrcfPPNYvPmzeLgwYPi3//+tzAYDGLp0qX2dNyGAqfGdjRr1ixRUFAgDh48KD777DNRv359MXr0aJc0rKPAPPnkk6Ju3bpizZo14tSpU/ahsrLSnuaJJ54Ql156qcjPzxfbtm0TWVlZIisry/69kv3Y4cOHRUpKihgzZozYu3evmD59uoiPjxfLly8P6/xGIjXqSAjpv2j79u1i+PDh4v/+7//s26WtF/PS0lKRnp4uHnnkEbFr1y4xd+5ckZKSIj744IOwzm+kUaN+du7cKRo1aiQefvhhlzxKSkrsaSJ1G2LgrYLVq1cLANWGQYMGCSGEmDZtmmjWrJlITEwUl156qRg3bpzPR+O4B95CCHH06FHRu3dvUbNmTdGwYUPx3HPPCZPJFKK5ii7B1tGxY8dE165dRf369UVycrJo1aqVGDNmjMsjXYRgHQVDre1o0qRJolmzZiIlJUVkZWWJ9evXu3z/xx9/iAcffFDUrl1bpKamisGDB4tz586FYxYjmlr1k5ubKzIzM4XFYpGdDrehwKlRR/v37xf33nuvaNy4sUhJSRHXXHNNtceLcRsKnBp19Pzzz4v09HSRmJgoLr/8cjF58mRhtVpd0rCOAiNXNwDExx9/bE9z/vx58dRTT4l69eqJlJQUcc8994hTp0655KNkP7Z69WrRrl07kZSUJFq2bOkyDfJMrTq65ZZbZPM5cuSIPc1PP/0kunTpIpKTk8Ull1wi3njjjTDNZeRSo35efvll2TyaN2/uMq1I3IYMQggR7FVzIiIiIiIiIpLHe7yJiIiIiIiIQoiBNxEREREREVEIMfAmIiIiIiIiCiEG3kREREREREQhxMCbiIiIiIiIKIQYeBMRERERERGFEANvIiIiIiIiohBi4E1EREREREQUQgy8iYiIiIiIiEKIgTcRERERERFRCDHwJiIiIiIiIgohBt5EREREREREIfT/SKcrdIwa0l0AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# === Interpolation to hourly ===\n", "# Convert to numeric days since epoch for interpolation\n", "datenum = dates.map(pd.Timestamp.toordinal) + (\n", " dates.dt.hour / 24 + dates.dt.minute / 1440 + dates.dt.second / 86400\n", ")\n", "firstday = datenum.iloc[0]\n", "lastday = datenum.iloc[-1]\n", "xq = np.arange(firstday, lastday, 1/24)\n", "\n", "pchip_interp = PchipInterpolator(datenum, flow)\n", "yq = pchip_interp(xq)\n", "\n", "# Plotting\n", "plt.close('all')\n", "fig, axs = plt.subplots(2, 1, figsize=(10, 6))\n", "xq_datetime = pd.to_datetime(xq) # convert back to datetime for plotting\n", "axs[0].plot(xq_datetime, yq)\n", "axs[0].set_title(\"Interpolated Data (Hourly)\")\n", "axs[0].grid()\n", "\n", "axs[1].plot(dates, flow, 'r')\n", "axs[1].set_title(\"Original Data (Daily)\")\n", "axs[1].grid()\n", "\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": null, "id": "e34ae36f-4d1c-42f4-9e62-7c489905b324", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }