**ECSE 343: Numerical Methods in Engineering** *Assignment 0: _Floating Point and Vectorized Python_* Due: Thursday, January 20th, 2022 at 11:59pm EST on [myCourses](https://mycourses2.mcgill.ca/) Final weight: __0%__ + 5% bonus ![
image courtesy of www.smbc-comics.com/
index.php?db=comics&id=2999
][fp-joke.jpg width="270px" border="1"] # Assignment Policies and Submission Process Download and modify the standalone `Python` script we provide on *myCourses*, renaming the file according to your student ID as `[YourStudentID]`.py For example, if your id is **234567890**, your submission filename should be **234567890.py** and should include all the solutions you plan to submit for this assignment, according to the instructions below. !!! Tip: Every time you submit a new file, your previous submission will be overwritten. We will only grade the **final submitted file**, so feel free to submit often as you progress through the assignment. ## Late policy All the assignments are to completed individually, unless stated otherwise. You are expected to respect the [late policy](https://www.cim.mcgill.ca/~derek/ecse343.html#AssignmentLatePolicy) and [collaboration/plagiarism](https://www.cim.mcgill.ca/~derek//ecse343.html#collaboration&plagiarism) polices. ## Installing `Python`, Libraries and Tools The assignments and group project are to be implemented using `Python 3.7` and the latest version of the `numpy` and `matplotlib` libraries. You are free to install and configure your development environment, including IDE choices, as you wish. One popular, more self-contained installation package that we recommend is the **Individual Edition** of the [Anaconda](https://www.anaconda.com/products/individual) software installer. After following your platform specific installation instructions, the Anaconda Navigator provides a simple graphical interface that allows you to: - define isolated development _environments_ with the appropriate `Python` version (3.7) - download and install the required libraries (`numpy` and `matplotlib`), including their dependencies, into the environment, and - [optionally] to pick between a variety of development IDEs. ## `Python` Language and Library Usage Rules `Python` is a powerful language, with many built-in features. You should feel free to explore the base language features and apply them as a convenience, whenever necessary. A good example is that, if you need to sort values in a list before plotting them, you should feel free to use the built-in `sort` function rather than implementing your own sorting algorithm (although, that's perfectly fine, too!): ~~~python myFavouritePrimes = [11, 3, 7, 5, 2] # In ECSE 343, learning how to sort a list is NOT a core learning objective myFavouritePrimes.sort() # 100% OK to use this! print(myFavouritePrimes) # Output: [2, 3, 5, 7, 11] ~~~ We will, however, draw exceptions to the use of (typically external) library routines that allow you to shortcut through the _core learning objective(s)_ of an assignment. For example, if we ask you to develop a linear solver and apply it to a problem, and you instead rely on calling one of `numpy`'s built-in solvers, you will be penalized. When in doubt as to whether a library (or even a built-in) routine is "safe" to use in your solution, please **contact the TA**. !!! Tip: Python 3.7 has a built-in convenience `breakpoint()` function which will break code execution into a debugger, where you can inspect variables in the debug REPL and even execute code! This is a very powerful was to test your code _as it runs_ and to tinker (e.g., inline in the REPL) with the function calling conventions and input/output behaviour of code. Be careful, as you can change the execution state (i.e., the debug environment is not isolated from your scripts execution stack and heap), if you insert REPL code and then continue the execution of your script from the debugger. To help, the (purposefully minimal) base code we provide you with includes a superset of all the library `import`s we could imagine you using for the assignment. !!! ERROR: You must not use any additional `import`s for your solution, other than the ones provided by us. Doing so will result in a score of **zero (0%)** on the assignment. ~~~python import matplotlib.pyplot as plt # for plotting import numpy as np # all of numpy, at least for this assignment ~~~ As you may have noticed, this course will rely _heavily_ on `numpy` -- in fact, you'll likely learn just as much about the power (and peculiarities) of the `Python` programming language as you will about the `numpy` library. This library not only provides convenience routines for matrix, vector and higher-order tensor operations, but also allows you to leverage high-performance vectorized operations if you're careful about restructuring your data/code in a vectorizable form. This assignment will briefly expose you to some of these nuances; those of you with `MATLAB` experience will find this coding paradigm familiar, but also a little painful, since many foundational conventions are different (e.g., 0- versus 1-indexing, column- vs. row-major default behaviours, broadcasting conventions, etc.) ## Let's get started... but let's also not forget... With these preliminaries out of the way, we can dive into the assignment tasks. **Future assignment handouts will not include these preliminaries, although they will continue to hold true.** Should you forget, they will remain online in this handout for your reference throughout the semester. # Floating point number systems Any *floating point number system* can be characterized by four parameters, $(\beta,\, t,\, L,\, U)$, where * $\beta$ is the _base_ of the number system, * $t$ is its _precision_ (i.e., number of significant digits), * $L$ is the lower bound on the exponent $e$, and * $U$ is the upper bound on the exponent $e$. Given an instance of any such system, we can express a real number $x$ in its floating point representation $\mathrm{fl}(x)$ as: $$\mathrm{fl}(x) \equiv \underbrace{\pm}_{\text{sign}}\displaystyle\left( \underbrace{\frac{{d}_0}{\beta^0} + \frac{{d}_1}{\beta^1} + \cdots +\frac{{d}_{t-1}}{\beta^{t-1}} }_{\text{mantissa}} \right)\times\underbrace{\beta^e}_{\text{exponent}}$$ where the base $\beta$ is an integer greater than 1, the exponent $e$ is an integer between $L$ and $U$ (inclusive, i.e., $L \leq e \leq U$) and the digits ${d}_i$ are integers in the range $0\le {d}_i\leq\beta-1$. The number $\mathrm{fl}(x)$ is usually an approximation of $x$, unless it happens to fall on one of the (relatively few) numbers that can be _perfectly represented_ in the floating point system. For any non-zero value, we normally force ${d}_0 \neq 0$ by adjusting the *exponent* $e$ so that leading zeros are dropped. As such, the smallest (in magnitue) perfectly representable _non-zero_ number has a mantissa of $(1.0 \cdots 0)_{\beta}$. \newpage ## Fictitious Floating Point Systems Let's get a better sense of how far removed representable floating point numbers can get from real numbers. !!! warning: **Deliverable 1 [20%]**
Complete the implementation of the function `FloatSystem` that returns a 1D `numpy.array` of all the *perfectly representable numbers* (in base 10) for a given floating point number system. You can safely ignore the `NaN` and $\pm \infty$ cases, and explicitly add `0` to your representable numbers output (i.e., without having to treat any special case exponent settings). Here's a code snippet with an example visualization of the expected output of this function for a fictitious floating point system with $\beta = 2$, $t = 2$, $L = -1$ and $U = 2$. Any real numbers that don't fall _exactly_ on the stars in the plot below cannot be _perfectly_ represented in this fictitious floating point number system. ~~~python # Plot an asterisk at each perfectly representable value along the real line plt.title('Perfectly representable numbers for the $(2,2,-1,2)$ floating point system') tmp = FloatSystem(2, 2, -1, 2) plt.plot(tmp, zeros(tmp.shape[0]), '*') plt.yticks([]) plt.show() ~~~ ![The perfectly representable real numbers in a fictitious floating point system example.][fictitious-float.png] # Vectorizing `Python` with `numpy` Writing numerical code requires balancing several (sometimes competing) design parameters: correctness of the code, numerical stability (i.e., in the floating point sense of the word), and the efficiency and scalability of the code are among these parameters. `Python` is undoubtedly a flexible and powerful language, affording numerical software developers with many tools to tackle their modeling and simulation tasks -- however, as an interpreted language, `Python`'s performance cannot compete with lower-level optimized code generated from, e.g., a compiler. Luckily, `Python` allows for callable modules and libraries that need not be implemented in `Python` but rather in any number of higher performance compiled languages. Moreover, `Python`'s vast ecosystem of specialized libraries often comprise high-performance compiled backends: in this sense, `Python` serves just as much as a high-level "glue" language as it does as a standalone one. For numerical computation, `numpy` is one such library that is implemented in highly-optimized machine code. When used appropriately, numerical code implemented in a manner that leverages `numpy`'s ability to efficiently perform data-parallel operations over **vectors** and **higher-order tabular data** can be _several orders of magnitude_ more efficient than its `Python`-only equivalent. One could easily teach an entire course on how to write efficient `numpy` code, and that is not the main goal of ECSE 343; however, learning to _think_ about numerical operations in _vectorized_ form whenever appropriate will open up the opportunity for cleaner, more readable and (much) more efficient code. ## Slicing and dicing `numpy.array`s Multi-dimensional arrays are fundamental data structures in numerical computation, and `numpy` implements sophisticated indexing schemes that respect specialized [broadcasting rules](https://numpy.org/doc/stable/user/basics.broadcasting.html), in addition to treating multi-dimensional arrays as first-class objects in all the library's exposed functions. The next deliverable will give you a brief sense of the power and flexibility of _some_ of `numpy`'s indexing notation. It is not meant, by any means, to be comprehensive; instead, the learning goal here is to open the door to your independent exploration of `numpy` in order to facilitate implementation tasks, e.g., in future assignments. !!! warning: **Deliverable 2 [20%]**
_This is a written answer-only deliverable: answer these questions using `Python` comments (i.e., not code) in your submission `.py` file. Feel free to experiment with indexing schemes using the `Python` REPL or the `__main__`, in support of your written answers (i.e., do not regurgitate online documentation but, rather, run tiny code snippets to support any understanding you gain with the support of online documentation.)_ Answer the questions below given two `numpy.array` variables, the first (**`a`**) has a `shape` of `(3,)` and the second (**`b`**) has a `shape` of `(4,5)`: 1. What do **`b[0:3]`** and **`b[:, 0:3]`** do? 2. Why does **`b[:,:] = b[1,:]`** work and how would you make **`b[:,:] = b[:,1]`** work? _Hint:_ one of the more elegant solutions relies on using `None`. 3. Write a one-line `Python`/`numpy` expression that returns a `numpy.array` with `shape` of `(5,)` with elements **`[a[0], a[1], a[2], a[0], a[1]]`**, but without this explicit parameter list (i.e., your answer should __not__ be **`numpy.array([a[0], a[1], a[2], a[0], a[1]])`** but should use an indexing expression on **`a`**.) _Hint_: one of the many valid ways to do this requires using a `Python` _list comprehension_. 4. How are the outputs of **`a[2]`**, **`a[[2]]`** and **`a[:2,np.newaxis]`** different? 5. Why is **`a[a % a.shape[0]]`** guaranteed to work whereas **`a[a]`** may not? Without coming anywhere close to exhaustively enumerating effecient `numpy` coding practices, to first-order approximation, the following advice is a good place to start: - avoid `for` loops by restructuring data (if needed) into (potentially high-dimension) `numpy.array`s, and then performing operations _across_ subsets of the data, - map and reduce strategies, often applied across `numpy.array` dimensions are a common strategy, and - leverage `numpy`'s many built-in vectorized conditional, mathematical, and logical utility functions. ## Avoiding `for` loops !!! warning: **Deliverable 3 [20%]**
Perhaps the simplest example of a vectorizable mathematical operation is the computation of the scalar dot product of two 1D vectors. Complete the implementation of the `SlowDotProduct` and `FastDotProduct` functions, both of which accept two 1D `numpy.array`s (you can assume they have equal shape) and returns the scalar dot product of the two vectors. The `SlowDotProduct` routine should not use any `numpy` utility functions and, instead, rely on `Python` language math operators and `for` loops. The `FastDotProduct` function should instead use the full functionality of `numpy`. # Computer arithmetic Let's learn about errors due to floating point number representations, using simple numerical algorithms as examples. !!! INFO: In `Python`, unlike other languages like C/C++/Java, any expression containing an integer and floating point arithmetic is automatically cast to the highest precision (64-bit) floating point representation to favour precision over efficiency. While `Python` itself is a loosely typed language, `numpy` has explicit facilities to force underlying numerical type representations, such as `numpy.float64` and `numpy.float32` for double- and single-precission floating point values. ## Catch the `NaN` In the IEEE floating point standard, `NaN`s are "infectious". You can use the `Python` REPL to explore how `NaN`s behave with different arithmetic, inequality and logical operations. To do so, you can use `numpy`'s `NaN` as `nan = np.float64("nan")` and then tinker with expressions like, e.g., `nan < 4` or `nan == nan` or `3 + nan`, etc. !!! warning: **Deliverable 4 [20%]**
Tracking down a `NaN` in a numerical algorithm can sometimes be a real pain. You will implement a routine `CatchTheNaN` that identifies the source of a single spurious `NaN` in a very simple numerical algorithm. The function takes as input a single (potentially very large) 2D matrix $\mathbf{M}$ with many `NaN`s in it. Behind the scenes (i.e., before the function is called), it turns out that $\mathbf{M}$ was constructed as the **outer product** of two 1D column vectors $\mathbf{x}$ and $\mathbf{y}$, i.e., such that $\mathbf{M} = \mathbf{x} ~ \mathbf{y}^{\mathrm{T}}$ . Both $\mathbf{x}$ and $\mathbf{y}$ each have a _single_ `NaN` (i.e., in only one of their vector elements), and `CatchTheNaN` should return an `np.array` of shape `(2,)` of the indices of these `NaN`s, where element `[0]` is the index of the `NaN` in $\mathbf{x}$ and element `[1]` is the index of the `NaN` in $\mathbf{y}$. We will grade you on the correctness __and__ performance of your code, i.e., avoid using brute force search with `for` loops. ## Floating point errors There are many types of floating point error your numerical code will be susceptible to, some of which you can guard against... some of the time. Examples include * _catastrophic cancellation_ resulting in loss in significant digits when, e.g., * summing numbers with different scales, e.g., $10^{38} + 10^{-24}$, or * summing numbers with differences in low-precision bits, e.g., $1.38383\times 10^{38} - 1.38382\times 10^{38}$, * _round-off errors_ that accumulate, e.g., $\textstyle\sum_{i=0}^{10^{38}}1.0$, and * _overflow_ and _underflow_, e.g., $10^{24} \times 10^{50}$, to name a few. Consider the following concrete example: when evaluating the natural logarithm of the sum of $N$ exponentials of a set of values $x_i$, $$y = \log \displaystyle\left(\sum\limits_{i=1}^{N} \exp(x_i)\right)~,$$ the differences in the magnitude of the exponential terms of the summands may lead to overflow during accumulation, depending on the value of $N$. After careful mathematical manipulation, leveraging the properties of logarithms and exponentials, we can rewrite this equation as $$y = m + \log \displaystyle\left(\sum\limits_{i=1}^{N} \exp(x_i - m)\right)~,$$ where $m$ is the _maximum_ value among the $x_i$, $$m= \underset{i}{\operatorname{max}} x_i~.$$ This alternative mathematical formulation -- when implemented in a floating point system -- will be more stable to the variations in the scale of the exponential terms. !!! warning: **Deliverable 5 [20%]**
Implement and compare a naive version of this sum (in `LogSumExpNaive`) and a more numerically robust version (in `LogSumExpRobust`). Each function takes a single 1D `numpy.array` with a `shape` of `(N,)` as input and returns the scalar sum. You can use the `__main__` test suite to explore the differences in the outputs of these functions, particularly for large $N$ and/or $x_i$ elements in different ranges of minimum and maximum magnitude. Include a brief (i.e., one- to two-sentence long) comment in your solution implementation of `LogSumExpRobust` that explains _why_ this reformulation leads to more robust floating point calculations. \newpage # You're Done! Congratulations, you've completed the zeroth assignment. Review the submission procedures and guidelines at the start of the handout before submitting the `Python` script file with your assignment solution. [fictitious-float.png]: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADOCAYAAAAKagvFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAhGElEQVR4nO3deZyO9f7H8ffNLAwz1hn7FgpJhIjxm6YikZOUnawdU5TyqKSSCdGxnJKl0qJFSUqlqI5KcioSSodSlCwTYzdnaowx398fPWaOe7Z7u8b3vs3r+XjMo+Z2zff6fD/397qu99zbuIwxRgAAAIAFpWwXAAAAgJKLMAoAAABrCKMAAACwhjAKAAAAa4IqjL744otyuVy5X2FhYapdu7aGDRum/fv3O76/pUuX6uKLL1bZsmXlcrn07bffOjr+l19+qeTkZB0/ftzt9px57t6929H9wbPC7hNvJScny+Vy6fDhwx63LQn3sy/9sK24j/ezFbXOznXPJk+erGbNmik7O1uS9Omnn2r48OFq0qSJypUrp1q1aumGG27Qpk2b/Brf6fGclJaWpvvuu09dunRRbGysXC6XkpOT/RrLl3k+//zzqlWrltLT070ev6D1eS7OISXlOhXIfAK9bhSnYK7NF0EVRnMsWrRIX331lVavXq1bb71VS5YsUadOnXw6sD05dOiQBg8erIYNG+rDDz/UV199pQsvvNCx8aW/FskjjzwS8ovkfMJ9UjKdi+P9bMGyzlJSUjRjxgxNnjxZpUr9dbp/6qmntHv3bo0dO1arVq3SnDlzlJqaqvbt2+vTTz/1eR9Oj+ekI0eOaOHChTp16pR69uwZ0Fi+zHPIkCEqV66cZsyY4dXY53p9nq2wtdq9e3d99dVXqlGjxjmpo7gFMp9gOZ4LEsy1+SLMdgEFad68udq0aSNJSkxM1JkzZzRlyhS98847GjhwYEBj//HHH4qKitJPP/2k06dPa9CgQUpISHCi7KCSM8/zdX8oWQJdX8VxvIfCmp8zZ44qVqyoXr165d42f/58xcXFuW3XtWtXNWrUSNOmTdNVV13l0z6cHs9J9erV07Fjx3IfiX7uuef8HsuXeYaFhWnUqFGaMmWKxo8f73GdBOP1KDY2VrGxsbbLcMz5Np/zTVA+MppX+/btJUm//fZb7m0///yzBgwYoLi4OEVGRqpp06aaP3++28/lPB22efNm3XzzzapUqZIaNmyooUOHKj4+XpLUt29fuVwuXXnllT6NLUk//vij+vfvr2rVqikyMlJ169bVLbfcolOnTik5OVn33nuvJKlBgwa5Lz347LPP8o2zbt06uVwuLVmyJN+/vfzyy3K5XNq4cWOh/Slsnv70asuWLerVq5diYmJUoUIFDRo0SIcOHXJ8f4cOHdLf//531alTR5GRkYqNjVXHjh318ccfu23nS+3btm1T//79VaFCBVWrVk3Dhw/XiRMn3LYr7D7ZuXOnhg0bpsaNGysqKkq1atVSjx499P333xfY871793rsU2G8XV95eTtPSRo6dKjq169f6Bh5v9+6dat69+6tChUqqHLlyho3bpyysrK0Y8cOde3aVdHR0apfv36hj/R4249AjlvJ+3WTtxdFHe///ve/dfXVVys6OlpRUVHq0KGDVq5c6XVNBfXYm2P/4MGDHu9Hf9eKJGVmZur555/XgAEDch8VlZQvUElS+fLl1axZM+3du9ersc/m9HhOyum9E3yd58CBA3Xy5Em9/vrrRY7raX3m5c169fZ8VtRaLehpbV/OQe+++65atGihyMhIXXDBBZozZ06+809hfLkeedsTf+fjy7U8h6fzlC/X/KLG8qY2X865gV4HAhGUj4zmtXPnTknK/a1m+/bt6tChg+rWravZs2erevXq+uijj3TnnXfq8OHDmjRpktvP9+rVS/369VNSUpLS09PVvHlzXX755Ro9erSmTZumxMRExcTE+DT2d999p/j4eFWtWlWTJ09W48aN9fvvv2vFihXKzMzUyJEjdfToUc2dO1fLly/PfWqgWbNm+V6z0qlTJ7Vq1Urz589X//793f5t3rx5atu2rdq2beuxT3nn6U+vbrzxRvXp00dJSUnatm2bJk6cqO3bt2vDhg0KDw93bH+DBw/W5s2b9eijj+rCCy/U8ePHtXnzZh05ciR3fF9rv+mmm9S3b1+NGDFC33//vSZMmCBJeuGFFySpyPvk22+/VZUqVfTYY48pNjZWR48e1UsvvaR27dppy5Ytuuiii/zu09l8nVNBPM3TH3369NGgQYM0atQorV69WjNmzNDp06f18ccf6/bbb9c999yj1157TePHj1ejRo3cHmnzth+BHreSd+smr4kTJxZ6vK9du1adO3dWixYt9PzzzysyMlILFixQjx49tGTJEvXt29djTXkVtc7O5ul+DHStbNiwQUeOHFFiYmKR20nSiRMntHnzZscexXR6vGBV1DyrV6+uJk2aaOXKlRo+fHihYxS1PvPydr2mpKR4dT7z5Tp1Nk9r98MPP1SvXr30f//3f1q6dKmysrI0a9YsHTx40HNTz+LNecXXY9jX+Xh7PJ/N03nKl2t+UWN5qs3Xc0ig14GAmCCyaNEiI8msX7/enD592qSlpZn333/fxMbGmujoaHPgwAFjjDHXXnutqV27tjlx4oTbz48ZM8aUKVPGHD161BhjzKRJk4wk8/DDD+fb15o1a4wks2zZMrfbvR37qquuMhUrVjSpqamFzmfmzJlGkvn1118LnOfZt+fctmXLltzbvv76ayPJvPTSS4Xuw9M8fe3V3Xff7bbdq6++aiSZxYsXO7q/8uXLm7vuuqvIefla+4wZM9y2u/32202ZMmVMdnZ27m2F3Sd5ZWVlmczMTNO4cWO3nvjSp4LuZ2/nVBBf5jlkyBBTr169QsfI+/3s2bPdtmvZsqWRZJYvX5572+nTp01sbKzp1auXX/1w4rj1Zt0UpLDjvX379iYuLs6kpaXl3paVlWWaN29uateundvTomoqSFHrzNv7MZC1Yowx//jHP4yk3PNmUQYOHGjCwsLMN99843Fbbzg9nhMOHTpkJJlJkyY5NqaneQ4cONBUq1bN4ziFrc+85xBv12tehZ3PjPHtOuXt2m3btq2pU6eOOXXqVO42aWlppkqVKm7nn8L4cl7xtieBzMfb60YOb85T3l7zPY1VVG2+nnP9vQ44ISifpm/fvr3Cw8MVHR2t66+/XtWrV9cHH3ygatWqKSMjQ5988oluvPFGRUVFKSsrK/erW7duysjI0Pr1693Gu+mmm7zar7dj//HHH1q7dq369Onj2GtQ+vfvr7i4OLeHz+fOnavY2FivfrOT8s/Tn17lfU1unz59FBYWpjVr1ji6v8svv1wvvviipk6dqvXr1+v06dMB1/63v/3N7fsWLVooIyNDqampHnuXlZWladOmqVmzZoqIiFBYWJgiIiL0888/64cffsi3vS99CmROBQlknoW5/vrr3b5v2rSpXC6XrrvuutzbwsLC1KhRI7eXy+Tw1A+njltP68YX6enp2rBhg26++WaVL18+9/bSpUtr8ODB2rdvn3bs2OGxJn8VdT86sVZSUlLkcrlUtWrVIrebOHGiXn31VT3++ONq3bp1wPNyarzPPvvM7dNVivoqzk9GKIw384yLi1NqaqqysrIC3p8v69XX85mvilq76enp+uabb9SzZ09FRETkblO+fHn16NHDp/14Oq/4cwz7Oh9/eHOe8vaa7+85z59zSKDXgUAEZRh9+eWXtXHjRm3ZskUpKSnaunWrOnbsKOmvd0dmZWVp7ty5Cg8Pd/vq1q2bJOX7yBRv3z3n7djHjh3TmTNnVLt2bcfmHBkZqVGjRum1117T8ePHdejQIb3xxhsaOXKkIiMjvRoj7zz96VX16tXdvg8LC1OVKlUKfBo0kP0tXbpUQ4YM0XPPPacrrrhClStX1i233KIDBw74XXuVKlXcvs/p259//umhc9K4ceM0ceJE9ezZU++99542bNigjRs36tJLLy3w533pkz/9KUog8yxM5cqV3b6PiIhQVFSUypQpk+/2jIyMfD/vqR9OHbee1o0vjh07JmNMgfupWbNmbt2eavJXUfejE2vlzz//VHh4uEqXLl3oNo888oimTp2qRx99VGPGjAlwRs6Od9FFF+nZZ5/16qtu3boB1+4Lb+dZpkwZGWMKPGZ85ct69fV85qui1m5OndWqVcv3cwXdVhRP5xV/juGCOH1O9eY85e01399znj/nkECvA4EIyteMNm3aNPfd9HlVqlQp97ee0aNHF7hNgwYN3L739gXs3o4dFRWl0qVLa9++fV6N663bbrtNjz32mF544QVlZGQoKytLSUlJXv983nn606sDBw6oVq1aud9nZWXpyJEj+Q7WQPdXtWpVPfHEE3riiSe0Z88erVixQvfff79SU1P14Ycf+lV7IBYvXqxbbrlF06ZNc7v98OHDqlixYr7tfelTjnM5pzJlyujUqVP5bi+uz7b01A+njltP68YXlSpVUqlSpfT777/n+7eUlJTc/XmqqTg4sVaqVq2qzMxMpaenq1y5cvn+/ZFHHlFycrKSk5P1wAMPBFyz0+PVqFFDI0eODHgcp/kyz6NHjyoyMtLtUTt/+bJefT2fOalSpUpyuVwFvj7U118avTmv+HoMnwvenqe8ueb7e84719fQQAVlGC1KVFSUEhMTtWXLFrVo0cLtaYBzOXZCQoKWLVumRx99tNDF7utvVzVq1FDv3r21YMECZWZmqkePHgH9xu9Pr1599VW3p5zeeOMN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awijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsIYwCgAAAGsIowAAALCGMAoAAABrCKMAAACwhjAKAAAAawijAAAAsCbMdgHnE2OMJOnkyZOWKwEAAMEqJyfk5IaSjjDqoLS0NElSnTp1LFcCAACCXVpamipUqGC7DOtchljumOzsbKWkpCg6Oloul8vx8U+ePKk6depo7969iomJcXz88xm9Cwz98x+98x+98x+9C0xx988Yo7S0NNWsWVOlSvGKSR4ZdVCpUqVUu3btYt9PTEwMJxc/0bvA0D//0Tv/0Tv/0bvAFGf/eET0f4jjAAAAsIYwCgAAAGsIoyEkMjJSkyZNUmRkpO1SQg69Cwz98x+98x+98x+9Cwz9O7d4AxMAAACs4ZFRAAAAWEMYBQAAgDWEUQAAAFhDGAUAAIA1hFEAAABYQxgNYStXrlS7du1UtmxZVa1aVb169bJdUsg5deqUWrZsKZfLpW+//dZ2OUFv9+7dGjFihBo0aKCyZcuqYcOGmjRpkjIzM22XFpQWLFigBg0aqEyZMmrdurXWrVtnu6SQMH36dLVt21bR0dGKi4tTz549tWPHDttlhaTp06fL5XLprrvusl1KSNi/f78GDRqkKlWqKCoqSi1bttSmTZtsl3XeI4yGqLfeekuDBw/WsGHD9N133+mLL77QgAEDbJcVcu677z7VrFnTdhkh48cff1R2draeeeYZbdu2TY8//riefvppPfDAA7ZLCzpLly7VXXfdpQcffFBbtmxRp06ddN1112nPnj22Swt6a9eu1ejRo7V+/XqtXr1aWVlZ6tKli9LT022XFlI2btyohQsXqkWLFrZLCQnHjh1Tx44dFR4erg8++EDbt2/X7NmzVbFiRdulnf8MQs7p06dNrVq1zHPPPWe7lJC2atUq06RJE7Nt2zYjyWzZssV2SSFpxowZpkGDBrbLCDqXX365SUpKcrutSZMm5v7777dUUehKTU01kszatWttlxIy0tLSTOPGjc3q1atNQkKCGTt2rO2Sgt748eNNfHy87TJKJB4ZDUGbN2/W/v37VapUKbVq1Uo1atTQddddp23bttkuLWQcPHhQt956q1555RVFRUXZLieknThxQpUrV7ZdRlDJzMzUpk2b1KVLF7fbu3Tpoi+//NJSVaHrxIkTksQ688Ho0aPVvXt3XXPNNbZLCRkrVqxQmzZt1Lt3b8XFxalVq1Z69tlnbZdVIhBGQ9Avv/wiSUpOTtZDDz2k999/X5UqVVJCQoKOHj1qubrgZ4zR0KFDlZSUpDZt2tguJ6Tt2rVLc+fOVVJSku1Sgsrhw4d15swZVatWze32atWq6cCBA5aqCk3GGI0bN07x8fFq3ry57XJCwuuvv67Nmzdr+vTptksJKb/88oueeuopNW7cWB999JGSkpJ055136uWXX7Zd2nmPMBpEkpOT5XK5ivz65ptvlJ2dLUl68MEHddNNN6l169ZatGiRXC6Xli1bZnkW9njbv7lz5+rkyZOaMGGC7ZKDhre9O1tKSoq6du2q3r17a+TIkZYqD24ul8vte2NMvttQtDFjxmjr1q1asmSJ7VJCwt69ezV27FgtXrxYZcqUsV1OSMnOztZll12madOmqVWrVho1apRuvfVWPfXUU7ZLO++F2S4A/zNmzBj169evyG3q16+vtLQ0SVKzZs1yb4+MjNQFF1xQot8c4W3/pk6dqvXr1ysyMtLt39q0aaOBAwfqpZdeKs4yg5K3vcuRkpKixMREXXHFFVq4cGExVxd6qlatqtKlS+d7FDQ1NTXfo6Uo3B133KEVK1bo888/V+3atW2XExI2bdqk1NRUtW7dOve2M2fO6PPPP9e8efN06tQplS5d2mKFwatGjRpu11VJatq0qd566y1LFZUchNEgUrVqVVWtWtXjdq1bt1ZkZKR27Nih+Ph4SdLp06e1e/du1atXr7jLDFre9u/JJ5/U1KlTc79PSUnRtddeq6VLl6pdu3bFWWLQ8rZ30l8ffZKYmJj7iHypUjzBkldERIRat26t1atX68Ybb8y9ffXq1brhhhssVhYajDG644479Pbbb+uzzz5TgwYNbJcUMq6++mp9//33brcNGzZMTZo00fjx4wmiRejYsWO+jxD76aefSvR19VwhjIagmJgYJSUladKkSapTp47q1aunmTNnSpJ69+5tubrgV7duXbfvy5cvL0lq2LAhj754kJKSoiuvvFJ169bVrFmzdOjQodx/q169usXKgs+4ceM0ePBgtWnTJvcR5D179vD6Wi+MHj1ar732mt59911FR0fnPsJcoUIFlS1b1nJ1wS06Ojrfa2vLlSunKlWq8JpbD+6++2516NBB06ZNU58+ffT1119r4cKFPPtzDhBGQ9TMmTMVFhamwYMH688//1S7du306aefqlKlSrZLw3nsX//6l3bu3KmdO3fmC+7GGEtVBae+ffvqyJEjmjx5sn7//Xc1b95cq1at4lEWL+S8Ru/KK690u33RokUaOnTouS8IJULbtm319ttva8KECZo8ebIaNGigJ554QgMHDrRd2nnPZbiCAAAAwJL/B7OwI+mlEVk0AAAAAElFTkSuQmCC [fp-joke.jpg]: data:image/jpeg;base64,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