Skip to content

Instantly share code, notes, and snippets.

@jpivarski
Last active August 21, 2024 13:34
Show Gist options
  • Save jpivarski/45740b62f5fcaf2cbf46723ea072e56e to your computer and use it in GitHub Desktop.
Save jpivarski/45740b62f5fcaf2cbf46723ea072e56e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "715b7d6b-4189-46cd-a480-59eedf00af67",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import numba as nb\n",
"from scipy.stats import beta"
]
},
{
"cell_type": "markdown",
"id": "6a0362de-d491-47e9-8464-7c45d532d79e",
"metadata": {},
"source": [
"**Goal:** improve the world's best estimate of the area of the Mandelbrot set.\n",
"\n",
"The [Mandelbrot set](https://en.wikipedia.org/wiki/Mandelbrot_set) is a set of [complex numbers](https://en.wikipedia.org/wiki/Complex_number) $c$ for which\n",
"\n",
"$$z_{i + 1} = |z_i|^2 + c \\mbox{ with } z_0 = 0$$\n",
"\n",
"does not diverge to infinity. That is, the set $c$ for which $|z_i| \\to \\infty$ as $i \\to \\infty$. Sequences $z_i$ that cycle or converge to any finite point are considered in the set; anything else is outside the set.\n",
"\n",
"The following function identifies whether a _point_ $c = x + y i$ is in the Mandelbrot set or not ($x$ and $y$ are real numbers and $i = \\sqrt{-1}$). It uses 32-bit (single precision) floating point to approximate real numbers (`np.complex64` is made of two `np.float32`). The algorithm tracks $z_i$ for two consecutive $i$, named \"tortoise\" and \"hare\" because [the hare is ahead of the tortoise](https://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare) by a factor of 2. This is [Floyd's algorithm](https://en.wikipedia.org/wiki/Cycle_detection#Floyd%27s_tortoise_and_hare) for detecting cycles in a sequence (including the \"cycle\" of converging to a point)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c6205d9b-2e79-4b9b-8cc5-912b0f07de31",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit\n",
"def is_in_mandelbrot(x, y):\n",
" c = np.complex64(x) + np.complex64(y)*np.complex64(1j)\n",
" z_hare = z_tortoise = np.complex64(0)\n",
" while True:\n",
" z_hare = z_hare*z_hare + c\n",
" z_hare = z_hare*z_hare + c\n",
" z_tortoise = z_tortoise*z_tortoise + c\n",
" if z_hare == z_tortoise:\n",
" return True # orbiting or converging to zero\n",
" if z_hare.real**2 + z_hare.imag**2 > 4:\n",
" return False # diverging to infinity"
]
},
{
"cell_type": "markdown",
"id": "dd988bb8-b4d6-4691-beea-3a13dd19536e",
"metadata": {},
"source": [
"There's a mathematical theorem ([Knill (2023)](https://doi.org/10.48550/arXiv.2305.17848), section 4.7) that proves that the Mandelbrot set is entirely contained within $x \\in (-2, 1)$, $y \\in (-\\frac{3}{2}, \\frac{3}{2})$.\n",
"\n",
"If $|z_i|^2 > 4$, then the $z_{i+1}$ with the smallest magnitude in that box is at $c = -2 + 0 i$, and that $z_{i+1} > 2$, which also has magnitude greater than $4$, so if a sequence ever exceeds $|z_i|^2 > 4$, then it diverges to infinity.\n",
"\n",
"Let's take a look at it."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "b6a81f59-c38b-43dd-915a-c8054c38c41b",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit(parallel=True)\n",
"def draw_mandelbrot(num_x, num_y):\n",
" xmin, xmax = -2, 1\n",
" ymin, ymax = -3/2, 3/2\n",
" \n",
" pixels = np.empty((num_x, num_y), np.int32)\n",
" dx = (xmax - xmin) / num_x\n",
" dy = (ymax - ymin) / num_y\n",
" \n",
" for i in nb.prange(num_x):\n",
" for j in nb.prange(num_y):\n",
" x = xmin + i*dx\n",
" y = ymin + j*dy\n",
" pixels[j, i] = is_in_mandelbrot(x, y)\n",
"\n",
" return pixels"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1caa008d-9c73-49b9-9b1c-723614238e10",
"metadata": {},
"outputs": [],
"source": [
"pixels = draw_mandelbrot(1000, 1000)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "881eeb77-c65d-4ceb-85a8-c9a051352723",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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2WxGQkICEhISUFhYWL5OmzZtsGHDBgBll2mnT5+Od955Bxs2bMCxY8cwfvx4uLi44KGHHpLqxyAiIiKyCUnP5NXFq6++iq+++qr8+3/Pzu3YsQN9+/YFAJw+fRp5eXnl6zz//PMoKSnBU089hZycHPTo0QPbtm2DO8ddIiKyqvRne6EkuhjhT1+EOSdH6jhEBEAQxXo+2+4g8vPzodPp0BfDoBLUUschImp8FEqkftcGb3fYhM9uuxWm9BuPYEBElZlEI2KxCXl5efDw8LDafu3mci0RETVOqkB/mE564LN+fWDKuCx1HCL6h91criUiosbJlHYJIa9cgknqIERUAc/kEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREckQSx4RERGRDLHkEREREcmQ3ZS8t99+G7169YKLiws8PT1rtc348eMhCEKFr549ezZsUCIiIqJGwG5KnsFgwMiRIzF58uQ6bTdw4ECkp6eXf23Z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",
"text/plain": [
"<Figure size 700x700 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"ax.imshow(pixels, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "87af1c9d-b00e-4e45-8c2b-ce0ee83e351f",
"metadata": {},
"source": [
"The exact area of the Mandelbrot set is not known, mathematically. There is an expression,\n",
"\n",
"$$\\mbox{area of Mandelbrot set} = \\pi \\left( 1 - \\sum_{n=1}^\\infty n \\, {b_n}^2 \\right)$$\n",
"\n",
"in which the terms $b_n$ can be determined recursively, but it converges very slowly: $10^{118}$ terms are needed to get the first 2 digits, and $10^{1181}$ terms are needed to get 3 digits ([Ewing & Schober (1992)](https://doi.org/10.1007/BF01385497)). The best estimates of the Mandelbrot set's area come from sampling techniques. The most recent publication is [Bittner, Cheong, Gates, & Nguyen (2012)](https://doi.org/10.2140/involve.2017.10.555) and the most recent unpublished estimate is [Förstemann (2017)](https://www.foerstemann.name/labor.html) using two Radeon HD 5970 GPUs. The most precise, rigorous bounds to date are\n",
"\n",
"$$1.50640 < \\mbox{area of Mandelbrot set} < 1.53121\\mbox{.}$$\n",
"\n",
"(If you're interested in this sort of thing, Robert Munafo wrote a [rabbit warren of hyperlinked pages](http://www.mrob.com/pub/muency/areaofthemandelbrotset.html) about all of the techniques in 2003, from a [Usenet thread (alt.fractals)](https://ics.uci.edu/~eppstein/junkyard/mand-area.html) that started exactly 5 days after the [first release of Python (alt.sources)](https://www.tuhs.org/Usenet/alt.sources/1991-February/001749.html). Weird coincidence, huh?)\n",
"\n",
"The goal of this project is to estimate the area of the Mandelbrot set by sampling, _maybe improving upon the world's best estimate._"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "eb15256f-e914-480b-82d0-33f15720f613",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit\n",
"def count_mandelbrot(rng, num_samples, xmin, width, ymin, height):\n",
" out = np.int32(0)\n",
" for x_norm, y_norm in rng.random((num_samples, 2), np.float32):\n",
" x = xmin + (x_norm * width)\n",
" y = ymin + (y_norm * height)\n",
" out += is_in_mandelbrot(x, y)\n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3dc3a031-4065-4bf9-ab2f-f0082a39470b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.49769"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xmin, xmax = -2, 1\n",
"ymin, ymax = -3/2, 3/2\n",
"\n",
"rng = np.random.default_rng() # can be forked to run multiple rngs in parallel\n",
"\n",
"denominator = 100000\n",
"numerator = count_mandelbrot(rng, denominator, xmin, xmax - xmin, ymin, ymax - ymin)\n",
"\n",
"area = (numerator / denominator) * (xmax - xmin) * (ymax - ymin)\n",
"area"
]
},
{
"cell_type": "markdown",
"id": "54426abf-447d-4b27-b9b0-8bada030bc9c",
"metadata": {},
"source": [
"Just like an experimental measurement, sampling introduces uncertainty. To the (very high) degree that our generated random numbers are independent, sampling an area and asking which points are in the Mandelbrot set are [Bernoulli trials](https://en.wikipedia.org/wiki/Bernoulli_trial), and we can use the (conservative but exact) [Clopper-Pearson interval](https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Clopper%E2%80%93Pearson_interval) to quantify the uncertainty.\n",
"\n",
"In the following, there is a 95% probability that the true Mandelbrot area is between `low` and `high`:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "5861bf0f-3efb-4f57-a2f2-6532af52c57d",
"metadata": {},
"outputs": [],
"source": [
"def confidence_interval(confidence_level, numerator, denominator, area):\n",
" low, high = beta.ppf(\n",
" [confidence_level/2, 1 - confidence_level/2],\n",
" [numerator, numerator + 1],\n",
" [denominator - numerator + 1, denominator - numerator]\n",
" ) * area\n",
"\n",
" low = np.nan_to_num(np.asarray(low), nan=0)\n",
" high = np.nan_to_num(np.asarray(high), nan=area)\n",
"\n",
" return low, high"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a34ad35e-9964-482b-b0d5-a531079536da",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1.47695654615681, 1.5185977424443602)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"confidence_interval(0.05, numerator, denominator, (xmax - xmin) * (ymax - ymin))"
]
},
{
"cell_type": "markdown",
"id": "1315e263-f60a-4efa-9048-fbc60c125fc4",
"metadata": {},
"source": [
"We can reduce this interval by increasing `num_samples`, but look at the plot: there are regions of fine detail and regions that are almost entirely inside or outside of the set. Samples in different geographic regions make wildly different contributions to the uncertainty in the final result."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a2db03fa-c911-4a9d-9f14-f6a727ace3fa",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0/10000 --> low: 0, high: 9.22e-05 --> uncertainty: 9.22e-05\n",
" 3950/10000 --> low: 0.0964, high: 0.101 --> uncertainty: 0.00482\n",
"10000/10000 --> low: 0.25, high: 0.25 --> uncertainty: 9.22e-05\n"
]
}
],
"source": [
"region1 = {\"xmin\": -1.5, \"ymin\": 0.5, \"width\": 0.5, \"height\": 0.5}\n",
"region2 = {\"xmin\": -0.4, \"ymin\": 0.5, \"width\": 0.5, \"height\": 0.5}\n",
"region3 = {\"xmin\": -0.4, \"ymin\": -0.25, \"width\": 0.5, \"height\": 0.5}\n",
"\n",
"for region in [region1, region2, region3]:\n",
" denominator = 10000\n",
" numerator = count_mandelbrot(rng, denominator, region[\"xmin\"], region[\"width\"], region[\"ymin\"], region[\"height\"])\n",
"\n",
" low, high = confidence_interval(0.05, numerator, denominator, region[\"width\"] * region[\"height\"])\n",
"\n",
" print(f\"{numerator:5d}/{denominator} --> low: {low:8.3g}, high: {high:8.3g} --> uncertainty: {high - low:8.3g}\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "39554066-7f92-4b09-b7cb-6e50329327d0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x700 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"ax.imshow(pixels, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"\n",
"ax.add_patch(matplotlib.patches.Rectangle((-1.5, 0.5), 0.5, 0.5, edgecolor=\"red\", facecolor=\"none\"))\n",
"ax.add_patch(matplotlib.patches.Rectangle((-0.4, 0.5), 0.5, 0.5, edgecolor=\"red\", facecolor=\"none\"))\n",
"ax.add_patch(matplotlib.patches.Rectangle((-0.4, -0.25), 0.5, 0.5, edgecolor=\"red\", facecolor=\"none\"))\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "dc0c393e-d922-482c-b739-010a6f62531e",
"metadata": {},
"source": [
"To get more precision in the final result per time spent calculating, we want to sample the rough (fractal!) edge of the Mandelbrot set more than the regions that are mostly inside (yellow) or mostly outside (dark blue) the set. We can\n",
"\n",
"1. vary the number of samples in some continuous way, which is hard to do for a shape as complicated as the Mandelbrot set,\n",
"2. subdivide the plane into smaller tiles near areas of detail use the same number of random samples in each tile, or\n",
"3. subdivide the plane into equal-sized tiles and use different numbers of samples in each tile. The processor for each tile can keep working until it reaches some uncertainty goal.\n",
"\n",
"We'll use method 3 because it's easiest to implement: each tile can run independently of the others.\n",
"\n",
"Start by creating numerator and denominator arrays, with each array element corresponding to a tile."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "3f764121-9987-421b-a343-5b49aa4d68b7",
"metadata": {},
"outputs": [],
"source": [
"NUM_TILES_1D = 100\n",
"\n",
"numer = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)\n",
"denom = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)"
]
},
{
"cell_type": "markdown",
"id": "b29e0b7f-973f-4bf7-8c2c-438fed1dfd17",
"metadata": {},
"source": [
"The width and height of each tile is the same:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "89350d95-f27b-4f23-9cef-7a2f8c680cfd",
"metadata": {},
"outputs": [],
"source": [
"width = 3 / NUM_TILES_1D\n",
"height = 3 / NUM_TILES_1D"
]
},
{
"cell_type": "markdown",
"id": "2a942fc5-d0ae-4248-9515-c5828ea5a213",
"metadata": {},
"source": [
"But each tile has a different `xmin` and `ymin`."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "31e6a5df-15a4-4c78-a6dc-b8f62842671c",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit\n",
"def xmin(j):\n",
" return -2 + width * j\n",
"\n",
"@nb.jit\n",
"def ymin(i):\n",
" return -3/2 + height * i"
]
},
{
"cell_type": "markdown",
"id": "a3edf845-bc71-47b4-8745-97e51fda0ff1",
"metadata": {},
"source": [
"Now we just iterate over the tiles and do what we did before: uniformly sample points within each square tile."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "e96087cb-4d62-42b9-9713-9edda90def6d",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit\n",
"def compute_sequentially(rng, numer, denom):\n",
" for i in range(NUM_TILES_1D):\n",
" for j in range(NUM_TILES_1D):\n",
" denom[i, j] = 100\n",
" numer[i, j] = count_mandelbrot(rng, denom[i, j], xmin(j), width, ymin(i), height)\n",
"\n",
"compute_sequentially(rng, numer, denom)"
]
},
{
"cell_type": "markdown",
"id": "962b47a2-cca8-4805-803e-cc2d6165fc1b",
"metadata": {},
"source": [
"A plot of the result now can have `numer / denom` values between 0 and 1 (unlike the original plot)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "6c9fd58c-d974-40bf-b2fe-17ed804653d6",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAH2CAYAAAArqRvZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABikUlEQVR4nO3deVxU5f4H8M9hR1kV2ZTNfV+Cm6LhesWl0tRrpl5cQsvUXEhNczfNpVIycyuvZlrpL61uaQqV4AIuKKZpLikKKkiAgivLzPn9Ycz1cEaEM2dghvm8X6/ziueZc77nmXHML895FkEURRFEREREZFKsKrsBRERERCTHJI2IiIjIBDFJIyIiIjJBTNKIiIiITBCTNCIiIiITxCSNiIiIyAQxSSMiIiIyQUzSiIiIiEwQkzQiIiIiE8QkjYiIiMgEmVWStn//frz44ovw9fWFIAj47rvvSj0/Li4OgiDIjnPnzlVMg4mIiIgUMqsk7d69e2jVqhVWrVpVruvOnz+P9PR03dGgQQMjtZCIiIgqW3k7dQAgPj4ewcHBcHBwQN26dbF27VrjN/QpbCq7AeXRq1cv9OrVq9zXeXp6ws3NTf0GERERkckp7tQZOXIkBgwY8NTzU1JS0Lt3b4wePRpbtmzBoUOHMHbsWNSqVatM1xuLWSVpSrVp0wYPHz5E06ZNMWvWLHTp0uWJ5+bn5yM/P19X1mq1yMnJQc2aNSEIQkU0l4iISDWiKOLOnTvw9fWFlZVZPUBTrLydOmvXroW/vz+io6MBAE2aNEFSUhI++OADJmnG4uPjg/Xr1yM4OBj5+fn44osv0K1bN8TFxaFjx456r1m8eDHmz59fwS0lIiIyrrS0NNSpU8fo93n48CEKCgpUjyuKoqyzxN7eHvb29gbHTkxMRHh4uKSuR48e2LBhAwoLC2Fra2vwPZSo0klao0aN0KhRI105NDQUaWlp+OCDD56YpM2YMQNRUVG6cm5uLvz9/fEcesMGlfOHREREpFQRCnEQu+Hs7Gz0ez18+BBBAU7IyNSoHtvJyQl3796V1M2dOxfz5s0zOHZGRga8vLwkdV5eXigqKkJWVhZ8fHwMvocSVTpJ06ddu3bYsmXLE19/UlZuA1vYCEzSiIjIzIiP/lMRQ3YKCgqQkanB1eOBcHFW79Fq3h0tAoKvIC0tDS4uLrp6NXrRipX8fERR1FtfkSwuSUtOTq60jJiIiMgSODkLcHJWL7nR4lEsFxcXSZKmFm9vb2RkZEjqMjMzYWNjg5o1a6p+v7IyqyTt7t27+PPPP3XllJQUnDx5EjVq1IC/vz9mzJiB69evY/PmzQCA6OhoBAYGolmzZigoKMCWLVuwY8cO7Nixo7LeAhERUZWnEbXQiOrGM6bQ0FD88MMPkrqYmBiEhIRU2ng0wMyStKSkJMnMzOKxY8OHD8emTZuQnp6O1NRU3esFBQWYMmUKrl+/DkdHRzRr1gy7du1C7969K7ztREREVDHK26kzZswYrFq1ClFRURg9ejQSExOxYcMGfPXVV5X1FgAAglj80JX0ysvLg6urKzqjL8ekERGR2SkSCxGH75Gbm2uUR4WPK/43M+O8v+pj0rwbpZb5PcTFxeldbqu4U2fEiBG4cuUK4uLidK/Fx8dj8uTJOHPmDHx9ffH2229jzJgxqr0HJcyqJ42IiIjoaTp37ozS+qA2bdokq+vUqRNOnDhhxFaVH5M0IiIiUpUWWqg5ikzdaObDMpYeJiIiIjIz7EkjIiIiVWlEERoVh7yrGcucMEkjIiIiVWkhQgv1Eis1Y5kTPu4kIiIiMkHsSSMiIiJVaSFCw540g7EnjYiIiMgEsSeNiIiIVMUxaepgkkZERESq4uxOdfBxJxEREZEJYk8aERERqUr796FmPEvEnjQiIiIiE8SeNCIiIlKVRuUlONSMZU6YpBEREZGqNOKjQ814loiPO4mIiIhMEHvSiIiISFWcOKAO9qQRERERGaioqAg///wz1q1bhzt37gAAbty4gbt37yqOyZ40IiIiUpUWAjQQVI1nyq5evYqePXsiNTUV+fn56N69O5ydnbFs2TI8fPgQa9euVRSXPWlERESkKq2o/mHKJk6ciJCQENy6dQuOjo66+n79+uGXX35RHJc9aUREREQGOHjwIA4dOgQ7OztJfUBAAK5fv644LpM0IiIiUpVG5cedasYyBq1WC41GI6u/du0anJ2dFcfl404iIiIiA3Tv3h3R0dG6siAIuHv3LubOnYvevXsrjsueNCIiIlKVpfWkrVixAl26dEHTpk3x8OFDDBkyBBcvXoSHhwe++uorxXGZpBEREZGqtKIAraji7E4VYxmDr68vTp48ia+++gonTpyAVqtFZGQkhg4dKplIUF5M0oiIiIgM5OjoiFdffRWvvvqqajGZpBEREZGqLOFx53//+98yn9unTx9F92CSRkRERFROL730UpnOEwRB78zPsmCSRkRERKrSwAoaFReQUJbiGJdWa/wdRZmkERERkapElScOiCY+ccBYmKQRERERldPKlSvx2muvwcHBAStXriz13AkTJii6B5M0IiIiUpUlTBxYsWIFhg4dCgcHB6xYseKJ5wmCwCSNiIiIqKKkpKTo/VlN3BaKiIiIVKURrVQ/TNmCBQtw//59Wf2DBw+wYMECxXFN+10TERERmbj58+fj7t27svr79+9j/vz5iuPycScRERGpSgsBWhX7gbQQVYtlDKIoQhDk4+Z+++031KhRQ3FcJmlERESkKkuYOAAA7u7uEAQBgiCgYcOGkkRNo9Hg7t27GDNmjOL4TNKIiIiIFIiOjoYoinj11Vcxf/58uLq66l6zs7NDYGAgQkNDFcdnkkZERESqUnuwv0Y0zcedw4cPBwAEBQWhQ4cOsLFRN61ikkZERERkgE6dOhklLpM0IiIiUtWjiQPqjSNTM5Y5YZJGREREqtKqvMG6qc/uNBauk0ZERERkgtiTRkRERKqylIkDxsYkjYiIiMgA9+7dw5IlS/DLL78gMzMTWq1W8vrly5cVxWWSRkRERKrSwsqidhwYNWoU4uPjERERAR8fH727DyjBJI2IiIhUpREFaEQVdxxQMZYx/PTTT9i1axc6dOigalxOHCAiIiIygLu7u0F7dD4JkzQiIiJSlebvJTjUPEzZu+++izlz5uD+/fuqxuXjTiIiIqJyatOmjWTs2Z9//gkvLy8EBgbC1tZWcu6JEycU3YNJGhEREalKK1pBq+ISHFoTXILjpZdeMvo9mKQRERGRqtR+RKkxwdmdc+fONfo9TPshLxEREZGJO3bsGI4cOSKrP3LkCJKSkhTHZZJGREREqtLif8twqHFon3rHyjVu3DikpaXJ6q9fv45x48YpjsskjYiIiMgAZ8+exTPPPCOrb9OmDc6ePas4LpM0IiIiUlXxjgNqHqbM3t4eN2/elNWnp6fDxkb58H/TftdERERkdoo3WFfzMGXdu3fHjBkzkJubq6u7ffs23nnnHXTv3l1xXM7uJCIiIjLAhx9+iI4dOyIgIABt2rQBAJw8eRJeXl744osvFMdlkkZEZCCbOrVldUXXrldCS4hMgxYCtFBvv001YxlD7dq1cerUKWzduhW//fYbHB0dMXLkSAwePFi2sG15MEkjIiIiMlD16tXx2muvqRqTSRoRERGpSu1xZKY+Jq3Y2bNnkZqaioKCAkl9nz59FMUzqyRt//79eP/993H8+HGkp6fj22+/feq2DPHx8YiKisKZM2fg6+uLadOmYcyYMRXTYCIiIguk/o4Dpp2kXb58Gf369cPp06chCALEv7exKt7bU6PRKIpr2u+6hHv37qFVq1ZYtWpVmc5PSUlB7969ERYWhuTkZLzzzjuYMGECduzYYeSWEpElKbp2XXYQkeWYOHEigoKCcPPmTVSrVg1nzpzB/v37ERISgri4OMVxzaonrVevXujVq1eZz1+7di38/f0RHR0NAGjSpAmSkpLwwQcfYMCAAUZqJRERkWXTigK0oooTB1SMZQyJiYn49ddfUatWLVhZWcHKygrPPfccFi9ejAkTJiA5OVlRXLPqSSuvxMREhIeHS+p69OiBpKQkFBYW6r0mPz8feXl5koOIiIjoSTQaDZycnAAAHh4euHHjBgAgICAA58+fVxy3SidpGRkZ8PLyktR5eXmhqKgIWVlZeq9ZvHgxXF1ddYefn19FNJWIiKjK0P49Jk2tw9R3HGjevDlOnToFAGjbti2WLVuGQ4cOYcGCBahbt67iuKb9rlVQPGivWMnBfCUVrxhcfOjbMJWIiIio2KxZs6DVPtoGfuHChbh69SrCwsKwe/durFy5UnFcsxqTVl7e3t7IyMiQ1GVmZsLGxgY1a9bUe429vT3s7e0ronlEZMmsrOV1WmUzwIhMjVa0glbFZTPUjGUMPXr00P1ct25dnD17Fjk5OXB3d39ip1BZmPa7NlBoaChiY2MldTExMQgJCTFoBWAiIiJ6Mg0E1Q9z8Oeff2Lv3r148OABatSoYXA8s0rS7t69i5MnT+LkyZMAHi2xcfLkSaSmpgJ49Khy2LBhuvPHjBmDq1evIioqCn/88Qf+85//YMOGDZgyZUplNJ+IiIiqoOzsbHTr1g0NGzZE7969kZ6eDgAYNWoU3nrrLcVxzSpJS0pKQps2bXSbl0ZFRaFNmzaYM2cOACA9PV2XsAFAUFAQdu/ejbi4OLRu3RrvvvsuVq5cyeU3iIiIjKj4caeahymbPHkybG1tkZqaimrVqunqBw0ahD179iiOa1Zj0jp37qwb+K/Ppk2bZHWdOnXCiRMnjNgqIiIFOP6MqMqIiYnB3r17UadOHUl9gwYNcPXqVcVxzSpJIyIiItOnAVQdR2bqv9Lcu3dP0oNWLCsry6DJiKbdf0hERERmx9Ied3bs2BGbN2/WlQVBgFarxfvvv48uXboojsueNCIiIiIDvP/+++jcuTOSkpJQUFCAadOm4cyZM8jJycGhQ4cUx2WSRkRUAaxdXCRlDbecoypMI1pBo2Lvl5qxjKFp06Y4deoU1qxZA2tra9y7dw/9+/fHuHHj4OPjozgukzQiIiIiA3l7e2P+/PmqxjTt1JSIiIjMjggBWhUPUcEkhNWrVyMoKAgODg4IDg7GgQMHSj1/69ataNWqFapVqwYfHx+MHDkS2dnZSj8CVTBJIyIiIlUVP+5U8yiPbdu2YdKkSZg5cyaSk5MRFhaGXr16SdZSfdzBgwcxbNgwREZG4syZM/i///s/HDt2DKNGjVLj41CMSRoRERGZhby8PMmRn5+v97zly5cjMjISo0aNQpMmTRAdHQ0/Pz+sWbNG7/mHDx9GYGAgJkyYgKCgIDz33HN4/fXXkZSUZMy381RM0oiIjCB3aDvJcf+5RpKDqCrTioLqBwD4+fnB1dVVdyxevFh274KCAhw/fhzh4eGS+vDwcCQkJOhtb/v27XHt2jXs3r0boiji5s2b+Oabb/D888+r/+GUAycOEBERkVlIS0uDy2MzpfUtFJuVlQWNRgMvLy9JvZeXFzIyMvTGbd++PbZu3YpBgwbh4cOHKCoqQp8+ffDxxx+r+wbKiT1pREREpCoNrFQ/AMDFxUVylLaavyBIJxuIoiirK3b27FlMmDABc+bMwfHjx7Fnzx6kpKRgzJgxZXq/N2/eREREBHx9fWFjYwNra2vJoRR70oiIiEhVjz+iVCteWXl4eMDa2lrWa5aZmSnrXSu2ePFidOjQAVOnTgUAtGzZEtWrV0dYWBgWLlz41LXORowYgdTUVMyePRs+Pj5PTAbLi0kaEZER1B17XlI+nCQdh9Zgd0W2hshy2NnZITg4GLGxsejXr5+uPjY2Fn379tV7zf3792FjI02JinvARFF86j0PHjyIAwcOoHXr1sobrgeTNCIiIlKVFlbQqjiiqryxoqKiEBERgZCQEISGhmL9+vVITU3VPb6cMWMGrl+/rttv88UXX8To0aOxZs0a9OjRA+np6Zg0aRKeffZZ+Pr6PvV+fn5+ZUrmyotJGhEREVUpgwYNQnZ2NhYsWID09HQ0b94cu3fvRkBAAAAgPT1dsmbaiBEjcOfOHaxatQpvvfUW3Nzc0LVrVyxdurRM94uOjsb06dOxbt06BAYGqvY+BNEYqV8VkpeXB1dXV3RGX9gItpXdHCIyEzUPuUvKssedEw9XZHPIghWJhYjD98jNzZXMjDSG4n8z3zjQH/ZO6v2bmX+3EGvCdlbIe1DC3d0d9+/fR1FREapVqwZbW+l7z8nJURSXPWlERI+zks/Esq4fKClntfeUlNu/eUx2TUSNvZLyT13SpeWXO8uucdrOxI2qhsqcOFAZoqOjjRKXSRoRERGRAYYPH26UuEzSiIiISFWiaAVtOffbfFo8U5OXl6d79JqXl1fquUof0TJJIyIiIiond3d3pKenw9PTE25ubnrXRiteQFej0Si6B5M0IiIiUpUGAjRQbxyZmrHU8uuvv6JGjRoAgH379hnlHkzSiIgep5X/xntuXC1J+VC/9yVlHxsnPYHsJKVg+3OS8tsrzsiuaNn0TUnZf57+zaCJqPJ16tRJ789qYpJGREREqtKK6s7I1FroYmFM0oiIiEhVWpUnDqgZy5xY5rsmIiIiMnHsSSMieoxgby+r6/NckqSsfwxa+dgK8kVzH/oWGhyXyBRoIUCr4mB/NWOZE/akERERERmga9euuH37tqw+Ly8PXbt2VRyXPWlERESkKo0oQKPixAE1YxlDXFwcCgoKZPUPHz7EgQMHFMdlkkZERESqspSJA6dOndL9fPbsWWRkZOjKGo0Ge/bsQe3atRXHZ5JGRPQYsbBIVnchz0ta4WOce3duKV1L7YZxbkNEKmndujUEQYAgCHofazo6OuLjjz9WHJ9JGhEREalKC0HdddJMdOJASkoKRFFE3bp1cfToUdSq9b+Fr+3s7ODp6Qlra/kkobJikkZERESkQEBAAABAq9UaJb5pPuQlIiIisyX+vQSHWodooj1pj/viiy/QoUMH+Pr64urVqwCAFStW4Pvvv1cck0kaERERqUorCqofpmzNmjWIiopC7969cfv2bWg0j/YAdnd3R3R0tOK4fNxJRPQ4fRusn/KXVjQyzq0P724hKfuDG6wTmYOPP/4Yn376KV566SUsWbJEVx8SEoIpU6YojsskjYiIiFRlKUtwFEtJSUGbNm1k9fb29rh3757iuKb9romIiIhMXFBQEE6ePCmr/+mnn9C0aVPFcdmTRkRERKpSexyZqY9Jmzp1KsaNG4eHDx9CFEUcPXoUX331FRYvXozPPvtMcVwmaURkkJIbkov5+bJzrKpVk5S19+8btU1qazD5mKTcyHuYpHw+bHP5Y8aNkNXVXWCBY9CsSqwhpWdMIJkfS9tgfeTIkSgqKsK0adNw//59DBkyBLVr18ZHH32EV155RXFcJmlEREREBho9ejRGjx6NrKwsaLVaeHp6GhyTY9KIiIhIVZa2BMeDBw9w/+8nBB4eHnjw4AGio6MRExNjUFwmaUREREQG6Nu3LzZvfjTs4fbt23j22Wfx4Ycfom/fvlizZo3iuEzSiIiISFWW1pN24sQJhIWFAQC++eYbeHt74+rVq9i8eTNWrlypOC7HpBGRQfRNFCipoiYKWD+2uTEAaLJzZOfk93xGUq5+7i9J+epAX9k1VoXSspdbuqQ8K1O6CC0AzK11ssQ5wdKY1vK9/tJmtpeU7W9JX/c+VKICgKaanaQsJP4mLZeY2AEAQokNnyvqz0dfW8ry/SHzY2mzO+/fvw9nZ2cAQExMDPr37w8rKyu0a9dOt0WUEuxJIyIiIjJA/fr18d133yEtLQ179+5FeHg4ACAzMxMuLi6K4zJJIyIiIlVZ2uPOOXPmYMqUKQgMDETbtm0RGhoK4FGvmr6dCMqKjzuJiIiIDPCvf/0Lzz33HNLT09GqVStdfbdu3dCvXz/FcZmkEZHRFfT8h6Rsm1sgKdv8eUN2jeavv2R1T+P2XZGknPhbsOychd12SMovO2VK2yaUWFxVMWmcpV4nSy0DAMJKj5hedFdWt+1Oc0l564e9JOXmr/0uu+b65LqScslxbMbC8WeWQ4S6C9CKqkUyHm9vb3h7e0vqnn32WYNiMkkjIiIiVVnaxAFj4Zg0IiIiIhPEnjQiIiJSFXvS1MEkjYiMLqeRraR8aOrHknJ0TmvZNYfa1ZCUhTo+snP+Wi4d97W89ueScrMgxzK0Tq0xaMbnY+Mkq5vkfkVaXihd3fzQQ/l6bJOaSMexedxvIjtH+9sfpbZF20k+Y80m+4GkLDpK/9zFY6dLjUlkrvbv34/27dvDxkaaVhUVFSEhIQEdO3ZUFJePO4mIiEhVlrYER5cuXZCTI188Ozc3F126dFEcl0kaERERkQFEUYQgyBPJ7OxsVK9eXXFcPu4kIiIiVVnKmLT+/fsDAARBwIgRI2D/2NZnGo0Gp06dQvv27Z90+VMxSSMiIiJViaIAUcXESs1YanJ1dQXwqCfN2dkZjo7/GwdrZ2eHdu3aYfTo0YrjM0kjIqN76CFditLJykFSnlTjpOya7WOiJOUfJy2TneMvG0hflokClqWDg3xUy7ESkwvGX28rO+fSyMaS8v0g6f6DP6+VxgCAu1rpYrXPHhgrKdcdUnpbiczNxo0bAQCBgYGYMmWKQY829WGSRkRERKrSQlB1xwE1YxnD3LlzAQB//fUXzp8/D0EQ0LBhQ9SqVcuguJw4QERERGSA+/fv49VXX4WPjw86duyIsLAw+Pr6IjIyEvfv31ccl0kaERERqcrSluCYPHky4uPj8cMPP+D27du4ffs2vv/+e8THx+Ott95SHJePO4nI6IIWnpCU6zuOkZR3D/xQds2pKatL1MgXciV1rKp9RFYX9/0xSXnC6UGSsr6N6N2tq0nKRXdtZeeQZbCUiQPFduzYgW+++QadO3fW1fXu3RuOjo54+eWXsWaNfAxnWbAnjYiIiMgA9+/fh5eXl6ze09PTsh53rl69GkFBQXBwcEBwcDAOHDjwxHPj4uIgCILsOHfuXAW2mIiIyLJY2uPO0NBQzJ07Fw8fPtTVPXjwAPPnz0doaKjiuGb1uHPbtm2YNGkSVq9ejQ4dOmDdunXo1asXzp49C39//yded/78ebi4/G/6uKGzLYiIiIiKRUdHo1evXqhTpw5atWoFQRBw8uRJODg4YO/evYrjmlWStnz5ckRGRmLUqFEAHn0oe/fuxZo1a7B48eInXufp6Qk3N7cy3SM/Px/5+f9b6ycvL8+gNhMRUNhBuqH3/Bf/T1JuaKvu2kJkuM6O0o3Zj/9ji6T833vOsmvm/fGipNx0wQ1JuUiltpHps7QxaS1atMDFixexZcsWnDt3DqIo4pVXXsHQoUMlC9yWl9kkaQUFBTh+/DimT58uqQ8PD0dCQkKp17Zp0wYPHz5E06ZNMWvWrFI3O128eDHmz5+vSpuJiIgskajyI0pTTtIKCwvRqFEj/PjjjwbtLqCP2YxJy8rKgkajkQ3M8/LyQkZGht5rfHx8sH79euzYsQM7d+5Eo0aN0K1bN+zfv/+J95kxYwZyc3N1R1pamqrvg4iIiKoOW1tb5Ofn691g3VBm05NWrOSH8KSd5wGgUaNGaNSoka4cGhqKtLQ0fPDBB+jYsaPea+zt7SUbpBIREVH5iABE8amnlSueKXvzzTexdOlSfPbZZ7CxUS+1MpskzcPDA9bW1rJes8zMTL3TXp+kXbt22LJly9NPJCIiIiqDI0eO4JdffkFMTAxatGgh28Nz586diuKaTZJmZ2eH4OBgxMbGol+/frr62NhY9O3bt8xxkpOT4ePjY4wmElkmK+mipvf6hchOWfq+dCFHfZt+k2kruXhtbZvbsnM8FjtIykXXzhuzSWTCtBAgWNDenW5ubhgwYIDqcc0mSQOAqKgoREREICQkBKGhoVi/fj1SU1MxZsyj1ctnzJiB69evY/PmzQAezf4MDAxEs2bNUFBQgC1btmDHjh3YsWNHZb4NIiKiKs3SZndu3LjRKHHNKkkbNGgQsrOzsWDBAqSnp6N58+bYvXs3AgICAADp6elITU3VnV9QUIApU6bg+vXrcHR0RLNmzbBr1y707t27st4CERERVVGZmZk4f/48BEFAw4YN4enpaVA8s0rSAGDs2LEYO3as3tc2bdokKU+bNg3Tpk2rgFYRERFRMa0oQFCx98vUdxzIy8vDuHHj8PXXX0Oj0QAArK2tMWjQIHzyySdwdXVVFNfskjQiqlzp3zWRlO9kSBc1XdjlG9k1HINW9QTb28nqOq6TbtR+qF0NSVlrwB6GRKZs1KhROHnyJH788UeEhoZCEAQkJCRg4sSJGD16NLZv364oLpM0IiIiUpUoqrwEh4mvwbFr1y7s3bsXzz33nK6uR48e+PTTT9GzZ0/FcZmkERERkaosbeJAzZo19T7SdHV1hbu7u+K4fAZBREREZIBZs2YhKioK6enpurqMjAxMnToVs2fPVhyXPWlEVC52u9wk5b2zPpCUuVm65ZrlcU5S7vK9dA1Lux7X5BdpNcZsElUSS+hJa9OmjWTHo4sXLyIgIAD+/v4AgNTUVNjb2+Ovv/7C66+/rugeTNKIiIiIyumll14y+j2YpBEREZGqLGEJjrlz5xr9HkzSiIiISFWWNrvTWJikEREREZWTu7u7ZExaaXJychTdg0kamT2ratVkdVw0s4xKbI5elkHctzs/lJQ5UYCeZF3DLyXlyf6DZedoM7Ok5RJ/d631LF+guXVLhdaRMT3qSVNz4oBqoVQTHR1t9HswSSMiIiIqp+HDhxv9HlwnjYiIiFRVvASHmoepu3TpEmbNmoXBgwcjMzMTALBnzx6cOXNGcUwmaUREREQGiI+PR4sWLXDkyBHs3LkTd+/eBQCcOnXKoFmgfNxJZo/jzwxQYgyatlMbSfnPYSXGrAFICIsuUeOkcqOoqig5XtF16x3ZOW/5xknK00eUWPQzPlntZlEFEP8+1IxnyqZPn46FCxciKioKzs7OuvouXbrgo48+UhyXSRoRERGpyhJ2HHjc6dOn8eWXX8rqa9WqhezsbMVx+biTiIiIyABubm6SfTuLJScno3bt2orjMkkjIiIidYlGOEzYkCFD8PbbbyMjIwOCIECr1eLQoUOYMmUKhg0bpjguH3eSRRLs7WV1Yn6+cW6mYC2yymJ14JSkPHG1vJvex4Zj0EiZcT6/yOr+tXe8pNz42O+SstaoLSJSx6JFizBixAjUrl0boiiiadOm0Gg0GDJkCGbNmqU4LnvSiIiISF1qL7+hYEza6tWrERQUBAcHBwQHB+PAgQOlnp+fn4+ZM2ciICAA9vb2qFevHv7zn/+U6V62trbYunUrLly4gO3bt2PLli04d+4cvvjiC1hbyydglRV70oiIiEhVlb1357Zt2zBp0iSsXr0aHTp0wLp169CrVy+cPXsW/v7+eq95+eWXcfPmTWzYsAH169dHZmYmioqKynXfevXqoV69euVrbCmYpBEREVGVsnz5ckRGRmLUqFEAHm3htHfvXqxZswaLFy+Wnb9nzx7Ex8fj8uXLqFGjBgAgMDCw1HtERUWVqz1KMEkjIiIiVRlrCY68vDxJvb29PexLjDEuKCjA8ePHMX36dEl9eHg4EhIS9Mb/73//i5CQECxbtgxffPEFqlevjj59+uDdd9+Fo6Oj3muSk6Vr+B0/fhwajQaNGjUCAFy4cAHW1tYIDg4u+xstgUkaWSR9kwRKbuSs1ibO9/qFSMrVdxxRJa4qSkxquLTsH5LyJPe1FdkaquLq2sgXnm408TdJWWusCTxUJfj5+UnKc+fOxbx58yR1WVlZ0Gg08PLyktR7eXkhIyNDb9zLly/j4MGDcHBwwLfffousrCyMHTsWOTk5TxyXtm/fPt3Py5cvh7OzMz7//HO4//1vya1btzBy5EiEhYWV923qMEkjIiIidSkc7F9qPABpaWlwcXHRVZfsRXucIEjvL4qirK6YVquFIAjYunUrXF1dATxKvP71r3/hk08+eWJvWrEPP/wQMTExugQNANzd3bFw4UKEh4fjrbfeKv39PQFndxIREZGqiicOqHkAgIuLi+TQl6R5eHjA2tpa1muWmZkp610r5uPjg9q1a+sSNABo0qQJRFHEtWvXnvp+8/LycPPmTVl9ZmYm7tyRb4dWVkzSiIiIqMqws7NDcHAwYmNjJfWxsbFo37693ms6dOiAGzdu6DZGBx6NKbOyskKdOnWees9+/fph5MiR+Oabb3Dt2jVcu3YN33zzDSIjI9G/f3/F74WPO8kiWbVqIqvrtCVJUt66sbuk7LNcPuC0oKd0DFduoPyv1LiJ30rKn9TqJyk73JbPLXfIKpSUbX8+LjtHDdZO0g2wbQPuGeU+RID+hZA17ZpKylbcUL1qqOQd1qOiohAREYGQkBCEhoZi/fr1SE1NxZgxYwAAM2bMwPXr17F582YAj3YMePfddzFy5EjMnz8fWVlZmDp1Kl599dWnPuoEgLVr12LKlCn497//jcLCR///trGxQWRkJN5///3yNf4xTNKIiIioShk0aBCys7OxYMECpKeno3nz5ti9ezcCAgIAAOnp6UhNTdWd7+TkhNjYWLz55psICQlBzZo18fLLL2PhwoVlul+1atWwevVqvP/++7h06RJEUUT9+vVRvXr1p19cCiZpREREpCpjLcFRHmPHjsXYsWP1vrZp0yZZXePGjWWPSMurevXqaNmypUExHsckjYiIiNRn4puiq+nevXtYsmQJfvnlF2RmZkKrle46e/nyZUVxmaSRRRIK5Ft92FtJx4F1HXpUUv7H62mya4Y6nyz3vSPnrJGUC0X5huvz/2otKe9e+5ykXGu9tG0AFG3crm0UICmfar+pxBnK95wjKos6S/+UlDOHBErKRZevVFxjiBQaNWoU4uPjERERAR8fnycu9VFeTNKIiIhIVabwuLMi/fTTT9i1axc6dOigalwuwUFERERkAHd3d92en2pikkZERETqEo1wmLB3330Xc+bMwf378q3PDMHHnURERKQy4e9DzXim68MPP8SlS5fg5eWFwMBA2NraSl4/ceKEorhM0sgiFblVk9Xla6V/qaJ9kmTnGIOtIB+cv9DztLQ8R1p+pvcg2TWeA69Iyvo2kS/p8gDp4qL62kJkTKc3NJeUa15OrKSWECn30ksvGSUukzQiIiJSVyXvOFDR5s6da5S4HJNGREREZILYk0ZERETqsrCeNI1GgxUrVmD79u1ITU1FQUGB5PWcnBxFcZmkUZVk7e4uKd/u0UhS7jr9kOyat2teNGqb1HQiZJusrsuPfSVlu+5XnxonJOycam0iUsLjRJ6kbOL/FlNZicKjQ814Jmz+/Pn47LPPEBUVhdmzZ2PmzJm4cuUKvvvuO8yZM0dxXD7uJCIiIjLA1q1b8emnn2LKlCmwsbHB4MGD8dlnn2HOnDk4fPiw4rhM0oiIiEhVoqj+YcoyMjLQokULAICTkxNyc3MBAC+88AJ27dqlOC6TNCIiIiID1KlTB+np6QCA+vXrIyYmBgBw7Ngx2NvbK47LMWlUJWlu3ZKUn50qXfOs5DpkVcG+Zt9Lyq3fHCspe32cILtmmJe8jshY4h7I+wW0dtJ/hgSrEmv1aTXGbBIZi4VNHOjXrx9++eUXtG3bFhMnTsTgwYOxYcMGpKamYvLkyYrjMkkjIiIiMsCSJUt0P//rX/9CnTp1kJCQgPr166NPnz6K4zJJIyIiInVZ2OzOktq1a4d27doZHIdJGhEREalKEB8dasYzRfv37y/TeR07dlQUn0kaERERkQKdO3eGIDzq5ROfMAVVEARoNMrGVjJJoyrpzivSbuZon7WV1JLK886bWyXlz3/oJDunZ7WTFdQaImDqH/+S1dVI/K0SWkJGZyETB9zd3eHs7IwRI0YgIiICHh4eqsbnEhxERERECqSnp2Pp0qVITExEixYtEBkZiYSEBLi4uMDV1VV3KMUkjYiIiNRVPHFAzcME2dnZYdCgQdi7dy/Onz+Pli1bYvz48fDz88PMmTNRVFRkUHwmaURERKQu0QiHifPz88OcOXPw888/o2HDhliyZAny8vKefmEpOCaNTIqgZ2VmwVq6uKX2/v2nxsnoXaBam8zVy065kvLs0bUrqSVkqVKL7krKHtP1LGZbUY0hMqL8/Hzs2LED//nPf5CYmIjnn38eu3btQo0aNQyKyySNiIiI1GUhEweOHj2KjRs34uuvv0ZQUBBGjBiB7du3G5ycFWOSRkRERKRAu3bt4O/vjwkTJiA4OBgAcPDgQdl5SncdYJJGRERE6rKQnjQASE1NxbvvvvvE17lOGlUZNyODZXVbpn1Y6jWvzo6S1UWHfq5am6qKdwd+WdlNIAvzQvQ0Sdnn94RKaglVOAvZFkqrNe6oSs7uJCIiIjJB7EkjIiIiVVnK3p3Gxp40IiIiIhPEnjQiIiJSlwVNHDAms0vSVq9ejffffx/p6elo1qwZoqOjERYW9sTz4+PjERUVhTNnzsDX1xfTpk3DmDFjKrDFylk3rCery6/jJinb/Hq8/IGtrOV1WmUzTx5n7eIiKWvKsNLyX2NCJeXPpkbLzmlm51hqjNULPpLVtbQr+R71vGcLE+ZwXU+tU4W3g6qGDbnesrp1S/tJyj6bOFGAyBBm9bhz27ZtmDRpEmbOnInk5GSEhYWhV69eSE1N1Xt+SkoKevfujbCwMCQnJ+Odd97BhAkTsGPHjgpuOREREVV1BQUFuHbtGlJTUyWHUuVO0kaMGIH9+/crvqEhli9fjsjISIwaNQpNmjRBdHQ0/Pz8sGbNGr3nr127Fv7+/oiOjkaTJk0watQovPrqq/jggw8quOVERESWQ8D/Jg+oclT2G3qKixcvIiwsDI6OjggICEBQUBCCgoIQGBiIoKAgxXHL/bjzzp07CA8Ph5+fH0aOHInhw4ejdm3j7wlYUFCA48ePY/r06ZL68PBwJCTo71JPTExEeHi4pK5Hjx7YsGEDCgsLYWtrK7smPz8f+fn5urKhm6MSERFR1TZixAjY2Njgxx9/hI+PDwRBnbSy3Enajh07kJ2djS1btmDTpk2YO3cu/vnPfyIyMhJ9+/bVm/ioISsrCxqNBl5eXpJ6Ly8vZGRk6L0mIyND7/lFRUXIysqCj4+P7JrFixdj/vz56jVcZbZ3pBuHV9hYSiONY7O9Jy2ffOgvOyfYXv+fb7GHovxrnFL0QFJuaFu9/I2rYhwEsxrdQCbOwapQVnffS/oPk3tFNYZMj4UsZlvs5MmTOH78OBo3bqxqXEX/165ZsyYmTpyI5ORkHD16FPXr10dERAR8fX0xefJkXLx4UdVGPq5kdiqKYqkZq77z9dUXmzFjBnJzc3VHWlqagS0mIiKyMKIRDhPWtGlTZGVlqR7XoF+t09PTERMTg5iYGFhbW6N37944c+YMmjZtihUrVqjVRgCAh4cHrK2tZb1mmZmZst6yYt7e3nrPt7GxQc2aNfVeY29vDxcXF8lBRERE9CRLly7FtGnTEBcXh+zsbOTl5UkOpcr9uLOwsBD//e9/sXHjRsTExKBly5aYPHkyhg4dCmdnZwDA119/jTfeeAOTJ09W3LCS7OzsEBwcjNjYWPTr979p3rGxsejbt6/ea0JDQ/HDDz9I6mJiYhASEmK0x7JEREQWz8LWSfvnP/8JAOjWrZukvvhpX4VtsO7j4wOtVovBgwfj6NGjaN26teycHj16wM3NTVGDShMVFYWIiAiEhIQgNDQU69evR2pqqm7dsxkzZuD69evYvHkzAGDMmDFYtWoVoqKiMHr0aCQmJmLDhg346quvVG+bMWguXDJOYCVjycpwTVnWRSvJ7YtESfmjWv1l5zQev0pSdhCKJOXxH0ySXTP+zZ2SckPX0se1WYIj+fIRQj2r5es5k+jphjpny+smrpaU29wZKyl7rua6aVQ17du3zyhxy52krVixAgMHDoSDg8MTz3F3d0dKSopBDdNn0KBByM7OxoIFC5Ceno7mzZtj9+7dCAgIAPDo8evj65EEBQVh9+7dmDx5Mj755BP4+vpi5cqVGDBggOptIyIiokcsbe/OTp06GSVuuZO0iIgIY7SjzMaOHYuxY8fqfW3Tpk2yuk6dOuHEiRNGbhURERHpWMDjzlOnTqF58+awsrLCqVOnSj23ZcuWiu5hdttCEREREVW21q1bIyMjA56enmjdujUEQdCtIPG4Ch2TRkRERFQqC+hJS0lJQa1atXQ/GwOTNDIpPsvlA4sXfdZZUhaLpBMHPO/Lr/nsxQ6ScmQr7tc6/ruRsro/h6ythJaQpdg9fZmk/Or+UbJztL+fq6jmEKmqeDx8yZ/VxCSNiIiIVGVpEweMhfvEEBEREZkg9qQRERGRuixs705jYZJGJk/JIrmFOz2lFa1UaowZ2XPfXlJu8EWu/KQhFdQYskg+Nk6S8uXZdrJzAgdVVGuoQlnAxIGKwMedRERERAZIS0vDtWvXdOWjR49i0qRJWL9+vUFxmaQRERGRqoonDqh5mLIhQ4botobKyMhA9+7dcfToUbzzzjtYsGCB4rhM0oiIiIgM8Pvvv+PZZ58FAGzfvh3NmzdHQkICvvzyS727IZUVx6RRxbKylpaVbPZeBh6bpVuBjR4lXTftU79DRrmvKZm19FVJueZvibJz4h5If0/r7Kg1apvIsr3/zDeyuuh/DpaUbX89KT3BSP+PICOzsDFphYWFsLd/NA74559/Rp8+fQAAjRs3Rnp6uuK47EkjIiIidan9qNPEk7RmzZph7dq1OHDgAGJjY9GzZ08AwI0bN1CzZk3FcZmkERERERlg6dKlWLduHTp37ozBgwejVatHSwr897//1T0GVYKPO4mIiEhdFva4s3PnzsjKykJeXh7c3d119a+99hqqV6+uOC570oiIiIgM0LVrV9y5c0eSoAFAjRo1MGiQ8sUA2ZNGFauSBgEf2yJdzfZ41D7ZOcH28oU2zUmXM30l5ZqfyicKlBR9rbuk3LnBXlXbRPS4PtXvy+pW5xZIyiInClQNFtaTFhcXh4KCAln9w4cPceDAAcVxmaQRERGRqixlg/VTp07pfj579iwyMjJ0ZY1Ggz179qB27dqK4zNJIyIiIlKgdevWEAQBgiCga9eustcdHR3x8ccfK47PJI2IiIhIgZSUFIiiiLp16+Lo0aOoVauW7jU7Ozt4enrC2tq6lAilY5JGVZKYny8pe32cIClPT35Ndk31RdIFB78zofFZhaJ0nE7fCy/KznEccEtSLsvIntMngqQVDcrbMiLDZAZLN2GvdaySGkKkQEBAAABAqzXOQuBM0oiIiEhdFjZxAAAuXLiAuLg4ZGZmypK2OXPmKIrJJI2IiIhUZSkTB4p9+umneOONN+Dh4QFvb28IgqB7TRAEJmlERERElWHhwoVYtGgR3n77bVXjMkkji2R347asrrnrDUn50ENpd/Xph36ya8a4XVe1XcU6nu4nKd9M8paUA2c+fQ20sqj7nXTsXuHL0pFstoLyAa9EZVFrYJqkbL1NuhioJjdPfhHXUjMPJt77paZbt25h4MCBqsfljgNEREREBhg4cCBiYmJUj8ueNCIiIlKXhU0cqF+/PmbPno3Dhw+jRYsWsLW1lbw+YcIERXGZpBEREZGqLG3iwPr16+Hk5IT4+HjEx8dLXhMEgUkaERERUWVISUkxSlwmaWSRxDv3ZHV17HIk5Ve/Gicp1130m+yarzv3lpT/amUrO6dBz0uS8tVt9SRlt8uFsmscSmw6HZiozkSBkmxPXZGU2x4fIimfCNlmlPsSFROml5gocOtaJbWEVGVhjzuNhUkaERERUTlFRUXh3XffRfXq1REVFVXqucuXL1d0DyZpREREpCpLGJOWnJyMwsJC3c9P8vjCtuXFJI2IiIjUZQGPO/ft26f3ZzUxSSOLpPnrL1ndD+GtJeXAa9JxYPq2z7XfLd0Nus4e+eKvmSn/kJQ9v06QnSNjVTGLyGpuSTdlf5DURHpCSIU0gyzE8fwCWZ3V+auSMpepJbWsXr0a77//PtLT09GsWTNER0cjLCzsqdcdOnQInTp1QvPmzXHy5Mly3/fatWsQBAG1a9dW0GopLmZLRERE6hKNcJTDtm3bMGnSJMycORPJyckICwtDr169kJqaWup1ubm5GDZsGLp161au+2m1WixYsACurq4ICAiAv78/3Nzc8O6778o2Wy8PJmlERERUpSxfvhyRkZEYNWoUmjRpgujoaPj5+WHNmjWlXvf6669jyJAhCA0NLdf9Zs6ciVWrVmHJkiVITk7GiRMn8N577+Hjjz/G7NmzFb8PPu4kIiIiVRlr4kBennQvV3t7e9jb20vqCgoKcPz4cUyfPl1SHx4ejoSEJw832bhxIy5duoQtW7Zg4cKF5Wrf559/js8++wx9+vTR1bVq1Qq1a9fG2LFjsWjRonLFK8YkjehvRddU2Cxdz8bPzl8fLv0afePPKmkD6YClxyXl7f92lZ3zslNuRTWHqphLhbVkdSkbAiTlgH9fkJTF/HyjtonMi5+fn6Q8d+5czJs3T1KXlZUFjUYDLy8vSb2XlxcyMjL0xr148SKmT5+OAwcOwMam/KlRTk4OGjduLKtv3LgxcnJy9FxRNkzSiIiISF1Gmt2ZlpYGFxcXXXXJXrTHlVz6QhRFvcthaDQaDBkyBPPnz0fDhg0VNa9Vq1ZYtWoVVq5cKalftWoVWrVqpSgmwCSNiIiI1GakJM3FxUWSpOnj4eEBa2trWa9ZZmamrHcNAO7cuYOkpCQkJydj/PjxAB5NBBBFETY2NoiJiUHXrl1LveeyZcvw/PPP4+eff0ZoaCgEQUBCQgLS0tKwe/fucrxRKU4cICIioirDzs4OwcHBiI2NldTHxsaiffv2svNdXFxw+vRpnDx5UneMGTMGjRo1wsmTJ9G2bdun3rNTp064cOEC+vXrh9u3byMnJwf9+/fH+fPny7Tsx5OwJ42IiIhUVdk7DkRFRSEiIgIhISEIDQ3F+vXrkZqaijFjxgAAZsyYgevXr2Pz5s2wsrJC8+bNJdd7enrCwcFBVl8aX19fxRMEnoRJGpk/Exp4r4gJtdWqrr+kPGvnM7Jz+kWskpRthYpZeJfM341Cd1ndijbbJeVlYf+WlG1/lk5mISqLQYMGITs7GwsWLEB6ejqaN2+O3bt3IyDg0USV9PT0p66ZVl63bt3Chg0b8Mcff0AQBDRp0gQjR45EjRo1FMfk404iIiJSVyUvZgsAY8eOxZUrV5Cfn4/jx4+jY8eOutc2bdqEuLi4J147b968cu02EB8fj6CgIKxcuRK3bt1CTk4OVq5ciaCgIMTHx5e/8X9jTxoRERGpqrIfd1a0cePG4eWXX8aaNWtgbf3o6YJGo8HYsWMxbtw4/P7774risieNiIiIyACXLl3CW2+9pUvQAMDa2hpRUVG4dOmS4rjsSSOzJ9jKv8ZivumM8zInmvOXJeWg6Rdl5zR0eUNSTnlpvVHbROYrteiupBzzXJDsnBhI62xvScegWVWrJrtGe/++Cq0jozLSEhym6plnnsEff/yBRo0aSer/+OMPtG7dWnFcJmlEREREBpgwYQImTpyIP//8E+3atQMAHD58GJ988gmWLFmCU6dO6c5t2bJlmeMySSMiIiJ1WVhP2uDBgwEA06ZN0/uaIAi6HQ80mrI/6WGSRkRERKoS/j7UjGfKUlJSjBKXSRqZPW7ArKIyrNlW66h0XbS7fR5Kyk5WDqo2iczXgFOvSso1bl14wplPpn3Iv99k+orXX1MbkzQiIiJSl4U97jQWLsFBREREZILYk0ZERESqsrTFbI2FSRoRERGpi487VcEkjYieTM/m9b4jpQvetv56kqT8Xp+vZNe87JSrarPINB16qJWUPV6+JilLXy2jMkxmIaqqmKQRERGR+qp475e7uzsEoWyLg+Tk5Ci6B5M0IiIionKKjo7W/ZydnY2FCxeiR48eCA0NBQAkJiZi7969mD17tuJ7MEkjIiIiVVnCxIHhw4frfh4wYAAWLFiA8ePH6+omTJiAVatW4eeff8bkyZMV3YNJGhE9kb7N6x90uikp14O0/NmOl2TXtP56taTc0La64Y2jSnWh8J6sbvZrEyRl2/vHZeeQhbCwiQN79+7F0qVLZfU9evTA9OnTFcflOmlEREREBqhZsya+/fZbWf13332HmjVrKo7LnjQiIiJSlSU87nzc/PnzERkZibi4ON2YtMOHD2PPnj347LPPFMc1m560W7duISIiAq6urnB1dUVERARu375d6jUjRoyAIAiSo127dhXTYCIiIrIII0aMQEJCAtzc3LBz507s2LEDrq6uOHToEEaMGKE4rtn0pA0ZMgTXrl3Dnj17AACvvfYaIiIi8MMPP5R6Xc+ePbFx40Zd2c7OzqjtJKpKlGxeLyT+Jqsb/8pYSXnQf/ZKypGuGeW+D1Wuzbfkv/Bmjn0oKQecqy0pF127btQ2kQmxsDFpANC2bVts3bpV1ZhmkaT98ccf2LNnDw4fPoy2bdsCAD799FOEhobi/PnzaNSo0ROvtbe3h7e3d0U1lYiIyOJZ2uNOALh06RI2btyIy5cvIzo6Gp6entizZw/8/PzQrFkzRTHN4nFnYmIiXF1ddQkaALRr1w6urq5ISEgo9dq4uDh4enqiYcOGGD16NDIzM0s9Pz8/H3l5eZKDiIiI6Eni4+PRokULHDlyBDt27MDdu3cBAKdOncLcuXMVxzWLJC0jIwOenp6yek9PT2RkPPkxSa9evbB161b8+uuv+PDDD3Hs2DF07doV+aU8wlm8eLFu3Jurqyv8/PxUeQ9EREQWQzTCYcKmT5+OhQsXIjY2VjKsqkuXLkhMTFQct1KTtHnz5skG9pc8kpKSAEDv1guiKJa6JcOgQYPw/PPPo3nz5njxxRfx008/4cKFC9i1a9cTr5kxYwZyc3N1R1pamuFvlIiIiKqs06dPo1+/frL6WrVqITs7W3HcSh2TNn78eLzyyiulnhMYGIhTp07h5s2bstf++usveHl5lfl+Pj4+CAgIwMWLF594jr29Pezt7csck4iezuZcqqS87Bvp/8waD/1Edk0HB7Po6K+ySm6W/ubvgyXlEyHbZNcs9DwtKQe985qk3HAsJw5YDAubOODm5ob09HQEBQVJ6pOTk1G7du0nXPV0lZqkeXh4wMPD46nnhYaGIjc3F0ePHsWzzz4LADhy5Ahyc3PRvn37Mt8vOzsbaWlp8PHxUdxmIiIioscNGTIEb7/9Nv7v//4PgiBAq9Xi0KFDmDJlCoYNG6Y4rln8qtqkSRP07NkTo0ePxuHDh3H48GGMHj0aL7zwgmRmZ+PGjXUr/t69exdTpkxBYmIirly5gri4OLz44ovw8PDQ2yVJRERE6iie3anmYcoWLVoEf39/1K5dG3fv3kXTpk3RsWNHtG/fHrNmzVIc1yyW4ACArVu3YsKECQgPDwcA9OnTB6tWrZKcc/78eeTm5gIArK2tcfr0aWzevBm3b9+Gj48PunTpgm3btsHZ2bnC209ERGQxLOxxp62tLbZu3YoFCxYgOTkZWq0Wbdq0QYMGDQyKazZJWo0aNbBly5ZSzxHF//0pOjo6Yu/evaWcTUQV5crYJpLy+cjVJc6Qd+o3+1i6AO47I+RjoIY6Kx+QS//z9s3WsrpTEY0l5eoNXCXl9NZ3Zdf42DhJyoJT0dNvbmUtLWs1T7+GyETVq1cP9erVUy2e2SRpREREZB4EUYQgqtf9pWYstURFRZX53OXLlyu6B5M0IiIionJKTk4u03mlLRX2NEzSiIiISF0WMCZt3759Rr8HkzQiqnC3NPcl5SP57rJzAtb+ISl/uTFEds6H690k5eXN/k9S7uwoXevLEp0peCCrG7LiLUnZ95cc2Tna389JytV+l74+LOdN2TXW96Vj0BpfkS4Grne0GcegVUmWuHdnsbS0NAiCgDp16hgcyyyW4CAiIiIyVUVFRZg9ezZcXV0RGBiIgIAAuLq6YtasWSgsLFQclz1pREREpC4LeNz5uPHjx+Pbb7/FsmXLEBoaCgBITEzEvHnzkJWVhbVr1yqKyySNiIiIyABfffUVvv76a/Tq1UtX17JlS/j7++OVV15hkkZERESmwdLGpDk4OCAwMFBWHxgYCDs7O8VxmaQRkWHKsBipZ7J0TMa/Ow2RnnBfPrhdc+vmU29dq4/0nK1HQiXlUQdayK7pEibdBHyBj3TR65ILspqSkhMuAGB2RhdJOX5bsKRs21G+4K/zNemfUclJAmVhFS9ffqDkv6NlmRIg2NtLY+Tnl7stZIIs7HHnuHHj8O6772Ljxo2w//s7nZ+fj0WLFmH8+PGK4zJJIyIiIjJAcnIyfvnlF9SpUwetWrUCAPz2228oKChAt27d0L9/f925O3fuLHNcJmlERESkKkt73Onm5oYBAwZI6vz8/AyOyySNiIiIyAAbN240SlwmaURkmJJj0EqOUQNgv/uYpFyGbbcVuT7CV1Kud/6Y7JzLnVtLyqMu15SUU4bKF6Ascpb+Gm/XME9S/mfAedk1cz33S8rb7jSQlJcm9kJJbselA4ytC6X39TghvS8AwEq63KXvsQTp68vlfx5WDtJxYJW55C/HoFVRFjYmzViYpBEREZHqTP0RpZqys7MxZ84c7Nu3D5mZmdBqpb/65OTId/UoCyZpRERERAb497//jUuXLiEyMhJeXl4Gbar+OCZpREREpC5RfHSoGc+EHTx4EAcPHtTN7FQLkzQiMkhZ1rmqqLWwNH9cfOo5Nr8el5RLjo/zW5Qqv6jEOLsLn7aRlN9ve0R2ia1QTVIe43ZdUl7lLl8bznN1kvzej1H0z5Sedeu0DzkOjEhNjRs3xoMH8r/ThuIG60RERKSq4iU41DxM2erVqzFz5kzEx8cjOzsbeXl5kkMp9qQRERGRuixsdqebmxtyc3PRtWtXSb0oihAEARpNWfbfkGOSRkRERGSAoUOHws7ODl9++SUnDhAREZHpErSPDjXjmbLff/8dycnJaNSokapxmaQRkUHKMgnA3BcsTXnvWWm515oSZ8gXjH2a39ttldXVWzFGUq4/+XC545aJnskERKRcSEgI0tLSmKQRERGRibOwMWlvvvkmJk6ciKlTp6JFixawtbWVvN6yZUtFcZmkERERkaosbYP1QYMGAQBeffVVXZ0gCJw4QERERFSZUlJSjBKXSRoR0VME/SOtQu7z2j9/kZT32deQlM19bB9ZEAvbcSAgIMAocZmkEREREang7NmzSE1NRUFBgaS+T58+iuIxSSMiIiJVWdqYtMuXL6Nfv344ffq0biwaAN16aUrHpHFbKCIiIiIDTJw4EUFBQbh58yaqVauGM2fOYP/+/QgJCUFcXJziuOxJIyJ6TMnN4AEgX1v+ddCUWHuoi6TcMP9ohdyXSHUWtgRHYmIifv31V9SqVQtWVlawsrLCc889h8WLF2PChAlITk5WFJc9aURERKQqS9tgXaPRwMnJCQDg4eGBGzduAHg0oeD8+fOK47InjYiIiMgAzZs3x6lTp1C3bl20bdsWy5Ytg52dHdavX4+6desqjsskjYiIiNRlYUtwzJo1C/fu3QMALFy4EC+88ALCwsJQs2ZNbNu2TXFcJmlEREREBujRo4fu57p16+Ls2bPIycmBu7u7boanEkzSiIgeo2/B2CvXPCTl1EZ3JWV/G6dy3+eu9qGsTqhWVO44RKbI0pbgKCkvLw/79+9H48aN0bhxY8VxOHGAiIiI1CUa4TBhL7/8MlatWgUAePDgAUJCQvDyyy+jRYsW2LFjh+K4TNKIiIiIDLB//36EhYUBAL799luIoojbt29j5cqVWLhwoeK4TNKIiIhIVZa2BEdubi5q1Hi01+6ePXswYMAAVKtWDc8//zwuXryoOC7HpBERPUXTGdck5f4vTpWUp039UnZNa/sbkvLlQulm6bPfe0N2TYP/JCptIhFVIj8/PyQmJqJGjRrYs2cPvv76awDArVu34ODgoDgukzQiIiJSl1Z8dKgZz4RNmjQJQ4cOhZOTEwICAtC5c2cAjx6DtmjRQnFcJmlERESkLgvbFmrs2LFo27YtUlNT0b17d1hZPRpNVrduXYPGpDFJIyIiIjJQcHAwgoODJXXPP/+8QTGZpBEREZGqBKi8Tpp6ocwKkzQismiCvb2krG8x26KMm5JyzU+l5Q2fBsmucYxvJymfOSzdv68uJwkQ0VMwSSMiIiJ1WdjencbCddKIiIhIVZawTlr//v2Rl5cHANi8eTPy9fTCG4pJGhEREVU5q1evRlBQEBwcHBAcHIwDBw488dydO3eie/fuqFWrFlxcXBAaGoq9e/eWGv/HH3/EvXv3AAAjR45Ebm6uqu0H+LiTiCxcyTFoJceo6TunLG5slI5B887VljsGkdmq5CU4tm3bhkmTJmH16tXo0KED1q1bh169euHs2bPw9/eXnb9//350794d7733Htzc3LBx40a8+OKLOHLkCNq0aaP3Ho0bN8aMGTPQpUsXiKKI7du3w8XFRe+5w4YNK98b+Jsgihb6oLeM8vLy4Orqis7oCxvBtrKbQ0RGplaSdmtEqKRsXyJJq/btkXLHJFKiSCxEHL5Hbm7uE5MItRT/m/lcl3mwsVG+0n5JRUUPcXDfvDK/h7Zt2+KZZ57BmjVrdHVNmjTBSy+9hMWLF5fpns2aNcOgQYMwZ84cva8nJCQgKioKly5dQk5ODpydnSEI8nmogiAgJyenTPcsiT1pREREpCpBFCGo2AdUHKt4DFgxe3t72Jf4xaqgoADHjx/H9OnTJfXh4eFISEgo0/20Wi3u3Lmj249Tn/bt2+Pw4cMAACsrK1y4cAGenp5lil9WHJNGRERE6tIa4cCjPTJdXV11h75esaysLGg0Gnh5eUnqvby8kJGRUabmf/jhh7h37x5efvnlMp2fkpKCWrVqlenc8mBPGhHRY5Q82tTHfZN0HTTZemyq3IXIsqSlpUked5bsRXtcyUePoijqfRxZ0ldffYV58+bh+++/L3PPWEBAAG7fvo0NGzbgjz/+gCAIaNKkCSIjI+Hq6lqmGPqwJ42IiIhUVfy4U80DAFxcXCSHviTNw8MD1tbWsl6zzMxMWe9aSdu2bUNkZCS2b9+Of/7zn2V+v0lJSahXrx5WrFiBnJwcZGVlYcWKFahXrx5OnDhR5jglMUkjIiKiKsPOzg7BwcGIjY2V1MfGxqJ9+/ZPvO6rr77CiBEj8OWXX5Z7z83JkyejT58+uHLlCnbu3Ilvv/0WKSkpeOGFFzBp0iQlbwMAH3cSERGR2ip5CY6oqChEREQgJCQEoaGhWL9+PVJTUzFmzBgAwIwZM3D9+nVs3rwZwKMEbdiwYfjoo4/Qrl07XS+co6NjmR5XJiUl4dNPP4WNzf/SKhsbG0ybNg0hISHla/xj2JNGRERE6ireFkrNoxwGDRqE6OhoLFiwAK1bt8b+/fuxe/duBAQEAADS09ORmpqqO3/dunUoKirCuHHj4OPjozsmTpxYpvu5uLhI4hVLS0uDs7Nzudr+OPakERFVALUmJBBR2YwdOxZjx47V+9qmTZsk5bi4OIPuNWjQIERGRuKDDz5A+/btIQgCDh48iKlTp2Lw4MGK4zJJIyIiIlWpvd+mKe7d+bgPPvgAgiBg2LBhKCoqAgDY2trijTfewJIlSxTHZZJGREREZAA7Ozt89NFHWLx4MS5dugRRFFG/fn1Uq1bNoLhM0oiIiEhdCsaRPTWeGahWrRpatGihWjwmaURExmBlLS1rNca5hoiqLCZpREREpCpB++hQM54lMpslOBYtWoT27dujWrVqcHNzK9M1oihi3rx58PX1haOjIzp37owzZ84Yt6FERESWrpKX4KgqzCZJKygowMCBA/HGG2+U+Zply5Zh+fLlWLVqFY4dOwZvb290794dd+7cMWJLiYiIiAxnNo8758+fD0C+tsmTiKKI6OhozJw5E/379wcAfP755/Dy8sKXX36J119/Xe91+fn5yH9sPaO8vDzDGk5ElknJeDKOQaOqopJ3HKgMFy5cQFxcHDIzM6HVSp/PzpkzR1FMs0nSyislJQUZGRkIDw/X1dnb26NTp05ISEh4YpK2ePFiXUJIRERE9DSffvop3njjDXh4eMDb2xuCIOheEwSBSVpJxftuldzx3svLC1evXn3idTNmzEBUVJSunJeXBz8/P+M0koiIqAoSRBGCiuPI1IxlDAsXLsSiRYvw9ttvqxq3UsekzZs3D4IglHokJSUZdI/Hs1ng0WPQknWPs7e3h4uLi+QgIiKicrCwiQO3bt3CwIEDVY9bqT1p48ePxyuvvFLqOYGBgYpie3t7A3jUo+bj46Orz8zMlPWuERERESk1cOBAxMTEYMyYMarGrdQkzcPDAx4eHkaJHRQUBG9vb8TGxqJNmzYAHs0QjY+Px9KlS41yTyKyTDZ1A2V1RZevVHg7iEyGCEDNtc1MuyMN9evXx+zZs3H48GG0aNECtra2ktcnTJigKK7ZjElLTU1FTk4OUlNTodFocPLkSQCPPhgnJycAQOPGjbF48WL069cPgiBg0qRJeO+999CgQQM0aNAA7733HqpVq4YhQ4ZU4jshIiKiqmT9+vVwcnJCfHw84uPjJa8JglD1k7Q5c+bg888/15WLe8f27duHzp07AwDOnz+P3Nxc3TnTpk3DgwcPMHbsWNy6dQtt27ZFTEwMnJ2dK7TtRERElsTSJg6kpKQYJa4giib+zitZXl4eXF1d0Rl9YSPYPv0CIrI4fNxJpqxILEQcvkdubq7RJ8MV/5vZtfV02Fjbqxa3SJOPX08uqZD3YKjitKq0SYplZTY7DhARmaqiy1dkBxFZls2bN6NFixZwdHSEo6MjWrZsiS+++MKgmGbzuJOIiIjMhNrLZpj4Q7/ly5dj9uzZGD9+PDp06ABRFHHo0CGMGTMGWVlZmDx5sqK4TNKIiIiIDPDxxx9jzZo1GDZsmK6ub9++aNasGebNm8ckjYiIiEyEFoDhQ7Kk8UxYeno62rdvL6tv37490tPTFcflmDQiIiJSVfHsTjUPU1a/fn1s375dVr9t2zY0aNBAcVz2pBEREREZYP78+Rg0aBD279+PDh06QBAEHDx4EL/88ove5K2smKQRERGRuixs4sCAAQNw5MgRrFixAt999x1EUUTTpk1x9OhR3bquSjBJIyIiIjJQcHAwtmzZompMJmlERESkLgvoScvLy9MtrJuXl1fquUoX4GWSRkREROqygCTN3d0d6enp8PT0hJubm94dBkRRhCAI0Gg0iu7BJI2IiIionH799VfUqFEDwKN9xI2BSRoRERGpywLWSevUqZPu56CgIPj5+cl600RRRFpamuJ7cJ00IiIiIgMEBQXhr7/+ktXn5OQgKChIcVz2pBEREZGq1F6A1tQXsy0ee1bS3bt34eDgoDgukzQiIiJSlwVMHACAqKgoAIAgCJg9ezaqVaume02j0eDIkSNo3bq14vhM0oiIiIgUSE5OBvCoJ+306dOws7PTvWZnZ4dWrVphypQpiuMzSSMiIiJ1aUVAULH3S2uaPWnFszpHjhyJjz76SPF6aE/CiQNEREREBoiOjkZRUZGsPicn56kL3ZaGSRoRERGpq3hMmpqHCXvllVfw9ddfy+q3b9+OV155RXFcJmlEREREBjhy5Ai6dOkiq+/cuTOOHDmiOC7HpBEREZHK1O79Mu2etPz8fL2POwsLC/HgwQPFcdmTRkREROqysMed//jHP7B+/XpZ/dq1axEcHKw4LnvSiIiIiAywaNEi/POf/8Rvv/2Gbt26AQB++eUXHDt2DDExMYrjsieNiIiI1KUV1T9MWIcOHZCYmAg/Pz9s374dP/zwA+rXr49Tp04hLCxMcVz2pBEREREZqHXr1ti6dauqMZmkERERkbpE7aNDzXhm4sGDBygsLJTUKV3klo87iYiISF0WNnHg/v37GD9+PDw9PeHk5AR3d3fJoRSTNCIiIiIDTJ06Fb/++itWr14Ne3t7fPbZZ5g/fz58fX2xefNmxXH5uJOIiIjUpRWh6tpmJj5x4IcffsDmzZvRuXNnvPrqqwgLC0P9+vUREBCArVu3YujQoYrisieNiIiIyAA5OTkICgoC8Gj8WU5ODgDgueeew/79+xXHZZJGRERE6rKwMWl169bFlStXAABNmzbF9u3bATzqYXNzc1Mcl0kaERERqUuEyklaZb+h0o0cORK//fYbAGDGjBm6sWmTJ0/G1KlTFcflmDQiIiIiA0yePFn3c5cuXXDu3DkkJSWhXr16aNWqleK4TNKIiIhIXWo/ojThx52FhYUIDw/HunXr0LBhQwCAv78//P39DY7Nx51ERERECtna2uL333+HIAiqx2aSRkREROrSatU/TNiwYcOwYcMG1ePycScRERGpy4IedwJAQUEBPvvsM8TGxiIkJATVq1eXvL58+XJFcZmkERERERng999/xzPPPAMAuHDhguQ1Qx6DMkkjIiIidVlAT9qpU6fQvHlzWFlZYd++fUa5B8ekEREREZVTmzZtkJWVBeDRYrbZ2dmq34NJGhEREalLK6p/mBg3NzekpKQAAK5cuQKtESY38HEnERERqUoUtRBF9ZIWNWOpZcCAAejUqRN8fHwgCAJCQkJgbW2t99zLly8rugeTNCIiIqJyWr9+Pfr3748///wTEyZMwOjRo+Hs7KzqPZikERERkbpElR9RmuDEAQDo2bMnAOD48eOYOHEikzQiIiIiU7Jx40ajxGWSRkREROoSRQBVvyfN2JikERERkbq0WkBQcbC/CU4cqAhcgoOIiIjIBLEnjYiIiNTFx52qYE8aERERkQliTxoRERGpStRqIao4Js0UF7OtCOxJIyIiIjJB7EkjIiIidXFMmiqYpBEREZG6tCIgMEkzFB93EhEREZkg9qQRERGRukQRgJqL2bInjYiIiIhMBHvSiIiISFWiVoSo4pg00UJ70pikERERkbpELdR93Ml10oiIiIjIRDBJIyIiIlWJWlH1o7xWr16NoKAgODg4IDg4GAcOHCj1/Pj4eAQHB8PBwQF169bF2rVrlb591ZhNkrZo0SK0b98e1apVg5ubW5muGTFiBARBkBzt2rUzbkOJiIioUm3btg2TJk3CzJkzkZycjLCwMPTq1Qupqal6z09JSUHv3r0RFhaG5ORkvPPOO5gwYQJ27NhRwS2XMpsxaQUFBRg4cCBCQ0OxYcOGMl/Xs2dPbNy4UVe2s7MzRvOIiIjob0VivqrjyIpQCADIy8uT1Nvb28Pe3l52/vLlyxEZGYlRo0YBAKKjo7F3716sWbMGixcvlp2/du1a+Pv7Izo6GgDQpEkTJCUl4YMPPsCAAQNUex/lZTZJ2vz58wEAmzZtKtd19vb28Pb2NkKLiIiI6HF2dnbw9vbGwYzdqsd2cnKCn5+fpG7u3LmYN2+epK6goADHjx/H9OnTJfXh4eFISEjQGzsxMRHh4eGSuh49emDDhg0oLCyEra2t4W9AAbNJ0pSKi4uDp6cn3Nzc0KlTJyxatAienp5PPD8/Px/5+fm6cm5uLoC/s3jLnAFMRERmrLgXqiKWsXBwcEBKSgoKCgpUjy2KIgRBkNTp60XLysqCRqOBl5eXpN7LywsZGRl6Y2dkZOg9v6ioCFlZWfDx8TGw9cpU6SStV69eGDhwIAICApCSkoLZs2eja9euOH78uN4/WABYvHixrtfucQeh/m8FREREFSU7Oxuurq5Gv4+DgwMcHByMfp+nKZnQ6Uvynna+vvqKVKlJ2rx58/QmRI87duwYQkJCFMUfNGiQ7ufmzZsjJCQEAQEB2LVrF/r376/3mhkzZiAqKkpXvn37NgICApCamlohX25zk5eXBz8/P6SlpcHFxaWym2OS+BmVjp9P6fj5PB0/o9Ll5ubC398fNWrUqOymVAgPDw9YW1vLes0yMzNlvWXFvL299Z5vY2ODmjVrGq2tT1OpSdr48ePxyiuvlHpOYGCgavfz8fFBQEAALl68+MRznjQI0dXVlX/5S+Hi4sLP5yn4GZWOn0/p+Pk8HT+j0llZmc2CDgaxs7NDcHAwYmNj0a9fP119bGws+vbtq/ea0NBQ/PDDD5K6mJgYhISEVNp4NKCSkzQPDw94eHhU2P2ys7ORlpZWac+WiYiIyPiioqIQERGBkJAQhIaGYv369UhNTcWYMWMAPHpqdv36dWzevBkAMGbMGKxatQpRUVEYPXo0EhMTsWHDBnz11VeV+TbMZ0xaamoqcnJykJqaCo1Gg5MnTwIA6tevDycnJwBA48aNsXjxYvTr1w93797FvHnzMGDAAPj4+ODKlSt455134OHhIcmsiYiIqGoZNGgQsrOzsWDBAqSnp6N58+bYvXs3AgICAADp6emSNdOCgoKwe/duTJ48GZ988gl8fX2xcuXKSl1+AzCjJG3OnDn4/PPPdeU2bdoAAPbt24fOnTsDAM6fP6+bjWltbY3Tp09j8+bNuH37Nnx8fNClSxds27YNzs7OZb6vvb095s6d+8SJBpaOn8/T8TMqHT+f0vHzeTp+RqWz1M9n7NixGDt2rN7X9C3n1alTJ5w4ccLIrSofQbTUreWJiIiITJhljCIkIiIiMjNM0oiIiIhMEJM0IiIiIhPEJI2IiIjIBDFJK+HKlSuIjIxEUFAQHB0dUa9ePcydO/ep+5CJooh58+bB19cXjo6O6Ny5M86cOVNBra5YixYtQvv27VGtWjW4ubmV6ZoRI0ZAEATJ0a5dO+M2tJIo+Xws6fsDALdu3UJERARcXV3h6uqKiIgI3L59u9RrqvJ3aPXq1QgKCoKDgwOCg4Nx4MCBUs+Pj49HcHAwHBwcULduXaxdu7aCWlp5yvMZxcXFyb4rgiDg3LlzFdjiirN//368+OKL8PX1hSAI+O677556jSV+h8wRk7QSzp07B61Wi3Xr1uHMmTNYsWIF1q5di3feeafU65YtW4bly5dj1apVOHbsGLy9vdG9e3fcuXOnglpecQoKCjBw4EC88cYb5bquZ8+eSE9P1x27d1fN/VCVfD6W9P0BgCFDhuDkyZPYs2cP9uzZg5MnTyIiIuKp11XF79C2bdswadIkzJw5E8nJyQgLC0OvXr0kazg9LiUlBb1790ZYWBiSk5PxzjvvYMKECdixY0cFt7zilPczKnb+/HnJ96VBgwYV1OKKde/ePbRq1QqrVq0q0/mW+B0yWyI91bJly8SgoKAnvq7VakVvb29xyZIlurqHDx+Krq6u4tq1ayuiiZVi48aNoqura5nOHT58uNi3b1+jtsfUlPXzsbTvz9mzZ0UA4uHDh3V1iYmJIgDx3LlzT7yuqn6Hnn32WXHMmDGSusaNG4vTp0/Xe/60adPExo0bS+pef/11sV27dkZrY2Ur72e0b98+EYB469atCmidaQEgfvvtt6WeY4nfIXPFnrQyyM3NLXVj2pSUFGRkZCA8PFxXZ29vj06dOiEhIaEimmgW4uLi4OnpiYYNG2L06NHIzMys7CaZBEv7/iQmJsLV1RVt27bV1bVr1w6urq5Pfb9V7TtUUFCA48ePS/7sASA8PPyJn0ViYqLs/B49eiApKQmFhYVGa2tlUfIZFWvTpg18fHzQrVs37Nu3z5jNNCuW9h0yZ0zSnuLSpUv4+OOPdft96ZORkQEA8PLyktR7eXnpXrN0vXr1wtatW/Hrr7/iww8/xLFjx9C1a1fk5+dXdtMqnaV9fzIyMuDp6Smr9/T0LPX9VsXvUFZWFjQaTbn+7DMyMvSeX1RUhKysLKO1tbIo+Yx8fHywfv167NixAzt37kSjRo3QrVs37N+/vyKabPIs7TtkziwmSZs3b57egaSPH0lJSZJrbty4gZ49e2LgwIEYNWrUU+8hCIKkLIqirM5UKfl8ymPQoEF4/vnn0bx5c7z44ov46aefcOHCBezatUvFd2E8xv58APP+/gDl+4z0va+nvV9z/w6Vprx/9vrO11dflZTnM2rUqBFGjx6NZ555BqGhoVi9ejWef/55fPDBBxXRVLNgid8hc2Q2e3caavz48XjllVdKPScwMFD3840bN9ClSxeEhoZi/fr1pV7n7e0N4NFvJz4+Prr6zMxM2W8rpqq8n4+hfHx8EBAQgIsXL6oW05iM+flUhe8PUPbP6NSpU7h586bstb/++qtc79fcvkP6eHh4wNraWtYjVNqfvbe3t97zbWxsULNmTaO1tbIo+Yz0adeuHbZs2aJ288ySpX2HzJnFJGkeHh7w8PAo07nXr19Hly5dEBwcjI0bN8LKqvQOx6CgIHh7eyM2Nla38XtBQQHi4+OxdOlSg9teEcrz+aghOzsbaWlpkqTElBnz86kK3x+g7J9RaGgocnNzcfToUTz77LMAgCNHjiA3Nxft27cv8/3M7Tukj52dHYKDgxEbG4t+/frp6mNjY9G3b1+914SGhuKHH36Q1MXExCAkJAS2trZGbW9lUPIZ6ZOcnGzW3xU1Wdp3yKxV4qQFk3T9+nWxfv36YteuXcVr166J6enpuuNxjRo1Enfu3KkrL1myRHR1dRV37twpnj59Whw8eLDo4+Mj5uXlVfRbMLqrV6+KycnJ4vz580UnJycxOTlZTE5OFu/cuaM75/HP586dO+Jbb70lJiQkiCkpKeK+ffvE0NBQsXbt2vx8/mZJ3x9RFMWePXuKLVu2FBMTE8XExESxRYsW4gsvvCA5x1K+Q19//bVoa2srbtiwQTx79qw4adIksXr16uKVK1dEURTF6dOnixEREbrzL1++LFarVk2cPHmyePbsWXHDhg2ira2t+M0331TWWzC68n5GK1asEL/99lvxwoUL4u+//y5Onz5dBCDu2LGjst6CUd25c0f3/xkA4vLly8Xk5GTx6tWroijyO2TOmKSVsHHjRhGA3uNxAMSNGzfqylqtVpw7d67o7e0t2tvbix07dhRPnz5dwa2vGMOHD9f7+ezbt093zuOfz/3798Xw8HCxVq1aoq2trejv7y8OHz5cTE1NrZw3YGTl/XxE0bK+P6IoitnZ2eLQoUNFZ2dn0dnZWRw6dKhsuQRL+g598sknYkBAgGhnZyc+88wzYnx8vO614cOHi506dZKcHxcXJ7Zp00a0s7MTAwMDxTVr1lRwiyteeT6jpUuXivXq1RMdHBxEd3d38bnnnhN37dpVCa2uGMVLjpQ8hg8fLooiv0PmTBDFv0cLEhEREZHJsJjZnURERETmhEkaERERkQlikkZERERkgpikEREREZkgJmlEREREJohJGhEREZEJYpJGREREZIKYpBERERGZICZpRERERCaISRoRERGRCWKSRkRERGSCmKQRUYX766+/4O3tjffee09Xd+TIEdjZ2SEmJqYSW0ZEZDq4wToRVYrdu3fjpZdeQkJCAho3bow2bdrg+eefR3R0dGU3jYjIJDBJI6JKM27cOPz888/4xz/+gd9++w3Hjh2Dg4NDZTeLiMgkMEkjokrz4MEDNG/eHGlpaUhKSkLLli0ru0lERCaDY9KIqNJcvnwZN27cgFarxdWrVyu7OUREJoU9aURUKQoKCvDss8+idevWaNy4MZYvX47Tp0/Dy8ursptGRGQSmKQRUaWYOnUqvvnmG/z2229wcnJCly5d4OzsjB9//LGym0ZEZBL4uJOIKlxcXByio6PxxRdfwMXFBVZWVvjiiy9w8OBBrFmzprKbR0RkEtiTRkRERGSC2JNGREREZIKYpBERERGZICZpRERERCaISRoRERGRCWKSRkRERGSCmKQRERERmSAmaUREREQmiEkaERERkQlikkZERERkgpikEREREZkgJmlEREREJuj/ASmv/4nFtIL7AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 700x700 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"p = ax.imshow(numer / denom, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"fig.colorbar(p, ax=ax, shrink=0.8, label=\"fraction of sampled points in Mandelbrot set in each tile\")\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "04334363-0c57-42c8-8880-fc19d41555d1",
"metadata": {},
"source": [
"As an aside, the calculation of Mandelbrot area in each tile is independent, but if you're going to sample them in parallel, you need to have a team of non-overlapping random number generators."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "0c9a0c91-a3af-489a-b712-d3809cf7b25b",
"metadata": {},
"outputs": [],
"source": [
"rngs = rng.spawn(NUM_TILES_1D * NUM_TILES_1D)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "5e2aafb5-9ce3-4a84-9b64-defece20a7dd",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit(parallel=True)\n",
"def compute_parallel(rngs, numer, denom):\n",
" for i in nb.prange(NUM_TILES_1D):\n",
" for j in nb.prange(NUM_TILES_1D):\n",
" rng = rngs[NUM_TILES_1D * i + j]\n",
"\n",
" denom[i, j] = 100\n",
" numer[i, j] = count_mandelbrot(rng, denom[i, j], xmin(j), width, ymin(i), height)\n",
"\n",
"numer = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)\n",
"denom = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)\n",
"\n",
"compute_parallel(rngs, numer, denom)"
]
},
{
"cell_type": "markdown",
"id": "20644752-8e01-4ce4-8328-b6322da92fdc",
"metadata": {},
"source": [
"The way we sampled it above, every tile has the same denominator."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "bae45f8e-dea4-48da-b486-5712cb63154c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(denom == 100).all()"
]
},
{
"cell_type": "markdown",
"id": "86f521e3-7f34-4225-8d9d-7eac927e3250",
"metadata": {},
"source": [
"But the tiles that are nearly 0% or nearly 100% have less uncertainty than the tiles along the rough (fractal) edge."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "3cbc2954-0ee1-4bfc-88b4-a29aad2a1a87",
"metadata": {},
"outputs": [],
"source": [
"CONFIDENCE_LEVEL = 0.05\n",
"\n",
"confidence_interval_low = np.nan_to_num(beta.ppf(CONFIDENCE_LEVEL/2, numer, denom - numer + 1), nan=0) * width * height\n",
"confidence_interval_high = np.nan_to_num(beta.ppf(1 - CONFIDENCE_LEVEL/2, numer + 1, denom - numer), nan=1) * width * height"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "e9ce7002-b27c-4d04-abce-4a574718ec08",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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cunj6FI//vgj/P39jYpdbRJGIqJnFecrEtGzoGzCWNYnn3xidGwmjERERCQvubfC4SNpk6s2i16IiIiISLczZ85g1KhRcHd3R506dVC3bl20b98ec+fORV5entFxmTASERGRvNSVcFCFfv75Z/j6+uL+/fvo0qULzMzMMHbsWLz++uvYtm0bOnfurHkTnqGYMBIREZGsSldJy3lQxWbMmIHly5cjLi4O//nPf7Bz507s378fS5cuxYULF9C8eXPMnDnTqNhMGImIiIhqgEuXLqFv376a8muvvYZr164hIyMDlpaWmDdvHvbu3WtUbCaMREREJC++S9okmjRpgsuXL2vK165dg1qthoODAwDg+eefF73wxBBcJU1ERERUA4waNQoTJkzA7NmzYW1tjeXLl2PgwIGwsrICAKSkpMDNzc2o2EwYiYiISF7cVsckZs2ahYcPH+LDDz9Efn4++vTpg88++0zz8yZNmmDt2rVGxWbCSERERPJiwmgSFhYWiIqKQlRUlNafv/zyy0bH5hxGIiIiItKJI4xEREQkLzUAhczxyKQ4wkhEREREOnGEkYiIiGQl92bb3Ljb9DjCSERERPLiPoxVrmHDhsjOzgYAjBs3Dvfv35c1PhNGIiIiomquoKAAeXl5AIBvvvkGjx8/ljU+H0kTERGRvNQCoJBxVFDNEcaK+Pr6YtCgQfDy8oIgCJgyZQrq1Kmjte3GjRsNjs+EkYiIiKia27p1K1asWIFr165BoVAgNzdX1lFGJoxEREQkL27cXeWcnJywdOlSAICbmxu2bNmieYe0HJgwEhEREdUgqampssfkohciIiKSmdwrpDnCaKikpCQMGDAALVu2hIeHBwYOHIhDhw4ZHY8JIxEREcmL2+qY1NatW/Haa6/B1tYWU6ZMweTJk1GnTh306tUL//nPf4yKyUfSRERERDXIokWL8PHHHyM8PFxTN3XqVCxfvhwffvghRo4caXBMjjASERGRvNSC/Afp7a+//sKAAQMk9QMHDjR6fiMTRiIiIqIapGnTpjhw4ICk/sCBA2jatKlRMflImoiIiOQlqEsOOeOR3t5//31MmTIFKSkp8PPzg0KhwOHDhxEdHY3PPvvMqJhMGImIiEhe3IfRpN59910olUp8+umn+P777wEAbdq0QUxMDAIDA42KyYSRiIiIqIYZPHgwBg8eLFs8JoxE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CfXq1RPq1asn/N///Z9kC5Ta9B364osvBFdXV8HKykro3LmzkJSUpPnZ6NGjhe7du4vaHzx4UOjUqZNgZWUlNG/eXFi7dm0V97jqGXKPoqKihBYtWgg2NjZCgwYNhFdeeUXYu3evCXpdNUq3ESp7jB49WhAEfodIHgpB+N9MVyIiIiIiLWrNKmkiIiIiMg4TRiIiIiLSiQkjEREREenEhJGIiIiIdGLCSEREREQ6MWEkIiIiIp2YMBIRERGRTkwYiYiIiEgnJoxEREREpBMTRiIiIiLSiQkjEREREenEhJGIqtzff/8NpVKJxYsXa+qOHz8OKysrJCQkmLBnRESkjUIQBMHUnSCi2ic+Ph6DBg3C0aNH0bp1a3Tq1Amvv/46Vq5caequERFRGUwYichk/vWvf2H//v146aWXcObMGZw4cQI2Njam7hYREZXBhJGITOaff/5Bu3btkJ6ejpMnT+LFF180dZeIiEgLzmEkIpP566+/cPv2bajVaty4ccPU3SEionJwhJGITKKgoAAvv/wyOnbsiNatW2P58uU4d+4cnJycTN01IiIqgwkjEZnEv//9b2zfvh1nzpxB3bp10bNnT9SrVw979uwxddeIiKgMPpImoip38OBBrFy5Elu2bIGdnR3MzMywZcsWHD58GGvXrjV194iIqAyOMBIRERGRThxhJCIiIiKdmDASERERkU5MGImIiIhIJyaMRERERKQTE0YiIiIi0okJIxERERHpxISRiIiIiHRiwkhEREREOjFhJCIiIiKdmDASERERkU5MGImIiIhIp/8Hdb4eeP7kHykAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 700x700 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"p = ax.imshow(confidence_interval_high - confidence_interval_low, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"fig.colorbar(p, ax=ax, shrink=0.8, label=\"size of 95% confidence interval (in units of area) of each tile\")\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "83287378-2bd2-4d28-8bc8-70d7f5220c76",
"metadata": {},
"source": [
"Instead of a constant denominator, let's keep adding points until the uncertainty in a tile gets below a target threshold.\n",
"\n",
"Since this uncertainty is only used to decide whether to add more points, we can use an approximation (biased [Wald interval](https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Problems_with_using_a_normal_approximation_or_%22Wald_interval%22)):\n",
"\n",
"$$ \\mbox{uncertainty} \\approx \\left\\{\\begin{array}{c l}\n",
"\\displaystyle\\sqrt{\\frac{\\frac{n + 1}{d + 1} \\left(1 - \\frac{n + 1}{d + 1}\\right)}{d + 1}} & \\mbox{if } n = 0 \\\\\n",
"\\displaystyle\\sqrt{\\frac{\\frac{n}{d + 1} \\left(1 - \\frac{n}{d + 1}\\right)}{d + 1}} & \\mbox{if } n = d \\\\\n",
"\\displaystyle\\sqrt{\\frac{\\frac{n}{d} \\left(1 - \\frac{n}{d}\\right)}{d}} & \\mbox{otherwise} \\\\\n",
"\\end{array}\\right. $$\n",
"\n",
"where $n$ is `numer` and $d$ is `denom`. (This prevents the uncertainty from being zero if $n = 0$ or $n = d$ by imagining that if we had taken one more sample, it would have broken the perfect streak. This is ad-hoc, but it's the right scale, which is what we need to know to decide whether more samples are needed.)\n",
"\n",
"Even with this simplified estimator of uncertainty, we'll want to compute batches so that we spend more time calculating Mandelbrot points than asking, \"Are we there yet?\""
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "75e1ebf0-b71b-4999-bd08-fc8e9e4dc4a9",
"metadata": {},
"outputs": [],
"source": [
"@nb.jit\n",
"def wald_uncertainty(numer, denom):\n",
" if numer == 0:\n",
" numer = 1\n",
" denom += 1\n",
" elif numer == denom:\n",
" denom += 1\n",
"\n",
" frac = numer / denom\n",
"\n",
" return np.sqrt(frac * (1 - frac) / denom)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "761397b1-bea6-49e5-aa74-3bdb481004ca",
"metadata": {},
"outputs": [],
"source": [
"SAMPLES_IN_BATCH = 100\n",
"\n",
"@nb.jit(parallel=True)\n",
"def compute_until(rngs, numer, denom, uncert, uncert_target):\n",
" for i in nb.prange(NUM_TILES_1D):\n",
" for j in nb.prange(NUM_TILES_1D):\n",
" rng = rngs[NUM_TILES_1D * i + j]\n",
"\n",
" uncert[i, j] = np.inf\n",
"\n",
" while uncert[i, j] > uncert_target:\n",
" denom[i, j] += SAMPLES_IN_BATCH\n",
" numer[i, j] += count_mandelbrot(rng, SAMPLES_IN_BATCH, xmin(j), width, ymin(i), height)\n",
"\n",
" uncert[i, j] = wald_uncertainty(numer[i, j], denom[i, j]) * width * height\n",
"\n",
"numer = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)\n",
"denom = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.int64)\n",
"uncert = np.zeros((NUM_TILES_1D, NUM_TILES_1D), dtype=np.float64)\n",
"\n",
"compute_until(rngs, numer, denom, uncert, 1e-6)"
]
},
{
"cell_type": "markdown",
"id": "cc14e3ab-104b-4026-8b2f-48f8a6669d6d",
"metadata": {},
"source": [
"Now we've ensured that all of the tile uncertainties are at the scale of `uncert_target` or below (roughly, since we're using an approximation)."
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "6c71ed48-790e-47ed-9809-998217ab6e2f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x700 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"p = ax.imshow(uncert, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"fig.colorbar(p, ax=ax, shrink=0.8, label=\"area uncertainty estimate of each tile\")\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "9f6a846f-2deb-481f-bdcf-7af6d7ef76fd",
"metadata": {},
"source": [
"The denominators needed to do this vary considerably from one tile to the next."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "a87e67bf-3b0e-4f31-8c78-0eacd72d31dc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAAH2CAYAAADziX2WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABxa0lEQVR4nO3de1hU1d4H8O+IMKDJiCIMY4hYihp4gxK0QjO5pJiXoxVFUsapV5MMybKOZZZa5i21LM2klLJTZmUageYlE7wQlJihFQoqiCkO4oXLzH7/4DC52Mhl2DM48P08z34Oa+21116zz4Q/1m2rJEmSQERERET0P62augFEREREdGNhgEhEREREAgaIRERERCRggEhEREREAgaIRERERCRggEhEREREAgaIRERERCRggEhEREREAgaIRERERCRggEhEREREApsKEHfv3o2IiAjodDqoVCp89dVXtZbfuXMnVCqV7Pj999+t02AiIiIiG9S6qRvQEJcuXULfvn3x2GOPYdy4cfW+Ljs7G87OzqZ0p06dLNE8IiIiombBpgLE8PBwhIeHN/g6Nzc3tG/fXvkGERERETVDNhUgmqt///64evUqevfujf/85z8YOnTodcuWlpaitLTUlDYajTh//jw6duwIlUpljeYSEREpRpIkXLx4ETqdDq1a2dTMMmpCzTpA9PDwwKpVq+Dv74/S0lKsW7cOw4YNw86dO3H33XfXeM38+fPx6quvWrmlRERElpWXl4ebb77Z4ve5evUqysrKFK/XwcEBjo6OitdLNVNJkiQ1dSPMoVKpsGnTJowePbpB10VEREClUuGbb76p8Xz1HkS9Xo8uXbrgTtyH1rBvTJOJiIisrgLl2IOtuHDhAjQajUXvdfXqVXh73YSCQoPidWu1WuTk5DBItJJm3YNYk8DAQKxfv/6659VqNdRqtSy/NezRWsUAkYiIbMz/uoGsMU2qrKwMBYUGnEjvCud2yg1nF180wsv/OMrKyhggWkmLm4yQkZEBDw+Ppm4GERFRs3VTO5XiR33Nnz8ft99+O9q1awc3NzeMHj0a2dnZQhlJkjB79mzodDo4OTlhyJAhOHz4sFCmtLQUU6dOhaurK9q2bYtRo0bh5MmTQpmioiJERUVBo9FAo9EgKioKFy5cEMrk5uYiIiICbdu2haurK2JjY2VD8IcOHUJwcDCcnJzQ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",
"text/plain": [
"<Figure size 700x700 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(7, 7))\n",
"\n",
"p = ax.imshow(denom, extent=[-2, 1, -3/2, 3/2])\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"fig.colorbar(p, ax=ax, shrink=0.8, label=\"number of points sampled each tile\")\n",
"\n",
"None"
]
},
{
"cell_type": "markdown",
"id": "d82af2f4-18fb-4ecf-87ec-67367c0d1577",
"metadata": {},
"source": [
"The final result can be derived from the individual numerators and denominators."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "dcec38f8-c541-4acb-8b04-2efb83b4468e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.5065911487928052"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final_value = (np.sum((numer / denom)) * width * height).item()\n",
"final_value"
]
},
{
"cell_type": "markdown",
"id": "1c1147cf-9ad6-43c9-b0cd-58a10e79f477",
"metadata": {},
"source": [
"We can use full, high-precision confidence intervals in the final result.\n",
"\n",
"See the section on stratified sampling in [this reference](http://www.ff.bg.ac.rs/Katedre/Nuklearna/SiteNuklearna/bookcpdf/c7-8.pdf) for how to combine uncertainties in each cell into a total uncertainty."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "a9419ebd-1601-474b-bcdf-101adb63188a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.5704245117691128e-06"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CONFIDENCE_LEVEL = 0.05\n",
"\n",
"confidence_interval_low = np.nan_to_num(beta.ppf(CONFIDENCE_LEVEL/2, numer, denom - numer + 1), nan=0) * width * height\n",
"confidence_interval_high = np.nan_to_num(beta.ppf(1 - CONFIDENCE_LEVEL/2, numer + 1, denom - numer), nan=1) * width * height\n",
"\n",
"final_uncertainty = (np.sum(confidence_interval_high - confidence_interval_low) / np.sqrt(4 * np.sum(denom))).item()\n",
"final_uncertainty"
]
},
{
"cell_type": "markdown",
"id": "69dd7786-6db6-4909-b576-22cf10992131",
"metadata": {},
"source": [
"Your task is to implement this on GPUs and scale it to many computers.\n",
"\n",
"Your result, at the end of this exercise, may be the world's most precise estimate of a fundamental mathematical quantity."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment