diff --git "a/app/1-eda.ipynb" "b/app/1-eda.ipynb"
new file mode 100644--- /dev/null
+++ "b/app/1-eda.ipynb"
@@ -0,0 +1,1097 @@
+{
+ "cells": [
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Exploratory Data Analysis"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In this notebook, I look at the distributions of the variables and the correlations between the variables, and see if there are any missing values, abnormal values and outliers in the dataset.\n",
+ "\n",
+ "I do not show it in this notebook, but I also check that the distribution of the variables are similar in both the training set and the test set (e.g., categories that show up in the test set also show up in the training set)."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Setup\n",
+ "\n",
+ "Import libraries."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "!pip install matplotlib pandas seaborn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import pandas as pd\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Load the train dataset."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_train = pd.read_csv(\"https://raw.githubusercontent.com/kingyiusuen/travelers-insurance-fraud/master/data/raw/train.csv\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['claim_number', 'age_of_driver', 'gender', 'marital_status',\n",
+ " 'safty_rating', 'annual_income', 'high_education_ind',\n",
+ " 'address_change_ind', 'living_status', 'zip_code', 'claim_date',\n",
+ " 'claim_day_of_week', 'accident_site', 'past_num_of_claims',\n",
+ " 'witness_present_ind', 'liab_prct', 'channel',\n",
+ " 'policy_report_filed_ind', 'claim_est_payout', 'age_of_vehicle',\n",
+ " 'vehicle_category', 'vehicle_price', 'vehicle_color', 'vehicle_weight',\n",
+ " 'fraud'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_train.columns"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Create two helper functions that plot a variable conditional on `fraud`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def plot_categorical_feature_by_target(df, feature, target=\"fraud\"):\n",
+ " totals = df[feature].value_counts().sort_index()\n",
+ " fig = sns.catplot(data=df, x=feature, hue=target, kind=\"count\", order=totals.index).set(title=f\"{target} by {feature}\")\n",
+ " \n",
+ " # Rotate the x-axis labels if they are too long\n",
+ " if any(isinstance(x, str) and len(x) >= 20 for x in totals.index):\n",
+ " plt.xticks(rotation=90)\n",
+ " \n",
+ " # Add percentages\n",
+ " bars = [p.get_height() for p in fig.ax.patches]\n",
+ " patch = [p for p in fig.ax.patches]\n",
+ " num_feature_categories = df[feature].nunique()\n",
+ " num_target_categories = df[target].nunique()\n",
+ " if num_feature_categories < 4:\n",
+ " if num_feature_categories == 2:\n",
+ " offset = 0.1\n",
+ " elif num_feature_categories == 3:\n",
+ " offset = 0.18\n",
+ " elif num_feature_categories == 4:\n",
+ " offset = 0.25\n",
+ "\n",
+ " for i in range(num_feature_categories):\n",
+ " total = totals.iloc[i]\n",
+ " for j in range(num_target_categories):\n",
+ " bar_idx = j * num_feature_categories + i\n",
+ " percentage = f\"{bars[bar_idx] / total * 100:.1f}%\"\n",
+ "\n",
+ " x = patch[bar_idx].get_x() + patch[bar_idx].get_width() / 2 - offset\n",
+ " y = patch[bar_idx].get_y() + patch[bar_idx].get_height() + 3\n",
+ " fig.ax.annotate(percentage, (x, y), size=12)\n",
+ "\n",
+ "\n",
+ "def plot_numerical_feature_by_target(df, feature, target=\"fraud\"):\n",
+ " # Create a figure composed of two matplotlib.Axes objects (ax_box and ax_hist)\n",
+ " figure, (ax_box, ax_hist) = plt.subplots(2, sharex=True, gridspec_kw={\"height_ratios\": (.15, .85)})\n",
+ " figure.suptitle(f\"{target} by {feature}\")\n",
+ "\n",
+ " # Assign a graph to each ax\n",
+ " sns.boxplot(data=df, x=feature, y=target, ax=ax_box)\n",
+ " sns.histplot(data=df, x=feature, hue=target, ax=ax_hist)\n",
+ "\n",
+ " # Remove x axis label for the boxplot\n",
+ " ax_box.set(xlabel=\"\")"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Descriptive statistics\n",
+ "\n",
+ "Print the descriptive statistics for the training dataset and the test dataset, including those that summarize the central tendency, dispersion and shape of a dataset's distribution, excluding NaN values.\n",
+ "\n",
+ "Here is what each variable mean:\n",
+ "\n",
+ "- claim_number - Claim ID (cannot be used in model)\n",
+ "- age_of_driver - อายุผู้ขับ\n",
+ "- gender - เพศผู้ขับ\n",
+ "- marital_status - สถานะภาพสมรส\n",
+ "- safty_rating - คะแนนความปลอดภัย\n",
+ "- annual_income - รายได้ต่อปี\n",
+ "- high_education_ind - ดัชนีการศึกษา\n",
+ "- address_change_ind - มีการเปลี่ยนที่อยู่ในภาย 1 ปีก่อนหน้า\n",
+ "- living_status - ที่พักอาศัยเป็น เจ้าของ หรือ เช่า\n",
+ "- zip_code - รหัสไปรษณีย์\n",
+ "- claim_date - วันที่แจ้งเคลม\n",
+ "- claim_day_of_week - วันในสัปดาห์ที่แจ้งเคลม\n",
+ "- accident_site - สถานที่เกิดเหตุ ถนนหลวง ที่จอดรถ ท้องถิ่น\n",
+ "- past_num_of_claims - จำนวนที่ได้เคลมภายใน 5 ปีย้อนหลัง\n",
+ "- witness_present_ind -จำนวนพยานผู้เห็นเหตุการณ์\n",
+ "- liab_prct - ความเสี่ยงที่ให้การเท็จ\n",
+ "- channel - ช่่องทางการซื้อประกัน\n",
+ "- policy_report_filed_ind - Policy report filed indicator\n",
+ "- claim_est_payout - จำนวนเงินที่คาดการณ์ในการจ่ายเคลม\n",
+ "- age_of_vehicle - อายุพาหนะ\n",
+ "- vehicle_category - ประเภทยานพาหนะ\n",
+ "- vehicle_price - ราคายานพาหนะ\n",
+ "- vehicle_color - สียานพาหนะ\n",
+ "- vehicle_weight - น้ำหนักยานพาหนะ\n",
+ "- fraud - Fraud indicator (0=no, 1=yes). เคลมเท็จหรือไม่\n",
+ "\n",
+ "These features can also be subdivided into:\n",
+ "\n",
+ "- Information about the claimer: age_of_driver, gender, marital_status, safty_rating, annual_income, high_education_ind, address_change_ind, living_status, zip_code, past_num_of_claims\n",
+ "- Information about the insurance claim: claim_date, claim_day_of_week, accident_site, witness_present_ind, liab_prct, channel, claim_est_payout, policy_report_filed_ind\n",
+ "- Information about the vechicle: age_of_vehicle, vehicle_category, vehicle_price, vehicle_color, vehicle_weight"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " claim_number | \n",
+ " age_of_driver | \n",
+ " marital_status | \n",
+ " safty_rating | \n",
+ " annual_income | \n",
+ " high_education_ind | \n",
+ " address_change_ind | \n",
+ " zip_code | \n",
+ " past_num_of_claims | \n",
+ " witness_present_ind | \n",
+ " liab_prct | \n",
+ " policy_report_filed_ind | \n",
+ " claim_est_payout | \n",
+ " age_of_vehicle | \n",
+ " vehicle_price | \n",
+ " vehicle_weight | \n",
+ " fraud | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17993.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17866.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17981.000000 | \n",
+ " 17990.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ " 17998.000000 | \n",
+ "
\n",
+ " \n",
+ " mean | \n",
+ " 14970.601622 | \n",
+ " 43.695466 | \n",
+ " 0.712722 | \n",
+ " 73.562951 | \n",
+ " 37367.655684 | \n",
+ " 0.699189 | \n",
+ " 0.577286 | \n",
+ " 49875.595955 | \n",
+ " 0.505001 | \n",
+ " 0.232677 | \n",
+ " 49.423269 | \n",
+ " 0.600678 | \n",
+ " 4975.792083 | \n",
+ " 5.008060 | \n",
+ " 23089.123114 | \n",
+ " 23031.322385 | \n",
+ " 0.156295 | \n",
+ "
\n",
+ " \n",
+ " std | \n",
+ " 8659.940765 | \n",
+ " 11.959819 | \n",
+ " 0.452505 | \n",
+ " 15.346807 | \n",
+ " 2957.297249 | \n",
+ " 0.458623 | \n",
+ " 0.494004 | \n",
+ " 29214.655149 | \n",
+ " 0.955504 | \n",
+ " 0.422550 | \n",
+ " 33.678470 | \n",
+ " 0.489773 | \n",
+ " 2215.706510 | \n",
+ " 2.258391 | \n",
+ " 11988.429767 | \n",
+ " 12052.385584 | \n",
+ " 0.363604 | \n",
+ "
\n",
+ " \n",
+ " min | \n",
+ " 1.000000 | \n",
+ " 18.000000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ " -1.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 282.639432 | \n",
+ " 0.000000 | \n",
+ " 2457.329316 | \n",
+ " 2429.429302 | \n",
+ " -1.000000 | \n",
+ "
\n",
+ " \n",
+ " 25% | \n",
+ " 7479.250000 | \n",
+ " 35.000000 | \n",
+ " 0.000000 | \n",
+ " 65.000000 | \n",
+ " 35554.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 20111.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 17.000000 | \n",
+ " 0.000000 | \n",
+ " 3337.029436 | \n",
+ " 3.000000 | \n",
+ " 14279.574850 | \n",
+ " 14164.122133 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " 50% | \n",
+ " 14965.500000 | \n",
+ " 43.000000 | \n",
+ " 1.000000 | \n",
+ " 76.000000 | \n",
+ " 37610.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 50028.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 50.000000 | \n",
+ " 1.000000 | \n",
+ " 4668.796318 | \n",
+ " 5.000000 | \n",
+ " 20948.879250 | \n",
+ " 20838.150260 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " 75% | \n",
+ " 22467.750000 | \n",
+ " 51.000000 | \n",
+ " 1.000000 | \n",
+ " 85.000000 | \n",
+ " 39318.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 80038.000000 | \n",
+ " 1.000000 | \n",
+ " 0.000000 | \n",
+ " 81.000000 | \n",
+ " 1.000000 | \n",
+ " 6255.901066 | \n",
+ " 6.000000 | \n",
+ " 29562.232780 | \n",
+ " 29430.446293 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " max | \n",
+ " 30000.000000 | \n",
+ " 229.000000 | \n",
+ " 1.000000 | \n",
+ " 100.000000 | \n",
+ " 54333.000000 | \n",
+ " 1.000000 | \n",
+ " 1.000000 | \n",
+ " 85083.000000 | \n",
+ " 6.000000 | \n",
+ " 1.000000 | \n",
+ " 100.000000 | \n",
+ " 1.000000 | \n",
+ " 17218.345010 | \n",
+ " 16.000000 | \n",
+ " 127063.506000 | \n",
+ " 123016.650400 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " claim_number age_of_driver marital_status safty_rating \\\n",
+ "count 17998.000000 17998.000000 17993.000000 17998.000000 \n",
+ "mean 14970.601622 43.695466 0.712722 73.562951 \n",
+ "std 8659.940765 11.959819 0.452505 15.346807 \n",
+ "min 1.000000 18.000000 0.000000 1.000000 \n",
+ "25% 7479.250000 35.000000 0.000000 65.000000 \n",
+ "50% 14965.500000 43.000000 1.000000 76.000000 \n",
+ "75% 22467.750000 51.000000 1.000000 85.000000 \n",
+ "max 30000.000000 229.000000 1.000000 100.000000 \n",
+ "\n",
+ " annual_income high_education_ind address_change_ind zip_code \\\n",
+ "count 17998.000000 17998.000000 17998.000000 17998.000000 \n",
+ "mean 37367.655684 0.699189 0.577286 49875.595955 \n",
+ "std 2957.297249 0.458623 0.494004 29214.655149 \n",
+ "min -1.000000 0.000000 0.000000 0.000000 \n",
+ "25% 35554.000000 0.000000 0.000000 20111.000000 \n",
+ "50% 37610.000000 1.000000 1.000000 50028.000000 \n",
+ "75% 39318.000000 1.000000 1.000000 80038.000000 \n",
+ "max 54333.000000 1.000000 1.000000 85083.000000 \n",
+ "\n",
+ " past_num_of_claims witness_present_ind liab_prct \\\n",
+ "count 17998.000000 17866.000000 17998.000000 \n",
+ "mean 0.505001 0.232677 49.423269 \n",
+ "std 0.955504 0.422550 33.678470 \n",
+ "min 0.000000 0.000000 0.000000 \n",
+ "25% 0.000000 0.000000 17.000000 \n",
+ "50% 0.000000 0.000000 50.000000 \n",
+ "75% 1.000000 0.000000 81.000000 \n",
+ "max 6.000000 1.000000 100.000000 \n",
+ "\n",
+ " policy_report_filed_ind claim_est_payout age_of_vehicle \\\n",
+ "count 17998.000000 17981.000000 17990.000000 \n",
+ "mean 0.600678 4975.792083 5.008060 \n",
+ "std 0.489773 2215.706510 2.258391 \n",
+ "min 0.000000 282.639432 0.000000 \n",
+ "25% 0.000000 3337.029436 3.000000 \n",
+ "50% 1.000000 4668.796318 5.000000 \n",
+ "75% 1.000000 6255.901066 6.000000 \n",
+ "max 1.000000 17218.345010 16.000000 \n",
+ "\n",
+ " vehicle_price vehicle_weight fraud \n",
+ "count 17998.000000 17998.000000 17998.000000 \n",
+ "mean 23089.123114 23031.322385 0.156295 \n",
+ "std 11988.429767 12052.385584 0.363604 \n",
+ "min 2457.329316 2429.429302 -1.000000 \n",
+ "25% 14279.574850 14164.122133 0.000000 \n",
+ "50% 20948.879250 20838.150260 0.000000 \n",
+ "75% 29562.232780 29430.446293 0.000000 \n",
+ "max 127063.506000 123016.650400 1.000000 "
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_train.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Missing values"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let\"s see which feature has missing values."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "witness_present_ind 132\n",
+ "claim_est_payout 17\n",
+ "age_of_vehicle 8\n",
+ "marital_status 5\n",
+ "claim_number 0\n",
+ "annual_income 0\n",
+ "age_of_driver 0\n",
+ "gender 0\n",
+ "safty_rating 0\n",
+ "living_status 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_train.isnull().sum(axis=0).sort_values(ascending=False)[:10]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The missing value percentage is relative small. Most of them come from `witness_present_ind` and `claim_set_payout`. A few of them are in `age_of_vehicle` and `marital_status`. "
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Fraud\n",
+ "\n",
+ "The target variable `fraud` is only availabe in the train set. The target variable is supposed to be either 0 and 1. However, there are some observations that have `fraud = -1` are abnormal. They should be removed. Also, there doesn't seems to have a serious class imbalance, about 15.6% of the people in training data comitted fraud."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "fraud\n",
+ " 0 15179\n",
+ " 1 2816\n",
+ "-1 3\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_train[\"fraud\"].value_counts()"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Remove observations with abnormal values."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_train = df_train[df_train[\"fraud\"] != -1]"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Convert `fraud` to `str` for now for ease of plotting."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_train[\"fraud\"] = df_train[\"fraud\"].astype(str)"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Features related to the claimer\n",
+ "\n",
+ "Insurance claims by drivers who have a higher safety rating, are married, have received higher education are less likely to be fraudulent. The driver's age, past number of claims, gender, and living status do not appear to be related to the fraudulence of the claim.\n",
+ "\n",
+ "Some claimers are reported to have over 100 years of age and income of below 0. We will deal with these abnormal values later."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Dm3btjX7WT3++OMAUOln9eijj6J9+/bVPj4iR8JARORgnJ2d0axZs0rLdTodxo8fDx8fH3h5ecHf318ai5Sbm1vj/Vy9ehXBwcGVLt9UNabnbq1btzZ77+XlheDgYFy5ckVa9vzzz+P27dvYsmULACAlJQVJSUkYN25cle1X57ivXr0KAHjggQcqff7uZRcuXEBubi4CAgLg7+9v9iooKJAGvFclKysLRUVFFn9e7dq1g9FoRFpaWrXaupeanqN7/e5Y2m706NH44YcfpLFA33//PcrKyswC0YULF5CcnFzp59SmTRsAqPSzqircEjkyjiEicjAqlQpKpfm/VQwGA/72t78hOzsbb7zxBtq2bQtPT09cu3YN48ePN7ulWqFQQAhRqV2DwVDvtd9L+/bt0aNHD3z11Vd4/vnn8dVXX8HV1RVPP/30fT9Xk+OuLqPRiICAAMTHx1tc7+/vX+M2HYWl3517GTt2LD7//HP8+uuvGDlyJL799lu0bdsWXbp0kbYxGo3o1KkTli5darGN0NBQs/cVe/OIGhoGIqIG4NSpUzh//jw2bNiA559/Xlq+c+fOSts2adIEly9frrTc1Iti0rx5cyQkJKCgoMCsByIlJaVGtV24cAGPPfaY9L6goADp6el44oknzLZ7/vnnMXPmTKSnp2PTpk0YNmwYmjRpct+2q3vcpru4Ll68WKmNu5e1atUKu3btQr9+/er0F7i/vz88PDws/rzOnTsHpVJZKTDUlLXOkSWPPPIIgoOD8c0336B///7YvXs33nrrLbNtWrVqhRMnTmDgwIFQKBR13ieRI+MlM6IGwMnJCQDMen6EEPjkk08qbduqVSucO3dOmvsGAE6cOIEDBw6YbffEE0+gvLwcq1atkpYZDAYsX768RrWtXr3a7Jb6VatWoby8HEOHDjXb7plnnoFCocCrr76Ky5cv47nnnquy7eoed0hICDp27IiNGzeioKBAWv7777/j1KlTZts+/fTTMBgMeOeddyrtr7y8vNrTDjg5OWHQoEH44YcfzC4PZmRkYNOmTejfvz/UanW12roXa50jS5RKJf75z3/ip59+wpdffony8nKzy2XAnZ/VtWvXsGbNmkqfv337NufIokaFPUREDUDbtm3RqlUr/Otf/8K1a9egVqvx3XffWZw354UXXsDSpUsxePBgTJw4EZmZmYiLi0OHDh3MBvkOHz4c/fr1w5tvvokrV66gffv2+P7772s8Hqm0tBQDBw7E008/jZSUFKxcuRL9+/fH3//+d7Pt/P39MWTIEGzevBlarRbDhg2z6nG/9957GDFiBPr164cJEybg1q1b+Oyzz9CxY0ezkPToo4/ixRdfxKJFi3D8+HEMGjQILi4uuHDhAjZv3oxPPvkE//znP6t17AsXLsTOnTvRv39/TJ06Fc7Ozvj8889RUlKCxYsXV6uN+7HWObqXMWPGYPny5Zg7dy46deqEdu3ama0fN24cvv32W7z00kvYs2cP+vXrB4PBgHPnzuHbb7/Fjh07+AgSajzseIcbkWzd77Z7T09Pi585c+aMiIyMFF5eXsLPz09MmjRJnDhxwuIt8l999ZVo2bKlcHV1FV27dhU7duyodOu1EELcvHlTjBs3TqjVaqHRaMS4cePEsWPHanTb/e+//y4mT54smjRpIry8vERUVJS4efOmxc98++23AoCYPHnyfduu7XF//fXXom3btkKlUomOHTuKH3/8UYwePVq0bdu2UrurV68WPXr0EO7u7sLb21t06tRJvP766+L69evVrk0IIf766y8xePBg4eXlJTw8PMRjjz0mDh48aLZNbW+7F6L65+h+vzuWzr0QQhiNRhEaGioAiIULF1r8bGlpqfjggw9Ehw4dhEqlEk2aNBE9evQQ8+fPF7m5udJ2AMS0adNqfHxEjkIhhIXRl0RE9eCHH37AyJEjsW/fPjz88MM22WfXrl3h7+9vcbwVEZEJxxARkc2sWbMGLVu2RP/+/a3edllZGcrLy82W7d27FydOnLD4KBMiooo4hoiI6t3XX3+NkydP4pdffsEnn3xSL3csXbt2DZGRkXjuuecQEhKCc+fOIS4uDkFBQXjppZdq1FZBQYHZuCNL/P39pUHfNWUwGMwGvVvi5eVV7Ud8EFHd8ZIZEdU7hUIBLy8vjBkzBnFxcXB2tv6/xXJzczF58mQcOHAAWVlZ8PT0xMCBA/H++++jVatWNWpr3rx5mD9//n23SU1NrfWzuq5cuVLlJIZz587FvHnzatU+EdUcAxER0V0uX75scS6nivr37w83N7datV9cXIz9+/ffd5uWLVuaPRKEiOoXAxERERHJHgdVExERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7Dnbu4CGwGg04vr16/D29oZCobB3OURERFQNQgjk5+cjJCQESuX9+4AYiKrh+vXrCA0NtXcZREREVAtpaWlo1qzZfbdhIKoGb29vAHd+oGq12s7VEBERUXXk5eUhNDRU+nv8fhiIqsF0mUytVssiEGVkZCA3N9feZZjRaDQIDAy0dxlERNQAVWe4CwMRmcnIyMBz455HWWmJvUsx4+KqwldfbmQoIiKiesFARGZyc3NRVlqC2y0fhdFNU6s2lLdz4J66D7fDH4HRXVvnmpTFucDl35Gbm8tARERE9YKBiCwyumlg9PSrWxvu2jq3QUREZAuch4iIiIhkj4HIzoqLi3H+/HkUFxfbuxSyIZ53IiLHIqtLZitWrMCSJUug1+vRpUsXLF++HL169bJrTTqdDpMnT8bq1avRpk0bu9ZCtmM67zWhUCjg6+uLgoICODk5wWAwwMfHB9nZ2XBycoJCoUCrVq3QtGlTpKamIjMzE87OzujevTtUKhXCw8Oxc+dO5Obm4tatW3Bzc4OXlxdGjBiBq1evAgCaNm2KESNGwGAw4PPPP8d//vMfqFQq9O/fH0FBQejQoQOSk5Nx48YN5OTkQKvVws/PD507d4aTk1N9/KgAAAaDASdPnkR2djZ8fHzqfX910ZBqJcfC3x37kk0g+uabbzBz5kzExcWhd+/eWLZsGQYPHoyUlBQEBATYuzySmZqGIeDOjKs3btwwW3b9+nWz9ydOnMCJEyfMlv36668W2ysoKMCNGzfwySefmC1fsWJFpW0PHDgAAFIQu1tQUBCmTp2KRx55pOoDqaF9+/Zh5cqV0Ov1NtlfXTSkWsmx8HfH/hwuEI0aNara237//ffV3nbp0qWYNGkSJkyYAACIi4vDL7/8grVr1+LNN9+scZ1EtTVgwAB7l2CRq6srSktLzZZ169YN/v7+SEhIgMFggBACANC6dWuMGDECf/zxB44cOQKNRoO5c+di/vz5Vv3y3rdvH+bOnYuIiAi8/fbbCA8PR2pqKuLj4+tlf3XRkGolx8LfHcfgcGOINBqN9FKr1UhISMCff/4prU9KSkJCQgI0murfEl5aWoqkpCRERkZKy5RKJSIjI5GYmGjV+onu58yZM/dcN3XqVJvVYWmC0YphyDSJ2aJFi/DGG2/Ax8cHCoUCRqMRGo0GBQUFGDp0KBYtWoSIiAjk5eWhT58+WLVqlcUepNowGAxYuXIlIiIisHDhQnTo0AEeHh7o0KEDFi5ciIiICKvuTy61kmPh747jcLgeonXr1kl/fuONN/D0008jLi5Ouo5qMBgwderUGs0YfePGDRgMhkpz2AQGBuLcuXOVti8pKUFJyX8nJszLy6vpYdSYaQyHvTlKHZY4cm3Vda/Q4+TkhJUrV9aqTWdnZ5SXl993G9OlLtN//f39kZeXh7CwMOh0Omg0GrPZyU09QT/99BMeeOABZGVloUePHkhKSkKLFi1w4sQJnDx5Et26dUNUVBSmTZuGp59+GomJidLyujp58iT0ej3efvvtSg9lVCqV0n6ttb+6aEi1kmPh747jcLhAVNHatWuxf/9+s0FlTk5OmDlzJvr27YslS5bUy34XLVqE+fPn10vb9/Luu+/adH8NUWP+GT377LP48ssv77uNSqUyC+om3t7euHXr1n0/6+Hhgfz8fDg7O8NgMEi9Qf3798emTZvg7u5u8XEt169fh4+PD4A7l8+SkpKksJSdnQ0ACA8Pl+qruLyu7m7/bqbl1tpfXTSkWsmx8HfHcTh0ICovL8e5c+fw4IMPmi0/d+4cjEZjtdvx8/ODk5MTMjIyzJZnZGQgKCio0vaxsbGYOXOm9N70cLj69NZbb6F58+b1uo/quHr1qsMGD0f5GdXFvQZTb9q0qcrPWgpDAJCfn1/lZ4uKigBA6klydXUFAOzfvx8AcPv2bYufCwkJkQLRsWPHAPz3cpppeWpqqll9puV1VbH9Dh06VFpv2q+19lcXDalWciz83XEcDh2IJkyYgIkTJ+LSpUvS7fGHDx/G+++/Lw2Org5XV1f06NEDCQkJGDlyJADAaDQiISEBMTExlbZXqVTSv3ZtpXnz5rztvgqN4We0cuVKi5fNTJeCa3PZrKrLZab2K/43KysLwJ3b/wFU6h1SKBQQQmD48OFwcXGBv78//vrrLwDAlStXEBwcjM6dO8NoNCI+Ph7BwcE4cuSItNwaOnfujKCgIMTHx2PhwoVmlxMq7tda+6uLhlQrORb+7jgOhw5EH374IYKCgvDRRx8hPT0dABAcHIxZs2bhtddeq1FbM2fORHR0NHr27IlevXph2bJlKCwsrFGwIqqr9u3b33NdbccQ1YalcXEV7zIzXRaLjY2Fn58fsrOzIYSAUqlEbm4uAgICsG3bNuzfvx9HjhxBmzZtcOjQIcyfP99q86Y4OTlh6tSpmDt3LmbPno2oqCizu28SExOtuj+51EqOhb87jkMhTN98Ds70BV6TwdR3++yzz6SJGbt27YpPP/0UvXv3rta+TYNO67J/S86fP+9QEzOa6ils//daP4dMWXgDnmd+rFMbltpzlJ+RNTjqrfdVudc8RMHBwZgyZYrN5iGqz/3VRUOqlRwLf3fqR03+/nboHqKKrBFEYmJiLF4iI7K11atXc6bqanrkkUfQr1+/BjGDb0OqlRwLf3fsz6EDUXh4uDSA05LLly/bsJr6ERYWhtWrVyMsLMzepZANVTzvbm5uNtvviBEjqr3t9OnTLS63x62/Tk5ODeaW44ZUKzkW/u7Yl0MHoru/kMvKynDs2DFs374ds2bNsk9RVubm5tZoLgNR9fG8ExE5FocORK+++qrF5StWrDCbvZqIiIioLhw6EN3L0KFDERsbazarNVmXsrjyJH3V/uztHLP/2rMWIiKi6miQgeh///d/OUlVPdFoNHBxVQGXf69zW+6p+6xQ0R0urqoaPb+OiIioJhw6EHXr1s1sULUQAnq9HllZWTads0VOAgMD8dWXGy0+xsGeNBpNpWfRERERWYtDByLTrNImSqUS/v7+GDBgANq2bWufomQgMDCQ4YOIiGSlwUzMaE/1OTEjERER1Y9GOTFjcXGx9FgBE4aT+pGRkWHTS2a8HEZERPbm0IGosLAQb7zxBr799lvcvHmz0npLjxCgusnIyMBz455HWanlJ6vXBxdXFb76ciNDERER2Y1DB6LXX38de/bswapVqzBu3DisWLEC165dw+eff47333/f3uU1Srm5uSgrLcHtlo/C6Fazu7qUt3PgnroPt8MfgdFdW73PFOcCl39Hbm4uAxEREdmNQwein376CRs3bsSAAQMwYcIEPPzww3jggQfQvHlzxMfHIyoqyt4lNlpGN02tH8xqdNda5aGuREREtqK0dwH3k52djZYtWwK4M14oOzsbANC/f3/s22e9OW6IiIhI3hw6ELVs2RKpqakAgLZt2+Lbb78FcKfnSKvV2rEy6ysuLsb58+dRXFxs71LoLjw3RESNn0NfMpswYQJOnDiBRx99FG+++SaGDx+Ozz77DGVlZVi6dGm129m3bx+WLFmCpKQkpKenY8uWLZXmOLI3nU6HyZMnY/Xq1Xzop4MxnZtWrVrh1q1byMnJAQAoFAoEBQWhqKgI7u7uyMrKAgAYjUZoNBqEhITgmWeewY0bN7Bp0yYUFRVBCIEWLVoAAEJDQ5GWlgZXV1e4u7ujb9++KCoqglarhZ+fHzp37gwnJ6ca12swGHDy5ElkZ2fDx8enUjt3r+/QoQOSk5Nx48YN5OTkWNx/VW0SEdWWo3y/OHQgmjFjhvTnyMhInDt3DklJSXjggQfQuXPnardTWFiILl264IUXXsCoUaPqo1RqxN566y0AwKVLlyqtu3btGgDg1q1bZsuzs7ORnZ0tfbai06dPm/3X5MCBA2bvg4KCMHXqVDzyyCPVrnXfvn1YuXIl9Hq9xXYsrXdycrJ4x6bpcwDu2yYRUW1V9Z1lSw57yaysrAwDBw7EhQsXpGXNmzfHqFGjahSGgDsPg124cCH+8Y9/WLtMauSioqKknh9b0Wq1UCgU0Gg0mDt3brXHy+3btw9z585Fy5YtsWLFCmzbtg0rVqxAy5YtMXfuXMTFxZmtf+utt6BQKODm5gYAaN26Nf71r3+hd+/e0v7nzJlz3zY5lo+Iaquq7yxbf784bCBycXHByZMn7V0GyVhubq7UA2QNCoUCzs6WO2WdnZ3h5OQEJycn5OTkoFevXsjLy0OfPn2watWqKufcMhgMWLlyJSIiIrBw4UJ06NABHh4e6NChAxYuXIg+ffpg8+bN6NOnDxYuXIi2bdviiy++QJ8+feDp6YkmTZqgoKAAQ4cOxaJFixAREYHc3FyoVCq4urpi/vz5ldqMiIioVm1ERHer6jvLHt8vDn3J7LnnnsMXX3xh8zmHSkpKUFLy34kJ8/LybLbvq1ev2mxfjrR/ex+3JR988AGAO0FGCAEXFxeUlZXBz88PN27ckJZXl2n80MWLF+Hh4YGioiKoVCqUlJQgPDwcFy5cQLdu3XDs2DGoVCqkp6fj6aefRmJiIk6ePIlu3brds+2TJ09Cr9fj7bffhlJp/u8cpVKJXr16ITExEb169YJSqcSxY8eg1+sxZswYJCYm4rXXXsNHH30k7ScqKgrTpk2T2jh9+rTZ/pVKpbRNVbUREd2tqu8se3y/OHQgKi8vx9q1a7Fr1y706NEDnp6eZutrMrC6JhYtWoT58+fXS9tVeffdd+2yX3tz5OM2hR5PT0/k5OTA1dUVwJ2xN+Xl5TVqS6VSAQDatGmD48ePS22blvv53Zm/KT8/32y5acqJezGtDw8Pv+9+TZfHTNub3kdERNy3HUv7N21TVW1ERHer6jvLHt8vDheITp48iY4dO0KpVOL06dPo3r07AOD8+fNm2ykUinqrITY2FjNnzpTe5+XlITQ0tN72V9Fbb72F5s2b22Rflly9etUu4cTex23JBx98gEuXLkk9QYWFhQAgPVOvNl25pp5H0++z6ffYtPzGjRsAAG9vb7PlPj4+923XtD41NRUdOnS4535NUweYtje9T0xMrNSOpfYrMm1TVW1ERHer6jvLHt8vDheIunXrhvT0dAQEBODq1as4evQofH19bVqDSqWS/kVta82bN5flbfeOeNxLly7FiBEjpF6csrIyAP8NLTW5XAbcCT9XrlwBABQVFQH4b1BJTU2Fk5OTNG6upKQEwcHBOHLkCIKDg6u8kaBz584ICgpCfHw8Fi5caNYFbTQaceTIETg5OeHIkSMYMWKEtP2RI0cQEBCAtWvXSvsxGo2Ij49HUFCQdPdcx44dzfZn2qY6tRER3a2q7yx7fL843KBqrVYrJcMrV67AaDTWuc2CggIcP34cx48fB3DnL5/jx49Dp9PVuW1qvDQaDZo2bWq19oQQ97zEVl5eDoPBAIPBAK1WiyNHjkCtVuPQoUOYMmVKlXNyODk5YerUqUhMTMTs2bORnJyMoqIiJCcnY/bs2Th06BCeeuopHDp0CLNnz8a5c+cwceJEHDp0CIWFhbh16xa8vLywbds2xMbGIjExERqNBiUlJSgtLcXcuXMrtZmYmFit2oiI7lbVd5Y9vl8Uoqb/zK1nkydPxsaNGxEcHAydTodmzZrd8wdy+fLlarW5d+9ePPbYY5WWR0dHY/369VV+Pi8vDxqNBrm5uVCr1dXaZ02dP3/eISZmNNVR2P7vNX4embLwBjzP/Fijz5o+Y+/jvp+nnnrK5rfeA0BwcDCmTJlS53mIKrZTk3mITJ8DKs9DVJvaiIjuVtV3Vl3V5O9vh7tktnr1aowaNQoXL17EK6+8gkmTJknjKWprwIABNb68QWTy7rvvNpiZqh955BH069fvnrO+WlpfnZmq79cmEVFtVfWdZUsOF4gAYMiQIQCApKQkvPrqq3UORA1BWFgYVq9ejbCwMHuXQnepeG5Md2XV1IgRI6xc1b05OTnd9zZVS+uruq21qjaJiGrLUb5fHDIQmaxbt87eJdiMm5ubw14ykjueGyKixs/hBlUTERER2ZpD9xCR/SiLc2v+mds5Zv+tr/0QERFZGwMRmdFoNHBxVQGXf691G+6pNXsgn4urChqNptb7IyIiqisGomow3aFmy2ea2Yu7uztWrVxh02NVq9Vwd3eXxc+XiIhsx/T3SnXuNGcgqgbTc6Vs9fgOIiIisp78/Pwqr0Q43MSMjshoNOL69evw9vau12eo0X+fG5eWllZvk2CSdfBcNRw8Vw0Hz5V1CSGQn5+PkJAQs8eDWMIeompQKpVo1qyZvcuQFbVazS+DBoLnquHguWo4eK6sp7pjVHnbPREREckeAxERERHJHgMRORSVSoW5c+dCpVLZuxSqAs9Vw8Fz1XDwXNkPB1UTERGR7LGHiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkz9neBTQERqMR169fh7e3NxQKhb3LISIiomoQQiA/Px8hISFQKu/fB8RAVA3Xr19HaGiovcsgIiKiWkhLS0OzZs3uuw0DUTV4e3sDuPMDVavVdq6GiIiIqiMvLw+hoaHS3+P3w0BUDabLZGq1moGIiIioganOcBcOqiYiIiLZYyAiIiIi2WMgIiIiItnjGCIiIqJGzGg0orS01N5l1BtXV9cqb6mvDgYiIiKiRqq0tBSpqakwGo32LqXeKJVKhIeHw9XVtU7tMBARERE1QkIIpKenw8nJCaGhoVbpRXE0pomT09PTERYWVqfJkxmIiIiIGqHy8nIUFRUhJCQEHh4e9i6n3vj7++P69esoLy+Hi4tLrdtpfHGRiIiIYDAYAKDOl5Icnen4TMdbWwxEREREjVhjfwantY7ProFo3759GD58OEJCQqBQKLB161az9UIIzJkzB8HBwXB3d0dkZCQuXLhgtk12djaioqKgVquh1WoxceJEFBQUmG1z8uRJPPzww3Bzc0NoaCgWL15c34dGRETU4AghMHnyZPj4+EChUOD48eM23f/48eMxcuRIm+7TxK6BqLCwEF26dMGKFSssrl+8eDE+/fRTxMXF4fDhw/D09MTgwYNRXFwsbRMVFYXk5GTs3LkTP//8M/bt24fJkydL6/Py8jBo0CA0b94cSUlJWLJkCebNm4fVq1fX+/E1dgaDAampqUhNTa1zVyUREdnf9u3bsX79evz8889IT09Hx44d7V2Szdh1UPXQoUMxdOhQi+uEEFi2bBlmz56NESNGAAA2btyIwMBAbN26FWPHjsXZs2exfft2HD16FD179gQALF++HE888QQ+/PBDhISEID4+HqWlpVi7di1cXV3RoUMHHD9+HEuXLjULTlRzOp0OH31/EADw2iggPDzczhUREVFdXLp0CcHBwejbt6/F9aWlpY12TJLDjiFKTU2FXq9HZGSktEyj0aB3795ITEwEACQmJkKr1UphCAAiIyOhVCpx+PBhaZtHHnnE7AQOHjwYKSkpuHXrlo2OpvHS+gdB6x9k7zKIiKiOxo8fj5dffhk6nQ4KhQItWrTAgAEDEBMTg+nTp8PPzw+DBw8GACxduhSdOnWCp6cnQkNDMXXqVLPhKvPmzUPXrl3N2l+2bBlatGghvTcYDJg5cya0Wi18fX3x+uuvQwhhi0O1yGEDkV6vBwAEBgaaLQ8MDJTW6fV6BAQEmK13dnaGj4+P2TaW2qi4j7uVlJQgLy/P7EVERNSYffLJJ1iwYAGaNWuG9PR0HD16FACwYcMGuLq64sCBA4iLiwNwZzLETz/9FMnJydiwYQN2796N119/vUb7++ijj7B+/XqsXbsW+/fvR3Z2NrZs2WL146ouzkNkwaJFizB//nx7l0FERGQzGo0G3t7ecHJyQlDQf3v+W7duXelmpOnTp0t/btGiBRYuXIiXXnoJK1eurPb+li1bhtjYWIwaNQoAEBcXhx07dtTtIOrAYXuITCcjIyPDbHlGRoa0LigoCJmZmWbry8vLkZ2dbbaNpTYq7uNusbGxyM3NlV5paWl1PyAiIqIGqEePHpWW7dq1CwMHDkTTpk3h7e2NcePG4ebNmygqKqpWm7m5uUhPT0fv3r2lZc7OzmZDYGzNYQNReHg4goKCkJCQIC3Ly8vD4cOHERERAQCIiIhATk4OkpKSpG12794No9Eo/ZAjIiKwb98+lJWVSdvs3LkTDz74IJo0aWJx3yqVCmq12uxFREQkR56enmbvr1y5gieffBKdO3fGd999h6SkJOlucdNDZJVKZaXxQBX/HnZEdg1EBQUFOH78uDTPQWpqKo4fPy4N6Jo+fToWLlyIH3/8EadOncLzzz+PkJAQaY6Cdu3aYciQIZg0aRKOHDmCAwcOICYmBmPHjkVISAgA4Nlnn4WrqysmTpyI5ORkfPPNN/jkk08wc+ZMOx01ERFRw5WUlASj0YiPPvoIffr0QZs2bXD9+nWzbfz9/aHX681CUcU5jTQaDYKDg6UboIA7V3gqdnDYml3HEP3555947LHHpPemkBIdHY3169fj9ddfR2FhISZPnoycnBz0798f27dvh5ubm/SZ+Ph4xMTEYODAgVAqlRg9ejQ+/fRTab1Go8Fvv/2GadOmoUePHvDz88OcOXN4yz0REVEtPPDAAygrK8Py5csxfPhws8HWJgMGDEBWVhYWL16Mf/7zn9i+fTt+/fVXsysur776Kt5//320bt0abdu2xdKlS5GTk2Pjo/kvuwaiAQMG3PcWO4VCgQULFmDBggX33MbHxwebNm267346d+6MP/74o9Z1EhER0R1dunTB0qVL8cEHHyA2NhaPPPIIFi1ahOeff17apl27dli5ciXee+89vPPOOxg9ejT+9a9/mU2K/NprryE9PR3R0dFQKpV44YUX8I9//AO5ubn2OCwohD1v+m8g8vLyoNFokJuby/FEFaSmpuKLPy4DACY+3JITMxIROZDi4mKkpqYiPDzc7MpKY3O/46zJ398OO6iaiIiIyFYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9vhwV6p3BoMBOp1Oeh8WFgYnJyc7VkRERGSOgYjqnU6nw0ffH4TWPwg5WXq8Ngqcs4iIiBwKAxHZhNY/CL7BofYug4iIyCKOISIiIiLZYw8RERGRjOh0Oty4ccNm+/Pz80NYWFiNP7dixQosWbIEer0eXbp0wfLly9GrV696qPAOBiIiIiKZ0Ol0aNuuHW4XFdlsn+4eHjh39myNQtE333yDmTNnIi4uDr1798ayZcswePBgpKSkICAgoF7qZCAiIiKSiRs3buB2URGi3liCwLBW9b6/DN0lxH8wCzdu3KhRIFq6dCkmTZqECRMmAADi4uLwyy+/YO3atXjzzTfrpVYGIiIiIpkJDGuFZq072LsMi0pLS5GUlITY2FhpmVKpRGRkJBITE+ttvxxUTURERA7jxo0bMBgMCAwMNFseGBgIvV5fb/tlICIiIiLZYyAiIiIih+Hn5wcnJydkZGSYLc/IyEBQUFC97ZeBiIiIiByGq6srevTogYSEBGmZ0WhEQkICIiIi6m2/HFRNREREDmXmzJmIjo5Gz5490atXLyxbtgyFhYXSXWf1gYGIiIhIZjJ0lxx6P2PGjEFWVhbmzJkDvV6Prl27Yvv27ZUGWlsTAxEREZFM+Pn5wd3DA/EfzLLZPt09PODn51fjz8XExCAmJqYeKrKMgYiIiEgmwsLCcO7s2Qbx6A5bYyAiIiKSkbCwsAYRUGyNd5kRERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkexxYkYiIiIZ0el0Dj9T9b59+7BkyRIkJSUhPT0dW7ZswciRI+unwP+PgYiIiEgmdDod2rVri6Ki2zbbp4eHO86ePVejUFRYWIguXbrghRdewKhRo+qxuv9iICIiIpKJGzduoKjoNr76P0+jXZh/ve/vrC4Lz733LW7cuFGjQDR06FAMHTq0HiurjIGIiIhIZtqF+aN7m6b2LsOhcFA1ERERyR4DEREREckeAxERERHJHscQEQDAYDBAp9MBAMLCwuDk5GTnioiIiGyHgYgA3LkV86PvDwIAXhsFhIeH27kiIiKSq4KCAly8eFF6n5qaiuPHj8PHx6fGcxpVFwMRSbT+QfYugYiIbOCsLsuh9/Pnn3/isccek97PnDkTABAdHY3169dbo7RKGIiIiIhkws/PDx4e7njuvW9ttk8PD3f4+fnV6DMDBgyAEKKeKrLMoQORwWDAvHnz8NVXX0Gv1yMkJATjx4/H7NmzoVAoAABCCMydOxdr1qxBTk4O+vXrh1WrVqF169ZSO9nZ2Xj55Zfx008/QalUYvTo0fjkk0/g5eVlr0MjIiKyubCwMJw9e87hH91hDw4diD744AOsWrUKGzZsQIcOHfDnn39iwoQJ0Gg0eOWVVwAAixcvxqeffooNGzYgPDwcb7/9NgYPHowzZ87Azc0NABAVFYX09HTs3LkTZWVlmDBhAiZPnoxNmzbZ8/CIiIhsLiwsrEEEFFtz6EB08OBBjBgxAsOGDQMAtGjRAv/+979x5MgRAHd6h5YtW4bZs2djxIgRAICNGzciMDAQW7duxdixY3H27Fls374dR48eRc+ePQEAy5cvxxNPPIEPP/wQISEh9jk4IiIichgOPQ9R3759kZCQgPPnzwMATpw4gf3790vPN0lNTYVer0dkZKT0GY1Gg969eyMxMREAkJiYCK1WK4UhAIiMjIRSqcThw4dteDRERETkqBy6h+jNN99EXl4e2rZtCycnJxgMBrz77ruIiooCAOj1egBAYGCg2ecCAwOldXq9HgEBAWbrnZ2d4ePjI21zt5KSEpSUlEjv8/LyrHZMRERE5Hgcuofo22+/RXx8PDZt2oS//voLGzZswIcffogNGzbU634XLVoEjUYjvUJDQ+t1f0RERPXF1ndr2Zq1js+hA9GsWbPw5ptvYuzYsejUqRPGjRuHGTNmYNGiRQCAoKA78+ZkZGSYfS4jI0NaFxQUhMzMTLP15eXlyM7Olra5W2xsLHJzc6VXWlqatQ+NqmAwGJCamiq9DAaDvUsiImpQTE8cKC0ttXMl9ct0fHV9woJDXzIrKiqCUmme2ZycnGA0GgHcmU05KCgICQkJ6Nq1K4A7l7cOHz6MKVOmAAAiIiKQk5ODpKQk9OjRAwCwe/duGI1G9O7d2+J+VSoVVCpVPR0VVYdp5mytfxBysvScPZuIqIacnZ3h4eGBrKwsuLi4VPr7tDEwGo3IysqCh4cHnJ3rFmkcOhANHz4c7777LsLCwtChQwccO3YMS5cuxQsvvAAAUCgUmD59OhYuXIjWrVtLt92HhIRg5MiRAIB27dphyJAhmDRpEuLi4lBWVoaYmBiMHTuWd5g5OK1/EHyDebmSiKg2FAoFgoODkZqaiqtXr9q7nHqjVCoRFhYmzU9YWw4diJYvX463334bU6dORWZmJkJCQvDiiy9izpw50javv/46CgsLMXnyZOTk5KB///7Yvn27NAcRAMTHxyMmJgYDBw6UJmb89NNP7XFIRERENuPq6orWrVs36stmrq6uVun9cuhA5O3tjWXLlmHZsmX33EahUGDBggVYsGDBPbfx8fHhJIxERCRLSqXSrJOALGt8FxSJiIiIaoiBiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZI+BiIiIiGSPgYiIiIhkj4GIiIiIZM/hA9G1a9fw3HPPwdfXF+7u7ujUqRP+/PNPab0QAnPmzEFwcDDc3d0RGRmJCxcumLWRnZ2NqKgoqNVqaLVaTJw4EQUFBbY+FCIiInJQDh2Ibt26hX79+sHFxQW//vorzpw5g48++ghNmjSRtlm8eDE+/fRTxMXF4fDhw/D09MTgwYNRXFwsbRMVFYXk5GTs3LkTP//8M/bt24fJkyfb45CIiIjIATnbu4D7+eCDDxAaGop169ZJy8LDw6U/CyGwbNkyzJ49GyNGjAAAbNy4EYGBgdi6dSvGjh2Ls2fPYvv27Th69Ch69uwJAFi+fDmeeOIJfPjhhwgJCbHtQREREZHDcegeoh9//BE9e/bEU089hYCAAHTr1g1r1qyR1qempkKv1yMyMlJaptFo0Lt3byQmJgIAEhMTodVqpTAEAJGRkVAqlTh8+LDF/ZaUlCAvL8/s1RAZDAakpqZKL4PBYO+SiIiIHFKtAlHLli1x8+bNSstzcnLQsmXLOhdlcvnyZaxatQqtW7fGjh07MGXKFLzyyivYsGEDAECv1wMAAgMDzT4XGBgordPr9QgICDBb7+zsDB8fH2mbuy1atAgajUZ6hYaGWu2YbEmn0+Gj7w/iiz8u46PvD0Kn09m7JCIiIodUq0B05coVi70NJSUluHbtWp2LMjEajejevTvee+89dOvWDZMnT8akSZMQFxdntX1YEhsbi9zcXOmVlpZWr/urT1r/IPgGh0LrH2TvUoiIiBxWjcYQ/fjjj9Kfd+zYAY1GI703GAxISEhAixYtrFZccHAw2rdvb7asXbt2+O677wAAQUF3/pLPyMhAcHCwtE1GRga6du0qbZOZmWnWRnl5ObKzs6XP302lUkGlUlnrMIiIiMjB1SgQjRw5EgCgUCgQHR1tts7FxQUtWrTARx99ZLXi+vXrh5SUFLNl58+fR/PmzQHcGWAdFBSEhIQEKQDl5eXh8OHDmDJlCgAgIiICOTk5SEpKQo8ePQAAu3fvhtFoRO/eva1WKxERETVcNQpERqMRwJ0gcvToUfj5+dVLUSYzZsxA37598d577+Hpp5/GkSNHsHr1aqxevRrAnWA2ffp0LFy4EK1bt0Z4eDjefvtthISESOGtXbt2GDJkiHSpraysDDExMRg7dizvMCMiIiIAtbztPjU11dp1WPTQQw9hy5YtiI2NxYIFCxAeHo5ly5YhKipK2ub1119HYWEhJk+ejJycHPTv3x/bt2+Hm5ubtE18fDxiYmIwcOBAKJVKjB49Gp9++qlNjoGIiIgcX63nIUpISEBCQgIyMzOlniOTtWvX1rkwkyeffBJPPvnkPdcrFAosWLAACxYsuOc2Pj4+2LRpk9VqIiIiosalVoFo/vz5WLBgAXr27Ing4GAoFApr10VERERkM7UKRHFxcVi/fj3GjRtn7XqIiIiIbK5W8xCVlpaib9++1q6FiIiIyC5qFYj+53/+h2NyiIiIqNGo1SWz4uJirF69Grt27ULnzp3h4uJitn7p0qVWKY6IiIjIFmoViE6ePClNhHj69GmzdRxgTURERA1NrQLRnj17rF0HERERkd3UagwRERERUWNSqx6ixx577L6Xxnbv3l3rgoiIiIhsrVaByDR+yKSsrAzHjx/H6dOnKz30lYiIiMjR1SoQffzxxxaXz5s3DwUFBXUqiIiIiMjWrDqG6LnnnrPqc8yIiIiIbMGqgSgxMdHsKfNEREREDUGtLpmNGjXK7L0QAunp6fjzzz/x9ttvW6UwIiIiIlupVSDSaDRm75VKJR588EEsWLAAgwYNskphRNVlMBig0+kAAGFhYXBycrJzRURE1NDUKhCtW7fO2nUQ1ZpOp8NH3x8EALw2CggPD7dzRURE1NDUKhCZJCUl4ezZswCADh06oFu3blYpiqimtP5B9i6BiIgasFoFoszMTIwdOxZ79+6FVqsFAOTk5OCxxx7D119/DX9/f2vWSA2U6VJWWloaBIS9yyEiIrqnWt1l9vLLLyM/Px/JycnIzs5GdnY2Tp8+jby8PLzyyivWrpEaKNOlrP+7PQn5+fn2LoeIiOieatVDtH37duzatQvt2rWTlrVv3x4rVqzgoGoyc+dSFnuHiIjIsdWqh8hoNMLFxaXSchcXFxiNxjoXRURERGRLtQpEjz/+OF599VVcv35dWnbt2jXMmDEDAwcOtFpxRERERLZQq0tmn332Gf7+97+jRYsWCA0NBQCkpaWhY8eO+Oqrr6xaIDk+o9GAtLQ06T3nAiIiooamVoEoNDQUf/31F3bt2oVz584BANq1a4fIyEirFkcNQ97NTKy9WoBm4WXIydJzLiAiImpwanTJbPfu3Wjfvj3y8vKgUCjwt7/9DS+//DJefvllPPTQQ+jQoQP++OOP+qqVHJjaLxC+waGcD4iIiBqkGgWiZcuWYdKkSVCr1ZXWaTQavPjii1i6dKnViiMiIiKyhRoFohMnTmDIkCH3XD9o0CAkJSXVuShquEzjiVJTUzkhIxERNRg1GkOUkZFh8XZ7qTFnZ2RlZdW5KGq4Ko4n0p07CW3TFvYuiYiIqEo16iFq2rQpTp8+fc/1J0+eRHBwcJ2LoobNNJ5I7ctHuBARUcNQo0D0xBNP4O2330ZxcXGldbdv38bcuXPx5JNPWq04cjwGgwGpqam8JEZERI1KjS6ZzZ49G99//z3atGmDmJgYPPjggwCAc+fOYcWKFTAYDHjrrbfqpVCyPdPDWU3CwsKk55Np/YN4SYyIiBqNGgWiwMBAHDx4EFOmTEFsbCyEuNM7oFAoMHjwYKxYsQKBgYH1UijZXsXwY5pfCLjzfDLf4FDkZKXbt0AiIiIrqfHEjM2bN8e2bdtw69YtXLx4EUIItG7dGk2aNKmP+sjOTOGnPlTsgTLNbm1axstxRERkS7WaqRoAmjRpgoceesiatZDMmHqgAEizW5uW5d3MhLZpC/hxjD4REdlArQMRkTVYmtn6zjL2DhERke3U6mn3RERERI0Je4ioWio+0Z5je4iIqLFhIKJqMc1AbSy5zbE9RETU6DAQUbWp/QJhLC60dxlERERWx0BEZipeGuOt70REJBcMRGTG0sNZeXmMiIgaO95lRpXw4axERCQ3DEREREQkew0qEL3//vtQKBSYPn26tKy4uBjTpk2Dr68vvLy8MHr0aGRkZJh9TqfTYdiwYfDw8EBAQABmzZqF8vJyG1dPREREjqrBjCE6evQoPv/8c3Tu3Nls+YwZM/DLL79g8+bN0Gg0iImJwahRo3DgwAEAd56XNWzYMAQFBeHgwYNIT0/H888/DxcXF7z33nv2OBRZszRoWxiNHMhNRER21SACUUFBAaKiorBmzRosXLhQWp6bm4svvvgCmzZtwuOPPw4AWLduHdq1a4dDhw6hT58++O2333DmzBns2rULgYGB6Nq1K9555x288cYbmDdvHlxdXe11WLJkadC2sbiw0jIiIiJbahCXzKZNm4Zhw4YhMjLSbHlSUhLKysrMlrdt2xZhYWFITEwEACQmJqJTp04IDAyUthk8eDDy8vKQnJxscX8lJSXIy8sze5H1WBq0zYHcRERkTw7fQ/T111/jr7/+wtGjRyut0+v1cHV1hVarNVseGBgIvV4vbVMxDJnWm9ZZsmjRIsyfP98K1RMREVFD4NA9RGlpaXj11VcRHx8PNzc3m+03NjYWubm50ss0voWIiIgaJ4fuIUpKSkJmZia6d+8uLTMYDNi3bx8+++wz7NixA6WlpcjJyTHrJcrIyEBQUBAAICgoCEeOHDFr13QXmmmbu6lUKqhUKisfjeMxGAzQ6XQAOJiZiIjkzaF7iAYOHIhTp07h+PHj0qtnz56IioqS/uzi4oKEhATpMykpKdDpdIiIiAAARERE4NSpU8jMzJS22blzJ9RqNdq3b2/zY3IkOp0OH31/EF/8cRn/d3sS8vPz7V0SERGRXTh0D5G3tzc6duxotszT0xO+vr7S8okTJ2LmzJnw8fGBWq3Gyy+/jIiICPTp0wcAMGjQILRv3x7jxo3D4sWLodfrMXv2bEybNk0WvUBV0foHwTc4FDlZ6fYuhYiIyG4cOhBVx8cffwylUonRo0ejpKQEgwcPxsqVK6X1Tk5O+PnnnzFlyhRERETA09MT0dHRWLBggR2rJiIiIkfS4ALR3r17zd67ublhxYoVWLFixT0/07x5c2zbtq2eKyMiIqKGyqHHEBERERHZAgMRERERyR4DEREREckeAxERERHJXoMbVE3yYzQazGYLDwsLg5OTkx0rIiKixoaBSIZMM1Q3lNmp825mYu3VAjQLL0NOlh6vjQLCw8PtXRYRETUiDEQyZJqhOu9mJrRNW8Av2N4VVU3tFwjf4FB7l0FERI0UA5FMaf2DgAbQO0RERGQLHFRNREREssdARERERLLHS2YyUfFOrYYymJqIiMhWGIhkouKdWrpzJ6Ft2sLeJRERETkMBiIZMd2plZOVbu9Saq1iTxfnIyIiImthIGogTHMHmcg1DJh6ury80jgfERERWQ0DUQNhmjtI6x8k+8kJ1X6BUHur7V0GERE1IgxEDYjWP4iTExIREdUD3nZPREREssceImqQLE0joIDCzlUREVFDxUBEDZKlaQQ4roiIiGqLl8yowTJNI6D29bd3KURE1MAxEBEREZHsMRARERGR7DEQERERkexxUHUjZJrVmg9xJSIiqh4GokbINKt13s1MaJu2gF+wvSsiIiJybAxEjZTWPwhg7xAREVG1cAwRERERyR4DEREREckeL5mRLJkGngNAWFgYnJyc7FwRERHZEwMRyZJp4DkAvDYKCA8Pt3NFRERkTwxEJFt3Bp4TERFxDBERERERAxHVnoBAfl4+8gsKYDTyFn8iImq4eMmMaq2goBDFGRdhKCmC0rWPvcuB0WhAWlqa9J6DpYmIqLoYiKhOPNxcYVSU27sMAEDezUysvVqAZuFlyMnSc7A0ERFVGwMR1TvTpbWcnFvILyiAt6tHve1L7RcI3+DQemufiIgaJwaiRqLivDqO9lBX06U1qPJRqEt2iMtrREREFTEQNRKmeXW0/kHQnTsJbdMW9i7JjIebK7Te7vB0c7V3KURERJXwLrNGROsfBN/gUKh9/e1dChERUYPCQERERESyx0BEREREssdARERERLLn0IFo0aJFeOihh+Dt7Y2AgACMHDkSKSkpZtsUFxdj2rRp8PX1hZeXF0aPHo2MjAyzbXQ6HYYNGwYPDw8EBARg1qxZKC93jLlz6spgMCA1NdXh7iyzN9MkjampqUhNTYXBYLB3SURE5MAcOhD9/vvvmDZtGg4dOoSdO3eirKwMgwYNQmFhobTNjBkz8NNPP2Hz5s34/fffcf36dYwaNUpabzAYMGzYMJSWluLgwYPYsGED1q9fjzlz5tjjkKzOdHfZ/92ehPz8fHuX4zDybmZi7Z4z+OKPy/jo+4PSlARERESWOPRt99u3bzd7v379egQEBCApKQmPPPIIcnNz8cUXX2DTpk14/PHHAQDr1q1Du3btcOjQIfTp0we//fYbzpw5g127diEwMBBdu3bFO++8gzfeeAPz5s2Dq2vDuw284iMq0tLSoPEPBNg7VAknaSQioupy6B6iu+Xm5gIAfHx8AABJSUkoKytDZGSktE3btm0RFhaGxMREAEBiYiI6deqEwMBAaZvBgwcjLy8PycnJNqzeeir2frBniIiIqO4cuoeoIqPRiOnTp6Nfv37o2LEjAECv18PV1RVardZs28DAQOj1emmbimHItN60zpKSkhKUlJRI7/Py8qx1GFZj6v3IyUq3dylEREQNXoPpIZo2bRpOnz6Nr7/+ut73tWjRImg0GukVGsrLLkRERI1ZgwhEMTEx+Pnnn7Fnzx40a9ZMWh4UFITS0lLk5OSYbZ+RkYGgoCBpm7vvOjO9N21zt9jYWOTm5kov03gdIiIiapwcOhAJIRATE4MtW7Zg9+7dCA8PN1vfo0cPuLi4ICEhQVqWkpICnU6HiIgIAEBERAROnTqFzMxMaZudO3dCrVajffv2FverUqmgVqvNXkRERNR4OfQYomnTpmHTpk344Ycf4O3tLY350Wg0cHd3h0ajwcSJEzFz5kz4+PhArVbj5ZdfRkREBPr0ufNE9UGDBqF9+/YYN24cFi9eDL1ej9mzZ2PatGlQqVT2PDwiIiJyEA4diFatWgUAGDBggNnydevWYfz48QCAjz/+GEqlEqNHj0ZJSQkGDx6MlStXSts6OTnh559/xpQpUxAREQFPT09ER0djwYIFtjoMIiIicnAOHYiEqHpuHTc3N6xYsQIrVqy45zbNmzfHtm3brFkaERERNSIOHYiIrKHiRJZhYWFwcnKyc0VERORoGIio0cu7mYm1Vwvg4XEVY3s3R2hoqPTsNwUU9i6PiIgcAAMRyYLaLxDG4kKs3XMGzcLLoDt3EtqmLaD25h2ERETk4Lfdk+0ICOTn5SO/oABGY+N9Lppphm+1r7+9SyEiIgfCHiICABQUFKI44yIMJUVQuvaxdzlEREQ2xUBEEg83VxgV5fYuw6EYDAbodDrpPQdlExE1TgxERPeh0+nw0fcHofUPQk6WHq+NQqUZ04mIqOFjICKqgtY/CL7BfMAvEVFjxkHVREREJHsMRERERCR7DEREREQkewxEREREJHscVE1WZZrgMSfnFvLy86EsNaCwoBBe9i6MiIjoPhiIyKpMEzxClY+bF4/D1d0TpbcL4abV2Ls0IiKie2IgojoTQqCoqAg5Obfu9Aa5uULr7Q53lQvcVM5wMrrYu0QiIqL7YiCiOisqKYNBfw5oYsDt9HPsDSIiogaHgagRqzieJ7+gAN6uHvW2L0+Vs9QrVNP6jKVF9VpbdVl6TAcREckDA1EjVnE8T6Eu2SoPba0YsmozWLri5bUMfSaUhekwOsgDZS09poOIiOSBgaiR8/j/43k83Vyt0l7FkFWby2N3X15rotVAqXKRQlJ992RVhY/pICKSJwYiqjGPCoOma+Puy2sVQ5KpJ8vT1b5TZBmNBqSlpQG40ytGRESNGwMROQRTSLJWT1Zd5d3MxNqrBTCW3Ia2aQv4Bdu7IiIiqk8MRCRrFXuC0tLSzHqD1H6BMBYX2qs0IiKyIQYiMlNx0LO9x/PYgqknqFl4GXTnTrI3iIhIphiIHJzpVvC7ey/qi6XxPI2d2i8QvsGhyMlKt3cpRERkJwxEDs50K3jezUyb9V5YGs9jut2ezyUjIqLGiIGoAdD6BwFW7B2q7oSIluYMup2Xa5OZqG05qSQREREDkQyZ5hIyVDEhoqU5g4y1vNW+tjVac1JJIiKie2EgkikPN1cYFeVVblebR3JYi7UnlSQiIroXBiIZq/SUensX1EhYeiaak5OTHSsiIqKqMBDJhKXww6fU1w9Lz0QLDw+3d1lERHQfDEQOqGIPg7Vut79X+LHnJTFrqe4gcVviM9GIiBoWBiIHVLGHwTRZoDXuumoM4ceS6g4SJyIiuhcGIgdl6mEwTRbIu67ur7qDxK2BY4SIiBofBqIGpLp3XXESxfpheu5ZWloavjl6FU38QzhGiIiokWAgaoRMvUm2mkRRLkzPPTOW3Ia2aQuOESIiakQYiBo4U2+QoaQQylLDf+8ic3OFoaRxjRVyBGq/QBiLC6X3pl4jk7CwMHuURUREdcRA1MCZeoMK8nLh6u4JqAoa9C30pukBDMX/vdxXccoAR3uMh6nXqFl4GbIzrmNs7+YAYJMH8RIRkfUwEDUCHv+/N8itEdxFZpoeoPR2oRTqKk4ZYBpQ7uGqkO66s/dYKbVfoDQAfu2eM9IlNVs8iJeIiKyDgagBauwzTHuqnOFkdKm0rOKA8op33Zl6xGpyn1d9zV109yW16uKda0RE9sVA5EBMfylWNRkjZ5i+w3TXnalHrCaX1hxt7iLObk1EZF8MRA7E9Jdi3s3MKi+5NNZJFqtiaYyRiaVLa/dji7mLTIOuDQYDAEi9PpZ6gDi7NRGR/TAQORitfxDAAbn3ZGmMUUWmoOihcpF6i/Ly86EsNUCU3rb5gOz/3qqfBKXKHc3CW7MHiIjIATEQUYNjaYzR3Sr2Ft28eByu7p5wMpZW6jWyxR1spnFFSjdP+AaHmt2qb+o5un79Ou9MIyKyI1kFohUrVmDJkiXQ6/Xo0qULli9fjl69etm7rEoqPrfM1LvRGAdP17eKlxXdVM5QGisPRq/qMps1niF3t4q36uvOnYRS5W52Z1rFwMTB1UREtiGbQPTNN99g5syZiIuLQ+/evbFs2TIMHjwYKSkpCAgIsFtdlp5sX/EOKlPvxr0uEVH13Wsw+v0usxVk34CyMB1Q5aPgajKKyzvDzRl1DkYVb9VXunma3ZlmCkweHlcxtndzhIbeGVdkCkcVf2cYmIiIrEM2gWjp0qWYNGkSJkyYAACIi4vDL7/8grVr1+LNN9+0W12pqalYGL8Lar9ApJ0/DU1QmDTTdMXejaouEVH13G8wuqXLbKW3C9FEq4HW2x0KBVCqPweDhUtvgOVZw2s7fsl0mW3tnjNoFl5mNu7INPjeaDRWOzCZllVncDcRkRzJIhCVlpYiKSkJsbGx0jKlUonIyEgkJibasbI7Y0cUuTo08Tbg0k0dcotusjfIju6+zGZpPqSKl95MgScn5xYy9JlQFqajsMKs4aZgpTSUori8M3yDzD9j+rOxpEhaVvHSnKknqeJltLS0NGj8A5GbpZcCk2mW7NDQUFy5cgXrfj8HCIEJA9qhRYsW0gNp825mobhcILh5S+RkpkvrS0tLcf36dRgMBigUCri4uMBgMCAkJEQKTKZgZenP9RmsGlqPGOeUotqS2++Oox2vLALRjRs3YDAYEBgYaLY8MDAQ586dq7R9SUkJSkpKpPe5ubkAgLy8PKvXVlhYiFtZmVApBfJuZcP1dhFKi4tRfLsIKW4uyNBnwNXNDaXFxXB1czNbVtV6R/6Mo9RR288Y0vRQ3ryAixcuwsXNDSVpJ3H1wkWo1V53PnO7CBnX3c3OqSFrT6XPmP5cVlwsLUu7cgUeoe3gpgSUru4ovV2E65fO4sjuQviFNEXW1UvwDmgGY+ltKF3d4ebpjeuXU7Dg1F/wC2kK3fkzcDaWwFhajLfPnUKz8FbSZwpzs1GSo4dzwXWkXbkirdedP4PS/CyUFBXBxVWFkOAgpF//D9wDW8FN5YZuJX+iTTN/nP9PFo6pekp1KFzc4O7hhlG92yAoKMjq/38AgF6vx/eHzwNAve7HWkz1emp9UZhzs0HUTI5Bbr87er0e+oP/hp/aCzfyCjDs5Q/RokULq+7D9Pe2ENW4aUXIwLVr1wQAcfDgQbPls2bNEr169aq0/dy5cwXu3PvOF1988cUXX3w18FdaWlqVWUEWPUR+fn5wcnJCRkaG2fKMjAyL6Ts2NhYzZ86U3huNRmRnZ8PX1xcKhaLe65WzvLw8hIaGIi0tDWq12t7l0H3wXDUcPFcNB8+VdQkhkJ+fj5CQkCq3lUUgcnV1RY8ePZCQkICRI0cCuBNyEhISEBMTU2l7lUoFlUpltkyr1dqgUjJRq9X8MmggeK4aDp6rhoPnyno0Gk21tpNFIAKAmTNnIjo6Gj179kSvXr2wbNkyFBYWSnedERERkXzJJhCNGTMGWVlZmDNnDvR6Pbp27Yrt27dXGmhNRERE8iObQAQAMTExFi+RkeNQqVSYO3dupUuW5Hh4rhoOnquGg+fKfhRCVOdeNCIiIqLGS2nvAoiIiIjsjYGIiIiIZI+BiIiIiGSPgYjsYt68eVAoFGavtm3bSuuLi4sxbdo0+Pr6wsvLC6NHj640sSbVj3379mH48OEICQmBQqHA1q1bzdYLITBnzhwEBwfD3d0dkZGRuHDhgtk22dnZiIqKglqthlarxcSJE1FQUGDDo2j8qjpP48ePr/T/2JAhQ8y24XmyjUWLFuGhhx6Ct7c3AgICMHLkSKSkpJhtU53vPJ1Oh2HDhsHDwwMBAQGYNWsWysvLbXkojRoDEdlNhw4dkJ6eLr32798vrZsxYwZ++uknbN68Gb///juuX7+OUaNG2bFa+SgsLESXLl2wYsUKi+sXL16MTz/9FHFxcTh8+DA8PT0xePBgFBcXS9tERUUhOTkZO3fuxM8//4x9+/Zh8uTJtjoEWajqPAHAkCFDzP4f+/e//222nufJNn7//XdMmzYNhw4dws6dO1FWVoZBgwahsLBQ2qaq7zyDwYBhw4ahtLQUBw8exIYNG7B+/XrMmTPHHofUOFnlYWFENTR37lzRpUsXi+tycnKEi4uL2Lx5s7Ts7NmzAoBITEy0UYUkhBAAxJYtW6T3RqNRBAUFiSVLlkjLcnJyhEqlEv/+97+FEEKcOXNGABBHjx6Vtvn111+FQqEQ165ds1ntcnL3eRJCiOjoaDFixIh7fobnyX4yMzMFAPH7778LIar3nbdt2zahVCqFXq+Xtlm1apVQq9WipKTEtgfQSLGHiOzmwoULCAkJQcuWLREVFQWdTgcASEpKQllZGSIjI6Vt27Zti7CwMCQmJtqrXAKQmpoKvV5vdm40Gg169+4tnZvExERotVr07NlT2iYyMhJKpRKHDx+2ec1ytnfvXgQEBODBBx/ElClTcPPmTWkdz5P95ObmAgB8fHwAVO87LzExEZ06dTKbTHjw4MHIy8tDcnKyDatvvGQ1MSM5jt69e2P9+vV48MEHkZ6ejvnz5+Phhx/G6dOnodfr4erqWun5cYGBgdDr9fYpmABA+vnfPcN7xXOj1+sREBBgtt7Z2Rk+Pj48fzY0ZMgQjBo1CuHh4bh06RL+z//5Pxg6dCgSExPh5OTE82QnRqMR06dPR79+/dCxY0cAqNZ3nl6vt/j/nWkd1R0DEdnF0KFDpT937twZvXv3RvPmzfHtt9/C3d3djpURNQ5jx46V/typUyd07twZrVq1wt69ezFw4EA7ViZv06ZNw+nTp83GTJJj4CUzcgharRZt2rTBxYsXERQUhNLSUuTk5Jhtk5GRgaCgIPsUSAAg/fzvvvul4rkJCgpCZmam2fry8nJkZ2fz/NlRy5Yt4efnh4sXLwLgebKHmJgY/Pzzz9izZw+aNWsmLa/Od15QUJDF/+9M66juGIjIIRQUFODSpUsIDg5Gjx494OLigoSEBGl9SkoKdDodIiIi7FglhYeHIygoyOzc5OXl4fDhw9K5iYiIQE5ODpKSkqRtdu/eDaPRiN69e9u8ZrrjP//5D27evIng4GAAPE+2JIRATEwMtmzZgt27dyM8PNxsfXW+8yIiInDq1CmzELtz506o1Wq0b9/eNgfS2Nl7VDfJ02uvvSb27t0rUlNTxYEDB0RkZKTw8/MTmZmZQgghXnrpJREWFiZ2794t/vzzTxERESEiIiLsXLU85Ofni2PHjoljx44JAGLp0qXi2LFj4urVq0IIId5//32h1WrFDz/8IE6ePClGjBghwsPDxe3bt6U2hgwZIrp16yYOHz4s9u/fL1q3bi2eeeYZex1So3S/85Sfny/+9a9/icTERJGamip27dolunfvLlq3bi2Ki4ulNniebGPKlClCo9GIvXv3ivT0dOlVVFQkbVPVd155ebno2LGjGDRokDh+/LjYvn278Pf3F7GxsfY4pEaJgYjsYsyYMSI4OFi4urqKpk2bijFjxoiLFy9K62/fvi2mTp0qmjRpIjw8PMQ//vEPkZ6ebseK5WPPnj0CQKVXdHS0EOLOrfdvv/22CAwMFCqVSgwcOFCkpKSYtXHz5k3xzDPPCC8vL6FWq8WECRNEfn6+HY6m8brfeSoqKhKDBg0S/v7+wsXFRTRv3lxMmjTJ7JZtIXiebMXSeQIg1q1bJ21Tne+8K1euiKFDhwp3d3fh5+cnXnvtNVFWVmbjo2m8+LR7IiIikj2OISIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZYyAiIiIi2WMgIiLZOXDgADp16gQXFxeMHDmyxp/fu3cvFApFpYdx3m38+PG1ap+IbM/Z3gUQEdnazJkz0bVrV/z666/w8vKqt/188skn4MMAiBoG9hARkexcunQJjz/+OJo1awatVmv19g0GA4xGIzQaTb20X1FZWVm9tk8kFwxERGRV27dvR//+/aHVauHr64snn3wSly5dktYfPHgQXbt2hZubG3r27ImtW7dCoVDg+PHj0janT5/G0KFD4eXlhcDAQIwbNw43btyo1v5LSkrwyiuvICAgAG5ubujfvz+OHj0KALhy5QoUCgVu3ryJF154AQqFAuvXr6+yzW3btqFNmzZwd3fHY489hitXrpitX79+PbRaLX788Ue0b98eKpUKOp3O7JLZ6tWrERISAqPRaPbZESNG4IUXXpDe//DDD+jevTvc3NzQsmVLzJ8/H+Xl5dJ6hUKBVatW4e9//zs8PT3x7rvvVuvnQkRVsPPDZYmokfnf//1f8d1334kLFy6IY8eOieHDh4tOnToJg8EgcnNzhY+Pj3juuedEcnKy2LZtm2jTpo0AII4dOyaEEOLWrVvC399fxMbGirNnz4q//vpL/O1vfxOPPfZYtfb/yiuviJCQELFt2zaRnJwsoqOjRZMmTcTNmzdFeXm5SE9PF2q1Wixbtkykp6eLoqKi+7an0+mESqUSM2fOFOfOnRNfffWVCAwMFADErVu3hBBCrFu3Tri4uIi+ffuKAwcOiHPnzonCwkIRHR0tRowYIYQQIjs7W7i6uopdu3ZJbd+8edNs2b59+4RarRbr168Xly5dEr/99pto0aKFmDdvnvQZACIgIECsXbtWXLp0SVy9erWaZ4aI7oeBiIjqVVZWlgAgTp06JVatWiV8fX3F7du3pfVr1qwxC0TvvPOOGDRokFkbaWlpAoBISUm5774KCgqEi4uLiI+Pl5aVlpaKkJAQsXjxYmmZRqMR69atq1b9sbGxon379mbL3njjjUqBCIA4fvy42XYVA5EQQowYMUK88MIL0vvPP/9chISECIPBIIQQYuDAgeK9994za+PLL78UwcHB0nsAYvr06dWqnYiqj5fMiMiqLly4gGeeeQYtW7aEWq1GixYtAAA6nQ4pKSno3Lkz3NzcpO179epl9vkTJ05gz5498PLykl5t27YFALNLb5ZcunQJZWVl6Nevn7TMxcUFvXr1wtmzZ2t1PGfPnkXv3r3NlkVERFTaztXVFZ07d75vW1FRUfjuu+9QUlICAIiPj8fYsWOhVN75Kj5x4gQWLFhgduyTJk1Ceno6ioqKpHZ69uxZq2MhonvjXWZEZFXDhw9H8+bNsWbNGmnMTMeOHVFaWlqtzxcUFGD48OH44IMPKq0LDg62drlW4+7uDoVCcd9thg8fDiEEfvnlFzz00EP4448/8PHHH0vrCwoKMH/+fIwaNarSZyuGSE9PT+sVTkQAGIiIyIpu3ryJlJQUrFmzBg8//DAAYP/+/dL6Bx98EF999RVKSkqgUqkAQBrwbNK9e3d89913aNGiBZyda/YV1apVK7i6uuLAgQNo3rw5gDt3YR09ehTTp0+v1TG1a9cOP/74o9myQ4cO1aotNzc3jBo1CvHx8bh48SIefPBBdO/eXVrfvXt3pKSk4IEHHqhV+0RUe7xkRkRW06RJE/j6+mL16tW4ePEidu/ejZkzZ0rrn332WRiNRkyePBlnz57Fjh078OGHHwKA1Lsybdo0ZGdn45lnnsHRo0dx6dIl7NixAxMmTIDBYLjv/j09PTFlyhTMmjUL27dvx5kzZzBp0iQUFRVh4sSJtTqml156CRcuXMCsWbOQkpKCTZs2VevOtHuJiorCL7/8grVr1yIqKsps3Zw5c7Bx40bMnz8fycnJOHv2LL7++mvMnj271vsjouphICIiq1Eqlfj666+RlJSEjh07YsaMGViyZIm0Xq1W46effsLx48fRtWtXvPXWW5gzZw6A/14SCgkJwYEDB2AwGDBo0CB06tQJ06dPh1arlcba3M/777+P0aNHY9y4cejevTsuXryIHTt2oEmTJrU6prCwMHz33XfYunUrunTpgri4OLz33nu1agsAHn/8cfj4+CAlJQXPPvus2brBgwfj559/xm+//YaHHnoIffr0wccffyz1dhFR/VEIwWlUich+4uPjMWHCBOTm5sLd3d3e5RCRTHEMERHZ1MaNG9GyZUs0bdoUJ06cwBtvvIGnn36aYYiI7IqXzIjIpvR6PZ577jm0a9cOM2bMwFNPPYXVq1dX67M6nc7slvS7Xzqdrsb1vPTSS/ds76WXXqpxe0TUMPGSGRE1GOXl5ZUem1FRbe5My8zMRF5ensV1arUaAQEBNWqPiBomBiIiIiKSPV4yIyIiItljICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZ+3/5JRCo3zSRRAAAAABJRU5ErkJggg==",
+ "text/plain": [
+ "