{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Density-based clustering basics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Go to:\n", " \n", " - [Notebook configuration](algorithm_explained.ipynb#Notebook-configuration)\n", " - [Helper function definitions](algorithm_explained.ipynb#Helper-function-definitions)\n", " - [Density criteria](algorithm_explained.ipynb#Density-criteria)\n", " - [Identification of connected components](algorithm_explained.ipynb#Identification-of-connected-components-of-points)\n", " - [CommonNN clustering in detail](algorithm_explained.ipynb#CommonNN-clustering-in-detail)" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-06-18T14:43:18.762282Z", "start_time": "2020-06-18T14:43:18.760198Z" } }, "source": [ "## Notebook configuration" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:57:59.190543Z", "start_time": "2022-11-24T15:57:56.095997Z" } }, "outputs": [], "source": [ "from collections import deque\n", "from itertools import islice\n", "import sys\n", "\n", "import matplotlib as mpl\n", "from matplotlib import animation\n", "import matplotlib.pyplot as plt\n", "import networkx\n", "import numpy as np\n", "import scipy\n", "from scipy.integrate import quad\n", "from scipy import stats\n", "from scipy.spatial import cKDTree\n", "import sklearn\n", "from sklearn import datasets\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "import commonnn\n", "from commonnn import cluster\n", "from commonnn import _types, _fit" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:57:59.202549Z", "start_time": "2022-11-24T15:57:59.195153Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python: 3.10.7 (main, Sep 27 2022, 11:41:38) [GCC 10.2.1 20210110]\n", "Packages:\n", " matplotlib: 3.6.0\n", " networkx: 2.8.6\n", " numpy: 1.23.3\n", " scipy: 1.9.1\n", " sklearn: 1.1.2\n", " commonnn: 0.0.2\n" ] } ], "source": [ "# Version information\n", "print(\"Python: \", *sys.version.split(\"\\n\"))\n", "\n", "print(\"Packages:\")\n", "for package in [mpl, networkx, np, scipy, sklearn, commonnn]:\n", " print(f\" {package.__name__}: {package.__version__}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We use [Matplotlib](https://matplotlib.org/) to create plots. The `matplotlibrc` file in the root directory of the `CommonNNClustering` repository is used to customize the appearance of the plots." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:58:01.986191Z", "start_time": "2022-11-24T15:58:01.976085Z" } }, "outputs": [], "source": [ "# Matplotlib configuration\n", "mpl.rc_file(\n", " \"../../matplotlibrc\",\n", " use_default_template=False\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Helper function definitions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following functions will be used throughout this notebook." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:58:04.283592Z", "start_time": "2022-11-24T15:58:04.273122Z" } }, "outputs": [], "source": [ "def gauss(x, sigma, mu):\n", " \"\"\"Gaussian PDF\"\"\"\n", " return (1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-1 / 2 * ((x - mu) / sigma)**2))\n", " \n", "def multigauss(x, sigmas, mus):\n", " \"\"\"Multimodal gaussian PDF as linear combination of gaussian PDFs\"\"\"\n", " assert len(sigmas) == len(mus)\n", " \n", " out = np.zeros_like(x)\n", " for s, m in zip(sigmas, mus):\n", " out += gauss(x, s, m)\n", " return out / len(sigmas)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:58:06.769863Z", "start_time": "2022-11-24T15:58:06.759492Z" } }, "outputs": [], "source": [ "def determine_cuts(x, a, cutoff):\n", " \"\"\"Find points in 1D space where density cutoff is crossed\n", " \n", " Args:\n", " x: coordinate\n", " a: density\n", " cutoff: density cutoff\n", " \n", " Returns:\n", " cuts: Array of coordinates where cutoff is crossed\n", " \"\"\"\n", " \n", " cuts = []\n", " dense = False # Assume low density on left border\n", " for index, value in enumerate(a[1:], 1):\n", " if dense:\n", " if value < cutoff:\n", " dense = False\n", " cuts.append((x[index] + x[index - 1]) / 2) \n", " else:\n", " if value >= cutoff:\n", " dense = True\n", " cuts.append((x[index] + x[index - 1]) / 2)\n", " \n", " return np.asarray(cuts)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:58:07.107235Z", "start_time": "2022-11-24T15:58:07.098717Z" } }, "outputs": [], "source": [ "class multigauss_distribution(stats.rv_continuous):\n", " \"\"\"Draw samples from a multimodal gaussian distribution\"\"\"\n", " \n", " def __init__(self, sigmas, mus, *args, **kwargs):\n", " super().__init__(*args, **kwargs)\n", " self._sigmas = sigmas\n", " self._mus = mus\n", "\n", " def _pdf(self, x):\n", " return multigauss(x, sigmas=self._sigmas, mus=self._mus)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Density criteria" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Density-based clustering defines clusters as *dense* regions in space, separated by *sparse* regions. But what is dense and what is sparse? One way to define this is by using a threshold (a density criterion) that determines the outcome of the clustering. In the case where we have a density function defined on a continuous coordinate, the density criterion manifests itself as a density iso-surface. Regions in which the density is higher than a cutoff set as the density criterion qualify as *dense*. On the other hand, regions in which the density falls below the density criterion are considered *sparse* and do not constitute a part of a cluster. Continuous dense regions form individual clusters. We can illustrate this on the example of a bimodal gaussian distribution in one dimension." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:58:54.113685Z", "start_time": "2022-11-24T15:58:53.632110Z" } }, "outputs": [ { "data": { "text/plain": [ "[(-8.0, 8.0), Text(0.5, 0, '$x$'), Text(0, 0.5, 'probability density')]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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kTZt2mD58uUoKChA9+7dERkZieeff55JLRGZBY7YEhG1MhkZGWjbti10Oh0WLFiA9evXyx0SEZEkOGJLRNSKCIKARx99FDqdDgBgYWEhc0RERNJhYktE1Io8/vjj2Lx5MyZMmABfX198/fXXuHDhgtxhERFJgoktEVEr8f777+Pdd99F37598eOPP+Kpp56CRqPB888/L3doRESSYI0tEVEr8OOPP+Luu+9GcHAwjh49Ck9PT5SXlyM0NBTp6ek4ceIEunfvLneYRERNwhFbIiIzd+jQIcybNw8eHh74/fff4enpCQCwsbHB008/DUEQ8Oyzz8ocJRFR03HElojIjJ09exaDBg1CZWUl/vrrL/Tr16/G+crKSoSGhiItLQ2HDx/G4MGDZYqUiKjpmNgSERERkVlgKQIRERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFv4fdheMfaiAC+MAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlimit = (-8, 8)\n", "x = np.linspace(*xlimit, 101)\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, multigauss(x, sigmas=[1, 1.5], mus=[-2, 2]))\n", "ax.set(**{\n", " \"xlim\": xlimit,\n", " \"xlabel\": \"$x$\",\n", " \"ylabel\": \"probability density\"\n", "})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have two maxima in the distribution. An intuitive classification\n", "would separate the two peaks into two different clusters. In threshold-based density-based clustering we define the two clusters as the regions of high density where we have low density in between. By applying an iso-value cutoff on the density, we can specify what should be considered high or low density. In a dense region, the density is at least as high as the density criterion requires." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T15:59:23.824299Z", "start_time": "2022-11-24T15:59:23.400734Z" } }, "outputs": [ { "data": { "image/png": "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ii1SV9FPBlRxkZGRwtixY4XatWsL9erVE95++22VT1pUvMzMTOH9998XatWqJTg5OQnTpk0TUlJSxA5Lp3Dk+9XCwsIEAC/9U9WlpqYKH3zwgWBvby9YW1sLw4cPF8LCwsQOS6u96jXF5+/VOPJdejKZTPj666+F+vXrCw4ODsKYMWOYZ5RCQkKCMG3aNMHFxUWwt7cXvLy8hKCgoAqflyPfREREREQawlU2iIiIiIg0hMk3EREREZGGMPkmIiIiItIQJt9ERERERBrC5JuIiIiISEOYfBMRERERaQiTbyIiIiIiDWHyTURERESkIUy+iYiIiIg0hMk3EREREZGGMPkmIiIiItIQJt9ERERERBrC5JuIiIiISEOYfBMRERERaQiTbyIiKpfx48dDIpHgu+++K3LbtWvXYGFhgRo1aiAoKEiE6IiItJNEEARB7CCIiEj3hISEoGnTprCyskJYWBhsbW0BAI8ePUKXLl2QkZGBf//9F126dBE5UiIi7cGRbyIiKhd3d3e88847SEpKwurVqwEAcXFxGDhwIJKSkrBv3z4m3kREL+DINxERlVtMTAwaNGgAExMTBAQEYOTIkfDx8cGWLVswY8YMscMjItI6HPkmIqJyq1OnDmbNmoWUlBS0atUKPj4++Oabb5h4ExGVgCPfRERUIbGxsahXrx4UCgUmT56MHTt2iB0SEZHW4sg3ERGVmyAI+OSTT6BQKAAARkZGIkdERKTdmHwTEVG5zZs3D/v378egQYNQu3Zt7Ny5E48ePRI7LCIircXkm4iIymXt2rX48ccf0aFDBxw4cACff/45ZDIZvvnmG7FDIyLSWqz5JiKiMjtw4ADGjh0LNzc3XLt2Dfb29sjOzkaDBg0QExODW7duoVWrVmKHSUSkdTjyTUREZXLx4kVMmDABNWvWxMmTJ2Fvbw8AMDMzwxdffAFBEPDVV1+JHCURkXbiyDcREZVaYGAgunbtitzcXJw9exYdO3ZUuT03NxcNGjRAVFQULl26BE9PT5EiJSLSTky+iYiIiIg0hGUnREREREQawuSbiIiIiEhDmHwTEREREWkIk28iIiIiIg1h8k1EREREpCFMvomIiIiINITJNxERERGRhjD5JiIiIiLSECbfREREREQawuSbiIiIiEhDmHwTEREREWkIk28iIiIiIg1h8k1EREREpCFMvomIiIiINITJNxERERGRhjD5JiIiIiLSECbfREREREQawuSbiIiIiEhD/g+3BJowz38gewAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "density_criterion = 0.1\n", "\n", "xlimit = (-8, 8)\n", "x = np.linspace(*xlimit, 1001)\n", "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n", "cuts = determine_cuts(x, pdf, density_criterion)\n", "density_criterion_ = np.full_like(x, density_criterion)\n", "dense = np.maximum(pdf, density_criterion_)\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, pdf)\n", "ax.plot(x, density_criterion_, linestyle=\"--\", color=\"k\")\n", "ax.fill_between(x, density_criterion_, dense)\n", "for cut in cuts:\n", " ax.axvline(cut, color=\"gray\", alpha=0.5)\n", "\n", "ax.annotate(\n", " \"density criterion\", (xlimit[0] * 0.975, density_criterion * 1.03),\n", " fontsize=\"small\"\n", ")\n", "\n", "ax.annotate(\"0\", (cuts[0] * 1.2, 0))\n", "ax.annotate(\"1\", (cuts[1] * 2, 0))\n", "ax.annotate(\"0\", (cuts[2] * 0.2, 0))\n", "ax.annotate(\"2\", (cuts[3] * 0.8, 0))\n", "ax.annotate(\"0\", (cuts[3] * 1.2, 0))\n", "\n", "ax.annotate(\n", " \"dense\",\n", " xy=(2.2, multigauss(2.2, sigmas=[1, 1.5], mus=[-2, 2])),\n", " xytext=(cuts[3] * 1.2, density_criterion * 1.5),\n", " arrowprops={\"arrowstyle\": \"->\"}\n", ")\n", "\n", "ax.annotate(\n", " \"sparse\",\n", " xy=(4, multigauss(4., sigmas=[1, 1.5], mus=[-2, 2])),\n", " xytext=(cuts[3] * 1.2, density_criterion * 1.2),\n", " arrowprops={\"arrowstyle\": \"->\"}\n", ")\n", "\n", "ax.set(**{\n", " \"xlim\": xlimit,\n", " \"xlabel\": \"$x$\",\n", " \"ylabel\": \"probability density\"\n", "})\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-06-19T09:13:41.465492Z", "start_time": "2020-06-19T09:13:41.442533Z" } }, "source": [ "Choosing the density criterion in this way, defines the two clusters as we would have expected. We can label the regions, i.e. we can assign a number to them, that denotes their cluster membership. We use 0 to indicate that a region is not part of any cluster and positive integers as cluster numbers. When we vary the density criterion, we can influence the outcome of the clustering by changing the definition of what is dense enough to be a cluster. This could leave us with both the density maxima in one cluster, clusters of different broadness, or no cluster at all." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:00:21.601247Z", "start_time": "2022-11-24T16:00:21.058945Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, Ax = plt.subplots(2, 2)\n", "ax = Ax.flatten()\n", "\n", "for i, d in enumerate([0.05, 0.09, 0.15, 0.22]):\n", " density_criterion = d\n", "\n", " xlimit = (-8, 8)\n", " x = np.linspace(*xlimit, 1001)\n", " pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n", " cuts = determine_cuts(x, pdf, density_criterion)\n", " density_criterion_ = np.full_like(x, density_criterion)\n", " dense = np.maximum(pdf, density_criterion_)\n", "\n", "\n", " ax[i].plot(x, pdf)\n", " ax[i].plot(x, density_criterion_, linestyle=\"--\", color=\"k\")\n", " ax[i].fill_between(x, density_criterion_, dense)\n", " for cut in cuts:\n", " ax[i].axvline(\n", " cut,\n", " color=\"gray\",\n", " alpha=0.5,\n", " linewidth=1,\n", " zorder=0\n", " )\n", "\n", "\n", " ax[i].set(**{\n", " \"xlim\": xlimit,\n", " })\n", " \n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we operate on data sets (in maybe high dimensional spaces), however, we normally do not have a continuous description of the density that we can directly use. Instead we may have sample points from an underlying (unknown) distribution. To apply a density-based clustering on them, we need to approximate the density in some way. For this approximation, a number of different possibilities exist, which provide a different notion of what (local) density is or how it could be estimated from scattered data. To illustrate this, let's draw samples from the above used bimodal distribution to emulate data points." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:01:01.553285Z", "start_time": "2022-11-24T16:01:00.967898Z" } }, "outputs": [ { "data": { "image/png": "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IiIiIiIfYfJNREQjcvXVV0OlUuFXv/rVgGOff/459Ho94uLiUFJSIkN0RET+SSUIgiB3EEREpDxlZWWYMGECDAYDKioqEB0dDQA4fvw45s2bB5vNhv/85z+YN2+ezJESEfkP9nwTEdGI5OTk4MYbb0RrayueeuopAEBTUxOWL1+O1tZWvPbaa0y8iYhOw55vIiIasfr6eowbNw46nQ7FxcW4/PLLsXfvXvz+97/HzTffLHd4RER+hz3fREQ0YsnJybj99tvR3t6OadOmYe/evfjFL37BxJuIaAjs+SYiolFpaGhAamoq3G43rrvuOmzdulXukIiI/BZ7vomIaMQEQcCPfvQjuN1uAIBWq5U5IiIi/8bkm4iIRuwnP/kJtm3bhhUrViApKQl/+tOfcPz4cbnDIiLyW0y+iYhoRJ555hk8+eSTmDNnDt544w3cc889cDqd+MUvfiF3aEREfos130RENGxvvPEGrrzySmRnZ+Pzzz+HyWRCT08Pxo0bh/r6ehw4cADTpk2TO0wiIr/Dnm8iIhqW//73v7j22msRHx+Pf//73zCZTACAsLAw3HvvvRAEAT//+c9ljpKIyD+x55uIiM7ZkSNHMH/+fNjtdnzwwQeYO3eu13G73Y5x48ahpqYGH3/8MRYsWCBTpERE/onJNxERERGRj7DshIiIiIjIR5h8ExERERH5CJNvIiIiIiIfYfJNREREROQjTL6JiIiIiHyEyTcRERERkY8w+SYiIiIi8hEm30REREREPsLkm4iIiIjIR5h8ExERERH5CJNvIiIiIiIfYfJNREREROQjTL6JiIiIiHyEyTcRERERkY8w+SYiIiIi8hEm30REREREPsLkm4iIiIjIR5h8ExERERH5yP8DUixsOBdCn8IAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "distribution = multigauss_distribution(\n", " sigmas=[1, 1.5], mus=[-2, 2], a=-8, b=8, seed=11\n", ")\n", "samples = distribution.rvs(size=20)\n", "\n", "xlimit = (-8, 8)\n", "x = np.linspace(*xlimit, 1001)\n", "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n", "\n", "ax.set(**{\n", " \"xlim\": xlimit,\n", " \"xlabel\": \"$x$\",\n", " \"ylabel\": \"probability density\"\n", "})\n", "\n", "ax.plot(samples, np.zeros_like(samples), linestyle=\"\",\n", " marker=\"|\", markeredgewidth=0.75, markersize=15) \n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following we look into how density is deduced from points in terms of the following methods:\n", " \n", " - DBSCAN\n", " - Jarvis-Patrick\n", " - CommonNN\n", " \n", "In general, point density can be expressed in simple terms by the number of points $n$ found on a volume $V$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DBSCAN" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In DBSCAN, local point density is expressed for each point as the number of neighbouring points $n_r$ with respect to a neighbour search radius $r$.\n", "The density criterion is formulated as such: Points that have at least $n_\\mathrm{c}$ nearest neighbours in their neighbourhood $r$ qualify as part of a dense region, i.e. a cluster. Points that fulfill the density criterion can be also referred to as *core points*. Additionally, it is possible to describe points that do not fulfill the density criterion themselves but are neighbours of those core points as *edge points*. For our samples above this could look as shown below if we choose the density criterion to be $n_\\mathrm{c}=1$ and $r=0.5$. To determine the number of neighbours for each point, we calculated pairwise point distances and compare them to $r$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:02:13.610858Z", "start_time": "2022-11-24T16:02:13.601798Z" }, "run_control": { "marked": true } }, "outputs": [ { "data": { "text/plain": [ "array([ True, True, True, True, True, True, True, True, False,\n", " True, True, True, True, True, True, False, True, True,\n", " False, True])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Density criterion\n", "r = 0.5 # Neighbour search radius\n", "k = 1 # Minimum number of neighbours\n", "\n", "n_neighbours = np.array([\n", " # Neighbour within r?\n", " len(np.where((0 < x) & (x <= r))[0])\n", " # distance matrix\n", " for x in np.absolute(np.subtract.outer(samples, samples))\n", "])\n", "\n", "dense = n_neighbours >= k # Point is part of dense region?\n", "dense" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:02:19.027411Z", "start_time": "2022-11-24T16:02:18.696237Z" } }, "outputs": [ { "data": { "image/png": "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1LPn22QywWazQa2W9G2biIjcTCFIuHqD2Wx2y0IYJpMJ9913H9599110dnZi/vz52Lx5M9LS0sT7zJ49G3v37u21OEV/UwTOmjULn3/+ubj94Ycf4umnn0ZeXh50Oh3mzp2Lp556CjExMYOK3TkFYX5+/qAeh4h8nyAI+Prrr8UZnkaPHj3o9yAiIjp3Q5G3SZp8P/roo1i5ciWys7N7HXM4HLj22mtx3XXX4dJLL5WqSa/D5JuIzkd+fj6MRiMCAgKQmZmJuLg4uUMiIvIbQ5G3SVrzvWHDhn5ruJVKJVJSUvCHP/xByiaJyMc0NjaiubkZdrtd7lA8QmpqKiZNmoRp06Yx8SYi8gFuLR5MSkrC22+/7c4micjLFBcXi6vZssxCmoXDiIjIcww6+X7vvffw3nvvidtbtmzBBx984HIfQRBQV1eHvXv3uozeJyLqyWaziYk3AISEhMgYDRERkfQGnXyXlZXhs88+A9A9mPHIkSMoLS3tdT+tVoslS5bg1ltvHWyTROSj2traxNsqlQrBwcEyRkNERCS9QSff69evx/r16wF013W/8soruPzyywcdGBH5H5PJJN4OCwvrd3YifyQIAsxmM1pbW7nWABGRF5O05vsXv/gFUlNTpXxIIvIjPZeV99eVLftis9lcVvaNjIzkVQEiIi8lafK9detWKR+OiPzM6T3f1E2tViMgIEBMvpubm5l8ExF5qQEn311dXXjqqadwww03ICUlBQCwefPms56nUChw5513DrRZIvJRFosFnZ2d4jaTb1c6nQ7t7e0AgKamJsTHx8scERERDcSAk+/Ozk5s2LABs2fPFpPvu++++6znMfkmor707PXWaDQIDAyUMRrPExkZiZqaGgDdPd+CILAmnojICw04+dZqtfjss88wbtw4cV9fs5wQEZ0LDrY8M51OJ962WCxob29HaGiofAEREdGADDj5VqlUmDVrlss+DrYkooHiYMszCwgIgFarFadjbGpqYvJNROSFJF1e/sSJE9i7dy8cDoe47/vvv8ett96K5cuX480335SyOSLyIR0dHeJt1nv3reciZU1NTTJGQkREAyXpbCebNm3C999/j7y8PABAfn4+Zs2ahcDAQOj1erz//vtobW3FunXrpGyWiHzAlClT0NHRgdbWVvZ89yMyMhKVlZUAWPdNROStJO353rVrF6666ipx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RETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiAbk2muvhUKhwOOPP97r2LfffouQkBBER0ejsLBQhuiIiDyTQhAEQe4giIjI+xQXF2PkyJHQarUoLS1FREQEAOD48eOYNm0azGYz/vvf/2LatGkyR0pE5DnY801ERAOSmZmJG2+8EU1NTXjuuecAAEajEYsWLUJTUxO2bdvGxJuI6DTs+SYiogGrqanBsGHDoNFokJ+fjyuuuAL79u3DH//4R9x0001yh0dE5HHY801ERAOWkJCAdevWoaWlBePGjcO+ffvw29/+lok3EVE/2PNNRESDUltbi6SkJDgcDtxwww3YunWr3CEREXks9nwTEdGACYKAu+66Cw6HAwCgVqtljoiIyLMx+SYiogH79a9/je3bt2Px4sWIj4/Hn//8Zxw/flzusIiIPBaTbyIiGpAXXngBzz77LKZMmYJ3330X9913H2w2G37729/KHRoRkcdizTcREZ23d999F1dddRUyMjLw7bffQq/Xo7OzE8OGDUNNTQ0OHjyIcePGyR0mEZHHYc83ERGdly+++ALXX389YmJi8J///Ad6vR4AEBQUhPvvvx+CIOA3v/mNzFESEXkm9nwTEdE5O3r0KKZPnw6LxYJPP/0UU6dOdTlusVgwbNgwVFZW4ssvv8SMGTNkipSIyDMx+SYiIiIichOWnRARERERuQmTbyIiIiIiN2HyTURERETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiIiIyE2YfBMRERERuQmTbyIiIiIiN2HyTURERETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiIiIyE2YfBMRERERuQmTbyIiIiIiN/l/cHtR/lA791oAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlimit = (-8, 8)\n", "x = np.linspace(*xlimit, 1001)\n", "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n", "\n", "ax.set(**{\n", " \"xlim\": xlimit,\n", " \"xlabel\": \"$x$\",\n", " \"ylabel\": \"probability density\"\n", "})\n", "\n", "for i, s in enumerate(samples):\n", " if dense[i]:\n", " c = \"#396ab1\"\n", " else:\n", " c = \"gray\"\n", " ax.plot(s, 0, linestyle=\"\",\n", " marker=\"|\", markeredgewidth=0.75, markersize=15,\n", " color=c)\n", "\n", "labels = [\n", " (-4, \"1\"),\n", " (-2.8, \"2\"),\n", " (-1.8, \"0\"),\n", " (-0.8, \"3\"),\n", " (1, \"0\"),\n", " (1.8, \"4\"),\n", " (2.8, \"5\"),\n", " (3.8, \"0\"),\n", "]\n", "\n", "for position, l in labels:\n", " ax.annotate(l, (position, 0.02))\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this case we end up with 5 clusters, that are dense enough regions separated by low density areas. Like a change in the density iso-value as the density criterion for the continuous density function, a change of the cluster parameters $k$ and $r$ will determine the cluster result. Note, that we assigned the labels to the clusters by visual inspection. We will show later how to identify these isolated regions (connected components of core points) automatically. For this we additionally need to define when two points are actually part of the same dense region, meaning we need to define connectivity between points. In the case of DBSCAN, checking the density-criterion and checking the connectivity of two points are basically two separate tasks." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Common-nearest-neighbour clustering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the DBSCAN approach to threshold-based density-based clustering estimates point density locally per point, we determine the density with respect to two points in CommonNN clustering. As a consequence, checking the density-criterion and defining if two points are connected become essentially the same thing. Two points that fulfill the density requirement together are automatically identified as part of the same cluster. The density threshold (points per volume) is formulated as such: two points that share a minimum number of $n_\\mathrm{c}$ common neighbours with respect to a neighbour search radius *r* are considered *dense*. The figure below illustrates this. The green and the blue point pass the density-criterion check for CommonNN cutoffs of $n_\\mathrm{c} \\leq2$ because they share the two yellow points as their common neighbours. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:04:16.879770Z", "start_time": "2022-11-24T16:04:16.873598Z" } }, "outputs": [], "source": [ "# samples2D = np.vstack([np.random.normal((-1, 0), (0.4, 0.4), (10, 2)), np.random.normal((1, 0), (0.4, 0.4), (10, 2))])\n", "samples2D = np.load(\"algorithm_explained/samples2D.npy\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:04:21.294903Z", "start_time": "2022-11-24T16:04:21.072162Z" } }, "outputs": [ { "data": { "text/plain": [ "[[], [], None]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Density criterion / density reachability in 2D\n", "fig, ax = plt.subplots(figsize=(3.33, 2.05))\n", "r = 0.5\n", "c = 2\n", "\n", "neighbourhoods = np.array([\n", " # Neighbour within r?\n", " np.where((0 < x) & (x <= r))[0]\n", " # distance matrix\n", " for x in np.sqrt(np.subtract.outer(samples2D[:, 0], samples2D[:, 0])**2 + np.subtract.outer(samples2D[:, 1], samples2D[:, 1])**2)\n", " ], dtype=object)\n", "\n", "for node, neighbours in enumerate(neighbourhoods):\n", " for other_node in neighbours:\n", " if np.intersect1d(neighbours, neighbourhoods[other_node]).shape[0] >= c:\n", " # Density criterion fullfilled\n", " ax.plot(*zip(samples2D[node], samples2D[other_node]), color=\"brown\", alpha=0.25, linewidth=0.75, zorder=0)\n", "\n", "source = 12\n", "member = 15\n", "intersection = [13, 18]\n", "classification = np.zeros(samples2D.shape[0])\n", "classification[source] = 1\n", "classification[member] = 2\n", "classification[intersection] = 3\n", "\n", "ax.plot(*zip(samples2D[source], samples2D[member]), color=\"brown\", alpha=1, linewidth=0.75, zorder=0)\n", "\n", "ax.annotate(\n", " \"\", (samples2D[member][0] - r, samples2D[member][1]), samples2D[member],\n", " arrowprops={\n", " \"shrink\": 0, \"width\": 0.75, \"headwidth\": 3, \"headlength\": 3,\n", " \"facecolor\": \"k\", \"linewidth\": 0\n", " },\n", " zorder=0\n", " )\n", "\n", "ax.annotate(\n", " \"$r$\", (samples2D[member][0] - r/2, samples2D[member][1] + 0.05),\n", " fontsize=8\n", " )\n", "\n", "ax.scatter(*samples2D.T, s=15, c=classification, linewidth=1, edgecolor=\"k\")\n", "neighbourhood = mpl.patches.Circle(\n", " samples2D[source], r,\n", " facecolor=\"None\",\n", " edgecolor=\"k\", linewidth=0.75\n", " )\n", "neighbourhood2 = mpl.patches.Circle(\n", " samples2D[member], r,\n", " facecolor=\"None\",\n", " edgecolor=\"k\", linewidth=0.75\n", " )\n", "ax.add_patch(neighbourhood)\n", "ax.add_patch(neighbourhood2)\n", "ax.set(**{\n", " \"xticks\": (),\n", " \"yticks\": (),\n", " \"aspect\": \"equal\"\n", "})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How the density criterion check and the clustering could be implemented should be explained further below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary on density criteria" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A point is part of a dense region if the point ...\n", "\n", " - DBSCAN: ... has at least $n_\\mathrm{c}$ neighbours within a radius $r$\n", " - Jarvis-Patrick: ... shares at least $n_\\mathrm{c}$ common neighbours with another point among their $k$ nearest neighbours\n", " - CommonNN: ... shares at least $n_\\mathrm{c}$ common neighbours with another point with respect to a radius $r$\n", " \n", "Two points are part of the same dense region ...\n", " - DBSCAN: ... if at least one of them is dense and the two points are neighbours\n", " - Jarvis-Patrick: ... if they together pass the density criterion\n", " - CommonNN: ... if they together pass the density criterion" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-06-19T12:52:43.477733Z", "start_time": "2020-06-19T12:52:43.475271Z" } }, "source": [ "## Identification of connected components of points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Classifying points as part of a dense or a sparse region according to a density criterion, is only one aspect of assigning points to clusters. We still need to identify groups of points that are part of the same region. In this context, the term *density reachable* is often used to describe the situation where a point is directly connected to a dense point. We also use the term *density connected* for points that are part of the same dense region, i.e. they are directly or indirectly connected to any other point in the region by a chain of density reachable points. In other words, it is not enough to know which points are dense but we also need to be aware of the relationship between dense points. As mentioned earlier, for CommonNN clustering density reachability is a direct consequence of how the density-criterion is checked. For DBSCAN, this is a separate definition.\n", "\n", "When we express the connectivity relationship between points in a graph, the problem of identifying clusters of density connected points comes down to finding connected components of nodes within this graph. In the above example, we where primarily interested in the information if a point was part of a dense region by checking the density criterion. Let's now construct a density graph instead in which each dense point constitutes a node and each edge represents the density reachability between two points. We neglect the concept of edge points (points that are not dense but density reachable from a dense point) for the sake of simplicity here. It should be noted, that the inclusion of edge points may lead to ambiguous clustering results in the case where a low density point is a neighbour of two or more dense points in different clusters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DBSCAN" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:09:57.570167Z", "start_time": "2022-11-24T16:09:57.401956Z" } }, "outputs": [ { "data": { "image/png": "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qSeffFKSNGbMGC1cuFAhISEKC2vhke6BU4Ym0F7cDSyGYRhmF+HNRsz7zCueHJfmfae8Nx6UJEVHR+vee+/VxIkT1b59e5Mra5zKykodPny4XlOgjh2rf9/vgIAARUdHn3UKVPv27dWyZctz+hwMw1C/2Rle90N107RUrxyFAeAbHlm2zSselFW5uV88D0F8TFlZme6++269/vrrkqTp06dr5syZ1X42pWfaNCM9u0mag1jDgjQzLYkRBTchLJzFqm0HTG33VTWqcGzNS+oXE6isrCznYuSQkBDdfPPNmjx5svr06WNajU3txIkTNQKEq3BRUFCghnw5W63Wek2BatOmjcub77ziU7pszjp3fqpusXFK6lkXwQNAbbJtxRr+8gazy3BaNWkg0yt9iN1u14033qiPP/5YgYGBmjdvnu6++26Xx+bbHZq6PMutTUJSE6I1e2QyaxTciLBwFoZhaPwbm03tdhNyaLt2LHxIknT++edrxIgR2rRpkz7//HPnMQMHDtQDDzygtLQ0BQX55+yy8vJyHTp06KxToPLy8uRwOOp93uDgYMXExNQIEsciO2v5oXZN+Bk1zvzb+mpIzxizywDgw7xlVD0lPkor7rvC7DJQTzabTdddd522bdumVq1a6Z///Keuu+66Ot9jGIZWZ+VpwYbd5/Q11zs+SuMHdtaw5FhG192MsFAP+XaHhry43pQ++tawIP178pVau3KZpk6dKpvNJkm67LLLNGHCBGVkZOif//ynystP13b++edr0qRJmjBhglq3bu3xen2BYRiy2+31mgJ1+PDhWs8TecXNirpyjAcrr58HB/fQb1Pr7oQFAHXxllH1317SSg/e+HPT6kD9ZWVl6brrrtP+/fsVExOj1atX65JLLmnQObJtxVryxR6tzSmo1xTftuGhGpwYrTH9OzH61IQIC/WUnmnT5KWZHr/u3JtSnHPuTp48qeeff15z5szRyZMnJUm33HKLHnjgAb3//vt69dVXVVhYKOn0guA77rhDv/3tb5WQkODxupuL0tJS5efnuwwSmys7qbCN982jnTCwsx4d1tPsMgD4MG8YVT+580sVLpupSZMmadasWYqI8M62rpAyMjI0atQo2e12JSQk6MMPP9QFF1zQ6PMZhqF8e4mybMXKybPL7ihTaXmlQoICZA0LVmKsVb06RjLVyEMICw3wt/W7NMcDq/er1LaK/8CBA3r00Uf1+uuvyzAMhYWF6cEHH9TkyZO1atUqvfTSS8rKynIeP3ToUE2ePFnXXHONAgLYBdNdHkvP1pte1g1Jkm4f0ElPpSWZXQYAH2fmqHpEaKCS9q7QO4tflSTFx8frlVde0bBhwzxeC+r25ptvavz48SovL9fPfvYzrVixgpkNzQx3jg0wcVBXPTLUM0/p62r31aFDBy1atEhfffWVfv7zn8vhcGj27Nnq1auXKisr9fXXX2vdunVKS0uTxWLRmjVrdO211+qiiy7SK6+8ohMnTnjkc2juggO9859PSJB31gXAt8RYwzTTpAcPT49I1j8W/U0fffSROnfurH379mn48OG65ZZbVFBg3mgH/scwDD399NO64447VF5erptvvlkfffQRQaEZ4q6ige4d1FVzb0qRNaxpFhFbw4I096aUevUF7t27t9atW6cVK1aoW7duys/P11133aU+ffqooqJCK1as0I4dO/TAAw8oIiJCubm5uu+++9SxY0f94Q9/0J493vdU3JdYW3jn7tPWMO+sC4DvSUuJ0xQPPSSrcuYmWkOGDFFWVpYefvhhBQQE6J133lFiYqLeeOONBnW/g3tVtUadMWOGJOmRRx7RW2+95dE9oOA5hIVGSEuJ08e/G6SrL4x263lTE6L18e8GNagvsMViUVpamr755hu9+OKLioqKUlZWloYMGaLrr79eZWVlevHFF7V//37NnTtXXbt2VVFRkZ577jl16dJFN954ozZs2MA33UZIjPXO+bOJsVazSwDQjJg9qt6qVSs999xz+vLLL5WSkqIjR47ozjvv1DXXXKPvv//eI3Xhf44dO6YbbrhBCxYsUEBAgP76179qzpw5THNuxlizcA5qa/dV1cWhvtzZ7uvw4cN66qmnNG/ePJWXlysoKEj33nuvHn/8cbVp00aVlZX64IMP9NJLLykjI8P5vj59+mjy5Mm66aabeDJQh5KSEn3++edau3atPtrwpQoum9zg/99NjX0WADQFb9hEq+oB2OOPPy6Hw6EWLVroqaee0gMPPOC3bcM96cCBAxo2bJgyMzPVsmVLvfPOO7r++uvNLgtNjLDgJlXtvj7Yul/20rP/lTZ1u6/t27fr97//vVauXClJioqK0mOPPabf/OY3CgkJkXS6zdmf//xnLVmyxLnvQExMjHN36JgYevVXVFQoMzNTGRkZWrt2rTZs2KBTp045X+846e8KDPee+Zns4AygKXnLJlo7d+7U3Xffrf/85z+STj/wWrBggXr37u22ulDdN998o+uuu0579+5VdHS0Vq1apX79+pldFjyAsOBmf/nLy/rdtCc08IZfa9S4+01v95WRkaEHH3xQ27ZtkyR169ZNf/zjHzVixAjnDWVhYaHmz5+vl19+udru0LfccosmT57sV998DcPQzp07tXbtWmVkZOg///mPjhw5Uu2YmJgY9ezZUydPntT3bS9Ty+TBJlVb08394jVnlPe1cwXQfHjLJlqGYWjx4sV66KGHVFRUpMDAQD300EN6/PHH1bJly0bXhZr+85//aOTIkSouLlaPHj304YcfqkuXLmaXBQ8hLLjZxIkT9eqrr2ratGmaNWuW2eVIOv10/PXXX9f06dOVn58vSRo0aJBeeOEF9enTx3lcWVmZli1bprlz52rjxo3Oj//sZz/T5MmTlZaWpsDAwAZf3zAMHbQ7fuyXfEz2U2Uqq6hUcGCArC2ClRgboV5xUYqxhpryRPzgwYPKyMhwjh7s27ev2usRERH6+c9/rosvvliHDh3S6tWrtX//fklSSExXxY6dK8mQZP7T/FWTBrIxDQCP8YZNtA4ePKjJkyfrn//8pySpa9eueu2113T11Ve75fz+7u2339add96psrIyXXHFFUpPT1ebNm3MLgseRFhws4EDB+qzzz7T22+/rVtuucXscqo5duyYnn32WT3//PNyOByyWCy64447NGvWLHXo0KHasV988YXmzp2rd99917k7dKdOnXT//fdr/PjxioqKOuv1smzFWrJxjzJy6/9DJDUhWrcNaNqdGO12u9avX+8cPfjmm2+qvR4cHKzLL79cgwcP1uWXX649e/bojTfe0Pr1653HREVF6de//rXGjh2rp78sOaena+6SEh+lFfddYXYZAPyQN2yi9f777+u+++6TzWaTJI0bN07PPfeczjvvvCa7ZnNmGIbmzJmjadOmSZJ++ctf6s0331RYGGvi/A1hwY0Mw1Dr1q1VXFysbdu2KTk52eySXNq7d6+mTZumt956S9Lp3Z4feeQRPfTQQ2rVqlW1Y202m+bNm6dXX31Vhw8flnS6M0XV7tAXXnhhteOrhqfnf7pbW/cXNbrGlPgoTXDTou+qRclVIwebNm1SRUWF83WLxaLevXsrNTVVqampuuKKK7R161YtXrxY//znP3Xs2DHncUOGDNHYsWM1YsQI5zfMVdsOaNI/tpxTje7w8i29NbxXh7MfCADNlN1u19SpU/XKK6/IMAxFR0frL3/5i375y1+ylqsBysvLNWnSJL366ulN8R566CH98Y9/pOORnyIsuNH+/fsVHx+voKAgnThxwrmQ2Ft98cUXevDBB/Xf//5XkhQXF6fZs2drzJgxNb4hnDp1Sm+//bZeeuklZWdnOz9+7bXX6oEHHtCQIUNUcKzEKxa+VVZWKjMz0zly8Omnn1ZblCydXruRmpqqwYMH66qrrlKbNm104MABvfnmm1q8eLG+++4757Fdu3bV2LFjdfvttys+Pr7G9QzD0Pg3Nrv1826o1IRoLbi9Lz8MAUDSZ599prvuuks5OTmSpOuvv17z5s1Tx44dTa7M+x0/flw333yzVq9eLYvForlz5+r+++83uyyYiLDgRlU7Jffs2bPG1BZvZRiG3n33XT3yyCP64YcfJEmXXHKJXnzxRV155ZUuj//Pf/6juXPnauXKlc79GboPvkWWfreoxHD/U4eztdSrWpRcte5g3bp1LhclV40cpKamqlOnTpJOjzqsXLlSixcv1po1a1RZWSnp9GjLr371K40dO1ZXXnnlWW/C8+0ODXlxfZO0FDwba1iQPv7dII8tmgcAX1BSUqJnnnlGs2fPVllZmSIiIjRnzhxNnDiRJ+S1OHjwoIYPH66vvvpKYWFh+sc//qERI0aYXRZMRlhwoz/96U/6/e9/r1/96ldaunSp2eU0iMPh0Ny5czVr1izntJvRo0fr2WefVdeurneT3rlzp15++WW9veWQWl7+6yav8czNes5clJyRkaG9e/dWOzYiIkKDBg3S4MGDlZqaqosuuqjaDX9mZqYWLVqkt956q1qwGDhwoMaOHatf/vKXioho2KZr6Zk2TV6a2fhPsJHm3pTSoI38AMCffPPNN7rrrrv0+eefS5Iuv/xyzZ8/Xz179jS5Mu+Sm5ura6+9Vj/88IPatm2rlStXasCAAWaXBS9AWHCjO++8U2+88Yaeeuop5xbovqagoECPP/64XnvtNVVWViokJES//e1vNX36dJeLml9Zv0vPrsn1WH0XlX2nPWsW1roouWpqUd++fRUcHFztmMOHD+utt97S4sWLlZmZ6fx4XFycbr/9dt15553q0aPHOdX3t/W7NMeDfx+udjsFAFRXWVmpV155RVOmTNHx48cVHBys6dOna8qUKWxEKunTTz9VWlqajh49qm7duunDDz9Ut27dzC4LXoKw4EZ9+/bVV199peXLl2vkyJFml3NOsrOz9dBDD+mjjz6SJLVp00ZPPvmk7rnnHucumWY9ST+U/kedyv1UKSkpzpGDgQMH1licLZ1epPXRRx9p8eLFSk9PV1lZmaTT+0iMGDFCY8eO1ZAhQxrVErY2ngpQBAUAaJh9+/bpvvvu06pVqyRJPXv21Pz583X55ZebXJl5li5dqttvv12lpaUaMGCA3n//fbVr187ssuBFCAtuUlFRoYiICJ06dUrfffedunfvbnZJbrFmzRo99NBD+vbbbyVJiYmJ+tOf/qQ+V1yla176xJQ5+i0CDS2f0EeJF9Te+ee7777T4sWL9eabbzo3mpNO7/I5duxY/frXv27SdnrpmTbNSM9ukr+fs63hAADUrmqt3v3336+CggJZLBbdd999mj17tqxWq9nleYxhGHr++ef1+9//XpI0cuRILVmyhA3tUANhwU127typ7t27KywsTMePH3frk2qzlZeX67XXXtPjjz+uwsJCSVLPiX/RiajOptXkqvuP3W7XP//5Ty1evNjZ4Uk6PSoyZswYjR07VhdffLHHasy3O7yiOxQAoKYjR47o4Ycf1uLFiyVJHTt21CuvvKLhw4ebXFnTq6io0OTJk/XXv/5VkvTb3/5WL7zwQrO6d4H7EBbcZMWKFRo5cqT69Omjr776yuxymkRRUZFmz56tVz/cpNbDH5ZhGKa26nz5lt66Lqm9PvnkEy1evFjvvfeeTp48KUkKCAjQtddeq3Hjxmn48OGmtbGt2ndiwYbdDdq47ad/t73jozTeTftOAAD+JyMjQ3fffbe+//57SdJNN92kuXPnKiYmxuTKmsbJkyd1yy236P3335fFYtHzzz+v3/3ud2aXBS9GWHCTp59+WjNmzNDtt9+uN954w+xymtS1L2Qo55DD7DLULuCEjrwz1fkNXpISEhI0duxY3XbbbYqNjTWxupqybcVa8sUerc2p347W4UGVGt67k8b0b9odrQHA3508eVJPPvmknn/+eVVUVKh169Z6/vnndeeddzarBzQFBQW6/vrr9eWXXyo0NFRLlizRjTfeaHZZ8HJBZhfQXFRt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AABNoqKiQm+99ZaeeOIJ7d69W5J0/vnn64knntBtt92moCBuQwBvx79SAADgVpWVlVq+fLkee+wx5eTkSJJiYmL06KOP6q677lJoaKjJFQKoL8ICAABwC8MwtGbNGj366KP6+uuvJUmtW7fWI488okmTJqlVq1YmVwigoQgLAADgnH3yySeaPn26NmzYIEkKDw/Xgw8+qAcffFCRkZEmVwegsQgLAACg0TZt2qRHH31UH330kSQpLCxMkyZN0iOPPKK2bduaXB2Ac0VYAAAADZadna0ZM2ZoxYoVkqSgoCDdddddmj59uuLi4swtDoDbEBYAAEC97dy5U0888YTefvttGYahgIAAjRkzRo8//ri6dOlidnkA3IywAAAAzmr//v2aOXOmFi5cqIqKCknSjTfeqKeeekqJiYkmVwegqRAWAABArQoKCvTMM8/olVdeUUlJiSTp2muv1dNPP60+ffqYXB2ApkZYAAAANRQVFelPf/qTXnrpJZ04cUKS9LOf/UyzZs3SwIEDTa4OgKcQFgAAgNPx48f15z//Wc8995yKiookSX379tWsWbM0ZMgQWSwWcwsE4FGEBQAAIIfDoVdffVWzZ89WQUGBJOmiiy7S008/rbS0NEIC4KcICwAA+LGysjK9/vrreuqpp7R//35JUteuXfXkk0/q5ptvVmBgoMkVAjATYQEAAD9UWVmpd955R48//rh27twpSerYsaMee+wx3XnnnQoODja5QgDegLAAAIAfMQxD77//vh599FFlZ2dLktq1a6dp06Zp4sSJCgsLM7lCAN6EsAAAgB8wDENr167Vo48+qi+//FKSFBkZqd///veaPHmywsPDTa4QgDciLAAA0Mx99tlnmj59utavXy9JatWqlSZPnqyHH35YrVu3Nrk6AN6MsAAAQDO1ZcsWPfroo/rggw8kSSEhIbr33ns1depUxcTEmFwdAF9AWAAAoJnJycnRY489pvfee0+SFBgYqHHjxmnGjBmKj483uToAvoSwAABAM7F79249+eST+vvf/67KykpZLBbdcssteuKJJ9S9e3ezywPggwgLAAA0kGEYOmh3KMtWrJy8Y7KfKlNZRaWCAwNkbRGsxNgI9YqLUow11CObmR04cECzZs3S/PnzVVZWJkkaMWKEnnrqKSUnJzf59QE0X4QFAADqKctWrCUb9ygjt0CFx0vO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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Density criterion\n", "r = 0.5 # Neighbour search radius\n", "k = 1 # Minimum number of neighbours\n", "\n", "neighbourhoods = [\n", " # Neighbour within r?\n", " np.where((0 < x) & (x <= r))[0]\n", " # distance matrix\n", " for x in np.absolute(np.subtract.outer(samples, samples))\n", "]\n", "\n", "n_neighbours = np.asarray([len(x) for x in neighbourhoods])\n", "dense = n_neighbours >= k\n", "\n", "# Construct graph as dictionary\n", "# keys: dense points, values: density reachable points\n", "graph = {}\n", "for i, point in enumerate(neighbourhoods):\n", " if dense[i]:\n", " graph[i] = neighbourhoods[i][dense[neighbourhoods[i]]]\n", "\n", "G = networkx.Graph(graph)\n", "pos = networkx.spring_layout(G, iterations=10, seed=7)\n", "networkx.draw(G, pos=pos)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2020-06-19T13:56:04.569929Z", "start_time": "2020-06-19T13:56:04.548535Z" } }, "source": [ "Once such a graph is constructed, graph traversal algorithms can be used to find the connected components of nodes within the graph. A generic way to do so using a breadth-first-search algorithm could look like this:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:10:23.794080Z", "start_time": "2022-11-24T16:10:23.786183Z" } }, "outputs": [], "source": [ "labels = {} # Cluster label assignments\n", "visited = {k: False for k in graph} # Node has been assigned\n", "queue = deque() # First-in-first-out queue\n", "current = 1 # Current cluster number\n", "\n", "for point, connected in graph.items():\n", " # Source node\n", " if visited[point]:\n", " continue\n", " \n", " labels[point] = current\n", " visited[point] = True\n", " \n", " while True:\n", " for reachable in connected:\n", " if visited[reachable]:\n", " continue\n", " \n", " labels[reachable] = current\n", " visited[reachable] = True\n", " queue.append(reachable)\n", " \n", " if not queue:\n", " break\n", " \n", " point = queue.popleft()\n", " connected = graph[point]\n", " \n", " current += 1" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:10:26.075225Z", "start_time": "2022-11-24T16:10:26.065476Z" } }, "outputs": [ { "data": { "text/plain": [ "{0: 1,\n", " 11: 1,\n", " 14: 1,\n", " 17: 1,\n", " 19: 1,\n", " 1: 2,\n", " 6: 2,\n", " 16: 2,\n", " 2: 3,\n", " 4: 3,\n", " 5: 3,\n", " 7: 3,\n", " 3: 4,\n", " 10: 4,\n", " 9: 5,\n", " 12: 5,\n", " 13: 5}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "labels" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:10:28.495060Z", "start_time": "2022-11-24T16:10:28.177565Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAHgCAYAAADquvHSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAABcSAAAXEgFnn9JSAACZRElEQVR4nOzdd3hT5fvH8fdJuncpneyy9957KiII4p6AouJCARUFRBTEhYoDBBUQBRcggsqQvfcsexYK3XumTXJ+f/RLf9SmbZKmTcf9ui4vMDnnee4qtPmcZymqqqoIIYQQQgghxH9o7F2AEEIIIYQQonySsCCEEEIIIYQwScKCEEIIIYQQwiQJC0IIIYQQQgiTJCwIIYQQQgghTJKwIIQQQgghhDBJwoIQQgghhBDCJAkLQgghhBBCCJMkLAghhBBCCCFMkrAghBBCCCGEMEnCghBCCCGEEMIkCQtCCCGEEEIIkyQsCCGEEEIIIUySsCCEEEIIIYQwScKCEEIIIYQQwiQJC0IIIYQQQgiTJCwIIYQQQgghTJKwIIQQQgghhDBJwoIQQgghhBDCJAkLQgghhBBCCJMkLAghhBBCCCFMkrAghBBCCCGEMEnCghBCCCGEEMIkCQtCCCGEEEIIkyQsCCGEEEIIIUySsCCEEEIIIYQwScKCEEIIIYQQwiQJC0IIIYQQQgiTJCwIIYQQQgghTJKwIIQQQgghhDBJwoIQQgghhBDCJAkLQgghhBBCCJMkLAghhBBCCCFMkrAghBBCCCHKJaOqotPrMaqqvUupshzsXYAQQgghhBBJWZnsvBZOWEw0YTHRnI6NJVmXlfe+u6MjTar70yIgkBYBgfSoVYdADw87Vlw1KKoqUU0IIYQQQtjH8egofjpxjL/On0VnMJh9n1ZRGBjagMdataFrzVooilKKVVZdEhaEEEIIIUSZu5yYwJQt/7L/RkSJ22pS3Z/Z/QbSOijYBpWJ20lYEEIIIYQQZcZgNLLk+FE+2bPTopGE4mgUhWfadWR85644O8hMe1uRsCCEEEIIIcpEqk7Hc3+vYW/EtVLro0l1fxYNG0GQh2ep9VGVSFgQQgghhBClLjkri8dXryAsJrrU+6rp5cXP9z5IDS+vUu+rspOtU4UQQgghRKnKyMnhqTWryiQoAESkpPDYH78Tm5FeJv1VZjKyYEPpyemcP3yZ84cuc+HIJaLD48jOykZRFJxdnQiuH0ij9vVp1D6U+m3r4eruYu+ShRBCCCFK3ZubN/LrqZNl3m/3WrVZOvw+2SmpBCQslJCqqhzfdoo18zew+48DGA1Gs+5zcnGk70M9GPr8HTTuUL+UqxRCCCFKT47BwPn4OE7FxpCUlUW2wYCDRoO7kxON/arT3D8Adycne5cp7GRH+FVG/bnSbv3P6jeQh1u0slv/FZ2EhRLY9cd+Fk35metnb5SoncYd6zP2o8dp3bu5jSoTQgghSld8Rga/nT7JxksXORMXS3YRu9ooQKhvNXrWrsMjLVvToJpf2RUq7CpFp2PwsiVEpqVZdN+V8ZOKfD/ktVdxrlnDrLbcHR1Z/+goWb9gJQkLVkiOS+Grlxex7ZfdNm13+IuDGTP7EZmeJIQQotw6FRPNd0cP88+F8+QYrdv2smvNWoxq3Y4BofVlekgl98X+vXy+f4/F910ZPwmtlxduLZqZfN9n0AAcfH3Mbu++Zs35aMCdFtchJCxY7NjWMGY9/DlJMcml0n5I/UCmr3yN0FZ1SqV9IYQQwho6vZ7P9+/h2yOHMNroo0P/eqHM6jeQAHcPm7Qnypccg4FeS74jOt2yUQXIDQsuDUIJful5m9TirNWy96ln8XFxtUl7VYnshmSBPWsO8tZd75daUAC4eSmaiX2mc3rf+VLrQwghhLDEyZhohv78IwsOH7RZUADYfOUyg35awp/nztisTVF+bL5y2aqgUBp0BgMrTp+ydxkVkoQFMx3aeJz37p9Dji6n1PtKS0rnrcGzuHjsSqn3JYQQQhRl+9UrPLjiFy4mJpRK+yk6Ha9u+IevDuxDJjtULr+dLvvdj4ry++kwe5dQIclZ2Ga4eSmKGSM/Rp9juyPJi5OenMHUu2ez8MQcvKrJCYRCCCHK3o7wq4z9azV6o3k7/ZXEp/t2ozcaeaVLt1LvS5Q+VVU5GhlZsjaMKsnbd5K6Zx+G5BRc6tfDu18fXOqHWtXehYR4UnQ6vJydS1RXVSMjC8UwGo188tQ8stJ1Ft2XqaZzSj3IDnUtW9XVHFF3kqzGW9RG/M1E5r+6xKJ7hBBCCFsIi4nmub//LJOgcMsXB/ay/OTxMutPlJ7rKckk67JK1Ibu8hUSVv2J4uiIa+OGZF68TOTXC0g/bv2IxakyOhSuMpGRhWKs+XoDJ3dYNpcyQ03jENvIJgs/gtCgIZ5oDrOd1mo3/JQgs9va9OMOet3Xla5DO1hauhBCCGEVnV7PpI3ryNLrzbo+7tcVZl3ne/dgtO7uRV4zc+c2utWqTV0fX7PaFOWTrU5q9h0yGO+B/VAUhezIKG5+9iVxv/yGa6MGaFwtX6wcFhtN11q1bVJbVSFhoQipiWl8/9Yyi+5RVZWzHCEHHW3pkRcM0tUUDrCF0xyimzoYraI1u80vX/yOToPbonUw/x4hhBDCWl8d3Mf5BPNHw1P37DPrOu+B/YoNC1l6PW9s2sDPIx9EI9uqVljhyUklut+huh+O/tXzggKAU3AQHh3bk7prDyk79+AzqL/F7V5NKlldVZGEhSJsXLLN4ulHGaSSQAzB1M03guCueFFXbcIlwrjBZWrT0Ow2Y6/Hs3ftIXqM6GxRLUIIIYSlzsTF8s2hAxbdU2/uJ4W+Z8zO5uanX+Dg44ODr3mjBQdv3mD5yeM81qqNRXWI8sPcUanC1Jr2psnXXZs0InXXHjLPX7AqLOhKWFdVJGGhEEajkbXfbLT4vnhiAAikZoH3AqnBJcJIJNaisACwdv4GCQtCCCFK3aKjhzHYcFeihFV/ok9MIui5py06gO27I4d4pGVrGV2wo6ysLJKTk/P+SUlJKfLfb38tvVVzHLp3tXlNDt7eAOTExlp1v+y3ZTkJC4U4tvUUNy5Yvoo/gdw5eh4UPFLcBXcUFFJJsrjdI5tOcuNiJDUaBFt8ryhfUuJTOX/4MucPXSLyUhTZuhxUVcXJ2YnAuv406lCfRu1D8Q30sXepQogqJjEzk7/On7VZe5lnz5O6dz/VH7ofBx8fi+69lpLMzvCr9K5bz2b1VBWqqpKWllbsB/rigkB2drbVNXjXCqGaDb+mWxSH3I+uxkzrFk+7OMhHX0vJf7FCHN9q3V68GaSioMGZgotuNIoGV9WdDNLQqzk4KI6W1bTttISFCiopNpn1i7ayYfEWIs6bF0KD6voz6Mm+DB7bn+ohpfEtVwgh8lt55hQ6g222CVcNBuL/+BPHAH88One0qo2fTh6rcmFBr9eTkpJi0VP8/76WkpKC0Ya7WHl6euLt7Z3vHy8vryL//YQuk8/PnbZZDbfkxOee9+EUbP5mMbcL8Sz4MFcUTcJCIS4cuWzVfXpy0KItdKjVgdyAYECf93uzazp8CZ62fH6esJ/Iy9EsnfEb237dgz7bsnmSUVdjWTrjN36auYLuIzrxxPQHqNu8VilVKoQQsPHyRZu1lbp3PzlR0VR/6H4UjXU7tW8Pv4pOr8e5gjwN1ul0Vj/Fv/X79PR0m9Wj1Wot/pD/39c8PT3RWPH/r3ZigtVhIfPceZzr1Ebj4lLgvezrEQA41Qixqu2WAYFW3VeVVYy/fWVMVVUuHLY2LOjRUviuRZr/HW1hwPInN9YGGFH2jEYja+Zt4LvJy9BlWLZIvkBbBiM7V+xj75pDPDH9AR54bZjsjCWEsDmD0WizPeiN2dkk/rMBrZcn7h3aWd2O3mjkbFwsrYNKd1RdVVXS09Otnp9/65+STNv5LxcXF4s+1Jv6d1dXV4vWidhSXR9fPBydSMux7L+JqqrEr/gDp5o18X/sIRTt//+8M6Snk7JjF2i1ePfrY1VdLQICrLqvKpOwYEJKfCpJsSlW3atihCLCQkkW1oSfiijB3aKsxN1M4IPHvuD4tlM2bVefrWfRlOXsXr2ft5a/Qkh964ZghRDClMuJiWTaaKeY9CPHMKan43PXHWgcLRtF/6+TMdFFhgWDwZD3ob0k8/NLa9qONR/yvby8cHJyslk99qBRFFoFBbHn+jWL7lMUBc/uXUn4Yw36hAS8+/fFKSSInOgYElavxZiZic9dd+BY3c/immp7eVPN1c3i+6o6CQsmWLpd6u20OKAWEQlywwQ4WPGfPitDh6qqdntKIIoXeTma1we+S9SVmFLr49zBS7zacxofbJhKvZZ1Sq0fIUTVcjrOdt+3UvfsBcC9ZYsSt7Xor7Vs//LrQj/0p6WllbiPW26ftmPNh3xvb288PDzQamX0F+C+ps0tDgsAXr17ohoMJK3fSMz3S/7/Da0WvwdG4tmti3X1NCv5n8eqSMKCCQa99Yu7HHBER2ahH+pvTT/SWrhe4RajwShTUMqpmOtxTOr3DjHX4kq9r4SoJF7rP4NPd7xH7SY1Sr0/IUTll5SVaZN29EnJ6MKvo/XywtHKRai3O3XxIlsXLy32ulvTdqz9kO/l5YWbm5s8kLOhwQ0aMXPHNhIs/LOlKAo+/fvi0bE9mWfOYUhOwSkkCOd6dYs91K8wDhoNDzZvadW9VZ2EBROcXKwfMnXAkSwy0JGJC/mHulRVJZN0FDR5axcsYcRISI0QgoKCCA4Ozvv19t/f+tXDw8Pqr0FYTpep463Bs8okKNySHJfK5DveY8GxT/D0lf/fQoiSybbRLkgZp88AuYdn2eKDd/3GjXjpvfeK/eBf0aftVEbODg7c37wFCw4ftOp+By8vPK3cSeu/7qjfAH8rg0ZVJ2HBBM9qHmi0GowGy+cveuFLGslkkFYgLOjIxIgBH6pb9Q00W9URExNDTEwMJ06cKPJad3f3QoPE7SGjevXqVu1yIPL74e1fCT9d9JoSo2rkDIfxxZ8QpW6xbd5QL5NEAs2VDoVeE3s9nvkTlvD64hctLVkIIfJx0Nhm1Drr4iUAXJs0tkl7rVq0YOqQe2zSlih7T7XtwG+nTpKYZd25CLbgpNUyvnM3u/Vf0UlYMMHZ1Zk6zWpy5aTl8+yqE8xNrpJILNXIv+I+/n8HtlXHumHZrnd05KsPZxEZGUlUVFS+X2//fXp6Ounp6Vy8eJGLF4veBk+r1RIYGFjkKMWtX11MbGEm4PTec6z49C+T76mqio5MUkgknHMkk4Av/oVem4OOdFK5wWWiuE4wxa9J+PeH7fS+ryudh7Qv0dchhKjaPG30ZD77Zu5ZMtZubflfnk7ONmlH2Ed1Nzdm9OnPy+v/tlsNr3bpRoNqli+IFrkkLBSiUfv6VoWFagSgQcsNrlBHbZR38JpRNXKd3A/u1bFuC7iW3ZrRunVrWrduXeR1aWlphQaJ21+Li4vDYDBw8+ZNbt68WWz/Pj4+Zk2B8vX1rTJzPo1GI5+O/QZVNb2o/Sg7ScC8RYNXOcslrNtB6fPnFvLDxa9wci7ZriNCiKqrcXXTDzIsoer15ETnfs/TenqWuD2Axn7VbdKOsJ8hDRvz86GD7LXhInpztQ4M4qm2hY/Qi+JJWChEow712bBkq8X3OSiO1FWbcJlTHGM3DdQWOODIJU6TRjLB1MFD8ba6JnN4eHjQsGFDGjZsWOR1OTk5xMTEFDlKcetXnU5HUlISSUlJnD17tsh2nZycCh2duD1kBAYG4ljCLfXs7cimk0VOP/KnBn4E4oE38URzjQuFXuuJD/VpjhseqEAY+82uI+5GArtW7qPfIz0tKV8IIfI0quaHo0ZDTgm2EDWkpYPRCFotGjdXm9Qlh2hVfP/++y9/vToJzzFPWH3ysjX83dyZe+cQHGS6dYlIWChEj3s7Me+VxVbtjFSPJuSg4zoXOcS2vNcDqEkTrDucxs3bhTZ9m1t1b2EcHR2pUaMGNWoUvZuOqqokJycXOUpx6/eJiYlkZ2dz7do1rl0rfmSmevXqZk2B8vT0LJejFWvnbyjy/VrK/we8BDW2yGurK8F5o05xapTFtayZv0HCghDCas4ODjT2q05YrPVPf43/2/VG6+lhs+/ZzfzlEK2KbPHixTzzzDPo9XpaHw9DadSI66nWnWVliWquriwdcR+1vX1Kva/KTsJCIaoF+dJzZGe2/brH4nsVRaExbaiphpJADCoq3vjhrVSzup7TScfo2r0r48eP56GHHsLZuezmcCqKgo+PDz4+PjRt2rTIa3U6HVFRUcVOgYqOjkav1xMXF0dcXBxhYWFFtuvm5mbWFCh/f/8y29865noc+9YeKpO+zHFq9zkunwgntJWcvSCEsE7POnVLFhYycxex2moKUvvgEDzL8OedsB1VVZkxYwYzZswA4LHHHuP7778nOSeHUX+u5Exc0Q/QSiLE05Olw+8j1Nf6z13i/ylqYZOtBSd2nGZin+n2LgMVlUNOW0jWJQIQEBDAuHHjeO655wgKqpin+BqNRuLj482aApWammp2uxqNhoCAgGKnQAUFBeHmVrJTHNcv3sqcp+aZff0F9SThnKMZHYrdDSlOjeIYuwimDs0V87eNe/qDx3jwddk1RAhhnYiUZHov+a6Io0XL1qeD7mJ4k6IfUonyJycnh2eeeYYlS5YAMGXKFN5777280aYsfQ6f79vDd0cPY7Txx9CRTZsztWcfvGVTFpuRkYUitOzZlBY9mhC2q+g5+qUtSr2GwTGHO/rcwcmTJ7l58yYzZsxg9uzZPPTQQ4wfP5527ayb3mQvGo0Gf39//P39admy6ENS0tPTCwQIU+EiJiYGo9GYN7JRHC8vL7OmQPn5+ZkcTj9/6JLVX39puXCk/NUkhKg4anp507duKFuuXrZ3KVRzcWVwg6LX3onyJyUlhfvuu49///0XrVbLvHnzeOaZZ/Jd4+LgyOQevRlUvyFvbNrApcSEEvcb6O7BrH4D6VcvtMRtifxkZKEYERciea7NJHSZ2Xbp372aGzdrneXgsQMA1K5dm+HDh3Pw4EH27t2bd12PHj145ZVXuOeee3BwqJoZUK/XExsbW+wUqMjISLIs2O/Z0dGRwMDAAkHi7I8RJFw1f95lWYwshNQP5IcLX5l9vRBC/Nfu6+E8/scKe5fB8+07Mql7L3uXISxw48YN7rrrLk6cOIG7uzu//fYbd911V5H3GIxGtl29wk8nj7E9/KrFfbYPDuHRlm0Y3KAhzlX0809pk7BghlWf/838CUvs0vc7q16j67AOLFu2jDfffJMbN24A0LVrV55++mk2b97Mb7/9hl6vB3LDxIsvvsjTTz+Nr6+vXWou71RVJSUlxawpUPHx8YW205fhaBXzvzGVRVgAWJOyFFcP2+xCIoSomiZs+IfV587Yrf/s6Bi8/1rPd998Q9euXe1WhzDfyZMnueuuu4iIiCAwMJC///6b9u0tO//nalIim69cJiwmmrCYaC4nJhSYElfby5sWAYG0CAikd526NJUF8KVOwoIZjEYjb9/zIfv/PlKm/d797EDGz///obuMjAzmzJnDBx98QEZGBgAPP/wwr7zyCmvWrGHBggXExcUBuQuCn3zySV5++WWaNGlSpnVXJtnZ2URHRxcIEjdv3OTyd5YNm5ZVWPj15kKqBUlQFEJYLykrkzt++oHYjHS79J+x5Ceijx5DURRefPFFZs2ahaeNFk0L29u8eTP33nsvKSkpNGnShHXr1lG3bt0St5uZk0Nqto5sgwFHjRZ3Jyc8bHR4oDCfbDxrBo1Gw9RfJ9CyV9ktsurzYDde/OqpfK+5ubkxbdo0Lly4wOjRo1EUhZ9//pnevXujqiqnTp3i+++/p2XLlmRkZDB//nyaNm3K4MGDWb9+PcYS7J1dVTk5OVGrVi06derEsGHDePbZZ5k+fTpfzP3C3qUVSp+tt3cJQogKzsfFlff7D7RL38+068Cpfzfx5JNPoqoqX375Jc2bN+fvv+13ArAo3NKlS7nzzjtJSUmhV69e7NmzxyZBAcDV0ZEAdw9qenkT6OEhQcFOJCyYycXNmVl/v0WHO4o+PdkWBo3qw+QfXy50C9CQkBAWLVrE4cOH6dOnD1lZWbz//vu0atUKo9HIkSNH2LJlC/fccw+KorB+/XoGDx5M8+bNmT9/Punp9nlSVJk4OJXfeZGOcoqzEMIG+terz/Tefcu0zyENG/Fat574+fmxZMkSNm7cSL169bh+/Tp33303Dz/8MDExZX8KsChIVVVmzpzJk08+iV6v56GHHmLjxo0yBboSkrBgAVd3F95bM5nH374frYPt9/J3dnPmxS+fYuJ348xqv23btmzZsoXVq1fToEEDoqOjGTt2LO3atcNgMLB69WouXLjAK6+8gqenJ2fPnuX555+nZs2avP7664SHh9v8a6gqtFot7t4l23q1NGg0Cm5esl5BCGEbT7Zux7ReZRMY7m7YmDmD7kJ722m7AwcO5OTJk0yaNAmNRsMvv/xC06ZN+eGHH5BZ1PZza2vUadOmAfDGG2+wbNmyMj0DSpQdCQsWcnB04Il3HuCr/bNtevhVq97N+PbEHO554U40FhxLrigK99xzD6dOneKzzz7Dx8eHkydPMnDgQIYOHUpOTg6fffYZERERzJ07l/r165OUlMTHH39MaGgo9913H7t27ZJvulao36auvUsooHbTmji7yjdrIYTtjG7Tjrl3DsHTqXS+t2gUhWfbd+SzO+7CycSIuru7Ox9//DEHDhygTZs2JCQkMGrUKAYNGsTly/bf4rWqSU1NZdiwYXz33XdoNBq+/vprPvjgA4s+u4iKRRY4l0BOdg7bf9vL2vkbOL33vFVtdLijNUOfu4MuQ9vb5C9afHw87777LvPmzUOv1+Pg4MC4ceOYPn06fn5+GI1G/vnnHz7//HM2b96cd1+7du0YP348Dz74oDwZKIJOp2Pv3r1s2rSJnYsO4RRl/oK7sljgPPCJ3ry+5EWzrxdCCHNFpaXy1pZ/2Xb1is3aDPX15eMBd9I2OMSs6289AJs+fTpZWVm4urry7rvv8sorr1TZbcPL0s2bNxkyZAjHjh3Dzc2NX375haFDh9q7LFHKJCzYyMVjV/j3h+3s//cw107dQKuYnkbk5ulKg3b1aNa1MXeM7kvNhsGlUs+5c+d47bXXWLt2LQA+Pj68/fbbvPDCCzj9b4HQyZMn+eKLL/jpp5/yzh0IDAzMOx06MDCwVGqrSAwGA8eOHWPz5s1s2rSJXbt2kZmZCUAgtWipdC7y/pvqVZLJ3TUpmXjSSMYXf9zIDRnB1MFH8QMgSY0nktypYVlkEE8UbnjgS+62cN5UKzZkPP/5aEa8XPSe1kIIYS1VVfnz3FkWHD7Aufg4q9vxd3Pn0ZateaZ9B1wcLF9ndfHiRZ555hm2bt0K5D7w+u6772jbtq3VNYminTp1irvuuotr164REBDAX3/9RceOlu3WJyomCQs29tVXX/HySy8zpM8wpkychi4zG41GwcnFkZAGQdRoGFymQ3WbN29mwoQJnDhxAoAGDRrw0UcfMXz48LxTiePi4vj222/56quvuHnzJpC7C9DDDz/M+PHjq9Q3X1VVuXjxIps2bWLz5s1s3bqVhIT8W6QGBgbSrFkzMpKzcD8ahIbC15ecUg/mBQBTbh9luKle5TSHCr22uFEGRVH44eKXBNeTkCeEKF2qqnIo8gY/njjG5suXyNQXvwubVlHoEFKDx1q2YWD9BianHFlaw+LFi5k4cSJJSUlotVomTpzI9OnTcXMrf2vKKrKtW7cyYsQIkpOTadSoEevWrSM0VE5KriokLNjYc889x4IFC3jrrbeYNWuWvcsBcp+OL1myhClTphAdHQ1A7969+fTTT2nXrl3edTk5OaxcuZK5c+eyb9++vNd79erF+PHjueeeewrdoakwmelZXDxyhQuHL3P+yCVuXozKPQ1bBScXRwLq+NOwXSiN2ofSqEN9PHzcbfNFWyAqKorNmzfnjR5cv3493/uenp706dOH1q1bExsby99//01ERASAWVOKykrnIe2YufZNe5chhKhiDEYjlxITcg/Sio0hKTMTncGAo1aDu6MTjf2q0zIgkKb+/laNIhQnKiqK8ePH89tvvwFQv359Fi5cSL9+/WzeV1W0fPlyRo0aRU5ODt27d+fPP//Ez8/P3mWJMiRhwcZ69OjB7t27Wb58OQ8//LC9y8knNTWVDz/8kDlz5pCVlYWiKDz55JPMmjWLkJD880X379/P3Llz+f333/NOh65Tpw4vvfQSTz31FD4+PkX2de7gRdbM38C2X3aTnZVjVn0arYZu93Rk2PN30KZvi7yRD1tLSUlh+/bteaMHp06dyve+o6Mj3bp1Y8CAAXTr1o3w8HB++OEHtm/fnneNj48PjzzyCAM63cG80T+WSp2WmvnXm3S+q13xFwohRCW0Zs0ann/+eW7cuAHAmDFj+Pjjj6lWrZqdK6uYVFXlgw8+4K233gLg/vvvZ+nSpbi4uNi5MlHWJCzYkKqq+Pr6kpyczIkTJ2jZsqW9SzLp2rVrvPXWWyxbtgzIPeztjTfeYOLEibi753+yf+PGDebNm8eCBQuIj48HcnemuHU6dOPGjfNdf3z7KRa+9iPnD10qUY21GocweubD9BzZpUTtwP8vSr41cnDw4EEMBkPe+4qi0LZtW/r370///v3p3r07x48fZ/Hixfz222+kpqbmXTdw4EBGjx7N8OHDcXFxQVVVJvadzskdZ0pcZ0nUbV6Lb459bPHIjxBCVCYpKSm8+eabzJ8/H1VVCQgI4Msvv+T+++8vtQdQlZFer+fFF19kwYIFAEycOJGPPvpIdjyqoiQs2FBERAS1atXCwcGB9PT0vIXE5dX+/fuZMGECe/bsAaBGjRq8//77PPbYYwW+IWRmZrJ8+XI+//xzwsLC8l4fPHgwr7zyCj269WTRm8v58+v1Nq2x9wNdefHLp/Dx9zb7HqPRyLFjx/JGDnbu3Jm3KPmWBg0a0L9/fwYMGEDfvn3x8/Pj5s2bLF26lMWLF3P+/P/vblW/fn1Gjx7NE088Qa1atQr0F3H+Js+2mWT2CIqtabQavtgzi8YdG9ilfyGEKG92797N2LFjOXMm90HO0KFDmTdvHjVr1rRzZeVfWloaDz30EH///TeKojB37lxeeukle5cl7EjCgg3dOim5WbNmBaa2lFeqqvL777/zxhtvcPXqVQDat2/PZ599Rs+ePU1ev3XrVubOncvatWtRVRUPvOng1BuHnNIJRz7+Xrz18yu07Wd6pObWouRb6w62bNliclHyrZGD/v37U6dO7hkZOp2OtWvXsnjxYtavX4/RaARyR1seeOABRo8eTc+ePYt9IrXys7/4ZuIPNvhqLffQ5BE89f4jdulbCCHKK51Ox+zZs3n//ffJycnB09OTDz74gOeee06ekBciKiqKu+++m8OHD+Pi4sLPP//M8OHD7V2WsDMJCzb0ySef8Nprr/HAAw/w66+/2rsci2RlZTF37lxmzZqVN+1m5MiRfPjhh9SvX9/kPRcvXuSjKXO48HskDth+0drtHJwcmPrLq3Qf3gnIvyh58+bNXLt2Ld/1np6e9O7dmwEDBtC/f3+aN2+e7wP/sWPHWLRoEcuWLcsXLHr06MHo0aO5//778fQ0/wwFg8HAm3fO4ujmkyX8Si3TsH0on++aiZNz6f73F0KIiurUqVOMHTuWvXv3AtCtWze+/fZbmjVrZufKypezZ88yePBgrl69SvXq1Vm7di1dupR8KrCo+CQs2NCoUaP44YcfePfdd/OOQK9oYmJimD59OgsXLsRoNOLk5MTLL7/MlClTCixqvnj0ChP7TicjJdN0Yzam0WqoOcSX/Rd3Fboo+dbUog4dOuDomP8DdHx8PMuWLWPx4sUcO3Ys7/UaNWrwxBNPMGrUKBo1amR1fekpGbw+4N0Sr9cwV63GIXy6412LpmgJIURVZDQamT9/PpMnTyYtLQ1HR0emTJnC5MmT5SBSYOfOndxzzz0kJibSoEED1q1bR4MGMrVV5JKwYEMdOnTg8OHDrFq1ihEjRti7nBIJCwtj4sSJbNy4EQA/Pz9mzJjBs88+i4ODA6mJaYxtOYH4m4llWpdB1bOPf8lSMmjTpk3eyEGPHj0KLM6G3EVaGzduZPHixfz555/k5OSuK3BycmL48OGMHj2agQMH2mxhcFpSOlPuns3pPeds0l5h6rWszQcbplItyLdU+xFCiMrk+vXrPP/88/z1118ANGvWjG+//ZZu3brZuTL7+fXXX3niiSfIzs6mS5curFmzBn9/f3uXJcoRCQs2YjAY8PT0JDMzk/Pnz9OwYUN7l2QT69evZ+LEiZw+fRqApk2b8sknn3Dyl0ts+mlHkfcaVSNnOIwv/jY9iyC4qT+fbH2HgICAQq85f/48ixcvZunSpXkHzUHuKZ+jR4/mkUceKbXt9DLTs1gwcSl/L/y3VNrv+3B3XvrqaTx9PUqlfSGEqMxurdV76aWXiImJQVEUnn/+ed5//328vLzsXV6ZUVWVOXPm8NprrwEwYsQIfvrpJznQThQgYcFGLl68SMOGDXFxcSEtLa1SbWGp1+tZuHAh06dPJy4ujuoE00bpbvJaVVXRkUkKiYRzjmQSzD64LEVN5ACbAWhDD6orQYVe+/znoxnx8l35709J4bfffmPx4sV5OzxB7qjIY489xujRo2ndurUZX7FtHNl0gjlPzyfmWpxN2vMJ8Gb8/LH0GNHZJu0JIURVlpCQwKRJk1i8eDEANWvWZP78+dx99912rqz0GQwGxo8fz9dffw3Ayy+/zKefflqpPrsI25GwYCOrV69mxIgRtGvXjsOHD9u7nFKRlJTErJmz2PfpaVww/eThiLqDBGLyvWZOWFBVlcNsR0cmmaQXGxac3ZxZfm0+Hj7u7Nixg8WLF7NixQoyMjIA0Gg0DB48mDFjxnD33XfbbRvb9JQMVn+5jr8X/kvs9Xir2vAN9GbwU/0Z+erdePmZv+haCCFE8TZv3swzzzzD5cuXAXjwwQeZO3cugYGBdq6sdGRkZPDwww+zZs0aFEVhzpw5vPrqq/YuS5RjEhZsZObMmUybNo0nnniCH36wzxaaZWHnqv28e98nhb5/Xb2EET0eeBNPNNe4YFZYiFYjOMUBahDKdS4WGxYAQu8IZtP5v/O+wQM0adKE0aNH8/jjjxMcHGzR11aaDHoD+/8+wrpFmzmz9zzJcalFXp+jZlO3VU1GvfUI3Ud0wtFJdjsSQojSkpGRwYwZM5gzZw4GgwFfX1/mzJnDqFGjKtVhbjExMQwdOpQDBw7g7OzMTz/9xH333WfvskQ552DvAiqijNRMIi9Ho8vQoarg7OrEicO5W2Y2b97cztWVrrXzNxT5fi3l/7dZTVBjzWrTqBq4yEn8CLZoC9aw9ee5zGU8PT156KGHGDNmDJ07dy6X39i1Dlq63dORbvd0RFVVYq/Hcf7wZSIvRaPLzEZVVZxdnQisG8Dv63/m60Vf0qz7OPo8aHq6lxBCCNtxc3Pjww8/5MEHH+Tpp5/m6NGjjBkzhp9++omFCxcWuoV4RXL+/HkGDx7M5cuXqVatGmvWrKF7d/kZI4onYcEMqYlpbP15N6f2nOXC4ctEnI/E1IBMdwZzZU0Mv/In/R7pgX9NPztUW3puXIwslXMErnORTNJpTkfiiTbrHlVVcVM8+fD1Obz49nMVakGWoigE1PYnoLbp3SbitZF8vehLdu3aVcaVCSFE1dauXTsOHDjAZ599xvTp09myZQstWrRgxowZTJgwAQeH0vvYFJuezunYGFKydWQbDDhqNHg5u9C0uj+BHiXb0GL37t0MGzaMhIQEQkNDWbduXYm2ChdVi0xDKsKFI5dZM28DW3/ehS4z26J7NVoN3e7pyNBxd9C2X4ty+bTbUv98u4nPnl1g9vUX1JOEc67IaUjZqo49rM89BVrpwyX1FFc4Y9Y0JIBH3rqX0TMfNrumiiA6OpqgoCAURSE+Ph5fX9keVQghytqlS5d49tln2bw5d+ONtm3b8t1339GuXTubtJ+Rk8Pac2fYfOUyYTHRRKWnFXqtv5s7LQIC6VO3HsMbN8XTgrMhVq5cyaOPPopOp6Njx4789ddfRe4mKMR/SVgwITUxjXmvLGbTj0VvDWquNv1aMPG7cQTVrXh/OaOjo/NOST7x+0V80sz/GswJC2fVI0RwmQ70wUepbnFY6HhnG97/Z4rZNVUUjRo14sKFC/z999/cddddxd8ghBDC5lRV5YcffmDChAkkJiai1WqZMGEC77zzjtUj2leTEll64hgrT58iNVtn8f3ujo4Mb9KMJ1u3pUG1omcwfPbZZ0ycOBFVVRk2bBjLly83eSaREEXR2LuA8mbv2kM83WKCzYICwLEtYYxtOYG18zdgNBpt1m5pSE1N5a+//uLVV1+lZcuWBAUF8eijj7Jo0SKUVNsOv6apKdzgCtUJxkepblUb5w9dMjklrKLr0aMHgExFEkIIO1IUhVGjRnHmzBkeeughDAYDH3/8MS1btswbcTCX3mjk64P7ueOnJSw5dsSqoACQnpPDspPHGbzsBz7du5tsg6HANQaDgVdeeYUJEyagqiovvPACq1atkqAgrCJh4X9UVWXJ27/w9j0fkhBp+1OJs9J1fPHCd3zw+Bfoc/Q2b99a2dnZ7Nixg7fffpvu3btTrVo1hg4dyueff05YWBgAbdq0YeLEiVR3te3IyAWOo6LSgBZWt5Ecl8qibxaTnW3ZNLHyTsKCEEKUH4GBgfz888+sXbuWmjVrcvnyZQYMGMDo0aNJSEgo9v4L8fGM/G05c/buIsdGDw0NqspXB/dxzy8/ERbz/+v9MjMzuf/++5k7dy4AH3/8MV9++aWcoSCsJtOQyA0KC1/7kRWfri2T/roO68Dbv0/EwbHs15cbjUaOHz/O5s2b2bRpEzt37sw7m+CW+vXr079/f/r370/fvn3x9/dHVVUGaR+wqK+ipiHFqVEcYxfB1KW50iHvdUunIQHsUv/BN9ib559/nmeffbZSHFN//vx5GjdujLOzM8nJyThbMD9VCCFE6UlNTeWtt97i66+/RlVVAgICmDt3Lg8++KDJ9Yl7rl/jmb9Wk5GTU2o1OWu1fHXXUFp5eDFs2DD27duHk5MTS5cu5cEHHyy1fkXVIGEBWDZrJUum/VKmffZ7pAeTf3y51Bc+q6rK5cuX2bRpE5s3b2bLli3Ex+c/HCwgIIB+/foxYMAA+vfvT926dQu0YzAYuNPxIYv6LiwsGFUj+9lEJml0405clP+f92lNWLhQ/TDhsVcAcHZ25pFHHmH8+PFlelqzramqSmBgILGxsezevZtu3brZuyQhhBC32bt3L08//TSnT58GYMiQIcybN4/atWvnXbPrWjhPr/3D5FQhW9MqCuradVz6dxO+vr78+eef9OzZs9T7FZVflQ8LYbvOMKH39CLnvRtVI2c4jC/+BZ6Qh6vnyaDwHQxuCaYOPkr+hUgTvxvHnWP6WVV3UaKjo9myZUve6EF4eHi+9z08POjduzf9+/dnwIABtGhh3m5Ndzo9hEFv/je8wsJCpprObtaZ1YYP1emg9Cnymh8ufcm2vVv4/PPPOXjwYN7rffr0Yfz48QwdOrRCDr/ee++9/PHHH3z44Ye8/vrr9i5HCCHEf2RnZ/PBBx8wa9YssrOz8fDwYPbs2YwbN47T8XE8vOJXMvSlN6LwX6peD6v+5J9vv6dp06Zl1q+o3Kp0WMjK0PFsm0ncvBhV4D1VVdGRSQqJhHOOZBJMTqc5pG4jibhi+zJ1r5uXK9+e/JSAWtYt7r0lNTWVHTt25I0enDyZ/ywER0dHunTpkjdy0KlTJxwdiz78LCcnh4sXL3L69GnOnDnDmTNniFyRgTbH/KlThYWFHDWby5w2eU8C0aSTij8huOCGGx7UUhoU2odGq2FNylKcXZ1RVZV9+/Yxd+5cVqxYgeF/T3Lq1avHSy+9xJgxY/D29ja7fnv79NNPmThxIkOHDmXNmjX2LkcIIUQhzpw5w9ixY9m9ezcAXbp3x3HUY0RkpJvdRvrxkyRv30HOzUhQNLiE1sN3yJ04hQRbVEuQmzsbnxiDh5OTRfcJUZgqHRa+mfgDKz/7y+R7R9QdJBCT77WitgAtzGn1EHFE0ZVBOCoF/+J2vLMNs/5+y6LpSNnZ2ezbty9v5ODAgQPo9fkXTbdp0yZv3UHPnj3xKORAl4yMDM6dO8eZM2fygsHp06e5ePFigTZb0w1/JcTsOs3ZOvW/TqkHiSTc7GlIoa3qsODYJwVev379OvPmzWPhwoV5i888PDwYPXo0L730Eg0bNjT767CXAwcO0LlzZ3x9fYmLi0Ojkf0IhBCivDIajSxYsIA33ngDhz698BnQ1+x7Ezf8S9I/G3AKCcYxKJDsyChyIqNQnBzxf/Qh3NtYNq32kZatmdl3gKVfghAmVdmwkBiTzCO1n0OfbXpnouvqJYzo8cCbeKK5xgWLw0KUeo0wDhT7IXvunlk061L4SYpGo5ETJ07kjRzs2LGjwKLk0NDQvGlFtxYl3y4pKSlvhOD20YKrV68WOgXLw8ODpk2b5v2TdlLP/p+Pm/31l0VYuGNUHyYteqHQ9zMyMvjpp5+YO3du3rxSRVG46667eOWVV+jfv3+5PTAvJycHHx8fMjIyCAsLo3nz5vYuSQghRDE2nTzBM1s2gpk/W3Th17j52Zf4DOyPz1135P1MSt1/kLhffkdxcKDmtMk4eHlZVMfyex+gS81aFtcvxH+V/XY85cSGRVsKDQoAtZT6eb9PUGMtbj9b1XGWowRRu9in8Wvnb8gXFm4tSr51GNqWLVuIi8s/1cnf3z9v5KB///7Uq1cPVVWJjo4mLCwsXyA4ffo0UVEFp1rd4ufnR7NmzfJCwa3f16xZM98H6f3/HCk2LNxUr5JM7pP8ZHIXUkcSTrKa+5qptRsl8eOfS7g54RL33nsv3bp1K/D03c3NjWeeeYaxY8eyadMm5s6dy99//533T/PmzRk/fjyPPvqo1QfslJZb08e2bNnCrl27JCwIIUQF8Mf1cLODAkDKzt04Bvjjc+fAfD9zPTt3RBd+jdTde0n+dwt+I4dbVMf8Q/slLAibqJJhwWAw8NeCf0u1j0ucwoCe+hT/AW/7r3u4b/IQDh4/kDd6cPXq1XzXuLu707t377yRAy8vL86dO8fp06eZNWtWXihISkoqtJ8aNWqYDAXmbjXatl8LvKt7khyXWug1icQSSXiB1xLJDVzeVMMH24QFI0bOJpzkxGeH+OyzzwgKCmLEiBGMHDmS3r174+Dw/3+8FUVh4MCBDBw4kAsXLvDll1+yaNEiTp06xTPPPMPkyZN55plneOGFF6hZs6ZN6rOFHj165IWFZ5991t7lCCGEKEJ0WhobL12w6J7s6Bg8u3RCMbERh2fXzqTu3kvWlasW17LzWjhXkhKp5+Nr8b1C3K5KTkM6seM0E/tMN/t6S6fTpKnJ7ONfgqhNC6WTWX2cUY9wg8t5/+7g4EDnzp1p06YNISEh6PV6zp8/z5kzZzh79myBaUi3aDQa6tWrVyAUNGnSBC8LhzBN+W7yT/z60Z8lbscWeozsTKtH6rNq1SrWrl1LcnJy3nt+fn7cc889jBw5kv79+5s8pyA5OZlFixbxxRdf5IUzrVbLfffdxyuvvEKXLl3K6ksp1JqVaxlz3zPU9qnH3b3v4frZG+gysjEYjDi5OOIX4kvDdqE0al+fxp0aUKtxSLmdViWEEJXd3P17mLt/r0X36G7cRHFwwCmw4MGnxqwswt+YiuLsTN2PZllcz1Nt2zOlZx+L7xPidlUyLPz+yRoWvv6j2ddbGhaOqbuII4rODMBT8TGrj5vqFdJqxxISEoJWqyU+Pp5Lly6RU8ghLo6OjjRq1KhAKGjUqBEuLi5mf22WirwSzZMNXipyq9myMmfbDFr1agbkLvrevHkzK1euZPXq1fnOkvDy8uLuu+9m5MiR3HnnnQWmGxkMBtauXcvcuXPZtm1b3uudOnVi/Pjx3HfffTiV4a4SqqoStussa+ZvYOfKfRhyzN+utmG7egwddwd9H+6Bi5sc5CaEEGXpjp+WcCEhvvgLzZQdFcWN2Z+g9fWh9jtTLb4/2MOD3WNkVFqUTJUMC7Me+Zxtv+w2+3pLwkKGmsYe1uOLP+2V3mb3kaomsZ9NBV53d3enSZMmBUJBaGhovmk2ZemjUV/x79Ltdun7lpY9mzJn2wyTT9H1ej07d+5k5cqVrFq1isjIyLz33NzcGDx4MCNHjmTIkCEFRluOHz/O3LlzWb58OTqdDoDg4GBeeOEFnnnmmVI/Hfr49lPMG7+YyyfCi7+4CB4+7tw/aRgPvn4PWoeKd8aEEEJUNOnZ2bT65kts+aEq9cBB4pb9ilvrlgSOedKqNvY//Rz+bu42rEpUNVUyLIxq/DI3LkQWf+H/WBIWLqgnCOc8jWhD7SLOB/gvFSNZnaNp2qJpvmBQq1atcrdlZkpCKk83f5XE6OTiLy4Fzq5OLDj+CTUaFL/3tNFoZN++faxcuZKVK1fmO6DOycmJgQMHMnLkSIYNG4af3/+vpYiJiWHBggXMmzcvb3G4s7Mzjz76KOPHj6dVq1Y2/Zoy07NY9OZyVn9l3mF15mrYPpTXFr9AvRa1i79YCCGE1Q7ejODBFb/arD1VVYn8Yh66y1cIfvUlXOrWsaqd74eNoG/dUJvVJaqeKhkW7nZ/FF1mttnXWxIW9qjrySCNrtyBu+JpUV0/XZlHYJ3SfXJtK3v+PMj0ER/Zpe9xn43i3vFDLL5PVVWOHj2aFxzOnTuX955Wq6Vv376MHDmS4cOHExSUu21rdnY2v//+O59//jmHDh3Ku75v376MHz+eu+++u8SnQ4efieDtYR9w81J0idopjIOjluc/H83QcXeUSvtCCCFg8bEjvLdjq83aS9mzj/hfV+DVpxd+I4ZZ3c6ELt15sZP91+CJiqt8PbIuI9lZpXP0erqaSgZpeScPW8qSAGNv3e7pyNDnBpV5v52HtGP4S4OtuldRFNq1a5e3e1RYWBgzZsygVatWGAwGNm3axLhx4wgJCaFnz558/vnnREVF8eijj3LgwAF2797NAw88gFarZevWrQwfPpxGjRrx+eefk5KSYlVNF45cZkKvt0stKADocwx88cJ3LH9/Van1IYQQVV18IRuPWCPr0hXiV/yBa/OmVBtm+cOx28Vn2q4uUTVVyZGFO50ewqA3f9GouSMLN9TLnOEINahHU6W9xXU1eCKQmg2DCQgIwN/fn4CAgLzfe3l5lbtdbgwGAx88/qVF6z9KomWvprz/z5RSWbh78eJFVq1axcqVKzlw4EC+9zp27MjIkSO59957adiwIdevX+frr79m4cKFJCYmAuDp6Zl3OnSDBuZNPws/fZ0JvaeTEl/4VrS29uwnT3DfhKFl1p8QQlQV7+/cxndHD5e4newbN4n8ch7OofUIHPMkSgnXJz7YvCWz+5f9wz1ReVTJsHCP9xNkpGaafb25YeGsepQILtGEttS87VA3c+1U/0JHlsn3nJyc8gLEf4OEqdfc3d3LJFwY9AY+e2YBG5bYbujVlA53tGb6ytfKZIef69evs2rVKlatWsXOnTvz7fzUsmVLRo4cyciRI6lbty7Lli1j7ty5nDlzBsgdvbj77rsZP348/fr1K/T/QWZ6Fs+1mVSqIwqF+WDDVNoPbF3m/QohRGX24e4dLDh8sERt5MTFEfn51ziGBBM4djQaR8cS1/Voy9a813dAidsRVVeVDAsvdJrM+UOXzL7e3LBwSN1GEnG0oisBSg2LanJw1tJ6fF3i4uKIiYkhJiaG2NhYYmJiSEtLs6gtAFdX1yJDxX/fc3V1tbiPW1RV5a9vNrLw9R/JStdZ3Y4pWgctj04ZycNvjcDBsex3f4qOjmb16tWsXLmSLVu2YDD8/4hUo0aN8kYcEhISmDt3Lv/880/e+y1atMg7Hfq//32/Hr+I1V8WvZjZqBo5w2F88S/0z51BNXCZU0QTQQ7ZeOFLTeoTqBR+sJx/LT++Pfkp7l7l68RqIYSoyL48sJfP9u2x+n59cgqRc7/CwceHwOeeRmOjLbufadeByT3M351RiP+qkmHh8+cW8vdC809wNjcs7FbXk0kaHeiDj1Ldoppa9mrKp9veNfleZmYmsbGxeeHh9iBh6rXMTPNHTW7x8PAwa8Ti1q+mzh2IvBLNp0/P59jWUxb3b0po6zq8tvgFGrSpZ5P2SiohIYE1a9awcuVKNm7cSHb2/68xqVOnDvfeey8dO3Zk165d/PDDD6SnpwO5B8TdOh26Ro0aRR4KqKoqOjJJIZFwzpFMQqF/7gyqnuPsIYEYvPHDBTcSiSEbHY1pS60iRreGjB3AKwtk720hhLCV9Rcv8Pw/a6y615CeQeSX89A4ORH0/DNobHhe0scD72Rk0+Y2a09UPVUyLPzz3WY+e+abIq+5qV4lmQQAkoknjWR88ceN3B2OgqmDj+KX757t6lpy0NGNO3FTLFvgPPKVITz36SiL7ilMenp6oaHCVLi4/UOvuby9vU0Giep+1dHdNHJ5RwSXD163qv7m3Rsz9Lk76P1AV7uMJpgjJSWFf/75h5UrV/LPP//kO1E7ODiYu+66C0dHR9atW5e3XauDgwMjR47E4Ug1oi/Gmmz3iLqDBGLyvVZYWDilHiSS8HzBIFvVsY9/0ZNNN+7ERSl89OCbox9Tv3XBdoUQQljuRkoKPZd8a/F9Rp2OqHkLUXNyCHrxObRuth31XffokzT2s+wBphC3q5Jh4fq5G4xp+kqR19z6IFYYUx/gNqurUDHSh+E4KJZ9yJ2+chI9RnS26B5bUFWV1NRUs0Ysbo1u6PV6s9p2xZ0Q6uKNH95KNbSY/m/i4KwlqIE/9dvV5Y5RfWnXq3WJtyMtSxkZGWzYsIFVq1axdu1akpP///wJPz8/2rRpQ3R0NGFhYXjjR0elLyoqCgXXM1xXL2FEjwfexBPNNS6Y/LN26xA/H6rTQemT772bajinOUgdGtFQKfw8CBldEEII21FVlY7fzichy7LR/diffibt4GHcWrVE61H44WnVH7zP4ppcHBw48dxLOJSz85pExVIlwwLAhD5vc3LHGXuXAUC1IB+Whc8vt0/Rb6eqKklJSWaHi7i4OIxGIwCueOCGBxo0KCgYMJBFBunk33ZUo9Hg5+dn1lqLgIAAfHx8ys3BddnZ2WzevJmVK1eyevVq4uPj897z8PCgOZ3wTK9mVltFTX+7pJ7iCmdoSntqKPmnaeWo2WxnDa540F25s9D2nd2c+fXGAty95WRPIYSwhZfWreXvC+ctuifyy3lkXbxc7HX15n5icT29atdlyfCRFt8nxO3K/6fTUjJs3B3lJizcNXZAhQgKkLvbj6+vL76+vjRu3LjY6w0GAwkJCWZNh4qNjSU+Ph6j0Zg3imEOrVZrVqi49WtpbkPr5OTE4MGDGTx4MN988w07duzI21kpNjIOd3wwMaBgsUxy10N44FXgPUfFCTfVgwzS0Ks5OCimd9PQZejYsnyXHNYmhBA28kiL1haHheCXni+lanJ3QhKipCrGJ9RS0H1EJ6oF+ZAQlWTXOrQOWu4aW3m3NLv1Qd7f359mzZoVe71erycuLq7YUHHr16SkJAwGA1FRUURFRZlVk6ltaIsKF9ZuQ+vg4EC/fv3o168fX3zxBUs/+5llr622uB1TssnddaqwqV2OOANppJOCN34mrwE4sfOMhAUhhLCRGiq4ZenIcCn9bb6LE+zhSd96ofYuQ1QCVTYsODo58uwnTzD7sS/sWsdDbwzHv2bhH+aqGgcHB4KCgggKCjLr+uzs7Hw7RRUXLlJTU8nOzubGjRvcuHHDrD5u34bWnO1oTW1Dq9FocMiw3Q8PJ3LbMmD6cEGV3KlfORS9eP3C4eKHvoUQQhQtOjqa2bNnM3/+fJw7daD6/feCqoIdD1N9tGVrWasgbKLKhgWAvg/3YMeKvexeXbJDVKxVt0UtHpkqcwlLwsnJiRo1alCjhnnnWvx3G9ritqPNzMwkMzOTa9euce3aNbP6uH0b2tvDxbW/4ou/2Uwu5AYSHQUX0qmqSga5Z3PoKXox+o0LkaQnp8u6BSGEsEJiYiIff/wxc+fOzdsVr6ujMxo3d65mpNutrga+1XiqbXu79S8qlyodFhRF4eV5Yzmx4wypCZYffFYSGq2G1xa/gJNzyU9nFOZzdXWldu3a1K5d26zrb21Da264yM7OJi0tjbS0NK5cuZKvra4Mwl0puMbAGj74A+eI4QYB5A9K8UShJ8fstiLOR9K4YwOb1CWEEFVBWloac+fO5eOPP87bAa9jx468//779O/fn3PxcQz75Sf0/9vgoyxpFIWPBt6Js0OV/ognbKjK/0mqFuTLjD9eZ/Id75GdZf4HrJKa+N04GrUv/NAsUT64u7tTr1496tUr/mC427ehNRUqznx3A2NGsc2YxY9AnHElimuEqHWppgQAkKmmc45jedc5UnwYzcqw7anbQghRWWVlZTF//nxmz56dtwlHixYtmDlzJsOGDctb39akuj/jO3djzt5dZV7j2HYdaBMUXOb9isqryocFgJY9mzJj9Ru8M+IjdJmWH1BmqZfnjWXQk31KvR9RthRFwcvLCy8vLxo0KPik/qEVzxCfkWizvhqrbTnBHo6yk2pqIAqQSCyB1EYhjgxScaH4w32MhrJ/8iWEEBVJTk4Oixcv5r333iMiIgKABg0a8O677/Lggw+a3L57XIdOXE1KZOWZU2VW5+AGjZjUtUeZ9SeqBln58j8dBrXmgw1T8fG3zTQRU5xdnXjzp5cZ+tygUutDlF/Ork42bS9ACaEZHXHChSRiySGbprSnKe3IIgMtDnknjpdlXUIIUVkYDAaWLVtG06ZNefbZZ4mIiKBWrVp8++23nD59mocffrjQc340isLs/oMY0aT4nQBtYVD9Bnw6aDBaWdQsbExGFm7TokdTvg37lK9e+p7tv+21cdtNmPj989RsKEODVZVfjWrcvBRt0zZDlDqEUCffa2lqCkYMBFDTrC1f/ULMOyROCCGqClVVWb16NdOmTePUqdyRgYCAAN566y2effZZXFxczGrHQaPh44F3EuDuzsLDBymtU3CfaNWGqb36yu5HolTIn6r/8PH3ZuovE5j22wQC6/iXuD0vP0/GfTaKOdtmSFCo4hq2LZv9riO4BEAIdYu91svPk4Da1Uu5IiGEqBhUVWXjxo106tSJe++9l1OnTuHj48P777/PpUuXGD9+vNlB4RaNovBG9178ct+D1PH2sWm9IZ6eLB1+H+/06S9BQZQaGVkoRK/7utJ9RCcOrjvGmvkbOLT+GKpq/jOBJp0bMuz5O+h9f1ecXGSah4CG7W0bFlRVLTBykKjGcpMr+FAdPwLNqqm0TrMWQoiKZNeuXUyZMoUdO3YAuRtcvPLKK0yaNAkfH58St98xpCb/PPIEXxzYy/KTJ0jNtn5zCXdHRx5o3pJXu3THw0k+Y4jSpaiWfAKuwmIj4jm99zwXDl/i/OHL3LgQSXZWDqrRiJOLEwF1qtOwXSiNOtSnSacG1Gps3r7/ouqIOH+T0U3GF3nNTfUqySQAkEw8aSTji3/e2oNg6uCj5B7id1o9hAOOBFITDVriieYKp9HiQEf64aoUf3bCI2/dy+iZD5fwKxNCiIrryJEjTJ06lXXr1gHg7OzM888/z+TJkwkICCiVPjNyclh77gw/nTzOqdgYs+9rVM2PR1u1YXjjpng62/+UaFE1SFgQogy90Gky5w9dKvT9U+pBIgkv9P1mdCBEqYuqqpzlCDfIf5aDJz60oDPuSvELmwG+C/uUOs1qmVe8EEJUIqdPn+btt99m5cqVADg4ODBmzBimTZtGzZo1y6yOqLRUwmKiORkTzenYGFJ0OrINBhy1WjydnGla3Z+WgYG0CAgkxMNTRoNFmZOwIEQZWr94K3Oemmez9tLUFJKJJ4dsPPGhGgFm/yBp3ac5n2x5x2a1CCFERXD58mVmzJjBTz/9hNFoRFEUHn30Ud555x3q15fzj4T4L1kNI0QZ6vNgNzx8ip8eZC4PxYsaSj3qKo3xUwIteuI0dNwdNqtDCCHKuxs3bjBu3DgaN27M0qVLMRqNjBgxghMnTvDjjz9KUBCiEBIWhChDLm7OPPjGcHuXQWirOnQf3tHeZQghRKmLi4tj0qRJNGjQgG+++Qa9Xs+gQYM4cOAAq1atokWLFvYuUYhyTaYhCVHGDHoD47tP4dzBwtculCatg5avDsymQZt6dulfCCHKQnJyMnPmzOGzzz4jLS0NgB49ejBr1ix69epl5+qEqDhkZEGIMqZ10DJp0Qs4ONln5+KH3xwhQUEIUWmlp6fz4YcfUq9ePd577z3S0tJo164d69atY8eOHRIUhLCQhAUh7KBu81q8MHdMmffbuk9zHplyb5n3K4QQpU2n0/Hll19Sv359Jk+eTGJiIk2bNmXFihUcOnSIO++8U3YSEsIKciibEHZy97MDSUtM4/u3lpdJf006NeDdP9/A0cmxTPoTQoiyoNfrWbp0KTNmzODatWsA1KtXj3feeYdHH30UrVZr5wqFqNhkzYIQdrZq7t/Mf3VJqfbRpm9zZqx+AzdP11LtRwghyorRaOT333/n7bff5vz58wCEhIQwbdo0xowZg5OcbCyETUhYEKIcOLrlJHOemk90eKxN29U6aHnkrXt5+K0RMqIghKgUVFXlr7/+Ytq0aRw/fhwAPz8/3nrrLcaNG4erqzwUEcKWJCwIUU5kpGby7es/8teCf23SXmirOry25AVZzCyEqDS2bNnClClT2LdvHwBeXl5MmjSJV155BU9P806uF0JYRsKCEOXMlZPhrJm3gU0/7SArXWfx/W36tWDYuDvodk9HtA4yV1cIUfHt27ePKVOmsGXLFgBcXV15+eWXef3116lWrZqdqxOicpOwIEQ5lZ6Swdafd3Ny52kuHL5MxPlITP119a7uScP2oTTu0IC+j/SgTtOadqhWCCFs7/jx40ybNo21a9cC4OTkxLPPPstbb71FUFCQnasTomqQsCBEBZGekkHE+UiyM7MxGow4ujhSPcQX/1rVZTtAIUSlcu7cOaZPn86vv/4KgEajYdSoUbz99tvUqVPHztUJUbVIWBBCCCFEuRAeHs6MGTP44YcfMBqNADz00EPMmDGDRo0a2bk6IaomOWdBCCGEEHYVFRXFrFmzWLBgATk5OQAMHTqU9957j9atW9u5OiGqNgkLQgghhLCLhIQEPvroI7744gsyMzMB6N+/PzNnzqRLly52rk4IARIWhBBCCFHGUlNT+eyzz5gzZw4pKSkAdOnShVmzZtGvXz87VyeEuJ2EBSGEEEKUiczMTObNm8fs2bOJj48HoFWrVsyaNYshQ4bIZg1ClEMSFoQQQghRqrKzs/n++++ZOXMmN2/eBKBRo0a8++673H///Wg0GjtXKIQojIQFIYQQQpQKg8HAsmXLeOedd7hy5QoAtWvX5p133uHxxx/HwUE+hghR3snfUiGEEELYlNFoZNWqVbz99tucOXMGgMDAQKZOncrYsWNxdna2c4VCCHNJWBBCCCGETaiqyvr165k6dSpHjhwBwNfXlzfeeIMXX3wRd3d3O1cohLCUhAUhhBBClNiOHTuYMmUKu3btAsDDw4MJEyYwYcIEvL297VydEMJaEhaEEEIIYbWDBw8ydepUNm7cCICLiwsvvvgib7zxBtWrV7dzdUKIkpKwIIQQQgiLhYWFMW3aNFavXg2Ag4MDY8eOZcqUKdSoUcO+xQkhbEbCghBCCCHMdvHiRd555x2WL1+OqqpoNBoee+wxpk+fTmhoqL3LE0LYmIQFIYQQQhQrIiKC9957j++//x6DwQDAfffdx7vvvkvTpk3tXJ0QorRIWBBCCCFEoWJiYpg9ezbz589Hp9MBMHjwYGbOnEm7du3sXJ0QorRJWBBCCCFEAUlJSXzyySd8/vnnpKenA9CrVy9mzZpFjx497FydEKKsSFgQQgghRJ60tDS++OILPv74Y5KSkgDo0KEDs2bNYuDAgSiKYt8ChRBlSsKCEEIIIcjKymLBggW8//77xMTEANC8eXNmzpzJPffcIyFBiCpKwoIQQghRheXk5LBkyRLeffddIiIiAKhfvz4zZszgoYceQqvV2rlCIYQ9SVgQQgghqiCj0cgvv/zC9OnTuXjxIgA1a9bk7bffZtSoUTg6Otq5QiFEeSBhQQghhKhCVFVlzZo1TJ06lbCwMAD8/f156623eO6553BxcbFzhUKI8kTCghBCCFEFqKrKpk2bmDp1KgcOHADA29ub1157jfHjx+Ph4WHnCoUQ5ZGEBSGEEKKS2717N1OmTGH79u0AuLu7M378eCZNmoSvr6+dqxNClGcSFoQQQohK6ujRo0ydOpV//vkHACcnJ8aNG8ebb75JYGCgnasTQlQEEhaEEEKISubMmTO8/fbbrFixAgCtVsuYMWOYNm0atWrVsnN1QoiKRMKCEEIIYYW4jAxOxUQTn5lBtsGAVqPB3dGJRn5+1PPxRavRlHlNV65cYcaMGfz4448YjUYUReHhhx/mnXfeoWHDhmVejxCi4pOwIIQQQphBp9ez7uIF1l88z8mYKCLT0gq91t3Rkab+AXSvVZsHmrUk2NOzVGu7efMms2bN4ttvvyUnJweA4cOH8+6779KyZctS7VsIUbkpqqqq9i5CCCGEKK+i0lJZevwYv58+SXxmpsX3axWFAaENGNW6LZ1r2nYKUFxcHB9++CFfffUVWVlZAAwcOJCZM2fSqVMnm/YlhKiaJCwIIYQQJqiqyi+nTvL+zu2k52TbpM3hjZvydu+++Li4lqidlJQUPv30Uz799FNSU1MB6N69O7NmzaJ37962KFUIIQAJC0IIIUQBN1JTmLxpA7uvX7N52/5u7szqN4ABoQ0svjcjI4OvvvqKDz/8kISEBADatm3LzJkzGTx4MIqi2LpcIUQVJ2FBCCGEuM2ZuFieXL2CuIyMUu3nrR69ebpdB7Ouzc7O5ttvv2XmzJlERUUB0KRJE9577z3uvfdeNHZYTC2EqBokLAghhBD/cyYulkdW/kqyTlcm/b3WrQfjOnQu9H29Xs+PP/7IjBkzCA8PB6Bu3bq88847PPbYY2i12jKpUwhRdUlYEEIIIcidejTi12WlPqLwXx/0H8QDzfPvWGQ0GlmxYgVvv/02586dAyA4OJipU6fy9NNP4+TkVKY1CiGqLgkLQgghqjxVVXl89Qr2lMIaheK4OjjwzyNPUsfHB1VV+eeff5gyZQrHjx8HwM/Pj8mTJ/P888/j5uZW5vUJIao2CQtCCCGqvOUnjzN166YStZG8dQcJq9cAUOeT2WgcHc2+t1NITcZW82fa1Kns3bsXAE9PTyZNmsQrr7yCl5dXiWoTQghryaFsQgghqrSotFRm79peojYM6ekkbfwXh2q+6BMSLb7/wM0I/vl8Lql79+Lq6spLL73E66+/jp+fX4nqEkKIkpKwIIQQokr78cQx0v936rG1ktZtxDEgAMVBa1VYAPAZ0I/H27Rj6pQpBAcHl6geIYSwFdlrTQghRJWl0+v57dTJErWRHR1Dyu69uLdvW6J2HKr5cu/EVyUoCCHKFQkLQgghqqx1Fy8Qn5lZojYSVq9F4+KMZyfzzkwoyk8njpW4DSGEsCUJC0IIIaqs9RfPl+j+zLPnyTx9Bq9ePdC4uJS4nh3hV0ktozMehBDCHBIWhBBCVFknY6Ksvlc1GIhfvQaNmxvefXrZpB4VOB0bY5O2hBDCFiQsCCGEqJJiM9KJTEuz+v7U/QfJiYzCZ1B/NK6uNqvrZEy0zdoSQoiSkrAghBCiSjoVY/0TfGNWFol/r0fr64Nnj242rApOyciCEKIckbAghBCiSkrIzLD63qSNmzGmpeF7150WHb5mjvgM6+sSQghbk7AghBCiSso2GKy6Lyc+gZTtO3EMDsKjQzsbVwU6g97mbQohhLXkUDYhhBBVklZj3fOyrIuXUPV6ciKjuPrq6yavCZ/0JgA+dw7Ed/AdFrXvoNFaVZcQQpQGCQtCCCGqJHcrpw85BQXi1bunyfdS9x1A1enw7NkNRaPFuW6dMqtLCCFKg4QFIYQQVVLDatWtus+5Tm2c69Q2+V7GyTD0Oh3V7hlq9VqGRn7W1SWEEKVB1iwIIYSokkJ9fXErh0/xWwQE2rsEIYTII2FBCCFElaTVaGjmH2DvMgpoKWFBCFGOSFgQQghRZXWraXo6kb3U8fYhxNPT3mUIIUQeRVVV1d5FCCGEEPYQmZpKryXfYignPwrf6tGbp9t1sHcZQgiRR0YWhBBCVFnBnp4MCG1g7zIAcNZqGdm0ub3LEEKIfCQsCCGEqNKebN3W3iUAcE/jpvi6utq7DCGEyEfCghBCiCqtS81aDGvcxK41VHNxZVI302c3CCGEPUlYEEIIUeVN79WP6m5udut/Rp/+du1fCCEKI2FBCCFElefr6sqsvgPt0vddDRoxpFFju/QthBDFkbAghBBCAAPrN+DNHr3KtM/2wSF8NPDOMu1TCCEsIWFBCCGE+J+x7ToyqWuPMumrfXAI3w8bUS5PkRZCiFvknAUhhBDiP34NO8GMHVvJ0utLpf27GjTio4F3SlAQQpR7EhaEEEIIE64mJfLGpg0cvHnDZm1Wc3FlRp/+skZBCFFhSFgQQgghCmFUVX46cYyFRw5yMzXV6nactFruadyU17r1lF2PhBAVioQFIYQQohgGo5FtV6/w08lj7Ai/irk/OOt4+/Boy9aMbNpcDlwTQlRIEhaEEEIIC6TodJyOjSEsJpqw2GjiMzLQGQw4ajS4OTrSyK86LQICaRUQRIinJ4qi2LtkIYSwmoQFIYQQQgghhEmydaoQQgghhBDCJAkLQgghhBBCCJMkLAghhBBCCCFMkrAghBBCCCGEMEnCghBCCCGEEMIkCQtCCCGEEEIIkyQsCCGEEEIIIUySsCCEEEIIIYQwScKCEEIIIYQQwiQJC0IIIYQQQgiTHOxdgBBCCCEqJ1VVScvQkZmVg9FgxMnJAS8PFxwctPYuTQhhJgkLQgghhLAJo1Hl6KnrHDt1nbOXojh3OZqEpIx81zg6aAmtU53GoYE0bRBEr84N8fZ0tVPFQojiKKqqqvYuQgghhBAVV0paFuu2hvHHhuNERCZadK+jo5YB3Zsw4s42NG0QhKIopVSlEMIaEhaEEEIIYRWjUWXluqMsXLaTTF1Oidvr1Lour48bRJC/lw2qE0LYgoQFIYQQQlgsIjKR2V9v4PiZCJu26+bqxItP9mHogJYyyiBEOSBhQQghhBAW2XvkMtM+WUOWTl9qffTt2ohp4+/CyVGWVwphTxIWhBBCCGG27fsv8PactRgMxlLvq3Pbusx+Y7gEBiHsSM5ZEEIIIYRZDh6/yvQyCgoA+49e5Z3P/i6z/oQQBUlYEEIIIUSxEpLSeeezv9Bb8cFdNRq4cOhXosMPWnzvjv0X+HXtIYvvE0LYhoQFIYQQQhRJVVXmLNxEcmqWBfcY0WUkEn/jJCd3zCfmmvUf+L/9ZTfhEfFW3y+EsJ5MAhRCCCFEkbbsOcf2/Rcsuuf07u9IirHsnsLk5Bh4/+v1zJv5MFqtPOcUoizJ3zghhBBCFMpoVFmwbKfF91ULbkHdFkNo1v1pQhr0KnEdp85HsuvQpRK3I4SwjIQFIYQQQhTqwPGr3IxOtvi+4PrdqNGoD76BjVE0WpvUsnrDMZu0I4Qwn4QFIYQQQhRq1bqj9i4hz8Hj4Vy7mWDvMoSoUiQsCCGEEMKkxOQM9h65bO8y8lm39ZS9SxCiSpGwIIQQQgiTzl6Morwd3Xr6QqS9SxCiSpGwIIQQQgiTzl2OtncJBZy7HI1a3hKMEJWYhAUhhBBCmHTuUvkLC2npOqsWXAshrCNhQQghhBAmRcaWzw/lkTHlsy4hKiMJC0IIIYQwSZett3cJJpXXuoSojCQsCCGEEMIkBcXeJZikUcpnXUJURhIWhBBCCGGSs7ODvUswycmpfNYlRGUkYUEIIYQQJtUI9LZ3CSaV17qEqIwkLAghhBDCpMb1g+xdQgE+Xq4E+nvZuwwhqgwZxxNCCCGESY1DA62+Nyb8ECkJ4QCk/e/XmPDDpCZcAyCgdnu8/Opa3G6j0EAUWbMgRJmRsCCEEEIIk5o0CEKr1WAwGC2+Nzn2IjHXDud7LSXuEilxlwDwrFbbqrAQUt3F4nuEENZTVDkGUQghhBCFeHvOWrbsOWfvMgBQVSOH18+mS6fWjBkzhvvuuw83Nzd7lyVEpSZrFoQQQghRqBF3trF3CXkcDfFkZyWzfft2nnzySYKCgnj22WfZv38/8uxTiNIhYUEIIYQQhWrTrCb1avnZuwwAPnznOcLDw5k5cyahoaGkpqaycOFCunTpQsuWLfn000+JjY21d5lCVCoyDUkIIYQQRdp39AqTZq60aw0dW9fh02n35S1uNhqN7Nixg++//54VK1aQlZUFgIODA8OGDWPMmDHccccdODjI8kwhSkLCghBCCCGKNfvr9fy9Jcwufbu5OrH0s1EEFbJlanJyMr/88gvff/89Bw8ezHs9JCSEJ598kjFjxtCgQYOyKleISkXCghBCCCGKlZau44lXlxATn1rmfb/27EDuGdTarGtPnjzJokWL+PHHH4mPj897vVevXjz11FOMHDkSd3f30ipViEpHwoIQQgghzHL6QiQvT/+NLF1OmfV5d/+WvDFukMVnK2RnZ7N27Vq+//57NmzYgNGYu/2rp6cnDz/8MGPGjKFTp05yZoMQxZCwIIQQQgizHTl5jddnryJLpy/1vgb2bMrUlwaj1ZZsP5aIiAh++OEHFi1axOXLl/Neb968OWPGjOGxxx4jICCgpOUKUSlJWBBCCCGERcLO3eSND/4gOSWz1Pq49842jB/Tr8RB4Xa3FkUvWrSIFStWkJmZW78sihaicBIWhBBCCGGxhKR05izcxPb9F2zabjUfN157dhA9O5XuguRbi6IXLVrEgQMH8l6/tSh69OjRNGzYsFRrEKIikLAghBBCCKuoqsqWPeeYu2gLCUkZea9Zsw5AUWBQr2aMH90XL09XW5dapLCwsLxF0XFxcXmv9+rVK++kaFkULaoqCQtCWEhVVTBcgZyTqDmnICcMjPGg6kDRguIKDvVRHFqAYwtwbImi8bB32UIIUWqyc/RMmvIpW/dfxbt6qEX3enu6cnf/ltwzqBUhgT6lU6CZbi2KXrRoEevXr8+3KPqhhx5izJgxdO7cWRZFiypFwoIQZlKNGZC1FjVjOejPWHCnK7gORXF7BMWxWanVJ4QQ9qKqKs2bN+fMmTN89Ok31G/aiXOXojl7KZrwG/Ho9ca8a6v5uNE4NJDGoYE0aRBMx9Z1cHYqf2sEIiIiWLp0KYsWLeLSpUt5rzdr1owxY8bw+OOPy6JoUSVIWBCiGKqaDekLUNMXg5pWssYc26F4TUNxbG6b4oQQohw4ePAgnTp1wtXVlcjISLy9vfO9r9cbMBiMODk5VLin8kajkZ07d+adFH37ouihQ4cyZswY7rzzTlkULSotCQtCFEHNOYWaPBn052zYqhbcn0PxGIeiONmwXSGEsI8XXniBefPm8eijj/LTTz/Zu5xSk5yczK+//sr333+fb1F0cHBw3knRsihaVDYSFoQohJq+CDX1Y8BQOh04NEbxXYCiDSmd9oUQogxkZWUREhJCYmIi//77LwMGDLB3SWWisEXRPXv25KmnnpJF0aLSkLAgxH+oqoqa9imkLyj9zjTBKNV+QHGoW/p9CSFEKfj999954IEHqFmzJlevXkWr1dq7pDKVnZ3NX3/9xffffy+LokWlJGFBiP9Q075CTfui7DrUBKP4/SwjDEKICmnIkCH8888/vPXWW8yaNcve5djVjRs38k6KrsiLorN0OVy8GsvV6/Fk6nIwGo04OTpQzdedxvUCCPT3kvBThUhYEOI2atZG1KQXy75jh+Yofr+hKI5l37cQQlgpMjKSmjVrYjQaOXfuHI0aNbJ3SeWCqqp5i6J///33CrEo+vK1WNb8e4IjYde5ej0eYxEfD328XGlSP4j+PZrQr1vjcrmblbAdCQtC/I9qTECNG5J7ZkIR9HqVZyZF06urG6Me9DJ5zckzOqZ+EM+RE1kkpxhp1cyZieN8GXFX4ectKB7jUTxeKNHXIIQQZenjjz/m9ddfp1u3buzevdve5ZRLKSkpeSdF79+/P+/1W4uiR48ebbeQZTSqbNt3npX/HOX4mQir2vD2dGVIvxbcN6QdAX6eNq5QlAcSFoT4H2PSK5D1j8n3DAaVG5F6Dh3X8ek3iew9lMX3nweaDAubdmQw9PGbBFTX0rWDCzci9Rw4moVeD5Oe9+WDqX6FDN86oPitQnFsYtsvTAghSoGqqrRs2ZJTp06xcOFCxo4da++Syr1Tp07lLYqOjY3Ne71nz555J0V7eJTNIZ6RMcnM/no9R8Ku26Q9N1cnXnyyD0MHtJQpSpWMhAUhADX7IGrCo4W+f8eDN9i0IyPfa6bCQmqakWY9r9K8sTMrFwXj7qYB4OCxLEaMuklktIE1P4YwZEAhO2Q4dUFTbWnJvhghhCgDhw4domPHjri4uBAVFVXgbAVRuFuLohctWsS6devyFkV7eHjkLYru0qVLqXzoVlWVPzce56sftpOly7F5+51a12XyC3fIKEMlorF3AUKUB2rGsiLfHz7YnY/ers66n0N49VmfQq/7fW0qsfEGvvk4IC8oAHRs48Kn7/oDMHV2XGG3Q/Y+VP1Fi2oXQgh7WLJkCQD33nuvBAULOTk5ce+99/LXX39x/fp13n//fRo0aEBaWhrfffcd3bp1o3nz5nzyySdER0fbrF+jUWXuoi18snBTqQQFgAPHr/Ls5GVcjSh6Sq+oOCQsiCpPNcRC1sYirxk3yoeJ43wZ1McdR8fCn/Scu5jDwN5u1K1VcKHy/UM98PTQcOJ0NqlpxsLryfjZ/OKFEMIOdDody5cvB+DJJ5+0czUVW0hICG+++Sbnz59n+/btPPnkk7i5uXHmzBlee+01atasyYgRI1i7di16vd7qflRV5dNvN7Hin6M2rN602IQ0Xpj2C+ESGCoFCQtCZK4CrP8GfLtpE6rx3JM+Jt9TFIUGdXNDxPlL2UXU8weqqrNJPUIIURrWrl1LYmIiNWrUoH///vYup1JQFIVevXqxZMkSIiMjWbhwIV26dEGv17N69WqGDRtGrVq1mDx5MufPn7e4/UW/7WH1xuOlULlpySmZvPruCuIT08usT1E6JCyIKk/NPmCztjzcNYWuR1BVlYjI3FBSzbeIQ4vUNMg5a7OahBDC1m5NQXriiSeq3CFsZcHLy4uxY8eyd+9ewsLCmDhxIv7+/kRFRfHhhx/SuHFjevbsyZIlS0hLSyu2vbDzN/nh931lUHl+MfGpfLLwX2R5bMUmYUFUaaqqgv5UmfR1LUJPbLwBfz8tdWoWsye1PqxMahJCCEtFRkayfv16QKYglYVbaxciIiJYtWoVd999NxqNhl27djF69GiCg4N5+umn2bt3r8kP5TpdDu9/ub7IcxMAVKOBC4d+JTr8YNHXqUairuzj+Ja57P3zLfb/NZ1Tu78jLemGyet3HrjIv7vkAVhFJmFBVG3GSDAmlElX3y9PAWDCcz5oNEXvcKHmSFgQQpRPy5Ytw2Aw0LVrVxo3bmzvcqoMJyenvLUL169fZ/bs2TRs2JC0tDS+//77QhdFL1mxj2s3Tf+cU1UjuoxE4m+c5OSO+cRcO1RkDQZ9Nqd3f8eloyvJSo/HJ7AxXn71yEyNIT35ZqH3ffbdZpJTM637woXdyZF7omrTXy6Tbo6f0jHnm0Q6t3Nh/Fif4m8oo7qEEMISqqryww8/ADBq1Cj7FlOFhYSEMHnyZN544w127drFokWL+O233/IWRb/55psMGTKEx58Yzap14YW2c3r3dyTFXDCrT1VVOX9wOUkxFwgK7Upo6+EoiibvPaOh8N2VUtOyWLvpBI+N6GzZFyrKBRlZEFWbWvpPOqJj9Ywcc5OQQAd+/y4YZ2cz/tqVQV1CCGGpI0eOEBYWhouLCw888IC9y6nyFEWhZ8+eLF68mMjISL799lu6du2KXq/nzz//5IVJH5CeWfiGGtWCW1C3xRCadX+akAa9iuwr/sYJEiJPUb1WW0Jbj8gLCrfq0Do4FXn/nxuPYzAUvhOgKL9kZEFUcaX7jSs5xcBdj9xEURS2rKxBjWBz/8rJN9TKRDUmgiECVB2gguIC2pooGl97lyaERW4tbB4+fDg+Pj52rUXk5+XlxdNPP83TTz/N6dOnWbRoMdvDip7yGly/W97vk2MvFXqdqqpEnNsMKNRuMtCqw+IiY1LYd/QK3TvUt/heYV8SFkQVV/STkJLIzDRyzxM3iU8wsH11TWrVKHj2QuH3GlAyMnBzcyu1+kTpUQ1xkPUnavax3AX0hgjT12lqgGNzFKe24DIURRtQtoUKYYHbz1aQKUjlW7NmzXh10hT2vfCdTdrLSI4kPTkSn4BGuHr6W93O9v0XJCxUQBIWRNWmDSyVZnNyVB56LooLV3LY9kdN6pg4pK0om7YcZ/god2rUqEHDhg1p0KBBvl/r168vQaKcUVUVcg6hZiyHrA2YdXaH8QbobqDqNkLqHFSXgShuj4JjR6ue3AlRmv766y8SEhIICQlhwIAB9i5HFOPspSibtZUcn7uOzsO3FrqMJCLObyEx8gx6fRY+AY2p23IILm7Fj5Seu2S706hF2ZGwIKo2hwaAI2C7Y++NRpWnXo1m36Estq6qQcNQy0cvTp3P/aB448YNbty4wbZt2wpccytI3B4ibgUJV1fXkn4ZwgKqIQY15W3QbSlBK3rIWoeatQ6ce4PXeyjaIJvVKERJydkKFYstP5inJ+XudGTQ6zi2+VMcXTzxqFaH9KQI4m8cJz3pBi17v4CTi0eR7Vy9HodOl4Ozs2UP0IR9SVgQVZqiOKE6NLbZuQaqqjJxehx/b0pn84qaNGvsbFU7b077iWcntOLixYtcuHCBCxcu5Pt9UlJSkUGiZs2a+QLE7SMSEiRsR1XV3OlGKTNBTbFdw7rtqHFDwHMKuI6QUQZhd1FRUaxbtw6QsxUqinOXbRcW9Nm5pzBHXtpF3RZDqNGoD5B7NsP5Qz8TF3Gcmxe3U7fFkCLbMRhVLl2Lo1nDYJvVJkqfhAUhHFsVGxZ++C2FfYdydyjafyQLgB9/S2H/4dzXnnjAi64dXFnyawpffJdEl/YuLFiaVGh7rz7rS6P6RYw4OLbEz88PPz8/OnfOv9WcqqokJCQUCBC3fp+UlERERAQRERGFBon/jkY0aNBAgoSFVNWImvouZCwvpQ5SUVMmQ84R8JqBosiTXGE/t85W6NKlC02aNLF3OcIMKWlZNmvLoM/dUcmremheUABQNFrqtRpOXMQJoq8eoHbTO9Boi/5oKectVDwSFkSVp7jejZpZ9Ae+bbszWPpbav7X9mSybU/uN73O7V3p2sGVaxG589T3Hc5i3+HCv1E/ONyz8LDg1BVFW73wehUlL0h06dIl33uqqhIfH58XHG4PExcuXCA5OTkvSGzdurVA27Vq1SqwPqJhw4aEhoZKkLiNqhpRk9+ErD9Kv7PM31DVTPD+SAKDsAtVVfOmIMnC5oojO9uMdVNm0mhzf17512xT4D0nFw88/eqQGn+VrPR43LyKXguYnWOwWV2ibEhYEMKxPTg0Bv25Qi9ZPDeIxXOLnz8+fZIf0yf5lagcxe0R6+9VFKpXr0716tULDRKFjUgkJydz/fp1rl+/XiBIKIpSYETi9qlNLi4uVtdcEamps8smKNyStRZV8UTxfqfs+hTif44ePUpYWBjOzs48+OCD9i5HmMlBa7ujtBwcc6fUOrtXM/m+k4s3AFkZCcWGBVvWJcqGhAVR5SmKAm6PoKZMt3cpoAkA5/6l0vTtQaJr16753rs9SNweIEwFiS1bthRo91aQMDUiUdmChJq1GTJ+KPuOM5ejOndFcbmj7PsWVZqcrVAxubnabmtwZ9f/7XSkqibfv7WuqqhTnEujLlE2JCwIAeByD6R/W+h++GVF8RiHopT9X8vigkRcXFyhi61TUlKKDBK3T226PUxUxCChGpNydz0qhl6v8sykaHp1dWPUg14mr7l4JZsPvkxky84M4hMNNGvkxJMPejH2MW+0WtMLmtWU6eDUEUVj+umeELam0+lYtmwZIFOQyrvY2FiOHj2a98+FaHdcqzW1SdvuPiEAZKTG4BtUcM2KISd32q2zGdunhtYufJqtKJ8kLAgBKBo38HofNfEJ+xXh1BlcH7Zf/4VQFAV/f3/8/f0LDRKFTW1KSUnh2rVrXLt2rdAg8d8Q0aBBg3IbJNSUWWCMNfmewaByI1LPoeM6Pv0mkb2HsujV1fRZGBu2pvPA2Eh02Sq9urrSzc+VHfsyeWFyLP9uz2DF98Gmd0AyJqCmvIfi85ktvywhCvX333/nna0wcOBAe5cjyP2+Gx4eni8YHD16lBs3buS7LrBuJxrYKCx4VQ8FRUNS9DlqNOyV7z2DPpuU+KsoigZX96Kn4QYHeOHtKevfKhoJC0L8j+LcBdXtkdLb3abIzl1RvN5HUSrWXM7bg0S3bt3yvaeqKrGxsYUutk5NTc0LEps3by7Qbu3atQsdkXB2tm5L2pJQ9eGQ9Weh79/1yE027cgotp3w6zk89GwUTRo48cvCYOrVzt1vPDPTSP/7brB6XTrLVqby2H2mRyTI+htV/yKKg5yCKkrfrSlIjz/+uJytYAd6vZ6zZ89y7NixvFBw7NgxEhMTTV7fsGFD2rZtS9u2bQmq1YTvVl20SR1OLp74BjYhMeoMKfFX8fKrm/deTPhBDPosguv3wMGp6MNCG9eXs2MqIgkLQtxG8XgNNfsY6E+Xbb9e76E41CrTPkuboigEBAQQEBBQaJAobEQiNTWV8PBwwsPDCw0SprZ/Lc0goWb8XOT7wwe7M6iPGy2bOrFxWwafLUgyeZ3eoOLtqWHdzzWo5vv/H75cXTWMG+XN/iNZ/Ls9o/CwAKgZv6B4TbHq6xDCXNHR0fzzzz+AnK1QFjIyMjh58mS+0YKTJ0+SlVVwZz1HR0datGiRFwzatm1Lq1at8PT0zLtGrzewassCEpIKf4gRE36IlIRwANL+92tM+GFSE64BEFC7fV4wqNviLpJiznP+4HLqt7kXJ1cfEqPOcO30ehydPanVpPhTvTu0qmP2fw9RfkhYEOI2isYdqi1CjX8UDJfKpk/PaSiuw8qkr/Li9iDRvXv3fO/dHiRMjUikpaXlBYlNmzblu1ej0eQbkbg9TNSrV8/qIKGqWZC5sshrxo3yyfv91t2F7yNev64Tu/+qlS8o3OLmmjv1KCXVWHRBmatQPV7NnT4nhBUys7K5cj2e9AwdOXoDjg4OeHo4U69WdZydcj8a3DpboXPnzjRtapvpLCJXQkJCvtGCo0ePcvbsWYzGgn/3PTw8aNOmTb5g0KxZM5ycil4o7OCgZeiAVvywYl+h1yTHXiTm2uF8r6XEXSIlLvfnn2e12nlhwc0rkCadn+D8oeWc3vN93vVuXoE07fYUjs7uRdbj5urEoJ7y56gikrAgxH8ommrgtww14SnQnyrNnlC83kVxk60Ib1dckIiJiSl0sXVaWhpXr17l6tWrhQYJU9u/hoaGFv2DV7cd1GSbfY01gk1/6919IPcJYrtWxYQaNRV0W8G16NNShbglJ8fA9v0X2Hf0MucuRRMekYDRxM42Wq2G0NrVaRQawO+/bwIUGVUoAVVViYiIKBAMwsPDTV4fEBCQLxS0bduW+vXro9FYN0V12MBW/Lhyv8n/1wANOzxEww4Pmd1eteCmtB80meS4S+gykvCsVgsPn1rFHsQGMLhPc9kJqYKSsCCECbmBYTlq6qeQsRQw/Y3WatraKN6zUZw62rbdSk5RFAIDAwkMDCw0SBS2/evtQeLff//Nd+/tQcLUYmuHnJOl/rWdPKPj25+ScXNVGPOwd7HXqzknUSQsiGJEx6Xw58YTrN10gsTk4tfUGAxGLlyJ4cKVGNxC+tHhzrZovZqSmJyBr7eMZBXFYDBw4cKFfKHg2LFjxMXFmbw+NDQ0LxDcGjkIDi5kcwMrBVb3oleXhmzbe95mbTo6u1O9RiuL7tEoCiPubGOzGkTZkrAgRCEUxRXFawqqy6Dc03oNuXM4VVUtwTdzBdyeQPGcgKLIjhC2dHuQ6NGjR773VFUlOjq60BGJ9PT0IoPE1j/q0aOT7Refn7uYzfnL2Rw9qeOL75LI0qks/Sqo0JGHfEp11EtUdAaDkd/+Psy3y3eV6MRcZzdflq46xKr1J3lpdB/u6tvCph9mKyqdTkdYWFi+YHDixAnS09MLXKvVamnWrFm+0YLWrVuX2ZkVL43qw8FjV0nPzC6T/kx5+J6O1K1ZsgNLhf1IWBCiGIpTR6j+N4mRP3H+2Aw6tbNiS0/FHVyHo7g+guLY0PZFiiIpikJQUBBBQUGFBonCFlunp6fTtIGNR5b+Z/LMONZs+P8PF1/N9ufhEZ5F3HGbnFOoqrHC7aAlSt+1Gwm8//V6ws7dtFmbaRk6Zn+9ga17zvP6uEEE+Jn557QSSE5O5tixY/mmEp0+fRq9Xl/gWjc3N1q1apUvGLRo0cKuW0EHVvfipVF9+WD+Brv0X7emH2Me7Fb8haLckrAghBkUxZlvlkQzZcp1nnqiMwu/HA45YblPd9WCT5IA0NYDx+YoTp3A5W4UjUeZ1izMc3uQ6NmzZ773VFUlKiocP2VQqfT9/Ghvhgx050akng1bM3h5SizhEXpmT/Er/umtmgZqBijy50r8vyMnr/HGB3+QmVX8SbrW2Hf0CmMmLeWzt++nYb2AUunDniIjIwucX3D58mWT11arVq3A+oJGjRqVyy1mh/Rvwfb959l75EqZ9uug1fDWi3fmLZoXFZP83xPCDEajkUWLFgHQo+9zaLxGAaCqRjCEgzEO1GxAC4orONSXcFAJKIpCUGA11JjSaX9g7//fPWTqq9UYPT6aj79OxMtDw1uvmHNKs/2mFYjy5+Dxq7w++w9ySjDtyBxJKZm89PavfP7O/TSpoPvmG41GLl++XCAYREdHm7y+du3aBYJBzZo1K8yULEVReOfVuxn/zm+cvWT6a7Q1jaLw9itDaNYwuEz6E6VHUdVClsgLIfJs3bqVfv364enpSWRkJO7uRW8RJyoP1ZiGGtPOonvenBXHR18l8v3ngYx6sPDzEv4rMlpPnfZXcHVRuHqoHr4+RT+hVAIOoGh8LKpNVE6nL0Ty8vRfydIVnBpTWry9XPlm1iPUCvEtsz6tkZOTw+nTpwssPE5NTS1wrUajoXHjxvlCQZs2bfDzqxzz7VNSM5k4ayVnLkSVaj8ajcLUlwYzqFezUu1HlA0ZWRDCDN9/n7un9MMPPyxBoapRyu606OBAB5o0cOLUuWyOnNTRv2cxu88o9psHLcqPLF0OMz7/u0yDAkBySibvffEP82c9jFZbPtbOpKWlcfz48XzB4NSpU2RnFxyFc3Z2pmXLlgUONnNzq7y7Pnl5ujJ3+gO8/9U6tu27UCp9+Hi5MuWlwXRtF1oq7YuyJ2FBiGIkJiaycmXugVxPP/20nasRZSkzM5Pjx4/TuLoX3h4pZdKno2PutIbUtGIOZtOEoEhYEMCCZTu5EZVk8X36nExunN9OXMRxdJlJODq54+1fn9A2w3FwNG+3ttMXIvl17SEeGd7J4v5LKjY2tsA0ogsXLmBqwoS3t3eB0YImTZrg6OhY5nXbm5urE+9NGsbm3ef47LtNJKcWPCHaWv26NebVp/vLNruVjIQFIYqxfPlysrKyaNmyJR06dLB3OaKU5OTkEBYWxsGDBzl06BAHDx4kLCwMvV7PLwuCuH+YbXZ/WfV3Gnf1d8PFpeCT2OxslQuXc5+Atm1RzIiGY3Ob1CMqthNnb7DinyMW35eZGsup3d+iy0jE2c0Xv5AW6HMySYg6Q+3sO8wOCwDf/rKbHh0bULuGOetsLKeqKlevXi1wsNmNGzdMXh8SElJgfUHdunUrzPqCsqAoCgN6NKFdi1p8+/NuNu44jS7b+pGphvUCeHJkF/p0bWTDKkV5IWFBiGLcmoL01FNPyQ+bSsJgMHDu3Lm8UHDw4EGOHTuGTqcrcK2/vz9purpAvE36/n1tKj+tSGHJF4F4eeZfk7Dwx2TSM1Q6tnGmds2ivz0rji1sUo+o2Jau2IelKw/12Rm5QSEzmYYdHsK/Vru8721Ggx4s/D6Xk2Ng+Z8Hmfz8HZYVYqo2vZ6zZ88WWF+QlJRk8vqGDRsWCAYBAZVvl6bSUs3HnTfGDWLc471Yv+0Uf248TviNBLPudXJyoG/XRoy4sw3NG9r2MDlRvsgCZyGKcOTIEdq3b4+TkxM3b96sNIvcqhJVVbly5UpeKDh06BCHDx8mLS2twLXe3t506NCBjh075v1aq1YtyDmGmvBgkf388FsK+w5lArD/SBbHT2XTp5srjernTnN44gEvunZw5XJ4Dj2GXsfZSeHFp3zo39MNJ0dYsyGdtz+KR1Fg/7ratClmZEGptkxOAK/ibkQl8dCL31kcFi4dW0XU5b3Ub3sfQfU626QWZycH/vj2Obw8zJ8al5GRwcmTJ/MFg5MnT5KVVXBajKOjIy1atMg76fjWwWaenlXnvIeykpCUzrlL0Zy7HM2V6/Fk6XIwGIw4Ozng6+NGk9AgGjcIpF5NPxwcyt82scL2ZGRBiCLcGlUYMWKEBIUK4saNG/mmEh06dIiEhIJPytzc3GjXrl1eKOjYsSP169dHoyk4PUh1bAMOjUB/vtB+t+3OYOlv+XdX2bYnk217cgNE5/audO3gSmgdR3b8WZNxr8fw+rtx+a6vV9uBn+YFFRsU0IaCo0yJq+r+3Hjc4qCQnZVG9JX9OLv5EljHdn+GdNl61m87xQN3tzf5fkJCQoFpRGfPnsVoLLg2x8PDI18oaNu2Lc2aNcPJyclm9YrCVfNxp2v7ULq2lwXKIpeMLAhRiMzMTIKDg0lOTubff/9lwIAB9i5J/EdcXFy+qUSHDh0iMjKywHWOjo60bt06LxR07NiRJk2a4OBg/vMSNWM5aso7NqtdVVVOnM5m575McnJU2rd2oWMbZ1xdi99VRvGciuL+hM1qERXT8LHfEJdQcISsKDcv7uTKiTXUaT6Ymo372bSeJvUD+fbDx4iIiCiw8PjatWsm7wkICCgwjaiw0C6EsA8ZWRCiECtXriQ5OZm6devSr59tf6gKy6WkpHD48OF8owZXr14tcJ1Go6F58+Z5oaBDhw60bNkSZ+cSboHqMgxSP8k9OdkGFEWhdXNnWje3sC7FDVxH2KQGUXHFJaRZHBQAUuJyTyP28K1JakI4Eee2kpoQjqJo8avRkrothqDRWvfR4OzFSPwDAomPizX5fmhoaL7diNq2bUtwsMx1F6K8k7AgRCFuTUEaPXq0POUqYxkZGRw7dizfqMG5c+dMXtuoUaN8awzatm1bKvukKxoP8JyImjLD5m1bVIfHqygamadd1Vl7Cm968k0AUuKuEHF+Kx4+NfHyq0ty3GUiL+1Cl5FIky5PoChWfM9TNGTpndBqtTRr1izfaEHr1q3x8fGxqmYhhH1JWBDChIsXL7Jt2zYURWH06NH2LqdSy87Oztuy9NaoQVhYGAaDocC1derUybfGoF27dmX7AcT1YcjaANn7yq7P2zm2B7fH7dO3KFfOX7EuLOToMoDc6UjNuj+Nj3+D/72ezontX5MQeYqk6PP4BjWxqv3ZH89j7GODcHGRM0CEqCwkLAhhwqJFiwC44447cnfDETZhMBg4e/ZsvqlEx48fN7llaWBgYL6pRB06dLD7loiKogGvWajxd4OaWca9u6B4f2DdE19R6VgzBQnAoM/9uxbSoFdeUABwdHanTvM7Obf/RyIv77E6LHh4VZegIEQlI2FBiP/Q6/UsWbIEkBObS0JVVS5dupRvKtGRI0dIT08vcK2vr29eILgVEGrUqFEu5zIrDrXA5wvUxHGA9YcYWUaL4vM5ikOdMupPlHfZOdb92dM6OGHQ66heq02B93wDm6AoWtISTS9GNkdJDvYSQpRPEhZEpaeqRtBfBH0Yas4pyDkDajKo2aA4guIFDo1RHJuDYwvWrz9PZGQk/v7+DB061N7lVwiqquZtWXpr1ODQoUMkJiYWuNbd3Z127drlGzWoX79+uQwGhVGce4PPZ6hJr1L6gcEBxftjFBdZZC/+n7XrqLQOLhj0OlzcC562rHVwwsHJlRxdGgZ9NloHy7cq1Wpl5EuIykbCgqi0VGMiZK5CzfgZDMU8Kcs5kjerpHMDB6a8Wg0Hj/tlX+9CxMbG5ptKdPDgQaKjC86hdnJyok2bNvkWIDdp0gSttuIf5KO43AG+C1CTJuSGz1LpxBPFZw6Kc5/SaV9UWK7Ojlbd5+zmQ3ZWMoXumv6/aW5GQ45VYcHFyrqEEOWXhAVR6ajGVNS0OZCxAsi2+H4/Xz3vvu6Hqm7BmDQJxXMyira67QutIJKTk/O2LL0VEMLDwwtcp9VqadGiRb6pRC1atKjUgUtx7gnV/0ZNeRt0W2zbuHNvFK/3ULRBtm1XVAp1ahYcGTCHu3cIqQnhZKbG4OFTI997qqpiyMlEo3XCwcm6HcXq1pTDK4WobCQsiEpF1e1ATZ4KxqgSt6UoBshag6rbAV7TweWuCjVVxhoZGRkcPXo036jB+fOmTy1u3LhxvqlEbdq0KZUtS8s7RRsAPvMh60/U1DlgtG6XmjyaABSPCeA6otL/eRPWaxxqXYj0CWhI1JW9JEWfKxAWUhOuYjTk4OFT0+o/e43rB1p1nxCi/JKwICoFVdWjps6EjOWl0HgSavKroPsXvD9AUSrHTh/Z2dmcOHEi31SiU6dOYTQaC1xbt27dfFOJ2rdvj5eXlx2qLp8URQHX4eByN+i2oGYsh+w9ljXi1AXF7VFw7oeiyFQOUbQGdaqj1SgYjIVMJyqEb1BTHJzcuXlxF0H1uuSNIKiqys0LOwGo2aS/VTX5ervhX83DqnuFEOWXhAVR4alqdu68cd3G0u0o6x9UQxz4LkDRuJduXzZmMBg4c+ZMvqlEx48fJzu74DSt4ODgAsHA39/fDlVXPIriAC6DUFwGoRpuQvYxVP0pyAkDw/XcRfWooDiDtiY4tkBxaA6OrVEcatq7fFGBODs70qxRCCfP3rDoPo3Wgboth3Dx8G+c3f8jdVrchWo0EH31IPE3T+IT0Ihqwc2tqqlNM+tHJIQQ5ZeiFrrKSYjyT1UNqMkTIGtd2XXq1BXFdyGK4lx2fVpAVVUuXryYbyrRkSNHyMjIKHBttWrV8q0x6NChAzVq1DDRqhCivFm/7RQzv7T8e5+qqlw/+y/Xz2wC/v8jgF+NVjTs8BBarXUjW59Pv58OrWR7XyEqGwkLokJT075ETfuy7Dt2fRCN93tl3+9/qKrK9evX800lOnz4MElJSQWu9fDwoH379vlGDerVqydPAoWooHTZeu59ZgHJqdYdEJiVHk9y3GWMBj1efvVw8wqw+tC/2iHVWPbFaPl+IkQlJNOQRIWl5pxGTZtv0T3XInKYPCuOLTtzf7j26OzCtAl+tG5u4ShB5q+oLneiOHe37L4SiomJyTeV6ODBg8TExBS4ztnZmbZt2+YbNWjUqFGl2LJUCJHL2cmBu/u3ZNnqA1bd7+Luh4u7bXYvGnFnGwkKQlRSMrIgKiRVzUaNvw/0Z82+58LlbAY9cIPIGD2D+rjj5Ah/b8rAQQtbVtWkYxsLFy5rglGq/42iKZ0FfUlJSXmHm90KCNevXy9wnVarpWXLlvmmErVo0QJHR1kkK0Rll5au44lXlxATn2q3GurXrs53Hz2Oo6M8jBCiMpKwICokNX1p7u5HZsrKMtJ2wDUiburZvLImndrmBoOd+zLpe28EzRs7cWRTbbRaC5+MuT+LxnOiZfeYkJ6enrdl6a1RgwsXLhS4TlEUmjRpkm8qUevWrXF1dS1xDUKIimnf0StMmrnSLn1rNArffvgYjUNly1QhKiuZhiQqHFVVUTOWWXTPwh+TOX8ph2kTquUFBYCeXVx58kEvlvySwsZtGQzub+EuRxm/oXq8hKKYf/CYTqfjxIkT+aYSnT592uSWpaGhofmmErVt21a2LBVC5NOlbT3u7t+SvzafLPO+n7i3swQFISo5CQui4sneC4YrFt2y6u80AJ54oOAH7eGD3VnySwp//JNmeVhQEyFrPbgOM/m2Xq/n9OnT+aYSnThxgpycnALX1qhRIy8YdOjQgQ4dOuDnJ6ehCiGK9+pT/YiISuTYqYgy67Nv10aMfqBbmfUnhLAPCQuiwlEzf7X4nqvX9bi4KITWKTiPv0Pr3JGGIyd01tWT8QuK6zCMRmPelqW3Rg2OHj1qcstSPz+/fFOJOnToQEhIiFX9CyGEs7MjH04ewevv/8HxM6UfGHp2asDb44eg1Vq3e5IQouKQNQuiQlFVFTW2GxjjLbrPtc5FPN0VYk7XL/CeXq/iXOsizs4K6VfqW7yjh8GgMPSpGuzbd4Tk5OQC73t6euaNFNwKBnXr1pWdQ4QQNpely2HmF/+wbV/BNU+2cs+g1rz6dH8cJCgIUSXIyIKoWIzRFgcFAH8/LQmJBpPv6bJz87JOp5KRqeLuZtmHeK1WJT5qD8nJOlxcXGjbtm2+nYkaNWqERiM/VIUQpc/F2ZH3Jg3j311n+fy7zaSkZdmsbf9qHrz+3CC6tg+1WZtCiPJPwoKoWHKsW8BXK8SBG5F6EhINVPPNv73fxSv/v34gNc2Iu5vlH+w//egpvAKfoXnz5jg4yF8rIYT9KIrCoJ5Nad+iNl8u2cqWPecwGq2fRODoqOWuvi147rGeeLpbuMW0EKLCk081omLRX7bqtl5dXdl3OIvV69MY87B3vveWrUwpcVnduwSh8Wpd4naEEMJW/HzdeefVu3nhid6s+fcEa/49QXxSutn3Bwd4M+KO1tzVrwU+Xm6lWKkQojyTNQuiQjGmfgbplp3aDLkHsjXpHk6NYAf2r6tFcGBuTt64LZ37n44kLT33r0H6lfq4uFgxZcj1PjTe71t+nxBClBG93sDF8FjOXYrm3OVoLl6NJT1DR47egJOjFk8PVxrW9adx/UAahwYRWrs6Go2srRKiqpORBVHBmF53UJyGoU5MeM6HT79JolXfcPr1cCMySs+hEzpmvFaNyTPjCaiutS4oAKjW1SWEEGXFwUFLk/pBNKkfZO9ShBAViIQFUaEoijPWDoV9OK06RiMs+jmFrbsy6NbJlW1/1Pzfu/G0b+1cgsJkHq8QQgghKh8JC6Ji0fhbf6tGYc4Mf+bMyN/G/CVJAAwZYOGBbLdRtNWtvlcIIYQQoryS/RxFxeLY3KbNqarKvMXJuLooPDDM0/qGHFrYrighhBBCiHJCwoKoWBwaAwVPYTaHqa0DP1uQxOnz2bz2gi9+1bQm7jKTjUOMEEIIIUR5INOQRIWiKE6oDo1BH2bRfTk5Kr3uuc6jI73o1dWV5BQjv69N5etFyfTu6sqbL1ezvihNAIo2wPr7hRBCCCHKKQkLosJRXIegploWFhKSDLi6aBg/NTbf6w8O9+CbjwJwcirB9oAuQ62/VwghhBCiHJNzFkSFoxoTUWN6ATrL7lNVduzN5MTpbBQFendzpWXTEuyA9D9K9U0oDrVL3I4QQgghRHkjYUFUSMbkyZC5yt5lgFNPNNW+t3cVQgghhBClQhY4iwpJcR+LtQudbVqHxzh7lyCEEEIIUWokLIgKSXGoj+Lxsn2LcHsCxamDfWsQQgghhChFMg1JVFiqqkdNeBByTpZ959raKH5rUDRuZd+3EEIIIUQZkZEFUWEpigOK98egeJdxzy4o3nMkKAghhBCi0pOwICo0xSEUxfc7UNzLqEdHFN+vUZxal1F/QgghhBD2I2FBVHiKU2uUaj+C4lvKHbmi+H6L4tyzdPsRQgghhCgnJCyISuH/2rv34LjK+4zjz9mVVtLqflvdbOu24uILsmXHEALGhiSUAIUmpAltpkAcmoRchjSZdJoWmrQzmWSGUihpwjRtSpMQCKWTSdoQg2sMOBDb2MaJZYxt3YWt1dWytJJW2svpHw6qhd5deaXVZa3vZ8Yzmj37/t7fmbFmzqPzvudYqWtlFf1Mcr1vfiZIrZdV+F+y0q6en/oAAABLEBuccVGxbVsae0b28LckeyQBFV2ysu+X3PfIspwJqAcAAJA8CAu4KNnh3nOhYfSnUsQXfwFHgZRxhyz3nbKcFYlvEAAAIAkQFnBRs+2QNL5b9vguKXhUCjVJChu+aUnOail1ray066T0G2VZroVuFwAAYEkhLGBZse2AFDohRc5K9oRkpUpWtpRSJ8uRtdjtAQAALCmEBQAAAABGPA0JAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgBFhAQAAAIARYQEAAACAEWEBAAAAgFHKYjcAAAAuPhORCXWMdKh1tF1tI+3qHe9VMBKULcnlSFVxWpGq3FWqyqzUKvdKpTnTFrtlAAaWbdv2YjcBAAAuDq3+Nu3qeVF7+/craAcvaEyqlaorCzfrBs821WRVz3OHAOJBWAAAAHN2bOgt/bTzWbWOtM6pTnVmlT664iNak7s6QZ0BmAvCAgAAmLVAOKBnOp/Vrp7dCa27zbNVH1t5hzKcGQmtCyA+hAUAADArbSPteuzkd9U30Tcv9Ytchfq89z5VZ1XNS30AMyMsAACAuB0fPqGHjz+qQCQwr/OkO9L1pUu+qMtyLp3XeQCY8ehUAAAQl2Z/i/7h+CPzHhQkKRAJ6OETj6rZ3zLvcwGYjrAAAAAu2NngWf3jiX/SeGR8weYcj4zr4ROPanDi7ILNCeAcliEBAIALYtu2vtP0XR04cyiucb6DXTr64yPqP9YnO2Kr4NJCrb3rCpVtKo+rTkPeen2x7vOyLCuucQBmjzsLAADgguwfeD3uoHDkid/qhft+pd7GXhWv86ikoUy9v+vRzs/t0JtPHY2r1qHBw9rbvy+uMQDmhjc4AwCAGU1Egvpx+1Nxjel4uV1vfO+gam+u03v+4kq5slySpOFTQ/rlXb/Qwcf2a+WWlcquyLngmk92PKWNBQ1yOVxx9QJgdrizAAAAZrR/4HUNhYbiGhMKhFS2uVxX/801k0FBkrIrcrRqa6XssC3fQV9cNYdDfu3r3x/XGACzx50FAAAwoxe743/pWvUHa1S6oVSWY/oeA2f6uUuQ4Egw7rq7el7StcXXxD0OQPy4swAAAGJqH+lQ80j8jy61LEtuT+a0z23bVu/veiRJhZcVxl23daRVbSPtcY8DED/CAgAAiOnY8FsJrdf03yc1cLxf+ZcUyLO+ZFY13hw6ltCeAJixDAkAAMTUNtI25xq9R3o02juq0/tOqekXJ+TKSdOWv98668egcmcBWBiEBQAAEFMiLsz/9/4XFPRPSJIcqQ594LEblVuVt6g9AZgZy5AAAEBUYTssX6B7znU2f/lKXfVX79PlH18jd5FbL9z3K7Xtap11ve7xbgUj8W+OBhAf7iwAAICoJiITsmXPuU7th+omf77ik+v1/Gef054HXlJ6XrpKN5bNsregUh2pc+4NQHTcWQAAAFGF7XDCa6blpql++3rZYVtvPH5w1nXmozcAUxEWAABAVKnW/PzlvuT3dxP6GnsVnpjdRb9TzkS2BMCAZUgAACAql8OldEeaApHxhNZ1pJz7e6UdsRUeD8npiu/CPzgWVFFuoWprauX1elVXVzf5z+v1qqKiQg4HfxMF5oqwAAAAorIsS5WZlTo+fCLusS3PN6vmxlrjscGWM5KkrLIsubLT4q49ePKMAmMBHT16VEePHp12PCMjQ7W1tZPh4fwwUVZWRpBYBsJ2WP6QX8FIUJYspTpcyk7JmvXjepcrwgIAAIipyj27sHDgkf3ynx7WurvqZTn+/wLNtm29+WSjJKnyhupZ9fTxGz6u7zQ/qqamJp08eXLyX1NTk1paWjQ2NqbGxkY1NjZOG5uRkTElQJz/c1lZGReTSSoQDujQmcNqGWlR60ibOkY7NRGZmPIdt9OtqsxVqnJXqS7bqyty1ynFweVwLJZt23N/xAEAALho/aZvrx5v+X7c4zpf6dBLf7lLhauLdNkdl6vw8iIFR4J669ljanmuSVllWbr1qT9Sakb8+yL+vGa73ld0tfFYKBRSe3v7ZHg4P0y0trYqHI6+R8LtdkcNEqWlpQSJJejU2Gm92L1bv+57TYFIIK6xeam5uq54i7Z6tqjAVTBPHSY3wgIAAIhpJDSq+w9/edpfaS/E6X2ntPfbr8l/anjK56XvKdM1f3ud3MXuuGu6HC49sv4hZaZkxj02GAxOBol3h4m2traYQSIzM9O4P6Kurk4lJSUEiQXmD/n1ZPtTeq1/75xrOeTQTWU36vaK2+TicbxTEBYAAMCMftD6H3q595VZjY2EIup+w6eB4/1KdaeqaG2x8r0FU5YmxWNL8bXaXn33rMbGEgwG1dbWNm1Z0ztBIhKJRB2bnZ0tr9drDBMej4cgkWCHzryhJ9p+qLPBoYTWLc8o173Vn1RN1uyWx12MCAsAAGBG7SMdevDoNxa7DUnSN9Y8qKrMygWdc2JiQq2trcY9Eu3t7TMGCdOyprq6OhUVFREk4mDbtp7ufEY7fC/M2xyWLN1V9Qlt82ydtzmSCWEBAABckIePP6Lfnj2yqD2sy12rr1z6pUXt4d3Gx8fV2tpq3CPR0dGhWJdaubm5UfdIFBYWEiTOE7EjeqLth3q5d8+CzHfnqo/pD0o/uCBzLWWEBQAAcEEGJgb0tSMPaiw8tijzpzvS9c11f6fCtMJFmX82xsfH1dLSYtwj0dnZGTNI5OXlxQwSy81P2p/W8907F3TOe6ru0lbPlgWdc6khLAAAgAv2Su8e/VvrE4sy991Vf6ZtnusWZe75EAgEpgSJ88NEZ2dnzLH5+flRN1sXFFx8T/U5MHBQjzV9d8HndVpOfX3NA1rlXrngcy8VhAUAAHDBbNvWPzc/rtcHDizovJvyG/R5733LZlnO2NiYmpubjXsk3n777ZhjCwoKjPsjvF6v8vPzF+gMEmc4OKyvHXlQQ6HYm5kjoYh+881XVdJQKu8tdcbvhAIhHXnit2rd0ayxgTHlVuVp9Z1rVHOTN2rdSnelHlz9tWX7PgbCAgAAiEswEtQjJx5T49D0NyfPhzU5q3X/JV/kkZa/Nzo6qubmZuMeidOnT8ccW1hYaFzW5PV6lZeXtzAnEKfvNf2L9g7sMx6LhCMa7R1V/7E+vflko3qP9OjqB641hoXwRFg7v7BDPYe7VXh5kbJXZKv7DZ/G+sZUf+8G1X9qQ9QePlxxu26ruDVh55RMCAsAACBuE5Ggvtf0uA4NHp7Xedbn1etz3s/I5XDN6zwXi5GRkckg8e4w0dXVFXNsUVGRcVlTXV2dcnJyFugMpuoY7dQDjV+PenznF3aoa//UgBQtLPzu3w/r8OOHtO6eeq3/dIMsy9KEf0I7v7BD/W/26ZYf3aaCS8x7QdIcaXpk/UNyp8T/XpBkR1gAAACzErbDeq5rh3526ucK29FfZjYbTsup28pv1c1lNy3b5R+J5vf7pwSJ88OEz+eLOdbj8UTdbJ2dnT1vPT/R+kPt7n056vG3nj2mcCCkfG+BTu97W2/+5KgxLNi2rf/80NNKdafotmc+IofTMXms90iPfvWp/9GqrZXa+u0bos71ico/0QdKoh+/WPHbBwAAZsVpOXVr+c3akFev77f8QG2j7QmpW+lepU/VfHJZbyqdD1lZWaqvr1d9ff20Y8PDw2pqajLukeju7lZPT496enr02muvTRtbUlJi3B/h9XrnFCRGQ6Mzvp35sjsun/y562D0JViDzWcUGBhT7S3rpgQFSSpaW6yMYrd8h7pk23bUfTEvdu/W+z3XL5t9M+8gLAAAgDlZ4V6hB9f8tfb1v64Xe3brpL9pVnW8WV5d79mqKwvew92EBZadna0NGzZow4bp6/aHhoYmQ8S7w0Rvb6+6u7vV3d2tV199ddrY0tJS42br2tpaZWVlxezpwJmDGo+MJ+T83lmqlFedN+2YZVnKrcyV70CX/F1+ZZebA87pQJdaRlpVm1WTkJ6SBb+JAABgzpyWU1cXXaWri65Sx2in9vT+Wk3+ZnWOdipoh4xjUq0UrXCvlDerRtcWXaPKzFUL3DUuRE5OjhoaGtTQ0DDt2NmzZ6cEiPN/7uvrk8/nk8/n054901+kVlZWFnWztdvtVpO/JWHncLZtUJKUvcK89yJ7RY58B7o02HQmaliQpGZ/C2EBAABgLla5V+pPK++UJIUiIZ0aO63e8T4F7aBk20p1pKo4rVgVGeXcQUhyubm52rhxozZu3Djt2ODgoHFZ08mTJ9Xf36+uri51dXXplVdemTa2vLxc1z62TWkr0hLSZ3AkKElKSTf/f3Nln9tAHxwLxqzTNpKYpXbJhN9QAAAwb1IcKarMXMVdg2UoLy9PmzZt0qZNm6YdO3PmjHFZU1NTkwYGBuTr8SmlJHGXqcHRcyHAkeIwHn/n8/B47I36raNtCespWRAWAAAAsKDy8/O1efNmbd68edqxgYEBHTp5SD+ynkrYfOHgBT6ta4aHhPaP9yegm+RijlcAAADAIigoKNDqK9YktGaq+9wL/SKhiPF4JHju89TM2C/+m4hMJLSvZEBYAAAAwJJiKbGPJ3Vl/X5Pwoh5T0Jo/Nwm/NTM2C//c1jL79J5+Z0xAAAAlrREv7H7nbDg7xo2Hve/PTzle9GkWstvBT9hAQAAAEtKnitXqVbsJUHxKLisSJI03GkOC2fbB+VwOZVfVxCzjifdk7CekgVhAQAAAEuK03Im9A3eFe+tkCyp+w3ftGNDnUPyn/artKE06qNV31GVWZWwnpIFYQEAAABLTiIvzNPzM+S5okTdh33qO9Y35dixp49KklZcM3M4qXJXJqynZLH8Fl4BAABgyavLqtWunhdjfqf5lyfVe6RHktTb2Dv5WV/juc9qb65T8bpzS4c2fHajnv/Mc3rpq7u0+StXKb82Xy07mnX82WPKWZWjuj+8ZOaesr1zOaWkRFgAAADAktOQv0Fup1uj4dGo3/Ed7FLzL5umfNZ9yKfuQ+eWGxWt9UyGhZINpbrmG9dp77de1Utf3TX5/bzafF3/0PvlTJthCZK7UiszVsz2dJKWZdszvH0CAAAAWAQ/aX9az3fvTGjNwGBAb/+6U4EzY8qrzlf5eyvkcM68Mn979d3aUnxtQntJBtxZAAAAwJJ0fcm2hIeF9Lx0eW+pi2uM2+nWlQXT3za9HLDBGQAAAEtSaXqJrvdsXew29OEVtyvNmbbYbSwKwgIAAACWrI+t/KiKXEWLNv9l2ZfqBs+2RZt/sREWAAAAsGSlO9O1vebuRZnb5XBpe/U9cljL95J5+Z45AAAAksLqnMv1xyvvWNA5HXLoM7X3ypNevKDzLjWEBQAAACx5N5fdpNvKb12QuRxy6N6a7dqY37Ag8y1lPDoVAAAASeO5rh16pvNZ2ZqfS1iXw6VP19yrTQUEBYmwAAAAgCTT5G/Wv7b8QF0BX0LrXpp9ibZX36OSdE9C6yYzwgIAAACSzkRkQj879XM979upsB2eU60MZ4Y+XHG73l9y/bLezGxCWAAAAEDSGgoO6eXePdrd85L6JwbiGrsyY4VuKNmm9xZepXRn+jx1mNwICwAAAEh6ETuit4aPq8XfqraRNrWNtqtvvH9yb4PTcqokzaOqzEpVZVapLsur6swqWZa1yJ0vbYQFAAAAXLRCkZAsy5LTci52K0mJsAAAAADAiB0cAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjAgLAAAAAIwICwAAAACMCAsAAAAAjP4PnkNtargEc8oAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "networkx.draw(G, pos=pos, with_labels=True, node_color=[x[1] for x in sorted(labels.items())])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:10:34.352022Z", "start_time": "2022-11-24T16:10:34.089436Z" } }, "outputs": [ { "data": { "image/png": "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s7KykJGRwZ8VdPZo/+xnP8OyZct84gOhlFavXo158+a57GtqasKll16KVatWYfXq1UN+9ToAuPDCC/Hhhx/CZrO5JLF5eXkAMKTf26Ojo6HT6XrNfQBgxIgR/W9gQMs70IDNmTNHGDZsmNDS0iLua2xsFGJiYoQlS5bIF5gHeemllwQAwpdffinuO3HihKBSqYQ//vGPMkbmuX788UeuPHaaqqoqIS0tTXjyySflDkVWW7duFQAIr7/+urgvLy9PUCqVwl133SVjZJ7BZDIJ559/vnDjjTcKDodD7nC8Qm1tLVceO81nn30mABBee+01cV9dXZ0QEREhXHvttTJG5hlWr14thIaGCpWVleK+jo4OYezYscKECRMEu93e72srBGEILzPjAfLz8zFt2jTExsbiN7/5DQRBwKZNm9Dc3Ix9+/b12FU/1FitVlx00UUoLCzEfffdh7a2Nrz44osICwvDvn37xAEx9D8//fQTpk6dis2bN4ulCkOZ2WzGhRdeiMDAwF5vK19++eVujkoedrsds2bNQk5ODu677z4olUps2rQJNpsNOTk5iI6OljtEWc2fPx/FxcV4/PHHe5w9YuHChfybc5q6ujpER0f7TMmTFARBwMqVK/HZZ5/hvvvuQ0BAAP7xj3/AaDRi3759Axr17wvq6uowZcoUOBwO3HbbbQgKCsKrr76K3NxcfPXVVwNbZGigWTcNXGlpqXDFFVcIsbGxQkJCgnDNNde4fIohQTCbzcJNN90kxMTECImJicKaNWuE5uZmucPyWOyxdVVUVCQAOOO/ocRoNAo333yzEB0dLYSEhAjLli0TioqK5A7LI5zt54TPU3fsse2ZzWYTHnjgASEpKUnQ6/XCypUr+d7eRX19vbBmzRph2LBhQnR0tLB06VIhLy9vwNdljy0RERER+QTO5E5EREREPoGJLRERERH5BCa2REREROQTmNgSERERkU9gYktEREREPoGJLRERERH5BCa2REREROQTmNgSERERkU9gYktEREREPoGJLRERERH5BCa2REREROQTmNgSERERkU9gYktEREREPoGJLRERERH5BCa2RERDxNVXXw2FQoHHHnus27G9e/ciMDAQkZGRyMvLkyE6IqKBUwiCIMgdBBERDb6CggKMGjUKwcHBKCoqQlhYGADgxIkTmDZtGlpbW/HFF19g2rRpMkdKRNQ/7LElIhoi0tLScP3116OxsRF/+ctfAAC1tbVYuHAhGhsb8fbbbzOpJSKvxh5bIqIhpLKyEunp6fDz88PRo0dx2WWXYd++ffj73/+OG264Qe7wiIgGhD22RERDSFxcHNatW4fm5mZMmDAB+/btwx//+EcmtUTkE9hjS0Q0xFRVVSEhIQEOhwPXXXcdNm/eLHdIRESSYI8tEdEQIggC7rzzTjgcDgCAWq2WOSIiIukwsSUiGkJ+//vfY8uWLVi0aBFiY2Pxz3/+EydOnJA7LCIiSTCxJSIaIp577jk8++yzOO+887B161bce++9sNls+OMf/yh3aEREkmCNLRHRELB161ZcccUVSE1Nxd69exEdHY329nakp6ejsrISBw4cwIQJE+QOk4hoQNhjS0Tk47755htce+21iIqKwmeffYbo6GgAgL+/P+677z4IgoA//OEPMkdJRDRw7LElIvJhx44dw/Tp09HR0YGvvvoK559/vsvxjo4OpKeno6ysDN9++y1mzJghU6RERAPHxJaIiIiIfAJLEYiIiIjIJzCxJSIiIiKfwMSWiIiIiHwCE1siIiIi8glMbImIiIjIJzCxJSIiIiKfwMSWiIiIiHwCE1siIiIi8glMbImIiIjIJzCxJSIiIiKfwMSWiIiIiHwCE1siIiIi8glMbImIiIjIJzCxJSIiIiKfwMSWiIiIiHwCE1siIiIi8glMbImIiIjIJzCxJSIiIiKf8H8sJnVlF0X81gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlimit = (-8, 8)\n", "x = np.linspace(*xlimit, 1001)\n", "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n", "\n", "ax.set(**{\n", " \"xlim\": xlimit,\n", " \"xlabel\": \"$x$\",\n", " \"ylabel\": \"probability density\"\n", "})\n", "\n", "colors = ['#396ab1', '#da7c30', '#3e9651', '#cc2529', '#6b4c9a']\n", "for i, s in enumerate(samples):\n", " if dense[i]:\n", " c = colors[labels[i] - 1]\n", " else:\n", " c = \"gray\"\n", " ax.plot(s, 0, linestyle=\"\",\n", " marker=\"|\", markeredgewidth=0.75, markersize=15,\n", " color=c)\n", "\n", "labels_ = [\n", " (-4, \"2\"),\n", " (-2.8, \"1\"),\n", " (-1.8, \"0\"),\n", " (-0.8, \"3\"),\n", " (1, \"0\"),\n", " (1.8, \"4\"),\n", " (2.8, \"5\"),\n", " (3.8, \"0\"),\n", "]\n", "\n", "for position, l in labels_:\n", " ax.annotate(l, (position, 0.02))\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## CommonNN clustering in detail" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In practice, one does not necessarily need to construct a density connectivity graph in its entirety beforehand. It is also possible to start from another input structure and explore the connectivity while traversing the structure. We will now show a variant of the CommonNN clustering procedure, starting from pre-computed neighbourhoods in more detail. For this, we generate a small example data set of 200 points in 2D." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:05.558526Z", "start_time": "2022-11-24T16:11:05.450209Z" } }, "outputs": [ { "data": { "text/plain": [ "[[], [], None]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "noisy_circles, _ = datasets.make_circles(\n", " n_samples=200,\n", " factor=.5,\n", " noise=.05,\n", " random_state=8\n", " )\n", "\n", "noisy_circles = StandardScaler().fit_transform(noisy_circles)\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(*noisy_circles.T, \"k.\")\n", "ax.set(**{\n", " \"xticks\": (),\n", " \"yticks\": (),\n", " \"aspect\": \"equal\"\n", "})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We expect to find two clusters (an inner and an outer ring) in this data set. We will at first compute the neighbourhoods for all points with respect to a radius of $r$. Below we show the neighbourhood for the first point in the set." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:12.245829Z", "start_time": "2022-11-24T16:11:12.240875Z" } }, "outputs": [], "source": [ "r = 0.7" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:16.820172Z", "start_time": "2022-11-24T16:11:16.809075Z" } }, "outputs": [], "source": [ "def point_zoom(data, point, ax):\n", " ax.plot(*data.T, \"k.\")\n", " ax.plot(*data[point].T, \"r.\")\n", " \n", " neighbourhood = mpl.patches.Circle(\n", " data[point], r,\n", " edgecolor=\"k\",\n", " facecolor=\"grey\"\n", " )\n", " ax.add_patch(neighbourhood)\n", " \n", " limit_factor = 1.2\n", " ax.set_xlim(data[point][0] - r * limit_factor,\n", " data[point][0] + r * limit_factor)\n", " ax.set_ylim(data[point][1] - r * limit_factor,\n", " data[point][1] + r * limit_factor)\n", " ax.set(**{\n", " \"xticks\": (),\n", " \"yticks\": (),\n", " \"aspect\": \"equal\"\n", " })" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:17.560177Z", "start_time": "2022-11-24T16:11:17.444482Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "point_zoom(noisy_circles, 0, ax=ax)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:22.703545Z", "start_time": "2022-11-24T16:11:22.689238Z" } }, "outputs": [], "source": [ "# Calculate neighbourhoods using a k-d tree\n", "tree = cKDTree(noisy_circles)\n", "neighbourhoods = [set(x) for x in tree.query_ball_point(noisy_circles, r)]\n", "for i, s in enumerate(neighbourhoods):\n", " # Avoid neighbour self-counting\n", " s.remove(i)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:24.147954Z", "start_time": "2022-11-24T16:11:24.129396Z" } }, "outputs": [], "source": [ "def check_similarity(a, b, c):\n", " \"\"\"Check the CNN density criterion\"\"\"\n", " if len(a & b) >= c:\n", " return True\n", " return False\n", "\n", "def commonn_from_neighbourhoods(\n", " neighbourhoods, c, yield_iterations=False):\n", " \"\"\"Apply CNN clustering\n", " \n", " neighbourhoods:\n", " list of sets of point indices\n", " (neighbours of each point)\n", " c:\n", " Density reachable points need at least this many common\n", " nearest neighbours\n", " yield_iterations:\n", " Report state of clustering after each label assignment\n", " \"\"\"\n", " \n", " n = len(neighbourhoods) # Number of points\n", " visited = [False for _ in range(n)] # Track visited\n", " labels = [0 for _ in range(n)] # Output container\n", " queue = deque() # FIFO queue \n", " current = 1 # Cluster count\n", " \n", " for point in range(n):\n", " # Source node\n", " if visited[point]:\n", " continue\n", " \n", " visited[point] = True\n", "\n", " neighbours = neighbourhoods[point]\n", " if len(neighbours) <= c:\n", " continue\n", "\n", " labels[point] = current\n", "\n", " if yield_iterations:\n", " # Get current state of clustering\n", " yield (point, None, current, labels, visited)\n", "\n", " while True:\n", " for member in neighbours:\n", " if visited[member]:\n", " continue\n", " \n", " neighbour_neighbours = neighbourhoods[member]\n", " if len(neighbour_neighbours) <= c:\n", " continue\n", " \n", " if check_similarity(neighbours, neighbour_neighbours, c):\n", " labels[member] = current\n", " visited[member] = True\n", " queue.append(member)\n", " \n", " if yield_iterations:\n", " # Get current state of clustering\n", " yield (point, member, current, labels, visited)\n", "\n", " if not queue:\n", " break\n", "\n", " point = queue.popleft()\n", " neighbours = neighbourhoods[point]\n", "\n", " current += 1\n", " \n", " if not yield_iterations:\n", " yield labels" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:25.798791Z", "start_time": "2022-11-24T16:11:25.784923Z" } }, "outputs": [], "source": [ "def plt_iteration(\n", " data, iteration=None, ax=None, ax_props=None, color_list=None):\n", "\n", " if ax is None:\n", " fig, ax = plt.subplots()\n", " else:\n", " fig = ax.get_figure()\n", " \n", " ax_props_defaults = {\n", " \"xticks\": (),\n", " \"yticks\": (),\n", " \"aspect\": \"equal\"\n", " }\n", " \n", " if ax_props is not None:\n", " ax_props_defaults.update(ax_props)\n", " \n", " if iteration is not None:\n", " point, member, current, labels, visited = iteration\n", " \n", " if color_list is None:\n", " color_list = [\n", " \"black\"] + [\n", " i[\"color\"]\n", " for i in islice(mpl.rcParams[\"axes.prop_cycle\"], current)\n", " ]\n", "\n", " for cluster in range(current + 1):\n", " indices = np.where(np.asarray(labels) == cluster)[0]\n", " ax.plot(*data[indices].T, c=color_list[cluster],\n", " linestyle=\"\", marker=\".\")\n", " \n", " else:\n", " ax.plot(*data.T) \n", " \n", " ax.set(**ax_props_defaults)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:11:29.176840Z", "start_time": "2022-11-24T16:11:29.057334Z" } }, "outputs": [], "source": [ "class AnimatedIterations:\n", " \"\"\"An animated scatter plot using matplotlib.animations.FuncAnimation.\"\"\"\n", " def __init__(self, data, iterations=None):\n", " self.data = data\n", " self.iterations = iter(iterations)\n", " self.highlights = deque(maxlen=5)\n", " self.sizes = np.ones(len(self.data)) * 10\n", "\n", " self.fig, self.ax = plt.subplots()\n", " self.animation = animation.FuncAnimation(\n", " self.fig, self.update, frames=200, interval=100,\n", " init_func=self.setup_plot, blit=True\n", " )\n", "\n", " def setup_plot(self):\n", " \"\"\"Initial drawing of the scatter plot.\"\"\"\n", " self.scatter = self.ax.scatter(\n", " *self.data.T,\n", " s=self.sizes,\n", " c=np.asarray([0 for _ in range(len(self.data))]),\n", " cmap=mpl.colors.LinearSegmentedColormap.from_list(\n", " \"cluster_map\",\n", " [\"black\"] + [\n", " i[\"color\"]\n", " for i in islice(mpl.rcParams[\"axes.prop_cycle\"], 2)\n", " ]\n", " ),\n", " vmin=0, vmax=2\n", " )\n", " # self.ax.axis([-10, 10, -10, 10])\n", " # For FuncAnimation's sake, we need to return the artist we'll be using\n", " # Note that it expects a sequence of artists, thus the trailing comma.\n", " return self.scatter,\n", "\n", " def update(self, i):\n", " \"\"\"Update the scatter plot.\"\"\"\n", " point, member, current, labels, visited = next(self.iterations)\n", " if member is None:\n", " self.highlights.append(point)\n", " else:\n", " self.highlights.append(member)\n", " \n", " for c, p in enumerate(self.highlights, 1):\n", " self.sizes[p] = c * 10\n", " \n", " # Set sizes\n", " self.scatter.set_sizes(self.sizes)\n", " \n", " # Set colors\n", " self.scatter.set_array(np.asarray(labels))\n", "\n", " # We need to return the updated artist for FuncAnimation to draw..\n", " # Note that it expects a sequence of artists, thus the trailing comma.\n", " return self.scatter,\n", "\n", "\n", "Animation = AnimatedIterations(\n", " noisy_circles,\n", " commonn_from_neighbourhoods(neighbourhoods, 5, yield_iterations=True)\n", ")\n", "# Animation.animation.save('algorithm_explained/iteration.mp4', dpi=300)\n", "plt.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Debug mode" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the current version of the `commonnn` package, CommonNN clustering is in detail implemented quite differently than shown in the previous section. To get a closer look at what is going on during a clustering, we provide a `Fitter` type that can yield the state of the assignment during a clustering procedure." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:13:03.553926Z", "start_time": "2022-11-24T16:13:03.546851Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Clustering(input_data=InputDataExtComponentsMemoryview(components of 200 points in 2 dimensions), fitter=FitterCommonNNBFSDebug(ngetter=NeighboursGetterExtBruteForce(dgetter=DistanceGetterExtMetric(metric=MetricExtEuclideanReduced), sorted=False, selfcounting=True), na=NeighboursExtVectorUnorderedSet, nb=NeighboursExtVectorUnorderedSet, checker=SimilarityCheckerExtSwitchContains, queue=QueueExtFIFOQueue, verbose=True, yielding=True), hierarchical_fitter=None, predictor=None)\n" ] } ], "source": [ "clustering = cluster.Clustering(noisy_circles, fitter=\"bfs_debug\")\n", "print(clustering)" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2021-10-04T20:32:04.479929Z", "start_time": "2021-10-04T20:32:04.473349Z" } }, "source": [ "The debug fitter `_types.FitterCommonNNBFSDebug` has an additional `_fit_debug` method that is returning generator. We can not invoke it directly from the `Clustering` object but have to call it explicitly." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:20:59.706452Z", "start_time": "2022-11-24T16:20:59.698025Z" } }, "outputs": [ { "data": { "text/plain": [ "200" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clustering.root._input_data.n_points" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:22:58.534817Z", "start_time": "2022-11-24T16:22:58.523371Z" }, "run_control": { "marked": true } }, "outputs": [ { "data": { "text/plain": [ "<_cython_3_0_0a11.generator at 0x7f001dfcb060>" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clustering.labels = np.zeros(clustering.root._input_data.n_points, dtype=int)\n", "iterations = clustering.fitter._fit_debug(\n", " clustering.root._input_data,\n", " clustering.root._labels,\n", " clustering.fitter.make_parameters(radius_cutoff=0.7, similarity_cutoff=5)\n", ")\n", "iterations" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:23:03.893427Z", "start_time": "2022-11-24T16:23:03.886120Z" }, "run_control": { "marked": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CommonNN clustering - FitterCommonNNBFSDebug\n", "================================================================================\n", "200 points\n", "radius_cutoff : 0.48999999999999994\n", "similarity_cutoff : 7\n", "_support_cutoff : 6\n", "start_label : 1\n", "\n", "New source: 0\n", " ... new cluster 1\n" ] } ], "source": [ "state = next(iterations)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "**Info:** Note that the cluster parameters printed in this overview are different to the once specified when creating the cluster parameters. This is because the fitter is aware of the used neighbours getter and metric and adjusts the parameters as needed. In this case, the metric requires a reduced radius and the neighbourhoods are self-counting, i.e. contain one additional point that needs to be accounted for. When checking if a computed neighbourhood has enough points, the `_support_cutoff` is used. \n", "
" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:28:27.022116Z", "start_time": "2022-11-24T16:28:27.012639Z" } }, "outputs": [ { "data": { "text/plain": [ "{'reason': 'assigned_source', 'init_point': 0, 'point': None, 'member': None}" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:28:33.017208Z", "start_time": "2022-11-24T16:28:33.010748Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ... loop over 11 neighbours\n", " ... current neighbour 0\n", " ... already visited\n", "\n", " ... current neighbour 1\n", " ... successful check!\n", "\n" ] } ], "source": [ "state = next(iterations)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:28:44.923359Z", "start_time": "2022-11-24T16:28:44.914786Z" } }, "outputs": [ { "data": { "text/plain": [ "{'reason': 'assigned_neighbour', 'init_point': 0, 'point': 0, 'member': 1}" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "ExecuteTime": { "end_time": "2022-11-24T16:28:52.289142Z", "start_time": "2022-11-24T16:28:52.280631Z" } }, "outputs": [ { "data": { "text/plain": [ "array([1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clustering.labels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this way, one can check the state of the clustering after each cluster label assignment." ] } ], "metadata": { "kernelspec": { "display_name": "labcommonnn_3.10.7", "language": "python", "name": "labcommonnn_3.10.7" }, "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.10.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "344px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }