Assignment 4
Assignment 4
Assignment 4
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Assignment-4.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "fTWkHMra4voE",
"colab_type": "code",
"outputId": "e63c9d22-5da2-4d3d-8ffa-bc2f566ae044",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
}
},
"source": [
"\n",
"# Load the Drive helper and mount\n",
"from google.colab import drive\n",
"drive.mount('/content/drive')"
],
"execution_count": 121,
"outputs": [
{
"output_type": "stream",
"text": [
"Mounted at /content/drive\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "P0A7SxIS43gA",
"colab_type": "code",
"colab": {}
},
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import os\n",
"from imblearn.over_sampling import SMOTE\n",
"from prettytable import PrettyTable\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.metrics import confusion_matrix\n",
"from collections import Counter\n",
"from sklearn.feature_extraction.text import
TfidfVectorizer\n",
"from sklearn.feature_extraction.text import
CountVectorizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import StandardScaler\n",
"from gensim.models import Word2Vec\n",
"from scipy.sparse import hstack\n",
"\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "11IpJTQH44lI",
"colab_type": "code",
"outputId": "4e8131c5-0b05-42f9-fc91-8f3ebdff9919",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 199
}
},
"source": [
"train=pd.read_csv('/content/drive/My
Drive/assignment3/assignment3/train_data.csv',nrows=50000)\n",
"#test=pd.read_csv('C:\\\\Users\\\\SHAILENDRA\\\\Desktop\\\\APPLI
ED AI\\\\assignment3\\\\test_data.csv')\n",
"resources=pd.read_csv('/content/drive/My
Drive/assignment3/assignment3/resources.csv')\n",
"\n",
"#removing three null values as i will be using teacher
prefix\n",
"train=train.loc[train.iloc[:,3].notnull()]\n",
"#train=train.sample(50000,random_state=42)\n",
"\n",
"#train.drop(['project_essay_3','project_essay_4'],inplace=True,a
xis=1)\n",
"train=pd.merge(train,resources.groupby('id').agg({'quantity':'su
m','price':'sum'}),on='id',how='left')\n",
"print(\"shape of train data:\",train.shape)\n",
"print(\"*\"*50)\n",
"print(\"columns:\",train.columns)"
],
"execution_count": 123,
"outputs": [
{
"output_type": "stream",
"text": [
"shape of train data: (49998, 19)\n",
"**************************************************\n",
"columns: Index(['Unnamed: 0', 'id', 'teacher_id',
'teacher_prefix', 'school_state',\n",
" 'project_submitted_datetime',
'project_grade_category',\n",
" 'project_subject_categories',
'project_subject_subcategories',\n",
" 'project_title', 'project_essay_1',
'project_essay_2',\n",
" 'project_essay_3', 'project_essay_4',
'project_resource_summary',\n",
"
'teacher_number_of_previously_posted_projects',
'project_is_approved',\n",
" 'quantity', 'price'],\n",
" dtype='object')\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "zj8dTCy05DG_",
"colab_type": "code",
"colab": {}
},
"source": [
"y=train.project_is_approved\n",
"train.drop(['project_is_approved'],inplace=True,axis=1)\n",
"x_train, x_test, y_train,
y_test=train_test_split(train,y,test_size=0.2,stratify=y
,random_state=42)\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "tTmWW9g55JdX",
"colab_type": "code",
"outputId": "643adc63-fb52-430e-dc97-3068278860d0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 708
}
},
"source": [
"#extracting only dates from datetime as datetime would
lead to lots of unique data points\n",
"x_train['project_submitted_weekday']=pd.to_datetime(x_train.proj
ect_submitted_datetime).dt.weekday\n",
"x_train['project_submitted_day']=pd.to_datetime(x_train.project_
submitted_datetime).dt.day\n",
"x_train['project_submitted_month']=pd.to_datetime(x_train.projec
t_submitted_datetime).dt.month\n",
"#x_train.rename(columns={'project_submitted_datetime':'project_s
ubmitted_date'})\n",
"print(\"training done!\")\n",
"\n",
"x_test['project_submitted_weekday']=pd.to_datetime(x_test.projec
t_submitted_datetime).dt.weekday\n",
"x_test['project_submitted_day']=pd.to_datetime(x_test.project_su
bmitted_datetime).dt.day\n",
"x_test['project_submitted_month']=pd.to_datetime(x_test.project_
submitted_datetime).dt.month\n",
"print(\"testing done!\")\n",
"\n"
],
"execution_count": 125,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:1: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" \"\"\"Entry point for launching an IPython
kernel.\n",
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" \n",
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" This is separate from the ipykernel package so we
can avoid doing imports until\n",
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:7: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" import sys\n",
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:8: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" \n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"training done!\n",
"testing done!\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:9: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" if __name__ == '__main__':\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "8E71T0YK5KLL",
"colab_type": "code",
"colab": {}
},
"source": [
"#teacher prefix\n",
"from sklearn.preprocessing import OneHotEncoder\n",
"train.teacher_prefix.unique()\n",
"encoder=OneHotEncoder(handle_unknown='ignore')\n",
"x_train_project_submitted_day=encoder.fit_transform(x_train.proj
ect_submitted_day.values.reshape(-1,1))\n",
"x_test_project_submitted_day=encoder.transform(x_test.project_su
bmitted_day.values.reshape(-1,1))\n",
"\n",
"encoder=OneHotEncoder(handle_unknown='ignore')\n",
"x_train_project_submitted_month=encoder.fit_transform(x_train.pr
oject_submitted_month.values.reshape(-1,1))\n",
"x_test_project_submitted_month=encoder.transform(x_test.project_
submitted_month.values.reshape(-1,1))\n",
"\n",
"encoder=OneHotEncoder(handle_unknown='ignore')\n",
"x_train_project_submitted_weekday=encoder.fit_transform(x_train.
project_submitted_weekday.values.reshape(-1,1))\n",
"x_test_project_submitted_weekday=encoder.transform(x_test.projec
t_submitted_weekday.values.reshape(-1,1))\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "eR8Spic15NnE",
"colab_type": "code",
"outputId": "f74dc638-e04e-472d-cf2d-c5ce3c6d10fa",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 292
}
},
"source": [
"#subjectlist\n",
"def clean_categories(dataframe,column):\n",
" my_list=list(column)\n",
" sublist=[]\n",
" for i in my_list:\n",
" temp=\"\"\n",
" for j in i.split(','):\n",
" #print(j)\n",
" j=j.replace(\" \",'')\n",
" temp+=j.strip()+\" \"\n",
" temp=temp.replace('&','_')\n",
" sublist.append(temp)\n",
" dataframe['clean_categories']=sublist\n",
"
dataframe.drop(['project_subject_categories'],inplace=True,axis=1
)\n",
" return sublist\n",
"\n",
"\n",
"ta=clean_categories(x_train,x_train.project_subject_categories)\
n",
"my_subs=[j for i in ta for j in
i.rstrip().split(\" \")]\n",
"subject_dict=dict( Counter(my_subs))\n",
"\n",
"clean_categories( x_test,x_test.project_subject_categories)\n",
"\n",
"print('done!')\n",
"\n",
"\n",
"from sklearn.feature_extraction.text import
CountVectorizer\n",
"vectorizer =
CountVectorizer(vocabulary=subject_dict.keys() ,lowercase=False,
binary=True)\n",
"categories_one_hot_train =
vectorizer.fit_transform(x_train.clean_categories.values)\n",
"categories_one_hot_test =
vectorizer.transform(x_test.clean_categories.values)\n",
"print(vectorizer.get_feature_names())\n",
"print(\"Shape of matrix after one hot
encodig \",categories_one_hot_train.shape)\n",
"\n"
],
"execution_count": 127,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:12: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" if sys.path[0] == '':\n",
"/usr/local/lib/python3.6/dist-
packages/pandas/core/frame.py:3940: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" errors=errors)\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"done!\n",
"['Math_Science', 'Literacy_Language',
'AppliedLearning', 'Music_TheArts', 'Health_Sports',
'SpecialNeeds', 'History_Civics', 'Warmth', 'Care_Hunger']\n",
"Shape of matrix after one hot encodig (39998, 9)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lse2aU5S5b2b",
"colab_type": "code",
"outputId": "5337cf80-bc41-4286-9790-fb905c44a434",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 292
}
},
"source": [
"#subject subcategories\n",
"def clean_subcategories(dataframe,column):\n",
" my_list=list(column)\n",
" subj_sub_list=[]\n",
" for i in my_list:\n",
" temp=\"\"\n",
" for j in i.split(','):\n",
" #print(j)\n",
" j=j.replace(\" \",'')\n",
" temp+=j.strip()+\" \"\n",
" temp=temp.replace('&','_')\n",
" subj_sub_list.append(temp)\n",
" dataframe['clean_subcategories']=subj_sub_list\n",
"
dataframe.drop(['project_subject_subcategories'],inplace=True,axi
s=1)\n",
" return subj_sub_list\n",
"\n",
" \n",
"\n",
"subj_sub_list=clean_subcategories(x_train,x_train.project_subjec
t_subcategories)\n",
"my_subs=[j for i in subj_sub_list for j in
i.rstrip().split(\" \")]\n",
"subject_sub_dict=dict( Counter(my_subs))\n",
"\n",
"clean_subcategories( x_test,x_test.project_subject_subcategories
)\n",
"\n",
"print('done!')\n",
"\n",
"from sklearn.feature_extraction.text import
CountVectorizer\n",
"vectorizer =
CountVectorizer(vocabulary=subject_sub_dict.keys()
,lowercase=False, binary=True)\n",
"subcategories_one_hot_train =
vectorizer.fit_transform(x_train.clean_subcategories.values)\n",
"subcategories_one_hot_test =
vectorizer.transform(x_test.clean_subcategories.values)\n",
"print(vectorizer.get_feature_names())\n",
"print(\"Shape of matrix after one hot
encodig \",categories_one_hot_test.shape)\n"
],
"execution_count": 128,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:12: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" if sys.path[0] == '':\n",
"/usr/local/lib/python3.6/dist-
packages/pandas/core/frame.py:3940: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" errors=errors)\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"done!\n",
"['Health_LifeScience', 'Literacy', 'Other',
'Literature_Writing', 'VisualArts', 'Gym_Fitness',
'Health_Wellness', 'ESL', 'Mathematics', 'PerformingArts',
'AppliedSciences', 'CommunityService', 'Extracurricular',
'SpecialNeeds', 'EarlyDevelopment', 'EnvironmentalScience',
'SocialSciences', 'NutritionEducation', 'History_Geography',
'Music', 'FinancialLiteracy', 'TeamSports', 'Civics_Government',
'Economics', 'College_CareerPrep', 'CharacterEducation',
'Warmth', 'Care_Hunger', 'ForeignLanguages',
'ParentInvolvement']\n",
"Shape of matrix after one hot encodig (10000, 9)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "EE4-eQRX5fwb",
"colab_type": "code",
"outputId": "2f4cab72-b0c7-4117-a445-564e4ad8dd0e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 235
}
},
"source": [
"#teacher prefix\n",
"from sklearn.preprocessing import OneHotEncoder\n",
"train.teacher_prefix.unique()\n",
"encoder=OneHotEncoder(handle_unknown='ignore')\n",
"onehot_teacherprefix_train=encoder.fit_transform(x_train.iloc[:,
3].values.reshape(-1,1))\n",
"onehot_teacherprefix_test=encoder.transform(x_test.iloc[:,3].val
ues.reshape(-1,1))\n",
"\n",
"\n",
"#encoding schoolstate for all three datasets\n",
"encoder=OneHotEncoder(handle_unknown='ignore')\n",
"onehot_schoolstate_train=encoder.fit_transform(x_train.iloc[:,4]
.values.reshape(-1,1))\n",
"onehot_schoolstate_test=encoder.transform(x_test.iloc[:,4].value
s.reshape(-1,1))\n",
"\n",
"#grade prefix sort of a label encoding\n",
"x_train['project_grade_encoded']=x_train.project_grade_category.
map({'Grades PreK-2':0, 'Grades 6-8':2, 'Grades 3-5':1,'Grades 9-
12':3})\n",
"x_test['project_grade_encoded']=x_test.project_grade_category.ma
p({'Grades PreK-2':0, 'Grades 6-8':2, 'Grades 3-5':1,'Grades 9-
12':3})\n",
"\n",
"\n"
],
"execution_count": 129,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:14: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" \n",
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:15: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
" from ipykernel import kernelapp as app\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "S7uGuY6s5gmf",
"colab_type": "code",
"outputId": "5e94d3a8-03ef-46d1-c7ee-33ec8e75613e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"import re\n",
"from sklearn.feature_selection import
SelectKBest,chi2\n",
"import nltk\n",
"sno = nltk.stem.SnowballStemmer('english')\n",
"def decontracted(phrase):\n",
" # specific\n",
" phrase = re.sub(r\"won't\", \"will not\", phrase)\n",
" phrase = re.sub(r\"can\\'t\", \"can not\",
phrase)\n",
"\n",
" # general\n",
" phrase = re.sub(r\"n\\'t\", \" not\", phrase)\n",
" phrase = re.sub(r\"\\'re\", \" are\", phrase)\n",
" phrase = re.sub(r\"\\'s\", \" is\", phrase)\n",
" phrase = re.sub(r\"\\'d\", \" would\", phrase)\n",
" phrase = re.sub(r\"\\'ll\", \" will\", phrase)\n",
" phrase = re.sub(r\"\\'t\", \" not\", phrase)\n",
" phrase = re.sub(r\"\\'ve\", \" have\", phrase)\n",
" phrase = re.sub(r\"\\'m\", \" am\", phrase)\n",
" return phrase\n",
"# we are removing the words from the stop words list:
'no', 'nor', 'not'\n",
"stopwords= ['i', 'me', 'my', 'myself', 'we', 'our',
'ours', 'ourselves', 'you', \"you're\", \"you've\",\\\n",
" \"you'll\", \"you'd\", 'your', 'yours',
'yourself', 'yourselves', 'he', 'him', 'his', 'himself', \\\n",
" 'she', \"she's\", 'her', 'hers', 'herself',
'it', \"it's\", 'its', 'itself', 'they', 'them', 'their',\\\n",
" 'theirs', 'themselves', 'what', 'which',
'who', 'whom', 'this', 'that', \"that'll\", 'these',
'those', \\\n",
" 'am', 'is', 'are', 'was', 'were', 'be',
'been', 'being', 'have', 'has', 'had', 'having', 'do',
'does', \\\n",
" 'did', 'doing', 'a', 'an', 'the', 'and',
'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of',
\\\n",
" 'at', 'by', 'for', 'with', 'about',
'against', 'between', 'into', 'through', 'during', 'before',
'after',\\\n",
" 'above', 'below', 'to', 'from', 'up', 'down',
'in', 'out', 'on', 'off', 'over', 'under', 'again',
'further',\\\n",
" 'then', 'once', 'here', 'there', 'when',
'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few',
'more',\\\n",
" 'most', 'other', 'some', 'such', 'only',
'own', 'same', 'so', 'than', 'too', 'very', \\\n",
" 's', 't', 'can', 'will', 'just',
'don', \"don't\", 'should', \"should've\", 'now', 'd', 'll', 'm',
'o', 're', \\\n",
" 've', 'y', 'ain', 'aren', \"aren't\",
'couldn', \"couldn't\", 'didn', \"didn't\", 'doesn', \"doesn't\",
'hadn',\\\n",
" \"hadn't\", 'hasn', \"hasn't\",
'haven', \"haven't\", 'isn', \"isn't\", 'ma',
'mightn', \"mightn't\", 'mustn',\\\n",
" \"mustn't\", 'needn', \"needn't\",
'shan', \"shan't\", 'shouldn', \"shouldn't\", 'wasn', \"wasn't\",
'weren', \"weren't\", \\\n",
" 'won', \"won't\", 'wouldn', \"wouldn't\"]\n",
"\n",
"from tqdm import tqdm\n",
"def get_essay(train):\n",
" if(train['project_essay_3'].isna().all()==False and
train['project_essay_4'].isna().all()==False ):\n",
" train['essay']=train[\"project_essay_1\"].map(str)
+ train[\"project_essay_2\"].map(str) +
train[\"project_essay_3\"].map(str)
+train[\"project_essay_4\"].map(str)\n",
" else:\n",
" train['essay']=train[\"project_essay_1\"].map(str)
+ train[\"project_essay_2\"].map(str) \n",
"# tqdm is for printing the status bar\n",
"def preprocessing_essay(column):\n",
" preprocessed_essays = []\n",
" for sentance in tqdm(column.values):\n",
" sent = decontracted(sentance)\n",
" sent = sent.replace('\\\\r', ' ')\n",
" sent = sent.replace('\\\\\"', ' ')\n",
" sent = sent.replace('\\\\n', ' ')\n",
" sent = re.sub('[^A-Za-z0-9]+', ' ', sent)\n",
" sent = ' '.join(sno.stem(e) for e in sent.split()
if e.lower() not in stopwords)\n",
"
preprocessed_essays.append(sent.lower().strip())\n",
" return preprocessed_essays\n",
"get_essay(x_train)\n",
"preprocessed_essays_train=preprocessing_essay(x_train.essay)\n",
"\n",
"get_essay(x_test)\n",
"preprocessed_essays_test=preprocessing_essay(x_test.essay)\n",
" \n",
"print('done!')\n",
"from sklearn.feature_extraction.text import
TfidfVectorizer\n",
"vectorizertf_essay = TfidfVectorizer(max_features=5000,
min_df=20)\n",
"\n",
"text_tfidf_train =
vectorizertf_essay.fit_transform(preprocessed_essays_train)\n",
"selector = SelectKBest(chi2, k = 2000 )\n",
"text_tfidf_train=selector.fit_transform(text_tfidf_train,y_train
)\n",
"text_tfidf_test =
vectorizertf_essay.transform(preprocessed_essays_test)\n",
"text_tfidf_test= selector.transform(text_tfidf_test)\n",
"\n",
"print(\"Shape of matrix after one hot
encodig \",text_tfidf_test.shape) \n",
"\n",
"vectorizerc_essay = CountVectorizer(min_df=10,
max_features=2000)\n",
"x_train_essay_bow =
vectorizerc_essay.fit_transform(x_train['essay'].values)\n",
"x_test_essay_bow =
vectorizerc_essay.transform(x_test['essay'].values)\n",
"print(x_train_essay_bow.shape)\n",
"print(x_test_essay_bow.shape)"
],
"execution_count": 130,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-
packages/ipykernel_launcher.py:26: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from
a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value
instead\n",
"\n",
"See the caveats in the documentation:
http://pandas.pydata.org/pandas-
docs/stable/indexing.html#indexing-view-versus-copy\n",
"\n",
" 0%| | 0/39998 [00:00<?, ?it/s]\u001b[A\n",
" 0%| | 44/39998 [00:00<01:31,
435.25it/s]\u001b[A\n",
" 0%| | 87/39998 [00:00<01:32,
431.71it/s]\u001b[A\n",
" 0%| | 131/39998 [00:00<01:32,
431.58it/s]\u001b[A\n",
" 0%| | 169/39998 [00:00<01:36,
412.24it/s]\u001b[A\n",
" 1%| | 211/39998 [00:00<01:36,
413.67it/s]\u001b[A\n",
" 1%| | 252/39998 [00:00<01:36,
412.33it/s]\u001b[A\n",
" 1%| | 293/39998 [00:00<01:36,
410.75it/s]\u001b[A\n",
" 1%| | 333/39998 [00:00<01:37,
406.17it/s]\u001b[A\n",
" 1%| | 380/39998 [00:00<01:33,
421.95it/s]\u001b[A\n",
" 1%| | 424/39998 [00:01<01:32,
426.90it/s]\u001b[A\n",
" 1%| | 468/39998 [00:01<01:32,
428.93it/s]\u001b[A\n",
" 1%| | 558/39998 [00:01<01:31,
430.44it/s]\u001b[A\n",
" 2%| | 644/39998 [00:01<01:35,
412.37it/s]\u001b[A\n",
" 2%| | 730/39998 [00:01<01:35,
410.54it/s]\u001b[A\n",
" 2%| | 819/39998 [00:01<01:32,
421.57it/s]\u001b[A\n",
" 2%| | 906/39998 [00:02<01:33,
417.26it/s]\u001b[A\n",
" 2%| | 995/39998 [00:02<01:30,
428.85it/s]\u001b[A\n",
" 3%| | 1083/39998 [00:02<01:29,
433.49it/s]\u001b[A\n",
" 3%| | 1170/39998 [00:02<01:32,
421.68it/s]\u001b[A\n",
" 3%| | 1258/39998 [00:02<01:30,
427.93it/s]\u001b[A\n",
" 3%| | 1347/39998 [00:03<01:29,
432.83it/s]\u001b[A\n",
" 3%| | 1434/39998 [00:03<01:32,
416.26it/s]\u001b[A\n",
" 4%| | 1521/39998 [00:03<01:31,
421.88it/s]\u001b[A\n",
" 4%| | 1607/39998 [00:03<01:31,
418.71it/s]\u001b[A\n",
" 4%| | 1691/39998 [00:04<01:31,
418.08it/s]\u001b[A\n",
" 4%| | 1778/39998 [00:04<01:30,
420.82it/s]\u001b[A\n",
" 5%| | 1863/39998 [00:04<01:31,
415.21it/s]\u001b[A\n",
" 5%| | 1950/39998 [00:04<01:31,
415.17it/s]\u001b[A\n",
" 5%| | 2035/39998 [00:04<01:30,
417.58it/s]\u001b[A\n",
" 5%| | 2119/39998 [00:05<01:34,
402.89it/s]\u001b[A\n",
" 5%| | 2203/39998 [00:05<01:32,
408.06it/s]\u001b[A\n",
" 6%| | 2285/39998 [00:05<01:34,
400.41it/s]\u001b[A\n",
" 6%| | 2371/39998 [00:05<01:31,
410.61it/s]\u001b[A\n",
" 6%| | 2455/39998 [00:05<01:32,
406.62it/s]\u001b[A\n",
" 6%| | 2545/39998 [00:06<01:28,
422.71it/s]\u001b[A\n",
" 6%| | 2633/39998 [00:06<01:29,
419.13it/s]\u001b[A\n",
" 7%| | 2723/39998 [00:06<01:27,
426.58it/s]\u001b[A\n",
" 7%| | 2810/39998 [00:06<01:27,
426.27it/s]\u001b[A\n",
" 7%| | 2896/39998 [00:06<01:28,
417.66it/s]\u001b[A\n",
" 7%| | 2980/39998 [00:07<01:29,
414.09it/s]\u001b[A\n",
" 8%| | 3069/39998 [00:07<01:26,
427.46it/s]\u001b[A\n",
" 8%| | 3155/39998 [00:07<01:28,
415.49it/s]\u001b[A\n",
" 8%| | 3239/39998 [00:07<01:29,
411.39it/s]\u001b[A\n",
" 8%| | 3325/39998 [00:07<01:27,
419.61it/s]\u001b[A\n",
" 8%| | 3411/39998 [00:08<01:26,
422.21it/s]\u001b[A\n",
" 9%| | 3496/39998 [00:08<01:28,
411.38it/s]\u001b[A\n",
" 9%| | 3581/39998 [00:08<01:27,
415.96it/s]\u001b[A\n",
" 9%| | 3672/39998 [00:08<01:24,
430.33it/s]\u001b[A\n",
" 9%| | 3760/39998 [00:08<01:25,
424.98it/s]\u001b[A\n",
" 10%| | 3846/39998 [00:09<01:26,
415.91it/s]\u001b[A\n",
" 10%| | 3937/39998 [00:09<01:23,
432.43it/s]\u001b[A\n",
" 10%| | 4023/39998 [00:09<01:29,
403.63it/s]\u001b[A\n",
" 10%| | 4108/39998 [00:09<01:27,
411.90it/s]\u001b[A\n",
" 10%| | 4192/39998 [00:10<01:27,
410.12it/s]\u001b[A\n",
" 11%| | 4278/39998 [00:10<01:25,
417.48it/s]\u001b[A\n",
" 11%| | 4365/39998 [00:10<01:24,
424.02it/s]\u001b[A\n",
" 11%| | 4451/39998 [00:10<01:26,
411.32it/s]\u001b[A\n",
" 11%| | 8532/39998 [00:20<01:16,
411.79it/s]\u001b[A\n",
" 21%| | 8617/39998 [00:20<01:16,
409.93it/s]\u001b[A\n",
" 22%| | 8705/39998 [00:20<01:14,
420.22it/s]\u001b[A\n",
" 22%| | 8793/39998 [00:20<01:13,
425.10it/s]\u001b[A\n",
" 22%| | 8878/39998 [00:21<01:15,
412.05it/s]\u001b[A\n",
" 22%| | 8968/39998 [00:21<01:12,
426.53it/s]\u001b[A\n",
" 23%| | 9055/39998 [00:21<01:13,
418.35it/s]\u001b[A\n",
" 23%| | 9141/39998 [00:21<01:13,
419.98it/s]\u001b[A\n",
" 23%| | 9231/39998 [00:22<01:12,
422.42it/s]\u001b[A\n",
" 23%| | 9317/39998 [00:22<01:13,
418.20it/s]\u001b[A\n",
" 23%| | 9403/39998 [00:22<01:13,
416.03it/s]\u001b[A\n",
" 24%| | 9494/39998 [00:22<01:10,
434.39it/s]\u001b[A\n",
" 24%| | 9583/39998 [00:22<01:10,
433.33it/s]\u001b[A\n",
" 24%| | 9673/39998 [00:23<01:09,
435.23it/s]\u001b[A\n",
" 24%| | 9760/39998 [00:23<01:11,
422.29it/s]\u001b[A\n",
" 25%| | 9845/39998 [00:23<01:14,
407.38it/s]\u001b[A\n",
" 25%| | 9933/39998 [00:23<01:11,
419.78it/s]\u001b[A\n",
" 25%| | 10021/39998 [00:23<01:10,
424.41it/s]\u001b[A\n",
" 25%| | 10107/39998 [00:24<01:10,
422.34it/s]\u001b[A\n",
" 25%| | 10192/39998 [00:24<01:12,
413.02it/s]\u001b[A\n",
" 26%| | 10276/39998 [00:24<01:11,
415.09it/s]\u001b[A\n",
" 26%| | 10367/39998 [00:24<01:08,
429.45it/s]\u001b[A\n",
" 26%| | 10456/39998 [00:24<01:08,
428.87it/s]\u001b[A\n",
" 26%| | 10542/39998 [00:25<01:10,
420.27it/s]\u001b[A\n",
" 26%| | 10628/39998 [00:25<01:10,
417.14it/s]\u001b[A\n",
" 27%| | 10719/39998 [00:25<01:09,
423.74it/s]\u001b[A\n",
" 27%| | 10811/39998 [00:25<01:06,
440.49it/s]\u001b[A\n",
" 27%| | 10901/39998 [00:25<01:08,
425.48it/s]\u001b[A\n",
" 27%| | 10988/39998 [00:26<01:09,
419.63it/s]\u001b[A\n",
" 28%| | 11075/39998 [00:26<01:09,
413.76it/s]\u001b[A\n",
" 28%| | 11158/39998 [00:26<01:12,
397.46it/s]\u001b[A\n",
" 28%| | 11249/39998 [00:26<01:07,
423.21it/s]\u001b[A\n",
" 28%| | 11335/39998 [00:27<01:08,
421.46it/s]\u001b[A\n",
" 28%| | 11423/39998 [00:27<01:06,
427.34it/s]\u001b[A\n",
" 29%| | 11509/39998 [00:27<01:08,
416.49it/s]\u001b[A\n",
" 29%| | 11593/39998 [00:27<01:10,
403.14it/s]\u001b[A\n",
" 29%| | 11675/39998 [00:27<01:10,
403.27it/s]\u001b[A\n",
" 29%| | 11762/39998 [00:28<01:07,
415.36it/s]\u001b[A\n",
" 30%| | 11847/39998 [00:28<01:08,
408.16it/s]\u001b[A\n",
" 30%| | 11934/39998 [00:28<01:07,
417.95it/s]\u001b[A\n",
" 30%| | 12019/39998 [00:28<01:06,
418.77it/s]\u001b[A\n",
" 30%| | 12109/39998 [00:28<01:05,
426.79it/s]\u001b[A\n",
" 30%| | 12197/39998 [00:29<01:04,
429.33it/s]\u001b[A\n",
" 31%| | 12285/39998 [00:29<01:05,
422.77it/s]\u001b[A\n",
" 31%| | 12374/39998 [00:29<01:04,
430.91it/s]\u001b[A\n",
" 31%| | 12462/39998 [00:29<01:05,
422.90it/s]\u001b[A\n",
" 31%| | 12506/39998 [00:29<01:04,
425.20it/s]\u001b[A\n",
" 31%| | 12551/39998 [00:29<01:03,
430.32it/s]\u001b[A\n",
" 31%| | 12595/39998 [00:30<01:05,
416.45it/s]\u001b[A\n",
" 32%| | 12638/39998 [00:30<01:05,
419.73it/s]\u001b[A\n",
" 32%| | 12681/39998 [00:30<01:07,
402.46it/s]\u001b[A\n",
" 32%| | 12722/39998 [00:30<01:07,
404.07it/s]\u001b[A\n",
" 32%| | 12765/39998 [00:30<01:06,
409.41it/s]\u001b[A\n",
" 32%| | 12807/39998 [00:30<01:06,
407.18it/s]\u001b[A\n",
" 32%| | 12852/39998 [00:30<01:04,
417.88it/s]\u001b[A\n",
" 32%| | 12895/39998 [00:30<01:04,
421.28it/s]\u001b[A\n",
" 32%| | 12938/39998 [00:30<01:06,
409.03it/s]\u001b[A\n",
" 32%| | 12982/39998 [00:30<01:04,
416.85it/s]\u001b[A\n",
" 33%| | 13024/39998 [00:31<01:07,
402.56it/s]\u001b[A\n",
" 33%| | 13065/39998 [00:31<01:06,
402.69it/s]\u001b[A\n",
" 33%| | 13106/39998 [00:31<01:06,
401.53it/s]\u001b[A\n",
" 33%| | 13151/39998 [00:31<01:04,
414.72it/s]\u001b[A\n",
" 33%| | 13193/39998 [00:31<01:06,
405.22it/s]\u001b[A\n",
" 33%| | 13238/39998 [00:31<01:04,
415.90it/s]\u001b[A\n",
" 33%| | 13280/39998 [00:31<01:06,
402.32it/s]\u001b[A\n",
" 33%| | 13324/39998 [00:31<01:05,
410.28it/s]\u001b[A\n",
" 33%| | 13366/39998 [00:31<01:05,
409.51it/s]\u001b[A\n",
" 34%| | 13408/39998 [00:31<01:04,
411.91it/s]\u001b[A\n",
" 34%| | 13450/39998 [00:32<01:04,
410.06it/s]\u001b[A\n",
" 34%| | 13492/39998 [00:32<01:04,
410.08it/s]\u001b[A\n",
" 34%| | 13534/39998 [00:32<01:06,
396.82it/s]\u001b[A\n",
" 34%| | 13579/39998 [00:32<01:04,
410.37it/s]\u001b[A\n",
" 34%| | 13622/39998 [00:32<01:03,
415.53it/s]\u001b[A\n",
" 34%| | 13665/39998 [00:32<01:02,
419.75it/s]\u001b[A\n",
" 34%| | 13708/39998 [00:32<01:02,
420.44it/s]\u001b[A\n",
" 34%| | 13751/39998 [00:32<01:03,
416.55it/s]\u001b[A\n",
" 34%| | 13795/39998 [00:32<01:02,
420.80it/s]\u001b[A\n",
" 35%| | 13838/39998 [00:33<01:02,
420.76it/s]\u001b[A\n",
" 35%| | 13881/39998 [00:33<01:01,
423.29it/s]\u001b[A\n",
" 35%| | 13924/39998 [00:33<01:01,
422.34it/s]\u001b[A\n",
" 35%| | 13967/39998 [00:33<01:02,
414.80it/s]\u001b[A\n",
" 35%| | 14010/39998 [00:33<01:02,
416.76it/s]\u001b[A\n",
" 35%| | 14052/39998 [00:33<01:03,
408.51it/s]\u001b[A\n",
" 35%| | 14095/39998 [00:33<01:02,
414.63it/s]\u001b[A\n",
" 35%| | 14138/39998 [00:33<01:02,
416.38it/s]\u001b[A\n",
" 35%| | 14180/39998 [00:33<01:02,
415.36it/s]\u001b[A\n",
" 36%| | 14222/39998 [00:33<01:03,
405.07it/s]\u001b[A\n",
" 36%| | 14266/39998 [00:34<01:02,
412.29it/s]\u001b[A\n",
" 36%| | 14309/39998 [00:34<01:01,
416.43it/s]\u001b[A\n",
" 36%| | 14352/39998 [00:34<01:01,
418.23it/s]\u001b[A\n",
" 36%| | 14394/39998 [00:34<01:01,
416.34it/s]\u001b[A\n",
" 36%| | 14436/39998 [00:34<01:01,
414.39it/s]\u001b[A\n",
" 36%| | 14478/39998 [00:34<01:01,
412.81it/s]\u001b[A\n",
" 36%| | 14520/39998 [00:34<01:03,
404.26it/s]\u001b[A\n",
" 36%| | 14565/39998 [00:34<01:01,
415.63it/s]\u001b[A\n",
" 37%| | 14609/39998 [00:34<01:00,
422.61it/s]\u001b[A\n",
" 37%| | 14652/39998 [00:34<01:00,
418.88it/s]\u001b[A\n",
" 37%| | 14694/39998 [00:35<01:00,
418.52it/s]\u001b[A\n",
" 37%| | 14737/39998 [00:35<01:00,
417.57it/s]\u001b[A\n",
" 37%| | 14779/39998 [00:35<01:01,
411.74it/s]\u001b[A\n",
" 37%| | 14824/39998 [00:35<00:59,
421.36it/s]\u001b[A\n",
" 37%| | 14867/39998 [00:35<00:59,
420.56it/s]\u001b[A\n",
" 37%| | 14910/39998 [00:35<00:59,
419.49it/s]\u001b[A\n",
" 37%| | 14953/39998 [00:35<00:59,
420.65it/s]\u001b[A\n",
" 37%| | 14998/39998 [00:35<00:58,
425.60it/s]\u001b[A\n",
" 38%| | 15041/39998 [00:35<00:58,
424.78it/s]\u001b[A\n",
" 38%| | 15084/39998 [00:36<00:58,
424.13it/s]\u001b[A\n",
" 38%| | 15128/39998 [00:36<00:58,
428.05it/s]\u001b[A\n",
" 38%| | 15172/39998 [00:36<00:57,
431.23it/s]\u001b[A\n",
" 38%| | 15216/39998 [00:36<00:58,
423.18it/s]\u001b[A\n",
" 38%| | 15259/39998 [00:36<00:58,
421.56it/s]\u001b[A\n",
" 38%| | 15303/39998 [00:36<00:58,
424.62it/s]\u001b[A\n",
" 38%| | 15346/39998 [00:36<00:58,
420.11it/s]\u001b[A\n",
" 38%| | 15389/39998 [00:36<00:58,
418.32it/s]\u001b[A\n",
" 39%| | 15432/39998 [00:36<00:58,
420.34it/s]\u001b[A\n",
" 39%| | 15477/39998 [00:36<00:57,
427.64it/s]\u001b[A\n",
" 39%| | 15520/39998 [00:37<00:57,
426.18it/s]\u001b[A\n",
" 39%| | 15564/39998 [00:37<00:56,
429.86it/s]\u001b[A\n",
" 39%| | 15611/39998 [00:37<00:55,
439.06it/s]\u001b[A\n",
" 39%| | 15655/39998 [00:37<00:56,
431.96it/s]\u001b[A\n",
" 39%| | 15699/39998 [00:37<00:57,
426.05it/s]\u001b[A\n",
" 39%| | 15742/39998 [00:37<00:57,
424.67it/s]\u001b[A\n",
" 39%| | 15785/39998 [00:37<00:58,
413.47it/s]\u001b[A\n",
" 40%| | 15831/39998 [00:37<00:56,
424.11it/s]\u001b[A\n",
" 40%| | 15874/39998 [00:37<00:56,
424.98it/s]\u001b[A\n",
" 40%| | 15917/39998 [00:37<00:57,
417.96it/s]\u001b[A\n",
" 40%| | 15959/39998 [00:38<00:58,
411.48it/s]\u001b[A\n",
" 40%| | 16002/39998 [00:38<00:57,
416.78it/s]\u001b[A\n",
" 40%| | 16044/39998 [00:38<00:57,
417.57it/s]\u001b[A\n",
" 40%| | 16086/39998 [00:38<00:58,
410.88it/s]\u001b[A\n",
" 40%| | 16129/39998 [00:38<00:57,
412.80it/s]\u001b[A\n",
" 40%| | 16174/39998 [00:38<00:56,
421.74it/s]\u001b[A\n",
" 41%| | 16217/39998 [00:38<00:58,
407.73it/s]\u001b[A\n",
" 41%| | 16259/39998 [00:38<00:57,
411.27it/s]\u001b[A\n",
" 41%| | 16303/39998 [00:38<00:56,
418.84it/s]\u001b[A\n",
" 41%| | 16345/39998 [00:39<00:56,
417.00it/s]\u001b[A\n",
" 41%| | 16387/39998 [00:39<00:57,
407.13it/s]\u001b[A\n",
" 41%| | 16430/39998 [00:39<00:57,
412.15it/s]\u001b[A\n",
" 41%| | 16472/39998 [00:39<00:57,
411.31it/s]\u001b[A\n",
" 41%| | 16560/39998 [00:39<00:55,
421.72it/s]\u001b[A\n",
" 42%| | 16650/39998 [00:39<00:55,
420.86it/s]\u001b[A\n",
" 42%| | 16737/39998 [00:39<00:54,
425.79it/s]\u001b[A\n",
" 42%| | 16824/39998 [00:40<00:54,
421.51it/s]\u001b[A\n",
" 42%| | 16910/39998 [00:40<00:55,
418.45it/s]\u001b[A\n",
" 42%| | 16998/39998 [00:40<00:53,
427.21it/s]\u001b[A\n",
" 43%| | 17083/39998 [00:40<00:56,
403.18it/s]\u001b[A\n",
" 43%| | 17167/39998 [00:40<00:55,
408.70it/s]\u001b[A\n",
" 43%| | 17255/39998 [00:41<00:53,
423.04it/s]\u001b[A\n",
" 43%| | 17340/39998 [00:41<00:54,
412.10it/s]\u001b[A\n",
" 43%| | 17429/39998 [00:41<00:53,
419.02it/s]\u001b[A\n",
" 44%| | 17517/39998 [00:41<00:52,
426.40it/s]\u001b[A\n",
" 44%| | 17605/39998 [00:42<00:52,
426.73it/s]\u001b[A\n",
" 44%| | 17696/39998 [00:42<00:52,
424.80it/s]\u001b[A\n",
" 44%| | 17782/39998 [00:42<00:52,
422.16it/s]\u001b[A\n",
" 45%| | 17872/39998 [00:42<00:51,
431.67it/s]\u001b[A\n",
" 45%| | 17962/39998 [00:42<00:50,
434.68it/s]\u001b[A\n",
" 45%| | 18050/39998 [00:43<00:50,
432.36it/s]\u001b[A\n",
" 45%| | 18139/39998 [00:43<00:50,
434.58it/s]\u001b[A\n",
" 45%| | 18227/39998 [00:43<00:51,
426.44it/s]\u001b[A\n",
" 46%| | 18313/39998 [00:43<00:51,
419.15it/s]\u001b[A\n",
" 46%| | 18397/39998 [00:43<00:51,
417.55it/s]\u001b[A\n",
" 46%| | 18483/39998 [00:44<00:51,
414.50it/s]\u001b[A\n",
" 46%| | 18568/39998 [00:44<00:51,
416.90it/s]\u001b[A\n",
" 47%| | 18659/39998 [00:44<00:50,
426.38it/s]\u001b[A\n",
" 47%| | 18745/39998 [00:44<00:50,
422.80it/s]\u001b[A\n",
" 47%| | 18831/39998 [00:44<00:50,
421.57it/s]\u001b[A\n",
" 47%| | 18918/39998 [00:45<00:50,
415.88it/s]\u001b[A\n",
" 47%| | 19002/39998 [00:45<00:50,
412.42it/s]\u001b[A\n",
" 48%| | 19088/39998 [00:45<00:50,
418.19it/s]\u001b[A\n",
" 48%| | 19174/39998 [00:45<00:50,
410.98it/s]\u001b[A\n",
" 48%| | 19263/39998 [00:45<00:48,
425.96it/s]\u001b[A\n",
" 48%| | 19350/39998 [00:46<00:48,
424.33it/s]\u001b[A\n",
" 48%| | 19440/39998 [00:46<00:48,
420.69it/s]\u001b[A\n",
" 49%| | 19528/39998 [00:46<00:48,
421.12it/s]\u001b[A\n",
" 49%| | 19616/39998 [00:46<00:48,
422.73it/s]\u001b[A\n",
" 49%| | 19705/39998 [00:46<00:47,
431.36it/s]\u001b[A\n",
" 49%| | 19795/39998 [00:47<00:47,
428.86it/s]\u001b[A\n",
" 50%| | 19884/39998 [00:47<00:46,
433.82it/s]\u001b[A\n",
" 50%| | 19972/39998 [00:47<00:47,
424.57it/s]\u001b[A\n",
" 50%| | 20063/39998 [00:47<00:45,
436.35it/s]\u001b[A\n",
" 50%| | 20151/39998 [00:48<00:47,
421.18it/s]\u001b[A\n",
" 50%| | 20238/39998 [00:48<00:46,
425.91it/s]\u001b[A\n",
" 51%| | 20325/39998 [00:48<00:46,
426.15it/s]\u001b[A\n",
" 51%| | 20411/39998 [00:48<00:46,
417.78it/s]\u001b[A\n",
" 51%| | 20498/39998 [00:48<00:45,
424.72it/s]\u001b[A\n",
" 51%| | 20541/39998 [00:48<00:46,
415.73it/s]\u001b[A\n",
" 51%| | 20583/39998 [00:49<00:47,
412.86it/s]\u001b[A\n",
" 52%| | 20626/39998 [00:49<00:46,
416.17it/s]\u001b[A\n",
" 52%| | 20668/39998 [00:49<00:47,
409.11it/s]\u001b[A\n",
" 52%| | 20709/39998 [00:49<00:48,
400.63it/s]\u001b[A\n",
" 52%| | 20750/39998 [00:49<00:47,
402.63it/s]\u001b[A\n",
" 52%| | 20791/39998 [00:49<00:47,
404.79it/s]\u001b[A\n",
" 52%| | 20833/39998 [00:49<00:46,
408.40it/s]\u001b[A\n",
" 52%| | 20876/39998 [00:49<00:46,
413.38it/s]\u001b[A\n",
" 52%| | 20918/39998 [00:49<00:46,
408.01it/s]\u001b[A\n",
" 52%| | 20959/39998 [00:49<00:47,
402.43it/s]\u001b[A\n",
" 53%| | 21005/39998 [00:50<00:45,
416.85it/s]\u001b[A\n",
" 53%| | 21049/39998 [00:50<00:44,
423.19it/s]\u001b[A\n",
" 53%| | 21094/39998 [00:50<00:44,
429.40it/s]\u001b[A\n",
" 53%| | 21138/39998 [00:50<00:44,
426.91it/s]\u001b[A\n",
" 53%| | 21181/39998 [00:50<00:44,
421.03it/s]\u001b[A\n",
" 53%| | 21225/39998 [00:50<00:44,
423.29it/s]\u001b[A\n",
" 53%| | 21268/39998 [00:50<00:45,
414.67it/s]\u001b[A\n",
" 53%| | 21310/39998 [00:50<00:44,
415.94it/s]\u001b[A\n",
" 53%| | 21353/39998 [00:50<00:44,
420.05it/s]\u001b[A\n",
" 53%| | 21396/39998 [00:51<00:44,
418.12it/s]\u001b[A\n",
" 54%| | 21439/39998 [00:51<00:44,
420.07it/s]\u001b[A\n",
" 54%| | 21482/39998 [00:51<00:44,
419.48it/s]\u001b[A\n",
" 54%| | 21524/39998 [00:51<00:45,
402.99it/s]\u001b[A\n",
" 54%| | 21566/39998 [00:51<00:45,
405.80it/s]\u001b[A\n",
" 54%| | 21610/39998 [00:51<00:44,
414.24it/s]\u001b[A\n",
" 54%| | 21653/39998 [00:51<00:43,
417.63it/s]\u001b[A\n",
" 54%| | 21695/39998 [00:51<00:44,
411.26it/s]\u001b[A\n",
" 54%| | 21737/39998 [00:51<00:44,
413.01it/s]\u001b[A\n",
" 54%| | 21781/39998 [00:51<00:43,
418.87it/s]\u001b[A\n",
" 55%| | 21823/39998 [00:52<00:43,
417.61it/s]\u001b[A\n",
" 55%| | 21866/39998 [00:52<00:43,
420.10it/s]\u001b[A\n",
" 55%| | 21909/39998 [00:52<00:44,
409.66it/s]\u001b[A\n",
" 55%| | 21953/39998 [00:52<00:43,
416.65it/s]\u001b[A\n",
" 55%| | 21995/39998 [00:52<00:43,
411.83it/s]\u001b[A\n",
" 55%| | 22037/39998 [00:52<00:43,
412.87it/s]\u001b[A\n",
" 55%| | 22080/39998 [00:52<00:42,
417.32it/s]\u001b[A\n",
" 55%| | 22122/39998 [00:52<00:43,
414.54it/s]\u001b[A\n",
" 55%| | 22164/39998 [00:52<00:43,
411.33it/s]\u001b[A\n",
" 56%| | 22207/39998 [00:52<00:42,
416.58it/s]\u001b[A\n",
" 56%| | 22250/39998 [00:53<00:42,
418.11it/s]\u001b[A\n",
" 56%| | 22292/39998 [00:53<00:43,
404.13it/s]\u001b[A\n",
" 56%| | 22335/39998 [00:53<00:43,
410.75it/s]\u001b[A\n",
" 56%| | 22377/39998 [00:53<00:43,
405.33it/s]\u001b[A\n",
" 56%| | 22419/39998 [00:53<00:43,
408.56it/s]\u001b[A\n",
" 56%| | 22464/39998 [00:53<00:41,
419.74it/s]\u001b[A\n",
" 56%| | 22509/39998 [00:53<00:40,
427.14it/s]\u001b[A\n",
" 56%| | 22552/39998 [00:53<00:41,
424.83it/s]\u001b[A\n",
" 56%| | 22595/39998 [00:53<00:41,
420.37it/s]\u001b[A\n",
" 57%| | 22638/39998 [00:53<00:41,
421.79it/s]\u001b[A\n",
" 57%| | 22683/39998 [00:54<00:40,
427.04it/s]\u001b[A\n",
" 57%| | 22727/39998 [00:54<00:40,
428.70it/s]\u001b[A\n",
" 57%| | 22771/39998 [00:54<00:40,
428.80it/s]\u001b[A\n",
" 57%| | 22814/39998 [00:54<00:40,
425.80it/s]\u001b[A\n",
" 57%| | 22857/39998 [00:54<00:40,
426.81it/s]\u001b[A\n",
" 57%| | 22900/39998 [00:54<00:40,
421.02it/s]\u001b[A\n",
" 57%| | 22943/39998 [00:54<00:40,
420.32it/s]\u001b[A\n",
" 57%| | 22989/39998 [00:54<00:39,
429.57it/s]\u001b[A\n",
" 58%| | 23033/39998 [00:54<00:39,
424.14it/s]\u001b[A\n",
" 58%| | 23076/39998 [00:55<00:39,
424.61it/s]\u001b[A\n",
" 58%| | 23119/39998 [00:55<00:39,
424.23it/s]\u001b[A\n",
" 58%| | 23162/39998 [00:55<00:40,
414.61it/s]\u001b[A\n",
" 58%| | 23204/39998 [00:55<00:40,
411.92it/s]\u001b[A\n",
" 58%| | 23249/39998 [00:55<00:39,
421.43it/s]\u001b[A\n",
" 58%| | 23292/39998 [00:55<00:39,
420.15it/s]\u001b[A\n",
" 58%| | 23335/39998 [00:55<00:39,
420.37it/s]\u001b[A\n",
" 58%| | 23379/39998 [00:55<00:39,
425.94it/s]\u001b[A\n",
" 59%| | 23422/39998 [00:55<00:39,
421.09it/s]\u001b[A\n",
" 59%| | 23465/39998 [00:55<00:39,
421.99it/s]\u001b[A\n",
" 59%| | 23509/39998 [00:56<00:38,
426.54it/s]\u001b[A\n",
" 59%| | 23552/39998 [00:56<00:39,
420.92it/s]\u001b[A\n",
" 59%| | 23597/39998 [00:56<00:38,
427.84it/s]\u001b[A\n",
" 59%| | 23641/39998 [00:56<00:38,
429.41it/s]\u001b[A\n",
" 59%| | 23687/39998 [00:56<00:37,
434.97it/s]\u001b[A\n",
" 59%| | 23732/39998 [00:56<00:37,
439.20it/s]\u001b[A\n",
" 59%| | 23776/39998 [00:56<00:37,
430.11it/s]\u001b[A\n",
" 60%| | 23820/39998 [00:56<00:37,
430.58it/s]\u001b[A\n",
" 60%| | 23864/39998 [00:56<00:37,
430.21it/s]\u001b[A\n",
" 60%| | 23908/39998 [00:56<00:37,
431.26it/s]\u001b[A\n",
" 60%| | 23952/39998 [00:57<00:38,
420.16it/s]\u001b[A\n",
" 60%| | 23995/39998 [00:57<00:38,
419.00it/s]\u001b[A\n",
" 60%| | 24037/39998 [00:57<00:38,
415.60it/s]\u001b[A\n",
" 60%| | 24079/39998 [00:57<00:38,
415.13it/s]\u001b[A\n",
" 60%| | 24121/39998 [00:57<00:38,
416.20it/s]\u001b[A\n",
" 60%| | 24163/39998 [00:57<00:38,
415.62it/s]\u001b[A\n",
" 61%| | 24205/39998 [00:57<00:37,
416.50it/s]\u001b[A\n",
" 61%| | 24249/39998 [00:57<00:37,
423.03it/s]\u001b[A\n",
" 61%| | 24293/39998 [00:57<00:36,
427.94it/s]\u001b[A\n",
" 61%| | 24340/39998 [00:57<00:35,
438.87it/s]\u001b[A\n",
" 61%| | 24384/39998 [00:58<00:36,
425.01it/s]\u001b[A\n",
" 61%| | 24427/39998 [00:58<00:37,
420.68it/s]\u001b[A\n",
" 61%| | 24470/39998 [00:58<00:37,
418.53it/s]\u001b[A\n",
" 61%| | 24556/39998 [00:58<00:37,
408.11it/s]\u001b[A\n",
" 62%| | 24641/39998 [00:58<00:37,
406.24it/s]\u001b[A\n",
" 62%| | 24723/39998 [00:58<00:37,
405.71it/s]\u001b[A\n",
" 62%| | 24809/39998 [00:59<00:36,
416.75it/s]\u001b[A\n",
" 62%| | 24894/39998 [00:59<00:36,
414.51it/s]\u001b[A\n",
" 62%| | 24981/39998 [00:59<00:36,
413.66it/s]\u001b[A\n",
" 63%| | 25069/39998 [00:59<00:35,
422.28it/s]\u001b[A\n",
" 63%| | 25154/39998 [00:59<00:35,
418.45it/s]\u001b[A\n",
" 63%| | 25241/39998 [01:00<00:34,
422.48it/s]\u001b[A\n",
" 63%| | 25329/39998 [01:00<00:34,
430.81it/s]\u001b[A\n",
" 63%| | 25416/39998 [01:00<00:34,
425.70it/s]\u001b[A\n",
" 64%| | 25503/39998 [01:00<00:33,
429.58it/s]\u001b[A\n",
" 64%| | 25593/39998 [01:00<00:32,
437.42it/s]\u001b[A\n",
" 64%| | 25680/39998 [01:01<00:34,
416.96it/s]\u001b[A\n",
" 64%| | 25766/39998 [01:01<00:34,
417.10it/s]\u001b[A\n",
" 65%| | 25853/39998 [01:01<00:35,
400.72it/s]\u001b[A\n",
" 65%| | 25937/39998 [01:01<00:34,
405.58it/s]\u001b[A\n",
" 65%| | 26022/39998 [01:02<00:33,
414.25it/s]\u001b[A\n",
" 65%| | 26112/39998 [01:02<00:33,
416.70it/s]\u001b[A\n",
" 65%| | 26198/39998 [01:02<00:32,
420.48it/s]\u001b[A\n",
" 66%| | 26286/39998 [01:02<00:32,
422.67it/s]\u001b[A\n",
" 66%| | 26374/39998 [01:02<00:32,
422.19it/s]\u001b[A\n",
" 66%| | 26461/39998 [01:03<00:32,
418.96it/s]\u001b[A\n",
" 66%| | 26545/39998 [01:03<00:32,
414.40it/s]\u001b[A\n",
" 66%| | 26630/39998 [01:03<00:32,
415.73it/s]\u001b[A\n",
" 67%| | 26719/39998 [01:03<00:31,
427.01it/s]\u001b[A\n",
" 67%| | 26807/39998 [01:03<00:30,
430.01it/s]\u001b[A\n",
" 67%| | 26895/39998 [01:04<00:30,
427.79it/s]\u001b[A\n",
" 67%| | 26985/39998 [01:04<00:30,
426.29it/s]\u001b[A\n",
" 68%| | 27071/39998 [01:04<00:30,
422.12it/s]\u001b[A\n",
" 68%| | 27161/39998 [01:04<00:29,
434.19it/s]\u001b[A\n",
" 68%| | 27249/39998 [01:04<00:29,
431.84it/s]\u001b[A\n",
" 68%| | 27336/39998 [01:05<00:30,
415.02it/s]\u001b[A\n",
" 68%| | 27425/39998 [01:05<00:29,
425.50it/s]\u001b[A\n",
" 69%| | 27517/39998 [01:05<00:28,
440.08it/s]\u001b[A\n",
" 69%| | 27607/39998 [01:05<00:28,
432.78it/s]\u001b[A\n",
" 69%| | 27697/39998 [01:05<00:28,
437.21it/s]\u001b[A\n",
" 69%| | 27785/39998 [01:06<00:28,
433.80it/s]\u001b[A\n",
" 70%| | 27872/39998 [01:06<00:28,
419.66it/s]\u001b[A\n",
" 70%| | 27959/39998 [01:06<00:28,
420.50it/s]\u001b[A\n",
" 70%| | 28045/39998 [01:06<00:28,
413.92it/s]\u001b[A\n",
" 70%| | 28128/39998 [01:06<00:29,
404.92it/s]\u001b[A\n",
" 70%| | 28214/39998 [01:07<00:28,
415.61it/s]\u001b[A\n",
" 71%| | 28306/39998 [01:07<00:26,
436.30it/s]\u001b[A\n",
" 71%| | 28397/39998 [01:07<00:26,
432.75it/s]\u001b[A\n",
" 71%| | 28488/39998 [01:07<00:26,
442.05it/s]\u001b[A\n",
" 71%| | 28533/39998 [01:07<00:26,
432.05it/s]\u001b[A\n",
" 71%| | 28577/39998 [01:08<00:27,
416.97it/s]\u001b[A\n",
" 72%| | 28622/39998 [01:08<00:26,
426.25it/s]\u001b[A\n",
" 72%| | 28665/39998 [01:08<00:27,
416.27it/s]\u001b[A\n",
" 72%| | 28711/39998 [01:08<00:26,
426.84it/s]\u001b[A\n",
" 72%| | 28755/39998 [01:08<00:26,
428.06it/s]\u001b[A\n",
" 72%| | 28798/39998 [01:08<00:26,
424.63it/s]\u001b[A\n",
" 72%| | 28841/39998 [01:08<00:26,
423.44it/s]\u001b[A\n",
" 72%| | 28884/39998 [01:08<00:26,
421.49it/s]\u001b[A\n",
" 72%| | 28928/39998 [01:08<00:25,
425.89it/s]\u001b[A\n",
" 72%| | 28972/39998 [01:08<00:25,
428.82it/s]\u001b[A\n",
" 73%| | 29015/39998 [01:09<00:26,
419.42it/s]\u001b[A\n",
" 73%| | 29059/39998 [01:09<00:25,
425.02it/s]\u001b[A\n",
" 73%| | 29105/39998 [01:09<00:25,
433.81it/s]\u001b[A\n",
" 73%| | 29149/39998 [01:09<00:24,
435.64it/s]\u001b[A\n",
" 73%| | 29193/39998 [01:09<00:25,
430.27it/s]\u001b[A\n",
" 73%| | 29237/39998 [01:09<00:24,
430.82it/s]\u001b[A\n",
" 73%| | 29281/39998 [01:09<00:24,
431.00it/s]\u001b[A\n",
" 73%| | 29325/39998 [01:09<00:25,
425.07it/s]\u001b[A\n",
" 73%| | 29368/39998 [01:09<00:24,
426.37it/s]\u001b[A\n",
" 74%| | 29411/39998 [01:09<00:24,
423.50it/s]\u001b[A\n",
" 74%| | 29455/39998 [01:10<00:24,
427.45it/s]\u001b[A\n",
" 74%| | 29498/39998 [01:10<00:24,
425.01it/s]\u001b[A\n",
" 74%| | 29543/39998 [01:10<00:24,
431.30it/s]\u001b[A\n",
" 74%| | 29587/39998 [01:10<00:24,
427.60it/s]\u001b[A\n",
" 74%| | 29630/39998 [01:10<00:24,
422.30it/s]\u001b[A\n",
" 74%| | 29673/39998 [01:10<00:24,
423.84it/s]\u001b[A\n",
" 74%| | 29716/39998 [01:10<00:24,
422.63it/s]\u001b[A\n",
" 74%| | 29761/39998 [01:10<00:23,
429.29it/s]\u001b[A\n",
" 75%| | 29804/39998 [01:10<00:23,
427.02it/s]\u001b[A\n",
" 75%| | 29850/39998 [01:11<00:23,
434.94it/s]\u001b[A\n",
" 75%| | 29894/39998 [01:11<00:23,
428.00it/s]\u001b[A\n",
" 75%| | 29937/39998 [01:11<00:23,
428.57it/s]\u001b[A\n",
" 75%| | 29982/39998 [01:11<00:23,
432.22it/s]\u001b[A\n",
" 75%| | 30026/39998 [01:11<00:23,
422.29it/s]\u001b[A\n",
" 75%| | 30071/39998 [01:11<00:23,
428.23it/s]\u001b[A\n",
" 75%| | 30114/39998 [01:11<00:23,
428.70it/s]\u001b[A\n",
" 75%| | 30157/39998 [01:11<00:23,
423.38it/s]\u001b[A\n",
" 76%| | 30200/39998 [01:11<00:23,
422.24it/s]\u001b[A\n",
" 76%| | 30245/39998 [01:11<00:22,
426.76it/s]\u001b[A\n",
" 76%| | 30288/39998 [01:12<00:22,
424.52it/s]\u001b[A\n",
" 76%| | 30331/39998 [01:12<00:24,
401.64it/s]\u001b[A\n",
" 76%| | 30372/39998 [01:12<00:24,
396.23it/s]\u001b[A\n",
" 76%| | 30416/39998 [01:12<00:23,
407.64it/s]\u001b[A\n",
" 76%| | 30465/39998 [01:12<00:22,
427.84it/s]\u001b[A\n",
" 76%| | 30509/39998 [01:12<00:22,
431.15it/s]\u001b[A\n",
" 76%| | 30553/39998 [01:12<00:21,
431.60it/s]\u001b[A\n",
" 76%| | 30598/39998 [01:12<00:21,
435.68it/s]\u001b[A\n",
" 77%| | 30642/39998 [01:12<00:22,
422.70it/s]\u001b[A\n",
" 77%| | 30686/39998 [01:12<00:21,
425.47it/s]\u001b[A\n",
" 77%| | 30729/39998 [01:13<00:21,
426.76it/s]\u001b[A\n",
" 77%| | 30773/39998 [01:13<00:21,
429.85it/s]\u001b[A\n",
" 77%| | 30817/39998 [01:13<00:21,
430.36it/s]\u001b[A\n",
" 77%| | 30861/39998 [01:13<00:21,
421.43it/s]\u001b[A\n",
" 77%| | 30905/39998 [01:13<00:21,
426.62it/s]\u001b[A\n",
" 77%| | 30948/39998 [01:13<00:21,
423.73it/s]\u001b[A\n",
" 77%| | 30991/39998 [01:13<00:21,
415.41it/s]\u001b[A\n",
" 78%| | 31036/39998 [01:13<00:21,
423.79it/s]\u001b[A\n",
" 78%| | 31079/39998 [01:13<00:21,
416.08it/s]\u001b[A\n",
" 78%| | 31121/39998 [01:14<00:21,
409.51it/s]\u001b[A\n",
" 78%| | 31163/39998 [01:14<00:21,
412.02it/s]\u001b[A\n",
" 78%| | 31205/39998 [01:14<00:21,
414.06it/s]\u001b[A\n",
" 78%| | 31249/39998 [01:14<00:20,
420.24it/s]\u001b[A\n",
" 78%| | 31292/39998 [01:14<00:20,
420.09it/s]\u001b[A\n",
" 78%| | 31335/39998 [01:14<00:20,
420.42it/s]\u001b[A\n",
" 78%| | 31378/39998 [01:14<00:20,
414.85it/s]\u001b[A\n",
" 79%| | 31420/39998 [01:14<00:20,
416.26it/s]\u001b[A\n",
" 79%| | 31463/39998 [01:14<00:20,
418.78it/s]\u001b[A\n",
" 79%| | 31506/39998 [01:14<00:20,
420.78it/s]\u001b[A\n",
" 79%| | 31550/39998 [01:15<00:19,
425.73it/s]\u001b[A\n",
" 79%| | 31593/39998 [01:15<00:20,
419.38it/s]\u001b[A\n",
" 79%| | 31637/39998 [01:15<00:19,
424.50it/s]\u001b[A\n",
" 79%| | 31680/39998 [01:15<00:19,
425.59it/s]\u001b[A\n",
" 79%| | 31723/39998 [01:15<00:19,
425.03it/s]\u001b[A\n",
" 79%| | 31766/39998 [01:15<00:19,
423.84it/s]\u001b[A\n",
" 80%| | 31809/39998 [01:15<00:19,
423.73it/s]\u001b[A\n",
" 80%| | 31852/39998 [01:15<00:19,
421.65it/s]\u001b[A\n",
" 80%| | 31895/39998 [01:15<00:19,
421.85it/s]\u001b[A\n",
" 80%| | 31940/39998 [01:15<00:18,
429.85it/s]\u001b[A\n",
" 80%| | 31984/39998 [01:16<00:18,
430.09it/s]\u001b[A\n",
" 80%| | 32028/39998 [01:16<00:18,
428.42it/s]\u001b[A\n",
" 80%| | 32073/39998 [01:16<00:18,
433.60it/s]\u001b[A\n",
" 80%| | 32119/39998 [01:16<00:17,
441.10it/s]\u001b[A\n",
" 80%| | 32164/39998 [01:16<00:18,
431.37it/s]\u001b[A\n",
" 81%| | 32208/39998 [01:16<00:18,
423.09it/s]\u001b[A\n",
" 81%| | 32254/39998 [01:16<00:17,
431.24it/s]\u001b[A\n",
" 81%| | 32301/39998 [01:16<00:17,
439.77it/s]\u001b[A\n",
" 81%| | 32346/39998 [01:16<00:17,
438.87it/s]\u001b[A\n",
" 81%| | 32390/39998 [01:16<00:17,
438.56it/s]\u001b[A\n",
" 81%| | 32434/39998 [01:17<00:17,
435.29it/s]\u001b[A\n",
" 81%| | 32478/39998 [01:17<00:17,
434.65it/s]\u001b[A\n",
" 81%| | 32566/39998 [01:17<00:17,
435.25it/s]\u001b[A\n",
" 82%| | 32653/39998 [01:17<00:17,
424.24it/s]\u001b[A\n",
" 82%| | 32740/39998 [01:17<00:17,
426.70it/s]\u001b[A\n",
" 82%| | 32826/39998 [01:18<00:17,
417.18it/s]\u001b[A\n",
" 82%| | 32913/39998 [01:18<00:16,
419.39it/s]\u001b[A\n",
" 82%| | 33003/39998 [01:18<00:16,
430.11it/s]\u001b[A\n",
" 83%| | 33090/39998 [01:18<00:16,
422.73it/s]\u001b[A\n",
" 83%| | 33178/39998 [01:18<00:16,
415.67it/s]\u001b[A\n",
" 83%| | 33265/39998 [01:19<00:15,
420.84it/s]\u001b[A\n",
" 83%| | 33356/39998 [01:19<00:15,
435.76it/s]\u001b[A\n",
" 84%| | 33445/39998 [01:19<00:15,
422.66it/s]\u001b[A\n",
" 84%| | 33533/39998 [01:19<00:15,
420.15it/s]\u001b[A\n",
" 84%| | 33624/39998 [01:19<00:14,
435.50it/s]\u001b[A\n",
" 84%| | 33717/39998 [01:20<00:14,
444.30it/s]\u001b[A\n",
" 84%| | 33807/39998 [01:20<00:14,
437.09it/s]\u001b[A\n",
" 85%| | 33899/39998 [01:20<00:14,
423.90it/s]\u001b[A\n",
" 85%| | 33988/39998 [01:20<00:14,
424.57it/s]\u001b[A\n",
" 85%| | 34079/39998 [01:20<00:13,
436.21it/s]\u001b[A\n",
" 85%| | 34167/39998 [01:21<00:13,
431.25it/s]\u001b[A\n",
" 86%| | 34255/39998 [01:21<00:13,
425.80it/s]\u001b[A\n",
" 86%| | 34341/39998 [01:21<00:13,
424.09it/s]\u001b[A\n",
" 86%| | 34435/39998 [01:21<00:12,
441.52it/s]\u001b[A\n",
" 86%| | 34523/39998 [01:21<00:12,
424.82it/s]\u001b[A\n",
" 86%| | 34609/39998 [01:22<00:12,
414.97it/s]\u001b[A\n",
" 87%| | 34696/39998 [01:22<00:12,
423.60it/s]\u001b[A\n",
" 87%| | 34783/39998 [01:22<00:12,
411.65it/s]\u001b[A\n",
" 87%| | 34869/39998 [01:22<00:12,
418.52it/s]\u001b[A\n",
" 87%| | 34958/39998 [01:23<00:11,
420.91it/s]\u001b[A\n",
" 88%| | 35048/39998 [01:23<00:11,
426.08it/s]\u001b[A\n",
" 88%| | 35139/39998 [01:23<00:11,
425.17it/s]\u001b[A\n",
" 88%| | 35225/39998 [01:23<00:11,
409.71it/s]\u001b[A\n",
" 88%| | 35313/39998 [01:23<00:11,
422.52it/s]\u001b[A\n",
" 88%| | 35399/39998 [01:24<00:10,
419.31it/s]\u001b[A\n",
" 89%| | 35485/39998 [01:24<00:10,
419.02it/s]\u001b[A\n",
" 89%| | 35572/39998 [01:24<00:10,
419.32it/s]\u001b[A\n",
" 89%| | 35661/39998 [01:24<00:10,
425.71it/s]\u001b[A\n",
" 89%| | 35751/39998 [01:24<00:09,
435.67it/s]\u001b[A\n",
" 89%| | 35839/39998 [01:25<00:09,
416.52it/s]\u001b[A\n",
" 90%| | 35923/39998 [01:25<00:09,
408.70it/s]\u001b[A\n",
" 90%| | 36010/39998 [01:25<00:09,
419.95it/s]\u001b[A\n",
" 90%| | 36101/39998 [01:25<00:08,
434.32it/s]\u001b[A\n",
" 90%| | 36188/39998 [01:25<00:09,
421.83it/s]\u001b[A\n",
" 91%| | 36276/39998 [01:26<00:08,
425.69it/s]\u001b[A\n",
" 91%| | 36363/39998 [01:26<00:08,
427.11it/s]\u001b[A\n",
" 91%| | 36448/39998 [01:26<00:08,
415.02it/s]\u001b[A\n",
" 91%| | 134/10000 [00:00<00:22,
445.49it/s]\u001b[A\n",
" 2%| | 219/10000 [00:00<00:22,
430.27it/s]\u001b[A\n",
" 3%| | 303/10000 [00:00<00:22,
424.41it/s]\u001b[A\n",
" 3%| | 388/10000 [00:00<00:22,
421.59it/s]\u001b[A\n",
" 4%| | 471/10000 [00:01<00:22,
415.94it/s]\u001b[A\n",
" 5%| | 558/10000 [00:01<00:22,
425.02it/s]\u001b[A\n",
" 6%| | 648/10000 [00:01<00:21,
434.34it/s]\u001b[A\n",
" 7%| | 736/10000 [00:01<00:21,
428.13it/s]\u001b[A\n",
" 8%| | 821/10000 [00:01<00:22,
415.07it/s]\u001b[A\n",
" 9%| | 910/10000 [00:02<00:21,
423.19it/s]\u001b[A\n",
" 10%| | 998/10000 [00:02<00:21,
427.00it/s]\u001b[A\n",
" 10%| | 1083/10000 [00:02<00:21,
413.69it/s]\u001b[A\n",
" 11%| | 1129/10000 [00:02<00:20,
424.94it/s]\u001b[A\n",
" 12%| | 1173/10000 [00:02<00:20,
427.89it/s]\u001b[A\n",
" 12%| | 1216/10000 [00:02<00:21,
417.29it/s]\u001b[A\n",
" 13%| | 1260/10000 [00:02<00:20,
421.74it/s]\u001b[A\n",
" 13%| | 1305/10000 [00:03<00:20,
429.21it/s]\u001b[A\n",
" 13%| | 1349/10000 [00:03<00:20,
417.88it/s]\u001b[A\n",
" 14%| | 1391/10000 [00:03<00:20,
414.51it/s]\u001b[A\n",
" 14%| | 1437/10000 [00:03<00:20,
425.25it/s]\u001b[A\n",
" 15%| | 1483/10000 [00:03<00:19,
432.90it/s]\u001b[A\n",
" 15%| | 1527/10000 [00:03<00:19,
426.61it/s]\u001b[A\n",
" 16%| | 1570/10000 [00:03<00:19,
421.75it/s]\u001b[A\n",
" 16%| | 1614/10000 [00:03<00:19,
426.39it/s]\u001b[A\n",
" 17%| | 1660/10000 [00:03<00:19,
432.30it/s]\u001b[A\n",
" 17%| | 1705/10000 [00:04<00:18,
437.24it/s]\u001b[A\n",
" 17%| | 1749/10000 [00:04<00:18,
436.74it/s]\u001b[A\n",
" 18%| | 1795/10000 [00:04<00:18,
441.29it/s]\u001b[A\n",
" 18%| | 1840/10000 [00:04<00:19,
427.47it/s]\u001b[A\n",
" 19%| | 1883/10000 [00:04<00:19,
426.73it/s]\u001b[A\n",
" 19%| | 1926/10000 [00:04<00:18,
425.22it/s]\u001b[A\n",
" 20%| | 1969/10000 [00:04<00:19,
412.09it/s]\u001b[A\n",
" 20%| | 2011/10000 [00:04<00:19,
412.43it/s]\u001b[A\n",
" 21%| | 2053/10000 [00:04<00:19,
414.01it/s]\u001b[A\n",
" 21%| | 2095/10000 [00:04<00:19,
403.76it/s]\u001b[A\n",
" 21%| | 2178/10000 [00:05<00:19,
405.89it/s]\u001b[A\n",
" 22%| | 2263/10000 [00:05<00:18,
414.81it/s]\u001b[A\n",
" 23%| | 2348/10000 [00:05<00:18,
418.04it/s]\u001b[A\n",
" 24%| | 2434/10000 [00:05<00:18,
403.02it/s]\u001b[A\n",
" 25%| | 2521/10000 [00:05<00:17,
416.46it/s]\u001b[A\n",
" 26%| | 2608/10000 [00:06<00:17,
417.80it/s]\u001b[A\n",
" 26%| | 2693/10000 [00:06<00:17,
414.79it/s]\u001b[A\n",
" 27%| | 2780/10000 [00:06<00:17,
423.13it/s]\u001b[A\n",
" 28%| | 2866/10000 [00:06<00:17,
415.90it/s]\u001b[A\n",
" 29%| | 2951/10000 [00:07<00:16,
416.81it/s]\u001b[A\n",
" 30%| | 3037/10000 [00:07<00:16,
416.45it/s]\u001b[A\n",
" 31%| | 4125/10000 [00:09<00:14,
418.52it/s]\u001b[A\n",
" 42%| | 4211/10000 [00:10<00:13,
415.07it/s]\u001b[A\n",
" 43%| | 4298/10000 [00:10<00:13,
419.51it/s]\u001b[A\n",
" 43%| | 4386/10000 [00:10<00:13,
426.99it/s]\u001b[A\n",
" 44%| | 4472/10000 [00:10<00:13,
416.38it/s]\u001b[A\n",
" 45%| | 4556/10000 [00:10<00:13,
409.58it/s]\u001b[A\n",
" 46%| | 4646/10000 [00:11<00:12,
425.52it/s]\u001b[A\n",
" 47%| | 4732/10000 [00:11<00:12,
413.81it/s]\u001b[A\n",
" 48%| | 4819/10000 [00:11<00:12,
414.03it/s]\u001b[A\n",
" 49%| | 4907/10000 [00:11<00:11,
425.26it/s]\u001b[A\n",
" 50%| | 4993/10000 [00:11<00:11,
418.33it/s]\u001b[A\n",
" 50%| | 5079/10000 [00:12<00:11,
419.13it/s]\u001b[A\n",
" 51%| | 6127/10000 [00:14<00:09,
424.00it/s]\u001b[A\n",
" 62%| | 6214/10000 [00:14<00:08,
421.10it/s]\u001b[A\n",
" 63%| | 6303/10000 [00:14<00:08,
431.91it/s]\u001b[A\n",
" 63%| | 6393/10000 [00:15<00:08,
441.26it/s]\u001b[A\n",
" 64%| | 6482/10000 [00:15<00:08,
427.02it/s]\u001b[A\n",
" 65%| | 6570/10000 [00:15<00:07,
429.65it/s]\u001b[A\n",
" 66%| | 6658/10000 [00:15<00:07,
430.48it/s]\u001b[A\n",
" 67%| | 6748/10000 [00:15<00:07,
437.34it/s]\u001b[A\n",
" 68%| | 6836/10000 [00:16<00:07,
422.92it/s]\u001b[A\n",
" 69%| | 6922/10000 [00:16<00:07,
423.03it/s]\u001b[A\n",
" 70%| | 7010/10000 [00:16<00:06,
429.07it/s]\u001b[A\n",
" 71%| | 7100/10000 [00:16<00:06,
435.81it/s]\u001b[A\n",
" 71%| | 7144/10000 [00:16<00:06,
432.60it/s]\u001b[A\n",
" 72%| | 7188/10000 [00:17<00:06,
434.04it/s]\u001b[A\n",
" 72%| | 7232/10000 [00:17<00:06,
421.61it/s]\u001b[A\n",
" 73%| | 7275/10000 [00:17<00:06,
407.79it/s]\u001b[A\n",
" 73%| | 7317/10000 [00:17<00:06,
409.83it/s]\u001b[A\n",
" 74%| | 7362/10000 [00:17<00:06,
419.88it/s]\u001b[A\n",
" 74%| | 7405/10000 [00:17<00:06,
420.56it/s]\u001b[A\n",
" 75%| | 7452/10000 [00:17<00:05,
434.08it/s]\u001b[A\n",
" 75%| | 7496/10000 [00:17<00:05,
431.02it/s]\u001b[A\n",
" 75%| | 7540/10000 [00:17<00:05,
429.10it/s]\u001b[A\n",
" 76%| | 7584/10000 [00:17<00:05,
425.86it/s]\u001b[A\n",
" 76%| | 7631/10000 [00:18<00:05,
434.68it/s]\u001b[A\n",
" 77%| | 7675/10000 [00:18<00:05,
434.79it/s]\u001b[A\n",
" 77%| | 7719/10000 [00:18<00:05,
433.35it/s]\u001b[A\n",
" 78%| | 7763/10000 [00:18<00:05,
426.39it/s]\u001b[A\n",
" 78%| | 7806/10000 [00:18<00:05,
412.96it/s]\u001b[A\n",
" 79%| | 7853/10000 [00:18<00:05,
426.21it/s]\u001b[A\n",
" 79%| | 7897/10000 [00:18<00:04,
429.57it/s]\u001b[A\n",
" 79%| | 7941/10000 [00:18<00:04,
422.75it/s]\u001b[A\n",
" 80%| | 7985/10000 [00:18<00:04,
426.87it/s]\u001b[A\n",
" 80%| | 8029/10000 [00:19<00:04,
428.92it/s]\u001b[A\n",
" 81%| | 8072/10000 [00:19<00:04,
408.09it/s]\u001b[A\n",
" 81%| | 8118/10000 [00:19<00:04,
420.93it/s]\u001b[A\n",
" 82%| | 8208/10000 [00:19<00:04,
433.97it/s]\u001b[A\n",
" 83%| | 8300/10000 [00:19<00:03,
437.02it/s]\u001b[A\n",
" 83%| | 8388/10000 [00:19<00:03,
415.75it/s]\u001b[A\n",
" 84%| | 8475/10000 [00:20<00:03,
423.24it/s]\u001b[A\n",
" 85%| | 8561/10000 [00:20<00:03,
422.79it/s]\u001b[A\n",
" 86%| | 8651/10000 [00:20<00:03,
426.94it/s]\u001b[A\n",
" 87%| | 8737/10000 [00:20<00:02,
427.12it/s]\u001b[A\n",
" 88%| | 8823/10000 [00:20<00:02,
423.65it/s]\u001b[A\n",
" 89%| | 8909/10000 [00:21<00:02,
421.76it/s]\u001b[A\n",
" 90%| | 8995/10000 [00:21<00:02,
415.52it/s]\u001b[A\n",
" 90%| | 9080/10000 [00:21<00:02,
417.70it/s]\u001b[A\n",
" 91%| | 1291/39998 [00:00<00:02,
12909.43it/s]\u001b[A\n",
" 7%| | 3926/39998 [00:00<00:02,
13020.19it/s]\u001b[A\n",
" 13%| | 5245/39998 [00:00<00:02,
13068.45it/s]\u001b[A\n",
" 16%| | 6599/39998 [00:00<00:02,
13205.00it/s]\u001b[A\n",
" 20%| | 7843/39998 [00:00<00:02,
12965.25it/s]\u001b[A\n",
" 23%| | 10547/39998 [00:00<00:02,
13261.48it/s]\u001b[A\n",
" 30%| | 17187/39998 [00:01<00:01,
13245.60it/s]\u001b[A\n",
" 46%| | 19905/39998 [00:01<00:01,
13440.38it/s]\u001b[A\n",
" 53%| | 21244/39998 [00:01<00:01,
13122.14it/s]\u001b[A\n",
" 56%| | 22555/39998 [00:01<00:01,
13095.09it/s]\u001b[A\n",
" 60%| | 23890/39998 [00:01<00:01,
13169.53it/s]\u001b[A\n",
" 63%| | 26530/39998 [00:02<00:01,
12999.06it/s]\u001b[A\n",
" 70%| | 33247/39998 [00:02<00:00,
13363.76it/s]\u001b[A\n",
" 87%| | 36002/39998 [00:02<00:00,
13474.24it/s]\u001b[A\n",
" 93%|| 37351/39998 [00:02<00:00,
13336.57it/s]\u001b[A\n",
" 97%|| 38710/39998 [00:02<00:00,
13409.85it/s]\u001b[A\n",
"100%|| 39998/39998 [00:03<00:00,
13248.16it/s]\u001b[A\n",
" 0%| | 0/10000 [00:00<?, ?it/s]\u001b[A\n",
" 12%| | 1226/10000 [00:00<00:00,
12259.08it/s]\u001b[A\n",
" 26%| | 6573/10000 [00:00<00:00,
13056.77it/s]\u001b[A\n",
" 79%| | 7921/10000 [00:00<00:00,
13180.45it/s]\u001b[A\n",
" 93%|| 9306/10000 [00:00<00:00,
13372.48it/s]\u001b[A\n",
"100%|| 10000/10000 [00:00<00:00,
13226.92it/s]\u001b[A"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Shape of matrix after one hot encoding (10000,
2000)\n",
"(39998, 1857)\n",
"(10000, 1857)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "XwwrO53i5woJ",
"colab_type": "code",
"outputId": "e5d423fa-a048-4855-ea87-4fc218c51b20",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 72
}
},
"source": [
"#binning numerical attributes\n",
"bins=[x for x in range(0,10001,1000)]\n",
"labels=[0,1,2,3,4,5,6,7,8,9]\n",
"#z=pd.DataFrame(x_train['price'])\n",
"#z['bins']=pd.cut(z['price'].values,bins=bins,labels=labels)\n",
"\n",
"price_train=pd.DataFrame(pd.cut(x_train['price'].values,bins=bin
s,labels=labels))\n",
"price_test=pd.DataFrame(pd.cut(x_test['price'].values,bins=bins,
labels=labels))\n",
"print(\"done!\")\n",
"\n",
"#binning the numerical variables: price \n",
"bins=[int(x) for x in range(0,931,93)]\n",
"labels=[0,1,2,3,4,5,6,7,8,9]\n",
"quantity_train=pd.DataFrame(pd.cut(x_train['quantity'].values,bi
ns=bins,labels=labels))\n",
"quantity_test=pd.DataFrame(pd.cut(x_test['quantity'].values,bins
=bins,labels=labels))\n",
"print(\"done!\")\n",
"\n",
"#binning the numerical variables: price \n",
"bins=[x for x in range(-1,450,50)]\n",
"labels=[0,1,2,3,4,5,6,7,8]\n",
"previously_posted_projects_train=pd.DataFrame(pd.cut(x_train['te
acher_number_of_previously_posted_projects'].values,bins=bins,lab
els=labels))\n",
"previously_posted_projects_test=pd.DataFrame(pd.cut(x_test['teac
her_number_of_previously_posted_projects'].values,bins=bins,label
s=labels))\n",
"print(\"done!\")\n"
],
"execution_count": 132,
"outputs": [
{
"output_type": "stream",
"text": [
"done!\n",
"done!\n",
"done!\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "h1mGZEMo5-Ne",
"colab_type": "code",
"outputId": "0ff3cd6c-a9a9-4a01-bf91-8e78777ea153",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
}
},
"source": [
"#since all the variables are done now it's time to stack
them TF_IDF\n",
"\n",
"x_tr_tfidf=hstack((x_train_project_submitted_day,x_train_project
_submitted_month,x_train_project_submitted_weekday,pd.DataFrame(x
_train.project_grade_encoded),text_tfidf_train,title_tfidf_train,
subcategories_one_hot_train,categories_one_hot_train,onehot_schoo
lstate_train,onehot_teacherprefix_train)).tocsr()\n",
"x_te_tfidf=hstack((x_test_project_submitted_day,x_test_project_s
ubmitted_month,x_test_project_submitted_weekday,pd.DataFrame(x_te
st.project_grade_encoded),text_tfidf_test,title_tfidf_test,subcat
egories_one_hot_test,categories_one_hot_test,onehot_schoolstate_t
est,onehot_teacherprefix_test)).tocsr()\n",
"\n",
"print(x_tr_tfidf.shape)\n",
"print(x_te_tfidf.shape)\n"
],
"execution_count": 133,
"outputs": [
{
"output_type": "stream",
"text": [
"(39998, 4146)\n",
"(10000, 4146)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "iQ9fIlRw6Dwc",
"colab_type": "code",
"outputId": "f75fc0cb-973a-4917-96c5-55b1c6e7afb8",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
}
},
"source": [
"#since all the variables are done now it's time to stack
them BOW\n",
"\n",
"x_tr_bow=hstack((x_train_project_submitted_day,x_train_project_s
ubmitted_month,x_train_project_submitted_weekday,pd.DataFrame(x_t
rain.project_grade_encoded),x_train_essay_bow,x_train_title_bow,q
uantity_train,previously_posted_projects_train,price_train,subcat
egories_one_hot_train,categories_one_hot_train,onehot_schoolstate
_train,onehot_teacherprefix_train)).tocsr()\n",
"x_te_bow=hstack((x_test_project_submitted_day,x_test_project_sub
mitted_month,x_test_project_submitted_weekday,pd.DataFrame(x_test
.project_grade_encoded),x_test_essay_bow,x_test_title_bow,quantit
y_test,previously_posted_projects_test,price_test,subcategories_o
ne_hot_test,categories_one_hot_test,onehot_schoolstate_test,oneho
t_teacherprefix_test)).tocsr()\n",
"print(x_tr_bow.shape)\n",
"print(x_te_bow.shape)\n",
"\n"
],
"execution_count": 135,
"outputs": [
{
"output_type": "stream",
"text": [
"(39998, 4006)\n",
"(10000, 4006)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "fxDKTVb6rQ81",
"colab_type": "code",
"colab": {}
},
"source": [
"#to present our findings in a pretty table format\n",
"x = PrettyTable()\n",
"\n",
"#column_names\n",
"x.field_names=
[\"topic\",\"alpha\", \"tain_auc\", \"test_auc\"]"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "HDCJeoGOIBQ2",
"colab_type": "code",
"outputId": "73970c07-f7bc-405c-e42e-f15126b0094b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 986
}
},
"source": [
"#Lets try the TF_IDF\n",
"\n",
"from sklearn.naive_bayes import MultinomialNB\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"\n",
"\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5,random_state=42),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(x_tr_tfidf,y_train)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"\n",
"\n",
"results.head()\n",
"train_auc= results['mean_train_score']\n",
"train_auc_std= results['std_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"cv_auc_std= results['std_test_score']\n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.xlim(0.00001,1)\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 essay features')\n",
"show_most_informative_features(vectorizertf_essay,clf.best_estim
ator_,10)\n",
"print('top 10 title features')\n",
"show_most_informative_features(vectorizertf_title,clf.best_estim
ator_,10)\n",
"\n",
"results.head()"
],
"execution_count": 192,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAZEAAAEaCAYAAADQVmpMAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xd8VFX6+PHPkx4gBUIPCCgYDaGF\nJj9QQXEBQcQGqKiAgrqWr66yw
q6r6K4r+8VeVtd1ARU3gKhgQcFCvtiQLi2UgJSESAmEJJCQdn5/\n3JvJJEwqmcxk
8rxfr3nllnPvfeYkmWfOPfeeK8YYlFJKqZrw83QASiml6i9NIkoppWpMk4hSSqka\
n0ySilFKqxjSJKKWUqjFNIkoppWpMk4hSyquIyD4RGerpOFTVaBJRgOt/XBGZKCLf
eyomXyAiHUXE\niEhALe0vREQyROQKF+teFJHFNdzvTDvO/i6Wz3dR3ohIZ6f5YSK
ySkSyROSoiPyfiIyuSSzViHmw\niKS48xiqcppElFcRi9v+Lt29/9pWNvkYY3KBhc
DtZcr5AzcD79TgGGLv73jZ/VZx+xuBD4B3gXZA\nK+AJ4Jrq7kvVP/Xmn0l5lohME
5EPyyx7RURetqcTReRZEVkjIpkislREmjmVvUREfrS/Rf8iIoOd\n1iWKyDMi8gNw
GjjfxfH3icgMEdkuIidEZK6IhNjrmorIZ/Y34BP2dLuK9i8ik0Qkyf7mvFdE7nYq\
nP1hEUkTkjyJyRETSRGSMiFwtIrtE5LiI/MmpvJ+ITBeRPSKSLiKLnN77Kvtnhohk
i8gAe5vJ9vFP\niMhyEengtD8jIveJyG5gt4tfxzvADSLSyGnZMKz/5y/sfTwmIqn
2+9spIle62E+xS4E2wIPAeBEJ\nqqBsKXYCegH4qzHmbWPMSWNMkTHm/4wxU8rZZq
aILBaRhXZ8G0SkRzllg0XkJRE5ZL9espc1tt9r\nW7tes0WkbVXjVrXIGKMvfQHsA
4aWWTYR+N6ebgOcAiLt+QDgCNDbnk8EUoE4oDHwITDfXhcNpANX\nY33QXWXPt3Da
9gDQ1d5vYDnxbQXaA82AH4C/2euigBuARkAY1rfiJU7bnrV/YCRwASDA5VjJJd4u\
nPxgowPo2HQhMAY4C/7X33xXIATrZ5f8HWI31LTwY+BeQYK/rCBggwCmea4Fk4GI7
nseBH53WG+Ar\n+32GlvP72gVMcJpPAF6yp2OAg0BbpxguqOB3/x9gkf1e04EbnNb
NLP49ltnGAJ2Bi+zpTtX4W5sJ\n5AM32sd8FPi1+PeO098i8LRdty2BFsCPWAmr+P
eU4un/nYb+8ngA+vKOl/2Pmw1kOL1OYycRu8wX\nwBR7ehSw3WldIjDLaT4WyAP8g
ceA98ocbzlwh9O2T1chvnuc5q8G9pRTtidwokxsle1/CfA/9vRg\nrCThb8+H2R+U
/Z3KrwfG2NNJwJVO69rYH5IBuE4iXwB3Os372XXdwZ43wBWVxPs4sMKeDre372XP\
nd8ZK8ENxkZDL7KcRkOn0Xv4FLHVaP5OKk8hAezqkGn9rM4HVZd5/GnCp0+
+6OInsAa52KjsM2Of0\ne9Ik4uGXns5SzsYYYyKLX8Dvy6x/B5hgT08A3iuz/qDT9
H6sb5nNgQ7ATfaprAwRyQAGYX3Yutq2\nPGX33xZARBqJyL9EZL+IZGKdQoq0+wlc
7l9ERojIavvUVAZWUmruVCTdGFNoT+fYPw87rc8BmtjT\nHYCPnd5bElCI1TfgSgf
gZafyx7FaRNHlxevCe8AQ+xTOjVgJdSOAMSYZeAjrw/qIiCyo4FTPdVit\nrmX2/P
vACBFpYc8XYP0eHUSkeD4fq+UCpX+XVeF4f8aYIiAF+/dZRlus33Wx/eWUUx6iSUR
VxxKg\nu4jEYbVE3i+zvr3T9HlYHzLHsD4w3nNOUMaYxsaYWU7lqzKcdNn9H7KnH8
E6hdPfGBMOXGYvF1f7\nF5FgrNNtzwGt7IS5rEz56jgIjCjz/kKMMam4fl8HgbvLl
A81xvzoKl5XjDH7ge+wkvltlOlQN8b8\n1xgzCCthGeAf5ezqDqxkeEBEfsM6FRgI
3GKvP4DVmnLWCSu5pAI77fdzQ0XxuuD4XdoXOrSj5Pfp\n7JD9Hoo5/951CHIvoEl
EVZmxrgxajNU3sMYYc6BMkQkiEmt3+D4NLLa/zc8HrhHrMlB/sS5THezc\n+V1F94
lIO7vT+s9YVymBdbopB6vzuhnwZCX7CcLquzgKFIjICOB31YzF2ZvAM8Wd4yLSQkS
utdcd\nBYoofbHAm8AMEelql48QkZtqcNx3gPuxTik5ErqIxIjIFXayzMWqm6KyG4
tINHAl1heCnvarB1bC\nKb5K60vgIhG5TUQC7fr9O/ChMabAGGOAPwB/sS9WCLcvN
BgkIm9VEHtvEblerKvPHgLOYPV9lJUA\nPG7XaXOsfqriS44PA1EiElFpTSm30SSi
qusdoBtnn8rCXjYP+A0IwbraB2PMQazO5D9hfageBKZR\n/b+//wIrgL1Y58r/Zi9
/CQjFavWsxvrgK5cxJsuObRFwAutb9yfVjMXZy/b2K0Qky46hv32s08Az\nwA/26a
tLjDEfY31QL7BPv20FRtTguB9idb5/Y4xJc1oeDMzCqo/fsDqlZ7jY/jZgkzFmhTH
mt+IX\n8Ap2i9MYc8SO7W6sfpatWP1l9xbvxBizGBgHTMZqJRzG+t0srSD2pfY2J+
w4rjfG5Lso9zdgHbAZ\n2AJssJdhjNmBlWT22nWrp7k8QKwvEkpVjYicB+wAWhtjM
p2WJ2J1wL7tpuPuA+4yxnztjv2ruiMi\nM4HOxpgJlZVV3k9bIqrK7HPXfwAWOCcQ
pVTDVStDMSjfZ9/cdRjr6pjhHg5HKeUl9HSWUkqpGtPT\nWUoppWpMk4hSSqka85k
+kcjISNO5c+fKCzYAp06donHjxp4OwytoXZTQuiihdVFi/fr1x4wxLSov\n6ZrPJJ
FWrVqxbt06T4fhFRITExk8eLCnw/AKWhcltC5KaF2UEJH9lZcqn57OUkopVWOaRJR
SStWY\nJhGllFI1pklEKaVUjWkSUUopVWOaRJRSStWYJhGllFI15jNJJCe/kIGzvm
XJxlRPh6KUUg2GzyQR\ngNSMHGZ8tKXBJpIlG1MZOOtbtqSe1ISqlKoTPnPHek4BN
MZqkTz16TYC/f3w9xMC/AR/f/unnxDg\n57TcTwhwrPNzKuNUttS2gkhNH8PtXks2
pjLjoy3k5BdC+5KECjCmV7SHo1NK+SqfSSKZ+ULxSDgn\nTudz3383uOU4fkKpRBT
gXyYB+TsnIheJqWx5Pxfl/ctZ7jjm2ceb/eVOK4EAOzKsRJeTX8hfP9tO\ndNNQgv
z9CPT3IyjAj+AA62eQvx+BxT/9vTdB1sSSjanMXr6T8e2z+POsb5k2LEaTqVJu4DN
JpHlI\nyXNRWoYFM/
+u/hQUGgqLDAVFRfZP4/SzyGl9meXF84Wul+cXlilXZCgsdLG9i+OdyS+ioKiwWsc
r\nKLTeQ1EVH/3y+UF/x3T6qTxuevOnKm0XFOBHsJ1oihNOcbIp9dNp2mVici5XnX
0Wzzst8/erfmLT\nVplSdcdnkoi//VkTGujPn66+mAtbhXk2IDcoKjIUmrKJy0qQ1
7z2PYczzwAwsUsB83Zbv9rmTYJ4\ncVxP8gqKyC8s4kxBEXkFReQV2j/t5XkFRZxx
say43Bl72em8AjJySspZZQx5BYWOslVNdlXh7yeO\nllJQgH+ZVpQ4JRx/gvytZPb
tjiOOVlniIavbLye/kJmfbCM4wI+wkEDCQgLslzUdEuhfURhKqXL4\nTBIBiI4M9e
nTFn5+gh+Cq8+7GSMudnz7jgqxloUG+vP4yFgu7VLjUZ5rpKCwiPxCYyemQqfEZOy
k\nU1iSzIqXO5U7U6Zs6WRVnNgKHdP5BYaTOfl2uUJHAgHYfKKkJZORk8+977s+zR
nk73dWYik9HUi4\ni2WOcsGBhAT6+dQpQaWqwmeSSGigPz9Mv8LTYXhMceKcvXwnk
OXRhBrg70eAP4QG+QOBdX78gbO+\nJTUjB4AHuxby/Bbrz7xVWDBzJ/UjKzefrNwC
ss7YP3MLyMwtmS5ef+zYKcey7DMFlR430F9oEuw6\nCYWXk5isdSXToYH+tZ6ItH9
IuZPPJBFlJZIxvaJJTEzkgVsHezocj5k2LKakT8QWGujPjKsvJrZt\neI32WVhkyD
5TkmCck01Wbj6ZdqIpu/7g8dOOJJV9pgBTyak+fz8p1bpx1QpqclaCKp2YGgeVJCL
t\nH1LupklE+Rx3tMr8/YSI0EAiQmvesioqMpzKKzgrCblqBTkno5QTpx3Lss8UVN
rn5Cc4WkSHM3Mp\nsDdYnlLSP/S/X+7QJKJqhSYR5ZO8sVXm5yd2i6HmicgYw6m8w
nJaRGcnoY+cbjjdk1lymuzQyVxu\n+8/P9O7QlN4dmtKzfeQ5xaUaLk0iStUjIla/
S5PgANpEVF7+51+PO/qH7r24kBe2Wv/yjYP8OZp1\nhpe/2Y0xIAIxrcKI79CU3ud
ZiaVDVCO9UEBVSpOIUj7MuX9InC6Df+a6bozpFU1Wbj6/HDzJ+v0n\nWH/gBJ9uOs
R/fz4AQFTjIHrZCaV3h6Z0bxehl0Krs2gSUcqHVdY/FBYSyKAuzRnUpTlg9dvsPpL
N\nhgMnWL//BBv2n+DrpMMABPgJXduGW60V+9UmItQj70t5D00iSvm46vQP+fkJMa
3DiGkdxs39zgPg\n+Kk8Nuw/4UgsCWsOMPeHfQC0jQghvkNT4u0WS2zbcAL9fWpcV
1UJTSJKqQo1axzE0NhWDI1tBUB+\nYRFJaZnWKbD9J9h4IIPPNqcBEBLoR/d2kfS2
E0v8eZFENQn2ZPjKzTSJKKWqJdDfShTd20UyaWAn\nANJO5rBhf4ajb+Xfq/Y6Li3
u1Lyxo6US3yGSLi3DajQmmvJOmkSUUuesTUQoI7uHMrJ7GwBy8wvZ\nknrS0VpJ3H
mEDzekABAWHEDP8yL18mIfoUlEKVXrQgL96duxGX07NgOs+1sOHD/tSCrr95/Qy4t
9\nhFuTiIgMB14G/IG3jTGzyqw/D3gHiLTLTDfGLLPXzQDuBAqBB40xy90Zq1LKfU
SEDlGN6RDVmOvj\n2wHo5cU+wm1JRET8gdeBq4AUYK2IfGKM2e5U7HFgkTHmDRGJB
ZYBHe3p8UBXoC3wtYhcaIwpRCnl\nE8q7vHi9fSXYWZcXR0cQ73QaTC8v9g7ubIn0
A5KNMXsBRGQBcC3gnEQMUDwiXgRwyJ6+FlhgjDkD\n/Coiyfb+qvZ0JaVUveN8efE
t/a3Li9Ozz7DxQAbr9fJiryWmsmFFa7pjkRuB4caYu+z524D+xpj7\nncq0AVYATb
EekT7UGLNeRF4DVhtj5tvl/gN8YYxZXOYYU4GpAC1atOi9aNEit7yX+iY7O5smTZp
4\nOgyvoHVRwhfqoqDIcDCriOQTRezOKCQ5o4jjudZnWJAfdIrwo3OkP52bWj/Dgk
r3q2Tk5HP4ZC5N\ng4o4kedHq4gQIs9hUE1fMGTIkPXGmD413d7THes3A/OMMc+Ly
ADgPRGJq+rGxpi3gLcAYmJizODB\ng90TZT2TmJiI1oVF66KEr9ZF2cuLl+8/yee/
nn158cnTebz8w25yC/x4pFsRz2/xIzSwkGevj9UR\njc+BO5NIKtDeab6dvczZncB
wAGPMTyISAjSv4rZKKVWty4uLbThmtVBy8guZvXynJpFz4M4kshbo\nIiKdsBLAeO
CWMmUOAFcC80TkYiAEOAp8AvxXRF7A6ljvAqxxY6xKKR/h6vLi/emnGfxcoqPMyrS
S\nK70O2aMcq5pxWy+UMaYAuB9YDiRhXYW1TUSeFpHRdrFHgCki8guQAEw0lm3AIq
xO+C+B+/TKLKVU\nTYgIHZs3Jjqy5GquHs2KHNNtI/Uqr3Ph1j4R+56PZWWWPeE0v
R0YWM62zwDPuDM+pVTD4Tws/hVt\ni/jluPUdeujFLT0cWf2m18MppRqEMb2iefb6
bkRHhuIn1iXC57doTMKag/y455inw6u3NIkopRqM\nMb2i+WH6FXSLjuDHGVfy8b0
D6di8EXe/u57thzI9HV69pElEKdVgRTQKZN6kfjQJCWDi3DWknDjt\n6ZDqHU0iSq
kGrW1kKO9M7kdufiF3zFnDiVN5ng6pXtEkopRq8C5sFcbbd/Tl4Ikc7nxnLTl5ejF
o\nVWkSUUopoF+nZrwyvicbD2bwQMJGCgqLKt9IaRJRSqliw+Pa8PTornyddJi/LN
2Gu8YW9CWeHjtL\nKaW8ym0DOvJbZi6vr9xDq/BgHhp6oadD8mqaRJRSqoxHfxfD4
cwzvPT1blqFh3Bzv/M8HZLX0iSi\nlFJliAjPXt+NY9ln+PPHW2jeJJirYlt5Oiyv
pH0iSinlQqC/H/
+8NZ5u0RE8kLCB9ftPeDokr6RJ\nRCmlytEoKIA5E/vSOjyEO99ZS/KRbE+H5HU0i
SilVAWimgTz7uT+BPgJd8xZw+HMXE+H5FU0iSil\nVCXOi2rEvEn9yDidx8S5a8nM
zfd0SF5Dk4hSSlVBXHQEb97Wm92Hs7j73fWcKdC72kGTiFJKVdml\nXVow+6bu/LQ
3nUcW/UJRkd6MqJf4KqVUNVzXqx1HMs/w7Bc7aBkWwl9GXYyIeDosj9EkopRS1TT1
\nsvP5LTOXOT/8SuuIYKZedoGnQ/IYTSJKKVVNIsJfRsZyJOsMf19mtUjG9Ir2dFg
eoUlEKaVqwM9P\neGFsD45n5zFt8S9ENQni0i4tPB1WndOOdaWUqqHgAH/
+dXtvLmjRhHveW8/W1JOeDqnOaRJRSqlz\nEB4SyDuT+xHZKIiJc9dyIL1hPWJXk4
hSSp2jVuEhvDO5HwVFRdwxdw3p2Wc8HVKd0SSilFK1oHPL\nJvznjj4cyshh8ry1n
M4r8HRIdUKTiFJK1ZLeHZrx2i3xbEk9yX3vbyC/ATxiV5OIUkrVoqtiW/HM\ndd1Y
ufMof/poi88/Ylcv8VVKqVp2c7/z+O1kLi9/Yz0Z8dFhMZ4OyW00iSillBs8NLQLR
7JyeW1l\nMq0iQrjtkg6eDsktNIkopZQbiAh/vTaOo1l5PLF0Ky2aBDE8ro2nw6p1
bu0TEZHhIrJTRJJFZLqL\n9S+KyCb7tUtEMpzW/a+IbBORJBF5RRryCGdKqXopwN+
PV2/uRa/2kTy4YBNrfj3u6ZBqnduSiIj4\nA68DI4BY4GYRiXUuY4x52BjT0xjTE3
gV+Mje9v8BA4HuQBzQF7jcXbEqpZS7hAb58587+tKuaSh3\nvbOWXYezPB1SrXJnS
6QfkGyM2WuMyQMWANdWUP5mIMGeNkAIEAQEA4HAYTfGqpRSbtO0cRDvTOpH\nSKA/
d8xZQ9rJHE+HVGvcmUSigYNO8yn2srOISAegE/AtgDHmJ2AlkGa/lhtjktwYq1JKu
VX7ZtYj\ndrNzC7hjzhpOnvaNR+x6S8f6eGCxMaYQQEQ6AxcD7ez1X4nIpcaY75w3
EpGpwFSAFi1akJiYWHcR\ne7Hs7GytC5vWRQmtixKerIt7uwfw/Lpsxr76NY/0CSH
Iv35397oziaQC7Z3m29nLXBkP3Oc0fx2w\n2hiTDSAiXwADgFJJxBjzFvAWQExMjB
k8eHCtBF7fJSYmonVh0boooXVRwpN1MRho3/kQDyRs5OO0\ncF67JR5/v/qbSNx5O
mst0EVEOolIEFai+KRsIRG5CGgK/OS0+ABwuYgEiEggVqe6ns5SSvmEa3q0\n5S+j
Yvli62889em2en1Xu9taIsaYAhG5H1gO+ANzjDHbRORpYJ0xpjihjAcWmNK1uBi4A
tiC1cn+\npTHmU3fFqpRSde3OQZ04nJnLW6v20io8hPuGdPZ0SDXi1j4RY8wyYFmZ
ZU+UmZ/pYrtC4G53xqaU\nUp42ffhFHMnMZfbynbQMC+amPu0r38jLeEvHulJKNTh
+fsL/3tiD9FN5TP9oC83DghkS09LTYVWL\njuKrlFIeFBTgxxsTenNR6zB+P38Dvx
zMqHwjL+LTLZH8/HxSUlLIzc31dCh1KiIigqQk374OISQk\nhHbt2hEYGOjpUJQ6Z
02CA5g7qS83vPEjk+etZfG9/49OzRt7Oqwq8ekkkpKSQlhYGB07dqQhDb2V\nlZVF
WFiYp8NwG2MM6enppKSk0KlTJ0+Ho1StaBkWwruT+3PDGz9y+5yf+ejegbQIC/Z0W
JXy6dNZ\nubm5REVFNagE0hCICFFRUQ2uhal8X6fmjZkzsS/HsvKYNG8N2We8/xG7
Pp1EAE0gPkp/r8pX9Wwf\nyT9vjScpLYt7568nr8C7H7Hr80nEk9LT0+nZsyc9e/a
kdevWREdHO+bz8vKqtI9Jkyaxc+fOah97\n1KhRDBo0qNSyCRMmsGTJEsd8QUEBkZ
GRjvkdO3YwYsQIunTpQnx8POPHj+fIkSPVPrZS6twMuagl\ns67vxne7j/HYh5spK
vLemxF9uk/E06Kioti0aRMAM2fOpEmTJjz66KOlyhhjMMbg5+c6n8+dO7fa\nxz1+
/DibN28mJCSEAwcOcN5551W6zenTpxk5ciSvvvoqV199NQDffPMN6enptGxZvy45V
MoX3NSn\nPYczc3luxS5ahgczY8TFng7JJW2JeEBycjKxsbHceuutdO3albS0NKZO
nUqfPn3o2rUrTz/9tKPs\noEGD2LRpk6PVMH36dHr06MGAAQPKbSUsXbqUMWPGMG7
cOBYsWFClmObPn8/ll1/uSCAAV155JRdf\n7J1/uEo1BPcN6cxtl3TgX/
+3l7k//OrpcFxqMC2Rpz7dxvZDmbW6z9i24Tx5Tdcabbtjxw7effdd\n+vTpA8CsW
bNo1qwZBQUFDBkyhBtvvJHY2FLP8OLkyZNcfvnlzJo1iz/84Q/MmTOH6dPPemAkix
cv\n5h//
+AcRERHceuut/PGPf6w0nq1bt9K7d+8avRellHuICDNHd+Vo1hme/mw7LcKCGdW9r
afDKkVb\nIh5ywQUXOBIIQEJCAvHx8cTHx5OUlMT27dvP2iY0NJQRI0YA0Lt3b/bt
23dWmUOHDnHw4EEGDBhA\nbGwsRUVF7NixA3DdGa0d1Ep5N38/4aXxPenToSl/WPg
LP+455umQSmkwLZGathjcpXHjkhuJdu/e\nzcsvv8yaNWuIjIxkwoQJLi9fDQoKck
z7+/tTUHD25X8LFy7k+PHjdOzYEbBaLwkJCTz11FNERUVx\n4sQJR9njx4/TvHlzA
Lp27crPP/9cW29PKVWLQgL9efv2vtz0rx+5+931LLpnABe3Cfd0WIC2RLxC\nZmYm
YWFhhIeHk5aWxvLly2u8r4SEBJYuXcq+ffvYt28fa9asISHBeurw4MGDWbBgAfn51
hPV5s2b\nx5AhQwC47bbbSExM5Msvv3Tsa+XKlT5/57tS9UVEo0DmTepH4+AAJs5d
Q8qJ054OCdAk4hXi4+OJ\njY3loosu4vbbb2fgwIE12s+ePXtIS0sjPj7esaxLly6
EhISwfv16xowZQ//
+/enduzc9e/Zk7dq1\nPPvsswA0atSIzz77jBdffJEuXboQGxvLv//9b0dLRSnleW
0jQ3lncj9y8gq5Y84aTpyq2q0C7iT1\n+WEozmJiYkzZ+ymSkpIa5NVFvj7sSbGq/
H71aX4ltC5K1Pe6+HlvOrfNWUO36Ajev6s/IYH+Nd6X\niKw3xvSpvKRr2hJRSql6
pv/5Ubw8ricbDpzg/v9upKDQc3e1axJRSql6aES3Njw1uitfJx3mL0s9\n94jdBnN
1llJK+ZrbB3Tkt5O5/DNxD63DQ/ifoV3qPAZNIkopVY9NGxbD4cwzvPj1LlqFBzO+
X+XD\nHNUmTSJKKVWPiQizbuhG+qkz/OnjLTRvEszQ2FZ1dnztE1FKqXou0N+P12+
JJy46gvsTNrDhwInK\nN6olmkTcKCMjg3/+85813v6ll17i9Onybyg6duwYgYGBvP
nmm6WWt2nTptT8vHnzuP/+
+x3z7777\nLnFxcXTr1o1evXrx3HPP1ThGpZR3aBwcwJyJfWkdHsLkeWtJPpJdJ8f
VJOJG7k4iH3zwAZdcconj\njvSq+OKLL3jppZdYsWIFW7ZsYfXq1URERNQ4RqWU92
jeJJh3J/cnwE+4Y84aDme6/+mfmkTcaPr0\n6ezZs4eePXsybdo0AGbPnk3fvn3p3
r07Tz75JACnTp1i5MiR9OjRg7i4OBYuXMgrr7zCoUOHGDJk\niGNokrISEhJ4/vnn
SU1NJSUlpUoxPfvsszz33HO0bWuNBBocHMyUKVNq4d0qpbzBeVGNmDuxHxmn\n85g
4dy2ZufluPV7D6Vj/Yjr8tqV299m6G4yYVe7qWbNmsXXrVseDqVasWMHu3btZs2YN
xhhGjx7N\nqlWrOHr0KG3btuXzzz8HrEETIyIieOGFF1i5cqXLoUcOHjxIWloa/fr
1Y+zYsSxcuJBHHnmk0pB1\nyHelfF+3dhG8MaE3k+et5Z731jN3Ul+CA2p+V3tFym
2JiMgwEbnRxfIbReQqt0Tj41asWMGKFSvo\n1asX8fHx7Nixg927d9OtWze+
+uorHnvsMb777rsqnV5auHAhY8eOBWD8+PGVntLSId+Valguu7AF\ns2/qzo970nl
k0S9ue8RuRS2RJ4AxLpYnAp8CX7kjILepoMVQV4wxzJgxg7vvvvusdRs2bGDZsmU8
\n/vjjXHnllTzxxBMV7ishIYHffvuN999/H7CeI7J7927HgIt5eXmOoePLDvm+fv1
6rrjiilp+d0op\nb3Ndr3YczjzDrC920Co8hL+Miq18o2qqqE8k2BhztOxCY8wxoL
GL8qqMsLAwsrKyHPPDhg1jzpw5\nZGdbV02kpqZy5MgRDh06RKNGjZgwYQLTpk1jw
4YNLrcvtmvXLrKzs0lNTXUM+T5jxgxHa2TQoEHM\nnz8fgJycHBYtWuToV5kxYwbT
pk3jt99+AyAvL4+3337bfZWglPKouy87n0kDO/Kf73/l36v21vr+\nK2qJhItIgDG
m1JOPRCQQCK31SHxQVFQUAwcOJC4ujhEjRjB79mySkpIYMGAAAE2aNGH+/PkkJycz
\nbdo0/Pz8CAwM5I033gBg6tSpDB8+nLZt27Jy5UrHfhMSErjuuutKHeuGG25g3Lh
xPPHEE/zjH//g\nkUce4ZVXXsEYw+23385ll10GwNVXX83hw4cZOnQoxhhEhMmTJ9
dRjSil6pqI8JeRsRzJOsMzy5Jo\nERbMmF7Rtbf/8gbtEpFZQCsl32EnAAAgAElEQ
VTgfmPMKXtZE+Bl4Jgx5rFai6IW6FDwJXQo+BL1\nfcjv2qR1UaIh1sWZAusZJOv3
n2DuxH4M6mKd4nbnUPCPA4eB/SKyXkQ2AL8CR+11lRKR4SKyU0SS\nRWS6i/Uvisg
m+7VLRDKc1p0nIitEJElEtotIx+q8MaWUUiWCA/x56/Y+XNCiCXe/t46tqSdrZb/l
\nns6yT2NNF5GngM724mRjTE5Vdiwi/sDrwFVACrBWRD4xxmx3OsbDTuUfAHo57eJ
d4BljzFd2C8hz\nA+YrpZQPCA8J5J3J/bj+nz9y879X0yjQn6DWnc/pmv+KLvG9Xk
SuB0YAXbASSR8Rqep5kn5YSWev\nMSYPWABcW0H5m4EE+9ixQIAx5isAY0y2McY7H
iislFL1WKvwEG4b0IGs3AIOZ5055/1V1LF+jYtl\nzYDuInKnMebbSvYdDRx0mk8B
+rsqKCIdgE5A8T4vBDJE5CN7+dfAdGNMYSXHVEopVYn3ftpfa/uq\n6HTWJFfL7Q/
8RZSTEGpoPLDYKUkEAJdind46ACwEJgL/KRPLVGAqQIsWLUhMTCy104iICJeXyPq6
\nwsLCBvG+c3Nzz/qdl5WdnV1pmYZC66JEQ6+L8e2zoD0kZwpvVl68QtUe9sQYs9+
+zLcyqUB7p/l2\n9jJXxgP3Oc2nAJuMMXsBRGQJcAllkogx5i3gLbCuzip7tUVSUl
KDuEqprIZydVZISAi9evWqsExD\nvAqnPFoXJRp6Xfx51rekZlSpe7tS1R6AUUQuA
qpyIm0t0EVEOolIEFai+KSc/TUFfiqzbaSItLDn\nrwC2l93W26Wnp9OzZ0969uxJ
69atiY6Odszn5eVVaR+TJk2i7KXLVTFq1CgGDRpUatmECRNYsmSJ\nY76goIDIyEj
H/I4dOxgxYgRdunQhPj6e8ePHc+TIkWofu6xhw4ZV2jKaM2eO4wZIpZR7TRsWQ2hg
\n7YylVW5LREQ+BcreRNIMaANMqGzHxpgCEbkfWA74A3OMMdtE5GlgnTGmOKGMBxY
YpxtWjDGFIvIo\n8I1Ygz6tB/5djfflFaKiohyDL86cOZMmTZrw6KOPlipjjMEYg5
+f63w+d+7cah/3+PHjbN68mZCQ\nEA4cOMB551X+uMzTp08zcuRIXn31Va6+
+moAvvnmG9LT02nZsmW1Y3C2fPnySsvMmTOH+Ph4Wrdu\nfU7HUkpVrvhmw9nLd5J
2jvuqqCXyHPC80+s54B5gElVIIgDGmGXGmAuNMRcYY56xlz3hlEAwxsw0\nxpx1D4
kx5itjTHdjTDdjzET7Ci+3WrIxlYGzvqXT9M8ZOOtblmws7+zbuUlOTiY2NpZbb72
Vrl27\nkpaWxtSpU+nTpw9du3bl6aefdpQdNGgQmzZtcrQapk+fTo8ePRgwYEC5rY
SlS5cyZswYxo0bx4IF\nC6oU0/z587n88ssdCQTgyiuvPOtmvq+//pohQ4YwYsQIY
mJiuO++
+yjO//Pnz6dbt27ExcXxpz/9\nybFNu3btyMjIIDk5mbi4OO688066du3KiBEjyM3
NZeHChWzatIlx48Y5WmnTpk0jNjaW7t2789hj\nXnVfq1I+YUyvaH6YfgV5vyWvP5
f9lJtEjDH/V/wCMrGu1voMeApIOpeDeqMlG1OZ8dEWUjNyMEBq\nRg4zPtritkSyY
8cOHn74YbZv3050dDSzZs1i3bp1/PLLL3z11Vds33722buTJ09y+eWX88svvzBg\n
wADmzJnjct+LFy/m5ptv5uabb67yA6uqM0T8zz//zBtvvMH27dtJSkpi6dKlpKSk8
Pjjj7Ny5Uo2\nbtzIDz/8wGeffXbWtjt37uShhx5i27ZthIaGsmTJEkfyKE4mJ06c
YNmyZWzbto3NmzczY8aMKsWl\nlKp7Fd0ncqGIPCkiO4BXsa6SEmPMEGPMa3UWYR2
ZvXwnOfmlryDOyS9k9vLq90dUxQUXXECfPiUj\nDSQkJBAfH098fDxJSUkuk0hoaC
gjRowAoHfv3uzbt+
+sMocOHeLgwYMMGDCA2NhYioqK2LFjB+B6\nOPiaDBF/ySWX0LFjR/z9/Rk/fjzff
/89P//8M1dccQXNmzcnMDCQW265hVWrVp21befOnenWrVuF\n76FZs2b4+fkxZcoU
Pv74Yxo31vE+lfJWFZ3O2oHVoT3KGDPIGPMq4LP3aRwq50qF8pafK+cPxt27\nd/P
yyy/z7bffsnnzZoYPH05u7tmPtSwe2h3A39+fgoKCs8osXLiQ48eP07FjRzp27MiB
AwccrZGo\nqChOnDjhKOtqiPiqKJt4qpOIgoODK30PgYGBrFu3jjFjxrBkyRJGjhx
Z5f0rpepWRUnkeiANWCki\n/xaRKwGffbJR20jXAxOXt7w2ZWZmEhYWRnh4OGlpaV
XqiC5PQkICS5cudQwRv2bNGkcSGTx4MAsW\nLCA/33pc5rx58xxDxN92220kJiby5
ZdfOva1cuVKkpLOPnO5evVqDhw4QGFhIYsWLWLQoEH079+f\nlStXkp6eTkFBAQsW
LODyyy+vctzOw95nZWWRmZnJqFGjePHFF9m4cWON60Mp5V4V3Wy4BFgiIo2x\nhit
5CGgpIm8AHxtjVtRRjHVi2rAYZny0pdQprdBAf6YNi3H7sePj44mNjeWiiy6iQ4cO
DBw4sEb7\n2bNnD2lpacTHxzuWFT+kav369YwZM4YNGzbQu3dv/Pz86NKlC2+
+ad1q1KhRIz777DMefvhhHnjg\nAQIDA+nZsycvv/zyWcfp168f99xzD3v27GHo0K
GMHj0aEeGvf/0rgwcPxhjDNddcU60WxKRJk7jr\nrrsIDQ3lk08+4cYbb+TMmTMUF
RXxwgsv1Kg+lFLuV+5Q8C4LizQFbgLGGWOudFtUNVAbQ8Ev2ZjK\n7OU7OZSRQ9vI
UKYNi6nVcffrijtvNvz666957bXXSt1v4ik6FHz1aF2U0Looca5DwVfrjnVjzAms\
nO8TfqukBvdmYXtH1MmkopZSnVHvYE9WwDR06lKFDh3o6DKWUl6j2sCdKKaVUMU0i
SimlakyTiFJK\nqRrTJKKUUqrGNIm4UUZGBv/85z9rvP1LL73E6dPlPxX42LFjBAY
GOu71KNamTZtS8/PmzeP++
+93\nzL/77rvExcXRrVs3evXqxXPPPVfjGIutW7eOBx98sMIy51ofSinvo0nEjdyd
RD744AMuueSSKg+y\nCPDFF1/w0ksvsWLFCrZs2cLq1auJiIiocYzF+vTpwyuvvFJ
hGU0iSvkeTSLONi+CF+NgZqT1c/Oi\nc9rd9OnT2bNnDz179mTatGkAzJ49m759+9
K9e3eefPJJAE6dOsXIkSPp0aMHcXFxLFy4kFdeeYVD\nhw4xZMgQx9AkZSUkJPD88
8+TmppKSkpKlWJ69tlnee6552jbti1gjWU1ZcqUs8pNnDiRe+65hz59\n+nDhhRc6
RuTNzc1l0qRJjlbMypUrAevmrVGjRgHWs1MmT57M4MGDOf/88x3JpWx9pKWlcdlll
9Gz\nZ0/i4uL47rvvqlq1SikvofeJFNu8CD59EPLtARdPHrTmAbqPrdEuZ82axdat
Wx0PplqxYgW7d+9m\nzZo1GGMYPXo0q1at4ujRo7Rt25bPP//cOvTJk0RERPDCCy+
wcuVKxyCJzg4ePEhaWhr9+vVj7Nix\nLFy4kEceeaTSmKoz5Hvx2Ft79uxhyJAhJC
cn8/rrryMibNmyhR07dvC73/2OXbt2nbXtjh07WLly\nJVlZWcTExHDvvfeeVR/PP
/88w4YN489//jOFhYUVtrqUUt5JWyLFvnm6JIEUy8+xlteSFStWsGLF\nCnr16kV8
fDw7duxg9+7ddOvWja++
+orHHnuM7777rkqnlxYuXMjYsVZyGz9+fKWntGoy5PvYsWMd\nY2ydf/757Nixg+
+//54JE6xnkhWP9eUqiYwcOZLg4GCaN29Oy5YtOXz48Fll+vbty9y5c5k5cyZb\nt
mxpEM+FV8rXaBIpdrKc00HlLa8BYwwzZsxg06ZNbNq0ieTkZO68804uvPBCNmzYQL
du3Xj88cdL\nPdmwPAkJCcybN4+OHTsyevRoNm/ezO7duwEICQkp9Qx3bx3y/bLLL
mPVqlVER0czceJE3n333Srv\nXynlHTSJFItoV73lVeA8vDnAsGHDmDNnDtnZ2QCk
pqZy5MgRDh06RKNGjZgwYQLTpk1jw4YNLrcv\ntmvXLrKzs0lNTXUM+T5jxgxHa2T
QoEHMnz8fgJycHBYtWuToV5kxYwbTpk3jt99+AyAvL4+3337b\nZfwffPABRUVF7N
mzh7179xITE8Oll17K++
+/74jjwIEDxMRUbaTjsu9n//79tGrViilTpnDXXXc5\n3rdSqv7QPpFiVz5Ruk8EI
DDUWl5DUVFRDBw4kLi4OEaMGMHs2bNJSkpiwIABADRp0oT58+eTnJzM\ntGnT8PPz
IzAwkDfeeAOAqVOnMnz4cNq2bevowAarFXLdddeVOtYNN9zAuHHjeOKJJ/jHP/7BI
488\nwiuvvIIxhttvv53LLrsMgKuvvprDhw8zdOhQjDGICJMnT3YZ/3nnnUe/fv3I
zMzkzTffJCQkhN//\n/vfce+
+9dOvWjYCAAObNm1eq1VGd+oiLi2P27NkEBgbSpEkTbYkoVQ9Vayh4b1YbQ8GzeZH
VB3Iy\nxWqBXPlEjTvVPak2hoKfOHEio0aN4sYbb6ylqGqfDgVfPVoXJbQuStTpUP
A+r/vYepk0lFLKUzSJ\nKJfmzZvn6RCUUvWAdqwrpZSqMZ9PIr7S56NK09+rUt7Bp
5NISEgI6enp+oHjY4wxpKenExIS4ulQ\nlGrwfLpPpF27dqSkpHD06FFPh1KncnNz
ff4DNiQkhHbtan4Pj1Kqdvh0EgkMDKRTp06eDqPOJSYm\n0qtXL0+HoZRqAHz6dJZ
SSin30iSilFKqxtyaRERkuIjsFJFkEZnuYv2LIrLJfu0SkYwy68NFJEVE\nXnNnnE
oppWrGbX0iIuIPvA5cBaQAa0XkE2PM9uIyxpiHnco/AJQ9kf9XYJW7YlRKKXVu3Nk
S6Qck\nG2P2GmPygAXAtRWUvxlwPBRDRHoDrYAVboxRKaXUOXBnEokGDjrNp9jLzi
IiHYBOwLf2vB/wPPCo\nG+NTSil1jrzlEt/xwGJjTKE9/3tgmTEmpaIHIYnIVGAqQ
IsWLUhMTHR3nPVCdna21oVN66KE1kUJ\nrYva484kkgq0d5pvZy9zZTxwn9P8AOBS
Efk90AQIEpFsY0ypznljzFvAW2ANBa9DO1t0mOsSWhcl\ntC5KaF3UHncmkbVAFxH
phJU8xgO3lC0kIhcBTYGfipcZY251Wj8R6FM2gSillPI8t/WJGGMKgPuB\n5UASsM
gYs01EnhaR0U5FxwMLjA5wpZRS9Y5b+0SMMcuAZWWWPVFmfmYl+5gHzKvl0JRSStU
CvWNd\nKaVUjWkSUUo1HJsXwYtxkLbJ+rl5kacjqve85RJfpZRyr82L4NMHIT8HWg
MnD1rzAN3HejS0+kxb\nIkqphuGbp60EAnQ+/Lm1LD/HWq5qTFsiSinflncKdnxut
TxsbTPWl6w/edDFRqqqtCWilPI9RUWw\n9//g43vhuQvhoykg/o7Vqy94uKSs+MHP
/4LCfA8EWv9pS0Qp5TuOJMEvC2DLB5CZCsHh0PU66DEe\nTqbAZw9Bfg55AWFW+YB
gaNoJvvgjrPk3/O5vcOEwqGC4JVWaJhGlVP2WfQS2LIbNCyDtF6vF0Xko\n/O6vEH
M1BIaWlBW/kj6QiPZw5RPQ7SbYtRxWPA4J46DT5TDsGWjdzTPvp57RJKKUqn/yc6x
+js0L\nIfkbMIXQpicMnwVxN0CTlq636z7WeiUmws1bS5bHDIfOV8K6uZD4LLx5Kf
SaAFc8DmGt6+Qt1Vea\nRJRS9UNREez/wWpxbFsKeVkQHg0DH4Tu46HlRee2f/9A6
D8Vut8Eq56z+km2fgSDHoYB90FQo9p5\nHz5Gk4hSyrsd3WUljs2LrCupgppA7LVW
P0eHQeBXy9cHhTa1Tmf1vRO+ehJW/g3Wz4Urn7ROfdX2\n8eo5TSJKKe9z6hhs/RB
+SYBDG62+jAuugKEzrX6OumgVNDsfxr0H+3+E5X+Cj6fCz2/AsL9Dh//n\n/uPXE5
pElFLeIT8Xdn1hXV2V/DUUFVid28P+DnE3Qlgrz8TV4f/BXd9aV3x98xTMHQEXj4a
rnrIS\nTQOnSUQp5TlFRXBwtdXi2LYUzpyEsDZWH0T38dAq1tMRWvz8oMc4uPga+O
l1+P5F2PkF9L8bLnvU\nOgXWQGkSUUrVvWPJdj/HQsg4AIGNIXY0dB8HnS4DP//K9
+EJQY3g8mkQfxt8+zcroWx6HwbPgD6T\nrc75BkaTiFKqbpxKh20fWaerUtdZ/Rzn
D4Yhj8PFoyCosacjrLqw1nDta1ZLZPmfGvTNippElFLu\nU3AGdn0JvyyE3cutfo5
WcXDVX60rncLbeDrCc9O6G9z+SYO+WVGTiFKqdhkDB3+2WhzbPoLck9Ck\nNfS/x7
os19c+XEXK3Kz49wZ1s6ImEaVU7UjfY93LsXkBnNgHgY3golFW4jh/sPf2c9SWBnq
zoiYR\npVTNnT4O2z62Wh0pawCxOsYvn271cwSHeTrCutfAblbUJKKUqp6CPNi9wr
osd/cKKMyDFhfD0Kes\nD8mIaE9H6B0ayM2KmkSUUpUzBlLWlvRz5JyAxi2h7xTr/
onW3RvUFUnV4uM3K2oSUUqV7/ivJf0c\nx/dCQChcNNLu5xgC/voRUiUV3qw4DUIj
PR1hjelfgFKqtJwTsG2JdSPggZ8AgY6D4NJHrG/QIeGe\njrD+cnmz4n/tmxUn1cu
bFTWJKKWsfo7kr60Wx84vofAMNI+xH9o0FiLbezpC31J8s2K/qbDiz/DF\nNFjzVr
28WVGTiFK+bvMi62l+re+CF+
+3EkP3sVY/R+oGK3FsWQw5x6FRc+sbcY/x1kOe6tGHWb3U\nprt9s+KXsOIv9fJmR
U0iSvmyzYvg0wetJwG2xnoexyf3W08FPLwV0pPBP7ikn+OCK+rlKZV6TQRi\nRliP
9K2HNytqElHKl33ztJVAgDYZ661lBWdg+xLrgU4D/8d6wFNIhAeDVEC9vVlRk4hSv
uZMlvUg\np5R1VsvDFnP4k9LlJn1ex4GpKqlnNytqElGqPisqhKM7rXs4UtdByno4
mgSmyFrvF2ANegis63AP\nffa/aS2P0I5yr1dPblZ0axIRkeHAy4A/8LYxZlaZ9S8
CQ+zZRkBLY0ykiPQE3gDCgULgGWPMQnfG\nqlS9kHXYThbrrMRxaCPkZVvrQiIhur
c13Ei7vtZ08teOPpHsEHvE3MBQq3Nd1Q9efrOi25KIiPgD\nrwNXASnAWhH5xBizv
biMMeZhp/IPAL3s2dPA7caY3SLSFlgvIsuNMRnuilcpr5OfA2m/WAmjOHEU\nn57y
C7CGVO8xHqL7QLs+0OyCs091dB9r/fzmaetnRPuSq7NU/eHqZsVdX1o3K176qEdvV
nRnS6Qf\nkGyM2QsgIguAa4Ht5ZS/GXgSwBizq3ihMeaQiBwBWgCaRJRvKiqC43tK
J4zDWx2noohobyWK/vdY\nP9v0sFoUVdF9rPVKTISbt7rtLag6UPZmxR9fg43vw5A
/Qe+JHrmyTowx7tmxyI3AcGPMXfb8bUB/\nY8z9Lsp2AFYD7YwxhWXW9QPeAboaU3
yi17FuKjAVoEWLFr0XLVrklvdS32RnZ9OkSRNPh+EVvLUu\nAvIzCc/cTXjmTsIzd
xGWtZvAAuu0VIF/CFlhF5IZbr2ywi4kL/jcn+HtrXXhCb5SF02y9nLBnrk0\nzdjM
qUbt2HPBJI43612t+3uGDBmy3hjTp6YxeEvH+nhgsYsE0gZ4D7ijbAIBMMa8BbwFE
BMTYwYP\nHlwHoXq/xMREtC4sXlEXBXlweIvV6V3cAX58r7VO/KwRcLvfYLUwovsQ
0CKGpn7+nHvaKM0r6sJL\n+E5dDAYzCXZ9SeMVj9N9y1+tZ7f87hloHVcnEbgziaQ
CzpeAtLOXuTIeuM95gYiEA58DfzbGrHZL\nhErVNmMgY799WspOGmmbrWFEwHrCX7
s+EH+71ZfRthcE1/9vxMqDSt2sOAcSn4U3B1mnvIY8DmGt\n3Hp4dyaRtUAXEemEl
TzGA7eULSQiFwFNgZ+clgUBHwPvGmMWuzFGpc5N7klr6JDiy2tT18Gpo9a6\ngFBo
2xP6TbGulmrXB8KjdSgR5R7+gVZHe/exJTcrbvkQLn0YBtxf9T60anJbEjHGFIjI/
cByrEt8\n5xhjtonI08A6Y0zxnU/jgQWmdOfMWOAyIEpEJtrLJhpjNrkrXqUqVVhg
3YORsrYkYRzdCdh/us0v\nhM5XQbveViujVVcdQkTVveKbFftMhq+ftDrg182DoU9
C3I21frOiW/tEjDHLgGVllj1RZn6mi+3m\nA/PdGZtSlco8VHI/Rup6656M/NPWut
BmVusi7gbrfozoeOufVylvEXUBjJsP+36wblb8aAqsLr5Z\ncUCtHcZbOtaV8qy8U
3Bok31aym5pZB2y1vkHWSOqFvdjtOsNTTvpaSlVP3QcCFNWwpZF8PVTMHe4\ndbNi
+/7w85v0buPX+1x2r0lE+abyhj8H656MY7tK7sdIXQeHt0PxxYFNO1p3CRf3Y7TuB
gHBHnsr\nSp0zPz/rxtSLR8NPr8Gq2ZD0SeXbVYEmEeV7XA1/vvQ+2PaxdToqdQOc
ybTKBkdYp6Iu/UPJUCGN\nm3s0fKXcJqgRXP5Ha8j54pb2OdIkouqnwnw4nQ6njsH
pY/ZPe371647hz/vvfdEunwc7l0Hr7tDt\nRvu0VF+I6ux1o6Iq5XZZabW2K00iyj
vk5zglhHSnxFAmQZy2p3NPut6P+JWMYAtkhrQjNN9ptJx7\nvnPzG1GqHohoV+oxA
edCk4iqfcZYI8uW/fAvN0mkQ/4p1/vyC7Ae2dq4OTSKsm7Oc55v3Nxpvrk1\nEN3L
PRz/IEltb6LVTnu8KB3+XCnLlU+UnPI9R5pEfElFncnnoqgIcjOqnhBOp5fcoV1WQ
Ij9oR9l\n/WzepfR8qaQQZT1xr7pXQbn6B9Hhz5UqUWp056Rz2pUmEV/hqjP50wet
dWUTSWEB5Bwvv0/hrPn0\nkiuXygoKK0kA4dHQuoeLhOA0H9TYrdVQ6v3q8OdKlc8
e3Xn9H2T9uexGk0h9VFhgnf7Jz7Hub8jP\ngeV/dnzzbpm52SqXnwOfPQTbl5ZOED
kZOO6yLisksuTDv9n5Vudz2dZB8XyjKAgMqZv3XF06/LlS\ndcJ3kkj+aXgxzvPfO
I2BgjNWPPmnS3/QOz74TzutP116Pu905WWL8isMITbtw5KZvFOQvsf64G/V\ntfyE
0Li5dce1DtOhlKoG30kiUPEpnGJFRSUf7lX5UC+VBKq4/uxR6yvmFwCBja1ruANDr
enAUGu+\nURQE2suDGp+9PtB+ffaw1coAfu70AP1/fdXad0R7uE8HQVZKuYfPJJGQ
/JOAWB/mnzxg3UzjKkkU\n5FZ/5wEhJR/Wzh/0IZEQ3rZkXdn1pT74ndc3Kp0YauP
bf0Guo08kJ8i+WU47k5VSbuYzSSSgKBew\nhzouyAU/f+vZDa4+tMv9UHeRBAIb1Y
+b0bQzWSnlAT6TRLKDWwH2UBYR7WHiZx6NxyO0M1kpVcfq\nwVfsatJTOEopVWd8K
4lEtIdrXtFTOEopVUd85nQWgY3gYT2Fo5RSdcm3WiJKKaXqlCYRpZRSNaZJ\nRCml
VI1pElFKKVVjmkSUUkrVmCYRpZRSNaZJRCmlVI1pElFKKVVjYkw5DyeqZ0QkC9hZy
7uNAE7W\nYtnyylR1eUXzztPNgWOVxFJdWheVx1jTstWpi6osq6u6qE49VLW81kXl
ZWq7LmKMMWGVBVwuY4xP\nvIB1btjnW7VZtrwyVV1e0XyZaa0LH62Lqiyrq7qoTj1
oXfhuXejprIp9WstlyytT1eUVzVcn1prQ\nuqjZ/mu7LqqyrK7qorr71rqoXvl6UR
e+dDprnTGmj6fj8AZaFyW0LkpoXZTQuihxrnXhSy2Rtzwd\ngBfRuiihdVFC66KE1
kWJc6oLn2mJKKWUqnu+1BJRSilVxzSJKKWUqjFNIkoppWqsQSQRERksIt+J\nyJsi
MtjT8XiaiDQWkXUiMsrTsXiSiFxs/00sFpF7PR2PJ4nIGBH5t4gsFJHfeToeTxKR8
0XkPyKy\n2NOxeIL9+fCO/fdwa2XlvT6JiMgcETkiIlvLLB8uIjtFJFlEpleyGwNk
AyFAirtidbdaqguAx4BF\n7omybtRGXRhjkowx9wBjgYHujNedaqkulhhjpgD3AOP
cGa871VJd7DXG3OneSOtWNevlemCx/fcw\nutJ9e/vVWSJyGVYCeNcYE2cv8wd2AV
dhJYW1wM2AP/BsmV1MBo4ZY4pEpBXwgjGm0uzqjWqpLnoA\nUVgJ9Zgx5rO6ib521
UZdGGOOiMho4F7gPWPMf+sq/tpUW3Vhb/c88L4xZkMdhV+rarkuFhtjbqyr\n2N2p
mvVyLfCFMWaTiPzXGHNLRfsOcGvktcAYs0pEOpZZ3A9INsbsBRCRBcC1xphngYpO0
ZwAgt0R\nZ12ojbqwT+c1BmKBHBFZZowpcmfc7lBbfxfGmE+AT0Tkc6BeJpFa+rsQ
YBbWh0e9TCBQ658XPqM6\n9YKVUNoBm6jC2SqvTyLliAYOOs2nAP3LKywi1wPDgEj
gNfeGVueqVRfGmD8DiMhE7BaaW6OrW9X9\nuxiM1XQPBpa5NbK6V626AB4AhgIRIt
LZGPOmO4OrY9X9u4gCngF6icgMO9n4ovLq5RXgNREZSRWG\nR6mvSaRajDEfAR95O
g5vYoyZ5+kYPM0YkwgkejgMr2CMeQXrw6PBM8akY/UNNUjGmFPApKqW9/qO\n9XKk
Au2d5tvZyxoirYsSWhcltC5KaF24Viv1Ul+TyFqgi4h0EpEgYDzwiYdj8hStixJaF
yW0Lkpo\nXbhWK/Xi9UlERBKAn4AYEUkRkTuNMQXA/cByIAlYZIzZ5sk464LWRQmt
ixJaFyW0LlxzZ714/SW+\nSimlvJfXt0SUUkp5L4R6HwIAAASxSURBVE0iSimlaky
TiFJKqRrTJKKUUqrGNIkopZSqMU0iSiml\nakyTiPJaIrJPRJqfa5lqHC+7NvbjC0
TkIRFp5Ok4lPfTJKKUB4jIOY9bZw/l7S4PAdVKIm6OR3kp\nTSLK40RkiYisF5FtI
jLVxfqOIrJDRN4XkSSxnkTo/AH3gIhsEJEtInKRvU0/EflJRDaKyI8iElPF\nWJ4R
kV9EZLWItBKRMBH5VUQC7fXhxfMikigiL4vIJhHZKiL97DKN7YcArbGPf629fKKIf
CIi3wLf\niPXEzVUi8rlYDwZ6U0T87LJviPX0yW0i8pRTfPtE5B8isgG4SUSmiMha
O+YPi+tFRObZ+1gtInvt\nY82x62+e0/5+Z9fTBhH5QESaiMiDQFtgpYisLK+cq3i
q+CtXvsQYoy99efQFNLN/hgJbgSh7fh/Q\nHOiI9XTKgfbyOcCjTmUesKd/D7xtT4
cDAfb0UOBDe7otsKycOAxwjT39v8Dj9vRcYIw9PRV43p5O\nBP5tT18GbLWn/w5Ms
KcjsR780xiYiDXcdvH7HQzkAudjPSDpK+DGMnXibx+nu9P7/aNTzFFO039z\nqot5
wAJAsJ4RkQl0w/riuB7oadftKqCxvc1jwBPOdW9PV1buj67qU18N46UtEeUNHhSRX
4DVWKOK\ndnFR5qAx5gd7ej4wyGld8TD/67ESDkAE8IFYjwN9EegKYIw5ZIy5upw4
8oDiJz067+ttSobGnoSV\nVIol2PtdBYSLSCTwO2C6iGzCSgAhwHl2+a+MMcedtl9
jrMexFtr7Kn5fY+1v9xvt2GOdtlnoNB0n\nIt+JyBbg1uL3afvUGGOALcBhY8wWYz
0/Zpv93i6x9/uDHesdQAcX9VJZuYUutlENRIN4nojyXmI9\nGGooMMAYc1pEErE+d
MsqO8ib8/wZ+2chJX/TfwVWGmOuE+uJbolVCCff/tAttS9jzA/2KbXBgL8x\nxvk5
1a7iEuAGY8xO5xUi0h84VcH7ADAi0on/394dg0YRRGEc/3+SVCKSSkhhJZLCJkUCo
kVaQbAR\nRCUgWAY721QpAmlTKGkMgqS0sQhYaBEhoiAJSGJlmcIiHEFIlZdi3sFy
eLdmDJxw36/anZmdndnm\n7czADDwHZiLiMKefmt+kWcc6ZZS0o3LQ2Fwjr/tdThr
X3fux7OP7iHjIYGop19snGyEeidiwXQYO\nM4BMUf56/+SqpJt5/QjY+ot6u2cjPP
nnVsJryvG5r3rSHwBIug10IqJD2RX1mSRl3vSAemdVtuK+\nkHVtUabifgMdSVeAO
wOevwQc5JrN4zP2aRu4JelatvOipOuZd5R1t5WzEecgYsO2CYxJ2qOc8b3d\np9wP
YCHLTQAvWupdAZYlfaMx4pY0KanmKNw3+d6NnvTjfMdL4GmmLQHjwK6k73nfzxfKk
c17wE/g\nbUTsUKax9imB61P/x1kEPmeZ/bN0KCJ+UQLshqRdylbhU5m9BmxK+tBS
zkact4K3/15OR72LiBtD\nbMN94F5EzDfSPlIW+L9W1jmXz989l0aaDYHXRMxaSFq
lTCn1W5A3G1keiZiZWTWviZiZWTUHETMz\nq+YgYmZm1RxEzMysmoOImZlVcxAxM7
Nqp0sbDha14ZGVAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 essay features\n",
"\t-15.4056\tgroup \t\t-2.7334\t2nd
\n",
"\t-15.4056\tgrown \t\t-3.3138\tspan
\n",
"\t-15.4056\tguid \t\t-3.3895\tsnapshot
\n",
"\t-15.4056\tguidanc \t\t-3.6551\tsnap
\n",
"\t-15.4056\tguy \t\t-3.7055\tspanish
\n",
"\t-15.4056\tgymnasium \t\t-3.8115\tslate
\n",
"\t-15.4056\tgymnast \t\t-4.0367\tslim
\n",
"\t-15.4056\thabitat \t\t-4.2652\tsleepi
\n",
"\t-15.4056\thair \t\t-4.3649\t21
\n",
"\t-15.4056\thaiti \t\t-4.4112\t26
\n",
"top 10 title features\n",
"\t-15.4056\teager \t\t-2.7334\t201
\n",
"\t-15.4056\tear \t\t-3.3138\tmayo
\n",
"\t-15.4056\tearth \t\t-3.3895\tmarket
\n",
"\t-15.4056\tearthworm \t\t-3.6551\tmarkerboard
\n",
"\t-15.4056\teast \t\t-3.7055\tmaze
\n",
"\t-15.4056\teat \t\t-3.8115\tmalon
\n",
"\t-15.4056\teater \t\t-4.0367\tmaniac
\n",
"\t-15.4056\tecesitan \t\t-4.2652\tman
\n",
"\t-15.4056\teclips \t\t-4.3649\t170
\n",
"\t-15.4056\tecmc \t\t-4.4112\t1950s
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.027501</td>\n",
" <td>0.000945</td>\n",
" <td>0.007684</td>\n",
" <td>0.001038</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.729870</td>\n",
" <td>0.709841</td>\n",
" <td>0.697381</td>\n",
" <td>0.710956</td>\n",
" <td>0.706354</td>\n",
" <td>0.710881</td>\n",
" <td>0.010625</td>\n",
" <td>6</td>\n",
" <td>0.808390</td>\n",
" <td>0.811237</td>\n",
" <td>0.807811</td>\n",
" <td>0.808851</td>\n",
" <td>0.811379</td>\n",
" <td>0.809534</td>\n",
" <td>0.001486</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.027405</td>\n",
" <td>0.000725</td>\n",
" <td>0.007472</td>\n",
" <td>0.000642</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.731110</td>\n",
" <td>0.711188</td>\n",
" <td>0.698646</td>\n",
" <td>0.712329</td>\n",
" <td>0.708200</td>\n",
" <td>0.712295</td>\n",
" <td>0.010567</td>\n",
" <td>5</td>\n",
" <td>0.807813</td>\n",
" <td>0.810677</td>\n",
" <td>0.807329</td>\n",
" <td>0.808334</td>\n",
" <td>0.810800</td>\n",
" <td>0.808991</td>\n",
" <td>0.001463</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.027516</td>\n",
" <td>0.000140</td>\n",
" <td>0.007222</td>\n",
" <td>0.000075</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.732830</td>\n",
" <td>0.714412</td>\n",
" <td>0.701975</td>\n",
" <td>0.714880</td>\n",
" <td>0.711475</td>\n",
" <td>0.715115</td>\n",
" <td>0.010003</td>\n",
" <td>4</td>\n",
" <td>0.806843</td>\n",
" <td>0.809751</td>\n",
" <td>0.806490</td>\n",
" <td>0.807457</td>\n",
" <td>0.809833</td>\n",
" <td>0.808075</td>\n",
" <td>0.001436</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.028273</td>\n",
" <td>0.000399</td>\n",
" <td>0.007271</td>\n",
" <td>0.000043</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.738086</td>\n",
" <td>0.723071</td>\n",
" <td>0.710536</td>\n",
" <td>0.721411</td>\n",
" <td>0.719637</td>\n",
" <td>0.722549</td>\n",
" <td>0.008897</td>\n",
" <td>2</td>\n",
" <td>0.804803</td>\n",
" <td>0.807750</td>\n",
" <td>0.804506</td>\n",
" <td>0.805493</td>\n",
" <td>0.807758</td>\n",
" <td>0.806062</td>\n",
" <td>0.001418</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.027615</td>\n",
" <td>0.000162</td>\n",
" <td>0.007307</td>\n",
" <td>0.000144</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.748435</td>\n",
" <td>0.738300</td>\n",
" <td>0.725104</td>\n",
" <td>0.730818</td>\n",
" <td>0.732852</td>\n",
" <td>0.735103</td>\n",
" <td>0.007892</td>\n",
" <td>1</td>\n",
" <td>0.797087</td>\n",
" <td>0.800009</td>\n",
" <td>0.796560</td>\n",
" <td>0.797792</td>\n",
" <td>0.799967</td>\n",
" <td>0.798283</td>\n",
" <td>0.001446</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.027501 0.000945 ...
0.809534 0.001486\n",
"1 0.027405 0.000725 ...
0.808991 0.001463\n",
"2 0.027516 0.000140 ...
0.808075 0.001436\n",
"3 0.028273 0.000399 ...
0.806062 0.001418\n",
"4 0.027615 0.000162 ...
0.798283 0.001446\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 192
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "S0T0oPVfK5q9",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "an_XkpDnJaAA",
"colab_type": "code",
"outputId": "a3b7307c-2af1-40ad-b8fe-170fd0d0b07c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
}
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(x_tr_tfidf.todense())
,axis=1) \n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_tfidf.todense())
,axis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds = roc_curve(y_train,
y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"Cv AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['TF_IDF',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 193,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3XdcVfX/wPHXB3Ck4ERJIRX3RgVB\nzUXmrrQcaWlamWmallmZNsyv3
75pw/rlapmW5sqNW1PT3LgF9wJDcbFkc9+/Pw7cQNYFuczP8/Hg\nIZzzOee8z0Xu
+57zOe/PR4kImqZpmgZgk9cBaJqmafmHTgqapmmamU4KmqZpmplOCpqmaZqZTgqa\
npmmamU4KmqZpmplOCpqmaZqZTgpagaGUuqKUilJKRST7mpm4bqhSKiFxWZhS6rhS
6qlk29ZQSkmy\n7a4opSakcYyhSqmTSqlIpdQNpdQcpVS5ZOsnK6XiEvcRopTaq5R
qnUHMD8Z1LCkupVRHpVRgBtu2\nUUr9qZQKV0qFKqXWKaUaJq57Mdm5RCmlTMlfl8
Q2bRPjC1VK3VVK/a2Uapmd114rOnRS0Aqap0XE\nPtnX6GTr9omIPVAOmA0sSf6Gn
qhcYpu+wEdKqc5JK5RS7wDTgHeBskAroDqwVSlVPNk+libuwxHY\nASzPJObkcf0M
LFNKlc9og8REswVYA1QFXIHjwN9KqZoisijpNQC6A/8kf12UUmUAH+A7oALgDHwK\
nxGQSq1bE6aSgFToiYgJ+A0oDddJpcxg4DTQDSHwT/RR4U0Q2iUiciFwB+gM1gEFp
7CMeWAQ4K6Uq\nWRjXPOARoFYmzacDv4rItyISLiJ3ReRDYD8wObNjAXUTj7lYRBJ
EJEpEtojICQu21YownRS0Qkcp\nZQu8DMQBV9Np0wpoDFxIXNQGKAmsTN5ORCKADU
BnHpB49fAScAe4Z0FcdsAwIAI4n0G7UonxpHUF\nsiytWNJwDkhQSi1QSnXP7MpE0
5LopKAVNKsT7+Unfb2WbF0rpVQIEA18CQwSkeAHtr+tlIoC9mHc\nYlqduNwRuJ34
6f9BQYnrk/RPPE4U8BrQN53tHozrBjAQeFZEQjNoXwHjbzPIgljSJCJhQFtAgB+B\
nW0qptUopp8y21Yo2nRS0gqa3iJRL9vVjsnX7RaQcUB5YC7RLY3tHwB54B+gIFEtc
fhtwTPw0/6Aq\nieuTLEs8jhNwCnDPJOb9ibE6ikgrEdmWSft7gCnxuJnFki4R8Re
RoSLignFVVBX4xpJttaJLJwWt\n0Em85TMSGKyUap7G+gQR+RrjiuKNxMX7MDphn0
veVimV1JG7PY393AaGA5OVUmm9gWc3/vuJ8fRL\nY3X/tGKxYJ9ngPkYyUHT0qWTg
lYoichd4Cfg4wyafQ68p5QqmXg751PgO6VUN6VUMaVUDYx7+IEY\nHddpHecssBl4
L7uxKqVKPvClgAnAEKXUGKWUg1KqvFJqKtA6Mc7M9llfKfWOUsol8efHMG5d7c9u\
nnFrRoJOCVtCse6BOYVUGbb8Beiilmqazfj3GrZrXAERkOjARoz8iDDgABACdRCSj
Rzm/AIYrpSpn\n8VzAeFQ06oGvWiKyB+iKceUShNFh3hxoKyLpdlInEw54AQeUUvc
xksEpjNtmmpYupSfZ0TRN05Lo\nKwVN0zTNTCcFTdM0zUwnBU3TNM1MJwVN0zTNLK
1CnXzN0dFRatSoka1t79+/T+nSpXM2oHxOn3PR\noM+5aHiYc/b19b0tIpmO0VXgk
kKNGjU4fPhwtrbduXMnHTt2zNmA8jl9zkWDPuei4WHOWSmV5jhg\nD9K3jzRN0zQz
nRQ0TdM0M50UNE3TNLMC16eQlri4OAIDA4mOjs6wXdmyZfH398+lqPIHfc5FQ1bP\
nuWTJkri4uFCsWLHMG2tFSqFICoGBgTg4OFCjRg2MscTSFh4ejoODQy5Glvf0ORcN
WTlnEeHOnTsE\nBgbi6upq5ci0gsZqt4+UUvOUUsFKqVPprFdKqf9TSl1QSp1QSrX
I7rGio6OpWLFihglB0zSDUoqK\nFStmemWtFU3W7FOYD3TLYH13jPlz62CMST/nYQ
6mE4KmWU7/vWjpsdrtIxH5K3E8+vT0wpiYXID9\nSqlySqkqIpLWFISapmkFlogQb
xJi4k3ExpuIiU8gJs6U8ufEf42fTYnrE7C5H0zZkNNUCPUjpFRd\njAkDrScv+xSc
McaqTxKYuCxVUlBKDce4msDJyYmdO3emWF+2bFnCw8MzPWBCQoJF7bIqJCSE5cuX\
n89prr2Xe+AF9+vTh559/ply5clna7vHHH6dOnTrMnz/fvKxHjx5MnTqVFi2MO3FX
r16lX79+HDx4\nEIDDhw/z4YcfEhwcTKlSpWjWrBnTp0+nVKlSWTr20aNHGTlyJFF
RUXTp0oXp06en+uS5e/duBg4c\nSPXq1QF4+umnmTBhAufPn2fo0KHmdleuXGHixI
mMGjWKoUOHcv68MVVAaGgoZcuW5e+//wbgq6+
+\n4tdff8XW1pbp06fz5JNPAjB79mwWLFiAiDBkyBBGjRpFQkICY8eOZePGjRQvXh
xXV1dmz55NuXLl\niI2NZezYsRw9ehQbGxumTZtGu3bGrJ1Tpkxh8eLFhISEEBT07
3/DgIAARowYQWhoKAkJCUyePJmu\nXbumWO/p6ckHH3zAmDFjiI6Oplu3bsTGxhIf
H0+vXr2YNGkSAF27diUiIgKAW7du4e7uzuLFi7l3\n7x6jRo3i8uXLlChRgtmzZ9O
wYcMMX68PP/zQfI41atRgzpw55v9Hp06dYuzYsYSHh2NjY8POnTsp\nWbJkit9RdH
R0qr+lgiQiIsLi+BNMQqwJ4kwQlyDEJ31vEuJMEG+C2ARJXAbxicvjEpJ9n6x9XEL
K\nbeNMkrgs/faWTFJQiXs0sblME3WZxjaXaWJzmUfVPQBMolhTbqjVf2cFoqNZRH
4AfgDw8PCQByv6\n/P39Lepks1YH5J07d5g3bx7jxo1LtS4+Ph47u/Rf5i1btmT5e
P7+/ogI+/fvx8bGxlz2bmtrS+nS\npc3naG9vj1IKBwcHbt68ydChQ1myZAmtW7cG
4I8//gDI8msyfvx4fv75Z7y8vOjRowd///033bt3\nT9GmVKlStGvXDh8fnxTLW7R
owYkTJwAjSTs7OzNw4EAcHBxYsWKFud0777xD2bJlcXBwwM/Pj1Wr\nVuHv788///
zDk08+yblz5/D39+e3337j8OHDFC9enG7dutG3b1+cnJzo2bMnX331FXZ2drz//vv
M\nnDmTadOmMWvWLIoVK8bp06cJDg6me/fuHDp0CBsbG/r06cO4ceOoU6dOitfkm2
+
+YeDAgYwcORI/\nPz969OhB3759zes//vhjunfvTokSJXBwcMDe3p5du3Zhb29PXF
wcbdu2pXfv3rRq1Yq9e/eat+vT\npw+9evXCwcGBKVOm4OHhwbp16zhz5gyjRo1i+
/btGb5eyc/x7bffNp9jfHw8r7/+Or/99htubm7c\nuXOHcuXKYWtrm+J3UbJkSZo3
TzVbaYFhSXVvgkn47s/zzPzzAvGmh5s7poSdDSXsbChuZ2t8X8yG\nEna2FC9hQ5n
EdSWS1iVfb16XuL6YDcVtbSgbf5tK4f5UCPOjbMhpHO6epnhUMACCIr5CbRIe7UR0
\nlWbYODenWNWmlN9/xOpV3HmZFK4DjyX72SVxWYEzYcIELl68SLNmzejcuTM9e/b
ko48+onz58pw5\nc4Zz587Ru3dvAgICiI6OZuzYsQwfPhz4d9iOiIgIunfvTtu2bd
m7dy/Ozs6sWbOGRx55JNXxFi9e\nzODBg/H392fNmjW88MILmcY4a9YshgwZYk4IQ
Io3NksFBQURFhZGq1atAHjppZdYvXp1qqRgie3b\nt1OrVi3z1UQSEWHZsmX8+eef
AKxZs4YBAwZQokQJXF1dqV27NgcPHiQwMBAvLy/zlU6HDh1YuXIl\nI0eOpEuXLub
9tWrVypwA/fz8eOKJJwCoXLky5cqV4/Dhw3h6eprP6UFKKcLCwgDjCqZq1armdatX
\nr8bV1TXFeDRKKezt7QHjcem4uLhUV1JhYWH8+eef/PLLL+a4JkyYAED9+vW5cuU
KN2/exMnJKd3X\nK/k5tmzZkvXr1wPGB42mTZvi5uYGQMWKFdM8r8Lu7v1Yxi45yu
7zt+nZpArNHiv37xt00hu27b/f\nG2/4SettkyUB4038ofphIu/Ctf0QdAwCjhn/R
tw01ikbcKwLdZ6Aqs2gSjPUo00oVsKevHhgOC+T\nwlpgtFJqCca0gaE50Z/w6brT
+P0Tlua6hISEVJ+WLNGwahk+ebpRuus///xzTp06xbFjxwDjE8yR\nI0c4deqU+ZG
/efPmUaFCBaKiomjZsiV9+vRJ9cd6/vx5Fi9ezI8//kj//v1ZsWIFgwYNSnW8pUuX
\nsnXrVs6cOcN3331nUVI4deoUQ4YMybTd2bNnef7559Nct3PnTq5fv46Li4t5mYu
LC9evp53L9+3b\nh5ubG1WrVuXLL7+kUaOUr+GSJUsYOHBgqu12796Nk5MTderUAe
D69esp3rCTjtm4cWMmTZrEnTt3\neOSRR9iwYQMeHh6p9jdv3jzzObm5ubF27VoGD
hxIQEAAvr6+5ts/6Zk8eTJdunThu++
+4/79+2zb\ntg0wbl9MmzaNrVu38uWXX6bYJiEhAXd3dy5cuMCoUaPw8vJKsX716t
V06tSJMmXKmONauXIl7dq1\n4+DBg1y9epXAwMAUSSG91wvgt99+48UXXwTg3LlzK
KXo2rUrt27dYsCAAbz3XrankC6Qjl67x6hF\nR7h9P5b/PdeEAS0fy5vOdRE4+hts
mgix4f8mgJreRgKo2hwebQLF88/AflZLCkqpxRg9Io5KqUDg\nEzASn4jMBTYAPYA
LQCTwsrViyQuenp4pngH/v//7P1atMqYTDggI4Pz586mSgqurK82aNQPA3d2d\nK1
eupNrv4cOHcXR0pFq1ajg7O/PKK69w9+5dKlSokOZ/
+qz+IdSrV8+c3B5GixYtuHr1Kvb29mzY\nsIHevXub+wsAYmNjWbt2Lf/73/9Sbbt
48eJ03/ySa9CgAe+//z5dunShdOnSNGvWLFXS/
+9//4ud\nnZ35DfOVV17B398fDw8PqlevTps2bTL9oLB48WKGDh3KO+
+8w759+xg8eDCnTp1i8uTJvP322+ar\nguRsbW05duwYISEhPPvss5w6dYrGjRun2
OewYcPMP0+YMIGxY8fSrFkzmjRpQvPmzVPEldHr9eA5\nxsfHs2fPHg4dOkSpUqXo
1KkT7u7udOrUKdPXtKATEX7dd5Wp6/1wKlOSFSPa0MSlbN4EExYE68bA\n+S1QvS0
8MQmquOWrBJAWaz59lOFfdeJTR6Ny+rgZfaLPzaKm5LcTdu7cybZt29i3bx+lSpWi
Y8eO\naT4jXqJECfP3tra2REVFpWqzePFizpw5Q9Lw4WFhYaxYsYLXXnuNihUrcu/
ePXPbu3fvmhNPo0aN\n8PX1pVevXhnGndmVgrOzM4GBgeZlgYGBODs7p2qb9AkYjA
7wN954g9u3b+Po6AjAxo0badGiRYpP\nwmC8oa1cuRJfX1/zMmdnZwIC/n0mIfkxX
331VV599VUAJk6cmOIqZv78+fj4+LB9+3ZzcrSzs2PG\njBnmNm3atKFu3boZviY/
//wzmzZtAqB169ZER0dz+/ZtDhw4wB9//MF7771HSEgINjY2lCxZktGj\nR5u3LVe
uHN7e3mzatMmcFG7fvs3BgwfNHxKSXq+kW0kigqurKzVr1jSvT+/1SjrH1atXm8/R
xcWF\n9u3bm1/rHj16cOTIkUKfFO7HxDNh5UnWHf+HTvUr83X/ZpQtlQc3YETgxDL
Y+C7Ex0K3aeA5HGwK\nxqhCBSPKfM7BwSHDp5pCQ0MpX748pUqV4syZM+zfvz9bxz
GZTCxbtoyTJ09y5coVrly5wpo1a1i8\neDEAHTt2ZOHChRj5FhYsWGB+smb06NEsW
LCAAwcOmPe3cuVKbt68meIYSVcKaX2VK1eOKlWqUKZM\nGfbv3298Kvv11zQTzY0b
N8xxHDx4EJPJlOLKKL2rgW3btlG/fv0Ub+7PPPMMS5YsISYmhsuXL3P+\n/Hnz7Z7
gYKNj7tq1a6xcudJ8K23Tpk1Mnz6dtWvXpni6KjIykvv37wOwdetW7OzsaNiwYYav
e7Vq\n1di+fTtgdPJHR0dTqVIldu/ebf49vPXWW0ycOJHRo0dz69YtQkJCAIiKimL
r1q3Ur1/fvL8//viD\np556KsXTQCEhIcTGxgLw008/0b59+xSJNa3XK71z7Nq1Ky
dPniQyMpL4+Hh27dqV6TkWdBeCw+k1\n62/Wn/iHd7vW48eXPPImIUQEw9JBsGo4O
NaDEXug1YgCkxCggDx9lN9VrFiRxx9/nMaNG9O9e3d6\n9uyZYn23bt2YO3cuDRo0
oF69eul2aGZm9+7dODs7p+jobN+
+PX5+fgQFBTF8+HDOnDmDm5sbSik8\nPDyYOHEiYDzKu2TJEsaPH09wcDA2Nja0b9
+ebt0yqi9M2+zZsxk6dChRUVF0797d3Mk8d+5cAEaM\nGMEff/zBnDlzsLOz45FHH
mHJkiXmT7L3799n69atfP/996n2ndZ980aNGtG/f38aNmyInZ0ds2bN\nMt9a6dOn
D3fu3KFYsWLMmjWLcuXKER4ezujRo4mJiaFz586A0dk8d+5cgoOD6dq1KzY2Njg7O
/Pb\nb7+Zj/Pee+/x++
+/ExkZiYuLC8OGDWPy5Ml89dVXvPbaa8yYMQOlFPPnz8/wtlxQUBBDhgwhISEB\nk
8lE//79eeqpp1KcY1KnchJ/f3+GDBmCUopGjRrx888/m9el93olP0eTyUSbNm2YO3
cu5cuXZ9y4\ncbRs2RKlFD169Ej1f7IwWXPsOh+sPEmp4rYsHOZFm1qOeRPI6VWw/
h2IiYDOU6D1aLDJeh9mXlNJ\nn+YKCg8PD3lwkh1/f38aNGiQ6bZ6TJyiQZ+zZSz9
u8mvtv65g93hlfh131U8qpdn5gsteLRsycw3\nzGmRd41kcHql0XHcey5Urp/5dtn
wkJPs+IpI6icxHqCvFDRNK3Cuh0TxvwPRXAq9yrC2rrzfvT7F\nbPPgFs2ZDbBuLE
TdA+8Poe3bYFuw31YLdvSaphU5u87d4q0lR4mKMTF3UAu6Na6S+0FEhcCmCXB8\nM
Tg1gcErjUdLCwGdFDRNKxASTMK328/z3Z/nqefkwNA6dnmTEM5vg7VvGsVn7d+F9u
+BXfHcj8NK\ndFLQNC3fS16d3KeFC1N7N+bA3t25G0RMOGyeBEcWGE8WDVgIzu65G
0Mu0ElB07R87UhidfKdvKxO\nvvwXrB4FoQHQZgx4T4JiedCpnQt0UtA0LV8SERbs
vcJ/N/jzaNmSrBzZhsbOuVydHHsftk2Ggz9A\nhVrwymao5pXpZgVZwamoyOdu3Lj
BgAEDqFWrFu7u7vTo0YNz585laR/ffPMNJUuWJDQ01Lxs/vz5\nKSpkwShSS3osNy
Iigtdff9183I4dO6YoULNUTEwMzz//PLVr18bLyyvNITbAGMCvSZMmNGvWLMU4\nQ
8uXL6dRo0bY2NiQ/JHh2NhYXn75ZZo0aYKbm1uKYX99fX1p0qQJtWvXZsyYMeZit2
PHjtGqVSvz\nMZKG/r537x7PPvssTZs2xdPTk1OnjEn9AgIC8Pb2pmHDhjRq1IjZs
2dnGtedO3fw9vbG3t4+xesb\nGRlJz549qV+/Po0aNUpVTwCwYsUKlFI8+Gj0tWvX
sLe3T3McpObNm6eoVWjXrh3NmjWjWbNmVK1a\nld69ewPGG+GYMWOoXbs2TZs25ci
RI+Zt3n//fRo3bkzjxo1ZunRpmr+fwiIiJp43Fx9l8jo/OtSt\nhM/odrmfEK7th7
ltjYTgNcIoRCvkCQEw/hMWpC93d3d5kJ+fX6plaQkLC7OoXVaZTCZp1aqVzJkz\nx
7zs2LFj8tdff2VpP56entK2bVuZN2+eedkvv/wio0aNStGuQ4cOcujQIRERef7552
XChAmSkJAg\nIiKXLl0SHx8fc1tLz3nWrFny+uuvi4jI4sWLpX///mm2q169uty6d
SvVcj8/Pzlz5kyK2EREZs6c\nKUOHDhURkZs3b0qLFi3MsbZs2VL27dsnJpNJunXr
Jhs2bBARkc6dO5u/X79+vXTo0EFERMaPHy+T\nJ08WERF/f3954oknRETkn3/+EV9
fX/P51qpVS06fPp1hXBEREbJ7926ZM2dOitf3/v378ueff4qI\nSExMjLRt29YcS9
L+27VrJ15eXin2JyLSp08f6du3r3zxxRcpln/11VcycOBA6dmzZ5qv6XPPPScL\nF
iwwn2+3bt3EZDLJvn37xNPTU0REfHx85Mknn5S4uDiJiIgQDw8PCQ0NTRFXVln6d5
Pbzt4Ikye+\n3CGuE3xk1o7zkpBgSrPdjh07rBNAbKTIpokin5QVmdFE5PJu6xwnG
x7mnIHDYsF7rL5SyAE7duyg\nWLFijBgxwrzMzc2Ndu3aMWDAAPOQxgBDhw41D+Oc
3MWLF4mIiGDq1KnmYSsyc/HiRQ4cOMDUqVOx\nSSyjd3V1zVb16po1a8yjqPbt25f
t27ebP7lbIqla+0HpDVWdfAhupZR5CG5If6jq5PtKPrx0lSpV\nzBMLOTg4UK9ePf
PIrenFVbp0adq2bZtq4plSpUrh7e0NQPHixWnRokWKsZ4+
+ugj3n///VTbJQ2h\n/eBIsIGBgaxfvz7F4HfJJQ2hnXSlsGbNGl566SWUUrRq1co
84Y+fnx/t27fHzs6O0qVL07RpU/N4\nTIXJmmPX6TXzb0Kj4lg4zIs3OtbGxiYX+w
8CfeH79rBvJni8DCP3Qo22uXf8fKDw9SlsnAA3Tqa5\n6pGE+OwVljzaBLp/nu7qU
6dO4e6e9lMIzz//PMuWLaNnz57Exsayfft25sxJPR31kiVLGDBgAO3a\ntePs2bOp
xtJPy+nTp9McGTS9OM6ePZtq+bhx43jppZe4fv06jz1mTG9hZ2dH2bJluXPnjnlQt
SRK\nKbp06YJSitdff908L0R60huq2sbGJt0huL/55hu6du3K+PHjMZlM5olpLBle
+sqVK5w4cSLVUNXZ\nERISwrp16xg7diwAR44cISAggJ49e/LFF1+Y22U0hPZbb73
F9OnT0x0b68EhtJP/HpK/Lm5ubnz6\n6ae88847REZGsmPHjkI1nlFMfAJTffz5bf
9VPGtU4LsXmuNUJhc7cuNjYNc02DMDHKrA4FVQ64nc\nO34+UviSQj7TvXt3xo4dS
0xMDJs2baJ9+/bpTpyzatUq8wxgy5cvZ/To0ek+ZZHVpy9y6h70nj17\ncHZ2Jjg4
mM6dO1O/fn3at2+fbvvsDFU9Z84cZsyYQZ8+fVi2bBmvvvoq27Zty3R46YiICPr06
cPn\nn3+eYjC57IiPj2fgwIGMGTOGmjVrYjKZGDduXIrpT5OkN4S2j48PlStXxt3d
Pd0pFB8cQjs9Xbp0\n4dChQ7Rp04ZKlSrRunXrbM0Nkh8F3otk1KIjHA8MZXj7mrz
btV7uVicHHYdVIyH4NDQbBN0+g5J5\nNNx2PlD4kkIGn+ijrDQmTqNGjdK8JQTGlI
cdO3Zk8+bNLF26lAEDBqRqc/LkSc6fP28evC02NhZX\nV1dGjx6dajhsMIbEdnR0p
Fy5chw/ftyiyYMyu1JIGp7axcWF+Ph4QkND05yxK2nI6sqVK/Pss89y\n8ODBDJNC
ekNVly9fPt0huBcsWMC3334LQL9+/cxvmhkNLx0XF0efPn148cUXeeaZZzJ8LSwxf
Phw\n6tSpw1tvvQUYYwudOnXKPO7MjRs3eOaZZ1i7dm26Q2hfv36dtWvXsmHDBqKj
owkLC2PQoEEsXLgQ\nSHsI7YyGCZ80aZJ5rucXXngh0yG/C4KdZ4N5a+kxEhKEuYP
c6db40dw7eEIc7P4a/poOpSrCwKVQ\nL+sDRBY6lnQ85Kev/NrR7OnpKd9//7152f
Hjx80dzT4+PtK7d29xcXGRmJiYVNt/8MEH8tlnn6VY\nVqNGDbly5YrcuHFDqlevL
kFBQSIicujQIalbt665s7Zfv34yadIkMZmMzrjLly9nq6N55syZKTqa\n+/Xrl6pN
RESEeX8RERHSunVr2bhxY4o2D3bo3r9/XyIiIkREZMuWLdKuXTvzugc7mtevXy8iI
vXr\n1zd3qG3btk1atGghIiL37t0zv34//PCDDB48WESM13/w4MEyduzYdM/5wbiS
pNWRP2nSJHnuuefM\nr3Fa0tvfJ598kqqjWcToIHywo3nOnDny0ksvpVjm4+OToqO
5ZcuWIiISHx8vt2/fFhHj/1ajRo0k\nLi7OvF1B62iOTzDJV1vOSo0JPtJ1xi65dC
siy/t4qI7mm34ic9uLfFJG5I9XRe7fyf6+clFudDTn\n+Zt8Vr/yY1IQEbl+/br06
9dPatasKQ0bNpQePXrIuXPnREQkNjZWypcvb34K50Gurq7i7+
+fYtnb\nb78tn3/+uYiIrF69Wpo3by5ubm7y+OOPm5+0EREJDQ2VYcOGSc2aNaVRo
0bSoUMHOXjwoHm9pecc\nFRUlffv2lVq1aknLli3l4sWL5vPq3r27iIhcvHhRmjZt
Kk2bNpWGDRvK1KlTzduvXLlSnJ2dpXjx\n4lK5cmXp0qWLiBhJqm7dulK/fn3p1Km
TXLlyxbzNoUOHpFGjRlKzZk0ZNWqUObHt3r1bWrRoIU2b\nNhVPT085fPiwiIjs3b
tX6tSpI3Xr1pVnn31W7t69a24PSJMmTcTNzU2aNGliTjDpxSViPElVvnx5\nKV26t
Dg7O8vp06clICBAAKlfv764ubmJm5ub/Pjjj6ler5xICh06dEiVVE0mk7zxxhtSs2
ZNady4\nsfkYUVFR0qBBA2nQoIF4eXnJ0aNHU2xXkJLC7fBoGfTTfqn+vo+8s+yYR
MbEZ2s/2XqDTIgX2f21\nyBRHkWk1RU6vztax80puJAU9dHYhp8+5aCgoQ2f7Xr3H
6N+N6uQpzzTi+YeoTs7yMNK3z8PqkRB4\nCBo8Az2/BvtK2Tp2XtFDZ2uaViiICPP
3XuG/6/2pUi6Xq5NNJjgwF7Z/CnYloc/P0LgP5PZQGQWE\nTgqapllVREw87684wf
oTQTzZwImv+rnl3lSZdy8ZYxZd2wt1u8HT34JDLnZmF0CFJimISO4PkqVp\nBVRu3
TY+dzOcEQt9uXL7Pu9YvNEXAAAgAElEQVR3q8/r7WvmTjGayQSHf4atnxhTYvaaDc
1e0FcH\nFigUSaFkyZLcuXOHihUr6sSgaZkQEe7cuZOqKjunrT5qzJ1cuoQdi4a1o
nWt1I84W0VIAKwdDZd2\nQk1v6DUTyrpkuplmKBRJwcXFhcDAQG7dupVhu+joaKv/
IeQ3+pyLhqyec8mSJVNUlOekmPgE/uPj\nx8L91/CsUYGZLzSncm5UJ4vA0YWweSK
YEuCpGeD+sr46yKJCkRSKFSuGq6trpu127txJ8+bNcyGi\n/EOfc9GQX845eXXy64
nVyXa5UZ0cFgTrxsD5LVC9LfSeBeVrWP+4hVChSAqapuW9HWeM6mSTSfh+\nsDtdG
+VCh64InFwOG941xi/qNg08h4ONHuszu3RS0DTtoSSYhG+2neO7Py/QoEoZ5rzYgh
qOpa1+\n3GKxIbB0EJzxARdP6D0HHGtb/biFnU4KmqZl252IGMYuOcaeC7fp5+7Cf
3o3pmSxXBio7/QqWh4a\nA6YY6DwFWo82njLSHppOCpqmZYvv1buMWnSUe5GxTO/T
lP4tH8t8o4cVeRfWvwOnVxLtUJvigxdB\n5frWP24RopOCpmlZIiLM+/sK/9vgT9V
yj7DyjTY0qpoL1clnNsC6sRB1D7w/5GhCCzrohJDjdFLQ\nNM1i4dFxTFhxkvUng+
jc0Ikv+7lR9hErVydHhcCmCXB8MTg1hsEr4dEmSDpzVGgPRycFTdMscvZG\nOCMX+
nL1biQTuhvVyVYvFr2wDda8CRE3of270P49sCtu3WMWcVZ9bksp1U0pdVYpdUEpNS
GN9dWU\nUjuUUkeVUieUUj2sGY+madmz6mggvWf9TVh0PIuGeTGiQy3rJoSYcFg7B
hb2gRIOMGwrPPGhTgi5\nwGpXCkopW2AW0BkIBA4ppdaKiF+yZh8Cy0RkjlKqIbAB
qGGtmDRNy5qY+ASmrPNj0YFreLpWYObA\nXKhOvvyXMYhdaAC0GQPek6BY0apQz0v
WvH3kCVwQkUsASqklQC8geVIQIGky3bLAP1aMR9O0LAi4\nG8mo349wIreqk2Pvw7
bJcPAHqFALXtkM1bysdzwtTVabZEcp1RfoJiLDEn8eDHiJyOhkbaoAW4Dy\nQGngS
RHxTWNfw4HhAE5OTu5LlizJVkwRERGpJlcv7PQ5Fw05fc7Hb8Xzw4kYTALDmpTA3c
m63Y9l\nQv2pf+ZbSkUFEej8FJdqvoTJtkSG2+jfc9Z4e3sXiEl2BgLzReQrpVRr4
DelVGMRMSVvJCI/AD+A\nMfNadmceephZiwoqfc5FQ06dc4JJmLH1HDN9jerkuYNa
UL2iFauT46Lgz6lwdBaUewz6+
+Di2g5L\nhurTv2frsGZSuA4kr2ZxSVyW3KtANwAR2aeUKgk4AsFWjEvTtDTcjohh
7JKj/H3hDv09XJjSy8rV\nyYG+sHoE3D5njGba5T9Gp7KWp6yZFA4BdZRSrhjJYAD
wwgNtrgGdgPlKqQZASSDj8a81TctxuVqd\nHB8Du6bBnm+MWdAGrYTanax3PC1LrJ
YURCReKTUa2AzYAvNE5LRSagpwWETWAu8APyql3sbodB4q\nuTUllKZpKaqTncvnQ
nVy0AlYNQKCT0OzF6HrZ/BIOesdT8syq/YpiMgGjMdMky/7ONn3fsDj1oxB\n07S0
hUfH8f6KE2w4eYMuDZ34wprVyQlxsPtr+Gs6lKoIA5dCvW7WOZb2UPK6o1nTtDxw5
kYYbyw8\nwtW7kXzQvT7DrVmdHOxvXB0EHYMm/aD7dChVwTrH0h6aTgqaVsSsPBLI
xFUncShZjN+HeeFV00pz\nJ5sSYO//wY7PoEQZ6P8rNOxlnWNpOUYnBU0rIqLjEpj
i48fvB67h5VqB715oTmUHK1UK3z4Pq0dC\n4CFo8Az0/BrsK1nnWFqO0klB04qAgL
uRvLHoCCevhzKiQy3Gd6lrnepkkwkOzIXtn4JdSejzMzTu\nA9YeOE/LMTopaFoh9
+eZm7y99DgmEX58yYPODZ2sc6C7l2HNKLj6N9TpCk9/C2WqWOdYmtXopKBp\nhVSC
Sfh661lm7bhIwyplmGOt6mQROPwzbPnYmBKz1yzjcVN9dVAg6aSgaYXQ7YgYxiw+y
t6Ld3je\n4zE+7dXIOtXJIQGwdjRc2gk1vaHXTChrySAVWn6lk4KmFTKHr9xl1O9H
CImMY3rfpvT3sEJ1sggc\nXQibJxpPGT01wxiqQl8dFHg6KWhaISEi/LznMp9vPJN
YndzSOtXJYUGwbgyc3wLV20LvWVC+Rs4f\nR8sTOiloWiEQFS+8segIG08Z1clf9n
ejTMkcrk4WgZPLYcO7xvhF3aaB53CwseoEjlou00lB0wq4\nMzfCmLw3itvRUUzsU
Z/X2lmhOjkiGHzehjM+4OIJveeAY+2cPYaWL+ikoGkF2ArfQCatPkkJG6xX\nnXx6
NawfZ8yb3HkKtB5tPGWkFUo6KWhaARQdl8Cn6/xYfPAarWpWYED1qJxPCJF3YcN4O
LUCqjaH\n3nOhcv2cPYaW7+ikoGkFTMDdSEYu8uXU9TBGdqzFO53rsmf3Xzl7kLMb
Yd1YIzF4fwht3wJbK42g\nquUrOiloWgGy3f8mby89hoB1qpOjQmDTB3D8d3BqDIN
WwKNNcvYYWr6mk4KmFQDxCSa+3nqO2Tsv\n0qhqGea86E61iqVy9iAXtsGaNyHiJr
R/F9q/B3bFc/YYWr6nk4Km5XO3wo3q5H2X7jDQ8zE+eTqH\nq5NjwmHzJDiyABzrw
YCF4Oyec/vXChSdFDQtHzt05S6jFh0hNCqOL/u50dc9h4eQuPwXrB4FoQHQ\nZgx4
T4JiVhpOWysQdFLQtHxIRPhp92U+33SGx8o/woJXPGlQpUzOHSD2Pmz7FA5+DxVqw
iuboZpX\nzu1fK7B0UtC0fCYsOo73lp9g0+kbdGv0KNP7Nc3Z6uRr+40JcO5eAq8R
0OkTKJ7D/RNagaWTgqbl\nI/5BYYxc6EvAvSg+7NmAV9u65lx1clw07JgKe2dCucd
giA+4tsuZfWuFhk4KmpZP/OEbyIerT1Km\nZDGWDG9Fyxo5OLl9oC+sHgG3zxmjmX
b5D5RwyLn9a4WGTgqalsei4xKYvPY0Sw4F0LpmRf5vYHMq\nOZTImZ3Hx8CuabDnG
3B4FAathNqdcmbfWqGkk4Km5aFrd4zq5NP/hPFGx1qM65yDcycHnYBVIyD4\ntDET
WtfP4JFyObNvrdDSSUHT8sg2v5uMW3YMgJ9e8uDJnKpOToiD3V/DX9OhVEUYuBTqd
cuZfWuF\nnk4KmpbL4hNMfLX1HHN2XqSxcxlmv5CD1cnB/sbVQdAxaNIPuk+HUjnY
N6EVejopaFouslp1siTA\nnhmw4zOjA7n/r9Cw18PvVytydFLQtFxy8PJdRv9+hLD
oHK5Ovn2B5kc/gLCz0OBp6DkD7CvlzL61\nIkcnBU2zsuTVydUqlMq56mSTCQ7Mhe
2fUgo7eO4naNIXcnrWNa1I0UlB06woLDqOd5cfZ/Ppmzlb\nnXz3MqwZBVf/hjpdO
eT4PG2a9nn4/WpFnkXPvimlViqleiqlsvSsnFKqm1LqrFLqglJqQjpt+iul\n/JRS
p5VSv2dl/5qWn/n9E8Yz3+1hm38wH/ZswJxBLR4+IYjAoZ9gzuNw4yT0mgUvLCW2h
BWm4dSK\nJEuvFGYDLwP/p5RaDvwiImcz2kApZQvMAjoDgcAhpdRaEfFL1qYO8AHw
uIjcU0pVzs5JaFp+s/xw\nAB+uPkW5UjlYnRwSAGtHw6WdUNMbes2Esjk8aqpW5Fm
UFERkG7BNKVUWGJj4fQDwI7BQROLS2MwT\nuCAilwCUUkuAXoBfsjavAbNE5F7icY
KzfSaalg8kr05uU6si3w7IgepkETi6EDZPBFMCPDXDGKpC\n9x1oVqBExLKGSlUEB
gGDgX+ARUBboImIdEyjfV+gm4gMS/x5MOAlIqOTtVkNnAMeB2yBySKyKY19\nDQeG
Azg5ObkvWbIkC6f4r4iICOzt7bO1bUGlzzn3BEeamHUshqthJp6qWYzn6hTD5iHfu
IvH3KHe\n2VlUvOtLSNnGnKn/JtGPPJqqnf49Fw0Pc87e3t6+IuKRaUMRyfQLWIXx
Cf8DoMoD6w6ns01f4Kdk\nPw8GZj7Qxidx38UAVyAAKJdRLO7u7pJdO3bsyPa2BZU
+59yx5fQNafzJJmnyySbZ5nfj4XdoMokc\nXyryv2oi/3ES2TdbJCEh3eb691w0PM
w5p/de/eCXpX0KP4rIhuQLlFIlRCRG0s8814HHkv3skrgs\nuUDggBi3ny4rpc4Bd
YBDFsalaXkqPsHEl1vOMXeXUZ0850V3HqvwkNXJEbfA5y044wMuntB7DjjW\nzpmA
NS0Tlj5NNDWNZfsy2eYQUEcp5aqUKg4MANY+0GY10BFAKeUI1AUuWRiTpuWp4PBoX
vzpAHN3\nXeQFr2r8MaLNwyeE06ththec3wKdp8Arm3RC0HJVhlcKSqlHAWfgEaVU
cyDpBmkZIMP//SISr5Qa\nDWzG6C+YJyKnlVJTMC5j1iau66KU8gMSgHdF5M5DnZG
m5YIDl+4wevFRwqPj+KqfG30etjo58i5s\nGA+nVkDV5tB7LlSunzPBaloWZHb7qC
swFOPWz9fJlocDEzPbeeItpw0PLPs42fcCjEv80rR8T0T4\n4a9LTN98lmoVSvHbq
57Uf/Qhq5PPboR1Y43E4P0htH0LbHNw+k1Ny4IMk4KILAAWKKX6iMiKXIpJ\n0/Kl
sOg4xi87zha/m3Rv/CjT+zbF4WGK0aJCYNMHcPx3cGoMg1bAo01yLmBNy4bMbh8NE
pGFQA2l\nVKpP8yLydRqbaVqh4/dPGCMX+XI9p+ZOvrAN1rwJETeh/bvQ/j2wK55z
AWtaNmV2+6h04r9F62Fg\nTUtm2eEAPkpWnezxMNXJMeGw5UPwnQ+O9WDAQnB2z7F
YNe1hZXb76PvEb2eLyK1ciEfT8o3ouAQ+\nWXOapYeN6uT/G9gcR/uHqE6+/JcxiF
1IALQZA96ToFjJnAtY03KApXUKfyulrgBLgZWSOCyFphVW\nV+/cZ+TCI/gFhTHau
zZvd66LrU02bxfF3odtn8LB76FCTXhlM1TzytmANS2HWDr2UV2llCdGrcGk\nxEdI
lyT2N2haobLl9A3eWX4cG6WYN9SDJ+o/xNzJ1/bD6pFw9xJ4jYBOn0DxHJp6U9Osw
OKhsEXk\noIiMwxjo7i6wwGpRaVoeiE8w8b+N/gz/zZcaFUvj82bb7CeEuGij72Be
NzDFwxAf6D5NJwQt37Po\nSkEpVQZ4FuNKoRbGeEWeVoxL03JVcHg0b/5+lAOX7/K
iVzU+eqph9udODvSF1SPg9jljNNMu/zHm\nTda0AsDSPoXjGENSTBGRzIa30LQCZf
+lO7yZWJ38dX83nmuRzerk+BjYNQ32fAMOj8KglVC7U84G\nq2lWZmlSqJlYfaxph
YaI8P1fl/hi81mqVyjFwle9qPdoNj/RB50w+g5unoJmL0LXz+CRcjkbsKbl\ngsyK
174RkbeAtUqpVElBRJ6xWmSaZkWhUXGMX36crX436dHkUab1yWZ1ckIc7JlhXCGUq
ggDl0C9\n7jkfsKblksyuFH5L/PdLaweiabnl9D+hvLHoCNfvRfHxUw15+fEa2atO
DvaHVSMg6Bg07gs9voBS\nOTDtpqblocyK13wTv20mIt8mX6eUGgvsslZgmmYNSw9
d46M1p6lQqjhLX2+Fe/VsvImbEmDvd7Dj\nv0YHcv9foWGvnA9W0/KApX0KQ4BvH1
g2NI1lmpYvRccl8NHqUyz3DeTx2sbcydmqTr59wXiyKPAQ\nNHgaes4A+0o5H7Cm5
ZHM+hQGAi8Arkqp5BPkOGDUKmhavnfl9n1GLjqCf1AYbz5Rm7eezEZ1sskE\nB+bC
9k/BriQ89xM06QsPOQezpuU3mV0p7AWCAEfgq2TLw4ET1gpK03LK5tM3GL/sODY2i
l+GtsS7\nfuWs7+TuZWPMoqt/Q52u8PS3UKZKzgeraflAZn0KV4GrQOvcCUfTckZ8
gonpm8/yw1+XaOpSllkv\ntMj6VJkicHgebPkIbGyh1yzjcVN9daAVYpndPtojIm2
VUuFA8kdSFcbEaQ855ZSm5byQaBMv/HSA\ng4nVyR8/3ZASdlmsTg4NhDWj4dIOqO
kNvWZC2YecclPTCoDMrhTaJv6ra/S1AmH/pTt8vDeaOIll\nxvNuPNs8i2/kInB0I
WyeaDxl1PNr8HhFXx1oRYalYx/VAgJFJEYp1RFoCvwqIiHWDE7TLCUizN11\niS82
n6FyKcWC1x7PenVyWJAxV/L5zVC9rXF1UMHVOgFrWj5l6SOpKwAPpVRt4AdgDfA70
MNagWma\npUKj4nhn2XG2+d+kZ5MqPOUUmrWEIAInl8OGd43xi7p9Dp6vg43Fgwhr
WqFhaVIwiUi8UupZ4DsR\n+U4pddSagWmaJU5dN6qT/wn5tzp5164s1FRG3AKft+C
MD7h4Qu854FjbegFrWj5naVKIS6xZGAI8\nnbgsGwPFaFrOSVmd3Br36uWztoPTq2
H9OGPe5M5ToPVo4ykjTSvCLE0KLwMjgP+KyGWllCv/jouk\nabkqKjaBj9cY1clta
zvy7YBmVMxKdXLkXdgwHk6tgKrNofdcqFzfegFrWgFi6XScfsCYZD9fBqZZ\nKyhN
S8+V2/cZsdCXMzfCGfNEbcZmtTr57EajMznyLnh/CG3fAlt90atpSSx9+uhxYDJQP
XGbpDqF\nmtYLTdNS2nTqBu8uP46treKXl1viXS8L1clRIbDpAzj+Ozg1hhf/gCpN
rResphVQlt4+
+hl4G/AF\nEqwXjqalFpdg4ovE6mQ3l7LMerEFLuWzUJ18YRusHQPhN6DdeOjwPtg
Vt17AmlaAWZoUQkVko1Uj\n0bQ03Awz5k4+eOUug1tV58OnGlhenRwTDls+BN/54F
gPhm0FZ3erxqtpBZ2lSWGHUuoLYCUQk7RQ\nRI5YJSpNA/ZdNOZOvh8Tz7cDmtGrm
bPlG1/+yxjELiQA2owB70lQrKT1gtW0QsLSpOCV+K9HsmUC\nPJGz4WgamEzC3L8u
8uXms9RwLM3vr3lR18nCYrTY+9Q+/wPsXA8VasIrm6GaV+bbaZoGWP70kbe1\nA9E
0gNDION5Zfoxt/sH0bFqFaX2aYl/Cws8u1/bD6pG43L0EXiOg0ydQPIsjo2paEWdR
Hb9Sykkp\n9bNSamPizw2VUq9asF03pdRZpdQFpdSEDNr1UUqJUsojvTZa4Xfqeih
PzdzNzrO3+OTphswc2Nyy\nhBAXbfQdzOsGpniOuU2F7tN0QtC0bLB0cJf5wGagau
LP54C3MtpAKWULzAK6Aw2BgUqphmm0cwDG\nAgcsjEUrZESExQev8dycvcQnCEtfb
83Lj7uiLBmZ9LovfN/emDPZfSiM3EtI+SZWj1nTCitLk4Kj\niCwDTAAiEk/mj6Z6
AhdE5JKIxAJLgLRmN/8PRiFctIWxaIVIVGwC45ef4IOVJ/FyrYDPm20tG64i\nPha
2/wd+6mw8ZTRoBTz9DZTQo7xr2sOwtKP5vlKqIokT7SilWgGhmWzjDAQk+zmQfzus
SdxPC+Ax\nEVmvlHo3vR0ppYYDwwGcnJzYuXOnhWGnFBERke1tC6r8fM437puYdSy
GwHATvWoVo1fNSE4e3pfp\ndvbhl6h/5lvs718h6NEnuFjrVeID7SBwJ5C/z9la9D
kXDblxzpYmhXHAWqCWUupvoBLQ92EOrJSy\nAb4GhmbWVkR+wBiyGw8PD+nYsWO2j
rlz506yu21BlV/PedOpIP674wS2trb88rI7HS2pTk6Igz0z\n4Og0KFURBi6hSr3u
PDhbcn49Z2vS51w05MY5W5oUamH0DTwG9MH4xJ/ZttcT2ydxSVyWxAFoDOxM\nvHf
8KLBWKfWMiBy2MC6tgIlLMDF90xl+3H05a9XJwf6wagQEHYPGfaHHF1CqgvUD1rQi
xtKk8JGI\nLFdKlQe8gS+BOTxwO+gBh4A6iSOqXgcGAC8krRSRUMAx6Wel1E5gvE4
IhdfNsGhG/36EQ1fu8VLr\n6kzqaUF1sinB6ETe8V+jv6D/r9Awra4pTdNygqVJIa
lTuSfwY2IfwNSMNkiclGc0xlNLtsA8ETmt\nlJoCHBaRtdmOWitw9l68zZjFR7kfk
2B5dfLtC7B6BAQeggZPQ88ZYF/J+sFqWhFmaVK4rpT6HugM\nTFNKlcCCJ5dEZAOw
4YFlH6fTtqOFsWgFiMkkzNl1ka+2nMXVsTSLX2tFncyqk00mOPg9bJsMdiXh\nuZ+
gSV+w5BFVTdMeiqVJoT/QDfhSREKUUlWAdJ8W0jQwqpPHLTvG9jPBPNW0Cp9bUp18
9zKsGQ1X\n90CdrvD0t1Dmwa5kTdOsxdJhLiIxBsNL+jkICLJWUFrBd+p6KCMX+XI
jNJpPn2nES62rZ1yMJgKH\n58GWj4wpMXvNgmYv6qsDTctlll4paJpFjOrkACavO4
1jaWPu5BbVMilGCw00rg4u7YCa3vDMd1Du\nsYy30TTNKnRS0HJMVGwCk1afZOWR6
7Sr48i3A5pToXQGk9mIwNGFsHmi8ZRRz6/B4xV9daBpeUgn\nBS1HXLoVwRuLjnD2
ZjhjO9VhTKc6Gc+dHBZkzJV8fjNUbwu9ZkIF19wLWNO0NOmkoD20jSeDePeP\nE9j
ZKn4Z2jLj6mQROLkcNrwL8THQ7XPwfB1sLB2GS9M0a9JJQcu2uAQTn288w897LuP2
WDlmv9gC\n53KPpL9BxC3weQvO+ICLJ/SeA461cy9gTdMypZOCli03Qo3q5MNXLax
O9lsDPm8bI5o+
+Sm0edN4\nykjTtHxFJwUty/ZeuM2YJUeJjLWgOjnyrnGr6NQfUKUZPDsXKjfIvWA
1TcsSnRQ0iyWvTq5ZyZ7F\nr7XIuDr57EajMznyDnhPgrZvg22x3AtY07Qs00lBs0
jy6uSn3ary+XNNKJ1edXJUCGz6AI7/Dk6N\n4cU/oErT3A1Y07Rs0UlBy9TJQKM6+
WaYBdXJF7bB2jEQfgPajYcO74NdBrUKmqblKzopaOkyVyev\nPY2jfXGWvd6a5ulV
J8eEw5YPwXc+ONaDYVvB2T1X49U07eHppKClKSo2gUmrTrLy6HXa163EN883\nS78
6+fJuWPMGhARAmzFG/0GxkrkbsKZpOUInBS2VS7ciGLnwCOeCw3nryTq8+UQ61cmx
kcbw1ge/\nhwo14ZXNUC2jeZc0TcvvdFLQUthwMoj3/jhBMVvF/Jc96VA3nUltrh0
wJsC5ewm8RkCnT6C4BdNq\napqWr+mkoAEpq5ObJVYnV02rOjkuGnZMhb0zjZFMh6
wD1/a5H7CmaVahk4LGjdBoRv1+BN+r9xja\npgYTezSguF0aYxFd94VVI+H2WXAfC
l2mGvMma5pWaOikUMT9fcGYOzkqLoH/G9icZ9yqpm4UHwu7\npsGeGWDvBINWQO0n
cz9YTdOsTieFIspkEmbvvMDXW89Rs5I9Swe1oHblND71B52A1SPh5iljJrSu\nn8E
j5XI/YE3TcoVOCkVQSGQsby89xo6zt3jGrSr/S6s6OSHOuDLYNQ1KVYSBS6Be97wJ
WNO0XKOT\nQhFzIjCEkQuPEBwezZRejRjcKo3q5GB/WDUCgo5B477Q4wsoVSFvAtY
0LVfppFBEiAiLDlxjyjq/\n9KuTTQmw9zvY8V+jA7n/r9CwV94ErGlantBJoQiIjI
1n0qpTrDp6nQ6J1cnlH6xOvn3B6DsIPAgN\nnoaeM8A+nRoFTdMKLZ0UCrmgCBO9Z
/3N+eAI3n6yLm8+URub5NXJJpNRkbztU7ArAc/9BE36QnoD\n3mmaVqjppFCIrT8R
xKf7onikRDEWvOxJ+werk+9ehjWj4eoeqNMVnv4WylTJm2A1TcsXdFIohOIS\nTPx
vwxnm/X2ZWmVt+G1ku5TVySJweB5s+ciYErPXLONxU311oGlFnk4KhUxQaBSjfz9q
rk5uax+c\nMiGEBhpXB5d2QE1veOY7Y7gKTdM0dFIoVPacv83YJUeJjkvgu4HNedq
tKjt33jJWisCxRcaMaKYE\n6Pk1eLyirw40TUtBJ4VCwGQSZu24wNfbzlG7kj1zBr
lTu7L9vw3CbxhzJZ/bBNXbQq+ZUME17wLW\nNC3fsmpSUEp1A74FbIGfROTzB9aPA
4YB8cAt4BURuWrNmAqb5NXJvZpV5bNnk1Uni1D55i6YNQTi\no6Hb5+D5OtikMdid
pmkaVkwKSilbYBbQGQgEDiml1oqIX7JmRwEPEYlUSo0EpgPPWyumwiapOvlW\neAz
/6d2YQV7V/q1OjrgF69+mof86cGkJveeCY+28DVjTtHzPmlcKnsAFEbkEoJRaAvQC
zElBRHYk\na78fGGTFeAoNEWHhgWv8Z50flRxKsHxEa9weSzZInd8a8HkbYsK5WHM
ItQbNMJ4y0jRNy4QSEevs\nWKm+QDcRGZb482DAS0RGp9N+JnBDRKamsW44MBzAyc
nJfcmSJdmKKSIiAnt7+8wb5mMx8cL80zHs\nC0qgqaMtw5uWwL64cXVgFxdGnfM/4
hT8F+H2tfBv8BbBUqHAn3NWFYbfc1bpcy4aHuacvb29fUXE\nI7N2+aKjWSk1CPAA
OqS1XkR+AH4A8PDwkI4dO2brODt37iS72+YHF29FMHKhL+eDExjXuS6jvZNV\nJ5/
dCOvGQ+Qd8J6EQ9u38bQtVuDPOTv0ORcN+pytw5pJ4TqQ/AF4l8RlKSilngQmAR1E
JMaK8RRo\nPif+4f0/TlCimC2/vuJJuzqJ1clRIcZjpsd/B6fG8OIfUKVp3garaVq
BZc2kcAioo5RyxUgGA4AX\nkjdQSjUHvse4zRRsxVgKrNh4E59t8Gf+3is0r1aOWS
8kmzv5wnZY+6bxyGm78dDhfbArnvEONU3T\nMmC1pCAi8Uqp0cBmjEdS54nIaaXUF
OCwiKwFvgDsgeWJT81cE5FnrBVTQRMUGsWoRUc4ci2Elx+v\nwQfdE+dOjgk3hqjw
/QUc68GwreDsntfhappWCFi1T0FENgAbHlj2cbLv9US/6dh9/hZjlxwjJi6B\nmS8
056mmiXMnX94Na5H1IIsAAA02SURBVN6AkABo8yZ4fwjFSuZtsJqmFRr5oqNZ+5fJ
JMzccYEZ\n285Rp7I9s19MrE6OjYRtk41hrivUhFc2QbVWeR2upmmFjE4K+ci9+7G
8tfQYu87donezqnz2XBNK\nFbeDawdg9Qi4e8moSH7yEyheOq/D1TStENJJIZ84Fh
DCqEVGdfLU3o150asaKj4GtkyGvTONkUyH\nrAPX9nkdqqZphZhOCnlMRFi4/ypTf
Pyo7FDy3+rk676waiTcPgvuQ6HLVGPeZE3TNCvSSSEPRcbG\nM3HlSVYf+4eO9Sox
o38zypcAtv8H9swAeycYtAJq6/54TdNyh04KeeRCsFGdfOFWBO90rsso79rY\nBJ+
CX0fy/
+3dfZAU9Z3H8fcHFgQEAUU5RAQ8gaB4J8gZc0aFSCJBAnpgIiYq0bpoNKch59WR89
TE\nmFQ442PkIB4xIhLhInJZCw3xUMKZAALy5EM0BEGeSiHIoxGz8L0/utkat4Adl
plpZ+fzqtranu7f\nTH+/M7P13V//uvvHOyuTmdAu+gG0bFf/i5mZFYiLQgb2X53c
ollTplzzST59Slv4v7vhN+Og5bEw\nahr0+nzWYZpZBXJRKKHcq5PP6tqeh67oS6c
9a2DSCNi0DPqMgCE/glbHZh2qmVUoF4US2bjtz9z4\n85dZ+vY2rjm3O98e3INmC8
fDC99PBpAvmwynX5J1mGZW4VwUSiD36uTxV/Tj4hN3w+QhsP4l+MRQ\nGHo/tD4+6
zDNzFwUimnfvuDHz6/i/jnJ1ckTvtyXv149FSZ+F6qOgn+YBGeMhP2zpZmZZcxFoU
i2\nplcnz3tzM5f27cwPBrSm5axRsPZF6HERfOEBOKZT1mGamX2Ei0IRLFu3jRseX
8KWXR9y1/DT+XLV\nHDTptmRKzOHjk9NN3Tsws48hF4UCigimLFjL99Krk395ZVd6
v/RNWP0CnDIQhv04uV2FmdnHlItC\ngezeU8O3n1pJ9fKNDOzZgfGnv06rmVfDvr1
w8b3Q/xr3DszsY89FoQBWvbuT6x9/mdWbd3H7Bcfy\n1a33oGdnQ9dzk8NFx3bPOk
Qzs7y4KByh6uUbGTtjBS2rmvDsZ96h15IboOYDGPzD5DbXTZpkHaKZ\nWd5cFBrow
5p9fH/Wa0yev5aBXcSEto/R4rez4KS/g0smQodTsw7RzOywuSg0wIZtydzJy9Zt4+
7T\n1zBy0z1o604Y9N1kiswmTbMO0cysQVwUDtO8Nzdz87SltNy7k9/1mMGJf5wFn
c6ESyfCCb2zDs/M\n7Ii4KORp377gwef/wANz/sCV7V/ndn5C1YatMPBW+PQYaNos
6xDNzI6Yi0Ie9l+dvPTNtUzv+CRn\nb/8VdOwDV86ATn+TdXhmZgXjolCPpW+/x41
TX6bX7kUsaPcIrXZsgfNugQv+FaqaZx2emVlBuSgc\nRETw2Py13DdrCd9pMY1Lqn
4NrXvBlU9A57OyDs/MrChcFA5g954axj61ks0r/5fnWk2iQ807yVlF\nA/8dmrXIO
jwzs6JxUahj1bs7uXnKfC57bxKjm88mjjkFXfIrOPmcrEMzMys6F4Ucv1y2gelPPc
l/\nNplA16pNcPZ1aNAd0PzorEMzMysJFwVgT81exj29jBOW3MuUqmeIYzrDpU9D9
/OzDs3MrKQqvihs\n2PZn7n10GtdtvZueVRvY2+9qqi5K5002M6swFV0U5r2+gTem
38a4mEnN0cfDiBk0PXVQ1mGZmWWm\nIovC3n3B1OpZ9H/53zi/yVp29r6MNsN/BC3
bZR2amVmminpfZ0mDJb0haZWksQfYfpSk6en2hZK6\nFTMegK07djPz/psYtfQqTm
q2kz0jp9Lm8kkuCGZmFLEoSGoKjAc+D5wGjJJ0Wp1m1wLvRcSpwH3A\nuGLFA7Bl0
1u8c995jNzxGBtP/BxtvrWYo/oMLeYuzczKSjF7CmcDqyJidUR8CEwDhtdpMxyYnC
4/\nCVwoFWfOykUzH+QLv7+Fv4rNrL1wAl2vm4aOPq4YuzIzK1vFHFPoDKzLebwe+
OTB2kREjaTtwHHA\nltxGkr4GfA2gY8eOzJ0797CD2bG7CX+p6svufjfSbG973mrA
a5SjXbt2Nej9KmfOuTI45+Ioi4Hm\niHgYeBigf//
+MWDAgAa8ygDmzu3DZxv03PI1d+5cGvZ+lS/nXBmcc3EU8/DRBqBLzuOT0nUHbCOp
\nCmgL/KmIMZmZ2SEUsygsAnpI6i6pOXA5UF2nTTVwdbo8Eng+IqKIMZmZ2SEU7fB
ROkbwDWA20BR4\nJCJelXQnsDgiqoGfAlMkrQK2khQOMzPLSFHHFCLiGeCZOutuz1
n+ALismDGYmVn+inrxmpmZlRcX\nBTMzq+WiYGZmtVwUzMyslsrtDFBJm4G1DXx6B
+pcLV0BnHNlcM6V4Uhy7hoRx9fXqOyKwpGQtDgi\n+mcdRyk558rgnCtDKXL24SMz
M6vlomBmZrUqrSg8nHUAGXDOlcE5V4ai51xRYwpmZnZoldZTMDOz\nQ3BRMDOzWo2
yKEgaLOkNSaskjT3A9qMkTU+3L5TUrfRRFlYeOX9L0muSVkiaI6lrFnEWUn0557Qb
\nISkklf3pi/nkLOmL6Wf9qqSflzrGQsvju32ypBckLU2/30OyiLNQJD0i6V1Jrxx
kuyQ9mL4fKyT1\nK2gAEdGofkhu0/1H4BSgObAcOK1OmxuAieny5cD0rOMuQc4DgV
bp8tcrIee0XRtgHrAA6J913CX4\nnHsAS4H26eMTso67BDk/DHw9XT4NWJN13EeY8
/lAP+CVg2wfAjwLCDgHWFjI/TfGnsLZwKqIWB0R\nHwLTgOF12gwHJqfLTwIXSlIJ
Yyy0enOOiBci4v304QKSmfDKWT6fM8D3gHHAB6UMrkjyyfkfgfER\n8R5ARLxb4hg
LLZ+cAzgmXW4LbCxhfAUXEfNI5pc5mOHAY5FYALST1KlQ+2+MRaEzsC7n8fp03QHb
\nREQNsB04riTRFUc+Oee6luQ/jXJWb85pt7pLRMwqZWBFlM/n3BPoKem3khZIGly
y6Iojn5y/A3xF\n0nqS+Vv+qTShZeZw/94PS1En2bGPH0lfAfoDF2QdSzFJagLcC4
zOOJRSqyI5hDSApDc4T9IZEbEt\n06iKaxTwaETcI+lTJLM59omIfVkHVo4aY09hA
9Al5/FJ6boDtpFURdLl/FNJoiuOfHJG0iDgVmBY\nROwpUWzFUl/ObYA+wFxJa0iO
vVaX+WBzPp/zeqA6Iv4SEW8Bb5IUiXKVT87XAv8NEBHzgRYkN45r\nrPL6e2+oxlg
UFgE9JHWX1JxkILm6Tptq4Op0eSTwfKQjOGWq3pwl9QV+QlIQyv04M9STc0Rsj4gO
\nEdEtIrqRjKMMi4jF2YRbEPl8t/
+HpJeApA4kh5NWlzLIAssn57eBCwEk9SYpCptLGmVpVQNXpWch\nnQNsj4hNhXrxR
nf4KCJqJH0DmE1y5sIjEfGqpDuBxRFRDfyUpIu5imRA5/LsIj5yeeZ8N9Aa+EU6\n
pv52RAzLLOgjlGfOjUqeOc8GPifpNWAv8C8RUba94Dxz/mfgvySNIRl0Hl3O/
+RJeoKksHdIx0nu\nAJoBRMREknGTIcAq4H3gqwXdfxm/d2ZmVmCN8fCRmZk1kIuC
mZnVclEwM7NaLgpmZlbLRcHMzGq5\nKFijVN+dJkuw/2cktUuXb5L0uqSpkoYd6o6
uafvfpb+7SbqiFPGa7edTUq1RknQ+sIvkxmF9Mo7l\n98CgiFh/mM8bANwSEUOLEp
jZAbinYI1SfXealHS0pFmSlkt6RdKX0vVrJP2HpJWSXpJ0arr+eEkz\nJC1Kf85N1
7eW9LO0/QpJI3Jep4OkiSS3fX5W0hhJoyU9lLbpKGlmGsNySX+frt+VhvlD4DxJy9
Ln\nzpN0Zk4OL0r624K/eVbRGt0VzWZ5GgxsjIiLASS1zdm2PSLOkHQVcD8wFHgAu
C8iXpR0MskVtr2B\n2/a3T1+nfe5OIuL69E6lAyNii6TROZsfBH4TEZdKakpyxXmu
seT0FCRtJbnB3zcl9QRaRMTyI34n\nzHK4p2CVaiXwWUnjJJ0XEdtztj2R8/tT6fI
g4CFJy0juPXOMpNbp+vH7n7h/HoM8fQaYkD5vb50Y\nDuQXwFBJzYBrgEcPY19meX
FPwSqCpC7A0+nDiRExMZ1vYQhwl6Q5EXFnuj13oG3/chPgnIj4yGQ9\npZybKSLel
/QcySQrXwTOKtnOrWK4p2AVISLWRcSZ6c9ESScC70fE4yQ3C8yd5/ZLOb/np8u/Jm
fy\nlpxj+88BN+as/8jho3rMIZkaFUlN6xzCAthJcgvwXJNIDjstOsxeiVleXBSsU
UrvNDkf6CVpvaRr\n6zQ5A3gpPRx0B3BXzrb2klYANwNj0nU3Af3TweTXgOvT9Xel
7V+RtJxkLux83QwMlLQSWEIyv3Cu\nFcDedBB6DEBELAF2AD87jP2Y5c2npJrlUDI
hT/
+I2JJ1LAeS9nDmAp/wzGJWDO4pmJWJ9GyohcCt\nLghWLO4pmJlZLfcUzMyslouCm
ZnVclEwM7NaLgpmZlbLRcHMzGr9P7pE95UJFc+OAAAAAElFTkSu\nQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qMcePDz9fxdl",
"colab_type": "code",
"outputId": "1f54d987-f230-408f-ee68-d95e09829832",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"\n",
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 194,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.1605050591119847
for threshold 1\n",
"Test confusion matrix\n",
"[[ 85 143]\n",
" [1458 8314]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1TR8eJaImD3n",
"colab_type": "code",
"outputId": "85087e94-0080-4f6f-d2fd-04856e550db0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"#Lets try the TF_IDF\n",
"#Trying the under sampling approach LETS GET 4935 records
from each class\n",
"total=pd.DataFrame(x_tr_tfidf.todense()).join(y_train,
how='inner') \n",
"print(pd.value_counts(total.project_is_approved)) \n",
"class_1=
total.loc[total['project_is_approved']==1].sample(4935) \n",
"class_0= total.loc[total['project_is_approved']==0]
[:4935] \n",
"new_df=pd.concat([class_0,class_1],axis=0)\n",
"new_df=new_df.sample(frac=1) \n",
"new_y_train=new_df['project_is_approved'] \n",
"new_df.drop(['project_is_approved'],inplace=True,axis=1)\n",
"\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(new_df, new_y_train)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"train_auc= results['mean_train_score']\n",
"train_auc_std= results['std_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"cv_auc_std= results['std_test_score']\n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='Test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='Test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 essay features')\n",
"show_most_informative_features(vectorizertf_essay,clf.best_estim
ator_,10)\n",
"print('top 10 title features')\n",
"show_most_informative_features(vectorizertf_title,clf.best_estim
ator_,10)\n",
"\n",
"results.head()\n"
],
"execution_count": 196,
"outputs": [
{
"output_type": "stream",
"text": [
"1 27102\n",
"0 4935\n",
"Name: project_is_approved, dtype: int64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYsAAAEaCAYAAADg2nttAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzt3Xt4FOXZ+PHvnU0gAULCQUADAgqI\n4RRIivCDF4OAiKjQyrFqrVWpt
dpXfUWxnhBbi/VtrafWWl/UapuIIEitShWJrVqEcBQCUbAIAVQI\nhIMkkGTv3x8z
WTabTTYJuznen+vaa2eeeeaZ+9lN5t6Z2X1GVBVjjDGmKlH1HYAxxpiGz5KFMcaY\
nkCxZGGOMCcmShTHGmJAsWRhjjAnJkoUxxpiQLFkYYxoUEdkpImPrOw5TniULAwT/
BxWRH4rIh/UV\nU1MgIj1EREUkOkztxYpIgYhcFGTZ4yKyqJbtznXjvCBI+StB6qu
I9PKbHy8i/xSRoyKyX0Q+EJEr\nahNLDWJOF5G8SG7DnGLJwjQo4ojY32Wk2w+3wC
SjqkXAq8APAup5gJnAS7XYhrjtHQxst5rrTwFe\nA/4MdAU6Aw8Al9e0LdNwNZp/G
lO/RGS2iCwOKHtSRJ5wp7NE5FcislpEjojIGyLS3q/uMBH52P1U\nvFFE0v2WZYnI
L0XkI+A4cE6Q7e8UkXtEJEdEDonICyIS6y5rJyJvup9oD7nTXatqX0SuE5Gt7ifh\
nL0Tkx37100UkT0TuEpFvRGSfiEwWkUtF5DMROSgiP/erHyUic0Rkh4jki8hCv77/
030uEJFjIjLc\nXedH7vYPichyEenu156KyE9F5HPg8yBvx0vAlSLSyq9sPM7/89t
uG3eLyB63f7kiMiZIO2X+CzgT\n+BkwQ0RaVFG3HDfR/BZ4WFWfV9XDqupV1Q9U9c
ZK1pkrIotE5FU3vnUiMqiSui1F5Hcistd9/M4t\na+329Sz3dT0mImdVN25TC6pqD
3sA7ATGBpT9EPjQnT4T+BZIdOejgW+AVHc+C9gD9AdaA4uBV9xl\nSUA+cCnODm2c
O3+G37q7gH5uuzGVxLcZ6Aa0Bz4CfuEu6wBcCbQC4nE+5S71W7dC+8BE4FxAgAtx\
nksgQt346UILz6TgGuBHYD/zVbb8fUAj0dOv/N7AK51N1S+CPQIa7rAegQLRfPJOA
7cD5bjz3AR/7\nLVfgXbefcZW8X58BV/vNZwC/c6fPA3YDZ/nFcG4V7/3/AQvdvuY
DV/otm1v2Pgaso0AvoK873bMG\nf2tzgWJgirvNO4H/lL3v+P0tAvPc17YTcAbwMU
5iKnuf8ur7f6e5POo9AHs0jIf7D3oMKPB7HMdN\nFm6dt4Eb3enLgBy/ZVnAfL/5Z
OAk4AHuBl4O2N5y4Fq/dedVI76b/OYvBXZUUjcFOBQQW6j2lwL/\n7U6n4yQDjzsf
7+4QL/CrvxaY7E5vBcb4LTvT3RlGEzxZvA1c7zcf5b7W3d15BS4KEe99wD/c6bbu\
n+oPd+V44iXwsQRJvQDutgCN+ffkj8Ibf8rlUnSxGuNOxNfhbmwusCuj/PuC//N7r
smSxA7jUr+54\nYKff+2TJoo4edhrK+JusqollD+DmgOUvAVe701cDLwcs3+03/SX
Op8aOQHdgqnsKqkBECoCRODvV\nYOtWJrD9swBEpJWI/FFEvhSRIzinfhLd8/hB2x
eRCSKyyj2lVICTfDr6VclX1VJ3utB9/tpveSHQ\nxp3uDizx69tWoBTn3H0w3YEn/
OofxDnCSaos3iBeBka7p16m4CTO9QCquh24DWen/I2IZFZxiua7\nOEdRb7nzfwEm
iMgZ7nwJzvvoIyJl88U4RyJQ/r2sDl//VNUL5OG+nwHOwnmvy3xZST0TYZYsTE0s\
nBQaKSH+cI4u/BCzv5jd9Ns7O5ADOjuFl/0Skqq1Vdb5f/eoMfxzY/l53+n9wTr1c
oKptgVFuuQRr\nX0Ra4pwm+1+gs5sY3wqoXxO7gQkB/YtV1T0E79du4McB9eNU9eN
g8Qajql8C/8JJ2tcQcGFbVf+q\nqiNxEpMCj1bS1LU4SW+XiHyFcwovBvi+u3wXzt
GRv544SWQPkOv258qq4g3C9166Xzjoyqn3099e\ntw9l/N93GzK7DlmyMNWmzjdxF
uGcu1+tqrsCqlwtIsnuhdd5wCL30/krwOXifL3SI87XP9P9L0JX\n009FpKt78fhe
nG8FgXOaqBDnInJ74MEQ7bTAubawHygRkQnAxTWMxd+zwC/LLlKLyBkiMsldth/w\
nUv6i/bPAPSLSz62fICJTa7Hdl4BbcE4F+RK3iJwnIhe5SbEI57XxBq4sIknAGJzE
n+I+BuEklrJv\nRb0D9BWRa0Qkxn19HwEWq2qJOueD7gDud7800Na94D9SRJ6rIvZ
UEfmeON/2ug04gXNtIlAGcJ/7\nmnbEuY5U9lXer4EOIpIQ8pUyp82Shampl4ABVD
wFhVv2IvAVEIvz7RpUdTfORd2f4+w8dwOzqfnf\n31+BfwBf4JzL/oVb/jsgDucoZ
hXODq5SqnrUjW0hcAjnU/SyGsbi7wl3/X+IyFE3hgvcbR0Hfgl8\n5J52GqaqS3B2
yJnuabPNwIRabHcxzkXwFaq6z6+8JTAf5/X4Cufi8D1B1r8G2KCq/1DVr8oewJO4\
nR5Cq+o0b249xroNsxrme9ZOyRlR1ETAd+BHOp/6vcd6bN6qI/Q13nUNuHN9T1eIg
9X4BZAObgE+B\ndW4ZqroNJ5l84b62dnoqgsT5YGBM9YjI2cA2oIuqHvErz8K5EPp
8hLa7E7hBVd+LRPum7ojIXKCX\nql4dqq5pOOzIwlSbe275DiDTP1EYY5q+sAxBYJ
o+90dQX+N8G+WSeg7HGFPH7DSUMcaYkOw0lDHG\nmJAsWRhjjAmpyVyz6Nixo/bo0
SMsbX377be0bt06LG01dM2pr2D9bcqaU18hfP1du3btAVU9I1S9\nJpMsevToQXZ2
dljaysrKIj09PSxtNXTNqa9g/W3KmlNfIXz9FZEvQ9ey01DGGGOqwZKFMcaYkCxZ\
nGGOMCcmShTHGmJAsWRhjjAnJkoUxxpiQLFkYY4wJyZKFn6Xr9zBi/vt8uucwI+a/
z9L1e+o7pIhp\nTn01xpw+Sxaupev3cM/rn7KnwLnd8p6CQu55/dMmuRNtTn0tY8n
RmNPTZH7BfboeW55LYXEpAJsO\nOrdiLiwuZe6yLZwoccoF8d2luexmzSLiN+08yu
pKwB2dK9R158SvzVPrSLnyUNsqq1hpXb9tPfxm\njq+vu46d6usv/p5D13ZxzrpuW
1HudJS7sbL5sjIp21Zl9aPE16/A+qfmK5aVtUNAm/71q6ssORYW\nl0K3U8kRYPLg
pGq305gsXb+Hx5bnMqPbUe6d/z6zx5/XZPtq6oYlC9de91M2wLt7PL7pgsJi7l78\
naX2EVCde+8+pvh44dpIpz/67HqOpmcDkgkCUnErUZcuOnSyhbCT+3+c4/S0sLuV/
XtvIkys+xxMl\neKKEaI/giYoiumy+3LNTHu0pP+/xBK/nm3eXR0dFue1XUq+S7Ud
7gsUTFWS7bnmU8Oamvdy7ZHOz\nSo4m8ixZuM5KjPOdlpnVt4TntjkvTee2LVly8w
gUKLv3h/8tQMqmFfWb9qtbrt6p9bWq9dWZr+62\ncLdX3W3d/Je1HDh2EoBpPUtZ6
CaMDq1b8Pj0FF/8ZXF4vU4bXlVf21512vO62w1Wv1yZUm4aLStT\nt+3K66u7rNI2
3DregPplZQs+
+o/vNeyToGx0jxxLvUr/pARKvUqJ1+s+q/Nc6jyKikspceeD1vPV\nr1jeEPgnx7s
XbyIr9xsS4mJIaNWChLgYEuNiSGwV40y3iiEhzilvEW1nqE15lixcs8ef5ztVER/j
\nlMXFeLhnwvmclRhXv8GF2X0Tk3197dbG2anFxXi4/7JkRvUJOfhko7N8y1e+DwJ
jk7xsPOjsCJMS\n43hy5uCIbFNVgyeVsmRTGry8OFhSKg2yvn+7pV4noblljy3P9c
XhnxxPlHhZv7uAguPFHCkqLvdB\nJFCrFh4nqfgnk7gWJLaKoW2QMicBxRDfMrpGp
whN42HJwlV2eO78ox0lKTGuyZ7nbU59hfIfBMrE\nxXiYPf68iG1TxD1l5QldN9z+
+smuSpPjB7NHA+D1KkeLSigoPMnhwmIKjhdTUFjM4cJiDh+vWLbz\nwHEKCgs4XFh
MUbG30m17ooS2sdEktmrhJJVyiaX8EU1Cq1PPCXExtKzli2XXZ+qGJQs/kwcnMXlw
\nEllZWdx6VXp9hxNRza2vYMnRPzlGRYmzk24VU+P2i4pLnaTiJhTn+WS5soLCU+U
787/1LavqaCYu\nxnPqKMXvqCbRTTCBRzkJcTF8uH0/8/6WQ1GJ167PRJglC9MsWH
IMX3KMjfEQG+Ohc9vYGq3n9SpH\nT5Rw+HhxhSOaI25i8SWfwmJ2HTzOpjynblVHM
2X+/Pmp6zOPLc+1ZBFmliyMaYIaYnKMihLfEcLZ\ntKrRukXFpU5C8T96OX6S2Ys2
+eq09DuLtaegkL9v2sfY5E61Pr1lyrNkYYxp8MqOZjoFHM387r3P\nfddnpp9Tym8
+dXZpHhF+
+td1JLaKYXJKElPTutLvrIQ6j7spse/HGWMardnjzyMupvyRQ1yMh8em\nDOTPPxr
KyF4d+esnu5j45IdMfPJfvPTxTgqOn6ynaBs3O7IwxjRaoa7PjOpzBgXHT7Js414W
Zu/m\nwWVb+OXft3Jxv85MTevGyF4d8UTZV32rw5KFMaZRC3V9JrFVC34wvAc/GN6
DnL1HeG3tbpau38Ob\nm/ZxZkIsU1K7MiW1K907tK774BuRiCYLEbkEeALwAM+r6v
yA5Y8Do93ZVkAnVU10l5UCZeNs7FLV\nKyIZqzGm6Us+qy0PntWPORP6smLrNyzM3
s0zK7fz1PvbuaBne6aldWPCgC60amGfowNF7BUREQ/w\nDDAOyAPWiMgyVc0pq6Oq
t/vVvxXw/zltoaqmRCo+Y0zz1TLaw6UDzuTSAWfy1eEiFq/L47Xs3fzP\naxt5cNk
WLh90JlPTujG4W6L9It0VyfQ5FNiuql8AiEgmMAnIqaT+TODBCMZjjDEVdEmI5aej
e3Fz\n+rms2XmIhdm7Wbp+Lxmrd3PuGa2ZltaN7w5JolN8zX5X0tSIVvWTytNpWGQ
KcImq3uDOXwNcoKq3\nBKnbHVgFdFXVUresBNgAlADzVXVpkPVmAbMAOnfunJqZmR
mW2I8dO0abNm3C0lZD15z6Ctbfpiyc\nfS0sUVZ/VcKHeSV8XuAlSmDQGR5GJkUz6
AwP0Q3goni4+jt69Oi1qpoWql5DOTE3A1hUlihc3VV1\nj4icA7wvIp+q6g7/lVT1
OeA5gLS0NE1PTw9LMFlZWYSrrYauOfUVrL9NWbj7OsF93rH/GK9l57F4\nXR5PrT9
BxzYt+O7gJKamdaNP5/iwba+m6vq9jWSy2AN085vv6pYFMwP4qX+Bqu5xn78QkSyc
6xk7\nKq5qjDGRc+4ZbZgzoS93XtyHDz7bz2vZebzw0U7+9K//kNItkalpXbl80Fm
0ja35OFuNSSSTxRqg\nt4j0xEkSM4DvB1YSkb5AO+DffmXtgOOqekJEOgIjgF9HMF
ZjjKlStCeKMed3Zsz5nck/doIl6/fw\nWnYe9y7ZzMNv5jCh/5lMTevKsJ4diGoAp
6nCLWLJQlVLROQWYDnOV2cXqOoWEZkHZKvqMrfqDCBT\ny188OR/4o4h4cX5lPt//
W1TGGFOfOrRpyQ3/dQ7Xj+zJp3sOszB7N29s2MuS9Xvo1j6OKUO6cWVq\nEl3b1Ww
MrIYsotcsVPUt4K2AsgcC5ucGWe9jYEAkYzPGmNMlIgzsmsjAroncNzGZ5Vu+YmH2
bh5/\n7zN+t+IzRvbqyNS0blyc3JnYmMY9oGFDucBtjDGNWmyMh0kpSUxKSWL3weP
ubzfy+FnGetrGRjMp\nJYlpad3on9S2Uf52w5KFMcaEWbf2rbhtbB9+dlFv/v1FPg
uzd7Mwezcvr/qSvl3imZbWjcmDk2jf\nukV9h1ptliyMMSZCoqKEEb06MqJXRw4XF
vO3jXt5LXs3897M4Vdvb2Xs+Z2ZltaN/
+rdkWhPwx4E\n3JKFMcbUgYS4GK4e1p2rh3Vn21dHeC07j6Xr9/D25q/oFN+SK1O7
MjW1K+ec0TB/RGnJwhhj6ljf\nLm25/7Jk7r6kL+9v+4bXsnfzxw928IesHXynRzu
mpnVj4oAzad2y4eyiG04kxhjTzLSIjuKS/l24\npH8XvjlSxOvr97Awezd3LdrE3G
VbmDjgTKZ9pxtp3dvV+0VxSxbGGNMAdGoby00XnsuPR53Dul2H\nWLgmjzc37eW1t
Xn07NiaqWlduXJIV/69I5/Hlucyo9tR7p3/frmbPUWSJQtjjGlARITU7u1J7d6e\n
By5P5u3Nzm83fv1OLo8tz0UAr0JpEuwpKOSe153b/kQ6YTTsy+/GGNOMtW4ZzZTUr
iz88XBW3plO\n6xbReN2xLv6yw/mRX2FxqXtb2ciyZGGMMY1Az46t+fZEiW9+6Ble
3/TegsKIb9+ShTHGNBJnJcb5\npvsmatDySLFkYYwxjcTs8ecRFzDGVFyMh9njz4v
4tu0CtzHGNBJlF7GdaxRHSUqMs29DGWOMqWjy\n4CQmD04iKyuLW69Kr7Pt2mkoY4
wxIVmyMMYYE5IlC2OMMSFZsjDGGBOSJQtjjDEhWbIwxhgTkiUL\nY4wxIVmyMMYYE
5IlC2OMMSFZsjDGGBOSJQtjjDEhWbIwxhgTUkSThYhcIiK5IrJdROYEWf64iGxw\n
H5+JSIHfsmtF5HP3cW0k4zTGGFO1iI06KyIe4BlgHJAHrBGRZaqaU1ZHVW/3q38rM
Nidbg88CKQB\nCqx11z0UqXiNMcZULpJHFkOB7ar6haqeBDKBSVXUnwlkuNPjgXdV
9aCbIN4FLolgrMYYY6oQyftZ\nJAG7/ebzgAuCVRSR7kBP4P0q1q1wdw8RmQXMAuj
cuTNZWVmnHTTAsWPHwtZWQ9ec+grW36asOfUV\n6r6/DeXmRzOARapaWpOVVPU54D
mAtLQ0TU9PD0swWVlZhKuthq459RWsv01Zc+or1H1/I3kaag/Q\nzW+
+q1sWzAxOnYKq6brGGGMiLJLJYg3QW0R6ikgLnISwLLCSiPQF2gH/9iteDlwsIu1E
pB1wsVtm\njDGmHkTsNJSqlojILTg7eQ+wQFW3iMg8IFtVyxLHDCBTVdVv3YMi8jB
OwgGYp6oHIxWrMcaYqkX0\nmoWqvgW8FVD2QMD83ErWXQAsiFhwxhhjqs1+wW2MMS
YkSxbGGGNCsmRhjDEmJEsWxhhjQrJkYYwx\nJiRLFsYYY0KyZGGMMSYkSxbGGGNCs
mRhjDEmJEsWxhhjQmooQ5QbYxqI4uJi8vLyKCoqqu9QaiQh\nIYGtW7fWdxh1pqb9
jY2NpWvXrsTExNRqe5YsjDHl5OXlER8fT48ePRCR+g6n2o4ePUp8fHx9h1Fn\natJ
fVSU/P5+8vDx69uxZq+3ZaShjTDlFRUV06NChUSUKUzURoUOHDqd1tGjJwhhTgSWK
pud031NL\nFsaYBiU/P5+UlBRSUlLo0qULSUlJvvmTJ09Wq43rrruO3NzcGm/7sss
uY+TIkeXKrr76apYuXeqb\nLykpITEx0Te/bds2JkyYQO/evRkyZAgzZszgm2+
+qfG2Gzq7ZmGMaVA6dOjAhg0bAJg7dy5t2rTh\nzjvvLFdHVVFVoqKCf9594YUXar
zdgwcPsmnTJmJjY9m1axdnn312yHWOHz/OxIkTeeqpp7j00ksB\nWLFiBfn5+XTq1
KnGMTRkdmRhjGkUtm/fTnJyMldddRX9+vVj3759zJo1i7S0NPr168f8+fN9dUeO\n
HMmGDRt8RwFz5sxh0KBBDB8+vNJP/YsWLWLy5MlMnz6dzMzMasX0yiuvcOGFF/oSB
cCYMWM4//zz\nT6+zDZAdWRhjKvXQ37aQs/dIWNtMPqstD17er1brbtu2jT//
+c+kpaUBMH/
+fNq3b09JSQmjRo0i\nJyeH5OTkcuscPnyYCy+8kPnz53PHHXewYMEC5syZU6HtjI
wMHnnkERISErjqqqu46667QsazefNm\nUlNTa9WXxsaOLIwxjca5557rSxTg7OCHD
BnCkCFDyM3NJScnp8I6cXFxTJgwAYDU1FR27txZoc7e\nvXvZtWsXw4cPJzk5Ga/X
y7Zt24DgF4ab4xcA7MjCGFOp2h4BRErr1q19059//jlPPPEEq1evJjEx\nkenTpwf
9amiLFi180x6Ph5KSkgp1Xn31VQ4cOECPHj0A52gkIyODhx56iA4dOnDo0CFf3YMH
D9Kx\nY0cA+vXrxyeffBKu7jVodmRhjGmUjhw5Qnx8PG3btmXfvn2sWLGi1m1lZGT
w3nvvsXPnTnbu3Mnq\n1avJyMgAID09nczMTIqLiwF48cUXGT16NADXXHMNWVlZvP
POO762Vq5c2SR/SW5HFsaYRmnIkCEk\nJyfTt29funfvzrBhw2rVzo4dO9i3b1+50
1u9e/cmNjaWtWvXMnnyZNatW0dqaipRUVH07t2bZ599\nFoBWrVrx5ptvcvvtt3Pr
rbcSExNDSkoKTzzxRFj62JCIqtZ3DGGRlpam2dnZYWkrKyuL9PT0sLTV\n0DWnvoL
1tzq2bt3aKL/NY8N9hBbsvRWRtaqaVskqPnYayhhjTEiWLIwxxoRkycIYY0xIEU0W
InKJ\niOSKyHYRqfgrGKfONBHJEZEtIvJXv/JSEdngPpZFMk5jjDFVi9i3oUTEAzw
DjAPygDUiskxVc/zq\n9AbuAUao6iER8R9MpVBVUyIVnzHGmOqL5JHFUGC7qn6hqi
eBTGBSQJ0bgWdU9RCAqja9oRqNMaYJ\niOTvLJKA3X7zecAFAXX6AIjIR4AHmKuqZ
b9uiRWRbKAEmK+qSwPWRURmAbMAOnfuTFZWVlgCP3bs\nWNjaauiaU1/B+lsdCQkJ
HD16NDIBVUN+fj5XXHEFAF9//TUej8f3i+mVK1eW+0W2v9LS0nJxv/zy\ny1x88cV
07tw5aP2TJ0/Sq1cvbrjhBh544AFfed+
+fVm1apVvGPKVK1fy3HPP+X6k98477/DII49Q\nVFRETEwMY8aMYd68eaff8RoK7G
91FBUV1f7vv2yo33A/gCnA837z1wBPB9R5E1gCxAA9cZJLorss\nyX0+B9gJnFvV9
lJTUzVcVq5cGba2Grrm1FdV62915OTkhD+QWnrwwQf1scceq1bdI0eOlJsfMWKE\n
rl+/vtL6y5Yt0xEjRmivXr3KlSclJemhQ4d88+++
+65OmjRJVVU3bNigvXr10tzcXFVVLSkp0d//\n/vfVii/cAvtbHcHeWyBbq7FPj+R
pqD1AN7/5rm6ZvzxgmaoWq+p/gM+A3gCqusd9/gLIAgZHMFZj\nTCPw0ksvMXToUF
JSUrj55pvxer2UlJRwzTXXMGzYMPr378+TTz7Jq6+
+yoYNG5g+fXqlN03KyMjg\njjvuoEuXLqxevbpa23/00Ue5//776dOnD+CMNfWTn/
wkrH1sqCJ5GmoN0FtEeuIkiRnA9wPqLAVm\nAi+ISEec01JfiEg74LiqnnDLRwC/j
mCsxphg3p4DX30a3ja7DIAJ80PXC7B582aWLFnCxx9/THR0\nNLNmzSIzM5Nzzz2X
AwcOsGrVKuLj4ykoKCAxMZGnnnqKp59+mpSUit+TOX78OFlZWSxYsICvvvqK\njIw
Mhg4dWq0Y7r333hrH3hRUemQhIuNFZEqQ8ikiMi5Uw6paAtwCLAe2AgtVdYuIzBOR
K9xqy4F8\nEckBVgKzVTUfOB/IFpGNbvl89fsWlTGm+XnvvfdYs2YNaWlppKSk8ME
HH7Bjxw569epFbm4us2fP\nZvny5SQkJIRsa9myZYwbN47Y2FimTp3K4sWL8Xq9gA
1JXpmqjiweACYHKc8C/ga8G6pxVX0LeCug\n7AG/aQXucB/
+dT4GBoRq3xgTYbU4AogUVeVHP/oRDz/8cIVlmzZt4vXXX+eZZ55h8eLFPPfcc1W2
\nlZGRwapVq3xDku/fv58PPviA0aNH+4YkL7vAHTgk+dq1a+nXr2EN3V4Xqrpm0VJ
V9wcWquoBoHWQ\n+sYYEzFjx45l4cKFHDhwAHC+NbVr1y7279+PqvLd736XefPmsW
7dOgDi4+ODfluooKCAVatWkZeX\n5xuS/Mknnyw3JPnLL78MQElJCX/5y198Q5Lfd
dddPPzww2zfvh1wvpFUNgJtU1dVsmgrIhWOPEQk\nBoiLXEjGGFPRgAEDePDBBxk7
diwDBw7k4osv5uuvv2b37t2MGjWKESNGcN111/HII48AcN1113HD\nDTdUuMC9ePF
ixo0bR0xMjK9s8uTJLF26lOLiYubOnUtOTg6DBg1iyJAhnH/+
+cycOROAwYMH85vf\n/IZp06aRnJzMgAED+PLLL+v2hagnlQ5RLiLzgc7ALar6rVv
WBngCOKCqd9dZlNVgQ5TXTnPqK1h/\nq8OGKG8cGtIQ5fcBXwNfishaEVkH/AfY7y
4zxhjTTFR6gdv9NtMcEXkI6OUWb1fVwjqJzBhjTINR\nabIQke8FFCmQKCIbVLX+x
gIwxhhT56r66uzlQcraAwNF5HpVfT9CMRljjGlgqjoNdV2wchHpDiyk\n4qCAxhhj
mqgajw2lql/iDPxnjDGmmahxshCRvsCJCMRijDHk5+eTkpJCSkoKXbp0ISkpyTcfb
EDA\nYK677jpyc3NrvO3LLruMkSNHliu7+uqrWbr01B0SSkpKfL/uBti2bRsTJkyg
d+/eDBkyhBkzZvDN\nN6d/a57x48eHHIK8bGyrulDVBe6/4VzU9tceOBO4OpJBGWO
arw4dOrBhwwYA5s6dS5s2bbjzzjvL\n1fENmx0V/PPuCy+8UOPtHjx4kE2bNhEbG8
uuXbs4+
+yzQ65z/PhxJk6cyFNPPcWll14KwIoVK8jP\nz6dTp04h1q7a8uXLQ9ZZsGABQ4YM
oUuXLqe1reqo6sjif4Hf+D3+F7gJuA5LFsYY19L1exgx/316\nzvk7I+a/z9L1gXc
iCI/t27eTnJzMVVddRb9+/di3bx+zZs0iLS2Nfv36MX/
+qXGsRo4cyYYNG3xH\nAXPmzGHQoEEMHz680k/9ixYtYvLkyUyfPp3MzMxqxfTKK6
9w4YUX+hIFwJgxYyr88O29995j9OjR\nTJgwgfPOO4+f/vSnZff04ZU/t07aAAAcX
ElEQVRXXmHAgAH079+fn//85751unbtSkFBAdu3b6d/\n//5cf/319OvXjwkTJlBU
VMTixYsrDMM+e/ZskpOTGThwIHffHd7fTVeaLFT1g7IHcATn21FvAg/h\njCJrjGn
mlq7fwz2vf8qegkIU2FNQyD2vfxqxhLFt2zZuv/12cnJySEpKYv78+WRnZ7Nx40ZW
rlxJ\nTk7FwakPHz7MhRdeyMaNGxk+fDgLFiwI2nZGRgYzZ85k5syZvnGiQtm8eTO
pqanVqvvJJ5/whz/8\ngZycHLZu3cobb7xBXl4e9913HytXrmT9+vV89NFHvPnmmx
XWzc3N5bbbbmPLli3ExcWxdOlSrrzy\nSlJSUnz37jh06BBvvfUWW7ZsYdOmTdxzz
z3Viqu6qhqivI+IPCgi24CngF04w4OMVtWnwxqFMaZR\nemx5LoXFpeXKCotLeWx5
za8XVMe5555LWtqpkSkyMjIYMmQIQ4YMITc3N2iyiIuLY8KECQCkpqay\nc+fOCnX
27t3Lrl27GD58OMnJyXi9XrZt2waEb8jyYcOG0aNHDzweDzNmzODDDz/kk08+4aKL
LqJj\nx47ExMTw/e9/n3/+858V1u3VqxcDBgyosg/t27cnKiqKG2+8kSVLltC6dXj
He63qNNQ24CLgMlUd\nqapPAaVV1DfGNDN7C4IP6FBZ+eny3wF+/vnnPPHEE7z//v
ts2rSJsWPHUlRUVGEd/3t2ezweSkpK\nKtR59dVXOXDgAD169KBHjx7s2rXLd3RRN
mR5mWBDlldHYIKpScJp2bJlyD7ExMSQnZ3tGxRx4sSJ\n1W6/OqpKFt8D9gErReRP
IjIGsDuAGGN8zkoMPgB1ZeXhdOTIEeLj42nbti379u1jxYoVtW4rIyOD\n9957zzd
k+erVq8sNWZ6ZmUlxcTEAL774om/I8muuuYasrCzeeecdX1srV65k69aKZ+pXrVrF
rl27\nKC0tZeHChYwcOZILLriAlStXkp+fT0lJCZmZmVx44YXVjtt/GPajR49y5Mg
RLrvsMh5//HHWr19f\n69cjmKp+lLcUWCoirYFJwG1AJxH5A7BEVf8R1kiMMY3O7P
Hncc/rn5Y7FRUX42H2+PMivu0hQ4aQ\nnJxM37596d69O8OGDatVOzt27GDfvn3lT
m/17t2b2NhY1q5dy+TJk1m3bh2pqalERUXRu3dv3z0s\nWrVqxZtvvsntt9/Orbfe
SkxMDCkpKTzxxBMVtjN06FBuuukmduzYwdixY7niiisQER5+
+GHS09NR\nVS6//PIaHRGUDcMeFxfHsmXLmDJlCidOnMDr9fLb3/62Vq9Hpcq+gla
dB9AOmAWsqMl6dfFITU3V\ncFm5cmXY2mromlNfVa2/1ZGTk1Oj+kvW5en/
+9UK7XH3m/r/frVCl6zLq/E2w+HIkSP1st3qePfd\nd3XSpElhbbM2/Q323gLZWo1
9bFVjQwVLLIeA59yHMcYweXASkwcn1XcYJsJqlCyMMcbU3NixYxk7\ndmx9h3Faaj
zchzHGmObHkoUxxpiQLFkYY4wJyZKFMcaYkCxZGGMalHAMUQ6hh+8+efIk7du3577
7\n7itXXjaAX5n33nuPyZMn+
+b//ve/k5qaSr9+/UhJSQnLgH27d+9m+vTpVdbxer3lBkusa5YsjDEN\nStkQ5Rs2
bOCmm27i9ttv9837D90RSqhksXz5cpKTk3n11Ver3ebGjRu57bbbyMjIYMuWLaxdu
5Ye\nPXpUe/3KdOvWLWQcTTpZiMglIpIrIttFZE4ldaaJSI6IbBGRv/qVXysin7uP
ayMZpzHmNGxaCI/3\nh7mJzvOmhRHb1EsvvcTQoUNJSUnh5ptvxuv1UlJSwjXXXMO
wYcPo378/Tz75pG8kVv/huwNlZGRw\nxx130KVLF1avXl2t7T/66KPcf//99OnTB3
DGafrJT35Sod59993Htddey7Bhw+jdu7dvpFuv18sd\nd9xB//79GTBgAIsWLQKc4
ddTUlIAeP7555kyZQrjx4+nd+/evtFj58yZw9GjR0lJSeEHP/gBR48e\nZcKECQwa
NIj+/fv72oqUiP3OQkQ8wDPAOCAPWCMiy1Q1x69Ob+AeYISqHhKRTm55e+BBIA3nB
kxr\n3XUPBW7HGFOPNi2Ev/0Mit2BAw/vduYBBk4L66Y2b97MkiVL+Pjjj4mOjmbW
rFlkZmZy7rnncuDA\nAVatWkV8fDwFBQUkJiby1FNP8fTTT/t2wv6OHz9OVlaW7+g
jIyODoUOHViuGe+
+9t1rxfvrpp3z8\n8cccOXKEIUOGMHHiRLKysti6dSsbN25k//79fOc732HUqFEV1
t24cSNr164lJiaGPn36cOuttzJ/\n/nyef/55342hXnzxRXr06MHbb78NOEOxR1Ik
jyyGAttV9QtVPQlk4owx5e9G4JmyJKCqZXclGQ+8\nq6oH3WXvApdEMFZjTG2smHc
qUZQpLnTKw+y9995jzZo1pKWlkZKSwgcffMCOHTvo1asXubm5zJ49\nm+XLl5OQkB
CyrWXLljFu3DhiY2OZOnUqixcvxuv1AuEbknzy5MnExsbSqVMnRo0axZo1a/jwww+
Z\nOXMmHo+HLl26MHLkSLKzsyusO3bsWNq2bUtcXBx9+/Zl165dFer079+fd955hz
lz5vDRRx9Vq9+n\nI5K/4E4CdvvN5wEXBNTpAyAiHwEeYK6qvlPJuhXGExCRWThjV
dG5c2eysrLCEvixY8fC1lZD15z6\nCtbf6khISAh57+cybQ7nBR2KWg/ncayabVTl
xIkTxMTEcPToUQoLC7nqqqu4//77K9T76KOPWL58\nOU888QSZmZk8+eSTlJaW8u2
33wbty8svv8yaNWvo3r07APv37+ftt99m1KhRtGvXjt27d+PxeADY\ns2eP7zXp06
cPH374Ychbrp44cQLAt+3i4mIKCws5efIkhYWF5cqPHz/OsWPH8Hq9HD16lKKiIkT
E\nV0dVOXLkSLnRZcG5x8XKlSv5xz/
+wezZsxk3blyF288GKioqqvXff30P9xEN9AbSga7AP0VkQHVX\nVlXfOFVpaWmanp
4elqCysrIIV1sNXXPqK1h/q2Pr1q3Ex8dXr3JCV+fUUwBJ6Fr9NqrQsmVLWrZs\nS
Xx8PJdddhlTpkzhrrvuomPHjuTn5/Ptt98SFxdHmzZtfHeOu+GGG4iPjycxMRGv11
shjoKCArKz\ns9mzZw8xMTEA/OlPf+KNN95g4sSJXHTRRSxZsoQHHniAkpISXn/9d
aZPn058fDz33nsv06ZNY8yY\nMfTq1YvS0lL+9Kc/cdNNN1WI++233+b++
+/nyJEjrFq1iqeffhpV5cUXX+TGG29k//79rF69mt//\n/vccOXKEqKgo4uPjiY2N
pUWLFr64o6OjadWqFe3atQOcmzlFR0eTm5tLjx49mDVrFp06deKVV14J\n+ZrHxsY
yePDgWr0XkUwWe4BufvNd3TJ/ecAnqloM/EdEPsNJHntwEoj/ulkRi9QYUztjHih/
zQIg\nJs4pD7MBAwbw4IMPMnbsWLxeLzExMTz77LN4PB6uv/56SktL8Xg8PProo0D
54btXr17t+ybV4sWL\nGTdunC9RgHPK6N577+WZZ55h7ty53HTTTQwaNAhV5dJLL2
XmzJkADB48mN/85jdMmzbNd6OlSZMC\nz647+vfvz4UXXkh+fj4PPfQQnTt3ZsqUK
axatYqBAwciIvz2t7+lU6dOHDlypFqvwfXXX8/AgQNJ\nS0vjiiuuYOrUqURFRdGi
RQvfsOkRU52haWvzwElEXwA9gRbARqBfQJ1LgJfc6Y44p546AO2B/
+AM\nid7OnW5f1fZsiPLaaU59VbX+VkdNhyjXja+q/raf6oMJzvPGV2u8zXBoSEOU
33vvvfr4449HdBsN\neojyGiahEhG5BViOcz1igapuEZF5bnDL3GUXi0gOzi1bZ6t
qPoCIPAyscZubp6oHIxWrMeY0DJwW\n9m8+mYYnotcsVPUt4K2Asgf8phW4w30Err
sAWBDJ+IwxJhJ+8Ytf1HcIYWe/4DbGGBOSJQtjTAXO\nQb9pSk73PbVkYYwpJzY2l
vz8fEsYTYiqkp+fT2xsbK3bqO/fWRhjGpiuXbuSl5fH/v376zuUGikq\nKjqtnWFj
U9P+xsbG0rVr11pvz5KFMaacmJgYevbsWd9h1FhWVlatf3DWGNV1f+00lDHGmJAsW
Rhj\njAnJkoUxxpiQLFkYY4wJyZKFMcaYkCxZGGOMCcmShTHGmJAsWRhjjAnJkoUx
xpiQLFkYY4wJyZKF\nMcaYkCxZGGOMCcmShTHGmJAsWRhjjAnJkoUxxpiQLFkYY4w
JyZKFMcaYkCxZGGOMCcmShTHGmJAs\nWRhjjAnJkoUxxpiQIposROQSEckVke0iMi
fI8h+KyH4R2eA+bvBbVupXviyScRpjjKladKQaFhEP\n8AwwDsgD1ojIMlXNCaj6q
qreEqSJQlVNiVR8xhhjqi+SRxZDge2q+oWqngQygUkR3J4xxpgIiWSy\nSAJ2+83n
uWWBrhSRTSKySES6+ZXHiki2iKwSkckRjNMYY0wIoqqRaVhkCnCJqt7gzl8DXOB/y
klE\nOgDHVPWEiPwYmK6qF7nLklR1j4icA7wPjFHVHQHbmAXMAujcuXNqZmZmWGI/
duwYbdq0CUtbDV1z\n6itYf5uy5tRXCF9/R48evVZV00JWVNWIPIDhwHK/
+XuAe6qo7wEOV7LsRWBKVdtLTU3VcFm5cmXY\n2mromlNfVa2/TVlz6qtq+PoLZGs
19umRPA21BugtIj1FpAUwAyj3rSYROdNv9gpgq1veTkRautMd\ngRFA4IVxY4wxdS
Ri34ZS1RIRuQVYjnPUsEBVt4jIPJxMtgz4mYhcAZQAB4EfuqufD/xRRLw411Xm\na
8VvURljjKkjEUsWAKr6FvBWQNkDftP34JyeClzvY2BAJGMzxhhTffYLbmOMMSFZsj
DGGBOSJQtj\njDEhWbIwxhgTkiULY4wxIVmyMMYYE5IlC2OMMSFZsjDGGBOSJQtjj
DEhWbIwxhgTkiULY4wxIVmy\nMMYYE5IlC2OMMSFZsjDGGBOSJQtjjDEhWbIwxhgT
kiULY4wxIVmyMMYYE5IlC2OMMSFZsjDGGBOS\nJQtjjDEhWbIwxhgTkiULY4wxIVm
yMMYYE5IlC2OMMSFZsjDGGBNSRJOFiFwiIrkisl1E5gRZ/kMR\n2S8iG9zHDX7Lrh
WRz93HtZGM0xhjGo1NC+Hx/rBvg/O8aWGdbDY6Ug2LiAd4BhgH5AFrRGSZquYE\nV
H1VVW8JWLc98CCQBiiw1l33UKTiNcaYBm/TQvjbz6C4ELoAh3c78wADp0V00xFLFs
BQYLuqfgEg\nIpnAJCAwWQQzHnhXVQ+6674LXAJkRChWY4ypX6pQWgzFx51kUFLoP
BcXumVF8M4cZx444+gWZ73i\nQlgxr1EniyRgt998HnBBkHpXisgo4DPgdlXdXcm6
SZEK1GfTQudF73IDPH4LjHkg4m9AvWlOfQXr\nb1Pub6T7qgolReV32hV26Mf9dux
+ZSVFNVumpdUOq9vBj07NHM4LX38rIaoamYZFpgCXqOoN7vw1\nwAX+p5xEpANwTF
VPiMiPgemqepGI3AnEquov3Hr3A4Wq+r8B25gFzALo3LlzamZmZu0DLjwEBbsQ\nb
zHftjyT1if3gURB224Q1w4QAFR8Wy//LEKjUXjIOXxVL8dankWbE3udviaU9bWJsf
42jv6qIuoF\nvO6zM+8/7TyXIqrOdOEhOLoX0RIKYzrS5sRePFpCVFw7PNExRHlP4
Ck9QZT3ZLlp5znYshN4SgPm\nvSdr1R2vRFPqaYk3qqX73MJvuiWlnvLz3qgWFepX
WL8gj1IFb1QMh2O7E1dy0NmYpwV0Sq5VnKNH\nj16rqmmh6kXyyGIP0M1vvqtb5qO
q+X6zzwO/9ls3PWDdrMANqOpzwHMAaWlpmp6eHlil+h7v7/yD\nhU1gEjmd+erWre
a2Cw+BegE46WlNi9Jv3eVR0LpT+fWqjKeqOGs6HWR7/v2ptE41pveug1LnH74g\nr
juJhV86izwtodvQSmKoZvwhtx+ONqqKiYrlmxfBSec93ZuQylmH1zrLY1rB+ZeDt9
R5/7XsWYOU\ned0yPVXm9VumpQHr+a3r9VbSlrf8I3CbdSU6DmLinNcjJtZvul3As
jh3uTtd1bKYVhDtPx9HVJQn\n/N8g8rtmkXXeQ6TnPuhs7/InYWB6uLdWTiSTxRqg
t4j0xNn5zwC+719BRM5U1X3u7BXAVnd6OfCI\niJR9DLoYuCeCsZY7jPui4xjOObD
i1LLR97kT7lGY72gskvOBy6iibg3ns//P19yBNudz1uFsd5kX\n+lwcJAZOteHfXr
imA/tZof+nOV166pOh4rcTLz3h7LAC61c7/mDbDOxTbdoIMl3t90B9iQKgw7Hc\nU
/0tPg67P3E+FIjHeY5yn0WClLn1oqL9yvyWRXnKr1du3bJlgWX+6wWLIypIW/71Au
aXnfpuzJYz\np9Jv32un+vvjf/l23L6duKel00ZjVXZ6bcU85zmhW52dYoxYslDVE
hG5BWfH7wEWqOoWEZkHZKvq\nMuBnInIFUAIcBH7orntQRB7GSTgA88oudkdMQlff
kcWuDqNOJYuEbnDh7Ihuus59/g9fXz/rcvmp\nZJHQDa54qh4DixC/o8aNZ1/nfBo
Dp78/erseA4sQv/7+u9fs8v397431GFgEfPCor6/72/aHsmSR\n0A3OHFiPgUXQwG
nOIysLZm6us81GNMWq6luq2kdVz1XVX7plD7iJAlW9R1X7qeogVR2tqtv81l2g\nq
r3cxwuRjBNwsnNMXPmymDinvKlpTn0F6y803f42p77Ws0iehmpc6vHwrs41p76C9b
cp97c59bWe\nWbLwV0+Hd/WiOfUVrL9NWXPqaz1qxFd6jDHG1BVLFsYYY0KyZGGMM
SYkSxbGGGNCsmRhjDEmJEsW\nxhhjQrJkYYwxJiRLFsYYY0KK2BDldU1E9gMFwGG/
4oQazPtPdwQOhCGswO3Vtl6w5dUpq05/67qv\noepWtqym/W3M722wcvtbtr/lwOl
w9be3qiaErKWqTeYBPFfb+YDp7EjEU9t6wZZXp6w6/a3rvoaq\nW9mymva3Mb+3NX
0vG3t/7W+5cfwtN7XTUH87jfnAZeFQ3TZD1Qu2vDplddnfmrRXVd3KltW0v435\nv
Q1Wbn/Llc/b3/LpqVabTeY0VDiJSLZW485RTUFz6itYf5uy5tRXqPv+NrUji3B5rr
4DqEPNqa9g\n/W3KmlNfoY77a0cWxhhjQrIjC2OMMSFZsjDGGBOSJQtjjDEhWbKoA
RFJF5F/icizIpJe3/HUBRFp\nLSLZInJZfccSaSJyvvveLhKRn9R3PJEkIpNF5E8i
8qqIXFzf8USaiJwjIv8nIovqO5ZIcf9XX3Lf\n16vC3X6zSRYiskBEvhGRzQHll4h
IrohsF5E5IZpR4BgQC+RFKtZwCFN/Ae4GFkYmyvAJR39Vdauq\n3gRMA0ZEMt7TEa
a+LlXVG4GbgOmRjPd0ham/X6jq9ZGNNPxq2PfvAYvc9/WKsMfSXL4NJSKjcHb0\nf
1bV/m6ZB/gMGIez818DzAQ8wK8CmvgRcEBVvSLSGfitqoY9e4dLmPo7COiAkxwPqO
qbdRN9zYWj\nv6r6jYhcAfwEeFlV/1pX8ddEuPrqrvcb4C+quq6Owq+xMPd3kapOq
avYT1cN+z4JeFtVN4jIX1X1\n+
+GMJTqcjTVkqvpPEekRUDwU2K6qXwCISCYwSVV/BVR12uUQ0DIScYZLOPrrnmprDS
QDhSLylqp6\nIxl3bYXr/VXVZcAyEfk70CCTRZjeWwHm4+xcGmyigLD/7zYqNek7T
uLoCmwgAmeNmk2yqEQSsNtv\nPg+4oLLKIvI9YDyQCDwd2dAiokb9VdV7AUTkh7hH
VRGNLvxq+v6m4xzKtwTeimhk4VejvgK3AmOB\nBBHpparPRjK4CKjpe9sB+CUwWET
ucZNKY1VZ358EnhaRiURgWJDmnixqRFVfB16v7zjqmqq+WN8x\n1AVVzQKy6jmMOq
GqT+LsXJoFVc3HuT7TZKnqt8B1kWq/2VzgrsQeoJvffFe3rKmy/jbd/janvkLz\n6
6+/eul7c08Wa4DeItJTRFoAM4Bl9RxTJFl/m25/m1Nfofn111+99L3ZJAsRyQD+DZ
wnInkicr2q\nlgC3AMuBrcBCVd1Sn3GGi/W36fa3OfUVml9//TWkvjebr84aY4ypv
WZzZGGMMab2LFkYY4wJyZKF\nMcaYkCxZGGOMCcmShTHGmJAsWRhjjAnJkoVpsERk
p4h0PN06NdjesXC00xSIyG0i0qq+4zANhyUL\nY+qBiJz2uGzuUNWRchtQo2QR4Xh
MPbNkYeqdiCwVkbUiskVEZgVZ3kNEtonIX0Rkqzh3svPfkd0q\nIutE5FMR6euuM1
RE/i0i60XkYxE5r5qx/FJENorIKhHpLCLxIvIfEYlxl7ctmxeRLBF5QkQ2iMhm\nE
Rnq1mnt3rRmtbv9SW75D0VkmYi8D6wQ586L/xSRv4tzI5tnRSTKrfsHce5QuEVEHv
KLb6eIPCoi\n64CpInKjiKxxY15c9rqIyItuG6tE5At3Wwvc1+9Fv/Yudl+ndSLym
oi0EZGfAWcBK0VkZWX1gsVT\nzbfcNEaqag971OsDaO8+xwGbgQ7u/E6gI9AD5y6F
I9zyBcCdfnVudadvBp53p9sC0e70WGCxO30W\n8FYlcShwuTv9a+A+d/oFYLI7PQv
4jTudBfzJnR4FbHanHwGudqcTcW5U0xr4Ic5w0mX9TQeKgHNw\nbtrzLjAl4DXxuN
sZ6Nffu/xi7uA3/Qu/1+JFIBMQnHsdHAEG4HxAXAukuK/tP4HW7jp3Aw/4v/bu\nd
Kh6dwV7Pe3RtB52ZGEagp+JyEZgFc5omr2D1Nmtqh+5068AI/2WlQ0bvxYnsQAkAK
+JczvKx4F+\nAKq6V1UvrSSOk0DZ3QD923qeU0M/X4eTPMpkuO3+E2grIonAxcAcE
dmAs6OPBc5267+rqgf91l+t\nzi0/S922yvo1zf20vt6NPdlvnVf9pvuLc1/4T4Gr
yvrp+puqKvAp8LWqfqrOPUm2uH0b5rb7kRvr\ntUD3IK9LqHqvBlnHNDF2PwtTr8S
54dBYYLiqHheRLJyda6DAQcz850+4z6Wc+pt+GFipqt8V505j\nWdUIp9jduZZrS1
U/ck+FpQMeVfW/H3KwuAS4UlVz/ReIyAXAt1X0A0BFpCdwJ/AdVT3knjbyf038\n2
3gR56hnozg3qUr3W1b2unj9psvmo90+vquqM6mahKgX2CfTBNmRhalvCcAhN1H0xf
kUG8zZIjLc\nnf4+8GE12i0b4/+Hpx0l/BnnNqsvBJRPBxCRkcBhVT2MMxrorSIi7
rLBVbQ7VJyhpqPctj7EOYX2\nLXBYnPu9T6hi/Xhgn3tNpab3hF8FjBCRXm6crUWk
j7vsqNt2qHqmmbBkYerbO0C0iGzFuSf0qkrq\n5QI/deu1A/4Qot1fA78SkfX4HUG
LyFkiUptbpv7F3W5GQHmRu41ngevdsoeBGGCTiGxx5yuzBucW\nvVuB/wBLVHUjzu
mnbTgJ6qPKV+d+4BO3zraadEhV9+Mk0gwR2YQzFHZfd/FzwDsisjJEPdNM2BDl\np
sFzTyO9qar96zGGKcAkVb3GrywL50J7di3bTHfXvywsQRoTQXbNwpgQROQpnFNBlV
0YN6bJsyML\nY4wxIdk1C2OMMSFZsjDGGBOSJQtjjDEhWbIwxhgTkiULY4wxIVmyM
MYYE9L/B8VJr5YK7uZRAAAA\nAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 essay features\n",
"\t-11.2335\taddict \t\t-2.7626\t2nd
\n",
"\t-11.2335\taway \t\t-3.3703\tspan
\n",
"\t-11.2335\tbloxel \t\t-3.4748\tsnapshot
\n",
"\t-11.2335\tcart \t\t-3.7187\tsnap
\n",
"\t-11.2335\tchord \t\t-3.7662\tspanish
\n",
"\t-11.2335\tchore \t\t-3.8992\tslate
\n",
"\t-11.2335\tcookbook \t\t-4.1253\tslim
\n",
"\t-11.2335\tdragon \t\t-4.3552\tsleepi
\n",
"\t-11.2335\tdull \t\t-4.3973\t21
\n",
"\t-11.2335\tendeavor \t\t-4.4525\t26
\n",
"top 10 title features\n",
"\t-11.2335\tacoust \t\t-2.7626\t201
\n",
"\t-11.2335\tarrang \t\t-3.3703\tmayo
\n",
"\t-11.2335\tbalanc \t\t-3.4748\tmarket
\n",
"\t-11.2335\tblankenship \t\t-3.7187\tmarkerboard
\n",
"\t-11.2335\tbound \t\t-3.7662\tmaze
\n",
"\t-11.2335\tboundari \t\t-3.8992\tmalon
\n",
"\t-11.2335\tcampground \t\t-4.1253\tmaniac
\n",
"\t-11.2335\tcolonna \t\t-4.3552\tman
\n",
"\t-11.2335\tcommuniti \t\t-4.3973\t170
\n",
"\t-11.2335\tcostello \t\t-4.4525\t1950s
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.216128</td>\n",
" <td>0.005215</td>\n",
" <td>0.036863</td>\n",
" <td>0.000209</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.498224</td>\n",
" <td>0.494504</td>\n",
" <td>0.500635</td>\n",
" <td>0.490116</td>\n",
" <td>0.502995</td>\n",
" <td>0.497295</td>\n",
" <td>0.004557</td>\n",
" <td>3</td>\n",
" <td>0.771310</td>\n",
" <td>0.771539</td>\n",
" <td>0.765805</td>\n",
" <td>0.773187</td>\n",
" <td>0.764727</td>\n",
" <td>0.769314</td>\n",
" <td>0.003385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.220232</td>\n",
" <td>0.002019</td>\n",
" <td>0.036937</td>\n",
" <td>0.000326</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.497770</td>\n",
" <td>0.494659</td>\n",
" <td>0.500279</td>\n",
" <td>0.490118</td>\n",
" <td>0.502794</td>\n",
" <td>0.497124</td>\n",
" <td>0.004420</td>\n",
" <td>4</td>\n",
" <td>0.771011</td>\n",
" <td>0.771361</td>\n",
" <td>0.765592</td>\n",
" <td>0.773036</td>\n",
" <td>0.764547</td>\n",
" <td>0.769109</td>\n",
" <td>0.003385</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.220143</td>\n",
" <td>0.003366</td>\n",
" <td>0.037166</td>\n",
" <td>0.000517</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.497092</td>\n",
" <td>0.494870</td>\n",
" <td>0.499911</td>\n",
" <td>0.490039</td>\n",
" <td>0.502624</td>\n",
" <td>0.496907</td>\n",
" <td>0.004314</td>\n",
" <td>5</td>\n",
" <td>0.770434</td>\n",
" <td>0.770911</td>\n",
" <td>0.765114</td>\n",
" <td>0.772621</td>\n",
" <td>0.764109</td>\n",
" <td>0.768638</td>\n",
" <td>0.003382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.219018</td>\n",
" <td>0.001388</td>\n",
" <td>0.036654</td>\n",
" <td>0.000335</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.496888</td>\n",
" <td>0.495675</td>\n",
" <td>0.498769</td>\n",
" <td>0.489728</td>\n",
" <td>0.502313</td>\n",
" <td>0.496675</td>\n",
" <td>0.004135</td>\n",
" <td>6</td>\n",
" <td>0.768982</td>\n",
" <td>0.769447</td>\n",
" <td>0.763734</td>\n",
" <td>0.771430</td>\n",
" <td>0.762850</td>\n",
" <td>0.767288</td>\n",
" <td>0.003377</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.217822</td>\n",
" <td>0.001008</td>\n",
" <td>0.036701</td>\n",
" <td>0.000131</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.499221</td>\n",
" <td>0.498205</td>\n",
" <td>0.497413</td>\n",
" <td>0.490387</td>\n",
" <td>0.502157</td>\n",
" <td>0.497477</td>\n",
" <td>0.003892</td>\n",
" <td>2</td>\n",
" <td>0.762803</td>\n",
" <td>0.763368</td>\n",
" <td>0.757656</td>\n",
" <td>0.766230</td>\n",
" <td>0.757170</td>\n",
" <td>0.761445</td>\n",
" <td>0.003495</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.216128 0.005215 ...
0.769314 0.003385\n",
"1 0.220232 0.002019 ...
0.769109 0.003385\n",
"2 0.220143 0.003366 ...
0.768638 0.003382\n",
"3 0.219018 0.001388 ...
0.767288 0.003377\n",
"4 0.217822 0.001008 ...
0.761445 0.003495\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 196
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "THRht3RsmGeP",
"colab_type": "code",
"outputId": "2b8615c3-a18f-408d-e183-0a5286f19eb3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
}
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(new_df),axis=1)
\n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_tfidf.todense())
,axis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds =
roc_curve(new_y_train, y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"Test AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['TF_IDF(under
sampling)',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 197,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xd8Tff/wPHXJwmJPYIgQWwRGYhd\ns/au2VqdVFu/VofybUt1fDt0a
Gu0pUtRql+tEdSOUiMSI0aITYhElux5378/bnKbkEXd3IzP8/HI\ng3vO55zz/uRy
3/eczzmftxIRNE3TNA3AytIBaJqmaUWHTgqapmmaiU4KmqZpmolOCpqmaZqJTgqa\
npmmaiU4KmqZpmolOCpqmaZqJTgpasaGUuqyUSlRKxWX5WZix7gmlVHrGshil1HGl
1OAs2zorpSTL\ndpeVUrNyOMYTSqkTSqkEpdRNpdTXSqmqWdbPVUqlZuwjWim1Xyn
VKY+Y74zrWGZcSqkeSqngPLbt\nrJTapZSKVUrdVkptVEq1zFg3PktfEpVShqy/l4
w2D2XEd1spFamU+lsp1e5+fvda6aGTglbcDBGR\nill+pmVZd0BEKgJVgcXA6qwf6
BmqZrQZBcxWSvXJXKGUehX4GJgBVAE6Ag2A7Uqpsln28WvGPmoA\nu4Hf8ok5a1zf
A2uUUtXy2iAj0WwD1gN1gYbAceBvpVQjEVmZ+TsABgA3sv5elFKVAW9gAVAdcATe\
nAZLziVUr5XRS0EocETEAy4EKQNNc2vgBpwBPgIwP0XeA/xORP0UkVUQuA2MAZ2BC
DvtIA1YCjkqp\nmgWM6wegHNA4n+bzgJ9F5EsRiRWRSBF5CzgIzM3vWECzjGOuEpF
0EUkUkW0iElCAbbVSTCcFrcRR\nSlkDTwKpwJVc2nQEWgHnMxZ1BuyA37O2E5E4YD
PQhztknD1MAiKAqALEZQM8A8QB5/JoVz4jnpzO\nQNbkFEsOgoB0pdQypdSA/M5MN
C2TTgpacbMu41p+5s/kLOs6KqWigSTgU2CCiITdsX24UioROIDx\nEtO6jOU1gPCM
b/93CslYn2lMxnESgcnAqFy2uzOum8BjwCMicjuP9tUx/t8MKUAsORKRGOAhQICl\
nwC2l1AallEN+22qlm04KWnEzXESqZvlZmmXdQRGpClQDNgBdc9i+BlAReBXoAZTJ
WB4O1Mj4Nn+n\nOhnrM63JOI4DcBJom0/MBzNirSEiHUVkRz7towBDxnHziyVXIhI
oIk+IiBPGs6K6wBcF2VYrvXRS\n0EqcjEs+zwETlVKtc1ifLiKfYzyjeD5j8QGMg7
AjsrZVSmUO5O7MYT/hwBRgrlIqpw/w+40/PiOe\n0TmsHpNTLAXY5xngJ4zJQdNyp
ZOCViKJSCTwHTAnj2YfAa8rpewyLue8AyxQSvVXSpVRSjljvIYf\njHHgOqfjnAW2
Aq/fb6xKKbs7fhQwC3hcKfWiUqqSUqqaUup9oFNGnPnts4VS6lWllFPG63oYL10d\
nvN84tdJBJwWtuNl4x3MKf+TR9gtgoFLKPZf1mzBeqpkMICLzgDcwjkfEAIeAa8DD
IpLXrZyfAFOU\nUrXusS9gvFU08Y6fxiKyD+iH8cwlBOOAeWvgIRHJdZA6i1igA3B
IKRWPMRmcxHjZTNNypXSRHU3T\nNC2TPlPQNE3TTHRS0DRN00x0UtA0TdNMdFLQNE
3TTHJ6UKdIq1Gjhjg7O9/XtvHx8VSoUOHBBlTE\n6T6XDrrPpcO/6bO/v3+4iOQ7R
1exSwrOzs74+fnd17Y+Pj706NHjwQZUxOk+lw66z6XDv+mzUirH\necDupC8faZqm
aSY6KWiapmkmOilomqZpJsVuTCEnqampBAcHk5SUlGe7KlWqEBgYWEhRFQ26z6XD\
nvfbZzs4OJycnypQpk39jrVQpEUkhODiYSpUq4ezsjHEusZzFxsZSqVKlQozM8nSf
S4d76bOIEBER\nQXBwMA0bNjRzZFpxY7bLR0qpH5RSYUqpk7msV0qpr5RS55VSAUq
pNvd7rKSkJOzt7fNMCJqmGSml\nsLe3z/fMWiudzDmm8BPQP4/1AzDWz22KcU76r/
/NwXRC0LSC0/9ftNyYLSmIyF9AZB5NhmEsTC4i\nchCo+iALlWiappUUF66Hcnjp/
xEVftPsx7LkmIIjxrnqMwVnLLurLq1SagrGswkcHBzw8fHJtr5K\nlSrExsbme8D0
9PQCtbtX0dHR/Pbbb0yePDn/xncYOXIk33//PVWrVr2n7bp06ULTpk356aefTMsG\
nDhzI++
+/T5s2xitxV65cYfTo0fj6+gLg5+fHW2+9RVhYGOXLl8fT05N58+ZRvnz5ezr20aN
Hee65\n50hMTKRv377Mmzcvx2+ee/fuZdasWaSmpmJvb8+WLVsAaNWqFRUrVsTa2h
obGxv27Nlj2uabb75h\n6dKlWFtb069fP9577z2uXLlCu3btaNq0KQDt2rXjiy+MV
SUfeeQRQkNDSUtLo3Pnznz22WcApvd5\nwYIFvPnmm1y6dAl7e3uioqJ44YUXuHTp
Era2tixevJiWLVvmG1dO+8rk7+9P7969+fHHHxk+fDgA\nK1eu5JNPPgFgxowZjB8
/ntjYWPr3/+fk+fr164wdO5aPP/6YhQsXsmzZMmxsbKhRowaLFi2ifv36\nAMyZM4
etW7cC8PrrrzNy5Mhscc2YMYMVK1YQEmL8r3Pt2jWmTp3K7du3SU9PZ+7cufTr1+
+u9ycp\nKemu/0vFSVxcXLGOPz+h8QYO3UzD6vphpqf/QDsVTnCcNT4+tc17YBEx2
w/gDJzMZZ03xoIhma93\nAl757bNt27Zyp9OnT9+1LCcxMTEFanevLl26JK6urjmu
S01NfeDHO336tLRq1Urq1q0rcXFxpuXd\nu3eXw4cPZ4vLxcVFRERu3rwp9evXl/3
795vW//bbb3Lz5s17Pn67du3kwIEDYjAYpH///rJ58+a7\n2kRFRYmLi4tcuXJFRE
RCQ0NN6xo0aCC3bt26a5tdu3bJww8/LElJSdm2yev3e/v2bRERMRgMMmLE\nCFm1a
pXpfb569ar07dtX6tevbzrea6+9JnPnzhURkcDAQOnVq1e+ceW2LxGRtLQ06dmzpw
wYMEB+\n+
+03ERGJiIiQhg0bSkREhERGRkrDhg0lMjLyrn22adNG9uzZY+p7fHy8iIgsXrxYxo
wZIyIi3t7e\n0rt3b0lNTZW4uDjx8vIy9VlE5PDhwzJhwgSpUKGCadnkyZNl8eLFI
iJy6tQpadCgQY59Kuj/m6Jq\n9+7dlg7hgbsaES9f+5yXQV/9JV4zl8vGt/qIvF1Z
Iud5SuRpn3/VZ8BPCvC5bcnnFK4D9bK8dspY\nVuzMmjWLCxcu4OnpyYwZM/Dx8aF
r164MHTrU9C10+PDhtG3bFldXV5YsWWLa1tnZmfDwcC5fvoyL\niwuTJ0/G1dWVvn
37kpiYmOPxVq1axcSJE+nbty/r168vUIyLFi3i8ccfp1OnTqZlo0aNwsHB4Z76\nG
hISQkxMDB07dkQpxaRJk1i3bt1d7X755RdGjBhh+rZbq1b+Rcm+/vprZs2aha2tbY
G3qVy5MgBp\naWmkpKRkO2N5+eWX7zqLOX36NL169QKgRYsWXL58mdDQ0HyPk9O+w
Hj2MHLkyGyxbt26lT59+lC9\nenWqVatGnz59+PPPP7NtFxQURFhYGF27dgWgZ8+e
pjO2jh07EhwcbIq3W7du2NjYUKFCBdzd3U37\nSk9PZ8aMGcybNy/bvpVSxMTEAHD
79m3q1q2bb/80ywm5nch3ey8yfNHfdJ23m4+3nGZQ8hb2VZzJ\noLLHoOdbVHv5EN
VcuhdKPJa8fLQBmKaUWo2xbOBtEbnr0tG9emfjKU7fiMlxXXp6OtbW1ve8z5Z1\nK
/P2ENdc13/00UecPHmSY8eOAcb5SY4cOcLJkydNt/z98MMPVK9encTERNq1a8fIkS
OzXYIAOHfu\nHKtWrWLp0qWMGTOGtWvXMmHChLuO9+uvv7J9+3bOnDnDggULGDduX
L59OHnyJI8//ni+7c6ePcvY\nsWNzXOfj48P169dxcnIyLXNycuL69btzeVBQEKmp
qfTo0YPY2FheeuklJk2aBBg/tPr27YtSimef\nfZYpU6aYttm7dy9vvvkmdnZ2fPr
pp7Rr1w6AS5cu0bp1aypXrsz7779v+jAF6NevH76+vgwYMIBR\no0aRkJDA+vXrcX
R0xMPDI1tcHh4e/P7773Tt2hVfX1+uXLlCcHAwDg4OucaV276uX7/OH3/8we7d\nu
zl8+HC25fXq/fN9J6ff0erVqxk7dmyOl92+//57BgwYYIr3nXfe4dVXXyUhIYHdu3
ebvmgsXLiQ\noUOHUqdO9qG4uXPn0rdvXxYsWEB8fDw7duy46xiaZYXFJrE5IATvg
BD8rkQB4Fq3Mh8/ZMPw659g\nG3IYGnaDQfOhRpNCjc1sSUEptQroAdRQSgUDbwNl
AETkG2AzMBA4DyQAT5orFkto3759tnvAv/rq\nK/74w1hO+Nq1a5w7d+6upNCwYUM
8PT0BaNu2LZcvX75rv35+ftSoUYP69evj6OjIU089RWRkJNWr\nV8/xA+Ze7zJp3r
y5Kbn9G2lpafj7+7Nz504SExPp1KkTHTt2pFmzZuzbtw9HR0fCwsLo06cPLVq0\no
Fu3bqSlpREZGcnBgwc5fPgwY8aM4eLFi9SpU4erV69ib2+Pv78/w4cP59SpU6azhK
1bt5KUlMT4\n8ePZtWsX7u7ufPDBB2zbtu2uuGbNmsVLL72Ep6cnbm5utG7d2vRFI
ae4vLy8ct3X9OnT+fjjj7Gy\nuvcT7tWrV7N8+fK7lq9YsQI/Pz/TeEbfvn05fPgw
nTt3pmbNmnTq1Alra2tu3LjBb7/9luM19VWr\nVvHEE0/w6quvcuDAASZOnMjJkyf
vK07twYmIS2bLyZt4B9zg0KVIRKBF7Uq82qcZQ1yr4XxqMfz9\nJdhWhuHfgMejYI
G7xMyWFETksXzWC/DCgz5uXt/oC/OhpqzT2/r4+LBjxw4OHDhA+fLl6dGjR473\ni
GdeNgGwtrbO8fLRqlWrOHPmDJnTh8fExLB27VomT55sGkjNFBkZaUo8rq6u+Pv7M2
zYsDzjzu9M\nwdHR0XRpA4wPDjo6Ot7V1snJCXt7eypUqECFChXo1q0bx48fp1mzZ
qb2tWrV4pFHHsHX15du3brh\n5OTEiBEjUErRvn17rKysCA8Pp2bNmqbfTdu2bWnc
uDFBQUF4eXmZjmdnZ8ewYcNYv349lSpV4tKl\nS6Zv9sHBwbRp0wZfX19q167Njz/
+CBjH0xo2bEijRo0AcoyrWrVque7Lz8+PRx99FIDw8HA2b96M\njY0Njo6O2T6sg4
ODs81sefz4cdLS0mjbtm2239mOHTv473//y549e7L9W3jzzTd58803ARg3bhzN\nm
jXj6NGjnD9/niZNjN8iExISaNKkCefPn+f77783XWLq1KkTSUlJhIeHF+hynPZgRS
eksPXUTbwD\nQth/IYJ0g9C4ZgVe7NWUwe51aOpQCS7shl9HQ9Ql8BgHfd+HCvb57
9xcCjLwUJR+iuJAc3h4uNSv\nX9/0evfu3TJo0CDT63Xr1sngwYNFxDi4aWtraxow
yhzcvHMw9ZNPPpG3334723HS09PFyclJrl+/\nblq2a9cu6dmzp4iILFiwQCZNmiQ
Gg0FERF588UV54403ROSfgeaDBw+atl27du0DGWjetGnTXW1O\nnz4tvXr1ktTUVI
mPjxdXV1c5ceKExMXFmd6HuLg46dSpk2zZskVERL7+
+muZPXu2iIicPXtWnJyc\nxGAwSFhYmKSlpYmIyIULF6Ru3boSEREhsbGxcuPGDRE
xDuiPGTNGFixYcNf7nHUAOSoqSpKTk0VE\nZMmSJTJx4kRTLLnFldu+snr88cezDT
Q7OztLZGSkREZGirOzs0RERJjazpw5U+bMmZNt+yNHjkij\nRo0kKCgo2/K0tDQJD
w8XEZHjx4+Lq6trjjcvZB1o7t+/v/z4448iYnwf6tSpY/o3kZUeaDaP24kp\n8j+/
a/LED4ek8X82SYOZ3tJt3i6Z92egnL5x+5/3Iu6WyNrJIm9XFvmytcjFPfnuuzAGm
kvENBeW\nZm9vT5cuXWjVqhUDBgxg0KBB2db379+fb775BhcXF5o3b07Hjh3v6zh7
9+7F0dEx28Bht27dOH36\nNCEhIUyZMoUzZ87g4eGBUgovLy/eeOMNwHgr7+rVq3n
ttdcICwvDysqKbt26ZbtFsqAWL17ME088\nQWJiIgMGDDBd//7mm28AmDp1Ki4uLv
Tv3x93d3esrKx45plnaNWqFRcvXuSRRx4BjJeYxo0bZ4rh\nqaee4qmnnqJVq1aUL
VuWZcuWoZTir7/+Ys6cOZQpUwYrKyu+
+eYbqlevTmhoKEOHDiU5ORmDwUDP\nnj2ZOnVqrgP0AIGBgTz+
+OMopXB1deX7778HIDQ0NNe47lX16tWZPXu2aTxkzpw5VK9e3bR+zZo1\nbN68Ods
2M2bMIC4ujtGjRwNQv359NmzYQGpqqmn8pHLlyqxYsQIbm7z/23722WdMnjyZ+fPn
o5Ti\np59+0g+rmVl8cho7AkPxDghhz9lbpKQbcKxajqcfashg97q0cqz8z3sgAkd
XwLa3IDkOur0OXV+F\nMnaW7UQGZUwgxYeXl5fcWWQnMDAQFxeXfLfVc+KUDrrPBV
PQ/zdFlaWL7CSmpLPrTBjeATfYdSaM\n5DQDtSvbMdCtDoM96tC6XtW7k3H4Odg4H
a7sg/qdYPAXUKtFgY/5L4vs+IuIV37t9JmCpmlaASWl\nprMn6BbeASHsDAwlISWd
GhVtGduuHoPd6+LVoBpWVjmclaUlw775sPczKFMOhnwJrSdBERz810lB\n0zQtDyl
pBvadv4X38RC2nw4lNjmN6hXKMry1I4Pd69ChoT3WOSWCTJf/Bu/pEB4ErUZB/w+h
YtEd\n9NdJQdM07Q5p6Qb2X4jAO+AGW0+Fcjsxlcp2Ngxwq81g97p0amxPGet8vuU
nRML2OXB0OVRtAOPX\nQtPehdOBf0EnBU3TNCDdIBy6FIF3QAh/nrxJZHwKFW1t6N
vSgcEedXioSU3K2hTgco8InPgN/vwP\nJEZBl+nQfSaUvbc5xixFJwVN00otg0Hwu
xKFd8ANNp+4SXhcMuXLWvOwiwOD3evQvVlN7MrcwywI\nkRfB+xW4uBscvWDSeqjd
ynwdMAOdFDRNK1VEhKPXovE+HsLmEyHcjEnC1saKXi1qMdi9Lr1a1KJc\n2XucDic
9FfZ/BXvmgVUZGPgpeD0FVvc+rY6lFb2h72IoIiICT09PPD09qV27No6OjqbXKSkp
Bd7P\nDz/8wM2buc+XnpKSQvXq1XnrrbeyLXdyciI6Otr0eseOHaYpnAE2bdpkmoz
P09OTmTNn3kPv/rF5\n82aaN29OkyZNTNNC3+m7776jZs2apv5nPj0Mxjl9mjZtSt
OmTVmxYoVp+YoVK3Bzc8Pd3Z2BAwcS\nGWksw/HGG2/g7u6Oh4cH/fr1y/a72blzJ
x4eHri6upomuMv8XXTs2BFPT086dOhgWp7bvj766CNT\nrK6urtjY2HD79m0AHn/8
cVNfsjpy5AgdOnTA09OTdu3akXmL9KlTp+jUqRO2tramqb0zRUZGMmLE\nCFq0aIG
Li4tpOvNff/2Vli1bYmVlleP0IpcuXaJChQqm/cXHx9O+fXs8PT1p2bIl7777rqnt
hAkT\nTFOleHp6cuLEiRzfo9JIRDgRfJsPNwfy0Me7GbF4PysOXqGVYxW+fNQT/9l
9+HpCWwa517n3hHDN\nF77tBjvfhaZ9YZovtJ9cLBMCoJ9oftDefvtt+eSTT+5r2y
5dusjRo0dzXb9hwwbp0qWLNGnSJNty\nR0dHiYqKMr3evn27DBs2TERE/v77b2nSp
ImcPXtWRIxPyGZOq3wvUlJSpGHDhnL58mVJSkqSVq1a\nmfaZ1dKlS+Wll166a/mt
W7ekYcOGEhUVJeHh4eLs7CzR0dGSnJwsNWvWND3x+/LLL8t7770nIpJt\niujPPvt
MXnjhBRExPjHs4uIi165dE5Hs03I7OjrK1atX7zp+bvvK6vfff5c+ffqYXvv4+Mih
Q4fE\nw8MjW7uePXvKtm3bRERk/fr18vDDD4uI8anxw4cPy8yZM2X+/PnZthk3bpz
pKePk5GSJjo4WEePU\n1mfPns31vR8+fLiMHDnStL/09HTTdOkpKSnStm1bOXz4sM
TExMj48ePljz/
+uGsfuSnpTzQbDAY5\nfeO2zPszULrN2yUNZnpL4/9skid+OCT/87smtxNT/l0ACV
EiG18WebuKyGctRc7cPYX8g6afaC4B\nli1bxqJFi0hJSaFz584sXLgQg8HAk08+y
bFjxxARpkyZgoODA8eOHWPs2LGUK1cOX19fypYtm21f\nq1at4pVXXmH+/Pn4+vrS
vn37fI8/f/58Zs+eTbNmzQDjnErPPffcPffj4MGDuLi40KBBAwDGjBnD\n+vXrmTF
jRoG237JlCwMGDDAVE+rVqxfbtm1j6NChiAjx8fFUq1aN2NhYWrUyXoPNnPAOjHP7
ZD4I\ntGLFCsaMGWOarfVepti+c19ZrVq1isce+2fKru7du3P+/Pm72uU2NbWDgwM
ODg53TSUeGRnJoUOH\nWLlyJQBly5Y1vbeZM57m5H//
+x8tWrTINrOvlZWVaV6tlJQUUlNT9dPKdzgfFsvG4yF4B9zgwq14\nrK0UnRvb83y
PxvRzrU3V8mXz30leROD0OtgyE+JvQcfnoOebYFvxwXTAwkpeUtgyC27mfNpcLj0N
\nrO+jy7XdYMBH97zZyZMn+eOPP9i/fz82NjZMmTKF1atX07hxY8LDw02n99HR0VS
tWpUFCxawcOHC\nuy5XgPGDzMfHx3SJadWqVQVKCoGBgcydOzffdjt27OC11167a3
mlSpXYu3dvjtNBHz9+PMd9rVmz\nhl27dtGiRQvmz5+Po6NjrtNJ29rasnDhQlq2b
EnFihVxcXHh22+/NbWbNWsWK1asoHr16uzevRsw\nTrGtlKJ79+7Ex8czffp00xTj
SimGDBmCtbU1zz//PE8//XSe+8oUFxfHjh07WLp0ab6/q6++
+op+\n/foxffp0RIQDBw7k2f7ixYvUrFmTSZMmceLECVPluLwq3sXGxvLZZ5+xc+d
OPvjgg2zrUlJSaN+
+\nPefPn+ell16ibdu2pkpzs2bNYs6cOfTt25cPPvjgri8WJdWl8Hi8j99g04kQzt
yMRSno0LA6T3Zp\nyIBWtbGvaJv/Tgoi+ipseg3ObYU6HjDuV6jb+sHsu4jQYwpmt
GPHDg4fPoyXlxeenp7s2bOHCxcu\n0KRJE86ePcuLL77I1q1bqVKlSr772rBhA336
9MHOzo7Ro0ezdu1aDAYDkPP02Pf67bF3794cO3bs\nrp+9e/fe036GDx/OpUuXCAg
IoHv37jz5ZN4zoqekpPDtt98SEBDA9evXadasWbaiMR999BHBwcGM\nHj2axYsXA8
a5iY4cOcKWLVvYsmULc+fO5cKFC4DxjGbv3r1s2rSJL774gv379+e5r0zr16+ne/f
u\nBXovFi1axKJFi7h27Rrz5s3LtwxrWloafn5+vPjiixw5coSyZcvmOiaTafbs2c
yYMSPHxFG2bFmO\nHTvGtWvX+PvvvwkMDARg3rx5BAYGcvjwYW7evMmnn36ab1+Ks
1sJBr72ucCgr/bS81MfPtseREVb\nG+YOacmh/zzM6imdmNCxwYNJCOlpsH8hLOoA
l/dBvw/gmV0lLiFASTxTyOMbfWIhz4kjIjz11FO8\n9957d60LCAhgy5YtLFq0iLV
r12arxpaTVatWcfDgQdOU2bdu3WLPnj307NnTNGV25qWZyMhIatSo\nARiri/n7+
+PqmvuU4pD/mYKjoyPXrv1TUju3KbMzjwswZcoU06C4o6MjBw8ezLZ9q1at8Pf3p0
yZ\nMqbaE2PGjLlrkBZg/PjxjBgxgtmzZ+Pk5ISjoyPly5enfPnydOnShYCAABo3b
oyjoyOxsbHUrl2b\nYcOG4evrS+fOnXPdV6bVq1czceLEPH9HmVasWGFKKmPHjuX5
55/Ps72TkxP169c3TfU9cuTIHPuY\nla+vL+vWreOVV14hOjoaKysrbG1ts136q1a
tGt26dWPr1q08/fTTpstYtra2PPHEEyxcuLBA/SlO\nbkQnsvlECBsDQjh+LRE4g0
e9qrw1yIWBbnWoW7Xcgz/o9SOw8SW4GQDN+sPAT6Bq/Qd/nCJCnymY\nUe/evVmzZ
g3h4eGA8S6lq1evcuvWLUSE0aNH8+6773LkyBHA+AGceRkgq+joaA4ePEhwcDCXL1
/m\n8uXLfPXVV6xatQqAHj16mAq2pKWlsXLlSnr27AkYC8G89957pmvj6enpptlM7
4w1rzOFjh07cvr0\naa5cuUJycjJr1qxh6NChd+0ns3g8wLp160zJqH///mzZsoXo
6GgiIiLYuXMnffv2xcnJiRMnThAR\nEQHA9u3bTZO0nTt3zrSv9evX06KFceKw4cO
Hs3fvXtLT04mPj8fX15cWLVoQFxdHXFwcYLxLZ/v2\n7abxidz2BRAVFcX+/fsZMm
TI3W9iDhwcHNi3bx9gTKbNmzfPs72TkxMODg6m92Dnzp15jiUA7N+/\n3/ReT5s2j
Tlz5vDcc88RFhZmujsqISGBHTt2mPqS+bsXEdavX2/qe3EXFpPET39fYtTX+
+n80S7e\n3xRIusHAmGZl2Pt6T9a/0IVnujZ68AkhOdZ4Ofq7hyEuDEYvg8dWl+iE
AOi7jx60O+8+WrlypXh4\neIibm5u0adNGfH19xd/fXzw9PcXDw0M8PT1l69atIiL
y66+/SrNmzcTDw8M057+IyHfffSfjx4/P\ndpywsDCpWbOmpKSkSFRUlIwdO1bc3d
3Fzc1NZs6caZqzPSYmRtavXy+tW7cWFxcXcXFxkVmzZt1X\n3zZs2CBNmzaVRo0ay
UcffWRa/sYbb5hqKrz22mvi6uoq7u7u0qtXLzlz5oyp3ZIlS6Rx48bSuHFj\nWbZs
mWn5okWLpEWLFuLm5iZDhgwxFbkfNmyYuLq6ipubmwwdOjRbHYkPP/xQXFxcxNXVV
b766isR\nEQkKChJ3d3dp1aqVtGzZUj788ENT+7z2tXTp0rt+vyIio0aNktq1a0uZ
MmXE0dHRdPfQnj17pHXr\n1uLu7i4dOnQw3TV07do1cXSBRs6zAAAgAElEQVR0lEq
VKkmVKlXE0dFR4uPjRUTEz89P2rRpI25u\nbjJ8+HDT3Udr1qwRR0dHKVu2rNSqVU
sGDhx4Vxxvvvmm6e6jo0ePioeHh7i7u4urq6u8//77ImJ8\nn7t16yZubm7i6uoqk
yZNMt2llJuifPfRrdgk+fnAZRn77X5xnuUtDWZ6S7/5e2TBziC5eMvYL7PW\nUwjc
JPKZi/HOIu9XRBKjzXese1AYdx/pqbNLON3n0qEkTJ0dnZDCnyeNVcoOXPynStlg9
7oM8ahD\nk1rZ+2eWqbNjbsCW1yFwI9RyhSFfQL38b+goLHrqbE3TSrSYpFS2nQrF
O+AG+86Fk2YQGtiXZ2r3\nRgx2r0uL2pUK55ZbQzoc/t74AJohFXrPhU7TwLqM+Y9
dxOikoGlaoYpLTmNnYCgbj4fwV1CWKmVd\nGzLY7Y4qZYXh5gnjQPJ1f2jcCwZ9Dt
UbFt7xi5gSkxRERD/Eo2kFVNiXjXOrUjaxUwMGu9fBM6cq\nZeaWEg8+H8GBRVCuG
oz4DtxGQSn/HCkRScHOzo6IiAjs7e11YtC0fIgIERER2NmZtyZwblXKHm1X\nj8Ee
dWlbP5cqZYXh3A7Y9LLxYbQ2k6D3O1C+ev7blQIlIik4OTkRHBzMrVu38myXlJRk9
v8IRY3u\nc+lwr322s7MzTRPyIKWkGdh7zpgItp8OJe5eq5SZW2wobP0PnFwLNZrB
E5vBuYvl4imCSkRSyPrw\nU158fHxo3brkPYGYF93n0sGSfU7NrFJ2/AZbT90kJim
NynY2DMyoUta5sT02+VUpMzeDAY4sgx1v\nQ2oi9HgDHpoONg9o+osSpEQkBU3TCl
e6QTh0MYKNASH8eTKEqITU+6tSVhjCzhgHkq8dBOeuMHg+\n1Ghq6aiKLJ0UNE0rk
NyqlPXOqFLW7V6rlJlbahLs/RT2fWGcwXTYYvAcV+oHkvOjk4KmabkSEY5c\njc5I
BCGExiRjV+afKmU9m99HlbLCcHEPeE83lsd0fxT6/Rcq1Mh/O00nBU3TshMRTly/j
XdACJsC\nQrgenUhZayu6N6/JYPc69HZxoIJtEf3oiI+AbW/C8VVQrSFMXAeNe1o6
qmKliL6zmqYVJhEhMCQW\n7wBjTYIrEQnYWCm6Nq3BK32a0cfVgcp2RfjpXhFjItj
6JiTHQNfXoNtrUMYMs6aWcDopaFopdi40\nlo0BxiplF81RpawwhJ83Xiq6vBfqdY
AhX0KtojOnU3Gjk4KmlTKZVcq8A0I4G2qsUtaxoT1PPegq\nZWamDKmwZx789SnY2
BnvKmrzBFgVkbueiimzJgWlVH/gS8Aa+E5EPrpjfX1gGVA1o80sEdlszpg0\nrTS6
FpmAd8YZwakbxvrS7Zyr8c5QVwa41aZWpWL2sN+V/Xj5TYeEYHAdAf0/gkoOlo6qR
DBbUlBK\nWQOLgD5AMHBYKbVBRE5nafYWsEZEvlZKtQQ2A87miknTSpMb0YlsykgE
x4ONhXk8M6qUDXKvQ50q\nxfB6e2IUbJ8DR37G2rYWjP8fNO1j6ahKFHOeKbQHzov
IRQCl1GpgGJA1KQhQOePvVYAbZoxH00q8\nsJgkNp0IwTsgBP8rUQC0cqzMrAEtGO
RWh3rV7675XCyIGKem+HMWJERC5xfxte5CN50QHjizFdlR\nSo0C+ovIMxmvJwIdR
GRaljZ1gG1ANaAC0FtE/HPY1xRgCoCDg0Pb1atX31dMcXFxVKxY8b62La50\nn0u+
mGTh76vxHIu0JijKgABOFRXt69jQobYNDhWK9zV2u8RQmgV9TfWoo8RUakpQs+eJq
9So1L3P\n8O/
+bffs2bNYFNl5DPhJRD5TSnUCliulWomIIWsjEVkCLAFj5bX7rTxklkpNRZzuc8mU
tUrZ/gvh\nGETRuGY5Xnw45yplxVJ6KhxYCP4fg5U1DJhH5XbP4GVlfFiuNLzPdyq
MPpszKVwH6mV57ZSxLKun\ngf4AInJAKWUH1ADCzBiXphVLOVUpc7Yvz/M9muCQcp
0Jg7uXnKnjg/2M8xWFnoQWg2HAPKjiaOmo\nSgVzJoXDQFOlVEOMyeBRYNwdba4CD
wM/KaVcADsg7/mvNa0UiUtOY8dpYyL4Kyg8W5WyIe51ca1r\nrFLm4xNSMhJC0m3Y
+R4c/g4q1YFHf4EWgywdValitqQgImlKqWnAVoy3m/4gIqeUUu8CfiKyAXgV\nWKq
UehnjoPMTUtgloTStiElISTNWKTsewu6zRaRKmbmJQOAG2DITYm9Ch2eh11tgWwIu
gxUzZh1T\nyHjmYPMdy+Zk+ftpQFe40Eq9pNR0fM7ewjvgBjsDw0hMTadmpSJSpcz
coq/B5hkQtAVqu8GjK8Gx\nraWjKrUsPdCsaaVWblXKRrRxZLB7Xdo3rG7ZKmXmZk
iHQ9/CrvcBgb7vQ4fnwFp/LFmS/u1rWiFK\nTTfw9/lwNgWEmKqUVSlXhkFudRjsU
YdOjYpAlbLCcOOYcSA55Bg07QsDP4VqDSwdlYZOCppmdukG\n4eDFCLwDbvDnyZtE
JaRSydaGPq4ODHGvS5cmNYpOlTJzS46D3R/Aoa+hQk0Y9SO4PqIL3xQhOilo\nmhk
YDMLhy5F4B4Sw5WQI4XEpRbtKWWE4+ydsfg1uXwOvp+Dht6FcVUtHpd1BJwVNe0CK
bZUyc4sJ\ngT9nwun1UNMFntoG9TtYOiotFzopaNq/kGOVMhsrejSryaCiXqXM3Aw
G8Psedr4L6SnQazZ0fhFs\nikGNhlKslP5r1bT7l7VKmXdACFcjEyhjrejatCav9m
1G75ZFvEpZYQg9ZRxIDj4MjXrAoM/BvrGl\no9IKQCcFTSugoNBYY3GaEyHZqpRN6
9mEfq61qVK+lCcCgJQE2POxcc4iuyrwyBJwH6MHkosRnRQ0\nLQ8Xb8WZitMEhcaZ
qpQ9/VBD+rsWnyplheL8Ttj0CkRdBs8J0Pc9KF/d0lFp90gnBU27w9WIBLxP\n3MD
7eAinQ0pAlTJziwuDrW/Aid/Avgk87g0Nu1o6Ku0+6aSgaZTQKmXmZjDA0eXGSmip
CdB9FnR9\nBWz02VNxppOCVmqFxiSx+Y4qZW6OVfjPgBYMLM5VygrDrbOwcTpc3Q8
NusDgL6BmM0tHpT0AOilo\npUp4XDJbMhKB7+VIRKBF7UrM6NecQW51cK5RwdIhFm
2pSbDvc9j7OZStAEMXgud4sColT2SXAjop\naCVeVHwKf566iXfADQ5ciMAg0KRWR
V56uCmD3evSpFbpKul43y79Bd4vQ8R5cBsD/T6AijUtHZX2\ngOmkoJVItxNT2XbK
WK7y7/PZq5QN9qhDc4dKJa8mgbkkRMK2t+DYSqjmDBN+hyYPWzoqzUx0UtBK\njMw
qZT/5J3F6+w5S0g04Vbu7SplWQCIQ8KvxzqKk2/DQK9D9dSijB91LMp0UtGItISWN
nYFhbAr4\np0pZNVvFxE7OJbdKWWGIuGC8VHRpDzi1hyFfgIOrpaPSCoFOClqxY6x
SFsbGgBB2ZalS9lj7+gx2\nr0PMpeP06tnS0mEWT2kpsP9L2POJ8dbSQZ9B26f0QH
IpopOCViwkp6WzNygc74AbbD8dSnxKeq5V\nynwu6zOD+3L1oPE201uB0HI4DPgYK
tW2dFRaIdNJQSuyMquUeWdUKYvNqFI22L1u6apSZm6J0bDj\nbfD/CarUg8d+heb9
LR2VZiE6KWhFSlq6gUOXInWVssIgAqd+hy2zICEcOk2DHv8BW32Lbmmmk4JW\nZCz
56wJL/rqoq5QVhqjLsOk1OL8d6njC+N+grqelo9KKAJ0UtCLhf/7BfLD5DF2b1uCx
9vVLb5Uy\nc0tPg4OLYPeHYGUN/T+C9lOMf9c0dFLQioBj16J5448TdG5sz49PtNP
jBOYS7G8sfBN6ApoPhIGf\nQBUnS0elFTE6KWgWFRabxNTl/tSsaMvCcW10QjCHpB
jY9T74LjHeTTR2BbQYrAvfaDnSSUGzmJQ0\nA8+vOEJ0Ygprn+tM9Qq6du8DF+gNm
2dAbAi0n2ysk2xX2dJRaUWYTgqaxczdeAq/K1EseKw1rnWr\nWDqckuV2MGx+Hc5u
AodWMHY5OHlZOiqtGNBJQbOIlYeu8Muhq0zt3pghHnUtHU7JYUgH36Ww6z3j\n33u
/A51eAGtdP1orGJ0UtELndzmSuRtO0b1ZTWb0a27pcEqOkOPGgeQbR6FJb+MUFdWc
LR2VVszo\npKAVqpDbiUxdcQTHquX46tHWpqkptH8hJZ7G53+EPRuhvD2M/B5ajdQ
Dydp9KdCtHkqp35VSg5RS\n93RriFKqv1LqrFLqvFJqVi5txiilTiulTimlfrmX/W
vFS1JqOlOX+5OYksaSSV5UKa8vafxrQdtg\nUUfqBa+DNhNhmi+4jdIJQbtvBf2QX
wyMA84ppT5SSuV7zq+UsgYWAQOAlsBjSqmWd7RpCvwH6CIi\nrsD0ewleKz5EhDf/
OMnx4Nt8PtaTZg6VLB1S8RZ7E9Y8Dr+MhrLlOer5IQz5EspVs3RkWjFXoKQg\nIjt
EZDzQBrgM7FBK7VdKPamUyu3rXnvgvIhcFJEUYDUw7I42k4FFIhKVcZyw+
+mEVvQt23+ZtUeC\neenhpvRz1TNv3jeDAQ5/Dwvbw9kt0PMteHYvt6vqqcK1B0OJ
SMEaKmUPTAAmAjeAlcBDgJuI9Mih\n/Sigv4g8k/F6ItBBRKZlabMOCAK6ANbAXBH
5M4d9TQGmADg4OLRdvXr1PXTxH3FxcVSsWLom+yoK\nfQ6MSOcTvyQ8alrzf61tsT
LzpY2i0GdzqBB3hWZBi6kSc4aoqu4ENZtKYnlHoOT2OS+6z/emZ8+e\n/iKS/33JI
pLvD/AHcBrjpZ46d6zzy2WbUcB3WV5PBBbe0cY7Y99lgIbANaBqXrG0bdtW7tfu3b
vv\ne9viytJ9vhoRL57vbJVen+6WmMSUQjmmpfv8wKUkiGyfK/JOdZGPnEWO/iJiM
GRrUuL6XAC6z/cm\nt8/qO38KevfRUhHZnHWBUspWRJIl98xzHaiX5bVTxrKsgoFD
IpIKXFJKBQFNgcMFjEsrwhJT0nl2\nuT9pBmHpJC8q2emB5Xt2YbexLGbUJfAYB33
fhwr2lo5KK8EKOtD8fg7LDuSzzWGgqVKqoVKqLPAo\nsOGONuuAHgBKqRpAM+BiAW
PSijAR4fW1AQTejOGrR1vTqGbpOs3/1+LD4fcpsHw4KCt4fCM88rVO\nCJrZ5Xmmo
JSqDTgC5ZRSrYHMi8GVgfJ5bSsiaUqpacBWjOMFP4jIKaXUuxhPYzZkrOurlDoNpA
Mz\nRCTiX/VIKxKW/HWRjcdvMKNfc3q2qGXpcIoPETi2Era9Bclx0O116PoqlLGzd
GRaKZHf5aN+wBMY\nL/18nmV5LPBGfjvPuOS0+Y5lc7L8XYBXMn60EmJP0C0+/vMM
g9zq8HyPxpYOp/gIP2eskXxlH9Tv\nBIO/gFotLB2VVsrkmRREZBmwTCk1UkTWFlJ
MWjF2OTye//vlCM0cKvHJaHeUfogqf2nJsG8+7P0M\nypQzPm/QehJY6WnEtcKX3+
WjCSKyAnBWSt31bV5EPs9hM62UiktOY8pyP6ysFEsmelG+rJ5FJV+X\n9xnPDiLOQ
atR0P9DqKgvt2mWk9//2goZf+pRQi1PBoPw6ppjnA+L4+enOlDfPs8hJy0hErbPhq
Mr\noGoDGL8Wmva2dFSalu/lo28z/rpYRG4VQjxaMbVw93m2ngrlrUEuPNS0hqXDK
bpE4MRv8Od/IDEK\nukyH7jOhrE6iWtFQ0PP7v5VSl4Ffgd8lY1oKTQPYfjqUz7cH
8UhrR55+qKGlwym6Ii+C9ytwcTc4\nesGk9VC7laWj0rRsCpQURKSZUqo9xmcN3sy
4hXR1xniDVoqdD4vj5V+P4eZYhQ9HuOmB5Zykp8L+\nr2DPPLAqAwM/Ba+nwMra0p
Fp2l0KfHuDiPiKyCsYJ7qLBJaZLSqtWLidmMqUn/2wtbHi24ltsSuj\nP+Tucs0Xv
u0GO9+Fpn2NU1u3n6wTglZkFehMQSlVGXgE45lCY4zzFbU3Y1xaEZduEKavPsrVyA
RW\nPtOBulXLWTqkoiUxGna+A34/QmVHeGw1NB9g6ag0LV8FHVM4jnFKindFJL/pL
bRSYP72IHafvcV7\nw1zp0EhPvWAiAqfXwZaZEH8LOj4HPd8AW10/QiseCpoUGmU8
faxpbD4RwsLd53m0XT0mdGxg6XCK\njuirsOk1OLcV6njAuF+hbmtLR6Vp9yS/h9e
+EJHpwAal1F1JQUSGmi0yrUgKDInh1TXHaV2/Ku8M\nc9UDywDpaXDoG9j9X0BBvw
+g/bNgrR/e04qf/P7VLs/481NzB6IVfdEJKUxZ7kclOxu+mdAWWxs9\nWMr1I7DxJ
bgZAM36w8BPoGp9S0elafctv4fX/DP+6ikiX2Zdp5R6CdhjrsC0oiUt3cC0X44Sej
uZ\n1c92xKFyKZ+1My0ZfD6Cv7+ACrVg9DJoOQz0mZNWzBX0ltTHc1j2xAOMQyviP
v7zDPvOh/P+8Fa0\nqV/Ki8PfOApLesC+z8FzHLxwCFyH64SglQj5jSk8BowDGiql
shbIqYTxWQWtFFh39DpL915iUqcG\njGlXL/8NSqq0FPjrE+NsphVrwbjfoFlfS0e
laQ9UfmMK+4EQoAbwWZblsUCAuYLSio4TwbeZuTaA\n9g2rM3twS0uHYzkhAbDuOQ
g9CR6PGWczLVfKz5i0Eim/MYUrwBWgU+GEoxUl4XHJPLvcD/sKZVk8\nvg1lrEvh/
P7pqbD3c/hrHpS31w+haSVefpeP9onIQ0qpWCDrLakKY+G0ymaNTrOY1HQDz688Qk
R8\nCv+b2pkaFW0tHVLhCz0Ff0w13lnkNgYGfAzlq1s6Kk0zq/zOFB7K+FM/jlnKv
Od9Gt9LkXwx1hM3\npyqWDqdwpafB3/PB52MoVxXGrgCXIZaOStMKRUHnPmoMBItI
slKqB+AO/Cwi0eYMTrOMXw9f5ecD\nV5jctSHDWztaOpzCFRZoHDu4cRRcRxhnNK2
gp/HQSo+CXiReC6QrpZoAS4B6wC9mi0qzmCNXo5i9\n7hRdm9ZgZv9SVDQ+Pc1YJ/
nbbsbpKkb/BKN/1AlBK3UK+hy+QUTSlFKPAAtEZIFS6qg5A9MKX2hM\nElOX+1O7i
h0LHmuNTWkZWL4VZDw7uO4HLkNh0OdQsaalo9I0iyhoUkjNeGbhcSDz4moZ84SkWU
Jy\nWjpTV/gTm5TGz0+3p2r5spYOyfwM6XBwMex8z1gOc+T30GqkfghNK9UKmhSeB
KYC/xWRS0qphvwz\nL5JWzIkIc9ad4ujVaBaPb0OL2qXgprKIC8azg2uHoPkgGDwf
KjlYOipNs7iCluM8DbyY5fUl4GNz\nBaUVrhUHr/Cr3zWm9WzCQLc6lg7HvAwG8P0
WdrwDNmXhkSXgPkafHWhahoLefdQFmAs0yNgm8zmF\nRuYLTSsMhy5G8M7G0/RqUY
uX+zSzdDjmFXkR1r0AV/dD034w5EuoXMKToKbdo4JePvoeeBnwB9LN\nF45WmG5EJ
/L8yiPUr16eLx71xNqqhH5bNhjA73vYPgesysCwxcaJ7PTZgabdpaBJ4baIbDFrJF
qh\nSkpNZ8pyP5LTDCyZ5EVluxJ630DUFVj/AlzeC016w5CvoEope/ZC0+5BQZPCb
qXUJ8DvQHLmQhE5\nYpaoNLMSEf7z+wlOXo/hu0leNKlV0dIhPXgi4P8jbJsNKBi6
AFpP1GcHmpaPgiaFDhl/emVZJkCv\nBxuOVhi+33eJP45e55U+zejdsuTdcWObFAb
Lh8NFH2jUA4YuhKqleMpvTbsHBb37qKe5A9EKx75z\n4XywOZD+rrWZ1rOJpcN5sE
TgyM+0OzwTrKyMt5m2fVKfHWjaPSjQI6tKKQel1PdKqS0Zr1sqpZ4u\nwHb9lVJnl
VLnlVKz8mg3UiklSimv3Npo/97ViASmrTpCk1oV+XSMB1YlaWD59nVYMRI2vkhspS
bw\n/H7wekonBE27RwWdx+AnYCtQN+N1EDA9rw2UUtbAImAA0BJ4TCl1V5UWpVQl4
CXgUAFj0e5DQkoa\nU5b7YTAISyZ6UdG2oFcOizgROLoSFneCqwdg4Kcc93gXqjlb
OjJNK5YKmhRqiMgawAAgImnkf2tq\ne+C8iFwUkRRgNTAsh3bvYXwQLqmAsWj3SES
Y8VsAQaGxLBjXBucaFSwd0oMREwK/jIX1z0PtVvDc\n39B+MqhSMmeTpplBQb8uxi
ul7MkotKOU6gjczmcbR+BaltfB/DNgTcZ+2gD1RGSTUmpGbjtSSk0B\npgA4ODjg4
+NTwLCzi4uLu+9ti6u4uDhm/LCdTedSGdO8DHLjFD43LB3VvySCQ6gPTc4vxcqQys
Um\nz3DdcRAEXAWultr3Wfe55CuMPhc0KbwCbAAaK6X+BmoCo/7NgZVSVsDnwBP5t
RWRJRin7MbLy0t6\n9OhxX8f08fHhfrctrr78bQdrzycz1KMuHz/qiSru19hjQ8F7
OpzdDPU6wPCvaWrfmKZZmpTG91n3\nuXQojD4XNCk0xjg2UA8YifEbf37bXs9on8k
pY1mmSkArwCfjg6o2sEEpNVRE/AoYl5aHi7fi+OZ4\nMi61K/PxSPfinRBE4ORa2P
wapCRA3/9Cx+fAytrSkWlaiVLQi6+zRSQGqAb0BBYDX+ezzWGgqVKq\noVKqLPAox
rMNAETktojUEBFnEXEGDgI6ITwgsUmpTFnuj42CJZPaUq5sMf7wjLsFaybC2qehem
OY\nug86T9MJQdPMoKBJIXNQeRCwVEQ2AXlOuJ8xGD0N411LgcAaETmllHpXKTX0f
gPW8mcwCC//epxL\n4fE872mHU7Xylg7p/p36AxZ3gKCt0PsdeHob1CzhE/dpmgUV
9PLRdaXUt0Af4GOllC0FSCgishnY\nfMeyObm07VHAWLR8fLnzHDsCQ5k7pCXOqVc
sHc79iY+Aza8ak0Ld1jD8G6hVisqDapqFFPRMYQzG\nb/z9RCQaqA7kereQZjl/nr
zJlzvPMaqtE493drZ0OPcncKPx7CDQG3rNhqd36ISgaYWkoNNcJGCc\nDC/zdQgQY
q6gtPsTFBrLq2uO4VGvKu8Pb1X8BpYTImHL63DiN6jtDpPWg4OrpaPStFKlhDzWqt
1O\nSGXKz36UK2vDtxPaYlemmA3CntlsvNU0IQJ6vAFdXwHrEjqdt6YVYToplADpB
uHF1Ue5Hp3Iqskd\nqV3FztIhFVxiFPz5Hzi+ChzcYPz/oI67paPStFJLJ4US4JOt
Z9kTdIsPHnHDy7m6pcMpuKBtsPFF\niAuD7jOh62vGusmaplmMTgrF3MbjN/hmzwX
Gd6jPuA71LR1OwSTdhj/fgGMroFZLeGyV8Q4jTdMs\nTieFYuzUjdvM+N9xvBpU4+
0hxWRA9vwO2PAixIZA11eNZwg2tpaOStO0DDopFFOR8SlM+dmfquXK\nsnhCG8raF
PGZQZNiYNtbcGQZ1GhuvM3Uqa2lo9I07Q46KRRDaekGXlh5hFtxyfz2bCdqVSriA8
sX\nfWD9NIi5Dl1eMt5dVKaIx6xppZROCsXQfzcHcuBiBJ+N9sCjXlVLh5O75DjYP
gf8vgf7JvDUVqjX\n3tJRaZqWB50Uipn/
+Qfz49+XebKLMyPbOlk6nNxd2mssfhN9DTpNg15vQZlylo5K07R86KRQjBy/\nFs0
bf5ygc2N73hzoYulwcpYSDzveAd9voXojeHILNOhk6ag0TSsgnRSKibDYJJ5d7k/N
irYsHNcG\nG+siOLB8ZT+sex6iLkGHqfDwHChbQkp/alopoZNCMZCSZuD5FUeITkx
h7XOdqV6hiD3glZIAu96H\ng4uhWgN4YhM4P2TpqDRNuw86KRQD72w8hd+VKBY81h
rXulUsHU5213xh3XMQcR7aTYbec8G2oqWj\n0jTtPumkUMT9cugqKw9dZWr3xgzxq
GvpcP6Rmgi7/wsHFkFlJ5i0ARp1t3RUmqb9SzopFGF+lyN5\ne8NJujWryYx+zS0d
zj+C/YxnB+FB0PZJ6Pse2FaydFSapj0AOikUUTdvJzF1xREcq5ZjwaOtsbYq\nArU
R0pLB50P4+0uoVBcm/A5NHrZ0VJqmPUA6KRRBSanpPLvcj8SUNH6Z3IEq5YtAXYHr
R4x3Ft0K\nhNYTod9/wa6IjW9omvav6aRQxIgIb/5xkuPBt/lmQluaOVj4skxaCvw
1D/Z+DhUdjPUOmvaxbEya\nppmNTgpFzLL9l1l7JJgXH25K/1a1LRtMyHHj2UHoSf
AcD/0+gHJFeFoNTdP+NZ0UipD9F8J5b1Mg\nvV0cmP5wU8sFkp4Kez+Dvz6B8vbw2
K/QvL/l4tE0rdDopFBEXItM4IWVR3C2L8/8sR5YWWpg+eZJ\nWDcVbp4A97HQ/yMo
X4yquWma9q/opFAEJKak8+xyf9IMwtJJXlSys8DAcnoa/D0ffD42XiIauxJc\nBhd
+HJqmWZROChYmIsxcG0DgzRh+eLwdjWpa4GngsED4YyqEHINWI2HAJ1DBvvDj0DTN
4nRSsLAl\nf11kw/EbzOjXnJ4tahXuwdPTYP9XxmcPbCvB6GXgOrxwY9A0rUjRScG
C9gTd4uM/zzDIrQ7P92hc\nuAe/ddb4VPJ1f3AZCoM+h4o1CzcGTdOKHJ0ULORyeD
z/98sRmjlU4pPR7ihVSAPLhnTjfEW73oey\n5WHUD+A6Agrr+JqmFWk6KVhAXHIaU
5b7YWWlWDLRi/JlC+ltCD9vPDsI9oXmg2DwfKjkUDjH1jSt\nWNBJoZAZDMKra45x
PiyOn5/qQH378oVxUDj0Dex8B2zsYMRScButzw40TbuLWct3KaX6K6XOKqXO\nK6V
m5bD+FaXUaaVUgFJqp1KqgTnjKQoW7T7P1lOhvDHQhYea1jD78colhMBPg2Drf6BR
D3jhELiP\n0QlB07Qcme1MQSllDSwC+gDBwGGl1AYROZ2l2VHAS0QSlFLPAfOAsea
KydJ2nA7ls+1BPNLakacf\namjegxkMcHgpXn5vQZlyMPwb8HhUJwNN0/JkzstH7Y
HzInIRQCm1GhgGmJKCiOzO0v4gMMGM8VjU\n+bA4pv96DDfHKnw4wu40u0kAAA/DS
URBVM28A8uRl2D9NLiyj+jqbbF/YgVULkIFejRNK7KUiJhn\nx0qNAvqLyDMZrycC
HURkWi7tFwI3ReT9HNZNAaYAODg4tF29evX/t3fnYVKU1x7Hvz+G3UHZBEWQ\nJcB
FBUUYEfSqgBgJcsFcvUpc0EhERVQwGvVxCSFeEzReN1SCcUMM4kpGAVHRcUkQGfZF
FARlU3ZG\nhn2Ykz+qnNvyDEzPTFe3M30+zzMP1VVvVZ3TPXB4662ut0wx5efnk5m
Z/C+H7dxnjJyxix0Fxohu\ntWhQK6KrdlZIk3XT+NlXz2ESy1v/huWZp5JZJ70mwE
nV55xKnnN6KE/OPXr0mG1mWSW1+0kMNEu6\nDMgCip3P0czGAmMBsrKyrHv37mU6T
05ODmXdt6z2FxpXj8tl0+5dvPibrpzaKqJvCm9bFfQOVn4I\nrXpAv8doV7cZ36Ug
51RLxeecap5zekhGzlEWhbVAs5jXTcN1PyKpF3AncJaZ7YkwnpR46N0veX/p\nBv7
Y/4RoCoIZzHkept0FGPR9GDpf6WMHzrkyibIozALaSGpJUAwGAJfENpB0MvBXgstM
GyKMJSWm\nLPyW0R8sZ8ApzbisawQ3VuWtgewb4Kv3oeWZ0G801Kv0N3A55yIUWVE
wswJJQ4FpQAbwjJktljQS\nyDWzbOABIBN4JRx4XWVm/aKKKZmWfvc9t7wyn5OPrc
sf+p+Q2IFlM5j3Irx9BxQWQJ+/QNYgqBLp\nHcbOuTQQ6ZiCmU0Bphyw7p6Y5V5Rn
j9Vtu3cy9XjcsmsUZUxl3WmRtWMxB38+3Xw5k2w7B1ofjr0\nfxzqR3x7q3Mubfwk
Bpork4L9hdwwYS7r8/bw0jVdaXx4zcQc2AwWTISpvwvmTe49CroM9t6Bcy6h\nvCg
k2Ki3l/Lxsk3cf8GJdDq2XmIOun09vDUMvpgCzbrC+U9AgyQ/VdU5lxa8KCTQpLlr
eerjlQzs\n1pyLTmlW8g4lMYOFr8LUW2HfLjj3Pjj1WqiSwMtRzjkXw4tCgixam8d
try2gS8v63N33+PIfMH8D\nvDUclr4FTU+B85+Ehm3Kf1znnDsELwoJsCl/D4PH5d
LgsOo8cWknqmWU8zr/otdh8m9h7w44ZyR0\nG+q9A+dcUnhRKKd9+wsZ8uIcNu/Yy
6vXnkbDzBplP9iOTUExWDIJmnQKegeN2iUuWOecK4EXhXK6\n960lfLZyCw9f3JEO
TY8o+4GWZAeXi3bnwdn3wGk3QYZ/PM655PJ/dcrh5VmreX7GN1x9RkvOP/mY\nsh1
k5xaYcissehWOPgmueBMaJ2BMwjnnysCLQhnNWbWVuyYt4ow2Dbmtdxkv8SydDG8O
g11bocdd\n8J/DIKNaYgN1zrlS8KJQBhu+3821L8zmqCNq8tivTqZqaQeWd22Fqbf
DgpegcQe4/HU4qkM0wTrn\nXCl4USilPQX7uWb8bLbvLmDcoC7UrV29dAf4chpk3w
g7NsJZt8EZt0DVUh7DOeci4kWhFMyMeyYt\nZu6qbTxxaSfaHXV4/Dvv2gbT7oR54
6HRCXDJRGjSMbpgnXOuDLwolML4mauYmLuaoT1a06fD0fHv\nuOy94BHX+euDnsFZ
v4Oq5bh11TnnIuJFIU4zV2zmD9mL6dmuEcPPaRvfTru/h3fuhDnj4Mh2MGA8\nHNM
52kCdc64cvCjEYd22XQx5cQ7H1q/NwwM6klEljrkRvvogmB5z+zo4fRh0vwOqJeiJ
qc45FxEv\nCiXYvW8/17wwmz0FhYwdmMXhNUu4ZXTPdnj3Hsh9Bhq0gavegWanJCd
Y55wrJy8Kh2Bm3PH6Qhau\nzeNvA7No3Sjz0Dus/Aj+cT1sWx08r6jnXVCtVnKCdc
65BPCicAhPf7KSN+au5eZz2tLr+MYHb7h3\nB7w3Aj4bC/VbwVVvw7Fdkxanc84li
heFg/hk2Sbum/I5vU84iqE9Wh+84df/hH8Mga3fQNch0PNu\nqF47eYE651wCeVEo
xqrNOxk6YQ6tG2Xyl4tOokpxA8t7d8L0kTBzDNRrDldOhhanJz9Y55xLIC8K\nB9i
5t4DBL+RSWGiMvTyLzBrFvEWrPoVJQ2DLV8E8yb1GQPXDkh2qc84lnBeFGGbGra8s
4Mv123n2\n111o0fCAf+j37YL374UZj0PdZsETTVuemZpgnXMuAl4UYjz54VdMXvg
td/yiHWe1PfLHG1fPgknX\nweZlkHVVMCNajTqpCdQ55yLiRSH0wdINPDDtC/qd1I
TBZ7b6/w37dkPOn+Bfj0KdJnD5G/CznqkL\n1DnnIuRFAVixMZ8bX5rLcUcdzqgLT
kQKB5bXzg7GDjYuhU4D4ef/CzVL8RA855yrYNK+KGzfvY/B\nL8ymWkYVxg7sTK3q
GVCwBz68Hz55CDIbw6WvQZteqQ7VOecil9ZFobDQGD5xPis37WD8oFNpWq82\nrJs
X9A42LIaOl8K590GtuqkO1TnnkiKti8Ij05fx3ufrGfFfx9OteR344D74+EGo3RAu
eRnanpvq\nEJ1zLqnStihMW/wdj0xfxoWdm3JFq+3wVE9YvxBOHAC/
+DPUqpfqEJ1zLunSsih8uX47N0+cR6em\nmfypwVT01ANQqz4M+Du0Oy/V4TnnXMq
kXVHI27mPweNyaV9tHeOrPEu1jxZA+wuhzwNQu36qw3PO\nuZSqEuXBJfWW9IWk5Z
JuL2Z7DUkTw+0zJbWIMp5CM4ZNyKXv9xOYYLdRLX8dXDQOLnzaC4JzzhFh\nT0FSB
vA4cA6wBpglKdvMlsQ0GwRsNbPWkgYAo4CLo4rpk8UruWnDY3TMWAHtzofzHoTDGk
Z1Ouec\nq3CivHzUBVhuZisAJL0E9Adii0J/YES4/CowWpLMzBIdzLzs0dy2cQQF1
WrDL5+F9v+d6FM451yF\nF2VROAZYHfN6DXDqwdqYWYGkPKABsCm2kaTBwGCAxo0b
k5OTU+pgtmyDHVU7sv+U6yncVA/KcIyK\nKD8/v0zvV0XmOacHzzkaFWKg2czGAmM
BsrKyrHv37mU4SndyctpTtn0rrpycHM85DXjO6SEZOUc5\n0LwWaBbzumm4rtg2kq
oCRwCbI4zJOefcIURZFGYBbSS1lFQdGABkH9AmG7giXL4QeD+K8QTnnHPx\niezyU
ThGMBSYBmQAz5jZYkkjgVwzywaeBl6QtBzYQlA4nHPOpUikYwpmNgWYcsC6e2KWdw
P/E2UM\nzjnn4hfpl9ecc85VLF4UnHPOFfGi4JxzrogXBeecc0VU0e4AlbQR+KaMu
zfkgG9LpwHPOT14zumh\nPDk3N7MjS2pU4YpCeUjKNbOsVMeRTJ5zevCc00MycvbL
R84554p4UXDOOVck3YrC2FQHkAKec3rw\nnNND5Dmn1ZiCc865Q0u3noJzzrlD8KL
gnHOuSKUsCpJ6S/pC0nJJtxezvYakieH2mZJaJD/KxIoj\n55slLZG0QNJ0Sc1TEW
cilZRzTLsLJJmkCn/7Yjw5S7oo/KwXS/p7smNMtDh+t4+V9IGkueHvd59U\nxJkok
p6RtEHSooNsl6RHw/djgaROCQ3AzCrVD8Fjur8CWgHVgfnA8Qe0GQKMCZcHABNTHX
cScu4B\n1A6Xr0uHnMN2dYCPgE+BrFTHnYTPuQ0wF6gXvm6U6riTkPNY4Lpw+Xjg6
1THXc6czwQ6AYsOsr0P\nMBUQ0BWYmcjzV8aeQhdguZmtMLO9wEtA/wPa9AeeD5df
Bc6WpCTGmGgl5mxmH5jZzvDlpwQz4VVk\n8XzOAH8ERgG7kxlcROLJ+WrgcTPbCmB
mG5IcY6LFk7MBh4fLRwDrkhhfwpnZRwTzyxxMf2CcBT4F\n6ko6OlHnr4xF4Rhgdc
zrNeG6YtuYWQGQBzRISnTRiCfnWIMI/qdRkZWYc9itbmZmk5MZWITi+Zzb\nAm0l/
VPSp5J6Jy26aMST8wjgMklrCOZvuSE5oaVMaf+
+l0qkk+y4nx5JlwFZwFmpjiVKkqoA/wdc\nmeJQkq0qwSWk7gS9wY8kdTCzbSmNKl
q/Ap4zswcldSOYzbG9mRWmOrCKqDL2FNYCzWJeNw3XFdtG\nUlWCLufmpEQXjXhyR
lIv4E6gn5ntSVJsUSkp5zpAeyBH0tcE116zK/hgczyf8xog28z2mdlK4EuC\nIlFR
xZPzIOBlADObAdQkeHBcZRXX3/eyqoxFYRbQRlJLSdUJBpKzD2iTDVwRLl8IvG/hC
E4FVWLO\nkk4G/kpQECr6dWYoIWczyzOzhmbWwsxaEIyj9DOz3NSEmxDx/G5PIugl
IKkhweWkFckMMsHiyXkV\ncDaApOMIisLGpEaZXNnAwPAupK5Anpl9m6iDV7rLR2Z
WIGkoMI3gzoVnzGyxpJFArpllA08TdDGX\nEwzoDEhdxOUXZ84PAJnAK+GY+ioz65
eyoMspzpwrlThzngb8XNISYD9wq5lV2F5wnDn/FnhK0nCC\nQecrK/J/8iRNICjsD
cNxkt8D1QDMbAzBuEkfYDmwE/h1Qs9fgd8755xzCVYZLx8555wrIy8Kzjnn\ninhR
cM45V8SLgnPOuSJeFJxzzhXxouAqpZKeNJmE80+RVDdcvlHS55JelNTvUE90Ddv/K
/yzhaRL\nkhGvcz/wW1JdpSTpTCCf4MFh7VMcy1Kgl5mtKeV+3YFbzKxvJIE5Vwzv
KbhKqaQnTUo6TNJkSfMl\nLZJ0cbj+a0n3S1oo6TNJrcP1R0p6TdKs8Of0cH2mpGf
D9gskXRBznIaSxhA89nmqpOGSrpQ0OmzT\nWNIbYQzzJZ0Wrs8Pw/wzcIakeeG+H0
nqGJPDJ5JOSvib59JapftGs3Nx6g2sM7PzACQdEbMtz8w6\nSBoIPAz0BR4BHjKzT
yQdS/AN2+OAu39oHx6nXuxJzOza8EmlPcxsk6QrYzY/CnxoZr+UlEHwjfNY\ntxPT
U5C0heABf8MktQVqmtn8cr8TzsXwnoJLVwuBcySNknSGmeXFbJsQ82e3cLkXMFrSP
IJnzxwu\nKTNc//gPO/4wj0GcegJPhvvtPyCG4rwC9JVUDbgKeK4U53IuLt5TcGlB
UjPgzfDlGDMbE8630Ae4\nV9J0MxsZbo8daPthuQrQ1cx+NFlPMudmMrOdkt4lmGT
lIqBz0k7u0ob3FFxaMLPVZtYx/BkjqQmw\n08zGEzwsMHae24tj/pwRLr9DzOQtMd
f23wWuj1n/o8tHJZhOMDUqkjIOuIQFsJ3gEeCx/kZw2WlW\nKXslzsXFi4KrlMInT
c4A/kPSGkmDDmjSAfgsvBz0e+DemG31JC0AbgKGh+tuBLLCweQlwLXh+nvD\n9osk
zSeYCzteNwE9JC0EZhPMLxxrAbA/HIQeDmBms4HvgWdLcR7n4ua3pDoXQ8GEPFlmt
inVsRQn\n7OHkAO18ZjEXBe8pOFdBhHdDzQTu9ILgouI9Beecc0W8p+Ccc66IFwXn
nHNFvCg455wr4kXBOedc\nES8KzjnnivwbFIXFXwi3ZA0AAAAASUVORK5CYII=\n"
,
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ngoU6LGNmG-g",
"colab_type": "code",
"outputId": "2a6e78c4-343d-4b0f-d182-b9255fe0b227",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"\n",
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 198,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.4310379821160394
for threshold 1\n",
"Test confusion matrix\n",
"[[ 785 4161]\n",
" [ 758 4296]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "jg4T3UzXtqbI",
"colab_type": "code",
"colab": {}
},
"source": [
"from imblearn.over_sampling import SMOTE\n",
"sm = SMOTE(random_state = 2) \n",
"X_train_res, y_train_res = sm.fit_sample(x_tr_tfidf,
y_train.ravel()) \n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "IDPdKf10tuiC",
"colab_type": "code",
"outputId": "832e807d-c52a-4538-b4d3-bb1ed6df5854",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 986
}
},
"source": [
"#Lets try the TF_IDF oversampling approach\n",
"\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(X_train_res,y_train_res)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"train_auc= results['mean_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='Test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='Test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 essay features')\n",
"show_most_informative_features(vectorizertf_essay,clf.best_estim
ator_,10)\n",
"print('top 10 title features')\n",
"show_most_informative_features(vectorizertf_title,clf.best_estim
ator_,10)\n",
"\n",
"\n",
"results.head()\n"
],
"execution_count": 200,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAZIAAAEaCAYAAAA7YdFPAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xd4FVX6wPHvm5veSYBAQl1AIKEE\niCDCShCUXlZRQdTF1WXXtRcUV
0VE3cWf69rW1cWGZZeAqIgFQdTYkSKhF0EhkKDUACkkucn5/TGT\ncBNSSW5uyvt5
nnnuzJkz556Tm9w3M+fMGTHGoJRSSp0tL09XQCmlVMOmgUQppVSNaCBRSilVIxpI\
nlFJK1YgGEqWUUjWigUQppVSNaCBRSjUIIrJHRIZ7uh7qTBpIVIXK+uMVkWki8rWn
6tQYiEgHETEi\n4l1L5fmLSIaIXFjGvidFZPFZljvbrueAMtLfLCO/EZHOLtsjROR
LETkpIodE5AsRGX82dalGnRNF\nZL8730OVpIFENQhicdvvq7vLr22lA5Ax5hSwEL
imVD4HMAV47SzeQ+zyjpYut4rHTwLeAl4H2gBR\nwCxgXHXLUvVbg/nDUfWTiMwQk
bdLpT0jIk/b68ki8ncRWS0iJ0TkPRGJcMl7noh8a/83vUFEEl32\nJYvIoyLyDZAN
/KaM998jIveKyFYROSYir4qIv72vmYh8YP8nfMxeb1NR+SJyrYhss/
+D/klE/uSS\nP1FE9ovI3SJyUEQOiMhEERktIjtF5KiI/NUlv5eIzBSR3SJyREQWu
bT9S/s1Q0QyRWSgfcwf7Pc/\nJiLLRaS9S3lGRG4UkR+BH8v4OF4DLhWRQJe0EVh/
58vsMu4RkTS7fTtEZFgZ5RT5LdAauAWYLCK+\nFeQtwQ5C/wQeNsa8ZIw5bowpNMZ
8YYz5YznHzBaRxSKy0K7fDyLSu5y8fiLylIik28tTdlqQ3dZo\n+
+eaKSLRVa23OkvGGF10KXcB9gDDS6VNA76211sDWUC4ve0NHAT62dvJQBrQAwgC3g
betPfFAEeA\n0VhfdhfZ2y1cjk0F4uxyfcqp32agLRABfAM8Yu+LBC4FAoEQrP+Ol
7gce0b5wBigEyDAEKwA09fO\nnwg4sf6r9gH+CBwC/meXHwfkAB3t/LcCq7D+G/cD
/gMssPd1AAzg7VKfCcAuoLtdn/uBb132G+AT\nu50B5XxeO4GrXLYXAE/Z612BfUC
0Sx06VfDZvwwsstt6BLjUZd/sos+x1DEG6Ax0s9c7VuN3bTaQ\nD0yy3/Mu4Oeizx
2X30Vgjv2zbQm0AL7FClpFn9N+T//tNKXF4xXQpX4v9h9vJpDhsmRjBxI7zzLg\nj
/b6WGCry75kYK7LdiyQBziAe4A3Sr3fcuD3LsfOqUL9/uyyPRrYXU7eeOBYqbpVVv
4S4FZ7PREr\nUDjs7RD7y3KAS/51wER7fRswzGVfa/uL0puyA8ky4DqXbS/7Z93e3
jbAhZXU935ghb0eah/fx97u\njBXkh1NGUC5VTiBwwqUt/wHec9k/m4oDySB73b8a
v2uzgVWl2n8A+K3LZ10USHYDo13yjgD2uHxO\nGkjqcNFLW6oqJhpjwosW4C+l9r8
GXGWvXwW8UWr/Ppf1vVj/bTYH2gOX2Ze1MkQkAxiM9YVb1rHl\nKV1+NICIBIrIf0
Rkr4icwLqcFG73G5RZvoiMEpFV9mWqDKzA1NwlyxFjTIG9nmO//uqyPwcIttfb\nA
+
+6tG0bUIDVV1CW9sDTLvmPYp0ZxZRX3zK8AQy1L+dMwgqq6wGMMbuA27C+sA+KSFI
Fl31+h3X2\n9ZG9/V9glIi0sLedWJ9jMREp2s7HOoOBkp9lVRS3zxhTCOzH/jxLic
b6rIvsLSefqgMaSFRtWAL0\nEpEeWGck/y21v63LejusL5rDWF8ab7gGKWNMkDFmr
kv+qkxPXbr8dHv9TqzLOQOMMaHABXa6lFW+\niPhhXXr7BxBlB82PSuWvjn3AqFLt
8zfGpFF2u/YBfyqVP8AY821Z9S2LMWYv8BVWQL+aUp3sxpj/\nGWMGYwUtAzxWTlG
/xwqIqSLyC9ZlQR/gSnt/KtZZlauOWAEmDdhht+fSiupbhuLP0h780IbTn6er\ndL
sNRVw/d53SvI5pIFE1ZqwRQ4ux+gpWG2NSS2W5SkRi7U7gOcBi+7/6N4FxYg0RdYg
1hDXRtUO8\nim4UkTZ2R/Z9WKOXwLr0lIPVoR0BPFhJOb5YfRmHAKeIjAIurmZdXL
0APFrUYS4iLURkgr3vEFBI\nyQEELwD3ikicnT9MRC47i/d9DbgJ6/JScVAXka4ic
qEdME9h/WwKSx8sIjHAMKx/CuLtpTdW0Cka\nvfUx0E1ErhYRH/vn+zfgbWOM01jX
mO4AHrAHMITagw8Gi8i8CureT0QuEWtU2m1ALlZfSGkLgPvt\nn2lzrH6rouHIvwK
RIhJW6U9K1QoNJKq2vAb05MzLWthp84FfAH+sUUAYY/ZhdTD/FeuLdR8wg+r/\nXv
4PWAH8hHXt/BE7/SkgAOvsZxXWl1+5jDEn7botAo5h/fe9tJp1cfW0ffwKETlp12G
A/V7ZwKPA\nN/alrPOMMe9ifVkn2ZfiNgOjzuJ938bqkP/UGHPAJd0PmIv18/gFq6
P63jKOvxpIMcasMMb8UrQA\nz2CfeRpjDtp1+xNWv8tmrP6zG4oKMcYsBq4A/oB1t
vAr1mfzXgV1f88+5phdj0uMMfll5HsEWAts\nBDYBP9hpGGO2YwWan+yfrV7ycjOx
/nFQqmZEpB2wHWhljDnhkp6M1Sn7kpvedw9wvTFmpTvKV3VH\nRGYDnY0xV1WWV9U
vekaiasy+ln0HkOQaRJRSTUOtTM+gmi77BrBfsUbNjPRwdZRSHqCXtpRSStWI\nXt
pSSilVIxpIlFJK1UiT6CNp3ry56dChQ43LycrKIigoqOYVaiCaUnubUltB29uY1WZ
b161bd9gY\n06KyfE0ikHTo0IG1a9fWuJzk5GQSExNrXqEGoim1tym1FbS9jVlttl
VE9laeSy9tKaWUqiENJEop\npWpEA4lSSqka0UCilFKqRjSQKKWUqhENJEoppWpEA
4lSSqka0UBSBUvWpzFo7mdsSjvOoLmfsWR9\nmqerpJRS9UaTuCGxJpasT+PedzaR
k18AbSEtI4d739kEwMQ+MZUcrZRSjZ8Gkko8vnyHFUSAzces\nR3fn5BfwyIdbOSc
qhCA/B0F+3gT5euPv44XI2T7eWymlGia3BhIRGYn1uFEH8JIxZm6p/e2wHtEa\nbu
eZaYz5SEQuwnokqC+QB8wwxnxmH5MMtMZ63jTAxfZjP90iPSOneH35fkfx+uHMPEY
/81WJvF4C\nQb7eBPo5CPL1JsjPm0BfR/FrsJ83gb7eLsHHYW9baYG+3nYeR3Gar6
Pug9OS9Wk8vnwHk9ue5L65\nnzFjRFc9+1JKlcttgUREHMBzwEXAfmCNiCw1xmx1y
XY/sMgY87yIxAIfAR2wnik9zhiTLiI9gOWA\n6zfZVGNMzSfPqoLo8ADS7GByfVcn
L+2wfmSRQb48+rueZOU6yc5zkpVXQFauk6zcArLznGTmOsm2\n0w6ePEV2bgFZedb
+rDwnVX0MjLeXuASW8oKPo1SA8j7zGD9vgu0g5+Mov2tML+UpparLnWck/YFd\nxp
ifAEQkCZgAuAYSA4Ta62FAOoAxZr1Lni1AgIj4GWNy3VjfMs0Y0bX4izXM10oL8HH
wwNhYRvZo\ndVZlGmM4lV9oB5vTwSXLDj6ZuU6yc08Hp6KAVBSIsvOcpGXknD4211
l8+a0qfB1exUGodPD56sfD\nxWV9f7DkpbzY6FDCA31oFuhbYTBSSjUtbntCoohMA
kYaY663t68GBhhjbnLJ0xpYATQDgoDhxph1\nZZTzZ2PMcHs7GYgECoC3gUdMGY0Q
kenAdICoqKh+SUlJZ92WjJx8fj1+ima+hRzL8yIqzJ/wAJ+z\nLs8dCo0htwBOOU+
/nipjO7fAcMoJpwoMufara54TuYXkF0JeIRSY8i+pBXhDsI8Q7CvWqw+n132F\nEP
s1yAdC7HRfR/3tP8rMzCQ4ONjT1agz2t7GqzbbOnTo0HXGmITK8nm6s30KMN8Y84S
IDATeEJEe\nxphCABGJAx4DLnY5ZqoxJk1EQrACydXA66ULNsbMA+YBJCQkmNqYVj
k5OZnLG/lU1IPmflZ8Ke+W\nOCfPbDl9KW/2+DiOZedxLCvfes3O41h2PhnZeezLy
iPjaD6Zufnllu3v40VEoC/hgb40C7LObKzF\nh2ZB1np4oA8RLuvBft510kfUlKYZ
B21vY+aJtrozkKQBbV2229hprq4DRgIYY74TEX+gOXBQRNoA\n7wLXGGN2Fx1gjEm
zX0+KyP+wLqGdEUjU2XG9lOdjX70qupQ3rnd0pcfnOQvJsAOMFXTOXM/IzuNo\ndh
7pGSc4lp3H8Zz8cvuMfBxCeKCvHYDs4BNkBx+X9fBAXzsA+RDq74OXV9WCjw4sUKr
m3BlI1gBd\nRKQjVgCZDFxZKk8qMAyYLyLdAX/gkIiEAx9ijeL6piiziHgD4caYwy
LiA4wFVrqxDU1O0Zfo48t3\nACeJCQ+o1perr7cXLUP9aRnqX+X3LCg0HM+pJPBk5
ZGRnc/uQ5kc22ulFxSWHX28BMJdA0+ps56i\nwLMl/TjzvvyJXGchhW10YIFSZ8tt
gcQY4xSRm7BGXDmAV4wxW0RkDrDWGLMUuBN4UURux+p4n2aM\nMfZxnYFZIjLLLvJ
iIAtYbgcRB1YQedFdbWiqJvaJYWKfGJKTk7l5aqLb38/hJUQEWWcUVPpQT4sx\nhp
O5zkoDz7HsPPYfy2ZzWj5Hs/PIcxaWWd5Tm62h3Tn5Bfz13U38euIU7SMDaRcRRPv
IQIL8PH0V\nWKn6y61/HcaYj7CG9LqmzXJZ3woMKuO4R4BHyim2X23WUTVMIkKov3
UZq31k1Y4xxpCTX2AFnqw8\nxj77dfG+AS0Mqw5Zl8Oy8wr4+7LtJY5tHuxHh8hA2
kUG0j4iiA7NA2kXEUj7yCCaBfrojaiqSdN/\ns1STISIE+lo3hcaEBxDjco/QoFaF
rDpkdQrFhAew7Lbfknokmz1Hsth7JLt4/bvdR3jnh5JdfSH+\n3rS3A0z7yMDiM5k
OzQOJCvGvcn+NUg2VBhLVZLkOLCgS4ONgxoiuhPr70CMmjB4xYWccdyq/gH1H\ns9
l7JJu9R7PZawebrQdOsHzLLzhd+m58vb1oFxFonc24BJr2kUG0aRag9+OoRkEDiWq
yznZggb+P\ngy5RIXSJCjljn7OgkAPHT7HXPoNJdQk03+w6UiJoeQnENAugfUQQ7S
LPDDaBvvrnqRoG/U1VTVpt\nDyzwdnjRNiKQthGBDO7SvMQ+YwyHMnOtM5kj2aQey
WKPfVazbNMBjmWXvAenRYgf7e1+GNczmfYR\ngYRrv4yqRzSQKFVHRISWIf60DPHn
3A4RZ+w/npNP6pFs9h7NsoNN0ZnMYd7+4VSJvKH+3rSPPH0m\nc/qsJoiWIX7l9sv
ofTPKHTSQKFVPhAX40LNNGD3blN8vs8cOMKn2+pa04yzfXLJfxs/ulyl9JrPz\nl5
M8sWIHp5yFOiGnqlUaSJRqACrrl0nPOHXGmUzq0Wy+3nWIU/ln3jvzfqrVyZ+TX8D
jy3doIFE1\nooFEqQbO2+FFO/sel992KbnPGMOhk7nsPZrNZS98V5y+P+v0pa+0jB
y+3XWYAb+JxKFDldVZ0LGH\nSjViIkLLUKtPJiY8oDj9T91Ojx4T4MqXvuf8uZ/yy
Adb2Zx2HHfNCq4aJz0jUaqJcL1vpujEI8DH\nwUPj4wj0c/BeSjqvfbeHl77+md+0
CGJC7xgmxEfToXmQR+ut6j8NJEo1EZXdNzO2VzTHs/P5aPMB\n3ktJ46lPd/Lkyp3
0bhvOhN7RjO3dmpYhVZ+MUzUdGkiUakIqu28mLNCHKf3bMaV/O9IzcvhgYzpL\n1q
cz54OtPPLhVgZ1bs6E+BhGxEUR4l+/Hu6mPEcDiVKqTNHhAUy/oBPTL+jEj7+eZOm
GdN5LSeeu\ntzZw37teDO8exfj4aBK7tsDP2+Hp6ioP0kCilKpUl6gQ7ry4K3dcdA
7r92Xw3vo0Pth4gA83HSDU\n35vRPVszPj6a8zpG6iSVTZAGEqVUlYkIfds1o2+7Z
jwwNpavdx1maUo6729IJ2nNPlqF+jOud2sm\nxMcQFx2q07g0EW4NJCIyEnga6yFU
Lxlj5pba3w54DQi388w0xnwkIhcBcwFfIA+YYYz5zD6mHzAf\nCMB61smtRscqKlX
nvB1eJHZtSWLXluTkFbBy26+8l5LGq9/s4cWvfqZTiyAmxFsjv9pH6sivxsxt\ngU
REHMBzwEXAfmCNiCy1H2ZV5H5gkTHmeRGJxQoMHYDDwDhjTLqI9MB6ymLRrbfPA38
EvrfzjwSW\nuasdSqnKBfg6GNc7mnG9ozmWlceyzb+wJCWNf36yk39+spM+7ayRX2
N6RdMixM/T1VW1zJ1nJP2B\nXcaYnwBEJAmYALgGEgOE2uthQDqAMWa9S54tQICI+
AERQKgxZpVd5uvARDSQKFVvNAvy5coB7bhy\ngDXyq6iTfvb7W3n4w23WyK/e0Vys
I78aDXcGkhhgn8v2fmBAqTyzgRUicjMQBAwvo5xLgR+MMbki\nEmOX41qmThKkVD0
VHR7An4d04s9DOrHz15O8l5LGeynp3PnWBvze9WJ4bBQTekeT2LUlvt460UZD\n5e
nO9inAfGPMEyIyEHhDRHoYYwoBRCQOeAy4uLoFi8h0YDpAVFQUycnJNa5sZmZmrZT
TUDSl9jal\ntoLn2nuuHyT0F3Zl+LPqgJMvtx3gw40HCPKBhChvBkZ7c04zL7xquZ
O+KX2+nmirOwNJGtDWZbuN\nnebqOqw+Dowx34mIP9AcOCgibYB3gWuMMbtdymxTS
ZnY5c0D5gEkJCSYxMTEGjUGIDk5mdoop6Fo\nSu1tSm0Fz7d3KFZHZ35BIV/vOsx7
69NYsfVXvth/itZh/ozvHc34+GhiW9fOyC9Pt7cueaKt7gwk\na4AuItIR68t+MnB
lqTypwDBgvoh0B/yBQyISDnyINYrrm6LMxpgDInJCRM7D6my/BnjWjW1QSrmR\nj8
OLoV1bMrRrS7LznHyy9VeWpqTz8tc/858vf6Jzy2AmxkczvncM7SIDPV1dVQ63BRJ
jjFNEbsIa\nceUAXjHGbBGROcBaY8xS4E7gRRG5HavjfZoxxtjHdQZmicgsu8iLjT
EHgb9wevjvMrSjXalGIdDX\n2x4uHMPRrDw+2mTN+fWPFTv5x4qd9G0XzoT4GMb0a
k3zYB35VZ+4tY/EGPMR1hBd17RZLutbgUFl\nHPcI8Eg5Za4FetRuTZVS9UlEkC9X
ndeeq85rz/5j2by/wQoqDy7dwpwPtjK4c3MmxEdzcVwrgv08\n3dWr9BNQStVrbZo
FckNiJ25I7MT2X07wXko6S1PSuWPRBvx9NjG8exQT42O44JwWOvLLQzSQKKUa\njG
6tQuk2MpQZF3dlXeox3ktJ48ONB/hg4wHCAnwY3bM1E+OjObdDBF5ewpL1aTy+fAe
T257kvrmf\nlZg2X9UeDSRKqQbHy0s4t0ME53aI4MFxcXz14yHeS0lnyfo0FqxOJT
rMn26tQ/lm12FynYXQ1nqk\n8L3vbALQYFLLNJAopRo0H4cXF3aL4sJuUWTlOlm57
VeWrE/js+0Hi/OkZVmvOfkFPL58hwaSWqYX\nFJVSjUaQnzXy69Vr+5dIfz/19PNS
0jNy6rpajZ4GEqVUoxQTHlC8fqrgdHq0S7qqHRpIlFKN0owR\nXQnwsc5EElsXAuD
jJcwY0dWT1WqUNJAopRqliX1i+PslPYkJD6B3hMHf24tCoHPLYE9XrdHRQKKU\nar
Qm9onhm5kX0qtNGN/dO4wWwX7csmA9WblOT1etUdFAopRqEpoF+fLU5Hh+PpLF7KV
bPF2dRkUD\niVKqyTjvN5HcPLQzb63bz3spZU4crs6CBhKlVJNyy7Au9GvfjPve3U
zqkWxPV6dR0ECilGpSvB1e\nPD05HhG4OWk9+QWFnq5Sg6eBRCnV5LRpFshjl/Ziw
74M/vnJTk9Xp8HTQKKUapJG92zNlP7teOGL\n3Xz942FPV6dB00CilGqyZo2NpVOL
YG5flMKRzFxPV6fBcmsgEZGRIrJDRHaJyMwy9rcTkc9FZL2I\nbBSR0XZ6pJ2eKSL
/KnVMsl1mir20dGcblFKNV4Cvg2en9OF4Tj53vbUBY4ynq9QguS2QiIgDeA4Y\nBc
QCU0QktlS2+4FFxpg+WM90/7edfgp4ALirnOKnGmPi7eVgOXmUUqpS3VuHcv+Y7ny
+4xCvfrPH\n09VpkNx5RtIf2GWM+ckYkwckARNK5TFAqL0eBqQDGGOyjDFfYwUUpZ
Ryq6vPa8/w7lHMXbadzWnH\nPV2dBkfcdSonIpOAkcaY6+3tq4EBxpibXPK0BlYAz
YAgYLgxZp3L/mlAQqljkoFIoAB4G3jElNEI\nEZkOTAeIiorql5SUVOM2ZWZmEhzc
dObpaUrtbUptBW1vmXnyDA98k4OfA2afH4C/t9RR7WpXbX62\nQ4cOXWeMSagsn6c
fbDUFmG+MeUJEBgJviEgPY0xFA7unGmPSRCQEK5BcDbxeOpMxZh4wDyAhIcEk\nJi
bWuLLJycnURjkNRVNqb1NqK2h7yxPZ6QhXvrSKT49F8Phlvd1fMTfwxGfrzktbaUB
bl+02dpqr\n64BFAMaY7wB/oHlFhRpj0uzXk8D/sC6hKaVUjQ3sFMlNOoVKtbkzkK
wBuohIRxHxxepMX1oqTyow\nDEBEumMFkkPlFSgi3iLS3F73AcYCm91Qd6VUE3WrP
YXK/TqFSpW5LZAYY5zATcByYBvW6KwtIjJH\nRMbb2e4E/igiG4AFwLSi/g4R2QP8
E5gmIvvtEV9+wHIR2QikYJ3hvOiuNiilmp6iKVQQuEWnUKkS\nt/aRGGM+Aj4qlTb
LZX0rMKicYzuUU2y/2qqfUkqVpU2zQOZe0osb//cDT36yk7tHdvN0leo1vbNd\nKa
XKMKZXa6b0b8vzX+zmm106hUpFNJAopVQ5Zo2No1OLYG5bqFOoVEQDiVJKlSPA18E
zk3UKlcpo\nIFFKqQrERody32idQqUiGkiUUqoS1wzUKVQqooFEKaUqISI8PqkXEU
G+3LJgPVm5Tk9XqV7RQKKU\nUlXQLMiXJ6+I5+cjWTz0/hZPV6de0UCilFJVVDSFy
qK1+1m6Id3T1ak3NJAopVQ13DqsC33bhXPf\nO5t0ChWbBhKllKoGawqVPjqFigsN
JEopVU1tI6wpVFL2ZfDkJzs9XR2P00CilFJnYUyv1kw+V6dQ\nAQ0kSil11maNi+U
3zYO4vYlPoaKBRCmlzlKgrzfPTulLRk4+MxZvbLJTqGggUUqpGiiaQuWz7Qeb\n7B
Qqbg0kIjJSRHaIyC4RmVnG/nYi8rmIrBeRjSIy2k6PtNMzReRfpY7pJyKb7DKfERF
xZxuUUqoy\n1hQqLZvsFCpuCyQi4gCeA0YBscAU+ymHru7HenJiH6xH8f7bTj8FPA
DcVUbRzwN/BLrYy8jar71S\nSlWdiPB/k3rTLMinSU6h4s4zkv7ALmPMT8aYPCAJm
FAqjwFC7fUwIB3AGJNljPkaK6AUE5HWQKgx\nZpX9SN7XgYlubINSSlVJRBOeQsWd
gSQG2Oeyvd9OczUbuEpE9mM9kvfmKpS5v5Iya9/GRfBkDziQ\nYr1uXOT2t1RKNTz
nd2rOjYlNbwoVtz6zvQqmAPONMU+IyEDgDRHpYYyp8a2iIjIdmA4QFRVFcnLy\n2R
WUcwyO/wKtrifTL5rkVtfD1l8g7V0IaFbTatZrmZmZZ/9za2CaUltB2+tO8T6GzuF
e3PPWenLT\nttMisG7HNHnis3VnIEkD2rpst7HTXF2H3cdhjPlORPyB5sDBCspsU0
mZ2OXNA+YBJCQkmMTExGpW\n3/ZkDzhunVhlBLQnPGevle4TCPFTwTcQfIPBN8hK8
w2204LAJ8h6LcrjEwg+AdBAxgckJydz1j+3\nBqYptRW0ve7WNT6b0c98xf/2+LHo
TwPxcdRdMPHEZ+vOQLIG6CIiHbG+7CcDV5bKkwoMA+aLSHfA\nHzhUXoHGmAMickJ
EzgO+B64BnnVH5YsdP30lzeASAPKzYfNiyMuCgrxqFCh2cHENPEEVB5+i/GUF\nq+
IAFQhetfTLunERfDoHWl0PT94Ew2ZBr8trp2ylmoCiKVRu/N8PPPnJTu4e2c3TVXI
rtwUSY4xT\nRG4ClgMO4BVjzBYRmQOsNcYsBe4EXhSR27E63qfZneiIyB6sjnhfEZ
kIXGyM2Qr8BZgPBADL7MV9\nwtoUn5FsaHctiTsetNPbwu2brfWCfCug5Gdbr0VLf
jbkZUKenZ5ftM9OL86fCadOwIkDJfM4c6pX\n16KgU5UzI9fg5Jpn7zfw5f+BMxev
lvlW29+/xSpfg4lSVTamV2u+
+tGaQmVQ5+YM6tzc01VyG7f2\nkRhjPsLqRHdNm+WyvhUYVM6xHcpJXwv0qL1aVmL
YLOuLNN/lS90nwEov4vCBgHBrqU2FBTUITi5L\n1uEzj6mCC358xFrJz4Elf4EfXr
fbGWH1DwXarwHNzkzz9qvdn4VSDdCscbGs2XOU2xemsOzW3xIZ\n3Dj/Ljzd2V7/F
f0X/ukc6zWsbd1d6vFygF+ItdSmwkLrbKes4PPG6dHUPzUfzm8Or7SPybcC2+Fd\n
kHMUso9aaeXxCTodZALLCTYBLoEoMAL8w8Hbt3bbqpQHFU2hMvG5b5ixeCMv/z6Bx
ngPtQaSquh1\nubUkJ8OUzZ6uTc15eZ2+pEWLkvvC2hZfykuN/O3pQBLWFv7gchXR
GCvw5ByzAkvOMSu4FG9nlEw7\nuM3edwwKK7hZyzek7OBTVgAq2vYPB8dZ/iprf5B
ys9joUP46uhuz39/K/G/3cO2gjp6uUq3TQKJK\nqsqlPLBGnvkFW0t4W6rMGMg9WU
bwcVlcA9Lx/db2qQyoaFS4X5h12a28YFNW2o8r4IPbrLa2QvuD\nlNv8/vwOfPXjY
f7+0Xb6d4wgLjrM01WqVRpIVEnuvpQnAv6h1tKsQ9WPKyyE3ON2oHENPGWdDR2D\n
oz9br6eOY43jqFifvS9aK/k5sOxuCI6y6hcac/ZnO0rZRITHL+vNyKe+5OYF6/ng5
sEE+jae36vG\n0xJVe+rjpTwvr9NnFhHVOK4THkJZAAAgAElEQVSwwAomJc587PWP
T88jWujlc/qYnGPw+nj7fb2t\nYNqsvRVYmnWAcJf1gGYN5r4g5VkRQb48NTmeqS9
9z0NLt/LYpF6erlKt0UCiGjcvh3UpK7CM6PPd\nc6eHdreddnpod0hr+N0LcGwvHN
tzetn2PmQfKVmGX2gZQaajvd5WR6+pEoqmUPnX57sY3KU543pH\ne7pKtaLcQCIiI
4AQY8ziUumTgOPGmE/cXTml3Kq8/qCL5sBvEss+5tQJyNhbMshk7IVDO2DnCihw\n
fUqeQGh02Wcyzdpbl8/0bKbJuXV4F77dfZi/vrOJ+LbhtI0I9HSVaqyiM5JZlD2zb
jLwPqCBRDVs\nZ9Mf5B8KrXpaS2mFhZD5a8kAU7S+
+3M4WWoSP+8AK6CUCDAdTqf5Bdewgao+8nF48fTkPox+
+itu\nSVpf51OouENFgcTPGHPGdCXGmMMiEuTGOilVd2qzP8jLC0JbW0v7gWfuzz8
FGaklA8yxPdbZzd5v\nIe9kyfxBLcoOMkWDALwcNauv8pi2EYH87ZKe3LxgPU+t3M
mMEQ17CpWKAkmoiHgbY0oM+hcRH6zp\nSZRS1eHjDy3OsZbSjLEGBGTsKRlgju2B/
Wtgy7tgCk7nLx4E0KFkgHEdBFAWvW+m3hjXO5qvfzzM\nv5N3M6hTc85vwFOoVBRI
3sGaB+smY0wWgIgEA0/b+5RStUUEgiKtJabfmfsLnHBif8kAUzwIYGkZ\ngwDCXIK
L/ZqRCt+/AM5cvW+mnnhwfCxr9h7ltoUpfHzbBUQENcyZHSoKJPcDjwB7RWQvIFjT
wr+M\n9RhcpVRdcXifPtsoS7mDALbDzuWlBgFAws/PWSv5ObDyIQ0kHmJNodKH3z3
3LTPe2sBLDXQKlXID\niX1Ja6aIPAR0tpN3GWOqOSWtUsrtqjII4J+nr8M7HS4jhU
7sh88egdgJENVDR5LVsbjoMO4d3Y2H\nGvAUKuUOFRCRS0TkEmAU0AUrmCSISC3PI
KiUcquiQQBhp6eySWl37en9Dj/46gl4YTA829c6Q0lP\nsfptVJ2Ydn4HhnVryd8/
2s6W9OOerk61VTTmbFypZTxwF7BRRC6sg7oppWrTsFnWfTKufAJgwr/g\nrh9h3NP
WKLFvnoZ5Q+Dp3rDiAUhbp0HFzYqmUAkP9OHmBevJzqtgYtN6qKJLW9eWlS4i7YFF
wAB3\nVUop5QaV3TfTb5q1ZB+F7R/C1iWw6t/w7TNW3tgJ1hKTUHtP41TFIoJ8eeq
KeKa+3PCmUKn2b4Mx\nZi/gU2lGQERGisgOEdklIjPL2N9ORD4XkfUislFERrvsu9
c+bod9l31R+h4R2SQiKSKytrr1V6pJ\n63W59WTP1vHWa1md7IER0PdquOptmLELJ
j4PUXGweh68fBE81QOWzYS931n9L6rWnN+5OX9J7MTC\ntft4f0N65QfUE9Wea0tE
ugG5VcjnAJ4DLgL2A2tEZKn9VMQi9wOLjDHPi0gs1tMUO9jrk4E4IBpY\nKSLnGFM
8kH6oMeZwdeuulKqmgGYQf6W1nDoOOz6Gre/B2lfg+
+chuBXEjrfOVNoN1Jska8Ftw8/h\n291HGtQUKhXNtfU+Z86/HQG0Bq6qQtn9sUZ5
/WSXlwRMAFwDicF6LjtAGFAUgicAScaYXOBnEdll\nl/ddFd5XKeUO/mHQ+wpryT1
pDSveusR6BPPqeRDUErqPs4JK+0E6/f5Z8nF48UwDm0JFTDmdaCIy\npFSSAY5iBZ
MrjDE3VliwNbnjSGPM9fb21cAAY8xNLnlaAyuAZkAQMNwYs05E/gWsMsa8aed7GVh
m\njFksIj8Dx+z6/McYM6+c958OTAeIiorql5SUVFF1qyQzM5Pg4KYz/1FTam9Tai
vUbnsdzhwijq6j\nxaFviTyyFkdhLnk+YRxufh6HWpxPRngPjJdng0pD/Hy/P+Dk+
Q25jP2ND5POqfqNirXZ1qFDh64z\nxiRUlq+izvYvitZFpA9wJXAZ8DPwdm1UEpgC
zDfGPCEiA4E3RKRHJccMNsakiUhL4BMR2W6M+bKM\n+s8D5gEkJCSYxMTEGlc2OTm
Z2iinoWhK7W1KbQV3tHeU9ZKXDbtW4rt1CdE7lxN9YLl1eazbGIj9\nHXS8ALzr/u
7thvj5JgJHfTayaN0+rrywb5WnUPFEWyu6tHUO1hf9FOAwsBDrDGZoFctOw7oTvkg
b\nO83VdcBIAGPMdyLiDzSv6FhjTNHrQRF5F+uS1xmBRCnlAb6Bdp/JeOuu+d2fWX
0qW5fC+jety2Nd\nx0DcRGuqfn1eS4UayhQqFV142w5cCIw1xgw2xjwLFFSQv7Q1Q
BcR6Sgivlid50tL5UkFhgGISHfA\nHzhk55ssIn4i0hHrhsjVIhJUdEOkPQPxxUA9
eYSfUqoEnwDrTOSSedborykLrSCy/UP43+XweGd4\nZ7q1nX/K07Wtl4qmUMnIzmf
GWxsoryvC0yq6cHkJ1pf/5yLyMZCENd9WlRhjnCJyE7AccACvGGO2\niMgcYK0xZi
lwJ9bEkLdj9XlMM9ZPaouILMLqmHcCNxpjCkQkCnjXnovGG/ifMebjarZZKVXXvP2
g\n60hrcebBz19YHfXbP4SNC8E3GM4ZaXXUdx5undkooOQUKq99u4dp9XAKlYr6SJ
YAS+z//CcAtwEt\nReR54F1jzIrKCjfGfIQ1pNc1bZbL+lZgUDnHPgo8WirtJ6B3Z
e+rlKrHvH2hy0XWMvYp+PlL6/LX\n9g9g82LwCYJzLraCSpeLwVcffzTt/A589eNh
/vbRdvp3jCQ2OrTyg+pQpWPKjDFZxpj/GWPGYfVV\nrAfucXvNlFKNn8MHOg+D8c/
AnTvhmves4cV7voa3psH/dYKFV8OmxdaQ4yZKRHh8Ui97CpUf6t0U\nKtUanGyMOW
aMmWeMGeauCimlmiiHt9UBP/ZJuHMHTPsQ+lwF+76Ht6+zgsqCK62Hc51qeBMb1lR
k\nsB9PXhHPT4ezeGjp1soPqEN6x5BSqv7xckCHwdYy6v+sYLJ1iTX6a8eH4PCFTh
dC7EToOgoCwj1d\n4zoxqHNzbhjSiX8n72Zwl+aM6x3t6SoBZzHXllJK1SkvL2g/E
EY9Brdvges+gf7T4dctsOTP1uiv\nNyfBD29YE0662rgInuwBB1Ks142LPNOGWnT7
RefQp104f31nE/uOZnu6OoAGEqVUQ+LlBW37w4hH\n4bZNcP1ncN4NcHgHLL0J/tE
F3vgdrJsPa162HiV8fJ91bNGjhRt4MCmaQgXglqT15Bd4fuJMDSRK\nqYZJBNr0g4
sfhls3wvRkOP9mOPozvH8rfHiHdVMk4FWYZx2Tn3N6Gv0GrG1EIH+7pCfrUzN4euW
P\nnq6OBhKlVCMgAtF9YPhsuGU9/OmrErtj0986vXF8f51WzV3G9Y7m8oQ2PJe8i2
93e3YydA0kSqnG\nRQRa9yrxaOHmWTtP7w9r44FKucfs8XF0bB7E7QtTOJqV57F6a
CBRSjVOLo8WPhgSZ6U5fK30RiLQ\n15tnJvfhWFY+dy/23BQqGkiUUo1Tr8thnPWY
4B1R48HLG3wC4TdVnXe2YegRE8bMUd1Yue0g8XM+\nYVPacQbN/Ywl60vPkes+Gki
UUo2X/WjhgjbnWZ3x+TnwzvVQWJ35Z+u/ZoE+eAkcz8nnYA6kZeRw\n7zub6iyYaC
BRSjUNrXrC6Mfhp2T48h+erk2t+seKnRTaV7U+3Gc97jgnv4DHl+
+ok/fXQKKUajr6\nXgO9JkPy362A0kikZ+QUr+cVlJ3uThpIlFJNhwiM/Se06ApvX
w8nDni6RrUiOjygeP0PXQvKTHcn\nDSRKqabFNwgufx3ysqzJIAvq10y6Z2PGiK4E
+FiXtHzsb/UAHwczRnStk/fXQKKUanpadLWehbL3\nG/j80crz13MT+8Tw90t6EmO
fgcSEB/D3S3oysU9Mnby/WwOJiIwUkR0isktEZpaxv52IfC4i60Vk\no4iMdtl3r3
3cDhEZUdUylVKqSnpfAf2mwdf/hJ2VPqev3pvYJ4ZvZl5Iz5gwvpl5YZ0FEXBjIBE
R\nB/AcMAqIBaaISGypbPcDi4wxfbAe6/tv+9hYezsOGAn8W0QcVSxTKaWqZuRj1m
iud6dDxj5P16bB\ncucZSX9glzHmJ2NMHtYz3yeUymOAomdGhgHp9voEIMkYk2uM+
RnYZZdXlTKVUqpqfPzhstesfpK3\nplnPk1fV5s4HW8UAriF+PzCgVJ7ZwAoRuRkI
Aoa7HLuq1LFF52mVlQmAiEwHpgNERUWRnJxc7QaU\nlpmZWSvlNBRNqb1Nqa2g7S2
tRecbiNv6f+yb/wd2d76+7irmBp74bD39hMQpwHxjzBMiMhB4Q0R6\n1EbBxph5wD
yAhIQEk5iYWOMyk5OTqY1yGoqm1N6m1FbQ9p4pEZadoO33L9D2/Mshdnwd1az2eeK
z\ndeelrTSgrct2GzvN1XXAIgBjzHeAP9C8gmOrUqZSSlXfRQ9DTD9470Y4+pOna9
OguDOQrAG6iEhH\nEfHF6jxfWipPKjAMQES6YwWSQ3a+ySLiJyIdgS7A6iqWqZRS1
eftC5fNB/GCRb+H/FOerlGD4bZA\nYoxxAjcBy4FtWKOztojIHBEpOm+8E/ijiGwA
FgDTjGUL1pnKVuBj4EZjTEF5ZbqrDUqpJia8Hfzu\nP/DLRlh+r6dr02C4tY/EGPM
R8FGptFku61uBQeUc+yhwxp1CZZWplFK1putIGHQbfPMUtDsfel3m\n6RrVe3pnu1
JKlXbhA1YQef9WOFQ3M+g2ZBpIlFKqNIc3THrZesLiot9b83KpcmkgUUqpsoRGw6U
v\nwqHt8OGd4KHH2DYEGkiUUqo8nS6EIffAhgWw/k1P16be0kCilFIVGXI3dBwCH9
0Fv2z2dG3qJU/f\n2e4x+fn57N+/n1Onqj5WPCwsjG3btrmxVvVLQ2yvv78/bdq0w
cfHx9NVUY2FlwMufQle+C0susZ6\n9rt/aGVHNSlNNpDs37+fkJAQOnTogIhU6ZiT
J08SEhLi5prVHw2tvcYYjhw5wv79+
+nYsaOnq6Ma\nk+CWMOkVeG2cNZJr0ivW0xYV0IQvbZ06dYrIyMgqBxFV/4kIkZGR
1TrLVKrKOgyCYQ/AlndgzUue\nrk290mQDCaBBpBHSz1S51fm3QpcRsPyvkPaDp2t
TbzTpQKKUUtXi5QW/ewGCo+Ct30POMU/XqF7Q\nQOIhR44cIT4+nvj4eFq1akVMTE
zxdl5e1R6uc+2117JjR/Xvuh07diyDBw8ukXbVVVexZMmS4m2n\n00nbtqcnWt6+f
TujRo2iS5cu9O3bl8mTJ3Pw4MFqv7dSDV5ghDW544kDsOQven8JTbiz3dMiIyNJ\n
SUkBYPbs2QQHB3PXXXeVyGOMwRiDl1fZ8f7VV1+t9vsePXqUjRs34u/vT2pqKu3at
av0mOzsbMaM\nGcOzzz7L6NGjAfj00085cuQILVu2rHYdlGrw2iTAxQ/DxzPhu3/B
+Td7ukYepWck9cyuXbuIjY1l\n6tSpxMXFceDAAaZPn05CQgJxcXHMmTOnOO/gwYN
JSUnB6XQSHh7OzJkz6d27NwMHDiz3bGHx4sVM\nnDiRK664gqSkpCrV6c0332TIkC
HFQQRg2LBhdO/evWaNVaohG/Bn6D4OPnkQUldVnr8R0zMS4KH3\nt7A1/USl+QoKC
nA4HFUqMzY6lAfHxZ1VfbZv387rr79OQkICAHPnziUiIgKn08nQoUOZNGkSsbGx\n
JY45fvw4Q4YMYe7cudxxxx288sorzJw584yyFyxYwN/
+9jfCwsKYOnUqd999d6X12bx5M/369Tur\ntijVaInAhOfglwvgrWvhz19BUHNP18
oj9IykHurUqVNxEAHry79v37707duXbdu2sXXr1jOOCQgI\nYNSoUQD069ePPXv2n
JEnPT2d1NRUBg4cSGxsLIWFhWzfvh0oe7STjoBSqhL+YXDZa5B9BN6ZDoWF\nnq6R
R7j1jERERgJPAw7gJWPM3FL7nwSG2puBQEtjTLi97zFgjL3vYWPMQjt9PjAEOG7vm
2aMSalJ\nPat65lBXN+gFBQUVr//44488/fTTrF69mvDwcK666qoy75Pw9fUtXnc4
HDidzjPyLFy4kMOHD9Oh\nQwfAOotZsGABDz30EJGRkRw7dnoEytGjR4mIiAAgLi6
O77//vraap1TjEh0Po+bCB7fD10/ABTM8\nXaM657YzEhFxAM8Bo4BYYIqIlLgeY4
y53RgTb4yJB54F3rGPHQP0BeKBAcBdIuI6J8GMouNqGkTq\nuxMnThASEkJoaCgHD
hxg+fLlZ13WggULWLlyJXv27GHPnj2sXr2aBQsWAJCYmEhSUhL5+fkAzJ8/\nnwsu
uACAq6++muTkZD7+
+OPisj7//PMGN32KUm7T71roeTl8/jf4+UtP16bOufPSVn9glzHmJ2NM\nHpAETKg
g/xSsx+2CFXi+NMY4jTFZwEZgpBvrWm/17duX2NhYunXrxjXXXMOgQWU+ULJSu3fv
5sCB\nAyUumXXp0gV/f3/WrVvHxIkTGTBgAP369SM+Pp41a9bw4IMPAhAYGMgHH3z
Ak08+SZcuXYiNjeXF\nF1+kefOmeT1YqTOIwNgnIbIzLL4OTv7i6RrVKTFuGgMtIp
OAkcaY6+3tq4EBxpibysjbHlgFtDHG\nFIjIxcCDwEVYl7xWA88ZY56wL20NBHKBT
4GZxpjcMsqcDkwHiIqK6ld6hFJYWBidO3euVpuq09ne\nGDTU9u7atYvjx49XntFF
ZmYmwcHBbqpR/aPtdY/ArFT6rbuTkyHnsKH3HIxX3f/91GZbhw4dus4Y\nk1BZvvo
yamsysNgYUwBgjFkhIucC3wKHgO+AAjvvvcAvgC8wD7gHmFO6QGPMPHs/CQkJJjEx
scT+\nbdu2Vbu/o6FNYlhTDbW9/v7+9OnTp1rHJCcnU/p3pDHT9rpRjDfhS25giPk
WEh+om/d04YnP1p2X\nttKAti7bbey0skzm9GUtAIwxj9p9IBcBAuy00w8YSy7wKt
YlNKWUqh/ir4Q+V8NX/4AfP/F0beqE\nOwPJGqCLiHQUEV+sYLG0dCYR6QY0wzrrK
EpziEikvd4L6AWssLdb268CTAT0STNKqfpl9OMQ1cMa\nEnx8v6dr43ZuCyTGGCdw
E7Ac2AYsMsZsEZE5IjLeJetkIMmU7KzxAb4Ska1Yl6eusssD+K+IbAI2\nAc2BR9z
VBqWUOis+Adb9JQV51s2KBfmerpFbubWPxBjzEfBRqbRZpbZnl3HcKayRW2WVeWEt
VlEp\npdyjeWcY/wws/gOsnA0jHvV0jdxG72xXSil36XEpnPtHa2LH7R96ujZuo4H
EQ2pjGnmAV155hV9+\nKX/Mel5eHhEREdx///0l0tu0aUNGRkbx9sqVK5k4cWLx9o
cffsgFF1xAXFwc8fHx3HPPPdVonVKq\n2IhHIboPvHsDHP3Z07VxCw0kHlI0jXxKS
gp//vOfuf3224u3Xac7qUxlgWT58uXExsaycOHCKpe5\nYcMGbrvtNl5+
+WW2bNnCunXriqdVUUpVk7ef9fwSAd6aBvmN71HQGkjqoddee43+/fsTHx/PX/7y\
nFwoLC3E6nVx99dX07NmTHj168Mwzz7Bw4UJSUlK44ooryj2TWbBgAXfccQetWrVi
9erVVXr/xx57\njAceeIAuXboA1txdN9xwQ622UakmpVkHmPgCHEiBFfd5uja1rr7
ckOhZy2bCL5sqzRZQ4ARHFX9k\nrXpaE7lV0+bNm3n33Xf59ttv8fb2Zvr06SQlJd
GpUycOHz7Mpk1WPTMyMggPD+fZZ5/lX//6F/Hx\n8WeUlZ2dTXJycvFZy4IFC+jfv
/LbbjZv3sx99zW+X3alPKrbaOsBWN8+C+0GQs9Jnq5RrdEzknpm\n5cqVrFmzhoSE
BOLj4/niiy/YvXs3nTt3ZseOHdxyyy0sX76csLCwSstaunQpF110Ef7+/lx22WW8\
n/fbbFNrTXOu08Up5wLAHoe0AeP9WOPyjp2tTa/SMBKp85pBTB1OGGGP4wx/
+wMMPP3zGvo0bN7Js\n2TKee+453n77bebNm1dhWQsWLGDVqlXF/RuHDh3iiy+
+YOjQocXTxoeHhwPWtPFFkzDGxcWxbt26\nKj2GVylVDQ4fmPQqvDAYFv0erl8Jvo
GerlWN6RlJPTN8+HAWLVrE4cOHAWt0V2pqKocOHcIYw2WX\nXcacOXP44YcfAAgJC
eHkyZNnlJORkcGqVavYv39/8bTxzzzzTIlp49944w0AnE4n//3vfxk61Ho0\nzN13
383DDz/M7t27AWvyxhdeeMHtbVeqSQiLgUtehINbYVnjeHaJBpJ6pmfPnjz44IMMH
z6cXr16\ncfHFF/Prr7+yb98+LrjgAuLj47n22mv529/+BsC1117L9ddff0Zn+9tv
v81FF12Ej49PcdrEiRNZ\nsmQJ+fn5zJ49m61bt9K7d2/69u1L9+7dmTJlCgB9+vT
hiSeeYNq0acTGxtKzZ0/27t1btz8IpRqz\nLsPhgrtg/Zuw/r+erk2NuW0a+fokIS
HBrF27tkTatm3b6N69e7XKaaiz4Z6thtres/lsdTbcxq1e\ntrewAF6fAPvXwh8/g
6gyJ/Oottpsq4hUaRp5PSNRSilP8HLApS+DfygsugZyMz1do7OmgUQppTwl\nJMoK
Jkd3WyO5GugVIg0kSinlSR1/C0Pvg82LYe0rnq7NWdFAopRSnjb4Dug8HD6eCekpn
q5NtWkg\nUUopT/Pygt/Ng6AW8NbvISej8mPqEQ0kSilVHwRFWjcrHt8P793YoPpL
3BpIRGSkiOwQkV0iMrOM\n/U+KSIq97BSRDJd9j4nIZnu5wiW9o4h8b5e50H6Mb4N
TG9PIX3vttezYsaPa7z127FgGDx5cIu2q\nq65iyZIlxdtOp5O2bdsWb2/fvp1Ro0
bRpUsX+vbty+TJkzl48GC137u0ESNGlHlDpavKZjhWqtFo\nNwCGPwTbP4BVz3u6N
lXmtilSRMQBPAdcBOwH1ojIUmPM1qI8xpjbXfLfDPSx18cAfYF4wA9IFpFl\nxpgT
wGPAk8aYJBF5AbgOcPtPfMn6NB5bto1fTuQSHR7AjBFdmdgn5qzLK5pGHmD27NkEB
wdz1113\nlchjjMEYg5dX2fH+1Vdfrfb7Hj16lI0bN+Lv709qamqVpkHJzs5mzJgx
PPvss4wePRqATz/9lCNH\njtCyZctq18HV8uXLK83zyiuv0LdvX1q1alWj91KqQRh
4I+z9Fj55ANqcC23P9XSNKuXOM5L+wC5j\nzE/GmDwgCZhQQf4pwAJ7PRb40hjjNM
ZkARuBkWLNKnghsNjO9xow8YySatmS9Wnc+84mDpzIxQBp\nGTnc+84mlqxPq/X32
rVrF7GxsUydOpW4uDgOHDjA9OnTSUhIIC4ujjlz5hTnHTx4MCkpKTidTsLD\nw5k5
cya9e/dm4MCB5Z4tLF68mIkTJ3LFFVeQlJRUpTq9+eabDBkypDiIAAwbNuyMm/5Wr
lzJ0KFD\nGTVqFF27duXGG2+k6IbXN998s3gK/L/
+9a/FxxQ9YGvXrl306NGD6667jri4OEaNGsWpU6fKnCp/\nxowZxMbG0qtXL33glm
p8RGDivyE0xnp+SfZRT9eoUu6ctDEG2OeyvR8YUFZGEWkPdAQ+s5M2AA+K\nyBNAI
DAU2ApEAhnGGKdLmWWeFojIdGA6QFRUFMnJySX2h4WFVXpJpchjy7aRk19QIi0nv4
DHlm1j\nWOfQKpVRkdzcXHx8fDh58iSZmZls376d559/nr59+wJw3333ERERgdPpZ
MyYMYwaNYpu3bpRUFBA\nVlYWJ0+e5Pjx45x77rncd9993HvvvTz//PPccccdZ7zX
m2+
+yaxZswgLC+P6668vfs5Ifn4+OTk5\nxT8Tp9OJMYaTJ0/yww8/EBcXV+nPKzs7m+
+//57Vq1fTpk0bJkyYQFJSEn369OG+++7jiy+
+IDQ0\nlPHjx7No0SJGjRpV/B6ZmZns2LGDl156iaeeeoqpU6eyYMECJk2aRM+ePf
nHP/5Br1692LdvHx98\n8AHff/89IkJGRsYZ9Tp16tQZn3dlMjMzq31MQ6btrf+CO
91C3x/u4dhLk9jU836Qqv3f74m21pfZ\nfycDi40xBQDGmBUici7wLXAI+A4oqOD4
Mxhj5gHzwJoipfSUAdu2bavy9B+/nMgtN702phDx8/PD\nz8+PkJAQgoOD6dSpE0O
GDCne//rrr/Pyyy/jdDpJT09n7969nHvuuTgcDoKCgggJCSEgIIBLL70U\ngIEDB/
LVV1+dUbf09HTS0tIYPnx4cVpaWhrdunXD19eXgICA4mOcTideXl6EhITg6+uLv79
/pW0N\nDAzkvPPOo0ePHgBMnTqVdevW4evry7Bhw4pnIb766qtZu3Ytl19+OSJCSE
gIubm5dO7cmfPOOw+A\nAQMG8OuvvxISElKinf7+/nh7e3PHHXcwZswYxo4dW2I+M
QB/f3/69OlTrc+gXk6h4Uba3oYgEVpB\n5Id3kui9Hn57Z5WO8kRb3XlpKw1o67Ld
xk4ry2ROX9YCwBjzqDEm3hhzEdZDKncCR4BwESkKgBWV\nWWuiwwOqlV5TQUFBxes
//vgjTz/9NJ999hkbN25k5MiRnDp15qM6XR/P63A4cDqdZ+RZuHAhhw8f\npkOHDn
To0IHU1NTi2YCLppUvcvToUSIiIoDT08pXRelnmlTnGSd+fn6VtsHHx4e1a9cWT0A
5ZsyY\nKpevVIOTcB30uBQ+ewT2fO3p2pTLnYFkDdDFHmXlixUslpbOJCLdgGZYZx
1FaQ4RibTXewG9gBXG\nuuD+OVD0aLHfA+
+5sQ0AzBjRlQAfR4m0AB8HM0Z0dfdbc+LECUJCQggNDeXAgQNV6pwuz4IFC1i5\nc
mXxtPKrV68uMa18UlIS+fn5AMyfP58LLrgAsM4gkpOT+fjjj4vL+vzzz9m2bdsZ77
Fq1SpSU1Mp\nKChg0aJFDB48mAEDBvD5559z5MgRnE4nSUlJJc64KuM6Vf7Jkyc5c
eIEY8eO5cknn2T9+vVn/fNQ\nqt4TgXFPQ8RvYPEfIMWayGQAABHqSURBVLPmIyXd
wW2XtowxThG5CVgOOIBXjDFbRGQOsNYYUxRU\nJgNJpuQ0xD7AV/Z/syeAq1z6Re4
BkkTkEWA98LK72lCkaHRWbY7aqqq+ffsSGxtLt27daN+
+PYMG\nDTqrcnbv3s2BAwdI+P/2zj86qvLM458vEBqKAhUKtFtbtMaCBAglpHYriG
3QqlXSblCppVJZKbUL\nBdtj4wH8AdaCXekR5ZRVtP5YG6BQOfgLFi1BBCkQSvghs
iv9AWjXBlYh/igKefaPexMnYcLMMDOZ\nJPN8zrkn733ve9/7fO+dzHPv+955nsKP
Annm5eWRm5tLZWUlJSUlbN26lSFDhtCuXTvy8vL4xS9+\nAQRDVk8//TRTp05l0qR
J5OTkUFBQwL333nvCcYqKipg4cSJ79+6luLiYK6+8EknMmjWLESNGYGZc\nccUVCT
1J1IXK79SpEytWrKC0tJSjR49SW1vL3LlzT+l8OE6r4WOnw1WPwYNfhWXjYezyIOB
jS6Lu\nFdO2vAwZMsQa88orr5xQF4sjR44kvE9rJlG9q1evtlGjRqXJmvg5lWu7Zs
2a1BvSgnG9rZCtj5vd\n1sXs9z87abNUaiW46Y/5Heu/bHccx2kNDP4OFFwLa+
+G117ItDUNcEfipIzi4uIGv453HCfFXPbv\n0LMf/O4GOPJGpq2pxx2J4zhOa6Hjx
2H0o3DsaDD5fvzDTFsEuCNxHMdpXXzy3OBNrn0vwwszY7dv\nBtyROI7jtDYGlAa/
MdkwD159NtPWuCNxHMdplVxyF3xqECyfCG/9NaOmuCPJEKkIIw+xQ6x/8MEH\nnHH
GGUyfPr1BfV2wxDqef/55Sko+in/5zDPPMHz4cPr3709BQUFKgiPu37+fq6++
+qRtamtrmT17\ndtLHcpw2T05uMF9iBMEdj0UP5dQcuCOJl+1L6PzAl+D2bvDLfNi
+JKnu6sLIb9u2jYkTJzJ16tT6\n9chwJ7GI5UhWrVrFeeedx+LFi+Pus6qqiilTpv
DQQw+xa9cuKisr6+NkJcOZZ54Z0w53JI6TAGec\nBSXz4Y2t8F8zMmaGO5J42L4En
ppMu5rXAYPD+
+GpyUk7k6Z49NFHKSoqoqCggBtvvJHa2lqOHTvG\n2LFj60Oxz5s3L2qI9caUl5dz
00030bt3bzZt2hTX8efMmcOMGTPIy8sDgrhXdVGCI5k+fTrXXXcd\n559/Pnl5eTz
88MNA4Axuuukm8vPzGTBgAEuXBlH/X3vtNQoKCgBYuHAhpaWlXHLJJeTl5XHLLbcA
\nUFZWRk1NDQUFBXz3u9+lpqaGSy+9lEGDBpGfn1/fl+M4If2ugPN/CJv+A+4+G/6
2LSU3u4nQUqL/\ntmxemAkfvt+w7sP3g/qBV6X0UDt37uTJJ59kw4YNdOjQgQkTJr
Bo0SI+//nPc/DgQXbs2AHA22+/\nTbdu3bjvvvu4//7767+gI3nvvfeoqKiof2opL
y+nqKgoLhumTZsWl707duxgw4YNHDlyhC9+8Ytc\nfvnlVFRUsHv3bqqqqqiurmbo
0KH1cbsiqaqqorKykpycHM4991wmTZrE7NmzWbhwYX3Sr8WLF9On\nTx+ee+45AA4
fPhyXXY6TVfTOD+JyvXeITh8c+uhmF1L+HRUNfyKJh8MHEqtPgueff57NmzdTWFhI
\nQUEBa9euZe/evZxzzjns2bOHyZMns2rVKrp27RqzrxUrVjBy5Ehyc3MZPXo0y5Y
to7a2FogelTeR\nSL11lJSUkJubS8+ePRk+fDibN2/mpZdeYsyYMbRv357evXtzwQ
UXsGXLlhP2LS4upkuXLnTq1Im+\nffuyb9+
+E9oMHDiQlStXUlZWxvr16+PS7ThZx5q76nO8938jfBKpu9ltBtyRxEPXzyRWnwRm
xvXX\nX18/X7Jnzx5mzJhB9+7d2b59O8OGDWP+/Pl8//vfj9lXeXk5K1eupE+fPgw
dOpTq6mrWrl0LRA8b\n36NHD6BlhY3v168fW7ZsoX///pSVlXHXXXfF3b/jZA0RN7
Udj9VErU8n7kji4Wu3Qk6j3CM5nYL6\nFFNcXMySJUs4ePAgELzdtW/fPqqrqzEzR
o8ezcyZM9m6dSvQMMR6JG+//TYbN27kwIED9WHj582b\n1yBs/OOPPw4ESayeeOIJ
LrroIgBuvvlmZs2axd69ewE4fvw4CxYsiGrv8uXLOXr0KNXV1axbt47C\nwkKGDRv
GokWLqK2t5c0332T9+vUNog6fjA4dOtTbBEHirdNOO42xY8fy4x//uF634zgRRNzU
/uHs\nH0WtTyc+RxIP4Rhj7erbaVfzRnBxvnZrWsYeBwwYwG233UZxcTG1tbXk5OS
wYMEC2rdvz/jx4zEz\nJDFnzhygYYj1TZs21b/xtWzZMkaOHNkge2BJSQnTpk1j/v
z53H777UycOJFBgwZhZlx22WWMGTMG\ngMGDB3PPPfcwbty4+gn8UaNGRbU3Pz+fC
y+8kEOHDnHHHXfQq1cvSktL2bhxIwMHDkQSc+fOpWfP\nnhw5ciSuczB+/HgGDhxI
YWEh11xzDWVlZbRr146OHTs26dAcJ6v52q3BnMiH73O8Xfikn6ab3WjI\nGqQBaZs
UFhZa4zH63bt3069fv4T6qampSUlq3dZCLL3Tp0+nR48eTJkypRmtis2pXNvWmYr1
1HG9\nbZDtS+CFmVT0/ldG/O/ClNzsSqo0s5jDCWl9IpH0deBegsRWC81sdqPtvwQ
uClc/DvQ0s27htruB\nywmG31YDPzIzk1QBfAqoe43qYjNrmWnDHMdxmouBVwVLRQ
WM2dmsh06bI5HUHpgPjAQOAJslrTCz\nV+ramNnUiPaTgMFh+Z+BrxCk2AV4CbgQq
AjXrzWzE18DcpqVO+
+8M9MmOI7TAkjnZHsR8JqZ/cnM\nPgAWAdEH2gPGAOVh2YBcoCPwMYLUu2+m2sBsG
NbLNvyaOk7zk05H8k/A/oj1A2HdCUj6HHAW8HsA\nM3sZWAP8LVxWmdnuiF1+LWmb
pBk6lR8/ALm5uRw6dMi/eNoQZsahQ4fIzc3NtCmOk1W0lLe2rgGW\nmtlxAEnnAP2
AunfXVksaZmbrCIa1Xpd0OrAMGAs81rhDSROACQC9evWioqKi8XY6d+7M/v37G+/a
\nJHVvTGULrVHv8ePHeffdd/nrXxOLhvrOO+
+c8Blpy7jetksmtKbTkbwOnBmx/pmwLhrXAD+MWP8m\nsNHM3gGQ9BzwZWCdmb0OY
GY1kn5DMIR2giMxsweAByB4aysVb2xkxZsfEWST3mzSCq63LZMJrekc\n2toM5Ek6
S1JHAmexonEjSX2BTwAvR1TvAy6U1EFSDsFE+
+5wvUe4Xw7wDaB5X09wHMdxGpA2R2Jm\nx4B/A1YBu4ElZrZL0kxJV0Y0vQZYZA0n
K5YCe4EdQBVQZWZPEUy8r5K0HdhG8ITzYLo0OI7jOLFJ\n6xyJmT0LPNuo7tZG67d
H2e84cEIwKTN7FxiSWisdx3GcZMiKX7ZLOgz8T6PqrsDhJtabKvcADqbA\npMbHPt
W2TW07mbZY65nUG6tdtO3x1MWjt7Ve22h1/lk+seyf5cTpCnQzs0/GbGlmbX4BHoh
VF7l+\nkvKWdNlzKm2b2nYybQlqb1a9sdrFcx1PVW9rvbYJXk//LDeT3mz7LGdL9N
+n4qh7Ko5yqkikz5O1\nbWrbybTFWs+k3ljt4rmO0eqaU29zX9todf5Zjn28U8U/y
1HIiqGtVCFpi8URwKytkE16s0kruN62\nTCa0ZssTSap4INMGNDPZpDebtILrbcs0
u1Z/InEcx3GSwp9IHMdxnKRwR+I4juMkhTsSx3EcJync\nkaQISSMkrZO0QNKITNu
TbiR1lrRF0jcybUu6kdQvvK5LJf0g0/akG0klkh6UtFjSxZm2J51IOlvS\nQ5KWZt
qWdBH+rz4aXtNr03EMdySApIcl/V3Szkb1X5e0R9JrkspidGPAOwQJuQ6ky9ZkSZF
WgJ8C\nS9JjZepIhV4z221mE4GrCDJ3tlhSpHe5md0ATASuTqe9yZAirX8ys/HptT
T1JKj9WwRpOm4Arjyh\ns1TY429tgaThBE7gMTPLD+vaA/9NRKpggiyO7YGfN+rie
uCgmdVK6gXMNbO0eP5kSZHWQUB3Aqd5\n0Myebh7rEycVes3s72Gg0R8Aj5vZb5rL
/kRJld5wv3uAJ8xsazOZnxAp1rrUzEqby/ZkSVD7KOA5\nM9sm6Tdm9u1U29NSElt
lFDN7UVKfRtX1qYIBJC0CRpnZzwnC1zfFWwRRilskqdAaDt11Bs4D3pf0\nrJnVpt
PuUyVV19bMVgArJD0DtFhHkqLrK2A2wZdPi3QikPL/21ZFItoJnMpnCCKmp2UUyh1
J00RL\nFfylphpL+hZwCdANuD+9pqWchLSa2TQASeMIn8TSal3qSfTajiAYHvgYja
JZtxIS0gtMAoqBrpLO\nMbMF6TQuxSR6bbsDPwMGS7oldDitlaa0zwPul3Q56Qkb4
44kVZjZ74DfZdqO5sTMHsm0Dc2BmVUA\nFRk2o9kws3kEXz5tHjM7RDAX1GaxIP3G
99J5DJ9sb5pEUgW3drJJK7jetqw3m7Q2JmPa3ZE0TVyp\ngtsI2aQVXG9b1ptNWhu
TMe3uSABJ5QQ5478g6YCk8dZEquBM2pkKskkruN62rDebtDampWn3138d\nx3GcpP
AnEsdxHCcp3JE4juM4SeGOxHEcx0kKdySO4zhOUrgjcRzHcZLCHYnjOI6TFO5InFa
JpL9I\n6pFsmwSO904q+mkLSJoi6eOZtsNpObgjcZwWhqSkY+CFIcXTxRQgIUeSZn
ucDOOOxGnRSFouqVLS\nLkkTomzvI+lVSU9I2q0gi2Hkl9wkSVsl7ZDUN9ynSNLLk
v4oaYOkL8Rpy88kVUnaKKmXpNMl/VlS\nTri9S926pApJ90raJmmnpKKwTecwKdGm
8PijwvpxklZI+j3wgoKMmy9KekZBoqIFktqFbX+lIDvl\nLkl3RNj3F0lzJG0FRku
6QdLm0OZldedF0iNhHxsl/Sk81sPh+Xskor+Lw/O0VdJvJZ0maTLwaWCN\npDVNtY
tmT5yX3GmNmJkvvrTYBTgj/NsJ2Al0D9f/AvQA+hBkp/xKWP8w8JOINpPC8o3AwrD
cBegQ\nlouBZWH508CzTdhhwBVh+W5gelj+NVASlicA94TlCuDBsDwc2BmW7wK+E5
a7ESQi6gyMIwj7Xad3\nBPAP4GyCpEyrgdJG56R9eJyBEXpvjrC5e0T5zohz8QiwC
BBBvoojwACCG8tKoCA8ty8CncN9fgrc\nGnnuw3KsdjdHO5+
+tK3Fn0icls5kSVXARoLIpnlR2uw3s/Vh+T+BCyK21YX2ryRwOgBdgd8qSFP6\nS6
A/gJm9YWaXNWHHB0BdJsjIvhbyUYju7xE4ljrKw35fBLpI6gZcDJRJ2kbgBHKBz4b
tV5vZ/0Xs\nv8mCVLDHw77qdF0V3uX/MbT9vIh9FkeU8yWtk7QDuLZOZ8hTZmbADu
BNM9thQV6ZXaG288N+14e2\nXgd8Lsp5idVucZR9nDaG5yNxWiwKEkoVA182s/ckV
RB88TamccC4yPWj4d/jfPR5nwWsMbNvKsgy\nVxGHOR+GX7wN+jKz9eHw2gigvZlF
5tCOZpeAfzGzPZEbJH0JePckOgBM0lnAT4ChZvZWOBQVeU4i\n+3iE4GmpSkESshE
R2+rOS21EuW69Q6hxtZmN4eQoRrvGmpw2iD+ROC2ZrsBboRPpS3D3G43PSvpy\nWP
428FIc/dblaRiXtJXwGEH63V83qr8aQNIFwGEzO0wQmXWSJIXbBp+k3yIFIcHbhX2
9RDAs9y5w\nWFIv4NKT7H868LdwDufaBDVtBL4i6ZzQzs6Szg231YR9x2rnZAnuSJ
yWzEqgg6TdBDnENzbRbg/w\nw7DdJ4Bfxej3buDnkv5IxFO5pE9LOpVUuk+Exy1vV
P+P8BgLgPFh3SwgB9guaVe43hSbCdI27wb+\nDDxpZlUEQ1qvEjiv9U3vzgzgD2Gb
VxMRZGbVBE62XNJ2gpDlfcPNDwArJa2J0c7JEjyMvNOqCYem\nnjaz/AzaUAqMMrO
xEXUVBJP+W06xzxHh/t9IiZGOk0Z8jsRxkkDSfQTDS01N0jtOm8efSBzHcZyk\n8D
kSx3EcJynckTiO4zhJ4Y7EcRzHSQp3JI7jOE5SuCNxHMdxksIdieM4jpMU/w/EJFp
HjQPAeQAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 essay features\n",
"\t-24.6151\tgroup \t\t-2.7326\t2nd
\n",
"\t-24.6151\tgrown \t\t-3.3130\tspan
\n",
"\t-24.6151\tguid \t\t-3.3887\tsnapshot
\n",
"\t-24.6151\tguidanc \t\t-3.6543\tsnap
\n",
"\t-24.6151\tguy \t\t-3.7046\tspanish
\n",
"\t-24.6151\tgymnasium \t\t-3.8107\tslate
\n",
"\t-24.6151\tgymnast \t\t-4.0359\tslim
\n",
"\t-24.6151\thabitat \t\t-4.2644\tsleepi
\n",
"\t-24.6151\thair \t\t-4.3641\t21
\n",
"\t-24.6151\thaiti \t\t-4.4104\t26
\n",
"top 10 title features\n",
"\t-24.6151\teager \t\t-2.7326\t201
\n",
"\t-24.6151\tear \t\t-3.3130\tmayo
\n",
"\t-24.6151\tearth \t\t-3.3887\tmarket
\n",
"\t-24.6151\tearthworm \t\t-3.6543\tmarkerboard
\n",
"\t-24.6151\teast \t\t-3.7046\tmaze
\n",
"\t-24.6151\teat \t\t-3.8107\tmalon
\n",
"\t-24.6151\teater \t\t-4.0359\tmaniac
\n",
"\t-24.6151\tecesitan \t\t-4.2644\tman
\n",
"\t-24.6151\teclips \t\t-4.3641\t170
\n",
"\t-24.6151\tecmc \t\t-4.4104\t1950s
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.050014</td>\n",
" <td>0.000941</td>\n",
" <td>0.011713</td>\n",
" <td>0.000426</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.796033</td>\n",
" <td>0.808069</td>\n",
" <td>0.816513</td>\n",
" <td>0.815185</td>\n",
" <td>0.811920</td>\n",
" <td>0.809544</td>\n",
" <td>0.007359</td>\n",
" <td>1</td>\n",
" <td>0.829831</td>\n",
" <td>0.825936</td>\n",
" <td>0.822284</td>\n",
" <td>0.824205</td>\n",
" <td>0.825393</td>\n",
" <td>0.825530</td>\n",
" <td>0.002489</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.050672</td>\n",
" <td>0.001038</td>\n",
" <td>0.011634</td>\n",
" <td>0.000429</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.795814</td>\n",
" <td>0.807392</td>\n",
" <td>0.815821</td>\n",
" <td>0.814635</td>\n",
" <td>0.811324</td>\n",
" <td>0.808997</td>\n",
" <td>0.007213</td>\n",
" <td>2</td>\n",
" <td>0.829152</td>\n",
" <td>0.825378</td>\n",
" <td>0.821734</td>\n",
" <td>0.823657</td>\n",
" <td>0.824808</td>\n",
" <td>0.824946</td>\n",
" <td>0.002444</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.049570</td>\n",
" <td>0.000827</td>\n",
" <td>0.011617</td>\n",
" <td>0.000386</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.795451</td>\n",
" <td>0.806301</td>\n",
" <td>0.814800</td>\n",
" <td>0.813697</td>\n",
" <td>0.810367</td>\n",
" <td>0.808123</td>\n",
" <td>0.006994</td>\n",
" <td>3</td>\n",
" <td>0.828091</td>\n",
" <td>0.824511</td>\n",
" <td>0.820858</td>\n",
" <td>0.822786</td>\n",
" <td>0.823900</td>\n",
" <td>0.824029</td>\n",
" <td>0.002381</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.049663</td>\n",
" <td>0.000343</td>\n",
" <td>0.011757</td>\n",
" <td>0.000428</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.794674</td>\n",
" <td>0.804305</td>\n",
" <td>0.813005</td>\n",
" <td>0.811978</td>\n",
" <td>0.808668</td>\n",
" <td>0.806526</td>\n",
" <td>0.006659</td>\n",
" <td>4</td>\n",
" <td>0.826153</td>\n",
" <td>0.822929</td>\n",
" <td>0.819233</td>\n",
" <td>0.821199</td>\n",
" <td>0.822258</td>\n",
" <td>0.822354</td>\n",
" <td>0.002274</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.050008</td>\n",
" <td>0.000846</td>\n",
" <td>0.011582</td>\n",
" <td>0.000380</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.792125</td>\n",
" <td>0.799685</td>\n",
" <td>0.808620</td>\n",
" <td>0.808012</td>\n",
" <td>0.804214</td>\n",
" <td>0.802531</td>\n",
" <td>0.006105</td>\n",
" <td>5</td>\n",
" <td>0.821325</td>\n",
" <td>0.818819</td>\n",
" <td>0.815024</td>\n",
" <td>0.817115</td>\n",
" <td>0.818057</td>\n",
" <td>0.818068</td>\n",
" <td>0.002066</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.050014 0.000941 ...
0.825530 0.002489\n",
"1 0.050672 0.001038 ...
0.824946 0.002444\n",
"2 0.049570 0.000827 ...
0.824029 0.002381\n",
"3 0.049663 0.000343 ...
0.822354 0.002274\n",
"4 0.050008 0.000846 ...
0.818068 0.002066\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 200
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vDhYYMrAtzPV",
"colab_type": "code",
"outputId": "63620bc1-57e8-426a-952a-292585014d5f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
}
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(X_train_res),axis=1)
\n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_tfidf.todense())
,axis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds =
roc_curve(y_train_res, y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"test AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['TF_IDF(over
sampling)',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 201,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xd4VGXax/Hvk5DQAwmdBEgIPQkg\nvYmhF1cFRRRXxcrqilgXXRXb6
qsu6roW7CzYABuKikiNoHSQXoMJEDqk98zM/f5xJkMCCQkhk0m5\nP9eVy8zMOWfu
k+D8cs5zzv0YEUEppZQC8PJ0AUoppcoPDQWllFIuGgpKKaVcNBSUUkq5aCgopZRy\
n0VBQSinloqGglFLKRUNBVRjGmFhjTIYxJjXP19vO124zxtidzyUbY7YaY/6SZ91g
Y4zkWS/WGPN4\nAe9xmzFmuzEm3Rhz3BjzrjGmfp7XnzXG5Di3kWiMWW2M6XuBms+
ta0tuXcaYSGNM3AXW7WeMWW6M\nSTHGJBljfjDGdHK+9tc8+5JhjHHk/bk4lxngrC
/JGBNvjPndGNOzJD97VXVoKKiK5ioRqZPna3Ke\n19aISB2gPjADmJv3A92pvnOZc
cA0Y8yw3BeMMY8ArwD/AOoBfYBWwBJjjG+ebcxzbqMhsAL4qoia\n89b1MfClMcb/
Qis4g2Yx8D3QHAgBtgK/G2Nai8jnuT8DYBRwNO/PxRjjB/wIvAUEAIHAc0BWEbWq\
nKk5DQVU6IuIAPgVqA20LWWYjsBPoCuD8EH0OuF9EFolIjojEAuOBYODmArZhAz4H
Ao0xjYpZ10yg\nJhBaxOL/Bj4Rkf+KSIqIxIvIU8Ba4Nmi3gto53zPOSJiF5EMEVk
sItuKsa6qwjQUVKVjjPEGbgdy\ngIOFLNMHCAeinU/1A2oA3+ZdTkRSgYXAMM7hPH
q4FTgDJBSjrmrAXUAqsP8Cy9Vy1lPQEciXBdVS\ngH2A3Rgz2xgzqqgjE6VyaSioi
uY757n83K+787zWxxiTCGQCrwI3i8jJc9Y/bYzJANZgnWL6zvl8\nQ+C086//cx1z
vp5rvPN9MoC7gXGFrHduXceBCcBYEUm6wPIBWP9vHitGLQUSkWRgACDAh8ApY8wC\
nY0yTotZVVZuGgqpoxohI/TxfH+Z5ba2I1Af8gQXA5QWs3xCoAzwCRAI+zudPAw2d
f82fq5nz9Vxf\nOt+nCbAD6F5EzWudtTYUkT4isrSI5RMAh/N9i6qlUCKyW0RuE5E
grKOi5sAbxVlXVV0aCqrScZ7y\nuRe4xRhzWQGv20Xkdawjir87n16DNQh7bd5ljT
G5A7nLCtjOaWAS8KwxpqAP8JLWn+as5/oCXh5f\nUC3F2OYeYBZWOChVKA0FVSmJS
DzwEfD0BRZ7GZhqjKnhPJ3zHPCWMWakMcbHGBOMdQ4/DmvguqD3\n2Qv8Akwtaa3G
mBrnfBngcWCiMWaKMaauMcbfGPMC0NdZZ1Hb7GCMecQYE+R83ALr1NXaktapqgYN\
nBVXR/HDOfQrzL7DsG8BoY0znQl7/CetUzd0AIvJv4Ams8YhkYB1wGBgiIhe6lHM6
MMkY0/gi9wWs\nS0UzzvkKFZHfgBFYRy7HsAbMLwMGiEihg9R5pAC9gXXGmDSsMNi
BddpMqUIZnWRHKaVULj1SUEop\n5aKhoJRSykVDQSmllIuGglJKKZeCbtQp1xo2bC
jBwcElWjctLY3atWuXbkHlnO5z1aD7XDVcyj5v\n2rTptIgU2aOrwoVCcHAwGzduL
NG6UVFRREZGlm5B5Zzuc9Wg+1w1XMo+G2MK7AN2Lj19pJRSykVD\nQSmllIuGglJK
KRcNBaWUUi4aCkoppVzcFgrGmJnGmJPGmB2FvG6MMW8aY6KNMduMMd3cVYtSSqni\
nceeRwixg5AVeH4U1f25brJ7077qxFqWUUsXgtvsURGSlsx99Ya7BmphcgLXGmPrG
mGYiUtAUhEop\nVSVlZNvZvXMz2ZvnklQnHGvCQPfx5M1rgVi96nPFOZ87LxSMMZO
wjiZo0qQJUVFRJXrD1NTUEq9b\nUek+Vw26z5VHWo6wL8HOkTOJtDzzG5dnr6KbVz
QOMXxf/za373OFuKNZRD4APgDo0aOHlPSOPr0D\nsmrQfa4aKss+H0/KZH1sPBti4
tkSc5wWp1cy1us3JnttwcfYOVU7lAPt/kGjfrfgvzvG7fvsyVA4\nArTI8zjI+ZxS
SlVKIkLM6TQ2xMazPiaB9bFniItPo6fZy3jf33ncax21fdLIrtkY0/keuGwCjZqE\
n08gYawO7Y9xeoydDYQEw2RgzF2vawCQdT1BKVSZ2h7D7WLIzBOLZEJvA6VRrZtdu
tU7xT791XF5/\nBXUzjyE+tTEdr4LO4/FtHQle3h6p2W2hYIyZgzUi0tAYEwc8A/g
AiMh7wEJgNBANpAO3u6sWpZQq\nC1k2O9viklgfY4XA5oMJpGTZAAisX5NRId6Mqb
aVsNM/U+PUNkjygtaR0Pk5TIcroXodj9YP7r36\naEIRrwtwn7veXyml3C0lM4dNB
xPYEBvPhpgEtsQlkm1zANC2cR2u7tqcvi1q0t+2Hv/o/0H0chA7\nNI2A4S9CxDio
29TDe5FfhRhoVkqp8uB0ahYbYuKtgeHYeHYdTcYh4O1lCA+sx8S+regZHECPlvUI\
nOLUOtr0LixdAdgr4BUK/
+6HzDdCkk6d3pVAaCkopVQARIS4hwzkWYJ0O+vN0GgA1fLy4rIU/kwe3\npVdwAJe
1rE/t6tXgxC7YNgMWfQUpR8G3LnS6BrrcAK0GgFf57yykoaCUUoDDIew/mcr63EHh
mHiO\nJ2cC4FejGj2DAxjfswU9gwOICKyHbzXnB3zKcdj0LmydBye2g/GGNkNhxAv
QbhT41vLgXl08DQWl\nVJWUY3ew40iS60hg48EEEtNzAGjiV52ewQH0CrG+2jWui5
eXObtyVirs/BG2zoWYX0Ec0LwbjHwF\nwq+DOkXOelluaSgopaqE9GwbfxxKdIXAH
4cSycixAxDSsDYjOjWlZ0gAvYIDaBFQE2NM/g3YbRAT\nBdu+hN0/QE461GsJAx62
xgkatSv7nXIDDQWlVKWUmJ7NhtgE13jAjiNJ2ByCMdCpmR839GxBr5AA\negT707h
ujYI3IgLHt1lBsP0rSD0B1etBxPXQ5UZo0adCjBNcDA0FpVSlcCzp7KDwhpgE9p5I
AcDX\n24suLeoxaWBreoYE0L2VP341fC68saQjsP1La5zg1G7w8oG2w60B47YjwKe
QEKkENBSUUhWOiHAs\n1cHc9YesG8Vi44lLyACgTvVqdGvlz1VdmtEzOIAuLepTw6
cYdwdnJsPuBbBtHsSsAgSCesHoV61x\ngloB7t2pckJDQSlV7uW2i1jnvCpo48F4T
qdmA9tpUNuXnsEB3N4/hN4hAXRoWpdq3sU8pWPPgQPL\nrSDY8xPYMsE/BK54DDqP
hwahbt2v8khDQSlV7mTm2Nl6ONEaD4hNYPPBBFKd7SKC/GsysF0j6mWd\n4uaRfWn
dsPb5g8IXIgJHNzvHCb6G9NNQ0x+6/tUaJwjqCRezvUpGQ0Ep5XHJue0inGMCWw8n
kW23\n2kW0b1KXMZc1d10i2qxeTcBqnR3a6CJ6BSUcPDtOcGY/ePtCu5FWELQZBtV
83bFrFY6GglKqzJ1K\nycrTOTSe3cesdhHVnO0ibusfbLWLaOWPf+1L+LDOSIRd31
lBcGi19VzLftBvsnWncU3/0tmhSkRD\nQSnlViLC4fgM553CZ9gQm0BMnnYR3Vr6c
//gtvQKsdpF1PK9xI8lWzZEL7FuLNu3COzZ0KANDHoK\nOl8P/sGXvlOVmIaCUqpU
ORzCvpMprvbRG2LjOZFszSFQr6YPPYP9udF5j0B4YD18ijsofCEiELfB\nGjDe8S1
kxEOthtD9dusy0ubdqvQ4wcXQUFBKXZJsm4PtR5Kc9wdY7SKSMqx2EU39atArpIHV
LiI4\ngLaN6+RvF3Gp4v+0Boy3zbO+r1YD2o+2xglCB4N3EfcjqPNoKCilLkp6to3
NBxNd8wr/cTiBzBxr\nULh1o9qMCm/qGhQO8i+gXcQlFxAPO7/lss0fQNRewEDwAL
j8Eeh4FdSoV7rvV8VoKCilLighLds6\nCnBeHrrjSBJ2h+BloFNzPyb0akmv4AB6B
AfQqG519xRhy7LGB7bOg/2LwZFDtVotYeizVsuJekHu\ned8qSENBKZXP0cQM15VB
62Pi2X8yFQDfal50DarPPVe0pmew1S6iblHtIi6FwwGH11oDxru+g8wk\nqNMEev8
NOo9nw554IgcMct/7V1EaCkpVYSLCgVNp+SaSOZJ4tl1E91b+jLkskF4h1hwCxWoX
calO\n77fGCLbNg8RD4FMLOvzFGjAOiQRv58fW3ij311IFaSgoVYXY7A52HUs+O4d
AbAJn0rIBaFjHahdx\n54AQeoUE0LGZH96lOSh8IWmnYcc31lHB0c1gvCDkChj0pB
UI5WBC+6pCQ0GpSiwzx86Ww4mueYU3\nH0wgLduaQ6BFQE2uaN+I3iEB9AwOIORi2
0VcqpwM2LvQGieIXmpNaN8kAoa/AOHjwK9Z2dWiXDQU\nlKpEkjNz2BSb4LoyaFvc
2XYRHZrW5dpuQa6JZJrW80D7Z4cDDv5mBcGu760J7es2t+4w7nwDNAkr\n+5pUPho
KSlVgJ1My2RCTwPxdWbyydRV7jicjznYREUH1uD23XUSwP/VrebC3z8nd1qmh7V9B
8hHw\nrQMdr7bGCYIvB68yGKtQxaKhoFQFISIcik93tY/eEBtP7Jl0AHy9oWeIDw8
MaUuv4AC6lka7iEuV\ncgJ2fG2FwfFt1oT2oYNh2PPWDWYVbEL7qkJDQalyyuEQ9h
xPcd4fYAXByRSrXUT9Wj70aBXATb1b\n0iukAaf3/8HQwX08XDGQnWbNS7B1Lvy5w
prQvllXGPmyc0L7xp6uUBVBQ0GpcsJqF5HI+pgE55VB\n8SRnWnMINKtXgz6tne0i
QgJo0yh/u4ioAx7s6+OwQ8yv1jjB7h8gJw3qtYABDzkntG/vudrURdNQ\nUMpD0rJ
sbD6U4Loy6I9DiWTZzraLuLKzNZ1kz2A3tYu4VMe3O8cJvobU484J7a+zgqBlv0o3
oX1V\noaGgVBmJz20X4QyBnUeTXe0iwprX46+9W9ErxJ8ewQE0rOOmdhGXKvmoNVi
8dR6c3Ale1awJarrc\nAO1GVeoJ7asKDQWl3ORIYgYbYuKtgeHYeKLztotoUZ97rw
ilZ0gA3VrWd2+7iEuVlWKdFto6F2JW\nAgKBPawJ7cOuhdoNPF2hKkUaCkqVAhEh+
mSqa0B4Q2yCq11E3erV6B7sz9jLAukdEkBEUD2qVyvn\nl2DabdZA8da5zgntM6zJ
aa6Yap0eqoIT2lcVGgpKlYDN7mDn0WRXv6CNBxOId7WLqE6vEH/uvjyE\nniEBdGh
ahu0iLoUIHNtinRra8TWknYIa9aHrBCsIWvTWiWqqALeGgjFmJPBfwBv4SERePuf1
lsBs\noL5zmcdFZKE7a1KqJDJz7PxxKNHVQnrTwQTSne0iWgbUYnCHxvQKDqBnSAD
BDWqVv0HhC0k85Jyo\n5ks4vdc5of0IKwjaDodq5XR8Q7mF20LBGOMNvAMMA+KADc
aYBSKyK89iTwFfisi7xphOwEIg2F01\nKVVcSRk5bDoYz/qYBNbHnGH7kSRy7IIx0
L5JXcZ1D3JNJNPErwIOrmYmWW0mts6z2k4AtOwLf/kP\ndBoDtQI8W5/yGHceKfQC
okXkTwBjzFzgGiBvKAjg5/y+HnDUjfUoVaiTyZnOieWtr70nUhABH29D\nRGA97hg
QYk0k0yqAerXK8aDwhdiy4cAya5xg789gz4KAUKsTacT1EBDi6QpVOWBExD0bNmYc
MFJE\n7nI+vgXoLSKT8yzTDFgM+AO1gaEisqmAbU0CJgE0adKk+9y5c0tUU2pqKnX
qVK0WvLrP5xMRTqQL\n+xLs7EtwsC/Bzsl06/+D6t7Qpr4X7fy9aefvTev6XlT3Lv
+nggrdZxHqpuyj6fEoGp9chY8thWwf\nP042vpwTTa4gpW67CjtOoP+2L86gQYM2i
UiPopbz9EDzBGCWiLxmjOkLfGqMCRcRR96FROQD4AOA\nHj16SGRkZIneLCoqipKu
W1HpPoPdIew5nuy6Kmh9bDynnO0i/Gv50CO4sat9dKfmfvh4V7ybrs77\nPcfHWGM
E2+dB/AHwrg4dRkPnG/BtM5Qgbx8q+gSW+m/bPdwZCkeAFnkeBzmfy+tOYCSAiKwx
xtQA\nGgIn3ViXquRyHMLGPP2CNh5MIMXZLqJ5vRr0D23gah8dek67iAotPR52zrf
C4PBa67ngy2HAg9Dp\nGp3QXhWLO0NhA9DWGBOCFQY3Ajeds8whYAgwyxjTEagBnH
JjTaoSSs2ysfmg1S9oXUw8fxxMJ8ex\nBoA2jevwl87N6RXi72wXUck6c9qyYP9iw
na8Das2gz0bGraHIU9DxHio36LobSiVh9tCQURsxpjJ\nwC9Yl5vOFJGdxpjngY0i
sgB4BPjQGPMQ1qDzbeKuQQ5VaZxJzbJOAznvFN51zGoX4e1lCGvux+AW\n1Rh7eRd
6BvvToLy2i7gUInB4nTVgvHM+ZCZSz6c+9LzLuoy0WZcKO06gPM+tYwrOew4WnvPc
03m+\n3wX0d2cNquKLS0jPN7H8gVNpAFR3tov4e2QovUICuKylP3WqV7POu4Y39XD
VbnDmgBUE2+ZB4kGo\nVhM6/gU638iaw4YrBg/xdIWqEvD0QLNS+TgcQvSpVFcIbI
iJ52hSJgB1a1SjRyt/xnVvQa8Qf8ID\nK0C7iEuVdsaa0H7bPDiyETDQ+gqIfBw6X
gXV6wIgR6I8WqaqPDQUlEfl5LaLcHYO3RgbT0J6DgCN\n6lanV0gAf3O2j27ftG7F
aBdxqXIyrPsItn0J0UvAYYPGYdaMZRHXg19zT1eoKjENBVWmMrLt/HE4\ngQ0xCay
PPcMfhxJd7SKCG9RiaMcmriuDWlW0dhGXwuGAQ6ut00O7voesZKjbDPrcC51vhKbh
nq5Q\nVREaCsqtktJz2HjQeadwbDw78rSL6NDUj+u7B7lCoHFFbBdxqU7tPTuhfdJ
h8KkNna62BoxDBuqE\n9qrMaSioUnU8KTNP+
+j87SI6B9XnzgGt6R0SQLdW/tSrWUHbRVyq1JPWbGXb5lldSY2XNaH9kGes\nG8x8
a3u6QlWFaSioEhMRYk6nOa8Ksu4TOBSfDkAtX2+6t/Lnyohm9AwJoGuL+tTwqcJ/9
WanW/MS\nbJsHB5aD2K1LR0e8ZE1oX7eJpytUCtBQUBfB7hB2H0t2tY9eH5PA6VSr
XURAbV96Bvtza99W9AoJ\noFMzP6pVwHYRpcphh9hVzgntF0B2KvgFQf8p1jhB4w6
erlCp82goqEJl2exsi0tydQ7dfDCBlCyr\nXURg/Zpc3rahs320P6GN6lSdQeGinN
h5dkL7lKNQ3Q/CxlhB0Kq/TmivyjUNBZXPwTNpfLUxjvUx\n8WyJSyTbZvUmbNu4D
ld1be6aSCawfk0PV1rOJB+zBou3zYMTO5wT2g+FES9C+1Hgoz8vVTFoKCiX\nHLuD
iTPXczghg/DmftzapxU9nd1DA2r7erq88icr1ZrQfttc+PNXrAntu8Oo6RB+LdRu6
OkKlbpo\nGgrK5dvNccSeSefDW3swrJMOfBbIboOYKGucYM+PkJMO9VvCwEety0gb
tvV0hUpdEg0FBVjjB28u\ni6ZLi/oM7djY0+WULyJwfNvZCe1TT1htqDuPt8YJWvb
RBnSq0tBQUADMXX+YI4kZvHxdhA4Y50qK\nc05oPw9O7QEvn7MT2rcboRPaq0pJQ0
GRkW3n7RXR9A4JYECbKn4ePDPZajOxbR7E/gYItOgNV74O\nYWN1QntV6WkoKD5ZE
8uplCxm/LVb1T1KsGXBwketIwNbJgS0hsh/Qufrre+VqiI0FKq4lMwc3v31\nAFe0
a0TP4Cr6V7AtC+bdDPsXQ/fboOvNENRDxwlUlaShUMXN/C2WxPQcHhneztOleIYtC
+bdYgXC\nX/4DPe7wdEVKeZTeWlmFJaZn89GqPxkR1oTOQfU9XU7ZcwXCLxoISjlp
KFRh76/8k9RsGw8Pa+/p\nUsqeLQu+vNUKhCtf10BQyklDoYo6lZLFrN9jubpLc9o
3revpcsqWLQu+nAj7FsGVr0HPOz1dkVLl\nhoZCFTUjKppsu4MHhlSxO3BdgfAzjH
4Vet7l6YqUKlc0FKqgo4kZfL72ENd1C6R1ozqeLqfs2LLz\nB0Kvuz1dkVLljoZCF
fTW8mgEYUpVOkqwZcNXGghKFUVDoYqxWmMfZkKvlgT51/J0OWXDlg1f3QZ7\nF2og
KFUEDYUq5r9L9+PtZZg8qI2nSykbrkD4SQNBqWLQUKhC9p9IYf6WI0zsF0xjvxqeL
sf9bNnw\n9e1WIIyaroGgVDFoKFQh/1m6j1o+3txzRainS3G/3EDY8yOM+jf0nuTp
ipSqEDQUqogdR5JYuP04\ndw4IqfSzqBmH7ZxA+JunS1KqwtDeR1XEf5bso15NH+6
8vJJ3/LTn0GnXdDi9Fka+ooGg1EXSI4Uq\nYPOhBJbtOcmkga2pV9PH0+W4jz0Hvr
6dRqfXwsiXoc89nq5IqQqnWKFgjPnWGHOlMeaiQsQYM9IY\ns9cYE22MebyQZcYbY
3YZY3YaY764mO2r4nlt8V4a1vHl9v7Bni7Ffew58PUdsPsHokPvhD73eroi\npSqk
4n7IzwBuAvYbY142xhTZQc0Y4w28A4wCOgETjDGdzlmmLfBPoL+IhAEPXkzxqmi7z
9j5PfoM\n90a2oZZvJT1b6AqEBTDiJeJaXO3pipSqsIoVCiKyVET+CnQDYoGlxpjV
xpjbjTGFnY/oBUSLyJ8i\nkg3MBa45Z5m7gXdEJMH5PidLshOqYCLCN/uzaepXg7/
2bunpctzDngPf3OkMhP+Dvn/3dEVKVWjF\n/tPRGNMAuBm4BfgD+BwYAEwEIgtYJR
A4nOdxHND7nGXaObf9O+ANPCsiiwp470nAJIAmTZoQFRVV\n3LLzSU1NLfG6FdHWU
zaiEx1M7ORg7e+rPF1OqTMOGx13v07jU78THXoHcVlhEBVV5X7PUPX+bYPu\ns7sU
KxSMMfOB9sCnwFUicsz50jxjzMZLfP+2WKESBKw0xkSISGLehUTkA+ADgB49ekhkZ
GSJ3iwq\nKoqSrlvRiAjT3/qNRjWzefKmIfhWq2TXFNhz4Ju74NTvMPxF2vSbTO49
2lXp95xL97lqKIt9Lu6R\nwocisjDvE8aY6iKSJSI9ClnnCNAiz+Mg53N5xQHrRCQ
HiDHG7MMKiQ3FrEsVYtGO4+w8mszdEb6V\nMBBsViDs+g6GvwD9Jnu6IqUqjeJ+Wr
xQwHNrilhnA9DWGBNijPEFbgQWnLPMdzhPPRljGmKdTvqz\nmDWpQtgdwutL9hHaq
DZ9m1eywWW7Db51BsKwf0G/
+z1dkVKVygU/MYwxTbHGBmoaYy4DjPMlP+CC\nLTZFxGaMmQz8gjVeMFNEdhpjngc
2isgC52vDjTG7ADvwDxE5c0l7pPhh61H2n0zlnZu64RW/19Pl\nlB67Db69G3bOtw
Kh/xRPV6RUpVPUn5EjgNuwTv28nuf5FOCJojbuPOW08Jznns7zvQAPO79UKcix\nO
/jP0n10bObHqPCmrFxZSULBFQjfwrDnNRCUcpMLhoKIzAZmG2OuE5FvyqgmdQm+2R
THwTPpfDyx\nB15epugVKgK7DeZPsgJh6HPQ/wFPV6RUpVXU6aObReQzINgYc95f8
yLyegGrKQ/Jstl5c9l+urao\nz+AOjT1dTumw22D+32DHNzD0WRig9zcq5U5FnT6q
7fxvFZrIt+Kas+4QR5My+fe4LhhTCY4SXIHw\ntTMQHvJ0RUpVekWdPnrf+e0METl
VBvWoEkrPtvH2igP0aR1A/zYNPF3OpbPb4Lt7rEAY8owGglJl\npLiXpP5ujFlsjL
nTGOPv1opUiXyy5iCnU7N4dHj7in+U4LBbgbD9KxjyNFyu1yEoVVaK2/uoHfAU\nE
AZsMsb8aIy52a2VqWJLzszhvV8PENm+ET2CAzxdzqVx2GF+3kB4xNMVKVWlFPtWVx
FZLyIPYzW6\niwdmu60qdVFm/hZDYnoOjwwrsnlt+eYKhC9h8DQNBKU8oLjzKfgZY
yYaY34GVgPHsMJBeVhCWjYf\nrYphZFhTIoLqebqcknPY4bt7nYHwFAx81NMVKVUl
FbcHwlaslhTPi0hR7S1UGXp/5Z+kZdt4eHg7\nT5dScg47fPd32DbPGQj/8HRFSlV
ZxQ2F1s67j1U5cjIlk1mrY7imS3PaNanr6XJKxhUIc2GQBoJS\nnlbUzWtviMiDwA
JjzHmhICI6xZUHzVhxgBy78ODQCnqU4LDD9/c5A+FJuEIDQSlPK+pI4VPnf191\nd
yHq4hxNzOCLdYe4vnsQwQ1rF71CeeOww/eTYescZyBM9XRFSimKvnltk/PbriLy37
yvGWMeAH51\nV2Hqwt5avh+A+4e09XAlJeCww4L7YesXEPmEBoJS5UhxL0mdWMBzt
5ViHeoixJ5O48uNcUzo1YLA\n+jU9Xc7FyQ2ELZ9D5D8h8jFPV6SUyqOoMYUJwE1A
iDEm7wQ5dbHuVVAe8N9l+/HxNtw3qE3RC5cn\nDgcsmGIFwhWPQ+Tjnq5IKXWOosY
Ucu9JaAi8luf5FGCbu4pShdt/IoXvthxh0uWtaexXw9PlFJ/D\n4TxC+MwKhEH/9H
RFSqkCFDWmcBA4CPQtm3JUUV5fso/avtW454pQT5dSfPkC4TENBKXKsQuOKRhj\nf
nP+N8UYk5znK8UYk1w2JapcO44k8fOO49wxIAT/2r6eLqd4HA74IU8gRGogKFWeFX
WkMMD53wp6\nZ1Tl8trivdSr6cNdl4d4upTicTjghynwx2cwcKoVCBW9g6tSlVxxe
x+FGmOqO7+PNMZMMcbUd29p\nKq9NB+NZsfcUf7uiNX41fDxdTtEcDvjxAfjjU+su
5UFPaCAoVQEU95LUbwC7MaYN8AHQAvjCbVWp\n87y2eB8N6/hyW79gT5dStNxA2Py
JMxCe1EBQqoIobig4RMQGjAXeEpF/AM3cV5bKa3X0aVYfOMPf\nI9tQy7e47ao8xO
GAHx+0AuHyRzUQlKpgihsKOc57FiYCPzqfqwDnMCo+EeHVxXtpVq8GN/Vu6ely\nL
szhgJ8egs2zrbkQBj+lgaAaJ5ePAAAgAElEQVRUBVPcULgd67LUF0UkxhgTwtm+SM
qNVuw9yeZD\nidw/uC01fLw9XU7hcgNh0ywY8LA1SY4GglIVTrHORYjILmBKnscxw
CvuKkpZHA7htcX7aBlQi+t7\nBHm6nMI5HPDTw2cDYcjTGghKVVDFvfqovzFmiTFm
nzHmT2NMjDHmT3cXV9Ut2nmcnUeTeXBoW3y8\niz1zatlyOGDhI7DpfzDgIQ0EpSq
44o5afgw8BGwC7O4rR+WyO4TXl+yjTeM6XNM10NPlFMzhgIWP\nwsaZ0P9BGPKMBo
JSFVxxQyFJRH52ayUqn+
+3HCH6ZCoz/toNb69y+EEr4gyEj61AGPqsBoJSlUBx\nQ2GFMWY68C2QlfukiGx2S
1VVXI7dwRtL99OpmR8jw5p6upzzicBPjzgD4QENBKUqkeKGQm/nf3vk\neU6AwaVb
jgL4elMch+LTmXlbD7zK21FC3iOEflNg6HMaCEpVIsW9+miQuwtRlswcO28u289lL
esz\nqH1jT5eTX24gbPjICoRhz2sgKFXJFPfqoybGmI+NMT87H3cyxtxZjPVGGmP2
GmOijTGFzqhijLnO\nGCPGmB6FLVNVzFl/iGNJmfxjeHtMefrAFYGF/3AGwv0aCEp
VUsW9znEW8AvQ3Pl4H/DghVYwxngD\n7wCjgE7ABGNMpwKWqws8AKwrZi2VVnq2jX
dWRNO3dQP6tWno6XLOEoGfp8KGD6HvZBj2Lw0EpSqp\n4oZCQxH5EnAAOPsgFXVpa
i8gWkT+FJFsYC5wTQHL/QvrRrjMYtZSac1efZDTqdk8OqKdp0s5SwR+\nfgzWf2AF
wvAXNBCUqsSKO9CcZoxpgDW4jDGmD5BUxDqBwOE8j+M4O2CNczvdgBYi8pMx5h+Fb
cgY\nMwmYBNCkSROioqKKWXZ+qampJV7X3dJzhLdXptO5kTcpMduIiimd7V7SPovQ
JvpDgo78xOGgazjg\nOxR+/bV0CnOj8vx7dhfd56qhTPZZRIr8AroBv2MFwe9Yp48
6F7HOOOCjPI9vAd7O89gLiAKCnY+j\ngB5F1dK9e3cpqRUrVpR4XXd7ffFeafXYj7
I9LrFUt1vifXY4RBZOFXnGT+Tnf1qPK4jy/Ht2F93n\nquFS9hnYKMX4vC/u6aNQr
LGBflhjC/sp+ijjCNa8C7mCnM/lqguEA1HGmFigD7CgKg42J6Rl8/Fv\nMYwKb0p4
YD1Pl2OdMlr0T1j3HvT5O4x4UU8ZKVVFFDcUpolIMuAPDAJmAO8Wsc4GoK0xJsQY4
wvc\nCCzIfVFEkkSkoYgEi0gwsBa4WkQ2XuxOVHTvrTxAWraNh4aVg7EEVyC86wyE
/9NAUKoKKW4o5A4q\nXwl8KCI/ARecOV6swejJWEcWu4EvRWSnMeZ5Y8zVJS24sjm
ZnMns1bGM6RpIuyYengpbBH55wgqE\n3vdqIChVBRV3oPmIMeZ9YBjwinO+5iIDRU
QWAgvPee7pQpaNLGYtlcqMqAPk2IUHhrT1bCEi8MuT\nsHaGFQgjX9JAUKoKKu6Rw
nisv/hHiEgiEAAUerWQKp4jiRl8se4Q43sEEdywtucKcQXCO9D7Hg0E\npaqw4ra5
SMdqhpf7+BhwzF1FVRVvLdsPwOTBHjxKEIHFT+UJhJc1EJSqwsrpzC2VX+zpNL7aF
MdN\nvVsSWL+mZ4rIDYQ1b0Ovv2kgKKU0FDzljaX78PE2/H1QqGcKEIEl05yBMAlG
vaKBoJTSUPCEfSdS\n+H7rUW7rF0LjujXKvoDcQFj9FvS8G0b9WwNBKQVoKHjE64v
3Udu3Gn8b2Lrs31wEljx9NhBGT9dA\nUEq5aCiUse1xSSzaeZw7B4TgX/uCt3qUPh
FY+gysfhN63qWBoJQ6j4ZCGXttyV7q1/LhzstDyvaN\ncwPh9/9Cjzth9KsaCEqp8
2golKGNsfFE7T3F3waG4lfDp+zeWASWPns2EK58TQNBKVUgDYUyIiK8\nungvDetU
Z2K/VmX5xrDsOfj9Dehxhx4hKKUuqLhtLtQlWn3gDGv/jOeZqzpRy7eMfuwihMR8B
oe+\ndgbCa+ClfwcopQqnnxBlIPcooXm9GtzUu2VZvSkse55Wh76G7rdrICilikU/
JcrA8j0n+eNQIvcP\naUv1at7uf0MRWP4v+O11jjYbAVe+roGglCoWPX3kZg6H8Nr
ifbRqUItx3YPc/4YisPwFWPUadJvI\nvrpjaK6BoJQqJv20cLOfdxxn17FkHhzaFh
9vN/
+4XYHwKnSbCH95A4z+ipVSxaefGG5kdwivL9lL\n28Z1uLpLoHvfTARWvOgMhFutQ
NAjBKXURdJPDTf67o8jHDiVxsPD2uHt5cbLQEVgxf/ByunOQPiv\nBoJSqkT0k8NN
cuwO3li2j7DmfowIa+q+NxKBqJdg5b/hsls0EJRSl0Q/Pdzky42HORyfwaPD2+Pl\
nzqOEqJfg11esQLjqTQ0EpdQl0U8QN8jMsfPWsmi6taxPZPtG7nujFbmBcLMGglKq
VOiniBt8se4Q\nx5MzeXREe4y7WkqseAl+fRm63gxXvaWBoJQqFfpJUsrSs23MiIq
mX2gD+oU2dM+bRL18NhCu1kBQ\nSpUe/TQpZbNWx3I6NZtHhrd3zxtEvWKNI3T9qw
aCUqrU6SdKKUrKyOH9X/9kcIfGdG/lX/pv8Ou/\nIer/oMtNGghKKbfQT5VS9PFvM
SRl5PDwsHalv/Ff/23dnNblJrjmbfAqgx5KSqkqR0OhlMSnZfPx\nqj8ZHdGU8MB6
pbvxX6c7A2GCBoJSyq00FErJ+78eICPHXvpHCSunw4oXoPONcM07GghKKbfSUCgF\
nJ5Mzmb0mljFdA2nTuG7pbXjldKvBXecbYcwMDQSllNtpKJSCd1ZEY7MLDwxtW3ob
XfmqBoJSqsxp\nKFyiuIR0vlh/iOt7tKBVg9qls9FVr1mT5HS+QQNBKVWm3BoKxpi
Rxpi9xphoY8zjBbz+sDFmlzFm\nmzFmmTGmDGe0Lx1vLYvGYLh/cJvS2eCq12HZ8x
AxHsa8q4GglCpTbgsFY4w38A4wCugETDDGdDpn\nsT+AHiLSGfga+Le76nGHmNNpf
L05jr/2aUnz+jUvfYOrXodlz1mBMPY9DQSlVJlz55FCLyBaRP4U\nkWxgLnBN3gVE
ZIWIpDsfrgXKYL7K0vPG0n34envx98hSOEr47T/OQLheA0Ep5TFGRNyzYWPGASNF\
n5C7n41uA3iIyuZDl3waOi8gLBbw2CZgE0KRJk+5z584tUU2pqanUqVOnROueKy7F
wbTfMxgd4sP1\n7X0vaVstDn1L6J+zOdF4IHs6PIiUYiCU5j5XFLrPVYPu88UZNGj
QJhHpUdRy1Uq09VJmjLkZ6AFc\nUdDrIvIB8AFAjx49JDIyskTvExUVRUnXPdffPt
1Ineo5vHhLJPVrXUIo/PYG/DkbwsfRZOz7NPEu\n3V9Jae5zRaH7XDXoPruHO08fH
QFa5Hkc5HwuH2PMUOBJ4GoRyXJjPaVme1wSv+w8wV2Xt760QPj9\nv7D0GQi/Dsa+
D6UcCEopdbHcGQobgLbGmBBjjC9wI7Ag7wLGmMuA97EC4aQbaylVry7ei38tH+4Y\
nEFzyjfz+Jix52hkIH2ggKKXKBbeFgojYgMnAL8Bu4EsR2WmMed4Yc7VzselAHeAr
Y8wWY8yCQjZX\nbmyIjefXfae454pQ6tbwKdlGVr8FS6ZB2LUaCEqpcsWtn0YishB
YeM5zT+f5fqg737+0iQiv/rKX\nhnWqc2vf4JJtZPVbsPgpKxCu/VADQSlVrugdzR
fh9+gzrIuJZ/KgUGr6luAKodVvOwNhrAaCUqpc\n0lAoJhHh1cV7aV6vBhN6t7z4D
ax5BxY/CZ3GwLUfaSAopcolDYViWrb7JFsOJzJlSFuqV7vIo4Q1\n78AvT1iBcN3H
GghKqXJLQ6EYHA7htSX7CG5Qi+u6X+RN165AuAau0yMEpVT5pqFQDAt3HGP3sWQe\
nHNoOH+
+L+JGtmWEFQsernUcIJbxaSSmlyoiGQhFsdgevL9lHuyZ1uKpL8+KvuPZd+OWfViC
Mm6mB\noJSqEPRcRhG+23KUP0+l8d7N3fD2MsVbae17sOhxDQQ3yMnJIS4ujszMzE
KXqVevHrt37y7DqjxP\n97lqKM4+16hRg6CgIHx8Sva5o6FwAdk2B/9dto/wQD9Gh
DUt3kpr34NFj0HHqzQQ3CAuLo66desS\nHByMMQWHdEpKCnXrluK0qBWA7nPVUNQ+
iwhnzpwhLi6OkJCQEr2Hnj66gC83HuZwfAaPDG9f6AdQ\nPuvetwKhw19g3P80ENw
gMzOTBg0aFO/3oVQVY4yhQYMGFzySLoqGQiEyc+y8tXw/PVr5E9muUdEr\nrPsAfp
5qBcL1szQQ3EgDQanCXer/HxoKhfhs7UFOJGcV7yhh3Qfw8z/0CEEpVeFpKBQgLcv
Gu1EH\n6N+mAX1DG1x44fUf5g+Eapc24Y4q3xITE5kxY0aJ1h09ejSJiYkXvV7Xrl
258cYb8z0XGRnJxo0b\nXY8PHjxIeHi46/H69esZOHAg7du357LLLuOuu+4iPT2di
7Vp0yYiIiJo06YNU6ZMoaBJuaZPn07X\nrl3p2rUr4eHheHt7Ex8fT2ZmJr169aJL
ly6EhYXxzDPPuNZZvnw53bp1Izw8nIkTJ2Kz2fJtc8OG\nDVSrVo2vv/7a9dzs2bN
p27Ytbdu2Zfbs2a7n582bR+fOnQkLC+Oxxx5zPf/ee+8RERFB165dGTBg\nALt27c
r3HocOHaJOnTq8+uqrAOzdu9e1H127dsXPz4833ngDgGeffZbAwEDXawsXnm3ptm3
bNvr2\n7UtYWBgRERFkZmaSnp7OlVdeSYcOHQgLC+Pxx89OUT9r1iwaNWrk2tZHH3
3keu2xxx4jPDyc8PBw\n5s2b53p+2bJldOvWjf79+zNgwACio6OL+M1dAhGpUF/du
3eXklqxYkWxlnt7+X5p9diPsulg/IUX\nXPeByDN+Il9MEMnJKnFd7lTcfa4odu3a
VeQyycnJbnv/mJgYCQsLK/C1nJycUn+/Xbt2SXh4uDRv\n3lxSU1Ndz19xxRWyYcM
G1+Pt27e76jp+/Li0bNlSVq9e7Xr9q6+
+kuPHj1/0+/fs2VPWrFkjDodD\nRo4cKQsXLrzg8gsWLJBBgwaJiIjD4ZCUlBQREc
nOzpZevXrJmjVrxG63S1BQkOzdu1dERKZNmyYf\nffSRaxs2m00GDRoko0aNkq++
+kpERM6cOSMhISFy5swZiY+Pl5CQEDl48KCcPn1aWrRoISdPnhQR\nkVtvvVWWLl0
qIiJJSUmubX7//fcyYsSIfLVed911Mm7cOJk+ffp5+2Gz2aRJkyYSGxsrIiLPPPNM
\ngcvl5ORIRESEbNmyRURETp8+LTabTdLS0mT58uUiIpKVlSUDBgxw/ez+97//yX3
33Xfetn788UcZ\nOnSo5OTkSGpqqvTo0cO1D23btpVdu3ZJcnKyvPPOOzJx4sTCfw
lS8P8nwEYpxmesXn10jqSMHN7/\n9QBDOjSmW0v/whdc/yEsfBTaX2mNIegRQpl77
oed7DqafN7zdrsdb++STWnaqbkfz1wVVujrjz/
+\nOAcOHKBr164MGzaMK6+8kmnTpuHv78+ePXvYt28fY8aM4fDhw2RmZvLAAw8wad
IkAIKDg9m4cSOp\nqamMGjWKAQMGsHr1agIDA/n+++
+pWbPmee83Z84cbrnlFnbv3s3333/PTTfdVOQ+vPPOO0ycOJG+\nffu6nhs3btxF/
yyOHTtGcnIyffr0AeDWW2/lu++
+Y9SoUYWuM2fOHCZMmABY57Zzp47MyckhJycH\nYwxnzpzB19eXdu3aATBs2DBeeu
kl7rzzTgDeeustrrvuOjZs2ODa7i+//MKwYcMICAhwrbN06VIi\nIiJo27YtjRpZ4
35Dhw7lm2+
+YciQIfj5+bnWT0tLy3ca+LvvviMkJITatWsXuB/Lli0jNDSUVq1a\nXfBntHjxYj
p37kyXLl0AaNDAOrNQq1YtBg0aBICvry/dunUjLi7ugtvatWsXAwcOpFq1alSrVo3
O\nnTuzaNEixo8fjzGG5GTr33pSUhLNm1/EPVMXSU8fnePjVX+SnGnj4eHtCl9ow0
fOQBitgVDFvPzy\ny4SGhrJlyxamT58OwObNm/nvf//Lvn37AJg5cyabNm1i48aNv
Pnmm5w5c+a87ezfv5/77ruPnTt3\nUr9+fb755psC32/evHnceOONTJgwgTlz5hSr
xh07dtC9e/cilzv3dEner8TERI4cOUJQ0Nm2LkFB\nQRw5ct7kiS7p6eksWrSI666
7zvWc3W6na9euNG7cmGHDhtG7d28aNmyIzWZznf76+uuvOXz4MABH\njhxh/vz53H
vvvfm2feTIEVq0ODuRY1BQEMeOHaNNmzbs3buX2NhYbDYb3333nWtbYAVkaGgoU6d
O\n5c033wSseY5feeWVfKezzjV37lxXuOV6+
+236dy5M3fccQcJCQkA7Nu3D2MMI0aMoFu3bvz73/8+\nb1uJiYn88MMPDBkyxPXc
N998Q+fOnRk3bpyr3i5durBo0SLS09M5ffo0K1ascL320UcfMXr0aDp0\n6MCnn36
a73RUadMjhTzOpGbx8W8xXBnRjLDm9QpeaMPH8NMj0G4UXD9bA8GDCvuLvqyvX+/V
q1e+\na8LffPNN5s+fD8Dhw4fZv3+/6y/IXCEhIXTt2hWA7t27Exsbe952N27cSMO
GDWnZsiWBgYHccccd\nxMfHExAQUODFDxd71Un79u3ZsmXLRa1zIT/88AP9+/d3/T
UP4O3tzZYtW0hMTGTs2LHs2LGD8PBw\n5s6dy0MPPURWVhbDhw93Hdk9+OCDvPLKK
3h5Fe/vVX9/f959911uuOEGvLy86NevHwcOHHC9ft99\n93HffffxxRdf8MILLzB7
9myeffZZHnroIddRzLmys7NZsGABL730kuu5e+
+9l2nTpmGMYdq0aTzy\nyCPMnDkTm83Gb7/9xoYNG6hVqxZDhgyhe/furgCw2WxMm
DCBKVOm0Lp1awCuuuoqJkyYQPXq1Xn/\n/feZOHEiy5cvZ/jw4WzYsIF+/frRqFEj
+vbt6/q5/Oc//2HhwoV06tSJ9957j4cffjjfWERp0lDI\n4/2Vf5KRY+ehYW0LXmD
Dx/DTw1YgjP9EA0EB5DsFERUVxdKlS1mzZg21atUiMjKywGvGq1ev7vre\n29ubjI
yM85aZM2cOe/bsITg4GIDk5GS+
+eYb7r77bho0aOD6axUgISGBhg0bAhAWFsamTZu45ppr\nLlj33r17ueGGGwp8LSo
qisDAwHynPOLi4ggMDCx0ewX9dZ2rfv36DBo0iEWLFhEeHk7fvn1ZtWoV\nYJ2CyT
3K2rhxo2tQ/fTp0yxcuJBq1aoRGBhIVFRUvlp69+4NWB+yV111FQAffPBBgacOb7z
xRtfR\nx7p16/j666+ZOnUqiYmJeHl5UaNGDSZPngzAzz//TLdu3WjSpIlr/bzf33
333fzlL38BrCOWgQMH\nun72o0ePZvPmza5QmDRpEm3btuXBBx90rZ/3D4S77rqLq
VOnuh4/+eSTPPnkkwDcdNNNtGvXjlOn\nTrF161Z69+5NSkoKN9xwAyNHjizw51wa
9PSR04nkTGavjmXMZYG0aVzAX5kbZzoDYSSM1yOEqqpu\n3bqkpKQU+npSUhL+/v7
UqlWLPXv2sHbt2hK9j8Ph4Msvv2T79u3ExsYSGxvL999/7zqFFBkZyWef\nfea6Gu
iLL75wncOePHkys2fPZt26da7tffvtt5w4cSLfe+QeKRT0Vb9+fZo1a4afnx9r165
FRPjk\nk08KDZqkpCR+/fXXfK+fOnXKdbVVRkYGS5YsoUOHDgCcPGlNyZ6VlcUrr7
zCPffcA0BMTIxrf8eN\nG8eMGTMYM2YMI0aMYPHixSQkJJCQkMDixYtdH7y520pIS
GDGjBncddddgHWKLtdPP/1E27bWH3ur\nVq1yvceDDz7IE0884QoEyD8ukuvYsWOu
7+fPn+
+60mvEiBFs376d9PR0bDYbv/76K506dQLgqaee\nIikpyXUFU0HbWrBgAR07dgSsU
225pxq3bdvGtm3bGD58OP7+/iQlJbmCc8mSJa513EGPFJzeWRGN\n3SE8OKSAsYSN
/4MfH3IGwidQrfr5y6gqoUGDBvTv35/w8HBGjRrFlVdeme/1kSNH8t5779GxY0fa\
nt2/vGqS9WKtWrSIwMDDfgOLAgQPZtWsXx44dY9KkSezZs4cuXbpgjKFLly48+uij
gPVX7dy5c3n0\n0Uc5efIkXl5eDBw4sER/Xc6YMYPbbruNjIwMRo0a5Rpkfu+99wB
cH+bz589n+PDh+Y6ajh07xsSJ\nE7Hb7TgcDsaPH+/6C3v69On8+OOPOBwO7r33Xg
YPHnzBOgICApg2bRo9e/YE4Omnn3adpnrggQfY\nunWr6/ncAey3336bpUuX4uPjg
7+/f77LWAuTlpbGkiVLeP/99/M9P3XqVLZs2YIxhuDgYNfr/v7+\nPPzww/Ts2RNj
DKNHj+bKK68kLi6OF198kQ4dOtCtWzfACuu77rqLN998kwULFlCtWjUCAgKYNWsW\
nYA3GX3755QD4+fnx2WefUa2a9RH94YcfusZqGjRowMyZM4vcl5IyuX9pVBQ9evSQ
vNdnX4yoqCgi\nIyPPe/5wfDqDX4vi+h4t+L+xEflf3Pg/
+PFBaDsCbvi0wgVCYftcUe3evbvIv5K0J07VoPtcuIL+\nPzHGbBKRHkWtq6ePgLe
W78cYw/2D2+R/YdOsCh0ISil1sap8KPx5KpVvNh/h5t6taFYvz3Xim2bB\nDw9A2+
EaCEqpKqPKh8IbS/fj6+3FvZGhZ5/cNDtPIHymgaCUqjKqdCjsOZ7MD9uOcnv/YBr
VdX7w\nb/4EfpgCbYbBeD1CUEpVLVU6FF5fvI86vtWYNNC6qYTNn8CC+6HNUOsIwa
eGZwtUSqkyVmVDYVtc\nIot3neDuga2pX8sXNn8KC6Y4A+FzDQSlVJVUZUPh1cX78
K/lw+39g+GPz5xHCEM0ENQFXUrrbIA3\n3njjgi2sT58+jY+Pj+s+gFzntmSYNWtW
vhuuvvjiC8LDw4mIiOCyyy5ztYO+WIW1pz7XW2+95WoL\nnXtH7pIlS+jevTsRERF
0796d5cuXu5Z/8sknadGixXn7cfDgQYYMGULnzp2JjIzMdwf11KlTCQsL\no2PHjv
nado8cOZIuXbrQq1cv7rnnHux2O3Dx7a3BulEtIiKCzp07M3LkSE6fPg3AV199RVh
YGF5e\nXvlalF9oH7Ozs5k0aRLt2rWjQ4cOrn5WhbXwzsnJYeLEiURERNCxY8d8bT
USExMZN24cHTp0oGPH\njqxZswawbojr0KEDnTt3ZuzYsSVqxV6k4rRSLU9fpdE6e
92fZ6TVYz/K+79Gi2z+VOSZeiKfjBXJ\nzijxtssrbZ1dui7UOrs4WrVqJadOnSr0
9RkzZsiAAQNk4MCB+Z6vXbt2vsd52y8vXLhQunTpIkeO\nHBERkczMTPnggw8uura
C2lPHx5/fPn758uUyZMgQyczMFBGREydOiIjI5s2bXTVs375dmjdv7lpn\nzZo1cv
To0fP2Y9y4cTJr1iwREVm2bJncfPPNIiLy++
+/S79+/cRms4nNZpM+ffq4/i3ntpNOSkqS\na6+9VubMmSMiF9/eOicnRxo1auT6f
fzjH/
+QZ555RkSsf2d79uw5r0X5hfbx6aeflieffFJEROx2\nu2u7hbXw/vzzz+WGG24QE
ZG0tDRp1aqVxMTEiIjVAvzDDz8UEav1dkJCgoiIzJ8/39WiferUqTJ1\n6tTz9je3
/nOhrbMLJiK8ungvjepW57Zaq+H7+yF0MNz4hR4hVDQ/Pw7Ht5/3dE27DbxL+E+7a
QSM\nernQl89tnT19+nSmT5/Ol19+SVZWFmPHjuW5554jLS2N8ePHExcXh91uZ9q0
aZw4cYKjR48yaNAg\nGjZsyIoVK87b/pw5c3jttde46aabiIuLy9eltDAvvfQSL7z
wguvu5+rVq3P33Xdf9K4X1J560aJF\n57V8ePfdd3n88cdd/ZsaN24MwGWXXeZaJi
wsjIyMDLKysqhevXqhd3bv2rWL119/HYBBgwYxZswY\nwGrul5mZSXZ2NiJCTk6Oq
/9Qbktsm81GdnZ2kY0AC2tvnZOTg4iQlpZGgwYNSE5Opk0b616lwm6Q\nvNA+zpw5
kz179gDg5eXl6odUWAtvYwxpaWnYbDYyMjLw9fXFz8+PpKQkVq5c6brT2dfXF19fq
63O\nkCFDXHc59+nTJ98kRKWlyp0+
+i36NOtj4vlP+134/ng/hA7SQFDFdm7r7MWLF7N//37Wr1/Pli1b\n2LRpEytXrmT
RokU0b96crVu3smPHDkaOHMmUKVNo3rw5K1asKDAQDh8+zLFjx+jVqxfjx4/PN/PW
\nhezYscPVcfVCPv/88wLbZOfOtVBQe+qCWmXv27ePVatW0bt3b6644op88x7k+ua
bb+jWrVu+xn8F\n6dKlC99+
+y1gtcpISUnhzJkz9O3bl0GDBtGsWTOaNWvGiBEj8n1QjxgxgtDQUOrWrZtvroiLa
W/t\n4+PDu++
+S0REBM2bN2fXrl2uOR2KI+8+5p7GmTZtGt26deP666/P12uqoBbe48aNo3bt2jRr
1oyW\nLVvy6KOPEhAQQExMDI0aNeL22293zZqXlpZ23vvPnDnzgnNblFhxDifK09e
lnD5avny5XP3WKvnX\nC0+K45l6IrOvEclOL/H2KgI9fVS6zj199Mgjj0irVq2kS5
cu0qVLFwkNDZWPPvpI9u7dK61atZKp\nU6fKypUrXctf6PTR9OnT5YknnhARka1bt
0ref+sFnT6aPHmyiIj4+/vL4cOHL3nfpk+fLv/6179c\nj59//vkCT8eEhYXJ5MmT
xeFwyLp16yQ4OFgcDofr9R07dkjr1q0lOjr6vHXP3Y8jR47I2LFjpWvX\nrjJlyhQ
JDAyUhIQE2b9/v4wePVpSUlIkJSVF+vTpk+/nKCJy8uRJufbaa2Xx4sUiYs04Z7PZ
xG63\nyxNPPCG33367a7+Cg2QKBA0AAA2ISURBVIPl1KlTkpaWJn369JGlS5dKdna
2DB48WKKjo8XhcMh9\n992Xb/9Fzp/hrrB9PHXqlACumeJee+0116mwvD7//HO59d
ZbRUTkt99+k5tuukmys7PlxIkT0q5d\nOzlw4IBs2LBBvL29Ze3atSIiMmXKFHnqq
adE5Oy/7RdeeEHGjBmT7+ee16WcPnLrkYIxZqQxZq8x\nJtoYc96sEMaY6saYec7X
1xljgt1Zz5ZTdtoc/YEnc97GtI6ECXPA5/zZrpQqLhHhn//8p6u7aHR0\nNHfeeSf
t2rVj8+bNRERE8NRTT/H8888Xua05c+Ywa9YsgoODufrqq9m2bZur02fNmjXJzs52
LRsf\nH5+vVXZx5kUo6kghMDAw3wQ1hbXKDgoK4tprr8UYQ69evfDy8nIN0MbFxTF
27Fg++eQTQkNDz1v3\nXM2bN+fbb7/ljz/
+4MUXXwSsNtvz58+nT58+1KlThzp16jBq1CjXYGuuGjVqcM011/D9998DViNA\nb2
9vvLy8uPvuu1m/fr2r3tz21rVq1XK1t879mYWGhmKMYfz48axevbrImgvaxwYNGlC
rVi2uvfZa\nAK6//no2b9583ro33ngj3333HWBdHDBy5Eh8fHxo3Lgx/fv3Z+PGjQ
QFBREUFORqDT5u3Lh825o1\naxY//vgjn3/+
+UXPoVEcbgsFY4w38A4wCugETDDGdDpnsTuBBBFpA/wHeMVd9TgcQtreZUz3fR9p\
nHamBoErk3NbZI0aMYObMmaSmpgLWKZiTJ09y9OhR/r+9+w+yqrzvOP7+RKA7WxPi
hKjtLkSK0P11\n3Rh2WqhDXIxVR37ZCU200MS6LSYtTUrqjmUyJo76h6GaWsYotYW
k1TYGWpvZDEbLbAJOWjHqEBBJ\nZTYpxoXasKRSVwd08dM/zuHMZd1l7/64d+fe+3
3N3Nlzzn3uPd/v/THPPs9z7vPU1tayevVqOjs7\nsy/1cFNvHzx4kP7+fg4fPpxN6
7x+/fpsquzLL7+cRx55BEimod66dWs2Vfb69eu57bbbePXVV4Hk\nKpihFmBZtWrV
kNNkn+6XHmp66quvvvpdz3Pddddl3V8HDx7krbfeYsaMGbz22mssWbKEu++
+m8su\nu6yg17Ovr4933nkHSMZGbrrpJgBmzZrFrl27GBgY4O2332bXrl00NjbS39
+fTT09MDDA9u3bs+m4\nRzu9dV1dHQcOHODo0aNAYVNSD5ejJJYtW5at+dDd3Z1No
T3cFN6zZs3Krl5644032L17Nw0NDVx4\n4YXMnDmTl1566V3PtWPHDjZs2EBXVxe1
tbUFvcajVkhzYiw3YCHwZN7+emD9oDJPAgvT7SlAH+nM\nrcPdxtp99Px3NvnUl6b
7f+6/uuK7jPJF99HEu+GGG9zc3OxbbrnFtn3fffe5paXFLS0tXrBggXt6\nevzEE0
84l8u5tbXVbW1tWRfExo0bPW/ePLe3t5/xnLfffrtvvfXWM47t3bvXDQ0Ntu3e3l4
vWbLE\nra2tvuSSS3zPPfecUfaBBx5wc3Ozm5qa3Nzc7HvvvXdMuW3evNlz5szxnD
lzvGXLlux4R0dHlsPJ\nkye9atUqNzc3+9JLL3V3d7dt+84773RtbW3Wldba2ppdm
dTZ2em6ujpLcl1dXXaVz7Zt23zxxRd7\n7ty57ujoyK5oGhgY8Jo1a9zQ0ODGxkav
W7fOdtJF1NbW5lwu58bGRq9duza7Gmf16tVuaWlxLpfz\nsmXLfOTIkSz+hx9+OHt
tOjs7s+MPPvigGxoanMvlvHTpUvf19dm2H3vsMdfV1XnatGk+//zzfdVV\nV42Y46
FDh7xo0SLncjlfccUVfvnll20n3T9NTU1ubW11e3u79+/fb9t+/fXXvXLlSjc1Nbm
xsdEb\nNmzI4tqzZ4/nz5/vXC7nFStWZFeBzZ492/X19dm5b7755iHfx/F0HxVt6m
xJK4FrbP9huv/7wG/a\nXptXZn9apjfd/0lapm/Qc60B1gBccMEF8x999NFRx3P00
AvUv/JtTi7shCnVM6jc398/7LKD5Wj6\n9OnZFSLDOXXq1JCrb1WyyLk6FJpzT08P
x48fP+PY4sWLC5o6uywuSbX9EPAQJOspjG19gHZ27sxV\n1NoChajE9RRGmk8+5tm
vDpHz8Gpqas64fHY0ijnQfBiYmbdfnx4bsoykKcB04FgRYwohhHAWxawU\nngXmSp
otaRpwPdA1qEwX8Ol0eyXwPRerPytUjPiIhDC88X4/ilYp2B4A1pIMJv8Y2Gr7RUl
3SFqe\nFtsMfEBSD/AF4F2XrYaQr6amhmPHjkXFEMIQbHPs2DFqasY+blrUMQXbjw
OPDzr2pbztE8DvFjOG\nUFnq6+vp7e3NLiMcyokTJ8b1pShHkXN1KCTnmpqagqZHG
U5ZDDSHcNrUqVOZPXv2Wcvs3LlzzINs\n5Spyrg6lyLnq5j4KIYQwvKgUQgghZKJS
CCGEkCnaL5qLRdJR4OUxPnwGyVQa1SRyrg6Rc3UYT84f\nsv3BkQqVXaUwHpKeK+R
n3pUkcq4OkXN1KEXO0X0UQgghE5VCCCGETLVVCg9NdgCTIHKuDpFzdSh6\nzlU1ph
BCCOHsqq2lEEII4SyiUgghhJCpyEpB0jWSXpLUI+ldM69K+iVJ30rvf0bSRaWPcmI
VkPMX\nJB2QtE9St6QPTUacE2mknPPKfVySJZX95YuF5CzpE+l7/aKkfyp1jBOtgM
/2LEnfl7Qn/XxfOxlx\nThRJWyT9PF2Zcqj7JWlj+nrsk/SRCQ2gkDU7y+kGnAP8B
Pg1YBqwF2gaVOaPgU3p9vXAtyY77hLk\nvBioTbc/Ww05p+XeCzwF7AbaJjvuErzP
c4E9wHnp/vmTHXcJcn4I+Gy63QQcmuy4x5nzR4GPAPuH\nuf9a4LuAgAXAMxN5/kp
sKfwG0GP7p7bfAh4FVgwqswL4+3T7n4GPSVIJY5xoI+Zs+/u230x3d5Os\nhFfOCn
mfAe4EvgKcKGVwRVJIzn8EfM32/wLY/nmJY5xoheRs4H3p9nTgSAnjm3C2nwJ+cZY
iK4B/\ncGI38H5JvzJR56/ESqEOeCVvvzc9NmQZJ4sBHQc+UJLoiqOQnPN1kPynUc
5GzDltVs+0vb2UgRVR\nIe/zPGCepH+XtFvSNSWLrjgKyfl2YLWkXpL1W/60NKFNm
tF+30cl1lOoMpJWA23A5ZMdSzFJeg/w\nVeDGSQ6l1KaQdCG1k7QGn5KUs/3apEZV
XDcA37B9r6SFwMOSWmy/M9mBlaNKbCkcBmbm7denx4Ys\nI2kKSZPzWEmiK45Cckb
SlcAXgeW2T5YotmIZKef3Ai3ATkmHSPpeu8p8sLmQ97kX6LL9tu3/Ag6S\nVBLlqp
CcO4CtALafBmpIJo6rVAV938eqEiuFZ4G5kmZLmkYykNw1qEwX8Ol0eyXwPacjOGV
qxJwl\nXQr8DUmFUO79zDBCzraP255h+yLbF5GMoyy3/dzkhDshCvlsf5uklYCkGS
TdST8tZZATrJCcfwZ8\nDEBSI0mlMPx6reWvC/hUehXSAuC47f+eqCevuO4j2wOS1
gJPkly5sMX2i5LuAJ6z3QVsJmli9pAM\n6Fw/eRGPX4E5/yVwLrAtHVP/me3lkxb0
OBWYc0UpMOcngaskHQBOAZ22y7YVXGDOfw78raR1JIPO\nN5bzP3mSvklSsc9Ix0m
+DEwFsL2JZNzkWqAHeBP4gwk9fxm/diGEECZYJXYfhRBCGKOoFEIIIWSi\nUgghhJ
CJSiGEEEImKoUQQgiZqBRCRRpppskSnP9xSe9Ptz8n6ceS/lHS8rPN6JqW/4/070W
Sfq8U\n8YZwWlySGiqSpI8C/SQTh7VMciz/CVxpu3eUj2sHbrG9tCiBhTCEaCmEij
TSTJOSflnSdkl7Je2X\n9Mn0+CFJGyS9IOmHki5Oj39Q0r9Ieja9XZYeP1fS19Py+
yR9PO95ZkjaRDLt83clrZN0o6T70zIX\nSPrXNIa9kn4rPd6fhnk3sEjSj9LHPiXp
w3k5/EBS64S/eKGqVdwvmkMo0DXAEdtLACRNz7vvuO2c\npE8B9wFLgb8G/sr2DyT
NIvmFbSNw2+ny6fOcl38S259JZypdbLtP0o15d28Edtn+HUnnkPziPN9f\nkNdSkP
QLkgn+/kzSPKDG9t5xvxIh5ImWQqhWLwC/LekrkhbZPp533zfz/i5Mt68E7pf0I5K
5Z94n\n6dz0+NdOP/D0OgYFugJ4MH3cqUExDGUbsFTSVOAm4BujOFcIBYmWQqgKkm
YC30l3N9nelK63cC1w\nl6Ru23ek9+cPtJ3efg+wwPYZi/WUcm0m229K2kGyyMong
PklO3moGtFSCFXB9iu2P5zeNkn6VeBN\n24+QTBaYv87tJ/P+Pp1u/xt5i7fk9e3v
AP4k7/gZ3Ucj6CZZGhVJ5wzqwgJ4nWQK8Hx/R9Lt9Owo\nWyUhFCQqhVCR0pkmnwZ
+XVKvpI5BRXLAD9PuoC8Dd+Xdd56kfcDngXXpsc8Bbelg8gHgM+nxu9Ly\n+yXtJV
kLu1CfBxZLegF4nmR94Xz7gFPpIPQ6ANvPA/8HfH0U5wmhYHFJagh5lCzI02a7b7J
jGUra\nwtkJNMTKYqEYoqUQQplIr4Z6BvhiVAihWKKlEEIIIRMthRBCCJmoFEIIIW
SiUgghhJCJSiGEEEIm\nKoUQQgiZ/wf9C7RQQ4A7RgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "JVWCI4Bwt1Qp",
"colab_type": "code",
"outputId": "64c1b5ee-b488-4d4c-adb1-1150016db213",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"\n",
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 202,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.5463924111997221
for threshold 1\n",
"Test confusion matrix\n",
"[[ 851 2601]\n",
" [ 692 5856]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qYaJJDY7k4bv",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 986
},
"outputId": "cce3bd52-821d-4bdb-d932-c82eacb4612d"
},
"source": [
"#Lets try the BOW\n",
"\n",
"from sklearn.naive_bayes import MultinomialNB\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5,random_state=42),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(x_tr_bow,y_train)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"\n",
"\n",
"results.head()\n",
"train_auc= results['mean_train_score']\n",
"train_auc_std= results['std_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"cv_auc_std= results['std_test_score']\n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='Test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='Test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.xlim(0.00001,1)\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 Essay features')\n",
"show_most_informative_features(vectorizerc_essay,clf.best_estima
tor_,10)\n",
"print('top 10 Title features')\n",
"show_most_informative_features(vectorizerc_title,clf.best_estima
tor_,10)\n",
"\n",
"\n",
"results.head()"
],
"execution_count": 203,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAZEAAAEaCAYAAADQVmpMAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xl8VNXd+PHPN5OVJCQsCbvshkUh\nLGJ9QAHBCmo1T+sCVVutLdVWf
cSqxWoV0fbBp1WLylNrfaxrWX5YKSqFyhK1biwKCAQUKEJYJCyB\nhCXr9/fHvZmZ
TCbbMJON7/v1mtfce+659545Seabc86954qqYowxxoQiqrELYIwxpvmyIGKMMSZk\
nFkSMMcaEzIKIMcaYkFkQMcYYEzILIsYYY0JmQcQY06SIyE4RGd/Y5TB1Y0HEAMH/
cEXkJhH5V2OV\nqSUQkR4ioiISHabjxYtIvohcHGTbUyKyIMTjTnfLeX6Q9NeC5Fc
R6eO3fqmIvC8iBSKSJyLviciV\noZSlHmUeIyK5kTyHqZ0FEdOkiCNiv5eRPn64BQ
YfVT0FzAN+EJDPA0wGXg7hHOIe73Dgceu4/9XA\n/wNeAboCHYCHgO/U91im+Wk2f
0ymcYnIvSLyRkDa0yIyy13OFpH/FpFVInJMRP4uIm398n5LRD5y\n/4teLyJj/LZl
i8hvRORD4ATQK8j5d4rI/SKyWUSOiMhfRCTe3dZGRN52/wM+4i53ren4InKziOS4\
n/znvEJGf+uUfIyK5InKfiBwQkX0ikiUil4nIlyJyWER+5Zc/SkSmich2ETkkIvP9
Pvv77nu+iBSK\nyAXuPj9yz39ERJaKSHe/46mI/FxEvgK+CvLjeBn4noi08ku7FOf
v+R/uMX4pInvcz7dVRMYFOU6F\nC4FOwJ3AJBGJrSFvJW4AehJ4VFVfUNWjqlququ
+p6k+q2We6iCwQkXlu+T4TkcHV5I0TkT+IyF73\n9Qc3LdH9rJ3dei0Ukc51LbcJI
1W1l70AdgLjA9JuAv7lLncCjgOp7no0cAAY5q5nA3uAc4BE4A3g\nNXdbF+AQcBnO
F90l7nqa3767gIHucWOqKd9GoBvQFvgQeMzd1g74HtAKSMb5r3ih375Vjg9cDvQG\
nBBiNE1yGuvnHAKU4/03HAD8B8oC/uscfCJwEerr5/wv4BOe/8DjgT8Acd1sPQIFo
v/JcBWwD+rvl\neRD4yG+7Au+6nzOhmp/Xl8ANfutzgD+4yxnAbqCzXxl61/Cz/z9
gvvtZDwHf89s2veLnGLCPAn2A\nfu5yz3r8rk0HSoCr3XPeA/y74ueO3+8iMMOt23
QgDfgIJ2BV/JxyG/tv50x/NXoB7NU0Xu4fbiGQ\n7/c6gRtE3Dz/AH7iLl8BbPbbl
g3M9FsfABQDHuCXwKsB51sK/NBv3xl1KN+tfuuXAduryZsJHAko\nW23HXwj8l7s8
BidIeNz1ZPeL8ny//GuBLHc5Bxjnt62T+yUZTfAg8g/gFr/1KLeuu7vrClxcS3kf\
nBP7pLrd29x/irvfBCfDjCRKQA47TCjjm91n+BPzdb/t0ag4iI93l+Hr8rk0HPgn4
/PuAC/1+1hVB\nZDtwmV/eS4Gdfj8nCyKN/LLuLOMvS1VTK17AzwK2vwzc4C7fALw
asH233/LXOP9ltge6A9e4XVn5\nIpIPjML5sg22b3UCj98ZQERaicifRORrETmG04
WU6o4TBD2+iEwUkU/crql8nKDU3i/LIVUtc5dP\nuu/f+G0/CSS5y92BN/0+Ww5Qh
jM2EEx3YJZf/sM4LaIu1ZU3iFeBsW4XztU4AfVzAFXdBtyF82V9\nQETm1tDV8584
ra7F7vrrwEQRSXPXS3F+jl4iUrFegtNygco/y7rwfj5VLQdycX+eATrj/KwrfF1N\
nPtNILIiY+lgIDBKRc3BaIq8HbO/mt3wWzpfMQZwvjFf9A5SqJqrqTL/8dZlOOvD4
e93lX+B04Zyv\nqq2Bi9x0CXZ8EYnD6W77PdDBDZiLA/LXx25gYsDni1fVPQT/XLu
BnwbkT1DVj4KVNxhV/Rr4ACeY\n30jAgLqq/lVVR+EELAUer+ZQP8QJhrtEZD9OV2
AM8H13+y6c1pS/njjBZQ+w1f0836upvEF4f5bu\nhQ5d8f08/e11P0MF/5+7TUHeB
FgQMXWmzpVBC3DGBlap6q6ALDeIyAB3wHcGsMD9b/414DviXAbq\nEecy1TH+g991
9HMR6eoOWj+Ac5USON1NJ3EGr9sCD9dynFicsYs8oFREJgLfrmdZ/D0H/KZicFxE\
n0kTkKndbHlBO5YsFngPuF5GBbv4UEbkmhPO+DNyO06XkDegikiEiF7vB8hRO3ZQH
7iwiXYBxOP8Q\nZLqvwTgBp+IqrSVAPxG5UURi3Pr9LfCGqpaqqgJ3A792L1Zo7V5
oMEpEnq+h7MNE5LviXH12F1CE\nM/YRaA7woFun7XHGqSouOf4GaCciKbXWlIkYCy
Kmvl4GzqVqVxZu2kvAfiAe52ofVHU3zmDyr3C+\nVHcD91L/37+/Av8EduD0lT/mp
v8BSMBp9XyC88VXLVUtcMs2HziC81/3onqWxd8sd/9/ikiBW4bz\n3XOdAH4DfOh2
X31LVd/E+aKe63a/bQQmhnDeN3AG35er6j6/9DhgJk597McZlL4/yP43AutU9Z+q\
nur/iBTyN2+JU1QNu2X6KM86yEWe87LaKg6jqAuA64Ec4rYRvcH42f6+h7H939zni
luO7qloSJN9j\nwBpgA/AF8JmbhqpuwQkyO9y6tW6uRiDOPxLG1I2InAVsATqq6jG
/9GycAdgXInTencCPVXVZJI5v\nGo6ITAf6qOoNteU1TZ+1REyduX3XdwNz/QOIMe
bMFZapGEzL597c9Q3O1TETGrk4xpgmwrqzjDHG\nhMy6s4wxxoTMgogxxpiQtZgxk
dTUVO3Tp0/tGc8Ax48fJzExsbGL0SRYXfhYXfhYXfisXbv2oKqm\n1Z4zuIgGERGZ
gHMNvQd4IeAOZUTkKWCsu9oKSHfvHq64lPQFnDtbFWf+nJ3VnatDhw6sWbMm7J+h\
nOcrOzmbMmDGNXYwmwerCx+rCx+rCR0S+rj1X9SIWRNx5i2bjzNiaC6wWkUWqurki
j6pO9ct/BzDE\n7xCvAL9R1XdFJIkgd9waY4xpXJEcExkBbFPVHapaDMzFuWu5OpN
x7j5FRAbgzHr6LoCqFrp3/hpj\njGlCItmd1YXKM5Hm4k4FEcidc6gnsMJNOhtnHq
S/uenLgGl+s6pW7DcFmAKQlpZGdnZ2OMvfbBUW\nFlpduKwufKwufKwuwqepDKxPw
jdZHzjluhCne2sXzkR7N+E8PMdLVZ8HngfIyMhQ6+N0WH+vj9WF\nj9WFj9VF+ESy
O2sPlafu7uqmBTMJtyvLlYszMdwOVS3FmYJ8aERKaYwxJmSRDCKrgb4i0tN9ZvMk\
ngsyUKiL9gDbAxwH7pvo9GOdiYHPgvsYYYxpXxIKI24K4HecxqDnAfFXdJCIzRORK
v6yTcCb0U799\ny3Ceu7xcRL7AeVjQnyNVVmOMMaGJ6JiIqi7G99jNirSHAtanV7P
vu8Cgup7rZEkZI2eu4N5LM8ga\n0qX2HYwxxpy2FjXtyZ78k9z/ty9Y+Hl1Qy/GGG
PCqalcnXXaTpZCIk6LZMZbm0lJiCEuOopY/5fH\neY+L9rjvTlpUVKiP1m5aFn6+h
98t3cqkbgU8YK0yY0wDaDFB5FiJUDETzuETxdz80uo67xsdJdUE\nHI83Pc4vCHnX
o6OI9XgqpcUFBCz/oOULYoHHqHxekfoHtYWf7+H+v33ByZIy6OZrlQEWSIwxEdNi\
ngkj7eN9zUdKS4vjTD4ZRXFpOUWk5xRWvsjLvcpH/trJyv/SySmkVeQpOlVbJW1xW
TlFJGcVl5ZSU\nhe+5LLHRUcR5Kge1qgHHQ6wnirgYJ+
+STfudAAL8a7/TS3mypIxH3tpEQqyH5LhoEt1Xcrzz3irG\n02JaYcaYxtFigojH/
S5MiPHwwOX9GXpWmwY9f3m5OgEmIPj4B7CioOkBwau0nKJKQa1q3uLSco6e\nKHa2
uWknin0386/K8wWGIydK+Omra4OWWQQSY6NJjPOQFBdNkhtkKi3Hu8uxHpLiY0iK8
wTNkxgb\njccCkjFnnBYTRAC6pCY02jhAVJQQH+UhPsbT4OcGGDlzBXvyTwIw9Zwy
ntzo/Gg7JMfxfzedR2FR\nKYWnSjleXOpbLiqlsKiMwqISjheVOelFpRw+fsK7fLy
otM6trIQYjy/oVBOYKq3HVyx7SIqL8e6T\nGBdNjOf0rvmw8SFjGkaLCSIJMR4+nH
ZxYxej0dx7aYZ3TET8WmX3X9afc7qknNaxi0rL3KBTVim4\nVFn2BqkyCk85gWlv/
qlKeYpK6zYZc1x0lC/QxAYLOkFaTW6eVTsO8/SKrygqLaesi40PGRNJLSaI\nnOkq
vhx/t3QrUBDWVllctIe4JA/tkk77UJSUlQcJQGV+LSNfeoH7fryolIJTpRwoOMXxg
2UUuHkr\nxoBq8odNzq/4yZIy7luwgXdzviEtKY72SbGkJcfRPsl5pSXH0S4plrjo
xmlJGtNcWRBpQbKGdCFr\nSBeys7O54/oxjV2coGI8UaS2iiW1VexpH6u0rJzjxWW
+QOO+3/h/q7x5/iO9jI8OOIGhuKycnL3H\neL+wiIJTpUGP2To+mvbJcU6gqXgPCD
jtk500CzjGWBAxzVi0J4qUhChSEmIqpXdJTfCOD13QQfno\ngC99xT1jADhVUsbBw
iIOFhZzsKCIvMIiDhYUedPyCorqHHAqWjIVAadi3QKOORNYEDEtjv/4UIWE\nGA/3
XprhXY+P8dC1TSu6tmlV6/ECA87BwiLy/ANOYT0DjjfIxFbqTrOAY5ojCyKmxQn3+
FB9A86h\n405LxteyqQg6bsDZf4z3v6o+4CTHR3tbMtV1p6XVI+DYlWomkiyImBap
scaH4mM8dElNoEtqQq15\nKwLOwQL/lo2vO60i4OQV1BJwAsZv/LvTNu09yv9mb3e
uirOZDEwEWBAxppFEIuAcLCjiWDUBZ/Zm\np9VysqSMh/6+kYRYD73TkujertVp35
djzlwWRIxpBkINOFfN/tCbnpGirD/s3ER07FSpdyYDT5TQ\nvW0reqUl0Tstkd5pS
fRy39sknv5VdKZlsyBiTAvjH3D8r1Qb36Wc9YedFkenlHieu2EYOw4Wsv3A\ncbbn
FbIj7zjvf5lHcZnvhtC2ibH0au8ElN7pifRqn0Tv9CS6tUkg2lovhggHERGZAMwCP
MALqjoz\nYPtTwFh3tRWQrqqp7rYy4At32y5V9X8aojGmDqq7Uu2XE/oxuFsqg7ul
VspfVq7kHjnBjjwnsGx3\n35dv+YZ5a4q9+WI8Qvd2iX4tF6cV0ystqcol16Zli1g
QEREPMBu4BMgFVovIIlX1PitdVaf65b8D\nGOJ3iJOqmhmp8hlzJqjvlWqeKCc4dG
+XyNh+6ZW2HT1RwvaDhWw/UMiOg8fZfsAJMstzDlBa7ptf\nrX1SnDeg9E5LpHd6E
r3bJ9GlTYJN0tkCRbIlMgLYpqo7AERkLnAVsLma/JOBhyNYHmPOSOG6Ui2l\nVQxD
z2pTZYbskrJydh/2b704XWNLNu7jyIkSb77Y6Ch6tkukd3rlcZdeaUkkxVnPenMlq
uF7Dkal\nA4tcDUxQ1R+76zcC56vq7UHydgc+AbqqapmbVgqsA0qBmaq6MMh+U4Ap
AGlpacPmz58fkc/S3BQW\nFpKUFIaJrloAqwufxqiLgmJl//Fy9h4vZ/9xZV9hOfu
Ol5N3UvFrvJAaJ3RKFDolRdGpVRSdkoSO\niVG0jReiQnhIW23s98Jn7Nixa1V1eK
j7N5XwPwlYUBFAXN1VdY+I9AJWiMgXqrrdfydVfR54HiAj\nI0PHjBnTYAVuyrKzs
7G6cFhd+DSluiguLWfX4eNsO3C80uD+6gOFFJzyjb3Ex0TRq72v1dI7PYle\n7RPp
lZZIq9jQv76aUl00d5EMInuAbn7rXd20YCYBP/dPUNU97vsOEcnGGS/ZXnVXY0xzE
xsdRZ/0\nZPqkJ1dKV1UOFhazw29Qf0deIRtyj/LOF/vw7zjpkprg1yXmBpm0JDq0
jqv2EdN29374RTKIrAb6\nikhPnOAxCfh+YCYR6Qe0AT72S2sDnFDVIhFpD4wE/ie
CZTXGNAEi4kxmmRzH+b3aVdp2qqSMrw+d\ncMZdKgb38wpZsDaXwiLfDZaJsZ5KV4
tVXJ78Re5RHvr7JudKNbt7P2wiFkRUtVREbgeW4lzi+6Kq\nbhKRGcAaVV3kZp0Ez
NXKgzP9gT+JSDkQhTMmUt2AvDHmDBAf4yGjYzIZHau2Xg4UFDlXi3mvGitk\n9c4j
LFy3N+ix3tvn3ONysqSM3y3dakHkNER0TERVFwOLA9IeClifHmS/j4BzI1k2Y0zLI
CJ0aB1P\nh9bx/Eef9pW2nSwuY8dB52qxO+Z87k3//JCvu2tP/kne/DyXMWen2x36
IWgqA+vGGBN2CbEeBnZO\nYWDnFGb+Y4v37v2f9S/jmc3O11+UwNR564kSGHpWG8b
178C4/un0TU+qdmzF+FgQMcacEfzv3o91\nZ9BPiPHwm/88h95pSSzfcoDlOd/w+J
ItPL5kC93aJjCuXwcu7pfO+b3a2nNeqmFBxBhzRqjt7v3B\n3VK5+5Kz2Xf0JCu2H
GBFzgHmrNrFSx/tJDHWw4V90xjXP52x/dJpnxTXiJ+kabEgYow5Y9Tl7v1O\nKQlc
f353rj+/OyeLy/ho+0GWu0Flyab9iMDgrqmM75/Oxf060L9T8hnd7WVBxBhjqpEQ6
3HHSDqg\nWcqmvcdY4XZ7/f6fX/L7f35J55R4Lu6fzrh+HbigdzviY86sbi8LIsYY
UwciwjldUjinSwp3juvL\ngYJTZG/JY1nON/ztsz289skuEmI8jOzTnnH907m4Xzo
dWsc3drEjzoKIMcaEID05nmvP68a153Xj\nVEkZn+w45LZSDrAs5xsAzu2Swji3lT
Kwc2uiWuAsxhZEjDHmNMXHeBiTkc6YjHQeuVLZ+k0By3Oc\nbq9Zy7/iD8u+Ij05z
m2hdGBkn3anNfdXU9IyPoUxxjQRIkK/jq3p17E1Px/bh0OFRWRvzWP5lm94\na/0+
5qzaTVx0FP/Rux0X9+/AuH7pdK7DY4+bKgsixhgTQe2S4vjesK58b1hXikvLWb3zM
MtyvmF5\nzgFWbt3Ir4H+nVozrl864/qnM7hrarPq9rIgYowxDSQ2OoqRfdozsk97
HrpigPPo4ZwDLN9ygP/N\n3sazK7fRPimWMRnpjO+fzqi+aU3+gV1Nu3TGGNNCiYh
3Ovyfju5N/oli3vsyj+U5B/jnpv0sWJtL\nrCeK83u1dVspHejWtlVjF7sKCyLGGN
MEpLaK5arMLlyV2YWSsnLWfn2E5TnfsHzLAaa/tZnpb23m\n7A5JXNyvA+P7pzPkr
DZN4pn1FkSMMaaJifFE8a1e7fhWr3Y8cPkA/n3wOMtzvmHFlgO88MEOnntv\nO21a
xTAmwxlHuejsNFrHxzRKWS2IGGNME9ezfSI/vrAXP76wF0dPlvDBV3msyDnAyq0He
PPzPURH\nCef1aOvck9K/Az3bJzZY2SyIGGNMM5KSEMMVgzpzxaDOlJUrn+864p2B
+LF3cnjsnRx6pSUyrp9z\nT8rwHm2I8URFrDwRDSIiMgGYhfNkwxdUdWbA9qeAse5
qKyBdVVP9trcGNgMLVfX2SJbVGGOaG0+U\nMLxHW4b3aMsvJ/Rj9+ET3nGUlz/6mj
9/8G9ax0cz2r3aa/TZaaS2ch68VfG8+diOfYadThkiFkRE\nxAPMBi4BcoHVIrLI/
zG3qjrVL/8dwJCAwzwKvB+pMhpjTEvSrW0rbhrZk5tG9qSwqJR/fZXn3o9y\ngLfW
7yVKYHj3tnRMiWfppv0UlZaf9jkj2RIZAWxT1R0AIjIXuAqnZRHMZODhihURGQZ0A
JYAwyNY\nTmOMaXGS4qKZcE4nJpzTifJyZX1uPiu2HGBZzgFWrQ/
+7PlQRDKIdAF2+63nAucHyygi3YGewAp3\nPQp4ArgBGF/dCURkCjAFIC0tjezs7H
CUu9krLCy0unBZXfhYXficqXUxLBaGDYYPW5fy7wJhe4Gw\n7zSP2VQG1icBC1S1z
F3/GbBYVXNretiLqj4PPA+QkZGhY8aMiXQ5m4Xs7GysLhxWFz5WFz5nel08\n8MkK
7/PmT1fkhuxhD9DNb72rmxbMJGCO3/oFwO0ishP4PfADEZkZbEdjjDH1c+
+lGSSE6eFZkWyJ\nrAb6ikhPnOAxCfh+YCYR6Qe0AT6uSFPV6/223wQMV9VpESyrM
cacMfyfN3+63VkRa4moailwO7AU\nyAHmq+omEZkhIlf6ZZ0EzFVVjVRZjDHGVJY1
pAsfTruY4v3b1p7OcSI6JqKqi4HFAWkPBaxPr+UY\nLwEvhbloxhhjwiCSYyLGGGN
aOAsixhhjQmZBxBhjTMgsiBhjjAmZBRFjjDEhsyBijDEmZBZEjDHG\nhMyCiDHGmJ
BZEDHGGBMyCyLGGGNCZkHEGGNMyCyIGGOMCZkFEWOMMSGzIGKMMSZkFkSMMcaELKJ
B\nREQmiMhWEdkmIlWeTCgiT4nIOvf1pYjku+ndReQzN32TiNwayXIaY4wJTcQeSi
UiHmA2cAmQC6wW\nkUWqurkij6pO9ct/BzDEXd0HXKCqRSKSBGx0990bqfIaY4ypv
0g+2XAEsE1VdwCIyFzgKmBzNfkn\nAw8DqGqxX3oc1u1mTIMpKSkhNzeXU6dONXZR
IiYlJYWcnJzGLkaDio+Pp2vXrsTExIT1uJEMIl2A\n3X7rucD5wTKKSHegJ7DCL60
b8A7QB7jXWiHGNIzc3FySk5Pp0aMHItLYxYmIgoICkpOTG7sYDUZV\nOXToELm5uf
Ts2TOsx47oM9brYRKwQFXLKhJUdTcwSEQ6AwtFZIGqfuO/k4hMAaYApKWlkZ2d3YB
F\nbroKCwutLlxWFz51rYuUlBTatWtHYWFh5AvVSMrKyigoKGjsYjSo2NhY8vPzw/
73EMkgsgfo5rfe\n1U0LZhLw82AbVHWviGwELgQWBGx7HngeICMjQ8eMGXOaRW4Zs
rOzsbpwWF341LUucnJyaN26deQL\n1IjOtJZIhfj4eIYMGVJ7xnqI5FjDaqCviPQU
kVicQLEoMJOI9APaAB/7pXUVkQR3uQ0wCtgawbIa\nY5qIQ4cOkZmZSWZmJh07dqR
Lly7e9eLi4toPANx8881s3Vr/r4wrrriCUaNGVUq74YYbWLhwoXe9\ntLSU1NRU7/
qWLVuYOHEiffv2ZejQoUyaNIkDBw7U+9zNVcRaIqpaKiK3A0sBD/Ciqm4SkRnAGlW
t\nCCiTgLmqqn679weeEBEFBPi9qn4RqbIaY5qOdu3asW7dOgCmT59OUlIS99xzT6
U8qoqqEhUV/P/g\nv/zlL/U+7+HDh9mwYQPx8fHs2rWLs846q9Z9Tpw4weWXX84zz
zzDZZddBsDy5cs5dOgQ6enp9S5D\ncxTRq55UdbGqnq2qvVX1N27aQ34BBFWdrqrT
AvZ7V1UHqepg9/35SJbTGNP0bdu2jQEDBnD99dcz\ncOBA9u3bx5QpUxg+fDgDBw5
kxowZ3ryjRo1i3bp13lbDtGnTGDx4MBdccEG1rYQFCxaQlZXFdddd\nx9y5c+tUpt
dee43Ro0d7AwjAuHHj6N+//
+l92GakqQysG2OaoEfe2sTmvcfCeswBnVvz8HcGhrTv\nli1beOWVVxg+fDgAM2fO
pG3btpSWljJ27FiuvvpqBgwYUGmfo0ePMnr0aGbOnMndd9/Niy+
+yM9/\nXnUIds6cOfz2t78lJSWF66+/nvvuu6/W8mzcuJFhw4aF9FlaCrv/whjTbP
Tu3dsbQMD54h86dChD\nhw4lJyeHzZur3oaWkJDAxIkTARg2bBg7d+6skmfv3r3s2
rWLCy64gAEDBlBeXs6WLVsAgl7m3FIv\nfQ6FtUSMMdUKtcUQKYmJid7lr776ilmz
ZrFq1SpSU1O54YYbgt4gGRsb6132eDyUlpZWyTNv3jwO\nHjxIjx49AKf1MmfOHB5
55BHatWvHkSNHvHkPHz5M+/btARg4cCCffvppuD5es2QtEWNMs3Ts2DGS\nk5Np3b
o1+/btY+nSpSEfa86cOSxbtoydO3eyc+dOVq1axZw5cwAYM2YMc+fOpaSkBICXXnq
JsWPH\nAnDjjTeSnZ3NkiVLvMdauXLlGXU3vLVEjDHN0tChQxkwYAD9+vWje/fujB
w5MqTjbN+
+nX379lXq\nJuvbty/x8fGsXbuWrKwsPvvsM4YNG0ZUVBR9+/blueeeA6BVq1a8/f
bbTJ06lTvuuIOYmBgyMzOZ\nNWtWWD5jcyCVr6xtvjIyMjSU68JbIrvBzsfqwqc+N
xu29KuLztSbDYP9bEVkraoOr2aXWll3ljHG\nmJBZEDHGGBMyCyLGGGNCZkHEGGNM
yCyIGGOMCZkFEWOMMSGzIGKMaVLCMRU8wIsvvsj+/fur3V5c\nXEzbtm158MEHK6V
37dqV/Px87/qyZcvIysryrr/zzjsMGzaMgQMHkpmZyS9/+ct6fLqWx4KIMaZJ\nqZ
gKft26ddx6661MnTrVu+4/hUltagsiS5cuZcCAAcybN6/Ox1y/fj133XUXc+bMYdO
mTaxdu9Y7\nVcqZyoKIMabZePnllxkxYgSZmZn87Gc/o7y8nNLSUm688UbOPfdczj
nnHJ5+
+mnmzZvHunXruO66\n66ptwcyZM4e7776bjh07smrVqjqd//HHH+fXv/41Z599NuD
MxXXbbbeF9TM2NzbtiTGmev+YBvvD\n/Dy4jufCxJn13m3jxo28+eabfPTRR0RHRz
NlyhTmzp1L7969OXjwIF984ZQzPz+f1NRUnnnmGZ59\n9lkyMzOrHOvEiRNkZ2d7W
ytz5sxhxIgRdSrDAw88UO+yt2TVtkRE5FIRuTpI+tUickldDi4iE0Rk\nq4hsE5Fp
QbY/JSLr3NeXIpLvpmeKyMcisklENojIdfX5UMaYlmfZsmWsXr2a4cOHk5mZyXvvv
cf2\n7dvp06cPW7du5c4772Tp0qWkpKTUeqzFixdzySWXEB8fzzXXXMMbb7xBeXk5
YFO/11dNLZGHgKwg\n6dnAW8C7NR1YRDzAbOASIBdYLSKLVNU74b+qTvXLfwdQ8QT
5E8APVPUrEekMrBWRparqG+0yxkRe\nCC2GSFFVfvSjH/Hoo49W2bbBmlP8AAAgAE
lEQVRhwwb+8Y9/MHv2bN544w2ef77mh6EuWLCANWvW\neMcz8vLyeO+99xg7dqx36
veK56gHTv2+du1aBg5sWlPkN6aaxkTiVDUvMFFVDwKJQfIHGgFsU9Ud\nqloMzAWu
qiH/ZGCOe44vVfUrd3kvcABIq8M5jTEt1Pjx45k/fz4HDx4EnKu4du3aRV5eHqrKN
ddc\nw4wZM/jss88ASE5OpqCgoMpx8vPzWb16Nbm5ud6p359++ulKU7+/
+uqrAJSWlvL66697p36/7777\nePTRR9m2bRsAZWVl3hl9z1Q1BZHWIlKlpSIiMUB
CHY7dBdjtt57rplUhIt2BnsCKINtGALHA9jqc\n0xjTQp177rk8/PDDjB8/nkGDBv
Htb3+bb775ht27d3PRRReRmZnJzTffzG9/+1sAbr75Zn784x9X\nGVh/4403GDt2L
DExMd60rKwsFi5cSElJCdOnT2fz5s0MHjyYoUOH0r9/fyZPngzAkCFDeOKJJ7j2\n
2msZMGAA5557Ll9//XXDVkQTU+1U8CIyE+gA3K6qx920JGAWcFBVa7w42h1PmaCqP
3bXbwTOV9Xb\ng+T9JdBVVe8ISO+E0332Q1X9JMh+U4ApAGlpacPmz59f86c9QxQW
FpKUlNTYxWgSrC586loXKSkp\n9OnTpwFK1HjKysrweDyNXYwGt23bNo4ePVopbez
Ysac1FXxNYyIPAo8BX4vI14AA3YD/A35dh2Pv\ncfNX6OqmBTMJ+Ll/goi0Bt4BHg
gWQABU9XngeXCeJ2LPjXDYMzR8rC586vM8kZb+rI0z9Xki8fHx\nDBkypPaM9VBtE
FHVUmCaiDwCVPxbsk1VT9bx2KuBviLSEyd4TAK+H5hJRPoBbYCP/dJigTeBV1R1\n
QR3PZ4wxpoFVG0RE5LsBSQqkisg6Va06WhWYWbVURG4HlgIe4EVV3SQiM4A1qrrIz
ToJmKuV+9Wu\nBS4C2onITW7aTaq6rk6fyhhjTIOoqTvrO0HS2gKDROQWVa0yCB5I
VRcDiwPSHgpYnx5kv9eA12o7\nvjHGmMZVU3fWzcHS3Sup5gPnR6pQxhhjmod6z52
lql8DMbVmNMYY0+LVO4i4A+FFESiLMcaEZSr4\nm2+
+ma1bt9b73FdccQWjRo2qlHbDDTewcOFC73ppaan3bnaALVu2MHHiRPr27cvQoUOZ
NGkSBw4c\nqPe5A1166aVBb5b0V9tMxQ2hpoH1t3AG0/21BToBN0SyUMaYM1fFVPA
A06dPJykpiXvuuadSHlVF\nVYmKCv5/8F/
+8pd6n/fw4cNs2LCB+Ph4du3axVlnnVXrPidOnODyyy/nmWee4bLLLgNg+fLlHDp0
\niPT09HqXwd/SpUtrzfPiiy8ydOhQOnbseFrnOh01tUR+Dzzh9/o9cCtwMxZEjDG
uhZ/vYeTMFfSc\n9g4jZ65g4efV3Q52erZt28aAAQO4/vrrGThwIPv27WPKlCkMHz
6cgQMHMmPGDG/eUaNGsW7dOm+r\nYdq0aQwePJgLLrig2lbCggULyMrK4rrrrmPu3
Ll1KtNrr73G6NGjvQEEYNy4cfTv379SvmXLljF2\n7FgmTpxIRkYGP//5z6m4IPW1
117zTmP/q1/9yrtPxcOxtm3bxjnnnMMtt9zCwIEDmThxIqdOnQo6\n3f29997LgAE
DGDRoUIM9LKvaIKKq71W8gGM4V2u9DTwC5DRI6YwxTdrCz/dw/9++YE/
+SRTYk3+S\n+//2RcQCyZYtW5g6dSqbN2+mS5cuzJw5kzVr1rB+/XreffddNm/eXG
Wfo0ePMnr0aNavX88FF1zA\niy+
+GPTYc+bMYfLkyUyePNk7j1ZtNm7cyLBhw+qU99NPP+WPf/wjmzdvJicnh7///e/k
5uby4IMP\nsnLlSj7//HM+/PBD3n777Sr7bt26lbvuuotNmzaRkJDAwoULvcGjIpg
cOXKExYsXs2nTJjZs2MD9\n999fp3Kdrpqmgj9bRB4WkS3AM8AunGlSxqrqsw1SOm
NMk/a7pVs5WVJWKe1kSRm/W1r/8Yi66N27\nN8OH+2bomDNnDkOHDmXo0KHk5OQED
SIJCQlMnDgRgGHDhrFz584qefbu3cuuXbu44IILGDBgAOXl\n5WzZsgUI39Tw3/rW
t+jRowcej4dJkybxr3/9i08//ZSLL76Y9u3bExMTw/e//33ef//9Kvv26dOH\nc88
9t8bP0LZtW6KiovjJT37Cm2+
+SWJiXebJPX01dWdtAS4GrlDVUar6DFBWQ35jzBlmb37wCSyq\nSz9d/l+MX331Fb
NmzWLFihVs2LCBCRMmcOrUqSr7+D9S1+PxUFpaWiXPvHnzOHjwID169KBHjx7s\n2
rXL2xqpmBq+QrCp4esiMPDUJxDFxcXV+hliYmJYs2aNdzLJyy+/vM7HPx01BZHvAv
uAlSLyZxEZ\nhzN/ljHGANA5NfiE3tWlh9OxY8dITk6mdevW7Nu3r04D0dWZM2cOy
5Yt804Nv2rVqkpTw8+dO5eS\nkhIAXnrpJe/U8DfeeCPZ2dksWbLEe6yVK1eSk1O1
x/+TTz5h165dlJWVMX/
+fEaNGsX555/PypUr\nOXToEKWlpcydO5fRo0fXudz+090XFBRw7NgxrrjiCp566i
k+//zzkOujPmq62XAhsFBEEnGeA3IX\nkC4ifwTeVNV/NkgJjTFN1r2XZnD/376o1
KWVEOPh3kszIn7uoUOHMmDAAPr160f37t0ZOXJkSMfZ\nvn07+/btq9RN1rdvX+Lj
41m7di1ZWVl89tlnDBs2jKioKPr27et9hkirVq14+
+23mTp1KnfccQcx\nMTFkZmYya9asKucZMWIEt956K9u3b2f8+PFceeWViAiPPvoo
Y8aMQVX5zne+U68WRMV09wkJCSxa\ntIirr76aoqIiysvLefLJJ0Oqj/qqdir4oJl
F2gDXANep6riIlSoEGRkZGsp14S2RzVzrY3XhU59Z\nfAOvLqrJws/38LulW9mbf5
LOqQnce2kGWUOCPjqoyWjoWXyXLVvGs88+W+l+k8YQ7GcrIhGbCr4K\nVT2CM/V6z
c+eNMacMbKGdGnyQcNETr2CiDHGmPobP34848ePb+xiRES9pz0xxhhjKlgQMcYYEz
IL\nIsYYY0IW0SAiIhNEZKuIbBORaUG2PyUi69zXlyKS77dtiYjki0jVOQCMMcY0C
RELIiLiAWYDE4EB\nwGQRGeCfR1WnqmqmqmbiTK3yN7/NvwNujFT5jDFNUzimgofa
p0kvLi6mbdu2PPjgg5XSKyY+rLBs\n2TKysrK86+
+88w7Dhg1j4MCBZGZmhmWiw927d3PdddfVmKe8vJyZM2ee9rnCLZItkRHANlXdoar
F\nwFycmxarMxnwznqmqsuBWp/lboxpWSqmgl+3bh233norU6dO9a77T2FSm9qCyN
KlSxkwYADz5s2r\n8zHXr1/PXXfdxZw5c9i0aRNr166lR48edd6/Ot26dau1HE01i
ETyEt8uwG6/9VyqeaSu+8jdnkCt\nz20P2G8KMAUgLS2N7OzskAra0hQWFlpduKwu
fOpaFykpKbU+DMlfdM6bxH0wEynYiyZ3pujCaZT2\n/8/TKKlPUVERMTEx3vK8/vr
r/PnPf6akpIQRI0bwxBNPUF5ezm233cYXX3yBqnLTTTeRnp7OunXr\nuOaaa0hISG
DlypWVAlBZWRmvvPIKt912G7Nnz2blypXeO9ZVlYKCAjweD+A8M6S0tJSCggIee+w
x\n7rnnHjp16uQt0w033FClvmbMmMGePXv46quvOHz4ML/4xS+48cYbKS8v54EHHm
DFihWICNOmTSMr\nK4vt27fzgx/8gA8//JCXX36ZZcuWUVBQwM6dO8nKymL69Ok88
MADFBQUMGjQIAYOHMgTTzzBD3/4\nQ/bv309ZWRn3339/pRZTMKdOnQr730NTuU9k
ErBAVes1waOqem98zMjIULsz2WF3aftYXfjU5471\nOt/NvWE+vHsflDgTLkrBHhL
evQ/i42HQtadRWkdcXBxxcXEkJyezceNGlixZwqeffkp0dDRTpkzh\nnXfeoXfv3h
w9epRNmzYBkJ+fT2pqKi+88ALPPvssmZmZVY77zTff8OGHH/Lqq69y9OhRFi1a5J0
P\nS0RITk721kGrVq2Ijo4mOTmZrVu3Mn369FrrJy4uji1btvDRRx9x7Ngxhg4dyv
e+9z2ys7PZvn07\nX3zxBXl5eZx33nlceumlJCUlERUVRXJyMvHx8d5WTkxMDGeff
Ta/
+MUvePLJJ3nllVfYsGED4Ewa\n2adPH959913AmfK+tnLFx8czZMiQ+v0QahHJ7qw
9QDe/9a5uWjCT8OvKMsY0E8tneAOIV8lJJz3M\nli1bxurVqxk+fDiZmZm89957bN
+
+nT59+rB161buvPNOli5dSkpKSq3HWrx4MZdccgnx8fFcc801\nvPHGG5SXlwPhm/
o9KyuL+Ph40tPTueiii1i9ejX/
+te/mDx5Mh6Ph44dOzJq1CjWrFlTZd/x48fT\nunVrEhIS6NevH7t27aqSZ9CgQSx
ZsoRp06bx4Ycf1ulzR0Ikg8hqoK+I9BSRWJxAsSgwk/vM9jbA\nxxEsizEmEo7m1i
/9NKgqP/rRj7zjI1u3buXXv/417dq1Y8OGDVx44YXMnj2bn/70p7Uea8GCBSxZ\ns
oQePXpw3nnnkZeXx3vvvQc0n6nf+/fvz5o1axg4cCDTpk3jt7/9bZ2PH04RCyKqWg
rcDizFeRLi\nfFXdJCIzRORKv6yTgLkaMBOkiHwA/D9gnIjkisilkSqrMSZEKV3rl
34axo8fz/z58zl48CDgXMW1\na9cu8vLyUFWuueYaZsyYwWeffQZUnibdX35+PqtX
ryY3N9c79fvTTz9daer3V199FYDS0lJef/11\nb1fXfffdx6OPPsq2bdsAZ2ylYkb
fQAsXLqSoqIi8vDw+
+OADhg8fzoUXXsjcuXMpLy/3dqn5zx5c\nk+joaG+ZAPbs2UNSUhI33ngjv/jFL7y
fu6FFdExEVRcDiwPSHgpYn17NvhdGrmTGmLAY9xC8dWfl\nLq2YBCc9zM4991wefv
hhxo8fT3l5OTExMTz33HN4PB5uueUWVBUR4fHHHwcqT5O+atUq78D6G2+8\nwdixY
4mJifEeOysriwceeIDZs2czffp0br31VgYPHoyqctlllzF58mQAhgwZwhNPPMG111
7rfQDW\nVVcFv+j0nHPOYfTo0Rw6dIhHHnmEDh06cPXVV/PJJ58waNAgRIQnn3yS9
PR0jh07Vqc6uOWWWxg0\naBDDhw9n0qRJTJs2jaioKGJjY6sNZpFWr6ngmzKbCt7H
BpN9rC58IjUVPBvmO2MgR3OdFsi4h8Iy\nqB5JkZ4K/sEHH6R9+/bcddddETtHKBp
9KnhjjKli0LVNPmiYyLEgYowxYfbYY481dhEajE3AaIwx\nJmQWRIwxVbSUsVLjE6
mfqQURY0wl8fHxHDp0yAJJC6KqHDp0iPj4+LAf28ZEjDGVdO3aldzcXPLy\n8hq7K
BFz6tSpiHyhNmXx8fF07Rr+
+3csiBhjKomJiaFnz56NXYyIys7ODvscUmcq684yxhgTMgsi\nxhhjQmZBxBhjTMg
siBhjjAmZBRFjjDEhsyBijDEmZBZEjDHGhMyCiDHGmJBFNIiIyAQR2Soi20Rk\nWp
DtT4nIOvf1pYjk+237oYh85b5+GMlyGmOMCU3E7lgXEQ8wG7gEyAVWi8giVd1ckUd
Vp/rlvwMY\n4i63BR4GhgMKrHX3PYIxxpgmI5ItkRHANlXdoarFwFwg+HMkHZOBOe
7ypcC7qnrYDRzvAhMiWFZj\njDEhiOTcWV2A3X7rucD5wTKKSHegJ7Cihn27BNlvC
jAFIC0tjezs7NMudEtQWFhodeGyuvCxuvCx\nugifpjIB4yRggaqW1WcnVX0eeB6c
Z6zbs7Qd9lxxH6sLH6sLH6uL8Ilkd9YeoJvfelc3LZhJ+Lqy\n6ruvMcaYRhLJILI
a6CsiPUUkFidQLArMJCL9gDbAx37JS4Fvi0gbEWkDfNtNM8YY04RErDtLVUtF\n5H
acL38P8KKqbhKRGcAaVa0IKJOAuer3GDVVPSwij+IEIoAZqno4UmU1xhgTmoiOiaj
qYmBxQNpD\nAevTq9n3ReDFiBXOGGPMabM71o0xxoTMgogxxpiQWRAxxhgTMgsixh
hjQmZBxBhjTMgsiBhjjAmZ\nBRFjjDEhsyBijDEmZBZEjDHGhMyCiDHGmJBZEDHGG
BMyCyLGmDPHhvnw1Dmwb53zvmF+Y5eo8bh1\nMaxT1LDTOUxTeSiVMcZE1ob58Nad
UHISOgJHdzvrAIOubdSi1Zuq80JBy92X33KVdK2cvvnv8O5D\nUHrqtItiQcQY0zK
Vl8OJg3BsLxTsg8X3OQEEOGeP+wy8kpOw6A5YP5dav3ir/ZKmhi9v/3St4Rh+\n56
hLYGhCLIgYY5qfokIo2A8Fe+HYPue9YL8vYBzbB4X7obw06O7xJUd8K6Wn4FQ+SJT
zQtxlgSiP\n8+5Nc9OD5Q2a7pe/PnnFHWmo9ZxRdSxfwHnfnhq2H4UFEWNM01FWCs
cPVBMY3PWCfVB0rOq+ca0h\nuSMkd4KeF7rLnaF1J+d93vXOvsCaHj9jzNaHnf1Su
sFPVjTgh2wCPnjS6c4Lg4gGERGZAMzCebLh\nC6o6M0iea4HpOI3C9ar6fTf9ceBy
N9ujqjovkmU1xkSQKpw6Wk3rYZ8v7fiBqt01UdGQ1NEJBmln\nQ68xvsCQ3BFau+9
xyTWX4ZIZvjGRCjEJMO6h6vdpqcY9VLUuQhSxICIiHmA2cAmQC6wWkUWqutkv\nT1
/gfmCkqh4RkXQ3/XJgKJAJxAHZIvIPVQ3y74cxplGVFjtdR8f2Of/pe1sN+yq3JEp
OVN03oY3T\nckjuBB0GBgSGTs57q/YQFYYLSSsGz5fPcN5Tujlfps1tUD0cKtVFzm
kdKpItkRHANlXdASAic4Gr\ngM1+eX4CzFbVIwCqesBNHwC8r6qlQKmIbAAmAGfw9
XjGhGjDfOfLouOP4anb6/7FqQonjwTpTgpo\nSRzPq7qvJ84XDDoNgrMnuK0H91Wx
HJMQ/s9bk0HXOq/sbJi8sWHP3dS4dbH2bll7OoeJZBDpAvh3\nuuUC5wfkORtARD7
E6fKarqpLgPXAwyLyBNAKGEvl4IO73xRgCkBaWhrZ2dlh/gjNU2FhodWF64yv\ni5
NH4Oh+6PhjCuM6k93xx7B5P1G75xEbVU5c0WHiig4RW+y8O8tH3OXDRGlJlUMWx6R
QFNeW4th2\nFLUeSlFaW4pj21IU146iuHYUx7alJCbZHfD13xE4BBwqAXa5r8Zxxv
9ehFFjD6xHA32BMUBX4H0R\nOVdV/yki5wEfAXnAx0BZ4M6q+jzwPEBGRoaOGTOmg
YrdtGVnZ2N14Thj6+JkPhzZCa/9CE4cAuBQ\nYh/aHd9W/T4xrZzWQZvOkDzQ153k
33pI6khsdCyxDfMpIuaM/b2IgEgGkT1AN7/1rm6av1zgU1Ut\nAf4tIl/iBJXVqvo
b4DcAIvJX4MsIltWY5qWsxLm65sjXTrAIfJ3Kr7JLbGnAmMRV/
+sboG7dybm6\nKbD1YEwtIhlEVgN9RaQnTvCYBHw/IM9CYDLwFxFpj9O9tcMdlE9V
1UMiMggYBPwzgmU1pmmpGI84\n8u/gQeJobuWrmDyxkHoWtOkBXYc77216wDu/gMJ
vAFjb46eVL2sdcn0DfiDTUkUsiKhqqYjcDizF\nGe94UVU3icgMYI2qLnK3fVtENu
N0V93rBo544ANx/is6BtzgDrIb03KUFkH+bjcw+AcLt3VRXFA5\nf2K6Exi6fQsG9
fAFijbdne6mKE/Vc5SctMtaTURFdExEVRcDiwPSHvJbVuBu9+Wf5xTOFVrGNF+q\n
zpVLVVoSbpA4tgfn9ihXdLwvMPQYCandKweK2MT6l8EuazUR1tgD68Y0byUnfUEhP
8j4ROC9Ecmd\nnaDQ80K/AOG+kjpEZkzCLms1EWRBxJialJc7N9JVN4BduL9y/phE
aNsT2vSEXmMrB4nUsyAmvmHL\nb0yEWRAxLVN9brArKgzeiqjoeior8uWVKGjdxQk
Kfce7AaKnL1C0amdXOJkzigUR0/IEe27Eotsh\nb6vzRR8YKE4crLx/XGsnX1o/50
5r/9ZESjeIbu53SRgTPhZETPOnCoUHIH+X06J45x7v1Ugjdjzt\n5Cktgg9+7yyLB
1K7OUGh/xUBXU7dnfmcrDVhTJ1YEDFNn6pz13X+106gOPK1L2Dk73Je1TyhrTC+\n
I61KDvkS/ms9tO4KHvvVNyYc7C/JND5V5w7rYMGhIq3keOV9Eto4rYa0fnD2pc5y6
lnO+2vfdS+f\nhc2dryXd/wa7Nj0a9rMZ08JZEDEN49Sx4MGhIi3wIUNxKdDmLGjX
G3qP9QWJNt2dYBDfuvpzjZ9u\nN9gZ00AsiJjwKCr0zeXkDQ5+3U+BcznFJDoBIbU
7dB/pLp/la00kpIZeFrvBzpgGY0HE1E3JSWeK\njsDgUBEwThyqnD86wddy6HqeLz
hUzO8U6cFru8HOmAZhQaQlCfXhQ+BcvXQ0171fIsjYhDuJn1fF\nhH+pZ0Gnwb6AU
REoEtPsCidjzgAWRFqKYPdGvHWns23Qte7U4bnVD1wX7KPSPE5R0U43UOpZ7sB1\n
RUvCDRJJHcLzyFJjTLNmQaQlUIVl070DyR2Pfu6kl5yEv9/utE6O7ak8dbh4IKWLE
xQCB65Tz6p+\nVlhjjPFjQaQpU4WiAve51vuc98L9ldcr3v3uk+i3f6HvGGVFwQeu
W3cGT0wjfChjTEtiQaSxFBU6\n4wyBwaBgHxT4pQfeHwEQmwzJHZ1X1/Oc989e9V4
B9UnP/
+Jb/57l5E3pBt/9UwN+MGPMmcSCSLiV\nnKwaCKq876/6wCFwrmhq7T7PunMmJLmB
IrmT33sHiEuuum/HQd4xkVOxbZ00uzfCGBNhEQ0iIjIB\nmIXzZMMXVHVmkDzXAtN
xRnXXq+r33fT/AS4HooB3gf9yH2LVOEqLfAGgpq6lU0er7uuJ8wWBDgOh\nz3hfS8
I/SJzOM67t3ghjTCOIWBBxn5M+G7gEyAVWi8giVd3sl6cvcD8wUlWPiEi6m/4fwEi
cZ6sD\n/AsYDWRXe8KSE/DUOfX/4iwrcbuVgrUY/FoOJw9X3TcqxhcI2veFnhdVbT
kkdWi4Cf3s3ghjTAOL\nZEtkBLBNVXcAiMhc4Cpgs1+enwCzVfUIgKoecNMViAdiA
QFigIAbFYLwv6x14Hfh+IHKgSAwMBTs\nqzoNODhXLlUEh7a94KwLArqU3PeENnaZ
qzHmjBbJINIF2O23ngucH5DnbAAR+RCny2u6qi5R1Y9F\nZCWwDyeIPKuqOYEnEJE
pwBSAjA4JHEwcSFxpAbGL7ib2b1MQKvd+KVEUx6ZQHNuWori2FKcMoyi9\nrW/dfS
+JSXYCSeWd4Zj74qD7apoKCwvJzs5u7GI0CVYXPlYXPlYX4dPYA+vRQF9gDNAVeF9
EzgXa\nA/3dNIB3ReRCVf3Af2dVfR54HmBYl1htf/xL38bRv6zcpZTcCUlMI84TTR
wQZGi6xcjOzmbMmDGN\nXYwmwerCx+rCx+oifCIZRPYA3fzWu7pp/nKBT1W1BPi3i
HyJL6h8oqqFACLyD+AC4AOqURjXAbeZ\n4Awqj/1VWD6EMcaY6kWyQ3810FdEeopI
LDAJWBSQZyFOwEBE2uN0b+0AdgGjRSRaRGJwBtWrdGcF\nZZe1GmNMg4lYEFHVUuB
2YClOAJivqptEZIaIXOlmWwocEpHNwErgXlU9BCwAtgNfAOtxLv19q9aT\npnSD7z
xtl7UaY0wDieiYiKouBhYHpD3kt6zA3e7LP08Z8NN6nSymFUy1y1qNMaYh2fWpxhh
jQmZB\nxBhjTMgsiBhjjAmZBRFjjDEhsyBijDEmZBZEjDHGhMyCiDHGmJBZEDHGGB
MyacznPIWTiBQAW8N8\n2BQgyFOmQs5bXZ66pte07r/cnvBPM2x1UXsZQ81bn7qoS
1pD1UV96qGu+a0uas8T7rrIUNXQ56RV\n1RbxAtZE4JjPhzNvdXnqml7TesCy1UUL
rYu6pDVUXdSnHqwuWm5dWHdWzWqfr6t+eavLU9f0mtbr\nU9ZQWF2Edvxw10Vd0hq
qLup7bKuL+uVvFnXRkrqz1qjq8MYuR1NgdeFjdeFjdeFjdeFzunXRkloi\nzzd2AZ
oQqwsfqwsfqwsfqwuf06qLFtMSMcYY0/BaUkvEGGNMA7MgYowxJmQWRIwxxoTsjAg
iIjJG\nRD4QkedEZExjl6exiUiiiKwRkSsauyyNSUT6u78TC0TktsYuT2MSkSwR+b
OIzBORbzd2eRqTiPQS\nkf8TkQWNXZbG4H4/vOz+PlxfW/4mH0RE5EUROSAiGwPSJ
4jIVhHZJiLTajmMAoVAPJAbqbJGWpjq\nAuCXwPzIlLJhhKMuVDVHVW8FrgVGRrK8
kRSmulioqj8BbgWui2R5IylMdbFDVW+JbEkbVj3r5bvA\nAvf34cpaj93Ur84SkYt
wAsArqnqOm+YBvgQuwQkKq4HJgAf474BD/Ag4qKrlItIBeFJVa42uTVGY\n6mIw0A
4noB5U1bcbpvThFY66UNUDInIlcBvwqqr+taHKH07hqgt3vyeA11X1swYqfliFuS4
WqOrV\nDVX2SKpnvVwF/ENV14nIX1X1+zUdOzqiJQ8DVX1fRHoEJI8AtqnqDgARmQ
tcpar/DdTURXMEiItE\nORtCOOrC7c5LBAYAJ0VksaqWR7LckRCu3wtVXQQsEpF3g
GYZRML0eyHATJwvj2YZQCDs3xctRn3q\nBSegdAXWUYfeqiYfRKrRBdjtt54LnF9d
ZhH5LnApkAo8G9miNbh61YWqPgAgIjfhttAiWrqGVd/f\nizE4Tfc4YHFES9bw6lU
XwB3AeCBFRPqo6nORLFwDq+/vRTvgN8AQEbnfDTYtUXX18jTwrIhcTh2m\nR2muQa
ReVPVvwN8auxxNiaq+1NhlaGyqmg1kN3IxmgRVfRrny+OMp6qHcMaGzkiqehy4ua7
5m/zA\nejX2AN381ru6aWciq3ZUJTwAAAUZSURBVAsfqwsfqwsfq4vgwlIvzTWIrA
b6ikhPEYkFJgGLGrlM\njcXqwsfqwsfqwsfqIriw1EuTDyIiMgf4GMgQkVwRuUVVS
4HbgaVADjBfVTc1ZjkbgtWFj9WFj9WF\nj9VFcJGslyZ/ia8xxpimq8m3RIwxxjRd
FkSMMcaEzIKIMcaYkFkQMcYYEzILIsYYY0JmQcQYY0zI\nLIiYJktEdopI+9PNU4/
zFYbjOC2BiNwlIq0auxym6bMgYkwjEJHTnrfOnco7Uu4C6hVEIlwe00RZ\nEDGNTk
QWishaEdkkIlOCbO8hIltE5HURyRHnSYT+X3B3iMhnIvKFiPRz9xkhIh+LyOci8pG
IZNSx\nLL8RkfUi8omIdBCRZBH5t4jEuNtbV6yLSLaIzBKRdSKyUURGuHkS3YcArX
LPf5WbfpOILBKRFcBy\ncZ64+b6IvCPOg4GeE5EoN+8fxXn65CYRecSvfDtF5HER+
Qy4RkR+IiKr3TK/UVEvIvKSe4xPRGSH\ne64X3fp7ye9433br6TMR+X8ikiQidwKd
gZUisrK6fMHKU8cfuWlJVNVe9mrUF9DWfU8ANgLt3PWd\nQHugB87TKUe66S8C9/j
lucNd/hnwgrvcGoh2l8cDb7jLnYHF1ZRDge+4y/8DPOgu/wXIcpenAE+4\ny9nAn9
3li+D/t3cuoTZGURz//T1K3bwyUAZESF4x8IrBHUiRkoi8QoZiJEyYEGViYEBSJLp
kYMBA\n3YEbbl2vuK4bRgaKpOgSecQy2OvLdjrnHj7q3jrrV6ezv2+vvb61dqezvr
13rcVjbx8CNnp7BKnw\nTxOwhZRuu/C3GfgMTCAVSGoFVlfMyUB/zszM392ZzaOy9
sFsLs4AFwCRakS8B2aQXhzvA7N8bm8A\nTT5mD7A/n3tv15PbXW0+49MYn1iJBP2B
nZI6gQ5SVtFJVWRemFm7t88Bi7K+Is3/fVLAARgOXFIq\nB3oUmAZgZi/NbFkNO74
CRaXHXNcpfqXG3koKKgUtrvcGMEzSCGAJsFfSQ1IAGAKMdflWM3ubjb9j\nqRzrd9
dV+LXG3+4fuO1TszEXs/Z0STcldQEbCj+dK2ZmQBfw2sy6LNWP6Xbf5rvedrd1MzC
uyrzU\nk7tYZUzQIDREPZGg/6JUGGoxsMDMPklqI/3pVlKZ5C2//uLf3/n1mz4AXD
ezlUoV3dr+wJxv/qf7\nmy4za/cttWZgoJnldaqr2SVglZk9yzskzQM+9uIHgEkaD
+wC5pjZO99+yuck13GGtErqVCo01pz1\nFfPyI2sX14Pcx1YzW0fvqI5cpU9BAxEr
kaCvGQ688wAyhfTWW42xkhZ4ez1w6w/0FrURtvyzlXCW\nVD73dMX9tQCSFgE9ZtZ
Dyoq6Q5K8b3YveucqpeIe4LpukbbiPgI9kkYDS3sZPxR45Wc2G/7Spw5g\noaSJbm
eTpMne98F115MLGpwIIkFfcw0YJOkJqcZ3Rw25Z8B2lxsJHK+j9whwWNIDshW3pDG
SypTC\nPe/Pbam4/9mfcQLY5vcOAIOBR5K6/boWd0klm58Az4HLZtZJ2sZ6Sgpc7b
WHsw+47TJP/8YhM3tD\nCrAtkh6RUoVP8e6TwDVJ1+vIBQ1OpIIP+j2+HXXVzKb3o
Q2rgRVmtim710Y64L9XUmezj1/+X4wM\ngj4gzkSCoA6SjpG2lGodyAdBwxIrkSAI
gqA0cSYSBEEQlCaCSBAEQVCaCCJBEARBaSKIBEEQBKWJ\nIBIEQRCUJoJIEARBUJq
fAt9An/qhPZsAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 Essay features\n",
"\t-10.2332\tfaced \t\t-3.0759\tuntil
\n",
"\t-10.2299\tdo \t\t-3.2383\tattention
\n",
"\t-10.2233\tkinesthetic \t\t-3.3290\ttrack
\n",
"\t-10.2200\tpillows \t\t-3.5306\tteams
\n",
"\t-10.2200\tthing \t\t-3.8037\tparent
\n",
"\t-10.2200\twho \t\t-3.8959\tinteresting
\n",
"\t-10.2102\tnthere \t\t-4.0280\tnothing
\n",
"\t-10.2102\tread \t\t-4.1649\tballs
\n",
"\t-10.2070\tsongs \t\t-4.2038\ttruly
\n",
"\t-10.2037\tany \t\t-4.3037\ttraditional
\n",
"top 10 Title features\n",
"\t-10.2332\tforward \t\t-3.2383\tbetter
\n",
"\t-10.2299\telmo \t\t-3.3290\twow
\n",
"\t-10.2233\tlots \t\t-3.5306\twalk
\n",
"\t-10.2200\treaders \t\t-3.8037\tproduction
\n",
"\t-10.2200\twhy \t\t-3.8959\tleft
\n",
"\t-10.2102\tpersonal \t\t-4.0280\tpe
\n",
"\t-10.2102\tset \t\t-4.1649\tbook
\n",
"\t-10.2070\ttechnological \t\t-4.2038\tyoung
\n",
"\t-10.2037\tawesome \t\t-4.3037\twrite
\n",
"\t-10.2037\tstrong \t\t-4.4600\thealth
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.047690</td>\n",
" <td>0.001457</td>\n",
" <td>0.010009</td>\n",
" <td>0.000210</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.689902</td>\n",
" <td>0.679940</td>\n",
" <td>0.664630</td>\n",
" <td>0.687069</td>\n",
" <td>0.676038</td>\n",
" <td>0.679516</td>\n",
" <td>0.008931</td>\n",
" <td>6</td>\n",
" <td>0.753943</td>\n",
" <td>0.759473</td>\n",
" <td>0.755928</td>\n",
" <td>0.756936</td>\n",
" <td>0.757268</td>\n",
" <td>0.756710</td>\n",
" <td>0.001804</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.047116</td>\n",
" <td>0.000351</td>\n",
" <td>0.009964</td>\n",
" <td>0.000109</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.692970</td>\n",
" <td>0.682313</td>\n",
" <td>0.667968</td>\n",
" <td>0.688589</td>\n",
" <td>0.679351</td>\n",
" <td>0.682239</td>\n",
" <td>0.008573</td>\n",
" <td>5</td>\n",
" <td>0.753197</td>\n",
" <td>0.758742</td>\n",
" <td>0.755082</td>\n",
" <td>0.756242</td>\n",
" <td>0.756510</td>\n",
" <td>0.755954</td>\n",
" <td>0.001818</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.047997</td>\n",
" <td>0.002250</td>\n",
" <td>0.010060</td>\n",
" <td>0.000183</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.696795</td>\n",
" <td>0.685305</td>\n",
" <td>0.672260</td>\n",
" <td>0.690532</td>\n",
" <td>0.683352</td>\n",
" <td>0.685649</td>\n",
" <td>0.008157</td>\n",
" <td>4</td>\n",
" <td>0.751782</td>\n",
" <td>0.757375</td>\n",
" <td>0.753523</td>\n",
" <td>0.754944</td>\n",
" <td>0.755129</td>\n",
" <td>0.754551</td>\n",
" <td>0.001854</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.046685</td>\n",
" <td>0.000369</td>\n",
" <td>0.009947</td>\n",
" <td>0.000056</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.700727</td>\n",
" <td>0.688397</td>\n",
" <td>0.677019</td>\n",
" <td>0.692568</td>\n",
" <td>0.687376</td>\n",
" <td>0.689218</td>\n",
" <td>0.007702</td>\n",
" <td>3</td>\n",
" <td>0.749273</td>\n",
" <td>0.754999</td>\n",
" <td>0.750831</td>\n",
" <td>0.752652</td>\n",
" <td>0.752758</td>\n",
" <td>0.752102</td>\n",
" <td>0.001936</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.046911</td>\n",
" <td>0.000379</td>\n",
" <td>0.009936</td>\n",
" <td>0.000087</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.703873</td>\n",
" <td>0.690537</td>\n",
" <td>0.681315</td>\n",
" <td>0.693953</td>\n",
" <td>0.690479</td>\n",
" <td>0.692032</td>\n",
" <td>0.007258</td>\n",
" <td>2</td>\n",
" <td>0.744965</td>\n",
" <td>0.750955</td>\n",
" <td>0.746322</td>\n",
" <td>0.748698</td>\n",
" <td>0.748710</td>\n",
" <td>0.747930</td>\n",
" <td>0.002085</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.047690 0.001457 ...
0.756710 0.001804\n",
"1 0.047116 0.000351 ...
0.755954 0.001818\n",
"2 0.047997 0.002250 ...
0.754551 0.001854\n",
"3 0.046685 0.000369 ...
0.752102 0.001936\n",
"4 0.046911 0.000379 ...
0.747930 0.002085\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 203
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "WUWhrH-Qk4yZ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"outputId": "3414d366-6b8a-4660-a1fc-ce955b5640dd"
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(x_tr_bow.todense()),a
xis=1) \n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_bow.todense()),a
xis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds = roc_curve(y_train,
y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"Test AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['BOW',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 204,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3XdUVNfax/HvpomCioIVVCyoiIoF\ne4kpljTNNdXYTfTeNM29ab5Jv
Kb3xJuoMYmJJU2jKXZj1GhiL9jFAioqWBBQEKXzvH/MMIK0AUUp\nz2etWTqnzd4D
zG/O2fvsbUQEpZRSCsDhZhdAKaVUyaGhoJRSykZDQSmllI2GglJKKRsNBaWUUjYa\
nCkoppWw0FJRSStloKKhSwxgTboxJNMYkZHlMsa4bYYxJty6LN8bsNsbck2VfX2OM
ZNkv3BgzPpfX\nGGGM2WuMuWyMOWOMmWaM8ciy/jVjTKr1GBeMMRuNMV3yKfPV5dq
VWS5jTC9jTEQ+
+3Y1xvxpjLlo\njIkzxiw2xrSwrhucpS6JxpiMrO+LdZvu1vLFGWNijTEbjDEdivL
eq/JDQ0GVNveKiHuWx9NZ1m0S\nEXfAA/gcmJv1A93Kw7rNA8AEY0zvzBXGmOeA94
EXgKpAZ6ABsNIY45LlGD9Zj+EFrAHmF1DmrOX6\nBphnjKmW3w7WoPkDWAjUBRoCu
4ENxphGIvJD5nsA3Amcyvq+GGOqAEuAyUB1wBt4HUguoKyqnNNQ\nUGWOiGQA3wFu
gF8e22wH9gNtAKwfoq8Dz4jI7yKSKiLhwEOALzAkl2OkAT8A3saYGnaWawZQEWhc\
nwOYfAN+KyKciclFEYkXkVWAz8FpBrwU0tb7mHBFJF5FEEflDRPbYsa8qxzQUVJlj
jHEERgKpwPE8\ntukMtATCrIu6Aq7Ar1m3E5EEYBnQm6tYzx6GATHAeTvK5QQ8DiQ
AoflsV8lantzOQOblVpZcHAbS\njTGzjTF3FnRmolQmDQVV2iywXsvPfIzOsq6zMe
YCkAR8BAwRkair9o82xiQCm7BcYlpgXe4FRFu/\n/V/ttHV9poesr5MIjAYeyGO/q
8t1BhgE/ENE4vLZvjqWv83TdpQlVyISD3QHBJgOnDPGLDLG1Cpo\nX1W+aSio0uY+
EfHI8pieZd1mEfEAqgGLgB657O8FuAPPAb0AZ+vyaMDL+m3+anWs6zPNs75OLWAf\
n0L6AMm+2ltVLRDqLyKoCtj8PZFhft6Cy5ElEDojICBHxwXJWVBf4nz37qvJLQ0GV
OdZLPk8AQ40x\nbXNZny4in2A5o3jSungTlkbYgVm3NcZkNuSuzuU40cAY4DVjTG4
f4EUt/yVreR7MZfVDuZXFjmMe\nBGZhCQel8qShoMokEYkFvgb+m89m7wEvGmNcrZ
dzXgcmG2P6GWOcjTG+WK7hR2BpuM7tdQ4BK4AX\ni1pWY4zrVQ8DjAeGG2PGGmMqG
2OqGWPeArpYy1nQMZsbY54zxvhYn9fDculqc1HLqcoHDQVV2iy+\n6j6F3/LZ9n/A
XcaY1nmsX4rlUs1oABH5AHgZS3tEPLAFOAncLiL5deX8EBhjjKlZyLqApato4lWP\
nxiKyHuiL5czlNJYG87ZAdxHJs5E6i4tAJ2CLMeYSljDYh+WymVJ5MjrJjlJKqUx6
pqCUUspGQ0Ep\npZSNhoJSSikbDQWllFI2ud2oU6J5eXmJr69vkfa9dOkSbm5u17d
AJZzWuXzQOpcP11Ln4ODgaBEp\ncIyuUhcKvr6+bN+
+vUj7rl27ll69el3fApVwWufyQetcPlxLnY0xuY4DdjW9fKSUUspGQ0EppZSN\nho
JSSimbUtemkJvU1FQiIiJISkrKd7uqVaty4MCBG1SqkkHrXD4Uts6urq74+Pjg7Ox
c8MaqXCkT\noRAREUHlypXx9fXFMpZY7i5evEjlypVvYMluPq1z+VCYOosIMTExRE
RE0LBhw2IumSptiu3ykTFm\nhjEmyhizL4/1xhjzmTEmzBizxxjTrqivlZSUhKenZ
76BoJSyMMbg6elZ4Jm1Kp+Ks01hFtAvn/V3\nYpk/1w/LmPTTruXFNBCUsp/
+vai8FNvlIxH52zoefV4GYJmYXIDNxhgPY0wdEcltCkKllCqX0tLS\nObx3M3E7Fx
Dv5o9lwsDiczPbFLyxjFWfKcK6LEcoGGPGYDmboFatWqxduzbb+qpVq3Lx4sUCXzA
9\nPd2u7QrrwoULzJ8/n9GjRxe88VXuv/9+vvnmGzw8PAq1X7du3fDz82PWrFm2ZX
fddRdvvfUW7dpZ\nrsQdP36cBx98kK1btwKwfft2Xn31VaKioqhUqRJt2rThgw8+o
FKlSoV67Z07d/LEE0+QmJhInz59\n+OCDD3L95rlu3TrGjx9Pamoqnp6eLF+
+HLC8X8888wwhISEYY5g6dSqdOnXinXfeYfbs2Xh5WaYg\n/u9//0vfvn1JSUlh3L
hx7Ny5EwcHB95//3169OiRZ1kyMjJsP+fJkyfzyiuvcOzYMTw9PVm3bh2D\nBg2iQ
YMGANx7772MHz+e0NBQRowYYSt7eHg4L7/8Mk899RSvvvoqy5cvx8XFhYYNG/L555
/j4eFB\nTEwMw4YNY8eOHTz66KN8/PHHOd6Dhx9+mPDwcLZs2QLAnj17ePbZZ0lOT
sbJyYmPP/6YoKAg4uLi\nGD16NBEREaSlpTF27FiGDBliex9WrFgBwIsvvsj9998P
wL/+9S82bNhAlSpVEBG+
+OILWrdune+x\nskpKSsrxt1SaJCQklOry50VEiLqURnxkCDVjttA2eRstTBQZYlj
oMaL46ywixfYAfIF9eaxbgmXC\nkMznq4Gggo7Zvn17uVpISEiOZbmJj4+3a7vCOn
bsmAQEBOS6LjU19bq/XkhIiLRs2VLq1q0rCQkJ\ntuW33HKLbNu2LVu5/P39RUTkz
JkzUr9+fdm4caNt/fz58+XMmTOFfv0OHTrIpk2bJCMjQ/r16yfL\nli3Lsc358+fF
399fjh8/LiIiZ8+eta0bNmyYTJ8+XUREkpOT5fz58yIiMnHiRPnwww9zHGvKlCky\
nYsQI23HatWsn6enpeZYl8+d84sQJ6dOnj9SvX1/OnTsnIiJr1qyRu++
+O9/6paWlSa1atSQ8PFxE\nRFasWGH7Ob744ovy4osviohIQkKCrFu3TqZNmyZPPf
VUjuP88ssvMmjQoGy/G71797a9X0uXLpVb\nbrlFRETefvtt23GjoqKkWrVqkpycL
EuWLJE77rhDUlNTJSEhQYKCgiQuLk5ERIYPHy7z588Xkey/\n23kd62r2/t2UVGvW
rLnZRbhuYhOSZemOozJjxjRZ+MZAifqvj8jEKpI8sboc+KiP7F7wqZw/e/Ka\n6gx
sFzs+t2/mfQqRQL0sz32sy0qd8ePHc+TIEdq0acMLL7zA2rVr6dGjB/3796dFixYA
3HfffbRv\n356AgAC+
+uor276+vr5ER0cTHh6Ov78/o0ePJiAggD59+pCYmJjr682ZM4ehQ4fSp08fFi5ca
FcZ\np06dyvDhw+nSpYtt2QMPPECtWrUKVdfTp08THx9P586dMcYwbNgwFixYkGO7
H3/8kYEDB1K/fn0A\nata0TEoWFxfH33//zWOPPQaAi4tLgWdJISEh3HbbbbbjeHh
4sH379gLL8u9//zvPs5j8rF69msaN\nG9vOJvr06YOTk+WkunPnzkRERADg5uZG9+
7dcXV1zXGMhIQEPvnkE1599dVsy40xxMfH296LunXr\n2pZfvHgRESEhIYHq1avj5
ORESEgIPXv2xMnJCTc3N1q3bs3vv/
+eb/nzOpYqOZLT0tkYFs2kJdv5\n8KO32PjePfRc0JmRx1+it2wioW43ovp+gfP4Y
zR/bgWtB4zFo6bPDSnbzfxNWQQ8bYyZi2XawDi5\nDu0Jry/eT8ip+FzXpaen4+jo
WOhjtqhbhYn3BuS5/r333mPfvn3s2rULsIxPsmPHDvbt22fr8jdj\nxgyqV69OYmI
iHTp04P7778fT0zPbcUJDQ5kzZw7Tp0/noYce4pdffsn1tP+nn35i5cqVHDx4kMmT
\nJ/Poo48WWId9+/YxfPjwArc7dOgQDz/8cK7r1q5dS2RkJD4+V345fXx8iIzMmeW
HDx8mNTWVXr16\ncfHiRcaNG8ewYcM4duwYNWrUYOTIkezevZv27dvz6aef2gb5mj
JlCt9+
+y1BQUF8/PHHVKtWjcDA\nQBYtWsSgQYM4efIkwcHBnDx5EgcHhzzLsnDhQry9vQk
MDMxRtk2bNhEYGEjdunX56KOPCAjI/rOd\nO3cugwYNyvU9mDFjRp7vT1YTJkzgue
eey3Fp7n//
+x99+/bl+eefJyMjg40bNwLw9NNP079/f+rW\nrcvFixf56aefcHBwIDAwkNdff53
nnnuOy5cvs2bNGtsXDYBXXnmFN954gx49evDJJ59QoUKFPI+l\nbh4R4eCZi6wPjW
bPoUNUP7mS22QbTznsx8Wkc8nVk8uNBlKx/UAqNupJQ6cKN62sxRYKxpg5WFpE\nv
IwxEcBEwBlARL4AlgF3AWHAZWBkcZXlZujYsWO2PuCfffYZv/1mmU745MmThIaG5g
iFhg0b0qZN\nGwDat29PeHh4juNu374dLy8v6tevj7e3N6NGjSI2Npbq1avn+o24s
N+SmzVrZgu3a5GWlkZwcDCr\nV68mMTGRLl260LlzZ9LS0tixYweTJ0+mU6dOjBs3
jvfee48333yTJ554ggkTJmCMsX2ozpgxg1Gj\nRnHgwAGCgoJo0KABXbt2zTfcL1+
+zDvvvMMff/yRY127du04fvw47u7uLFu2jPvuu4/Q0CtTHqek\npLBo0SLefffdHP
u+/fbbODk5MXjw4HzrvmvXLo4cOcKkSZNy/AynTZvGpEmTuP/+
+5k3bx6PPfYY\nq1atYsWKFbRp04Y///yTI0eO0Lt3b3r06EGfPn3Ytm0bXbt2pUa
NGnTp0sVW93fffZfatWuTkpLC\nyJEjef/9923tD7kdq0qVKvmWW11fZ+KSWB8Wzf
rQc5wI3UuHpI30ddzGaIcwcIDL7g0g4Elo2R83\n7yDcSkhwF2fvo9y/al1ZL8BT1
/t18/tGfyNvaso6vO3atWtZtWoVmzZtolKlSvTq1SvXPuIVKlz5\nduDo6Jjr5aM5
c+Zw8OBBMocPj4+P55dffmH06NF4enpy/vx527axsbG24AkICCA4OJgBAwbkW+6C\
nzhS8vb1tl0/AcuOgt7d3jm19fHzw9PTEzc0NNzc3evbsye7du+nRowc+Pj506tQJ
sFzCeu+99wCy\nXcoaPXo099xzDwBOTk5MmjTJtq5r1640bdqUatWq5VqWY8eOcez
YMdtZQkREBO3atWPr1q3Url3b\ntv1dd93Fk08+SXR0tK1xe/ny5bRr1y7HZbVZs2
axZMkSVq9eXWDQbtq0ie3bt+Pr60taWhpRUVH0\n6tWLtWvXMnv2bD799FMAHnzwQ
R5//HEAZs6cyfjx4zHG0KRJExo2bMjBgwfp2LEjr7zyCq+88goA\njz76KE2bNgWg
Tp06gOX3ZsiQIXz+
+ecFHksVn0vJaWw5FsO60GjWHz6Ha/Re+jpu4xmnYBoTAc6Q\nUrM1tHwVmt9DpRr
NoQR2DS4Z0VTKVa5cOd9eTXFxcVSrVo1KlSpx8OBBNm/eXKTXycjIYN68eezd\nu5
fw8HDCw8NZuHAhc+bMAaBXr158//33mQ33zJ4929ZL5+mnn2b27Nm2XjAAv/76K2f
Pns32Gpln\nCrk9PDw8qFOnDlWqVGHz5s2ICN9+
+22uQTNgwADWr19PWloaly9fZsuWLfj7+1O7dm3q1avHoUOH\nAMv1+8zLIadPX7l
6+Ntvv9GyZUvA8s3/0qVLAKxcuRInJydatGiRZ1kCAgKIioqyvUc+Pj7s2LGD\n2r
Vrc+bMGdv7s3XrVjIyMrKdsc2ZMyfHpaPff/
+dDz74gEWLFtnVU+uJJ57g1KlThIeHs379epo2\nbWrrMVK3bl3+
+usvAP7880/8/PwAqF+/PqtXrwbg7NmzHDp0iEaNGpGenk5MTAxg6bm0Z88e+vTp\
nk+39EhGWLFlie7/yOpa6vtIzhJ0nzjN5dSgPfbmJoDeW8fW3s2i07XXmXn6MxRVe
5SnnJTTybQR3\nfgDP7sPlyXXQ8wWo6V8iAwHKyDAXN5unpyfdunWjZcuW3Hnnndx
9993Z1vfr148vvvgCf39/mjVr\nRufOnYv0OuvWrcPb29vWOAnQs2dPQkJCOH36NG
PGjOHgwYMEBgZijCEoKIiXX34ZsHwLnzt3Ls8/\n/zxRUVE4ODjQs2dP+vXL7/7C3
H3+
+eeMGDGCxMRE7rzzTu68804AvvjiC8DSVdLf359+/frRunVr\nHBwcePzxx20fWpM
nT2bw4MGkpKTQqFEjZs6cCVi6W+7atQtjDL6+vnz55ZcAREVF0bdvXxwcHPD2\n9u
a7777LtywJCQl5lv3nn39m2rRpODk5UbFiRebOnWv75n/p0iVWrlxpe91MTz/9NMn
JyfTu3Ruw\nNDZn1tXX15f4+HhSUlJYsGABf/zxR7Zr/lebPn0648aNIy0tDVdXV1
ungwkTJjBixAhatWqFiPD+\n+
+/j5eVFUlKSLdirVKnC999/b2s0Hjx4MOfOnUNECAgI4IMPPsj3WOraHY+5ZDkTCI
1m45FoUpMS\n6Omwl3+676KrazAV0+MRp4qYJrdD83swTftCpeo3u9iFYjK/NZUWQ
UFBcvUkOwcOHMDf37/AfXVM\nnPJB62wfe/9uSqobMcnOhcspbDxivSQUdo6TsYl4
cJEH3PdyX8VdNL+8Haf0JKhYDZreCc3vhsa3\ngUvh7v2x1zVOshMsIkEFbadnCko
pZZWcls6O4xdYH3bO0lMoMg4R8Ktwnic9Q+hVZwu1L+zEpKWD\n8YH2w8H/HqjfFR
zLxsdp2aiFUkoVgYhw+GwC60LPsT4smi1HY0lMTcfRAe6tE8dLfrsIvLQBt5h9\nE
AvU8Ifu/7YEQZ02JbZd4FpoKCilypWo+MyuotGsD4sm6mIyAI09K/Jc81juMNuoH7
UGh5hjEGPA\npwP0fgOa3wOejW9y6YufhoJSqky7nJLGlmOxlhAIjebQWUtPwWqVn
LmlURX+Ue0sQYkbcTv2B4RG\ngYMzNLoFuo+FZndB5doFvELZoqGglCpT0jOEfZFx
rA+LZl3oOXYcv0BKegYuTg508K3Gg6186Ouy\nB5+zf2JCV0LYRXBxB7/elrMBv97
gWvVmV+Om0VBQSpV6J2Mv23oIbTwSw4XLqQD416nCiG6+3Oot\ntE/ahEvo17DxL8
hIBbca0HKgJQga3QI3cWiJkkRvXrsOYmJiaNOmDW3atKF27dp4e3vbnqekpNh9\nn
BkzZnDmzJk816ekpFC9evUcg6z5+Phw4cIF2/NVq1Zx33332Z4vXbrUNhhfmzZteO
mllwpRuyuW\nLVtGs2bNaNKkCR9+
+GGe282ZM4cWLVoQEBDAsGHDADh27Bjt2rWjTZs2tGzZkunTp9u2Hz9+PD4+\nPjk
Gxvv666+pUaOG7b3MvJ8hIyODvn374uHhka2eAEOGDKFVq1a2ffbu3Wt7T6pWrWpb
/vbbbwOW\n4cV79eplK++UKVNsx9q5cyedO3emVatWDBgwwHb/w+
+//067du1o1aoV7du3z3Uo47vuuss2ZAlY\n7tzOfO0GDRoQFGTpGZiSksKQIUNo3
bo1/v7+tnsNMqWlpdG6dets9fz0009p3LgxxpgcP/fc6lgW\nxSWmsv1MGq/8tpdb
PlxDjw/W8PJve9lx/AJ3+Nfi00faEPxkI5YH7eTl0+Po8ltXXJb/B2LCoNM/\nYdQ
KeO4Q9P8MmvbRQMjKnqFUS9KjJA6dnVVewz/bo1u3brJz58481y9atEi6desmTZo0
ybbc29vb\nNvy0iMjKlStlwIABIiKyYcMGadKkiRw6dEhELMNCf/7554UuW0pKijR
s2FDCw8MlKSlJWrZsaTtm\nVgcOHJB27drZypM5ZHZSUpIkJSWJiEhcXJzUq1fPtm
7jxo1y8uRJqVq1arZjTZ8+XcaNG5fjNTIy\nMmTVqlXy22+/2eqZafDgwfLjjz/m2
Cfre5JVZGSk7T2Pi4uTRo0a2erVpk0bWb9+vYiIfPnll/La\na6+JiEhwcLCcOnVK
RER27dolPj4+2Y75008/yaBBgyQwMDDH64mIjB07Vt5+
+20REZk9e7YMHjxY\nRCxDcfv4+MjJkydt277//vsyaNCgbGXfsWOHhIeHZ/u5x8f
H51nHvJSmobNT0tJly9EY+XjFQRkw\nZb00HL9EGry0RFpMWC6jZm6VGeuPSuiZOM
mI3CGy+k2RqZ1FJlaxPKZ1F1n7vsiZfSIZGTe7Ktfk\nRgydrZePitns2bOZOnUqK
SkpdO3alSlTppCRkcHIkSPZtWsXIsKYMWOoVasWu3bt4uGHH6ZixYps\n3boVFxeX
bMeaM2cO//nPf5g0aRJbt261ayybSZMmMWHCBNt4OY6OjjzxxBOFrsfmzZvx9/e3D
Sf9\n0EMPsXDhQl544YVs23311Vc888wztm/9mUNmZx3XKTk5Oeu8GnTp0oW0tDS7
y2KM4fbbb2fVqlWF\nrsfV6tata7tDvEqVKjRv3pzIyEiaNm3KkSNH6NatGwC9e/d
mwIABTJw40TaJEUCrVq1ISEggNTUV\nZ2dn4uPj+eyzz5g2bRpDhw7N8XoZGRnMnz
+f9evX2+py6dIl0tPTSUxMxNXV1XYT2vHjx1m5ciUv\nvvgiU6dOtR2jbdu211zvk
k5EOHIuwXb38OajMVxKScfBQGsfD566tQnuCRGMvKcHLpGb4eAX8ONS\niDsJxgEa
dIN+71luJvOof7OrU6qUvVBYPh7O7M11VcX0tKLdYFK7Fdz5XqF327dvH7/99hsbN
27E\nycmJMWPGMHfuXBo3bkx0dLTt0saFCxfw8PBg8uTJTJkyJdtlh0yXL19m7dq1
tktMc+bMsSsUDhw4\nwGuvvVbgdqtWreL555/Psbxy5cqsW7eOyMhI6tW7Mv2Fj48
Pu3fvzrH94cOHcXZ2plu3bmRkZPD6\n66/bxuoJDw+nf//
+hIWF8cknn9g1l8O8efP4888/ad68OZMmTcp18L2rTZw4kXfffZc+ffrwzjvv\n2M
J1/fr1BAYG4u3tzUcffZRjOIqjR4+yb98+OnToAEDz5s1ZsmQJ99xzD/Pnz+fkyZM
5XmvevHl0\n6tQJZ2dnwDKU9UsvvUTFihVzLdvatWupX7+
+bSyiRx55hEWLFlGnTh0uXbrEZ599RtWqlkbOZ599\nlg8//JDo6OgC65ypoDqWZN
EJyWwIi7YFwZl4y6CRDTwrcV9bb3r4edGlkRdVnVLh6BrOrPkal0mP\nQeJ5cHK13
Enc6/+gaT9w8yzg1VReyl4olCCrVq1i27ZttuvHiYmJ1KtXj759+3Lo0CHGjh3L3X
ff\nbfvQzM+iRYvo3bs3rq6uPPjgg7Rv356PP/4YBweH6zJk9h133HHdhsw+evQof
/31F8ePH+eWW24h\nJCSEKlWq4Ovry549e4iMjOQf//gHDzzwQL5j8tx3330MHTqU
ChUqMHXqVEaOHJnrcNhZffDBB7i7\nu1OhQgUee+wxPvroI15+
+WU6dOhAeHg47u7uLF68mIEDB3Lw4EHbfvHx8dx///1MnjwZd3d3wDIy\n6rhx45g
4cSIDBgywffBn2rt3L6++
+iorV64EIDg4mIiICO69917CwsJyLd/VA+5t2rQJV1dXIiMj\niY2NpUePHtxxxx3
s3LmTevXq0aZNG7vPiAqqY0mTlJrO1mOx1l5C0Rw4bZkHpWpFZ7o18aR7kxr0\n8P
OiXvVKcDkWDq+ARUsgbDWkJeLp5AYt7rWcDTS5HVzcCnhFZY+yFwr5fKNPvMFj4og
Io0aN4s03\n38yxbs+ePSxfvpypU6fyyy+/ZJuNLTdz5sxh8+bNtiGzz507x19//c
Wtt95qGzI785JNbGys7cO2\nefPmBAcH55hI5moFnSl4e3tn+6ac35DZt9xyC05OT
jRu3JjGjRtz5MiRbJc8vL29ad68OevXr8/R\nUJxV1sAYM2ZMjgb23GROLFOhQgVG
jBhhazjO/PYNlnmZn3jiCdsZWkpKCgMHDmTkyJH079/ftl2L\nFi1sH/ghISHZZjw
7ceIEAwcO5Pvvv7fNm7Fp0ya2bNmSbcjs22+/3TZiaWpqKgsWLOCNN96wHeeH\nH3
7grrvuwtnZmVq1atG5c2eCg4PZvHkzv/76K4sWLSIpKYn4+HiGDx/O7Nmz86x7fnU
sCTIyhJDT\n8bZeQtvCz5OSloGzo6F9g2q80LcZ3Zt40dK7Ko4OBuIi4eD3cHAxhG
8ASYfKdaHtEPC/h43hadxy\n2x03u1pljz0NDyXpUZoamvfs2SNNmza1zQ8cHR0tx
48fl6ioKFtZdu7cKZl16tevn/z99985jnn+\n/HmpWbOmpKSk2JZ99dVXMnr0aBER
GTdunLz+
+usiYpkTun///vLDDz+IiMi6deukSZMmEhoaKiKW\nhuZp06YVul4pKSni6+ubraH
54MGDObZbvHixjBo1SkQsjcyZjaEnT56UxMRE2/vQuHFj2b9/v22/\n1NTUHA3NmY
25IiLz5s2Tbt26ZVufW8PqqVOnJD4+XjIyMuTpp5+WV155RURETp8+bdtm06ZN0qB
B\nAxGxNFoPGjRInnvuuRx1yWwIT09Pl0GDBsns2bNFRCQ2NlZatmwpCxYsyPP9Cg
0NzdHQvHjxYrnt\nttuyLXvrrbfk8ccfFxGRixcvStOmTbO9L3nVU0RyNDTnVce83
IiG5ojzl2Xu1uPy1A/B0vaNP6TB\nS5YG4j6f/CVvLN4vfx48K5eSrfOYZ2SInD0g
8teHIl/ecqWheHIHkZWviURsz9ZQXJbmaLbXjWho\nvukf8oV9lKZQEBH54YcfJDA
wUFq1aiXt2rWTrVu3SnBwsLRp00YCAwOlTZs2smLFChGx9Fpp2rSp\nBAYGZpto/e
uvv7b1UMkUFRUlNWrUkJSUFDl//rw8/PDD0rp1a2nVqpW89NJLkmH944mPj5eFCxd
K\n27Ztxd/fX/z9/WX8+PFFqtuiRYvEz89PGjVqJO+9955t+csvvyxLly4VEcuH7N
ixY8Xf319atWol\n8+bNExGR5cuXS8uWLW1l/Prrr237//vf/xZvb28xxoi3t7e8+
eabIiLy/PPPS0BAgLRu3Vpuu+22\nbCHUuXNn8fLyEldXV/H29pYPZZh2AAAgAElE
QVRVq1aJiEjPnj0lICBAAgICZNiwYZKQkCAiIpMm\nTZIWLVpIYGCgdO7cWTZv3iw
ilj8yQFq3bi2BgYESGBgov//
+u4iIfPTRR9K0aVPx8/OTl19+2fae\nTpw4Udzc3GzbBwYGSnR0dLb3KrdQGDx4sE
yfPj3bsvj4eBk4cKC0aNFC/P395ZNPPsnxvl8dCh9/\n/LF4e3uLo6Oj1K1bV8aMG
SPx8fF51jEvxREK8YkpsmLfaZmwYK/c+uEaWwgEvbVS/j13p/wSfFLO\nxiVe2SE9
XeTEVpE/Joh81u5KEHx1m8i6T0TOHc7ztTQUCsfeUNChs8s4rXP5cLOGzk5Nz2D3y
QvW\nS0LR7Dp5gfQMoaKzI50aVad7Ey96+NWgaS33K+1caSkQ/jccXAoHl0HCGXBw
goY9Le0Dze6GKnUK\nfO0bMXR2SaNDZyulShQR4Wj0JdaHWhqHNx+NISE5DWOgtXd
V/nVLI7o3qUG7Bh5UcMoyj3byRQhb\nBQeWQOgfkBwPzm7gdwc0v9cytETFktH2Ud
5pKCil8hWTkMyGIzGsD7XMMXAqztJVtF71itwbWJce\nfl50beyJR6Xs99WQcA4OL
bOcERxdC+nJUMkLWgywDi3RC5xdb3R1VAHKTCiISKG7YSpVXuV32Tgp\nNZ3t4edZ
Z51oZv8pS1fRKq5OdG3sxZO3etHDz4sGnrl0AY09Zr0stARObAbEcvNYh8ctcxDU6
wQO\njjn3UyVGmQgFV1dXYmJi8PT01GBQqgAiQkxMDK6ulm/pGRnCgTPxtvkFth6L
JTktAycHQ7sG1Xiu\nd1O6+3nRyrsqTo4OVx/McrPowSWWMDi7z7K8VivoNd7SRlC
rZZmcjKasKhOh4OPjQ0REBOfOnct3\nu6SkJNsfQnmhdS4fCl1nR2dC4p2ZtHknG4
9EE51gGbjRr6Y7j3aqTw8/Lzo19MStQi4fERnpcGLT\nlTOCCycsQ0vU7wJ937EEQ
TXf61MxdcOViVBwdna23UCUn7Vr15aLcWOy0jqXDwXVOSE5jc1HYmxz\nDBw5dwkA
L3cXull7CHVv4kXtqnkES2qipV3gwBI4vBwux4BjBWh8K/R8wTJpvXuNYqiZutHKR
Cgo\npbJLS89gd0QcG6zTTu44cZ60DKGCkwMdG1bn4Q716N6kBs1rV8bBIY9LO4nn
4fAflrOBsNWQegkq\nVLUMNd38HsvQEhXKV9ff8kBDQakyQEQIj77EurBo1odaJpq
5mGTpKhpQtwqP92hEDz8v2jeohqtz\nPg298aeuXBYKXw8ZaeBeGwIfsVwW8u0BTi
55769KPQ0FpUqp85dS2HgkhvVh51i5N5HoFWsB8Pao\nyF0t69Ddz4tuTbyo7lbAh
/i5w5bxhQ4uhchgyzLPJtDlafC/F+q2Awedj6u80FBQqpRITksn+Ph5\nWy+hvZFx
iEDlCk40qerA2D7N6d7Ei4Zebvn3wsvIgFM7LGcDB5ZATKhled12cPt/LZeGajS7M
ZVS\nJY6GglIllIhw6OxF293DW4/FkpiajqODoW09D8bd7kcPPy8CfTxYv+5venXx
zftg6akQvs4SAoeW\nwcXTlqElfLtbpqdsdhdULXiuClX2aSgoVYKcjU+ynQmsD4v
m3MVkABrVcOOhIB+6+9Wgc6PqVHZ1\nLuBIQHICHFlt7TG0ApLjwLmSpYG4+b2WBu
OK1Yq5Rqq00VBQ6ia6nJLGlqOxtjkGDp9NAKC6m7Wr\naBMvuvt5Udcj95nccrgUD
YeWW9oHjvxpGVqiYnVL20Dzuy1dSJ3tPJYql4o1FIwx/YBPAUfgaxF5\n76r19YHZ
gId1m/Eisqw4y6TUzZSeIeyNjGN96DnWWbuKpqYLLk4OdPStzsB2PnRv4kWLOlXy7
ip6\ntfPH8Tm5CGZ+YLmpTDKgan0IGmUdWqJz0aahVeVSsf2mGGMcgalAbyAC2GaM
WSQiIVk2exWYJyLT\njDEtgGWAb3GVSamb4UTMZds4QhuPxBCXmApAizpVGNWtId3
9vOjgWz3/rqJZicDZ/dahJZbAmb00\nAagZYLmRrPndULu1Di2hiqQ4vz50BMJE5C
iAMWYuMADIGgoCVLH+vypwqhjLo9QNEXc5lY1Hoq33\nDERzIvYyAHWqutKnRS1bV
1Ev9wr2HzQjHU5uuXIPwflwwFgGmOvzFpvjvOh856CCjqJUgYptkh1j\nzANAPxF5
3Pp8KNBJRJ7Osk0d4A+gGuAG3CEiwbkcawwwBqBWrVrt586dW6QyJSQk2CZlLy+0z
sUv\nLUMIu5DB/uh09sekcywuAwFcHaF5dUcCvBwJ8HSkjpsp1ICNDukpeFzYQ41z
m/CM2YZLahwZxonz\n1QKJ9upMtFdHUl0scxDoz7l8uJY633rrraVikp1BwCwR+dg
Y0wX4zhjTUkQysm4kIl8BX4Fl5rWi\nzjykMzWVD8VdZxEhNCrB0jgceo4tx2K5nG
LpKhroU5VngmrQw8+LNvU8cL56VNGCJMVB6Eo4sNgy\nKU1KArhUhmaWoSUcmtyBp
2sVPIGsdxLoz7l8uBF1Ls5QiATqZXnuY12W1WNAPwAR2WSMcQW8gKhi\nLJdShRZ1
MYkNYZb7BTaERXM23tJVtKGXG/e386G7nxddGntSxZ6uole7eMZ6WWgpHPsbMlLBv
Ra0\netByI1nDHuBUiEtNSl2D4gyFbYCfMaYhljB4BHj0qm1OALcDs4wx/oArkP/4
10rdAIkp6Ww5FmO7\nZ+DgmYsAeFRyplsTL7pbH/WqVyraC0SHXWkojthmWVa9EXR
+wtJ91DtIh5ZQN0WxhYKIpBljngZW\nYOluOkNE9htj3gC2i8gi4DlgujHm31ganU
dIcTVyKJWPjAxh/6l41oWdY93haIKPnyclPQMXRwfa\nN6jGC32b0dOvBgF1C9FVN
CsROLXzymQ05w5altdpA7e9ah1aorn2GFI3XbG2KVjvOVh21bL/Zvl/\nCNCtOMug
VF4izl+2DCERFs3GsGjOX7Z0FW1euzLDujSgu3WimYouRZw+Mj0Vjm+4cmkoPhKMI
/h2\ns9xD0Owu8KhX8HGUuoFudkOzUjdcSloGT/4QzKoDlqarmpUrcGvzmvSwdhWt
WfkaZm1LuWS5k/jA\nEjj8OyRdAKeKlqElbpsATftCperXqSZKXX8aCqpcERH+79e
9rDoQxdjbmnBPYF38arpf29zel2Oz\nDy2RlmgZU6jZXdahJW4DlyK2PSh1g2koqH
Ll09Wh/LIjgmfv8OPZO5pe28GiDsLyFyB8A0g6VPGB\ndsMsQ0vU76pDS6hSSX9rV
bnxc3AE/1sVygPtfRh3u9+1HSzqAMy6x9Iw3P3fliCo00YbilWpp6Gg\nyoUNYdGM
/2UP3Zp48s4/Wl3b5aKzITD7Xst8BCOWgleT61dQpW4y7QityrxDZy7yr+
+CaVzDnWlD\n2uPidA2/9pmB4OisgaDKJA0FVaadjU9i5MytVHRxZObIDkW749h2s
CyBMHyJBoIqk/TykSqzLiWn\nMWrWNuISU/npn13sn6gmN2dDYPY94OhiOUPwbHz9
CqpUCaKhoMqktPQMnvpxBwfPXOTr4UG09K5a\n9IOd3W89Q9BAUGWfXj5SZY6IMGH
hftYeOsdb97Xk1mY1i34wDQRVzuiZgipzlh5L5efDJ3iyV2MG\ndaxf9AOd2Qff9g
fHCjBiiQaCKhf0TEGVKQt3RfLz4VT6B9bl+T7NCt4hLxoIqpzSUFBlxpajMbww\nf
w/Nqjnw4YOtizaaKWggqHJNLx+pMiEsKoEx3wXjU70iz7QSKjgVcWTTM/ssbQhOrh
oIqlzSMwVV\n6p27mMzIWVtxdjTMHtkRd5drOEOYfS84V9RAUOWWhoIq1RJT0nn82
+2cu5jMN8M7FH0mtDN7rwTC\n8MUaCKrc0stHqtRKzxDGzt3JnogLfDmkPYH1PIp2
oDN7YXb/K2cI1Rtd34IqVYromYIqtd5cEsLK\nkLNMvKcFfQJqF+0gGghKZaOhoEq
lb9YfY9bGcB7r3pAR3RoW7SC2S0aVNBCUstJQUKXO7/tO89bS\nEO5sWZtX7vIv2k
FO77EGghuMWKyBoJSVtimoUiX4+HnGzd1F23oeTHq4TdHuRTi9x3IfgrOb9Qyh\ni
GcaSpVBeqagSo3w6EuM/nY7tau6Mn1YEK7ORbgX4fRuDQSl8qGhoEqF2EspjJy1DR
Fh1siOeLpX\nKPxBTu+GbweAi7sGglJ50FBQJV5Sajpjvt1O5IVEvh4eREMvt8If5
PRuSy8jF3fLfQgaCErlStsU\nVImWkSE8N28324+fZ+qj7WjfoHrhD5IZCBUqW84Q
qvle93IqVVbomYIq0d7//SBL957m5buac3fr\nOoU/wKldGghKFYKGgiqxvtt8nC/
/PsrQzg0Y3aMIXUZP7bK0IVSoooGglJ308pEqkVYfOMvEhfu4\nvXlNJt7bAmMK2f
U0RyA0KJ6CKlXG6JmCKnH2RsTx9I87CahblcmPtsXJsXC/pu4Xj2ggKFVEGgqq\nR
DkZe5lRs7dR3c2Fb0YEUcmlkCezp3YSuHuCBoJSRWRXKBhjfjXG3G2MKVSIGGP6GW
MOGWPCjDHj\n89jmIWNMiDFmvzHmx8IcX5UtcZdTGTlrG8mp6cwa2YGalV0Ld4BTO
+HbAaQ7umkgKFVE9n7Ifw48\nCoQaY94zxhQ4+a0xxhGYCtwJtAAGGWNaXLWNH/B/
QDcRCQCeLUzhVdmRnJbOP7/fzvGYS3w1LAi/\nWpULd4DIHZZLRq5V2dXmLQ0EpYr
IrlAQkVUiMhhoB4QDq4wxG40xI40xznns1hEIE5GjIpICzAUG\nXLXNaGCqiJy3vk
5UUSqhSjcRYfwve9l8NJYPHwikcyPPwh0gcgd8dx+4VoXhS0iqWKt4CqpUOWBE\nx
L4NjfEEhgBDgVPAD0B3oJWI9Mpl+weAfiLyuPX5UKCTiDydZZsFwGGgG+AIvCYiv+
dyrDHAGIBa\ntWq1nzt3biGqeEVCQgLu7u5F2re0Kg11/iU0hcVHUhno50z/xi6F2
rdyfCit90wkzcmNXW3eJtm1\nZqmo8/WmdS4frqXOt956a7CIBBW4oYgU+AB+A0Kw
XOqpc9W67Xns8wDwdZbnQ4EpV22zxHpsZ6Ah\ncBLwyK8s7du3l6Jas2ZNkfctrUp
6nX/aekIavLREXvp5t2RkZBRu54hgkXfriUxqKXL+uG1xSa9z\ncdA6lw/XUue8Pq
uvftjbtWO6iCzLusAYU0FEkiXv5IkE6mV57mNdllUEsEVEUoFjxpjDgB+wzc5y\nq
VLs78Pn+L/f9tKzaQ3evK9l4e5FiNwB394HFT0sjcoe9YuvoEqVI/Y2NL+Vy7JNBe
yzDfAzxjQ0\nxrgAjwCLrtpmAdALwBjjBTQFjtpZJlWKhZyK58kfduBX052pj7bFu
TD3IkQGayAoVUzyPVMwxtQG\nvIGKxpi2QOZXuSpApfz2FZE0Y8zTwAos7QUzRGS/
MeYNLKcxi6zr+hhjQoB04AURibmmGqkS73Rc\nIqNmbcO9ghMzR3agsmtefRVyERk
M3/7DGghLwaNewfsopexW0OWjvsAILJd+Psmy/CLwckEHt15y\nWnbVsv9m+b8A/7
E+VDlwMSmVkTO3kZCcxvx/daFO1Yr27xwRDN9pIChVnPINBRGZDcw2xtwvIr/c\no
DKpMio1PYMnf9hBaFQCM0d0wL9OFft3zgyEStVg+BINBKWKSUGXj4aIyPeArzEmx7
d5Efkkl92U\nykFEePW3fawLjeaD+1vTs2kN+3eOCLbch1CpugaCUsWsoMtHmVNcl
a/OwOq6m/JnGD9tP8nY25rw\nUIdCfKhnDYQRS6GqT/EVUilV4OWjL63//VxEzt2A
8qgy6LedEXy88jAD23rz795N7d8xYrv1kpEG\nglI3ir39ADcYY/4wxjxmjKlWrCV
SZcrGI9G8+PMeujTy5L37W9t/L4ItEDw1EJS6gewd+6gp8CoQ\nAAQbY5YYY4YUa8
lUqRd69iL//C4YX083vhjaHhcnO7+DnNyWJRCWaCAodQPZfceQiGwVkf9gGegu\nF
phdbKVSpV7UxSRGzNyGq7MjM0d2oGpFO+9FOLkNvh+oZwhK3ST2zqdQxRgz3BizHN
gInMYSDkrl\ncCk5jcdmbSf2UgozhnfAp1q+9zleke0MYSlU9S7egiqlcrB37KPdW
IakeENEChreQpVjaekZjJ2z\nk/2n4pg+LIhWPlXt2zEzENxrWLqdaiAodVPYGwqN
rHcfK5UnEeH1xSGsPhjFm/e15HZ/O+c1OLkV\nvhuogaBUCVDQzWv/E5FngUXGmBy
hICL9i61kqtSZvu4o320+zj97NmJoZztnPssaCCOWQpW6xVtI\npVS+CjpT+M7670
fFXRBVui3dc5p3lh3k7tZ1eKlfc/t2OrEFvr9fA0GpEqSgm9eCrf9tIyKfZl1n\nj
BkH/FVcBVOlx/bwWP49bxdBDarx8YOBODjYcS+CBoJSJZK9XVKH57JsxHUshyqljp
5L4PFvt+Pt\nUZHpw4JwdXYseCdbINTUQFCqhCmoTWEQ8CjQ0BiTdYKcyljuVVDlW
ExCMiNmbsPRGGaN7EA1Nzvm\nVz6xxXIfgnsty41pGghKlSgFtSlk3pPgBXycZflF
YE9xFUqVfEmp6Tz+7XbOxicxZ0xnGni6FbyT\nBoJSJV5BbQrHgeNAlxtTHFUapGc
Iz87dxa6TF5g2uD3t6tsxHNaJzdZLRrWsl4zqFH9BlVKFlm+b\ngjFmvfXfi8aY+C
yPi8aY+BtTRFXSvLPsAL/vP8Ord7egX8vaBe+QGQiVa2sgKFXCFXSm0N36b+Ub\nU
xxV0s3acIxv1h9jRFdfHuvesOAdjm+CHx6wBMLwJRoISpVw9o591NgYU8H6/17GmL
HGGI/iLZoq\naf7Yf4bXl4TQp0UtJtzTouAdNBCUKnXs7ZL6C5BujGkCfAXUA34st
lKpEmfXyQuMnbuT1j4efPpI\nWxwLuhfh+Ca9ZKRUKWRvKGSISBrwD2CyiLwA6F95
OXEy9jKPz95GjcoV+GZ4EBVdCrgXITMQqtS1\nBEJlO9odlFIlgr0D4qVa71kYDtx
rXWbnAPmqNLtwOYXhM7eSmi78NLIjXu4V8t/h+Eb4/gFrICzR\nQFCqlLH3TGEklm
6pb4vIMWNMQ66Mi6TKqKTUdMZ8G0xEbCLThwXRuIZ7/jtkBkJVbw0EpUopu84U\nR
CQEGJvl+THg/eIqlLr5MjKEF37ew9bwWD4b1JaODavnv0P4BvjhQUsgDF+sgaBUKW
VXKBhjugGv\nAQ2s+xhARKRR8RVN3Uwf/nGIxbtP8VK/5vQPLODO42yBsAQq2zmPg
lKqxLG3TeEb4N9AMJBefMVR\nJcGPW04wbe0RHu1Un3/dUkDuayAoVabYGwpxIrK8
WEuiSoQ1h6KYsHAftzarwRv9AzAmn66n4Rss\n9yFUrWe9ZKSBoFRpZ28orDHGfAj
8CiRnLhSRHcVSKnVT7IuM46kfdtC8dmWmPNoOJ8d8+iGEr7ee\nIWggKFWW2BsKna
z/BmVZJsBt17c46maJvJDIqFnb8KjozIwRHXCrkM+vRtZAGLHEMi+CUqpMsLf3\n0
a3FXRB188QnpTJq5jYSU9L5+Ymu1KrimvfGx9bBjw9pIChVRtk79lEtY8w3xpjl1u
ctjDGP2bFf\nP2PMIWNMmDFmfD7b3W+MEWNMUF7bqOKRkpbBE98Hc+RcAl8MbU+z2
vmMfZgZCB71NRCUKqPsvXlt\nFrACyOybeBh4Nr8djDGOwFTgTqAFMMgYk2MUNWNM
ZWAcsMXOsqjrRET4v1/3siEshvfub023Jl55\nb5w1EIYv1kBQqoyyNxS8RGQekAF
gHQepoK6pHYEwETkqIinAXGBALtu9ieVGuCQ7y6Kuk/
+tCuWX\nHRE8e4cfD7T3yXvDY+ssbQgaCEqVefY2NF8yxnhiaVzGGNMZiCtgH2/gZ
JbnEVxpsMZ6nHZAPRFZ\naox5Ia8DGWPGAGMAatWqxdq1a+0sdnYJCQlF3re0yqvO
6yJS+WZfCt29nQh0jGTt2lO57u9xfi+t\n9r5Bkmstdvn9H6nbQ4CQ4i30NdKfc/m
gdS4mIlLgA2gHbMASBBuwXD5qXcA+DwBfZ3k+FJiS5bkD\nsBbwtT5fCwQVVJb27d
tLUa1Zs6bI+5ZWudV53eFz0vj/lsrg6ZslOTU9752P/iXyZi2RKR1FLkYV\nXyGvM
/05lw9a58IBtosdn/f2Xj5qjKVtoCuWtoVQCj7LiMQy70ImH+uyTJWBlsBaY0w40B
lYpI3N\nxevgmXie+D6YJjXd+XxIO1yc8vgVOPY3/PAQVPO13KnsXuOGllMpdXPYG
woTRCQeqAbcCnwOTCtg\nn22AnzGmoTHGBXgEWJS5UkTiRMRLRHxFxBfYDPQXke2F
rYSyz9n4JEbN3EalCo7MGNGBKq55jH5+\n9K8sgbBYA0GpcsTeUMhsVL4bmC4iSwG
X/HYQS2P001jOLA4A80RkvzHmDWNM/6IWWBVNQnIaI2du\nIy4xlRkjOlDXo2LuGx
79C358GKo31EBQqhyyt6E50hjzJdAbeN86X3OBgSIiy4BlVy37bx7b9rKz\nLKqQ0
tIzeOqHHRw6e5FvhgcRULdq7hseXQs/PmIJhGGLNBCUKofsPVN4CMs3/r4icgGoDu
TZW0iV\nHCLChIX7+evwOd66ryW9muXRnTRrIOgZglLllr3DXFzGMhhe5vPTwOniK
pS6fpYeS+Xnwyd4sldj\nBnWsn/tGR9daLxk1sgSCWz43sSmlyjR7zxRUKbRwVyQ/
H06lf2Bdnu/TLPeNbIHQWANBKaWhUFZt\nORrDC/P30KyaAx8+2BoHh1zmRTiyJks
gLNJAUErZ3dCsSpGwqATGfBeMT/WKPNNKqODkmHOjI2tg\nziMaCEqpbPRMoYw5dz
GZETO34uxomD2yI+4uuZ0h/JklEPSSkVLqCg2FMuRyShqPz95GdEIy3wzv\nQL3ql
XJudORPmDMIPJtYA8HzxhdUKVViaSiUEekZwtg5u9gbGcfkQe0IrOeRc6Ow1VcCYd
giDQSl\nVA4aCmWAiPDmkhBWHTjLxHsD6N0il/mSw1bD3EfB008DQSmVJw2FMuCb9
ceYtTGcx7s3ZHhX35wb\n2M4Q/GDYQg0EpVSeNBRKueV7T/P2sgPc2bI2L9/ln2N9
tdidlkDwamrtZaSBoJTKm4ZCKRZ8/DzP\n/rSLtvU8mPRwm5z3IoStotXet68EQqX
qN6egSqlSQ0OhlAqPvsTob7dTu6or04cF4ep81b0IYatg\nzqNcruSjgaCUspuGQi
kUeymFkbO2ISLMGtkRT/cK2TewBgI1mrKrzRsaCEopu2kolDJJqemM/nY7\nkRcS+
Xp4EA293LJvEHolEBi2iDTnKjenoEqpUklDoRTJyBCem7eb4OPnmfRQG9o3uOoMIH
SVpdtp\njWaWbqd6hqCUKiQNhVLkvd8PsnTvaV6+qzl3t66TfWW2QFiogaCUKhINh
VLiu03hfPX3UYZ1acDo\nHo2yr9RAUEpdJxoKpcCqkLNMXLSfO/xrMvHeAIzJ0vU0
dCXMHaSBoJS6LjQUSrg9ERd4Zs5OWnpX\n5bNBbXF0uDoQHoWa/hoISqnrQkOhBDs
Ze5lRs7ZT3c2Fr4cHUckly/QXh/
+4EghDF2ggKKWuC51k\np4SKu5zKyFnbSElLZ+6YTtSs7Hpl5eE/4KfBGghKqetOQ
6EESk5L55/fb+d4zCW+e6wTTWpWvrLy\n8Ar4aciVS0YVq928giqlyhy9fFTCiAjj
f9nL5qOxfPhAIJ0bZRnAzhYILTQQlFLFQkOhhPlk5WF+\n2xnJ832acl9b7ysrDv2
eJRAWaCAopYqFhkIJMnfrCSb/GcYjHerx1K1Nrqw49DvMGwq1AjQQlFLF\nSkOhhP
jr8DleWbCPnk1r8OZ9La/ci5B5hlArAIb+poGglCpW2tBcAoSciufJ74Pxq+nO1Ef
b4uxo\nzerMQKjd0tLLqGIu8y4rpdR1pGcKN9npuERGzdpGlYrOzBrZkcquzpYVh5
ZrICilbjgNhZvoYlIq\nI2duIyE5jRkjOlC7qvVehEPL4aehULuVBoJS6oYq1lAwx
vQzxhwyxoQZY8bnsv4/xpgQY8weY8xq\nY0yD4ixPSZKansGTP+wgLCqBaUPa4V/H
Ou/BwWVZAuE3DQSl1A1VbKFgjHEEpgJ3Ai2AQcaYFldt\nthMIEpHWwM/AB8VVnpJ
ERHjlt72sC43mnYGt6OFXw7Li4DKYNwzqtNZAUErdFMV5ptARCBORoyKS\nAswFBm
TdQETWiMhl69PNgE8xlqfEmPJnGPO2RzD2tiY8FFTPsvDg0iuBMORXDQSl1E1hRKR
4DmzM\nA0A/EXnc+nwo0ElEns5j+ynAGRF5K5d1Y4AxALVq1Wo/d+7cIpUpISEBd3
f3Iu17vWw8lcZXe5Lp\nWteJ0a1cMMbgGb2FgP0fkODekD2tXyPN+fqVsSTU+UbTO
pcPWufCufXWW4NFJKig7UpEl1RjzBAg\nCLglt/Ui8hXwFUBQUJD06tWrSK+zdu1a
irrv9bDxSDQzV26lSyNPZo3qiIuTg+UM4e8PoW4gVYb+\nRnfXqtf1NW92nW8GrXP
5oHUuHsUZCpFAvSzPfazLsjHG3AG8AtwiIsnFWJ6b6vDZi/zzu2B8Pd34\nYmj7K4
Ewb/iVNoTrHAhKKVVYxdmmsA3wM8Y0NMa4AI8Ai7JuYIxpC3wJ9BeRqGIsy00VFZ/
EyJnb\ncHV2ZObIDlSt6JylDSFQA0EpVWIUWyiISBrwNLACOADME5H9xpg3jDH9rZ
t9CLgD840xu4wxi/I4\nXKl1KTmNUbO3EXsphRnDO+BTrRIcWGINhDYw9FcNBKVUi
VGsbQoisgxYdtWy/2b5/x3F+fo3W1p6\nBs/M2UnIqXimDwuilU9VSyDMHw5128KQ
XzQQlFIlit7RXExEhNcW7+fPg1G8MaAlt/vXggOLNRCU\nUiVaieh9VBZ99fdRvt9
8gn/e0oghnRtYA2GENRB+BdcqN7uISimVg54pFIMle07x7vKD3NO6Di/1\nbQ4hiz
QQlFKlgobCdSETUSIAAAtnSURBVLY9PJb/zNtNB99qfPRgIA4HF8PPI6FuOw0EpVS
Jp6Fw\nHR09l8Dj327Hx6MiXw0NwjV0SZZA+EUDQSlV4mkoXCcxCcmMmLkNR2OYOb
ID1Y4vh59HgXd7DQSl\nVKmhoXAdJKak89js7ZyNT2L68CAanF0F80daAmHwzxoIS
qlSQ3sfXaP0DOHZn3ayO+IC0wa3p13C\n35ZA8AmynCFUqHyzi6iUUnbTM4Vr9PbS
A6zYf5ZX725BP7NZA0EpVappKFyDmRuOMWPDMUZ09eWx\narstbQg+HTQQlFKlloZ
CEa3Yf4Y3loTQp0UtJjQ6nCUQftZAUEqVWhoKRbDr5AXGzd1Jax8PJgce\nx/GXx6
BeRw0EpVSpp6FQSCdiLvPYrG3UrOzKd50iqbBgtCUQBs/XQFBKlXoaCoVw4XIKI2Z
tJV2E\ned1PU2XpvzQQlFJlinZJtVNSajpjvg0mIjaRZbefo/bKZ62B8DNUKF/zxC
qlyi49U7BDRobwws97\n2Boey5yukTRZp4GglCqbNBTs8OEfh1i8+xRftTtO+
+0vQr1OGghKqTJJQ6EAP2w5zrS1R3i3aSi9\nD7xqDYT5GghKqTJJ2xTyseZgFBMW
7OMln/08cvJdTP0u8Og8DQSlVJmloZCHfZFxPPXjDv5ZfSf/\nivlYA0EpVS5oKOQ
i8kIiI2dt4wGXLbx4+X8aCEqpckND4SpxiamMnLmVW1P+4nWHKZZAGDyf/2/v\n3m
OkKs84jn9/gKtRFIlYrApdG7WVYqp2YxGjxWIbSg2k0Soao7REq9VqaW1DYqyNJU1
BK9SIrNR7\ntYr3rlHjfUtsAYEoF61WqhTwEgUVi1Rl4ekf52Vy3Czs7DKXzszvk2
z2zDnvmfM8M7N59j3vmfPS\ntEe1QzMzKzsPNOd82rGV829fwlfWP860PteioSNdE
MysobgoJBHBlPuXMej1Nq7ud10qCHe7IJhZ\nQ3FRSGY+
+SodL9zNzKbZqPlYFwQza0geUwDuWbyGVc/czMymVtQ8Es6Y64JgZg2p4XsKz766j
vkP\nzmZGUys0H4vOcA/BzBpXQxeFl9/+kIdvn8GV/WazdehI+riHYGYNrmGLwtsb
PuauG65iqq6j48Bj\n6HemrzIyM2vIorDxkw5uu346l22+hv/uP4Jdz7oXmnavdlh
mZlXXcEVh85at3DFnOpd8dDUf7jeC\n/hPvc0EwM0vKWhQkjZH0iqSVkqZ0sX1XSX
PT9oWSmssZT0TwwC1Xcc666bwz6GgGTrrfBcHMLKds\nRUFSX2AW8B1gGHC6pGGdm
k0C3o+Ig4EZwLRyxQPw1vInOWX1b1k9oIX9fvSgC4KZWSfl7CkcDayM\niNci4lPg
LmB8pzbjgVvT8r3AaEkqRzBLHmplwvpZvLrHkQy94C8uCGZmXSjnl9cOANbkHq8Fv
r69\nNhHRIWkDsA+wLt9I0rnAuQCDBw+mvb29x8F88EEHm/sdxUdH/pK35i/q8f61
auPGjb16vWqZc24M\nzrk8auIbzRExB5gD0NLSEqNGjerFs4yivX04o3u1b+1qb2+
nd69X7XLOjcE5l0c5Tx+9AQzJPT4w\nreuyjaR+wABgfRljMjOzHShnUVgEHCLpIE
lNwASgrVObNuDstHwK8HRERBljMjOzHSjb6aM0RnAh\n8BjQF7gpIl6UdAWwOCLag
BuBP0laCbxHVjjMzKxKyjqmEBGPAI90Wver3PLHwPfLGYOZmRWv4b7R\nbGZm2+ei
YGZmBS4KZmZW4KJgZmYFqrUrQCW9C/y7l7sPotO3pRuAc24Mzrkx7EzOX4iIfbtrV
HNF\nYWdIWhwRLdWOo5Kcc2Nwzo2hEjn79JGZmRW4KJiZWUGjFYU51Q6gCpxzY3DO
jaHsOTfUmIKZme1Y\no/UUzMxsB1wUzMysoC6LgqQxkl6RtFLSlC627yppbtq+UFJ
z5aMsrSJy/pmklyQtk/SUpC9UI85S\n6i7nXLuTJYWkmr98sZicJZ2a3usXJf250j
GWWhGf7aGSnpH0fPp8j61GnKUi6SZJ70hasZ3tknRN\nej2WSTqqpAFERF39kN2m+
1/AF4EmYCkwrFObHwOtaXkCMLfacVcg5xOA3dPy+Y2Qc2q3JzAPWAC0\nVDvuCrzP
hwDPAwPT489VO+4K5DwHOD8tDwNWVTvuncz5eOAoYMV2to8FHgUEjAAWlvL49dhTO
BpY\nGRGvRcSnwF3A+E5txgO3puV7gdGSVMEYS63bnCPimYjYlB4uIJsJr5YV8z4D
/AaYBnxcyeDKpJic\nzwFmRcT7ABHxToVjLLVicg5gr7Q8AHizgvGVXETMI5tfZnv
GA7dFZgGwt6TPl+r49VgUDgDW5B6v\nTeu6bBMRHcAGYJ+KRFcexeScN4nsP41a1m
3OqVs9JCIermRgZVTM+3wocKikv0laIGlMxaIrj2Jy\n/jVwpqS1ZPO3/KQyoVVNT
//ee6Ssk+zY/x9JZwItwDeqHUs5SeoDXA1MrHIoldaP7BTSKLLe4DxJ\nh0fEB1WN
qrxOB26JiN9LOoZsNsfhEbG12oHVonrsKbwBDMk9PjCt67KNpH5kXc71FYmuPIrJG
Ukn\nApcC4yLikwrFVi7d5bwnMBxol7SK7NxrW40PNhfzPq8F2iJic0S8DvyTrEjU
qmJyngTcDRAR84Hd\nyG4cV6+K+nvvrXosCouAQyQdJKmJbCC5rVObNuDstHwK8HS
kEZwa1W3Oko4EricrCLV+nhm6yTki\nNkTEoIhojohmsnGUcRGxuDrhlkQxn+0HyX
oJSBpEdjrptUoGWWLF5LwaGA0g6TCyovBuRaOsrDbg\nrHQV0ghgQ0S8Vaonr7vTR
xHRIelC4DGyKxduiogXJV0BLI6INuBGsi7mSrIBnQnVi3jnFZnzlUB/\n4J40pr46
IsZVLeidVGTOdaXInB8Dvi3pJWAL8IuIqNlecJE5/xz4o6TJZIPOE2v5nzxJd5IV9
kFp\nnORyYBeAiGglGzcZC6wENgE/KOnxa/i1MzOzEqvH00dmZtZLLgpmZlbgomBm
ZgUuCmZmVuCiYGZm\nBS4KVpe6u9NkBY7/iKS90/JFkv4h6Q5J43Z0R9fU/u/pd7O
kMyoRr9k2viTV6pKk44GNZDcOG17l\nWF4GToyItT3cbxRwSUScVJbAzLrgnoLVpe
7uNClpD0kPS1oqaYWk09L6VZKmS1ou6TlJB6f1+0q6\nT9Ki9HNsWt9f0s2p/TJJJ
+eeZ5CkVrLbPj8qabKkiZKuTW0GS3ogxbBU0si0fmMK83fAcZJeSPvO\nk3RELodn
JX215C+eNbS6+0azWZHGAG9GxHcBJA3IbdsQEYdLOguYCZwE/AGYERHPShpK9g3bw
4DL\ntrVPzzMwf5CIOC/dqfSEiFgnaWJu8zXAXyPie5L6kn3jPG8KuZ6CpPfIbvD3
U0mHArtFxNKdfiXM\nctxTsEa1HPiWpGmSjouIDbltd+Z+H5OWTwSulfQC2b1n9pL
UP62ftW3HbfMYFOmbwOy035ZOMXTl\nHuAkSbsAPwRu6cGxzIrinoI1BElDgIfSw9
aIaE3zLYwFpkp6KiKuSNvzA23blvsAIyLiM5P1VHJu\npojYJOkJsklWTgW+VrGDW
8NwT8EaQkSsiYgj0k+rpP2BTRFxO9nNAvPz3J6W+z0/LT9ObvKW3Ln9\nJ4ALcus/
c/qoG0+RTY2KpL6dTmEB/IfsFuB5N5CddlrUw16JWVFcFKwupTtNzge+JGmtpEmdm
hwO\nPJdOB10OTM1tGyhpGXAxMDmtuwhoSYPJLwHnpfVTU/sVkpaSzYVdrIuBEyQt
B5aQzS+ctwzYkgah\nJwNExBLgQ+DmHhzHrGi+JNUsR9mEPC0Rsa7asXQl9XDagS9
7ZjErB/cUzGpEuhpqIXCpC4KVi3sK\nZmZW4J6CmZkVuCiYmVmBi4KZmRW4KJiZWY
GLgpmZFfwPs8klyGl1hqkAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SstEYG48k49C",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
},
"outputId": "882a7727-7699-4545-aed2-46c2204db4ef"
},
"source": [
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 205,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.43371216282960195
for threshold 1\n",
"Test confusion matrix\n",
"[[ 787 2089]\n",
" [ 756 6368]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ribJXn4Zk5BF",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "d85af2d1-bfb2-4933-bf0d-71b84efab603"
},
"source": [
"#Lets try the BOW\n",
"#Trying the under sampling approach LETS GET 4935 records
from each class\n",
"total=pd.DataFrame(x_tr_bow.todense()).join(y_train,
how='inner') \n",
"print(pd.value_counts(total.project_is_approved)) \n",
"class_1=
total.loc[total['project_is_approved']==1].sample(4935) \n",
"class_0= total.loc[total['project_is_approved']==0]
[:4935] \n",
"new_df=pd.concat([class_0,class_1],axis=0)\n",
"new_df=new_df.sample(frac=1) \n",
"new_y_train=new_df['project_is_approved'] \n",
"new_df.drop(['project_is_approved'],inplace=True,axis=1)\n",
"\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(new_df, new_y_train)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"train_auc= results['mean_train_score']\n",
"train_auc_std= results['std_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"cv_auc_std= results['std_test_score']\n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='Test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='Test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"\n",
"\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 Essay features')\n",
"show_most_informative_features(vectorizerc_essay,clf.best_estima
tor_,10)\n",
"print('top 10 Title features')\n",
"show_most_informative_features(vectorizerc_title,clf.best_estima
tor_,10)\n",
"\n",
"\n",
"results.head()"
],
"execution_count": 206,
"outputs": [
{
"output_type": "stream",
"text": [
"1 27102\n",
"0 4935\n",
"Name: project_is_approved, dtype: int64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYsAAAEaCAYAAADg2nttAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzt3Xt8FPW5+PHPkxBIgBBuBeQiUI1g\nuBggRaxUsYKIWqEVBaoctSrVV
vtTT7VQURFbi6fHWrW+ajke1KpN4IAiVZQKEq1Q5H4NRIEiBFHD\nJVzklsvz+2Mm
m8lmk9mE3dz2eb9e+8rMd77zne+TTebZuex3RFUxxhhjqhJX1x0wxhhT/1myMMYY\
n48uShTHGGF+WLIwxxviyZGGMMcaXJQtjjDG+LFkYY+oVEdklIsPruh+mPEsWBgj9
Dyoit4jIx3XV\np8ZARHqIiIpIkwi1lygiBSLy/RDLnhaRuTVsd5rbzwtDlL8Wor6
KyLme+ZEi8pGIHBWRfBH5UESu\nrUlfqtHnYSKSF81tmDKWLEy9Io6o/V1Gu/1IC0
4yqnoSmA38R1C9eGAC8EoNtiFueweD2w1z/bHA\n/wF/BboCHYFHgB9Uty1TfzWYf
xpTt0TkARGZF1T2rIg8405ni8jvRGSliBwRkbdEpK2n7hARWe5+\nKt4gIsM8y7JF
5Lcisgw4Dnw7xPZ3icgUEckRkUMi8pKIJLrL2ojI2+4n2kPudNeq2heRW0Vkq/tJ\
neKeI/NRTf5iI5InIgyLytYjsE5ExInKViHwqIgdF5Nee+nEiMllEdojIARGZ44n9
I/dngYgcE5GL\n3HV+4m7/kIgsEpHunvZURH4uIp8Bn4V4O14BrhOR5p6ykTj/z+
+6bfxKRPa68eWKyOUh2in1PeAs\n4BfAeBFpWkXdctxE8wfgcVV9UVUPq2qJqn6oq
ndUss40EZkrIrPd/q0VkQsqqdtMRP4oIl+4rz+6\nZS3cWDu7v9djItI53H6bGlBV
e9kLYBcwPKjsFuBjd/os4BugtTvfBPgaGOTOZwN7gb5AC2Ae8Jq7\nrAtwALgKZ4c
2wp3/lmfd3UAft92ESvq3GegGtAWWAb9xl7UDrgOaA8k4n3Lne9at0D5wNXAOIMCl
\nOElkoFt/GFCE8+k4AbgDyAf+5rbfBzgB9HTr/z9gBc6n6mbAX4BMd1kPQIEmnv6
MBrYD57v9mQos\n9yxX4H03zqRK3q9PgZs885nAH93pXsAeoLOnD+dU8d7/LzDHjf
UAcJ1n2bTS9zFoHQXOBXq70z2r\n8bc2DSgExrrb/CXw79L3Hc/fIjDd/d12AL4FL
MdJTKXvU15d/
+/EyqvOO2Cv+vFy/0GPAQWe13Hc\nZOHWeRe4w52+BsjxLMsGZnjm04DTQDzwK+DV
oO0tAm72rDs9jP7d6Zm/CthRSd104FBQ3/zanw/8\nP3d6GE4yiHfnk90d4oWe+mu
AMe70VuByz7Kz3J1hE0Ini3eB2zzzce7vurs7r8D3ffo7FfiHO93K\nXX+AO38uTi
IfTojEG9ROc+CIJ5a/AG95lk+j6mRxsTudWI2/tWnAiqD49wHf87zXpcliB3CVp+5
I\nYJfnfbJkUUsvOw1lvMaoauvSF/CzoOWvADe50zcBrwYt3+OZ/hznU2N7oDtwvX
sKqkBECoChODvV\nUOtWJrj9zgAi0lxE/iIin4vIEZxTP63d8/gh2xeRUSKywj2lV
ICTfNp7qhxQ1WJ3+oT78yvP8hNA\nS3e6O/CmJ7atQDHOuftQugPPeOofxDnC6VJZ
f0N4FbjMPfUyFidxrgNQ1e3AvTg75a9FJKuKUzQ/\nxDmKWujOvw6MEpFvufNFOO9
jgIiUzhfiHIlA+fcyHIH4VLUEyMN9P4N0xnmvS31eST0TZZYsTHXM\nB/qLSF+cI4
vXg5Z380yfjbMz2Y+zY3jVm4hUtYWqzvDUD2f44+D2v3Cn/xPn1MuFqtoKuMQtl1D
t\ni0gznNNk/w10dBPjwqD61bEHGBUUX6Kq7iV0XHuAnwbVT1LV5aH6G4qqfg78Ey
dpTyTowraq/k1V\nh+IkJgWerKSpm3GS3m4R+RLnFF4C8GN3+W6coyOvnjhJZC+Q6
8ZzXVX9DSHwXro3HHSl7P30+sKN\noZT3fbchs2uRJQsTNnXuxJmLc+5+paruDqpy
k4ikuRdepwNz3U/nrwE/EOf2ynhxbv8c5r0IHaaf\ni0hX9+LxQzh3BYFzmugEzkX
ktsCjPu00xbm2kA8Uicgo4Ipq9sXrBeC3pRepReRbIjLaXZYPlFD+\nov0LwBQR6e
PWTxGR62uw3VeAu3FOBQUSt4j0EpHvu0nxJM7vpiR4ZRHpAlyOk/jT3dcFOIml9K6
o\n94DeIjJRRBLc3+8TwDxVLVLnfND9wMPuTQOt3Av+Q0VkZhV9HyQiPxLnbq97gV
M41yaCZQJT3d9p\ne5zrSKW38n4FtBORFN/flDljlixMdb0C9KPiKSjcspeBL4FEn
LtrUNU9OBd1f42z89wDPED1//7+\nBvwD2IlzLvs3bvkfgSSco5gVODu4SqnqUbdv
c4BDOJ+iF1SzL17PuOv/Q0SOun240N3WceC3wDL3\ntNMQVX0TZ4ec5Z422wyMqsF
25+FcBF+iqvs85c2AGTi/jy9xLg5PCbH+RGC9qv5DVb8sfQHP4h5B\nqurXbt9+in
MdZDPO9ay7ShtR1bnAOOAnOJ/6v8J5b96qou9vuesccvvxI1UtDFHvN8BqYCOwCVj
r\nlqGq23CSyU73d2unp6JInA8GxoRHRM4GtgGdVPWIpzwb50Loi1Ha7i7gdlVdHI
32Te0RkWnAuap6\nk19dU3/YkYUJm3tu+X4gy5sojDGNX0SGIDCNn/slqK9w7ka5s
o67Y4ypZXYayhhjjC87DWWMMcaX\nJQtjjDG+Gs01i/bt22uPHj0i0tY333xDixYt
ItJWfRdLsYLF25jFUqwQuXjXrFmzX1W/5Vev0SSL\nHj16sHr16oi0lZ2dzbBhwyL
SVn0XS7GCxduYxVKsELl4ReRz/1p2GsoYY0wYoposRORKdyz97SIy\nOcTys0VkqY
isE5GNInKVZ9kUd71cERkZzX4aY4ypWtROQ7kjfj6P8+yCPGCViCxQ1RxPtanAHFX
9\ns4ik4Qzm1sOdHo/z3IDOwGIROc8zCqgxxphaFM0ji8HAdlXdqaqngSyc8YG8FG
csfoAUykaTHI3z\nLeFTqvpvnAfFDI5iX40xxlQhmhe4u1B+TP483MHVPKbhDL52D
87T1YZ71vWOQJlH+bH+ARCRScAk\ngI4dO5KdnR2JfnPs2LGItVXfxVKsYPE2ZrEU
K9R+vHV9N9QE4GVVfUqcZxO/6j4rISyqOhOYCZCR\nkaGRuhMilu6qiKVYweJtzGI
pVqj9eKOZLPZS/mE1Xd0yr9twxxlS1X+JSCLO08rCWdcYY0wtieY1\ni1VAqoj0FJ
GmOBesg58ZsBvn4SuIyPk4z0DId+uNF5FmItITSAVWRrGvAMxft5eLZ3zApr2HuXj
G\nB8xf13jzUyzFCrEXrzGRFrVkoapFOE/xWoTzTOI5qrpFRKaLyLVutf8E7hCRDT
gPMblFHVtwHkyT\ng/Mgm59H+06o+ev2MuWNTewtcB63vLfgBFPe2NQodyqxFCvEX
rxgydFEXlSvWajqQsoeBF9a9ohn\nOgfnkZCh1v0tzhPGasXvF+VyotDJRxsPOo9i
PlFYzLQFWwLl0VbTB0BX14x3t1Ua6+miknKdKe2T\nSFnvysrK2pRAfamwrKyOlFs
/1HrlyypuhxDtB/cxuP3pb+cE4t15pCze37ydQ6eUROJEiI+DOBF3\nWhCB+DghXg
Rxy+KEwPI4EeLcdeJFiHOXB5Z51pFQv4woKk2OJwqLoVtZcgQYM6DCfSLGhKWuL3D
X\nG1+4nzoB3t8bH5guOFEY+EdrjIJjfXDexjrsTfS9+XlZvPu/Oc34maEe+xxZIt
6kUjYdSEhxbkIS\nNyHFeRKSJ0GJm9SqTmDCJzsPcMpN+u/sdk4enCgs5pG3NlNw/
DQtExNo2awJyYlNaNGsSWC6ZbMm\nNG8aX+vJzTQMlixcnVsnBU5TTOpdxMxtzq+m
U6tE5v885MFPRCm191yRHz6/nC+PnATgjl5F/E+u\nE2vHVs1442cXU/qMk1CPOik
t8/a3rKx03rMsqA5VrBeqfW8fqtp2qPnSere9vJr8Y6cA+PE5Rfxt\nhxNv+5ZNeX
bCAEpKoFiVElVKSpQSheISd16V4hJF3bJiVVSV4hLKLS9R3HWdOt521C0rLsFd160
f\nmC7dNp51lWK3TklJ+XXKreeuU1hc4vaPQKIA+PJE2Y7/yMkipv3d+53YiuIEWj
RrQnIzN5Eklk8m\nLZsl0DKx/PJkTz1vEkqIr53RhOav28vvF+UyvttRHprxAQ+M7
GVHUFFgycL1wMhegUP35ASnLCkh\nnsmjetMpJbFuOxdhk0f1DsTaqqlTlpQQz5RR
59OldVLddi4KHrr6/EC8ZzV3ypIS4pl6dRrfPad9\n3XYuCi6e8UHgg89tvYp5apP
zb945JZG3f/E9jp0s4tip0lchR0vn3Z9HTxbxzamyOkdPFrHv8Mly\n64WjWZO4si
TjSTalZS3KJaHQiadlYhOSEio/2rFTbrXHkoWr9A/r94tygaN0aZ3UaD+hxFKsEHv
x\nej/4lEpKiOfBK3vTtkVT2rZoekbtl5QoxwuL3eRRPtkcdX+WJpujniR07GQRew
tOcOxUId+cKubo\nyUIKi/2PqOME94glISjxNGFp7teBONftL7se9ftFuY32/a0rj
eaxqhkZGWpDlFdfLMUKsROv99RM\n1p7kepscTxUVlzuiKU0q35wuCnnEc+xUoXt0
U8yxk4XsyP+m0ravG9iVfl1a0a9ra9LOakVS0/hK\n6zZEERyifI2qZvjVsyMLYxq
hMQO6MGZAF7Kzs7nnxmF13Z1KNWsST7OW8bRr2axG63tPuf20dxF/\nca81JjaJ48
NP85m3Ng9wbiRI7dCS/l1T6Ne1Nf27pNCrUzKJCY0rgUSTJQtjTIPlPeXW0nOt8Xc
/\n6sfo9M58deQUG/MK2LT3MBvzDrN469fMWe0kkCZxQq9OyU4C6dKa/l1TOK9jMk
2b2GN+QrFkYYxp\nsPyuR3VKSaRTSieu6NMJcO5G21twgs1u8ti09zALN31J5kpnz
NOm8XGcf1Yy/bqm0K+Lk0RSO7as\ntTu76jNLFsaYBq06p9xEhK5tmtO1TXOu7HsW
4CSQPQdPsHFvAZvynCTy1roveG3FbsC5qyutcyv6\nd3FOYfXrksK5HVoSHxdb30e
xZGGMiWkiwtntmnN2u+Zc078z4Nzx9fnB484prLzDbNx7mLlr8njl\nX87jqpMS4u
nTuRX9uqYETmN9u30L4hpxArFkYYwxQeLihJ7tW9CzfQtGpzuntIpLlH/vP8ZG9+h
j\n897DZK7czUvLnC9BtmzWxEkgXVLcJNKa7m2bN5oEYsnCGGPCEB8nnNshmXM7JP
OjgV0BKCouYUf+\nN+Uuov91xeeBMdaSE5uUJY8uzimsbm2TGuSQKpYsjDGmhprEx
9GrUzK9OiVzfYbzCJ7C4hI+/epo\nuYvosz7+d+ALiClJCe6pq5TArbydUxLrfQKx
ZGGMMRGUEB9Hn84p9OmcwrjvOGWnior59Mtj5S6i\nz/xoJ0UlTgJp16Kp5w4s5xR
Wx1bNQiaQuhoLy5KFMcZEWbMm8U4y6JoCFzplJwuL2fblUTblFQSO\nQD76NB83f/
Ct5GbuHVgpgVNZy7cfqLOxsCxZGGNMHUhMiCe9W2vSu7UOlJ04XUzOPvf0lZtAPsj
9\nOjCacpwQSCafH6vdsbAsWRhjTD2R1DSeQd3bMqh720DZsVNF5HxxhI15Bfzmna
2B8mVflX1R0Ps8\nnmixryUaY0w91rJZEwb3bMvt3/t2uUcIjOpaNqpw51p4tIAlC
2OMaSAeGNmLJHfwwzbu2ItJCfE8\nMLJX1Ldtp6GMMaaBqMtns1iyMMaYBqSuhp+3
01DGGGN8WbIwxhjjy5KFMcYYX5YsjDHG+IpqshCR\nK0UkV0S2i8jkEMufFpH17ut
TESnwLCv2LFsQzX4aY4ypWtTuhhKReOB5YASQB6wSkQWqmlNaR1Xv\n89S/Bxjgae
KEqqZHq3/GGGPCF80ji8HAdlXdqaqngSxgdBX1JwCZUeyPMcaYGhItHaEq0g2LjAW
u\nVNXb3fmJwIWqeneIut2BFUBXVS12y4qA9UARMENV54dYbxIwCaBjx46DsrKyIt
L3Y8eO0bJly4i0\nVd/FUqxg8TZmsRQrRC7eyy67bI2qZvjVqy9fyhsPzC1NFK7uq
rpXRL4NfCAim1R1h3clVZ0JzATI\nyMjQYcOGRaQz2dnZRKqt+i6WYgWLtzGLpVih
9uON5mmovUA3z3xXtyyU8QSdglLVve7PnUA25a9n\nGGOMqUXRTBargFQR6SkiTXE
SQoW7mkSkN9AG+JenrI2INHOn2wMXAznB6xpjjKkdUTsNpapFInI3\nsAiIB2ap6h
YRmQ6sVtXSxDEeyNLyF0/OB/4iIiU4CW2G9y4qY4wxtSuq1yxUdSGwMKjskaD5aSH
W\nWw70i2bfjDHGhM+
+wW2MMcaXJQtjjDG+LFkYY4zxZcnCGGOML0sWxhhjfFmyMMYY48uShTHGGF+W\nLI
wxxviyZGGMMcaXJQtjjDG+LFkYY4zxZcnCGGOML0sWxhhjfFmyMMYY48uShTHGGF+
WLIwxxviy\nZGGMMcaXJQtjjDG+LFkYY4zxZcnCGGOML0sWxhhjfFmyMMYY48uShT
HGGF+WLIwxxviyZGGMMcZX\nVJOFiFwpIrkisl1EJodY/rSIrHdfn4pIgWfZzSLym
fu6OZr9NMYYU7Um0WpYROKB54ERQB6wSkQW\nqGpOaR1Vvc9T/x5ggDvdFngUyAAU
WOOueyha/TXGGFO5aB5ZDAa2q+pOVT0NZAGjq6g/Ach0p0cC\n76vqQTdBvA9cGcW
+GmOMqULUjiyALsAez3wecGGoiiLSHegJfFDFul1CrDcJmATQsWNHsrOzz7jT\nAM
eOHYtYW/VdLMUKFm9jFkuxQu3HG81kUR3jgbmqWlydlVR1JjATICMjQ4cNGxaRzmR
nZxOptuq7\nWIoVLN7GLJZihdqPN5qnofYC3TzzXd2yUMZTdgqquusaY4yJsmgeWa
wCUkWkJ86Ofjzw4+BKItIb\naAP8y1O8CHhCRNq481cAU6LYV2OMq7CwkLy8PE6eP
FnXXamWlJQUtm7dWtfdqDXVjTcxMZGuXbuS\nkJBQo+1FLVmoapGI3I2z448HZqnq
FhGZDqxW1QVu1fFAlqqqZ92DIvI4TsIBmK6qB6PVV2NMmby8\nPJKTk+nRowciUtf
dCdvRo0dJTk6u627UmurEq6ocOHCAvLw8evbsWaPtRfWahaouBBYGlT0SND+t\nkn
VnAbOi1jljTEgnT55scInCVE1EaNeuHfn5+TVuw77BbYypwBJF43Om76klC2NMvXL
gwAHS09NJ\nT0+nU6dOdOnSJTB/
+vTpsNq49dZbyc3Nrfa2r7nmGoYOHVqu7KabbmL+/PmB+aKiIlq3bh2Y37Zt\nG6N
GjSI1NZWBAwcyfvx4vv7662pvu76rL7fOGmMMAO3atWP9+vUATJs2jZYtW/LLX/6y
XB1VRVWJ\niwv9efell16q9nYPHjzIxo0bSUxMZPfu3Zx99tm+6xw/fpyrr76a555
7jquuugqAJUuWcODAATp0\n6FDtPtRndmRhjGkQtm/fTlpaGjfeeCN9+vRh3759TJ
o0iYyMDPr06cOMGTMCdYcOHcr69esDRwGT\nJ0/mggsu4KKLLqr0U//cuXMZM2YM4
8aNIysrK6w+vfbaa1x66aWBRAFw+eWXc/75559ZsPWQHVkY\nYyr12N+3kPPFkYi2
mda5FY/
+oE+N1t22bRt//etfycjIAGDGjBm0bduWoqIiLrnkEnJyckhLSyu3\nzuHDh7n00k
uZMWMG999/P7NmzWLy5ArjmpKZmckTTzxBSkoKN954Iw8+
+KBvfzZv3sygQYNqFEtD\nY0cWxpgG45xzzgkkCnB28AMHDmTgwIHk5uaSk5NTYZ2
kpCRGjRoFwKBBg9i1a1eFOl988QW7d+/m\noosuIi0tjZKSErZt2waEvjAcizcA2J
GFMaZSNT0CiJYWLVoEpj/77DOeeeYZVq5cSevWrRk3blzI\nLxI2bdo0MB0fH09RU
VGFOrNnz2b//v306NEDcI5GMjMzeeyxx2jXrh2HDpUNeH3w4EHat28PQJ8+\nffjk
k08iFV69ZkcWxpgG6ciRIyQnJ9OqVSv27dvHkiVLatxWZmYmixcvZteuXezatYuVK
1eSmemM\nQDRs2DCysrIoLCwE4OWXX+ayyy4DYOLEiWRnZ/Pee+8F2lq6dGmj/Ca5
HVkYYxqkgQMHkpaWRu/e\nvenevTtDhgypUTs7duxg37595U5vpaamkpiYyJo1axg
zZgxr165l0KBBxMXFkZqaygsvvABA8+bN\nefvtt7nvvvu45557SEhIID09nWeeeS
YiMdYn4hllo0HLyMjQ1atXR6StWBq9MpZiBYs3HFu3bm2Q\nd/PYcB/
+Qr23IrJGVTMqWSXATkMZY4zxZcnCGGOML0sWxhhjfFmyMMYY48uShTHGGF+WLIwx
xviy\nZGGMqVciMUQ5wKxZs/jyyy8rXX769Gnatm3L1KlTy5V37dqVgoKCwPzixYs
ZM2ZMYP6dd95h0KBB\n9OnTh/T0dH71q19VI7qGy5KFMaZeKR2ifP369dx5553cd9
99gXnv0B1+/JLFokWLSEtLY/bs2WG3\nuWHDBu69914yMzPZsmULa9asCQwR0thZs
jDGNBivvPIKgwcPJj09nZ/97GeUlJRQVFTExIkTGTJk\nCH379uXZZ59l9uzZrF+/
nnHjxlV6RJKZmcn9999Pp06dWLlyZVjbf/LJJ3n44Yc577zzAGesqbvu\nuiuiMdZ
XNtyHMaZy706GLzdFts1O/WDUDP96QTZv3sybb77J8uXLadKkCZMmTSIrK4tzzjmH
/fv3\ns2LFCpKTkykoKKB169Y899xz/OlPfyI9Pb1CW8ePHyc7Oztw9JGZmcngwYP
D6sNDDz1U7b43BpUe\nWYjISBEZG6J8rIiMiG63jDGmvMWLF7Nq1SoyMjJIT0/nww
8/ZMeOHZx77rnk5ubywAMPsGjRIlJS\nUnzbWrBgASNGjCAxMZHrr7+eefPmUVJSA
tiQ5JWp6sjiEWBMiPJs4O/A+9HokDGmHqnBEUC0qCo/\n+clPePzxxyss27hxI2+8
8QbPP/888+bNY+bMmVW2lZmZyYoVKwLXG/Lz8/nwww+57LLLAkOSlz5n\nO3hI8jV
r1tCnT/0aur02VHXNopmq5gcXqup+oEWI+sYYEzXDhw9nzpw57N+/H3Dumtq9ezf5
+fmo\nKj/84Q+ZPn06a9euBSA5OZmjR49WaKegoIAVK1aQl5cXGJL82WefLTck+au
vvgpAUVERr7/+emBI\n8gcffJDHH3+c7du3A1BcXBwYgbaxqypZtBKRCkceIpIAJE
WvS8YYU1G/fv149NFHGT58OP379+eK\nK67gq6+
+Ys+ePVxyySVcfPHF3HrrrTzxxBMA3Hrrrdx++
+0VLnDPmzePESNGkJCQECgbM2YM8+fP\np7CwkGnTppGTk8MFF1zAwIEDOf/885kw
YQIAAwYM4KmnnuKGG24gLS2Nfv368fnnn9fuL6KOVDpE\nuYjMADoCd6vqN25ZS+A
ZYL+q1qubi22I8pqJpVjB4g2HDVHeMNSnIcqnAl8Bn4vIGhFZC/wbyHeX\n+RKRK0
UkV0S2i0jFJ6Q7dW4QkRwR2SIif/OUF4vIeve1IJztGWOMiY5KL3CrahEwWUQeA85
1i7er\n6olwGhaReOB5YASQB6wSkQWqmuOpkwpMAS5W1UMi0sHTxAlVrXjPmzHGmF
pXabIQkR8FFSnQWkTW\nq2rFq0YVDcZJLjvd9rKA0UCOp84dwPOqeghAVb+uTueNM
cbUjqpunf1BiLK2QH8RuU1VP/Bpuwuw\nxzOfB1wYVOc8ABFZBsQD01S19MnniSKy
GigCZqjq/OANiMgkYBJAx44dyc7O9ulSeI4dOxaxtuq7\nWIoVLN5wpKSkhLyLqL4
rLi5ukP2uqZrEe/LkyRr//Vd1GurWUOUi0h2YQ8Udf023nwoMA7oCH4lI\nP1UtAL
qr6l4R+TbwgYhsUtUdQX2cCcwE5wJ3pC5cxtJF0FiKFSzecGzdurVBXii2C9z+EhM
TGTBg\nQI22V+2xoVT1cyDBtyLsBbp55ru6ZV55wAJVLVTVfwOf4iQPVHWv+3Mnzh
cBaxahMcaYM1btZCEi\nvYFTYVRdBaSKSE8RaQqMB4LvapqPc1SBiLTHOS21U0Tai
EgzT/nFlL/WYYxppCIxRPmtt95Kbm5u\ntbd9zTXXMHTo0HJlN910E/Pnl50FLyoq
Cny7G2Dbtm2MGjWK1NRUBg4cyPjx4/n66zO//Dpy5Ejf\n00x+I+tGUlUXuP+Oc1H
bqy1wFnCTX8OqWiQidwOLcK5HzFLVLSIyHVitqgvcZVeISA5QDDygqgdE\n5LvAX0
SkBCehzfDeRWWMabxKhygHmDZtGi1btuSXv/xluTqqiqoSFxf68+5LL71U7e0ePHi
QjRs3\nkpiYyO7duzn77LN91zl+/DhXX301zz33HFdddRUAS5Ys4cCBA3To0MFn7a
otWrTIt86sWbMYOHAg\nnTp1OqNthaOqI4v/Bp7yvP4buBO4lTCSBYCqLlTV81T1H
FX9rVv2iJsoUMf9qpqmqv1UNcstX+7O\nX+D+/N+ah2iMiab56/Zy8YwP6Dn5HS6e
8QHz1wWfbY6M7du3k5aWxo033kifPn3Yt28fkyZNIiMj\ngz59+jBjRtk4VkOHDmX
9+vWBo4DJkydzwQUXcNFFF1X6qX/u3LmMGTOGcePGkZWVFVafXnvtNS69\n9NJAog
C4/PLLK3zxbfHixVx22WWMGjWKXr168fOf/5zSL0S/9tpr9OvXj759+/LrX/86sE7
pQ5i2\nb99O3759ue222+jTpw+jRo3i5MmTzJs3r8Iw7A888ABpaWn0798/4g9lqj
RZqOqHpS/gCM7dUW8D\njwFbI9oLY0yDNH/dXqa8sYm9BSdQYG/BCaa8sSlqCWPbt
m3cd9995OTk0KVLF2bMmMHq1avZsGED\nS5cuJSen4gmIw4cPc+mll7L91XE0AAAb
c0lEQVRhwwYuuugiZs2aFbLtzMxMJkyYwIQJEwLjRPnZ\nvHkzgwYNCqvuJ598wp/
//GdycnLYunUrb731Fnl5eUydOpWlS5eybt06li1bxttvv11h3dzcXO69\n9162bN
lCUlIS8+fP57rrriM9PT3w7I5Dhw6xcOFCtmzZwsaNG5kyZUpY/QpXVUOUnycij4r
INuA5\nYDfO8CCXqeqfItoLY0yD9PtFuZwoLC5XdqKwmN8vqv71gnCcc845ZGSUjU
yRmZnJwIEDGThwILm5\nuSGTRVJSEqNGjQJg0KBB7Nq1q0KdL774gt27d3PRRReRl
pZGSUkJ27ZtAyI3ZPmQIUPo0aMH8fHx\njB8/no8//phPPvmE73//+7Rv356EhAR+
/OMf89FHH1VY99xzz6Vfv35VxtC2bVvi4uK44447ePPN\nN2nRIrLjvVZ1Gmob8H3
gGlUdqqrP4VxXMMYYAL4oCD2gQ2XlZ8q7A/zss8945pln+OCDD9i4cSPD\nhw/n5M
mTFdbxPoo1Pj6eoqKiCnVmz57N/v376dGjBz169GD37t2Bo4vSIctLhRqyPBzBCaY
6CadZ\ns2a+MSQkJLB69erAoIhXX3112O2Ho6pk8SNgH7BURP5HRC4H7AkgxpiAzq
1DD0BdWXkkHTlyhOTk\nZFq1asW+fftYsmRJjdvKzMxk8eLFgSHLV65cWW7I8qysL
AoLCwF4+eWXA0OWT5w4kezsbN57771A\nW0uXLmXr1opn6lesWMHu3bspLi5mzpw5
DB06lAsvvJClS5dy4MABioqKyMrK4tJLLw27395h2I8e\nPcqRI0e45pprePrpp1m
3bl2Nfx+hVPWlvPnAfBFpgTNMx71ABxH5M/Cmqv4joj0xxjQ4D4zsxZQ3\nNpU7FZ
WUEM8DI3tFfdsDBw4kLS2N3r170717d4YMGVKjdnbs2MG+ffvKnd5KTU0lMTGRNWv
WMGbM\nGNauXcugQYOIi4sjNTU18AyL5s2b8/bbb3Pfffdxzz33kJCQQHp6Os8880
yF7QwePJg777yTHTt2\nMHz4cK699lpEhMcff5xhw4ahqvzgBz+o1hFB6TDsSUlJL
FiwgLFjx3Lq1ClKSkr4wx/
+UKPfR6VK\nb0EL5wW0wRleY0l11quN16BBgzRSli5dGrG26rtYilXV4g1HTk5Ote
q/uTZPv/u7JdrjV2/rd3+3\nRN9cm1ftbUbCkSNH6mS74Xj//fd19OjREW2zJvGGe
m9xvsrgu4+tamyoUInlEM7wGlU/s9AYEzPG\nDOjCmAFd6robJsqqlSyMMcZU3/Dh
wxk+fHhdd+OMVHu4D2OMMbHHkoUxxhhfliyMMcb4smRhjDHG\nlyULY0y9EokhysF
/
+O7Tp0/Ttm1bpk6dWq68dAC/UosXL2bMmDGB+XfeeYdBgwbRp08f0tPTIzJg\n354
9exg3blyVdUpKSsoNlljbLFkYY+qV0iHK169fz5133sl9990XmPcO3eHHL1ksWrSI
tLQ0Zs+e\nHXabGzZs4N577yUzM5MtW7awZs0aevToEfb6lenWrZtvPyxZGGMato1
z4Om+MK2183PjnKht6pVX\nXmHw4MGkp6fzs5/9jJKSEoqKipg4cSJDhgyhb9+
+PPvss4GRWL3DdwfLzMzk/vvvp1OnTqxcuTKs\n7T/55JM8/PDDnHfeeYAzTtNdd9
1Vod7UqVO5+eabGTJkCKmpqYGRbktKSrj//vvp27cv/fr1Y+7c\nuYAz/Hp6ejoAL
774ImPHjmXkyJGkpqYGRo+dPHkyR48eJT09nf/4j//g6NGjjBo1igsuuIC+ffsG\n
2ooW+56FMabmNs6Bv/8CCt2BAw/vceYB+t8Q0U1t3ryZN998k+XLl9OkSRMmTZpEV
lYW55xzDvv3\n72fFihUkJydTUFBA69atee655/jTn/4U2Al7HT9+nOzs7MDRR2Zm
JoMHDw6rDw899FBY/d20aRPL\nly/nyJEjDBw4kKuvvprs7Gy2bt3Khg0byM/P5zv
f+Q6XXHJJhXU3bNjAmjVrSEhI4LzzzuOee+5h\nxowZvPjii4EHQ7388sv06NGDd9
99F3CGYo8mO7IwxtTckulliaJU4QmnPMIWL17MqlWryMjIID09\nnQ8//JAdO3Zw7
rnnkpubywMPPMCiRYtISUnxbWvBggWMGDGCxMRErr/
+eubNm0dJSQkQuSHJx4wZ\nQ2JiIh06dOCSSy5h1apVfPzxx0yYMIH4+Hg6derE0K
FDWb16dYV1hw8fTqtWrUhKSqJ3797s3r27\nQp2+ffvy3nvvMXnyZJYtWxZW3GfCk
oUxpuYO51Wv/AyoKj/5yU8C1y9yc3N5+OGHadeuHRs3buS7\n3/0uzz//PD/96U99
28rMzOS9996jR48efOc73yE/P58PP/wQaDhDkvfq1YvVq1fTp08fJk+ezBNP\nPBF
2+zVhycIYU3MpXatXfgaGDx/OnDlz2L9/P+DcNbV7927y8/NRVX74wx8yffp01q5d
C5Qfvtur\noKCAFStWkJeXFxiS/Nlnny03JPmrr74KQFFREa+//npgSPIHH3yQxx9
/nO3btwNQXFwcGIE22Pz5\n8zl16hT5+fn885//JCMjg+9973tkZWVRUlLCV199xb
Jly8qNdluVJk2aBPoEzgObWrZsycSJE/nP\n//zPQNzRYtcsjDE1d/kj5a9ZACQkO
eUR1q9fPx599FGGDx9OSUkJCQkJvPDCC8THx3PbbbdRXFxM\nfHw8Tz75JFB+
+O6VK1cG7qSaN28eI0aMICEhIdD2mDFjeOihh3j+
+eeZNm0ad955JxdccAGqylVX\nXcWECRMAGDBgAE899RQ33HBD4EFLo0ePDtnfvn3
7cumll3LgwAEee+wxOnbsyNixY1mxYgX9+/dH\nRPjDH/5Ahw4dOHLkSFi/g9tuu4
3+/fuTkZHBtddey/XXX09cXBxNmzatNGlFiqj70PCGLiMjQ0Od\n+6uJ7Oxshg0bF
pG26rtYihUs3nBs3bqV888/P/wVNs5xrlEcznOOKC5/JOIXt8Nx9OhRkpOTa327\n
oUydOpX27dtz7733Rm0bNYk31HsrImtU1ffwxo4sjDFnpv8NdZIcTO2yZGGMMRH2m
9/8pq67EHF2\ngdsYY4yvqCYLEblSRHJFZLuITK6kzg0ikiMiW0Tkb57ym0XkM/d1
czT7aYwpr7FcyzRlzvQ9jdpp\nKBGJB54HRgB5wCoRWaCqOZ46qcAU4GJVPSQiHdz
ytsCjQAagwBp33UPB2zHGRFZiYiIHDhygXbt2\nNfoymql/VJUDBw6QmJhY4zaiec
1iMLBdVXcCiEgWMBrI8dS5A3i+NAmo6tdu+UjgfVU96K77PnAl\nkBnF/hpjcEZdz
cvLIz8/v667Ui0nT548o51hQ1PdeBMTE+natebff4lmsugC7PHM5wEXBtU5D0BE\n
lgHxwDRVfa+Sde2J8MbUgoSEBHr27FnX3ai27OxsBgwYUNfdqDW1HW9d3w3VBEgFh
gFdgY9EpF+4\nK4vIJGASQMeOHcnOzo5Ip44dOxaxtuq7WIoVLN7GLJZihdqPN5rJ
Yi/QzTPf1S3zygM+UdVC4N8i\n8ilO8tiLk0C862YHb0BVZwIzwflSXqS+bBVLX9y
KpVjB4m3MYilWqP14o3k31CogVUR6ikhTYDyw\nIKjOfNykICLtcU5L7QQWAVeISB
sRaQNc4ZYZY4ypA1E7slDVIhG5G2cnHw/MUtUtIjIdWK2qCyhL\nCjlAMfCAqh4AE
JHHcRIOwPTSi93GGGNqX1SvWajqQmBhUNkjnmkF7ndfwevOAmZFs3/GGGPCY9/g\n
NsYY48uShTHGGF+WLIwxxviyZGGMMcaXJQtjjDG+LFkYY4zxZcnCGGOML0sWxhhjf
FmyMMYY48uS\nhTHGGF+WLIwxxviyZGGMMcaXJQtjjDG+LFkYY4zxZcnCGGOML0sW
xhhjfFmyMMYY48uShTHGGF+W\nLIwxxviyZGGMMcaXJQtjjDG+LFkYY4zxZcnCGGO
ML0sWxhhjfFmyMMYY4yuqyUJErhSRXBHZLiKT\nQyy/RUTyRWS9+7rds6zYU74gmv
00xhhTtSbRalhE4oHngRFAHrBKRBaoak5Q1dmqeneIJk6oanq0\n+meMMSZ80TyyG
AxsV9WdqnoayAJGR3F7xhhjoiSayaILsMczn+eWBbtORDaKyFwR6eYpTxSR1SKy\n
QkTGRLGfxhhjfIiqRqdhkbHAlap6uzs/EbjQe8pJRNoBx1T1lIj8FBinqt93l3VR1
b0i8m3gA+By\nVd0RtI1JwCSAjh07DsrKyopI348dO0bLli0j0lZ9F0uxgsXbmMVS
rBC5eC+77LI1qprhW1FVo/IC\nLgIWeeanAFOqqB8PHK5k2cvA2Kq2N2jQII2UpUu
XRqyt+i6WYlW1eBuzWIpVNXLxAqs1jH16NE9D\nrQJSRaSniDQFxgPl7moSkbM8s9
cCW93yNiLSzJ1uD1wMBF8YN8YYU0uidjeUqhaJyN3AIpyjhlmq\nukVEpuNksgXAL
0TkWqAIOAjc4q5+PvAXESnBua4yQyveRWWMMaaWRC1ZAKjqQmBhUNkjnukpOKen\n
gtdbDvSLZt+MMcaEz77BbYwxxpclC2OMMb4sWRhjjPFlycIYY4wvSxbGGGN8WbIwx
hjjy5KFMcYY\nX5YsjDHG+LJkYYwxxpclC2OMMb4sWRhjjPFlycIYY4wvSxbGGGN8
WbIwxhjjy5KFMcYYX5YsjDGm\nIdk4B57uC/vWOz83zqmVzUb14UfGGGMiaOMc+Ps
voPAEdAIO73HmAfrfENVN25GFMaZhq6NP2lFT\nXASnjsE3+6FgD+zfDl9ugj2rYN
GvnUQBtPlmh1O/8AQsmR71btmRhTGm4YrmJ21VKDoFRSedV+EJ\nz/RJKDrhLK9Oe
eHJoDJv26ecOiVFYXWv5/4lZTOH884s1jBYsjCmMdo4x/m02el2ePpuuPyRqJ+m\n
iDhVKD7t7ESLC6H4lDt92i0/DYseCnzSbn90q7Ne4QlY+AAc/bLqnbh3Bx1yx30S0
Jr3v0li2Ssh\nEZokQZNmkJAETVtC8/Zl5Qneum69UOXz74Jv8gHI6Xw9Q3b+0dlW
Stcz+EWHGU7Ut9CQNIZ/sHDF\nUqwQW/FW99N2SUnZDjiwc3Z30OV2zqfK//TbkQf
KSpeXbuNU2fLANoK2V3QKSgqrFXbfL7LKZk4W\nwPsPO9MS7+6AK9lxB3baYeysKy
0P0bZIzd6/qox8IvDenkxo45QlJDl/z1FmyaJUHV44qnWNIVZV\n54WCllQ9veUNe
PdXUHSShPbfOPEuuAeOH4Reo0CLnR2mFjvrlBS7ZZXMe+uXW1ZaHmqZp51ybVbS\n
jmqItsNsZ9c/3U/FMGD3/zq/r8ITzqfSDx6vuKOu5k7ZV1yCs7OMb+r+TID4ZkHTT
aFZslunqVMW\nX7qeuzy+qaeNSqbf+nngk/bq7neS8fkLTh+SO8PdK50dd3wj2s2V
/n+WXqNI6VZrH3xE9QwOs+qR\njIwMXb16dc0beLqvsxMBvkjJoPNht62EFtDvOnc
HBM5OyP0JZTsm73S5uiGWV1mXMJZX0m6VdT3t\n5q1ydhZAQdLZtD6x21kW3xQ69X
d2QqXrBaappLyyHXU1duY1qd8YSTzExTs/Jc6djisrC/yMC6oT\nX77uF+sCTR5q/
m3aHN9Zto3+48t2zsE77/imnumgnXeVO3Lv8qbR+URdGc8Hn+xejzEs91Hnk/YP\n
nm04H3xqKDs7m2HDhp1xOyKyRlUz/Oo1opR7hjwXiNof21pWXvgNfPoP9x/A/Scon
Q78U0hgUVl5\nVXWDp/3aDVpeZbth1HUTBYBKfFmsxachMcVTPy7ENKHLJa5sG+Wm
pZLyqqapZn3391RZnX9MDYT4\nWYdRpH79blnMo5+vuLOVuNA75wo78hDLAuuH2sn
7bCNSPB98NnS72dmBgvMp9Ed/idx26oM6/KQd\nayxZlErpGvgHW37ug+X/we7bXI
cdi4JyO5Nbysc68Y067FiUfPKXQLx72wwpSxYp3WDATXXYsSi5\n/JGy04ylaum8d
p3of4Pzys6GCY3sf7Ueier3LETkShHJFZHtIjI5xPJbRCRfRNa7r9s9y24Wkc/c\n
183R7Cfg/CMlJJUva6z/YLEUK8RevP1vcE7DpHRz5lO6xcRpGRNdUTuyEJF44HlgB
JAHrBKRBaqa\nE1R1tqreHbRuW+BRIAPnBPUad91D0epvTB3OxlKsEHvxgn3aNhEX
zdNQg4HtqroTQESygNFAcLII\nZSTwvqoedNd9H7gSyIxSXx2x9A8WS7FC7MVrTIR
F8zRUF2CPZz7PLQt2nYhsFJG5ItKtmusaY4yp\nBXV9gfvvQKaqnhKRnwKvAN8Pd2
URmQRMAujYsSPZ2dkR6dSxY8ci1lZ9F0uxgsXbmMVSrFD78UYz\nWewFunnmu7plA
ap6wDP7IvBfnnWHBa2bHbwBVZ0JzATnexaRuOcYInf/ckMQS7GCxduYxVKsUPvx\n
RvM01CogVUR6ikhTYDywwFtBRM7yzF4LlH7BYRFwhYi0EZE2wBVumTHGmDoQtSMLV
S0SkbtxdvLx\nwCxV3SIi04HVqroA+IWIXAsUAQeBW9x1D4rI4zgJB2B66cVuY4wx
tS+q1yxUdSGwMKjsEc/0FGBK\nJevOAmZFs3/GGGPCYw8/MsYY48uShTHGGF+NZtR
ZEckHCoDDnuKUasx7p9sD+yPQreDt1bReqOXh\nlIUTb23H6le3smXVjbchv7ehyu
1v2f6Wg6cjFW+qqqb41lLVRvMCZtZ0Pmh6dTT6U9N6oZaHUxZO\nvLUdq1/dypZVN
96G/N5W971s6PHa33LD+FtubKeh/n4G88HLIiHcNv3qhVoeTlltxlud9qqqW9my\n
6sbbkN/bUOX2t1z5vP0tn5mw2mw0p6EiSURWaxgPA2kMYilWsHgbs1iKFWo/3sZ2Z
BEpM+u6A7Uo\nlmIFi7cxi6VYoZbjtSMLY4wxvuzIwhhjjC9LFsYYY3xZsjDGGOPL
kkU1iMgwEfmniLwgIsPquj+1\nQURaiMhqEbmmrvsSbSJyvvvezhWRu+q6P9EkImN
E5H9EZLaIXFHX/Yk2Efm2iPyviMyt675Ei/u/\n+or7vt4Y6fZjJlmIyCwR+VpENg
eVXykiuSKyXUQm+zSjwDEgEefpffVWhOIF+BUwJzq9jJxIxKuq\nW1X1TuAG4OJo9
vdMRCjW+ap6B3AnMC6a/T1TEYp3p6reFt2eRl41Y/8RMNd9X6+NeF9i5W4oEbkE\n
Z0f/V1Xt65bFA58CI3B2/quACThDqv8uqImfAPtVtUREOgJ/UNWIZ+9IiVC8FwDtc
JLjflV9u3Z6\nX32RiFdVv3aHzL8LeFVV/1Zb/a+OSMXqrvcU8Lqqrq2l7ldbhOOd
q6pja6vvZ6qasY8G3lXV9SLy\nN1X9cST7UtePVa01qvqRiPQIKh4MbFfVnQAikgW
MVtXfAVWddjkENItGPyMlEvG6p9paAGnACRFZ\nqKol0ex3TUXq/VXnOSsLROQdoF
4miwi9twLMwNm51NtEARH/321QqhM7TuLoCqwnCmeNYiZZVKIL\nsMcznwdcWFllE
fkRMBJoDfwpul2LimrFq6oPAYjILbhHVVHtXeRV9/0dhnMo34yg57A0ANWKFbgH\n
GA6kiMi5qvpCNDsXBdV9b9sBvwUGiMgUN6k0VJXF/izwJxG5migMCxLryaJaVPUN4
I267kdtU9WX\n67oPtUFVswnxrPfGSFWfxdm5xARVPYBzfabRUtVvgFuj1X7MXOCu
xF6gm2e+q1vWWFm8jTfeWIoV\nYi9erzqJPdaTxSogVUR6ikhTYDywoI77FE0Wb+O
NN5ZihdiL16tOYo+ZZCEimcC/gF4ikicit6lq\nEXA3sAjYCsxR1S112c9IsXgbb7
yxFCvEXrxe9Sn2mLl11hhjTM3FzJGFMcaYmrNkYYwxxpclC2OM\nMb4sWRhjjPFly
cIYY4wvSxbGGGN8WbIw9ZaI7BKR9mdapxrbOxaJdhoDEblXRJrXdT9M/WHJwpg6\n
ICJnPC6bO1R1tNwLVCtZRLk/po5ZsjB1TkTmi8gaEdkiIpNCLO8hIttE5HUR2SrOk
+y8O7J7RGSt\niGwSkd7uOoNF5F8isk5ElotIrzD78lsR2SAiK0Sko4gki8i/RSTB
Xd6qdF5EskXkGRFZLyKbRWSw\nW6eF+9Cale72R7vlt4jIAhH5AFgizpMXPxKRd8R
5kM0LIhLn1v2zOE8o3CIij3n6t0tEnhSRtcD1\nInKHiKxy+zyv9PciIi+7bawQkZ
3utma5v7+XPe1d4f6e1orI/4lISxH5BdAZWCoiSyurF6o/Yb7l\npiFSVXvZq05fQ
Fv3ZxKwGWjnzu8C2gM9cJ5SeLFbPgv4pafOPe70z4AX3elWQBN3ejgwz53uDCys\n
pB8K/MCd/i9gqjv9EjDGnZ4EPOVOZwP/405fAmx2p58AbnKnW+M8qKYFcAvOcNKl8
Q4DTgLfxnlo\nz/vA2KDfSby7nf6eeB/09LmdZ/o3nt/Fy0AWIDjPOjgC9MP5gLgG
SHd/tx8BLdx1fgU84v3du9N+\n9R4M9fu0V+N62ZGFqQ9+ISIbgBU4o2mmhqizR1W
XudOvAUM9y0qHjV+Dk1gAUoD/E+dxlE8DfQBU\n9QtVvaqSfpwGSp8G6G3rRcqGfr
4VJ3mUynTb/QhoJSKtgSuAySKyHmdHnwic7dZ/X1UPetZfqc4j\nP4vdtkrjusH9t
L7O7XuaZ53Znum+4jwXfhNwY2mcrr+rqgKbgK9UdZM6zyTZ4sY2xG13mdvXm4Hu\n
IX4vfvVmh1jHNDL2PAtTp8R54NBw4CJVPS4i2Tg712DBg5h550+5P4sp+5t+HFiqq
j8U50lj2WF0\np9DduZZrS1WXuafChgHxqup9HnKofglwnarmeheIyIXAN1XEAaAi
0hP4JfAdVT3knjby/k68bbyM\nc9SzQZyHVA3zLCv9vZR4pkvnm7gxvq+qE6ia+NQ
Ljsk0QnZkYepaCnDITRS9cT7FhnK2iFzkTv8Y\n+DiMdkvH+L/ljHsJf8V5zOpLQe
XjAERkKHBYVQ/jjAZ6j4iIu2xAFe0OFmeo6Ti3rY9xTqF9AxwW\n53nvo6pYPxnY5
15Tqe4z4VcAF4vIuW4/W4jIee6yo27bfvVMjLBkYerae0ATEdmK80zoFZXUywV+\n
7tZrA/zZp93/An4nIuvwHEGLSGcRqckjU193t5sZVH7S3cYLwG1u2eNAArBRRLa48
5VZhfOI3q3A\nv4E3VXUDzumnbTgJalnlq/Mw8IlbZ1t1AlLVfJxEmikiG3GGwu7t
Lp4JvCciS33qmRhhQ5Sbes89\njfS2qvatwz6MBUar6kRPWTbOhfbVNWxzmLv+NRH
ppDFRZNcsjPEhIs/hnAqq7MK4MY2eHVkYY4zx\nZdcsjDHG+LJkYYwxxpclC2OMMb
4sWRhjjPFlycIYY4wvSxbGGGN8/X8LPg0YsSVhGAAAAABJRU5E\nrkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 Essay features\n",
"\t-10.5083\tfaced \t\t-3.0811\tuntil
\n",
"\t-10.5083\tpreschool \t\t-3.2459\tattention
\n",
"\t-10.4785\tdo \t\t-3.3283\ttrack
\n",
"\t-10.4785\trelationships \t\t-3.5387\tteams
\n",
"\t-10.4785\tstudying \t\t-3.8037\tparent
\n",
"\t-10.4785\tvarying \t\t-3.8961\tinteresting
\n",
"\t-10.4213\tany \t\t-4.0284\tnothing
\n",
"\t-10.4213\tboards \t\t-4.1652\tballs
\n",
"\t-10.4213\tconfidence \t\t-4.2028\ttruly
\n",
"\t-10.3939\tbegan \t\t-4.3218\ttraditional
\n",
"top 10 Title features\n",
"\t-10.5083\tforward \t\t-3.2459\tbetter
\n",
"\t-10.5083\trich \t\t-3.3283\twow
\n",
"\t-10.4785\telmo \t\t-3.5387\twalk
\n",
"\t-10.4785\tsinging \t\t-3.8037\tproduction
\n",
"\t-10.4785\ttrue \t\t-3.8961\tleft
\n",
"\t-10.4213\tawesome \t\t-4.0284\tpe
\n",
"\t-10.4213\tbut \t\t-4.1652\tbook
\n",
"\t-10.4213\tcreates \t\t-4.2028\tyoung
\n",
"\t-10.3939\tbrains \t\t-4.3218\twrite
\n",
"\t-10.3939\tclasses \t\t-4.4639\thealth
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.218056</td>\n",
" <td>0.006566</td>\n",
" <td>0.035559</td>\n",
" <td>0.000189</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.521082</td>\n",
" <td>0.505621</td>\n",
" <td>0.518723</td>\n",
" <td>0.490823</td>\n",
" <td>0.503220</td>\n",
" <td>0.507894</td>\n",
" <td>0.011042</td>\n",
" <td>6</td>\n",
" <td>0.791574</td>\n",
" <td>0.802749</td>\n",
" <td>0.786539</td>\n",
" <td>0.781600</td>\n",
" <td>0.793363</td>\n",
" <td>0.791165</td>\n",
" <td>0.007100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.212707</td>\n",
" <td>0.001289</td>\n",
" <td>0.035750</td>\n",
" <td>0.000390</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.521442</td>\n",
" <td>0.506047</td>\n",
" <td>0.519014</td>\n",
" <td>0.490981</td>\n",
" <td>0.503227</td>\n",
" <td>0.508142</td>\n",
" <td>0.011119</td>\n",
" <td>5</td>\n",
" <td>0.791569</td>\n",
" <td>0.802747</td>\n",
" <td>0.786532</td>\n",
" <td>0.781561</td>\n",
" <td>0.793339</td>\n",
" <td>0.791150</td>\n",
" <td>0.007110</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.213157</td>\n",
" <td>0.001846</td>\n",
" <td>0.036075</td>\n",
" <td>0.000403</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.522052</td>\n",
" <td>0.507094</td>\n",
" <td>0.519340</td>\n",
" <td>0.491566</td>\n",
" <td>0.502960</td>\n",
" <td>0.508602</td>\n",
" <td>0.011141</td>\n",
" <td>4</td>\n",
" <td>0.791498</td>\n",
" <td>0.802709</td>\n",
" <td>0.786431</td>\n",
" <td>0.781257</td>\n",
" <td>0.793148</td>\n",
" <td>0.791009</td>\n",
" <td>0.007180</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.213083</td>\n",
" <td>0.001490</td>\n",
" <td>0.035842</td>\n",
" <td>0.000399</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.524171</td>\n",
" <td>0.510037</td>\n",
" <td>0.519733</td>\n",
" <td>0.492840</td>\n",
" <td>0.501218</td>\n",
" <td>0.509600</td>\n",
" <td>0.011544</td>\n",
" <td>3</td>\n",
" <td>0.790828</td>\n",
" <td>0.802286</td>\n",
" <td>0.785569</td>\n",
" <td>0.779786</td>\n",
" <td>0.792089</td>\n",
" <td>0.790112</td>\n",
" <td>0.007482</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.215098</td>\n",
" <td>0.001462</td>\n",
" <td>0.037547</td>\n",
" <td>0.002176</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.528818</td>\n",
" <td>0.514976</td>\n",
" <td>0.522210</td>\n",
" <td>0.494424</td>\n",
" <td>0.499115</td>\n",
" <td>0.511909</td>\n",
" <td>0.013197</td>\n",
" <td>2</td>\n",
" <td>0.786426</td>\n",
" <td>0.798877</td>\n",
" <td>0.780682</td>\n",
" <td>0.773794</td>\n",
" <td>0.786911</td>\n",
" <td>0.785338</td>\n",
" <td>0.008269</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.218056 0.006566 ...
0.791165 0.007100\n",
"1 0.212707 0.001289 ...
0.791150 0.007110\n",
"2 0.213157 0.001846 ...
0.791009 0.007180\n",
"3 0.213083 0.001490 ...
0.790112 0.007482\n",
"4 0.215098 0.001462 ...
0.785338 0.008269\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 206
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Vkd5DA5-k47A",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
},
"outputId": "175b30f8-eac8-4161-f110-6fa29bed3dc6"
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(new_df),axis=1)
\n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_bow.todense()),a
xis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds =
roc_curve(new_y_train, y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"test AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['BOW(under
sampling)',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 207,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3XlYVVX3wPHvBgcUZ1RQUEFEZXDG\necJU1CzN2bLSBq1+2WtZqZWVz
b6mZYPaa2lamUNpaY6YRmppKg4pII6YoICAIiDT5a7fHxduoAio\nXC7D/jwPj95z
9jlnncuw7jl7n7WViKBpmqZpADbWDkDTNE0rOXRS0DRN08x0UtA0TdPMdFLQNE3T\
nzHRS0DRN08x0UtA0TdPMdFLQNE3TzHRS0EoNpVS4UipFKZWU4+vzrHUTlFKZWcuu
KaWOKqXuy7Gt\nq1JKcmwXrpSakccxJiiljimlriulopRSi5RStXKsn6WUysjax1W
l1J9Kqa75xHxjXEey41JK+Sml\nIvLZtptSaqdSKlEplaCU+kUp5ZW1blyOc0lRSh
lzvi9ZbXpkxZeglIpXSv2hlOp4J+
+9Vn7opKCV\nNveLSLUcX5NzrNsrItWAWsBCYFXOP+hZamW1GQm8rpTqn71CKfUi8
F/gZaAm0AVoAmxXSlXKsY/V\nWfuoC/wG/FBAzDnjWgKsUUrVzm+DrEQTAKwHGgJu
wFHgD6VUUxFZkf0eAIOAiznfF6VUDWAj8BlQ\nB3AG3gLSCohVK+d0UtDKHBExAt8
C9oDHLdocBIKBtgBZf0TfAp4Tka0ikiEi4cBowBV4OI99GIAV\ngLNSql4h41oKVA
HcC2g+B/hGRD4RkUQRiReRmcA+YFZBxwKaZx1zpYhkikiKiASIyN+F2FYrx3RS\n0
MocpZQt8BiQAZy/RZsugA9wOmtRN8AOWJeznYgkAZuB/twg6+rhUSAOuFKIuCoATw
JJwKl82lXN\niievK5A1ecWSh5NAplJquVJqUEFXJpqWTScFrbT5OetefvbXxBzru
iilrgKpwFzgYRGJuWH7WKVU\nCrAX0y2mn7OW1wVisz793+hS1vpso7OOkwJMBEbe
Yrsb44oCHgSGiUhCPu3rYPrdvFSIWPIkIteA\nHoAAXwKXlVIblFKOBW2rlW86KWi
lzQMiUivH15c51u0TkVpAbWAD0DOP7esC1YAXAT+gYtbyWKBu\n1qf5GzXIWp9tTd
ZxHIHjQIcCYt6XFWtdEekiIr8W0P4KYMw6bkGx3JKIhIrIBBFxwXRV1BCYX5ht\nt
fJLJwWtzMm65fMM8IhSql0e6zNF5CNMVxT/l7V4L6ZO2OE52yqlsjtyd+Sxn1hgEj
BLKZXXH/A7\njT85K55ReawenVcshdjnCWAZpuSgabekk4JWJolIPPAV8EY+zWYD0
5RSdlm3c94CPlNKDVRKVVRK\nuWK6hx+BqeM6r+OEAduAaXcaq1LK7oYvBcwAxiul
/qOUqq6Uqq2UehfomhVnQftsqZR6USnlkvW6\nEaZbV/vuNE6tfNBJQSttfrnhOYW
f8mk7H7hXKdX6Fus3YbpVMxFAROYAr2Lqj7gG/AVcAPqKSH5D\nOT8EJiml6t/muY
BpqGjKDV/uIrIHGIDpyuUSpg7zdkAPEbllJ3UOiUBn4C+lVDKmZHAc020zTbsl\np
SfZ0TRN07LpKwVN0zTNTCcFTdM0zUwnBU3TNM1MJwVN0zTNLK8HdUq0unXriqur6x
1tm5ycjL29\nfdEGVMLpcy4f9DmXD3dzzkFBQbEiUmCNrlKXFFxdXTl48OAdbRsYG
Iifn1/RBlTC6XMuH/Q5lw93\nc85KqTzrgN1I3z7SNE3TzHRS0DRN08x0UtA0TdPM
Sl2fQl4yMjKIiIggNTU133Y1a9YkNDS0mKIq\nGfQ5lw+3e852dna4uLhQsWLFght
r5UqZSAoRERFUr14dV1dXTLXE8paYmEj16tWLMTLr0+dcPtzO\nOYsIcXFxRERE4O
bmZuHItNLGYrePlFJLlVIxSqnjt1ivlFKfKqVOK6X+Vkq1v9Njpaam4uDgkG9C\n0
DTNRCmFg4NDgVfWWvlkyT6FZcDAfNYPwjR/rgemmvSL7uZgOiFoWuHp3xftViyWFE
RkFxCfT5Oh\nmCYmFxHZB9QqyolKNE3TygIRIfR8FAe/fI742CiLH8+afQrOmGrVZ
4vIWnbTvLRKqUmYriZwdHQk\nMDAw1/qaNWuSmJhY4AEzMzML1e52Xb16lR9+
+IGJEycW3PgGI0aMYMmSJdSqVeu2tuvevTseHh4s\nW7bMvOzee+/l3XffpX17052
48+fPM2rUKPbv3w/AwYMHmTlzJjExMVStWpW2bdsyZ84cqlatelvH\nPnz4MM888w
wpKSn4+/szZ86cPD957t69mxkzZpCRkYGDgwNbtmzh1KlTTJgwwdwmPDycV199lWe
f\nfZZjx47x/PPPk5ycTOPGjfnqq6+oUaMGAMePH2fKlCkkJiZiY2NDYGAgdnZ2DB
s2jOjoaAwGA926\ndWPevHkAvPLKKyxfvpy6dU3TGb/xxhsMGDCAnTt3MmvWLNLT0
6lUqRLvvPMOvXv3Nr9/UVFRVKlS\nBYCff/6ZevXqceHCBZ5+
+mkSEhLIzMxk1qxZDBgwgIMHDzJlyhTA9Iv7yiuvcP/99wPg4+NDtWrV\nsLW1pUK
FCvz++
+8A/P333zz//POkpaVRoUIF5s2bh6+v7y3fLzD9fD333HOEhISglGLBggV07tyZ\n
mTNnsmXLFipVqoSrqyuLFi0y/xzd6v3KKTU19abfpdIkKSmpVMefn0yjcPKKkUMxB
myjj/KK8Us8\nbWK4kGRLYKCTZQ8uIhb7AlyB47dYtxHThCHZr3cAvgXts0OHDnKj
kJCQm5bl5dq1a4Vqd7vOnTsn\n3t7eea7LyMgo8uOFhISIj4+PNGzYUJKSkszLe/f
uLQcOHMgVl6enp4iIREVFSePGjeXPP/80r//h\nhx8kKirqto/fsWNH2bt3rxiNRh
k4cKBs3rz5pjZXrlwRT09POX/
+vIiIREdH39TGYDCIo6OjhIeH\ni4iIr6+vBAYGiojIkiVLZObMmSJieg9btWolR4
4cERGR2NhYMRgMIiKSkJAgIiJGo1GGDx8uK1eu\nlGvXrsmbb74pH3744U3HPHTok
ERGRoqIyLFjx6Rhw4bmdTe+f9kmTpwoCxcuFBGR4OBgadKkiYiI\nJCcnm7+/Fy9e
lHr16plfN2nSRC5fvnzTvvr3729+vzZt2iS9e/cu8P169NFH5csvvxQRkbS0NLly\
n5YqIiGzbts18vOeff16mTZtW4PuVU2F/b0qq3377zdohFKnktAzZcuySTF19RNq8
tU18pq+R1a8/\nIPJmDbn2Xx+5Erzzrs4ZOCiF+LttzecUIoFGOV67ZC0rdWbMmMG
ZM2do27YtL7/8MoGBgfTs2ZMh\nQ4bg5eUFwAMPPECHDh3w9vZm8eLF5m1dXV2JjY
0lPDwcT09PJk6ciLe3N/7+/qSkpOR5vJUrV/LI\nI4/g7+/P+vXrCxXjggULGD9+P
F27djUvGzlyJI6Ojrd1rpcuXeLatWt06dIFpRSPPvooP//8803t\nvv/
+e4YPH07jxo0BqF//5knJduzYgbu7O02aNAHg5MmT9OrVC4D+/fuzdu1aAAICAmjd
ujVt2rQB\nwMHBAVtbWwDzlYTBYCA9Pb3Ae+Xt2rWjYcOGAHh7e5OSkkJaWn6Tqpn
uv1+7dg2AhIQE8/ZVq1al\nQgXTxXZqamqh7tPfal+3er8SEhLYtWsXTzzxBACVKl
UyXw34+/ubj9+xY0ciIiKA/N8vrWSJS0pj\nzcELPLn8IO3e3s7T3wWxPSSKyQ1Pc
aDWq4yyDYRu/6H6839Ry6tPscRkzdtHG4DJSqlVmKYNTBCR\nm24d3a63fgkm5OK1
PNdlZmbe0S+HV8MavHm/9y3Xz549m+PHj3PkyBHAVJ/k0KFDHD9+3Dzkb+nS\npdS
pU4eUlBQ6duzIiBEjcHBwyLWfU6dOsXLlSr788ktGjx7N2rVrefjhh2863urVq9m+
fTsnTpzg\ns88+46GHHirwHI4fP8748eMLbBcWFsaYMWPyXBcYGEhkZCQuLi7mZS4
uLkRG3pzLT548SUZGBn5+\nfiQmJjJlyhQeffTRXG1WrVrFgw8+aH7t7e3N+vXree
CBB/jhhx+4cOGCeV9KKQYMGMDly5cZO3Ys\n06b9OyXygAED2L9/P4MGDWLkyJFcv
34dgM8//5xvvvkGX19f5s2bR+3atXMdf+3atbRv357KlSub\nlz322GPY2toyYsQI
Zs6ciVKKWbNm4e/vz2effUZycjK//vqruf1ff/3F448/zvnz5/n222/Nf6SV\nUvj
7+6OU4qmnnmLSpEkAzJ8/nwEDBvDSSy9hNBr5888/832/zp07R7169Xjsscc4evQo
HTp04JNP\nPrmpKNq3337LuHHjCvV+adZ1Pi6Z7SHRBARHc/B8PEaBhjXteLBTY+5
tWgHf0NnYBK+D+t4wdDU4\n3/HAzDtiySGpK4G9QAulVIRS6gml1NNKqaezmmwGzg
KngS+B/7NULNbQqVOnXGPAP/30U9q0aUOX\nLl24cOECp07dPM2um5sbbdu2BaBDh
w6Eh4ff1ObgwYPUrVuXxo0b07dvXw4fPkx8vKk/P69Pqrc7\nyqRFixYcOXIkz6/b
6fcwGAwEBQWxadMmtm3bxjvvvMPJkyfN69PT09mwYQOjRo0yL1u6dCkLFy6k\nQ4c
OJCYmUqlSJfO+9uzZw4oVK9izZw8//fQTO3bsMG+3bds2Ll26RFpaGjt37gTgmWee
4cyZMxw5\ncoQGDRrw4ou5pyYODg5m+vTp/O9//zMvW7FiBceOHWP37t3s3r2bb7/
9FjBdmU2YMIGIiAg2b97M\nI488gtFoBKBz584EBwdz4MABPvjgA/Mwzz179nDo0C
G2bNnCggUL2LVrFwCLFi3i448/5sKFC3z8\n8cfmK4BbvV8Gg4FDhw7xzDPPcPjwY
ezt7Zk9e3auc3nvvfeoUKGCOSkU9H5pxUtEOBaRwLyAMAZ8\nvIveHwby7qZQrqVm
MLlPMzY+14M/pvdhlmsInTYNxCb0F+jzGkwKLPaEABa8UhCRBwtYL8CzRX3c\n/D7
RF+dDTTk/yQUGBvLrr7+yd+9eqlatip+fX55jxHN+YrW1tc3z9tHKlSs5ceIE2eXD
r127xtq1\na5k4cSIODg5cuXLF3DY+Pt58NeLt7U1QUBBDhw7NN+6CrhScnZ3Ntyn
A9OCgs7PzTW1dXFxwcHDA\n3t4ee3t7evXqxdGjR2nevDkAW7ZsoX379rluX7Vs2Z
KAgADA9Gl306ZN5n316tXL3Gl87733cujQ\nIfr27Wve1s7OjqFDh7J+/Xq6dOmSa
78TJ07kvvvuyxXzsGHD+Oabb3B3dzcvzz6P6tWr89BDD7F/\n/34effRRlixZwtat
WwHo2rUrqampxMbG5rol5unpSbVq1Th+/Di+vr7mfdWvX59hw4axf/9+evXq\nxfL
ly/nkk08AGDVqFE8+
+WS+71fPnj1xcXGhc+fOgOmWX86ksGzZMjZu3MjPP/9s/gBQmPdLs6yM\nTCN/nY1
ne0gUASHRXEpIxUZBR9c6zBzsib+XE40dsgZ4JETAyolwahs4+8LQz6G+p9Vi17WP
ikD1\n6tXzHdWUkJBA7dq1qVq1KidOnGDfvn13dByj0ciaNWs4duwY4eHhhIeHs37
9elauXAmAn58f3333\nXXbHPcuXL6dnz54ATJ48meXLl/PXX3+Z97du3Tqio6NzHa
OgK4UGDRpQo0YN9u3bh4jwzTff5Jlo\nhg4dyp49ezAYDFy/fp2//voLT89/f9BXr
lyZ69YRQExMjPk83333XZ5+2nRROWDAAI4dO8b169cx\nGAz8/vvveHl5kZSUxKVL
pjuOBoOBTZs20bJlSwDzcoCffvoJHx8fwDSSZ/DgwcyePZvu3bub2xgM\nBmJjYwF
T2ZSNGzeat2ncuLH5k3ZoaCipqanUq1ePc+fOYTAYANNIr+xknZycbP55SE5OJiAg
wLyv\nhg0bmkci7dy5Ew8Pj3zfLycnJxo1akRYWBhg6ofJ7qfaunUrc+bMYcOGDbl
GkN3q/dIsKynNwOZj\nl3h+1WE6vLOdh5f8xeqDF/BxrsmHI1tzcGZ/Vj/VlSd7Nj
UlBKMRDi6FBV3g3C4Y8D48EWDVhABl\npMyFtTk4ONC9e3d8fHwYNGgQgwcPzrV+4
MCBfPHFF3h6etKiRQu6dOlyR8fZvXs3zs7O5s5JgF69\nehESEsKlS5eYNGkSJ06c
oE2bNiil8PX15dVXXwVMQ3lXrVrFSy+9RExMDDY2NvTq1YuBA/N7vjBv\nCxcuZMK
ECaSkpDBo0CAGDRoEwBdffAHA008/jaenJwMHDqR169bY2Njw5JNPmv8wJicns337
9ly3\nbsCUKBYsWADA8OHDeeyxxwCoXbs2U6dOpWPHjiiluPfeexk8eDDR0dEMGTK
EtLQ0jEYjffr04emn\nnyYlJYVp06Zx5MgRlFK4urqaj/X5559z+vRp3n77bd5+
+23A1DFrb2/PgAEDyMjIIDMzk379+pmH\nGM+bN4+JEyfy8ccfo5Ri2bJlKKXYs2c
Ps2fPpmLFitjY2LBw4ULq1q3L2bNnGTZsGGBKNg899JD5\nff7yyy+ZMmUKBoMBOz
s786CD/N6vzz77jHHjxpGenk7Tpk35+uuvAVOiT0tLo3///hiNRrp168YX\nX3xxy
/dLK3oxiansCI0hIDiKP07HkZ5ppHbVivh7O+Hv5UhPj3pUqZRHP2bcGfhlCoTvBr
decP+n\nUKdklBxR2Z8qSwtfX1+5cZKd0NDQXJ9Cb0XXxCkf9DkXTmF/b0oqa02yc
/ZyEgEh0QQER3H4wlVE\noFGdKvh7OdHfyxHfJrWpYHuLmzCZBti3EH57D2wrgf+7
0P5RKGTf311OshMkIr4FtdNXCpqmafkw\nGoWjEVcJCIlme0g0p2OSAPBxrsHzfZv
j7+1IS6fqBQ/qiA6G9ZPh4iFocS8Mngc1Gua/jRXopKBp\nmnaDdIORvWfjCAiOYn
tINDGJadjaKDq71eHhzo3p5+WIS+1CVgIwpMHueaYvu1owcil4Dy/01UFx\n00lB0
zQNuJaaQWDYZQKCowgMu0xSmoGqlWzp3bwe/t6O9GlRn1pVK93eTiMOmq4OLodCq9
EwcDbY\nOxS8nRXppKBpWrkVlZDK9lBT/8C+s3FkZAp1q1XivtYN8Pd2pJt7Xewq3
sHT4OnXTf0G+xZC9Qbw\n0BpoPqDoT8ACdFLQNK3cEBFOx2R1FIdEc/TCVQBcHary
WHc3/L0cade4NrY2d3Fr59wu2PAcXAkH\n38eh31tgV6NoTqAY6KSgaVqZlmkUDv9
zxVRaIiSac7HJALRpVIuXB7TA38uRZvWr3f0cE6kJEPA6\nHFoOdZrChE3g2qMIzq
B46YfXisDVq1dZuHDhHW8/f/58c72evMTGxlKxYkXzcwDZqlWrluv1smXL\nmDx5s
vn1N998Q+fOnWnVqhXt2rVj7ty5dxTf8uXL8fDwwMPDg+XLl+fbdt68eSilzA+CXb
lyhWHD\nhtG6dWs6derE8eP/TsT3ySef4OPjg7e3N/PnzzcvHzNmDG3btqVt27a4u
rqaS3+AqfR0165d8fb2\nplWrVuYnw1euXEmrVq1o3bo1w4YNMx8fTOP8W7Zsibe3
t7kGUEZGBuPHj6dVq1Z4enrywQcfAHDh\nwgX69OmDl5cX3t7e5qePAV5+
+WVatmxpPsbVq1cLjGv16tW0bt0ab29vpk+fbm6flpbGmDFjaNas\nGZ07d85V0uR
W+3rttddo1KjRTd937WapGZnsPBHNjLV/0/n9Xxn5xV6W7DmHS+0qvPOAD/te6cv6
\nZ7vzbJ9meDgWYuRQQcK2wILOcPhb6PYcPP1HqUwIgGVLZ1viq7SVzi6MW5VZzrZ
w4ULp0aOH9OrV\nK9dye3v7XK+//vprefbZZ0VEZPPmzdKuXTsJCwsTEZHU1FRZvH
jxbccWFxcnbm5uEhcXJ/Hx8eLm\n5ibx8fF5tv3nn3/E399fGjdubD6fl156SWbNm
iUiIqGhoXLPPfeIiKlstbe3t7n8dN+
+feXUqVM3\n7XPq1Kny1ltvicitS0JnZGRIvXr1zMecMmWKvPnmmyIisnPnTunbt6
+kpqaKyL8lqVesWCFjxowR\nEVMJ7CZNmsi5c+fk4sWLEhQUJCKmnxcPDw8JDg4Wk
dylqqdNm1ZgqerY2Fhp1KiRxMTEiIipBPav\nv/4qIiILFiyQp556SkREVq5cKaNH
j853XyIie/fulYsXL970fc+O9XaVtdLZV5PTZd2hC/L0twfF\n8/Ut0mT6RvF+Y6s
8uyJI1h+JlISU9KIPIumyyA+PibxZQ2RBV5GIg0V/jBzKeunsMuPG0tkAH374\nIR
07dqR169a8+eabgOlJ3sGDB9OmTRt8fHxYvXo1n376KRcvXqRPnz706ZN3adyVK1c
yb948IiMj\nc9Udys8HH3zA3LlzadDANJld5cqV72gSoG3bttG/f3/q1KlD7dq16d
+/v7kO0I1eeOGFmybcCQkJ\n4Z577gFMtY3Cw8OJjo4mNDSUzp07m8tP9+7dm3Xr1
uXan4iwZs0aczmMW5WEzv5hTk5ORkRITEw0\nP/W9aNEiZsyYYa4rlV2vSClFcnIy
BoOBlJQUKlWqRI0aNWjQoIF5kqLq1avj6elprgKbs1R1ly5d\nCixVffbsWTw8PKh
Xrx4A/fr1M5cDX79+vblq7ciRI9mxYwcikm/Z6y5dupi/n5rJxaspLP8znHFf\n7a
P9u9t5YfVRgs5fYVg7Z5Y91pGg1/vx+UPtGdKmITXsKhbdgUXg7x/g844QsgH8Xs0
qYNeh6I5h\nJWWvT2HLDIg6lueqKpkGsL2DU3ZqBYNm33L1jaWzAwICOHXqFPv370
dEGDJkCLt27eLy5cs0bNjQ\nXOgtISGBmjVr8tFHH/Hbb7+ZC5jldOHCBS5dukSnT
p0YPXo0q1evvqniZ16OHz9Ohw4F/4CuWLGC\nDz/88KblzZo148cffyQyMpJGjf6d
9uJWpbLXr1+Ps7Oz+Y9ZtjZt2rBu3Tp69uzJ/v37OX/
+PBER\nEfj4+PDaa68RFxdHlSpV2Lx5s3kGsmy7d+/G0dHRXB/oViWhK1asyKJFi2
jVqhX29vY0bdrUXD7i\n5MmT7N69m9deew07Ozvmzp1Lx44dGTlyJOvXr6dBgwZcv
36djz/
+mDp16uQ6fnh4OIcPHzYXo8tp\n6dKl5sKBt4qrWbNmhIWFER4ejouLCz///DPp6e
kAud7XChUqULNmTeLi4nTZ6wKICGHRiQQER7P2\nrxTObzVVxXWvZ8+kXk3x93Kkj
UstbO6mo7ggCZGwaSqc3FoiCtgVtbKXFEqAgIAAAgICaNeuHWCa\nNvDUqVP07NmT
F198kenTp3PfffeZi9XlZ/Xq1YwePRqAsWPH8vjjj+ebFG733ui4cePMJZfv1PXr\
n13n//ffNFU5zmjFjBlOmTKFt27bmvg1bW1s8PT2ZPn06/v7+2Nvb07Zt25vmurix
aF52SegDBw5Q\ntWpV+vbtS4cOHejVqxeLFi3i8OHDNG3alKeeeooPPviAmTNnYjA
YiI+PZ9+
+fRw4cIDRo0dz9uxZ\n9u/fj62tLRcvXuTKlSv07NmTfv360bRpU8D0PRsxYgTz58
83T+ST7Valqm+Mq2/fvixatIgxY8Zg\nY2NDt27dOHPmTL7vZX77Kq8MmUaCzl/JG
jEUxYX4FJQC95o2zBjUkv5ejrjXK4Z+FqMRDi2DgDfA\naDAVsOv8NNiUrQmMyl5S
yOcTfUox1cSRrPl6n3rqqZvWHTp0iM2bNzNz5kz69u3LG2+8ke+
+Vq5c\nSVRUFCtWrADg4sWLnDp1Cg8PD6pUqWKeaxhMpbKzrzayS2V37Ngx3/0XdK
Xg7Oycax7ciIiIm2qv\nnDlzhnPnzpmvEiIiImjfvj379+/HycnJXMBNRHBzczP/4
X3iiSfM8wm8+uqruSbvMRgMrFu3jqCg\nIPOyW5WEzv6jnV0Ge/jw4Xz66afmbYYP
H45Sik6dOmFjY0NsbCzff/89AwcOpGLFitSvX5/u3btz\n8OBBmjZtSkZGBiNGjGD
cuHEMHz4817lml6resWNHoUpV33///eZ5mxcvXmxOfM7Ozly4cAEXFxcM\nBgMJCQ
k4ODjostdZUtIz2X3qMgEh0ewIjebK9Qwq2drQvZkD/
+fXjL6e9QkJ2odfb/eCd1YUSnAB\nuyJXmI6HkvRVEjuaY2NjpXHjxubX27Ztk06d
OkliYqKIiEREREh0dLRERkZKSkqKiIj88ssvMnTo\nUBER8fHxkbNnz96037CwMGn
evHmuZW+88Ya543XEiBGyZMkSERG5fv26dO7cWX7//XcRMc3/2759\ne3PnbVpamn
me39sRFxcnrq6uEh8fL/Hx8eLq6ipxcXH5bpOz4/zKlSuSlpYmIiKLFy+WRx55xNw
u\nu9P3/Pnz0qJFC/PcwyIiW7ZsualjPT4+Xtq1a5erc3rjxo0SGRkpTk5O5g7dl1
9+WaZOnSoiIosW\nLZLXX39dREzvp4uLixiNRpk9e7ZMmDBBRESSkpLE09NTjh49K
kajUR555BGZMmXKTee1ZcsW8fT0\nNB+noLhynmN8fLy0adPG3PH/
+eef5+poHjVqVIH7ylZWO5rjktJkzYF/ZOLyA9Ji5mZpMn2j+Ly5\nVaasPCQbj16
UxNTc850XyxzNmQaRPZ+IvFNf5H0XkYPLRIxGyx/3Foqjo9nqf+Rv96skJgURkQcf
\nfFC8vb3lpZdeEhGR+fPni4+Pj/j4+EiXLl3k9OnTsnXrVmnVqpW0adNGfH19zZP
Ef/rpp9K8eXPx\n8/PLtc9Zs2bJ9OnTcy07evSotGzZUkRMyWbw4MHSpk0bad26tc
ydOzdX26VLl4qnp6d4eXmJt7e3\nzJs3747ObcmSJeLu7i7u7u6ydOlS8/Innngiz
4nucyaFP//8Uzw8PKR58+YybNiwXCOXevToIZ6e\nntK6dWvzqJxs48ePl0WLFt20
72+//dZ8Pi+//LJ5+aJFi6Rly5bSqlUrGThwoMTGxoqIKRmOGzdO\nvL29pV27drJ
jxw4REUlMTJSRI0eKl5eXeHp6ypw5c0REZPfu3QKYv09t2rSRTZs2iYiIu7u7uLi4
\nmJdn/1HPL66xY8eKp6eneHq2FOXkAAAgAElEQVR6ysqVK83LU1JSZOTIkeLu7i4
dO3aUM2fOFLiv\nl19+WZydnUUpJc7OzuYRViKlNyn8E5csX+0+K6O/
+FPcZmyUJtM3Spf3f5XXfz4mu09elnRD5i23\ntXhSiAoW+Z+faWTRijEiCZGWPV4
hFEdS0KWzyzh9zuVDaSmdLSIEX7xmLj19Iso0GVELx+r4ezvi\n7+WEj3ONQvWNWa
x0tiE9RwG7mnDvnBJTwE6XztY0rdTLyDRy4Fy8ufR05NUUbBT4NjFNTdnfy5Em\nD
vYF76g4RATB+mdLVQG7oqaTgqZpRS45zcCuk5fZHhLNjhMxJKRkULmCDT096jGlnw
d9W9bHoVrl\ngndUXEpxAbuiVmaSgojc/aPqmlZOWOK2cWxSGjtCowkIjmb36VjSD
UZqVa1IP09H+ns50qt5XapW\nKoF/cnIWsOvwGPR/u1QVsCtqJfA7dPvs7OyIi4vD
wcFBJwZNK4CIEBcXh52d3V3vKzw2mYCQKAKC\nown65woi4FyrCuM6N8bfy4mOrvl
MTWltqQmw/Q0IWga13WD8RnAr+Nmhsq5MJAUXFxciIiK4fPly\nvu1SU1OL5BehNN
HnXD7c7jnb2dnlei6ksIxG4VhkAgEhphnJTkabpqb0alCDKX098PdywrNBERSY\ns
7SwLbDxBUiKNhWw83sVKhVyJrUyrkwkhYoVK+LmVvCDJIGBgeanjMsLfc7lgyXPOd
1gZN/ZOAJC\novg1JIaoa6nY2ig6udbhzfsb08/TkUZ1Sskf1ORY2DIdjv8I9b1h7
IoyUa+oKJWJpKBpWtFKTM3g\n95OXCQiO5rcTMSSmGahS0TQ1ZX8vR+5pWZ/a9rc5
NaU1icCxH2HLNEhLNF0Z9HgBKpSicygmOilo\nmgZAzLXsqSmj2XsmjvRMI3XsKzG
olRP+Xk708LjDqSmtLVcBuw4wdEGZKmBX1HRS0LRyzDQ1pamj\n+EjW1JRNHKoyvl
sT/L2daH+3U1Nak9FomgVt+xuQmVFmC9gVNZ0UNK0cMRqFwxeuZk1NGcXZy6ap\nK
Vu71OQl/
+b093KiuWMRTE1pbTkL2Ln2hCGfmqbI1Aqkk4KmlXGpGZnsPRNHQEg0v4ZGczkxjQ
o2\niq7uDkzo5ko/T0ca1qpi7TCLhjHT9ADazvfAtqKpmmn7R0tEiYrSQicFTSuDE
lIyCAyLISA4msCw\nGJLTM7GvZItfi/r4ezvi16I+NasU4UxkJUF0iKlExcVD0HwQ
3PcR1Gho7ahKHZ0UNK2MuJSQYrot\nFBzNvrNxGIxC3WqVGdLWGX9vR7q5O1C5Qhm
8n35jAbuRS0tMAbvSyKJJQSk1EPgEsAW+EpHZN6xv\nDCwHamW1mSEimy0Zk6aVFS
LCyegktodEsXZfCueypqZsWteeJ3s2xd/bkbaWnprS2iKCYMNkiAmB\nVqNg4H/LX
QG7omaxpKCUsgUWAP2BCOCAUmqDiITkaDYTWCMii5RSXsBmwNVSMWlaaZdpFA79c4
WA\n4CgCQqI5H3cdME1NOW1gC/y9nGhWvximprS29Ou4n/4aft8A1ZzgwdXQYqC1o
yoTLHml0Ak4LSJn\nAZRSq4ChQM6kIEB25amawEULxqNppVJqRiZ7TsUSEBLFjtAY
4pLTqWRrQ7dmDkzq1ZT+no6EHNqH\nn18za4daPLIK2DUyF7B7y3TbSCsSFptkRyk
1EhgoIk9mvX4E6Cwik3O0aQAEALUBe6CfiATlsa9J\nwCQAR0fHDqtWrbqjmJKSkq
hWrRx8ispBn3PplJQuHL1s4FBMJsdiM0nPhCoVoE09W9rXr0CrerZU\nqfDvbaGyc
M4FsTUk435mOQ0vbSPFzokjjZ8grWEna4dVrO7m+9ynT59SMcnOg8AyEZmnlOoKfK
uU\n8hERY85GIrIYWAymmdfudOYhi83UVILpcy49LsRfZ3vWRDT7w+PJNApONewY0
9EFf29HOrs5UKlC\n3hVHS+s5F1rYFtj4ormAXRW/V0n7c3/ZPuc8FMf32ZJJIRJo
lOO1S9aynJ4ABgKIyF6llB1QF4ix\nYFyaViKICKGXEs1PFIdcugZAc8dqPNPbnf5
ejrRyrlm2O4oLkquAnZcuYFcMLJkUDgAeSik3TMlg\nLPDQDW3+AfoCy5RSnoAdkH
/9a00rxQyZRg6EXzEngsirKSgFvk1q8+q9Lenv5YRb3RIyNaU1icDx\ntaYCdqnXd
AG7YmSxpCAiBqXUZGAbpuGmS0UkWCn1NnBQRDYALwJfKqVewNTpPEEs1cmhaVZyPd
3A\nrpOmjuKdJ2K4ej2DShVs6NmsLv/p24x7WjpSr3oJmprS2m4sYDfkc3D0snZU5
YZF+xSynjnYfMOy\nN3L8PwTobskYNM0a4pLS2BEaQ0BINLtPXSbNYKRmlYr0bWl6
orinRz3sK1u7S6+E0QXsSgT9U6lp\nReR8XLL5ieKD5+MxZk1N+WCnxvh7O9LRtQ4
VS+rUlNamC9iVGDopaNodEhGOR14z9w+ERScC4Nmg\nBpPv8cDfyxHvhjVKf8VRS7
qpgN0n0H68LlFhRTopaNptyMg08tfZePMcxZcSUrFR0NG1Dq/f54W/\nVymamtLao
kNMJSoig3QBuxJEJwVNK0BSmoHfwy6zPauj+FqqAbuKNvTyqMeL/i24p2V96pSmqS
mt\nzZAOez6CXXPBrgaMWAI+I/TVQQmhk4Km5SEmMdXUURwcxR+nTVNT1q5akQHeT
vh7O9GjWV2qVNId\noLdNF7Ar8XRS0LQsZy8nERASTUBwFIcvXEUEGtWpwqNdm9Df
y5EOTWpTQXcU35n06/Dbe6b+A13A\nrkTTSUErt4xG4WjEVQKySkucjkkCwMe5Bi/
0a46/tyMtHKvrjuK7dW43bHgOrpzTBexKAZ0UtHIl\nzWCamjK7xlBM1tSUnZvW4Z
EuTejn5YhzWZma0tpSE0zPHAQtg9puMH4juPW0dlRaAXRS0Mq8a6kZ\nBIZdJiA4i
sCwyySlGahayRa/FvXw93KiT4v61KxaxqamtLawrbDxBUiKgm7PmcpUVNKjskoDnR
S0\nMikqIZXtoab+gX1n48jIFOpWq8T9bRrQ38uRbu51sauoO4qL3I0F7MZ8By66g
F1popOCViaICKdj\nTB3FP+5L4dzWHQC41bXn8e5upqkpG9XGtjxXHLUkXcCuzNBJ
QSu1Mo3C4X+umEpLhERzLjYZgKY1\nbXh5QAsGeDviXq+a7ii2tGsXTbeKdAG7MkE
nBa1USc3I5M8zsQQER/NraDSxSelUtFV0da/LEz3c\n6O/lSGh5mprSmkRMBewCXj
cVsPN/D7o8owvYlXI6KWglXsL1DHaGmQrN/X7yMtfTM6lWuQJ9WtbH\n38uR3i3qU
cPu347iUCvGWm7En4UN/9EF7MognRS0Einyagrbg6PYHhrNvrOmqSnrV6/MsHbO+H
s7\n0aVpHSpX0J9Ii50xE/Ytgp3v6gJ2ZZROClqJICKciEokIDia7aFRHI80TU3Zr
H41nurVFH9vJ1qX\n96kprU0XsCsXdFLQrMaQaSTo/BVTaYmQKC7Em6ambN+4Nq8M
akl/L0ea1qtm7TA1XcCuXNFJQStW\nKemZ7D51mYCQaHaERnMla2rKHs3q8n9+zej
rWZ/61e2sHaaWLTII1ucsYDcb7OtaOyrNgnRS0Cwu\nPjmdHaHR5qkpUzOM1LCrQF
9PR/p7OdKreT2q6akpS5abCtitghaDrB2VVgz0b6JmUb+FxTDpm4Nk\nZAoNatoxx
rcR/t5OdHLTU1OWWLqAXbmmk4JmMZcT03hpzVHc61Vj7qg2emrKku6mAna/gFsva0
el\nFTOdFDSLEBFe/vEoSWkGVk7qQnPH6tYOScuPLmCnZdFJQbOI5X+GExh2mbeHe
uuEUJIlx8LWGXDs\nB13ATgN0UtAsICwqkfe3nOCelvV5pEsTa4ej5eWmAnavQI+p
uoCdppOCVrRSMzL5z8rD1LCrwJyR\nrXUfQkl07SJsnAont+gCdtpNdFLQitR/t54
gLDqRrx/rSN1qla0djpaTLmCnFYJOClqRCQyL4es/\nwpnQzZU+LepbOxwtJ13ATi
sknRS0IhGblMZLP/xNC8fqzBjU0trhaNl0ATvtNumkoN01EWH6j39z\nLTWD757sp
Ke5LClyFbAbCIM/gprO1o5KK+F0UtDu2nf7zrPjRAxv3u9FS6ca1g5H0wXstLtQqD
oD\nSql1SqnBSqnbqkuglBqolApTSp1WSs24RZvRSqkQpVSwUur729m/Zn2nohN5d
1MovZvXY0I3V2uH\no0UGweLeEPgBeD8Az+6HViN1QtAKrbBXCguBx4BPlVI/AF+L
SFh+GyilbIEFQH8gAjiglNogIiE5\n2ngArwDdReSKUkr3TpYiaYZM/rPqCNUqV+D
DUXr4qTXZZKbBttd0ATvtrhUqKYjIr8CvSqmawINZ\n/78AfAl8JyIZeWzWCTgtIm
cBlFKrgKFASI42E4EFInIl6zgxd3wmWrH7cGsYoZeusWS8ry53bU3n\nduN7cAqkX
NIF7LS7pkSkcA2VcgAeBh4BLgIrgB5AKxHxy6P9SGCgiDyZ9foRoLOITM7R5mfgJN
Ad\nsAVmicjWPPY1CZgE4Ojo2GHVqlW3cYr/SkpKolq18jVpi6XO+XhsJnMPpnJP4
wo86lWynkcoL99n\nW0My7meW0/DSNpIrO3Kq5WSu1m5t7bCKTXn5Pud0N+fcp0+f
IBHxLahdoa4UlFI/AS2Ab4H7ReRS\n1qrVSqmDdxThv8f3APwAF2CXUqqViFzN2Uh
EFgOLAXx9fcXPz+
+ODhYYGMidbltaWeKc45PTmTZ/\nF83qV2PhxB4lbrRRufg+n9wGv7xkKmDXdTJBF
XrRq+8Aa0dVrMrF9/kGxXHOhe1T+FJENudcoJSq\nLCJp+WSeSKBRjtcuWctyigD+
yrr9dE4pdRJTkjhQyLi0YiYiTF/7N1evZ/D1Yx1LXEIo825RwM4Y\nGGjtyLQyorC
jid7NY9neArY5AHgopdyUUpWAscCGG9r8jOkqAaVUXaA5cLaQMWlWsHL/BbaHRDNt
\nYAu8G+r71sVGBI79CAs6QfDPpgJ2k37XFU21IpfvlYJSyglwBqoopdoB2cNLagD
5FlsXEYNSajKw\nDVN/wVIRCVZKvQ0cFJENWev8lVIhQCbwsojE3dUZaRZzOiaJtz
cG09OjLo93d7N2OOXHtYuw6UUI\n26wL2GkWV9DtowHABEy3fj7KsTwReLWgnWfdc
tp8w7I3cvxfgKlZX1oJlm4wMmXVYapUtGXuqDbY\n2OjhpxanC9hpVpBvUhCR5cBy
pdQIEVlbTDFpJdC8gDCCL15j8SMdcKyhh59a3I0F7O7/BBzcrR2V\nVg4UdPvoYRH
5DnBVSt30aV5EPspjM62M+eN0LP/bdZaHOjfG39vJ2uGUbTcWsLtvvqmAnc1tFRPQ
\ntDtW0O0j+6x/y9dgYM3sSnI6L645StN69swc7GntcMq2mFBY/6wuYKdZVUG3j/6
X9d+FInK5GOLR\nShAR4ZV1x4hLTuOr8d2pWknXT7QIQzrs+Rh2fagL2GlWV9jf8j
+UUuHAamBddlkKrWxbc/ACW4Oj\neGVQS3yc9fBTi4gMgvXPQUwwtBoFA2eDfV1rR
6WVY4W6USkizYGZgDcQpJTaqJR62KKRaVZ19nIS\nszaE0M3dgYk99QxdRS79OgTM
hK/6QcoVUwG7EV/phKBZXaF7r0Rkv4hMxVToLh5YbrGoNKsyDT89\nQqUKNnw0uq0
eflrUzu2GL7rDn59B+0fh2X26oqlWYhS29lENYBimp5LdgZ8wJQetDJr/60mORSbw
\nxcPtcaqph58WmdRrsP0NCPoaarvB+F/ArZe1o9K0XArbp3AUU0mKt0WkoPIWWim
290wci34/w9iO\njRjo08Da4ZQdJ7fBxhcg8RJ0nQx9XoNK+RYF0DSrKGxSaCqFrb
GtlVoJ1zOYuuYIrg72vH6fLqNQ\nJJLjsgrYrTEVsBv9ra5XpJVoBT28Nl9Engc2K
KVuSgoiMsRikWnFSkR49adjXE5MY93/dcO+sh5+\neldE4Pha2DLNdNvI7xXoMRUq
VLJ2ZJqWr4J+87/N+neupQPRrOvHoAg2HbvEtIEtaO1Sy9rhlG45\nC9g1bA9DF+g
CdlqpUdDDa0FZ/20rIp/kXKeUmgL8bqnAtOITHpvMrA3BdHarw1O9dH2dO3ZTAbt3
\nocv/6QJ2WqlS2CGp4/NYNqEI49CsJCPTyJTVR7C1UXw8pi22evjpnYk/B98MgV+
mQIM28Mwf0O05\nnRC0UqegPoUHgYcAN6VUzglyqmN6VkEr5T7dcYqjF66y4KH2NK
xVxdrhlD7GTPjrC9jxji5gp5UJ\nBfUp/AlcAuoC83IsTwT+tlRQWvHYfy6eBb+dZ
lQHFwa31sNPb1t0CGx4DiIP6gJ2WplRUJ/CeeA8\n0LV4wtGKS0JKBi+sPkKjOlV5
c4i3tcMpXQzpsOcj2DVXF7DTypyCbh/tEZEeSqlEIOeQVIVp4rQa\nFo1OswgRYeb
Px4m6lsqPT3elmh5+WngRQbBhMsSE6AJ2WplU0JVCj6x/qxdPOFpx+OlwJL8cvchL
\n/s1p17i2tcMpHdKvw2/vwb6FUM0JHlwNLQZaOypNK3KFrX3kDkSISJpSyg9oDXw
jIlctGZxW9P6J\nu84b64Pp5FqHZ/yaWTuc0uHcLlPfwZVw8H0c+s0CO11KXCubCj
tEYi2QqZRqBiwGGgHfWywqzSIM\nmUaeX30YpeCjMW308NOCpFw1zZO8/H5QNjBhE
9z3sU4IWplW2JvJRhExKKWGAZ+JyGdKqcOWDEwr\nep/tPM2hf67y6YPtcKmti7Hl
68Rm2DQVkqKh239MZSp0ATutHChsUsjIemZhPHB/1rKKlglJs4Sg\n8/F8tvMUw9s
5M6RNQ2uHU3IlXTbVKwpeB44+MPZ7cG5v7ag0rdgUNik8BjwNvCci55RSbvxbF0kr
\n4a6lZjBl1RGca1fhraF6+GmeRODvNbB1OqQnQ5+Z0ON50wNpmlaOFCopiEgI8J8
cr88B/7VUUFrR\nenN9MJcSUlnzVFeq2+k/cjdJiDDNdXAqAFw6wZDPoH5La0elaV
ZR2NFH3YFZQJOsbbKfU9CT95Zw\ney8a+OnvSJ7v50GHJnr4aS5GIwQthe1vghhh4
H+h00Rdr0gr1wp7+2gJ8AIQBGRaLhytKF2Iv843\nIWl0aFKbyX308NNcYk+bhpn+
8yc07QP3z4fartaOStOsrrBJIUFEtlg0Eq1IGTKNvLD6CADzx7Sl\ngq0u0AZApgH
2fga/fQAV7WDoQmj7kC5RoWlZCpsUflNKfQisA9KyF4rIIYtEpd21hYFnOHj+CpNa
\nV6ZRHT2UEoBLf5tKVFw6Cp73w71zobqTtaPStBKlsEmhc9a/vjmWCXBP0YajFYV
D/1zhkx2nGNq2\nId2cEqwdjvVlpMKuObBnPlR1gNHfgNdQa0elaSVSYUcf9bF0IF
rRSEoz8PyqIzjVsOOdB3w4tO8P\na4dkXf/sg/WTIe4UtB1nmg2tah1rR6VpJVahb
jQrpRyVUkuUUluyXnsppZ4oxHYDlVJhSqnTSqkZ\n+bQboZQSpZTvrdpohfPm+mAi
rlxn/ti21CjPw0/TkmDzNFg6EAxp8PA6eGChTgiaVoDC9j4uA7YB\n2Y/CngSez28
DpZQtsAAYBHgBDyqlbpq9XClVHZgC/FXIWLRb+OXoRdYeimByn2Z0dC2/f/xqxx+C
\nhV1g/2Lo/BT8315o1tfaYWlaqVDYpFBXRNYARgARMVDw0NROwGkROSsi6cAqIK8
bue9gehAutZCx\naHmIvJrCaz8do13jWvynr4e1w7GO6/Hw0zO0+fstqFgFHt8Gg/
4LlatZOzJNKzUK29GcrJRyIGui\nHaVUF6CgHkxn4EKO1xH822FN1n7aA41EZJNS6
uVb7UgpNQmYBODo6EhgYGAhw84tKSnpjrctyYwi\n/Hd/KukZRh50TWPP7l3mdWX1
nG9UL+YPPE79jwqGJM40GMqlZg9jPJsCZwOtHVqxKC/f55z0OVtG\nYZPCVGAD4K6
U+gOoB4y8mwMrpWyAj4AJBbUVkcWYSnbj6+srfn5+d3TMwMBA7nTbkmzBb6cJuxLG
\n3FFtGNnBJde6snrOZolRsOlFOLERGrSBIZ8TGRZfts85D2X+
+5wHfc6WUdik4I6pb6ARMALTJ/6C\nto3Map/NJWtZtuqADxCoTA8OOQEblFJDROR
gIeMq945euMrH209yX+sGjGhfjiaNF4HD30HAa6aO\n5H5vQdfJYFsBwgKtHZ2mlV
qFTQqvi8gPSqnaQB9gLrCIG24H3eAA4JFVUTUSGAs8lL1SRBIA8+S2\nSqlA4CWdE
AovOc3AlFWHqV+9Mu890ApVXp7KvRIOv0wx3Rpq0h3u/xTq6jIemlYUCtvRnN2pPB
j4\nUkQ2AZXy2yCrM3oyplFLocAaEQlWSr2tlBpypwFr/3r7lxDOx1/n4zFtqVm1H
Aw/NWbCvkWwsCtE\nBMHgj2D8Rp0QNK0IFfZKIVIp9T+gP/BfpVRlCpFQRGQzsPmG
ZW/coq1fIWPRgC3HLrH64AWe7eNO\n56YO1g7H8mJOmEpURBwAD3/TtJg1XQreTtO
021LYpDAaGAjMFZGrSqkGwC1HC2mWdSkhhRnrjtHG\npSbP92tu7XAsy5AOf8yHXR
9CpWow/CtoNVIXsNM0CylsmYvrmIrhZb+
+BFyyVFDarWUahamrj5KR\naWT+2HZULMvVTyODYP1zEBMMPiNg0Bywr1vwdpqm3b
HCXiloJcSXu8+y92wcc0a0xq2uvbXDsYz0\n6xD4PuxdANUcYexKaHmvtaPStHJBJ
4VS5FhEAvMCwri3lROjfMvo/fRzu+GX/0D8WegwAfq/DXY1\nrR2VppUbOimUEtfT
TcNPHewr8/6wMjj8NDXBNC1m0NdQ2w3G/wJuvawdlaaVOzoplBLvbAzlXFwy\nK57
sTK2q+Y4GLn3CtsDGqZAUBd2eA79XoZKeGEjTrEEnhVJg6/EoVu7/h6d7u9PNvQx1
tCbHwpbp\ncPxHqO8NY78D5w7WjkrTyjWdFEq46GupzFj3N62cazK1fxkZfioCx36
ELdMgLdF0ZdDjBahQxq6A\nNK0U0kmhBDMahRfXHCUtw8j8sW2pVKEMDD9NiDDdKj
q1DZx9YejnUN/T2lFpmpZFJ4USbMmec+w5\nHcsHw1vhXq+UzwlgNJo6kbe/CZIJA
z4wTYBjY2vtyDRNy0EnhRIq+GICc7adYIC3I2M7Nip4g5Is\n7gxs+A+c3wNuveH+
T6COm7Wj0jQtDzoplEAp6Zn8Z+Vh6thXYvbw1qV3+GmmAfYtgN/eB9vKMORz\naPe
wLlGhaSWYTgol0HubQzhzOZnvnuhMbftS2vkadQzWT4ZLR6DlfXDvXKjRwNpRaZpW
AJ0USphf\nQ6L5bt8/TOrVlB4epXD4qSHNVLxuz8dQpTaMWg5eQ/XVgaaVEjoplCA
x11KZtvZvvBrU4EX/Ujj8\n9J+/YMNzEBsGbR6EAe9D1TrWjkrTtNugk0IJYTQKL/
5wlOvpBj59sC2VK5SiUTlpSbDzHfjrf6Y5\nDsatBY9+1o5K07Q7oJNCCbHsz3B2n
4rl3Qd8aFa/urXDKbzTO+CX5yHhH+g0Cfq+AZVLUfyapuWi\nk0IJEHrpGrO3nKCf
pyPjOje2djiFk3IFtr0GR1aAgwc8thWadLV2VJqm3SWdFKwsNSOTKasOU7Nq\nRf4
7opRUPw3ZAJtfMtUu6jEVek+HinbWjkrTtCKgk4KVfbA5lJPRSSx/vBMO1SpbO5z8
JUabkkHo\nBnBqDeN+gAZtrB2VpmlFSCcFK/rtRAzL957n8e5u9G5ez9rh3JoIHPk
etr0KGSnQbxZ0nQy2Fa0d\nmaZpRUwnBSu5nJjGyz8epaVTdaYNbGHtcG7tynn4ZQ
qc/Q0ad4Uhn0FdD2tHpWmaheikYAUiwrQf\nj5KYauD7iV2wq1gCh58aM+HAV/DrW
6YHz+6dC75PgE0ZqNSqadot6aRgBd/sPc9vYZd5a4g3zR1L\n4PDNy2GmEhUR+6FZ
P7hvPtQq5UX5NE0rFJ0UillYVCLvbQ6lT4t6PNq1ibXDyS0zA/6YD7/PgUr2\nMGw
xtB6tS1RoWjmik0Ixyh5+WsOuAh+OalOyhp9ePGy6Oog+Dt7DYNCHUK0Ed35rmmYR
OikUozlb\nwzgRlcjXj3WkbkkZfpqRAoEfwJ+fgX19GLMCPO+zdlSaplmJTgrFJDA
shqV/nGNCN1f6tKhv7XBM\nwveYJr+JPwPtH4X+70CVWtaOStM0K9JJoRjEJaXx0g
9/08KxOjMGtbR2OJB6DX59Ew4uhdqu8Oh6\naOpn5aA0TSsJdFKwMNPw07+5lprBd
092sv7w05PbYOMLkHjJ9ABan1dNncqapmmARQedK6UGKqXC\nlFKnlVIz8lg/VSkV
opT6Wym1QylVwobj3L3v/vqHHSdimDGwJS2dalgvkOQ4WDsRvh8NlWvAE9th\nwHs
6IWialovFrhSUUrbAAqA/EAEcUEptEJGQHM0OA74icl0p9QwwBxhjqZiK2+mYRN7d
GELv5vV4\nrLurdYIQgWM/wpZppttGfq+YithVKKXTfGqaZlGWvH3UCTgtImcBlFK
rgKGAOSmIyG852u8DHrZg\nPMUqzZDJcyuPYF+5Ah+Oam2d4acJkfgcfw/iDoBzBx
jyOTh6FX8cmqaVGkpELLNjpUYCA0XkyazX\njwCdRWTyLdp/DkSJyLt5rJsETAJwd
HTssGrVqjuKKSkpiWrVqt3Rtrdr1Yk0toYbeL59ZdrWL+au\nGzHS4NJ23M8sQ4mB
c24PE+FyH6gSWE7DAorz+1xS6HMuH+7mnPv06RMkIr4FtSsRHc1KqYcBX6B3\nXut
FZDGwGMDX11f8/Pzu6DiBgYHc6ba3Y/epy2zdup9HujTh+Qd8LH68XOLOmArYhe8G
157scxxH\nl0EP0qx4o7Cq4vo+lyT6nMuH4jhnS3Y0RwI5C+a4ZC3LRSnVD3gNGCI
iaRaMp1jEJ6fz4pqjNKtf\njVfv9Sy+A2ca4I9PYf0QRmEAAA6KSURBVFE3uHQU7v
8Uxv9CapUGxReDpmmlniWvFA4AHkopN0zJ\nYCzwUM4GSql2wP8w3WaKsWAsxUJEm
L72b65ez+DrxzpSpVIx3a6JDjaVqLh4CFrcC4PnQY2GxXNs\nTdPKFIslBRExKKUm
A9sAW2CpiAQrpd4GDorIBuBDoBrwQ1ZH7D8iMsRSMVnayv0X2B4SzczBnng3\nrGn
5AxrSYPc805ddLRj5taluUUmqqaRpWqli0T4FEdkMbL5h2Rs5/t/PkscvTqdjknh7
YzA9Pery\neHc3yx/wwgHYMBkun4DWY2HgB1C1juWPq2lamVYiOppLu3SDkedXH6Z
KRVvmjmqDjY0FP6mnJ8PO\nd2HfIqjhDP/f3p2HSVWdeRz//lgUwQUEg5FFFMUNIi
Du0YDb4AbJ6AgxMRKdJGKMgk4STVTQ8MwT\n46hoUBlGTSbjjOISsRncGGSZqCgqz
WrUFlFAHWWXTVne+eNe+ql0gK7uriXV9fs8Tz19695T976n\nquHtc8+pc77zBBx6
Zv6uZ2ZlxUkhB+6Y/Dbzl61l3CXH0H7vFvm70HtTk5FFqz+AY/8RTh8BLYr4\nLWk
za3ScFBro5arljJuxiIuP78xZR+2fn4tsXAUv3AizH4Z9u8L3n4UDT8rPtcysrDkp
NMCq9V9y\n7WNzOKhdK248N0/DT9+aCJOug/XL4evD4Rs/h+Z75OdaZlb2nBTqKSL
4xVPzWLH+Cx649GRa7pbj\nt3Ldp/DMT2HhBNi/B1z8GBzQM7fXMDOrwUmhnh5/fS
nPzv+EG84+nO4dcjj8NALmPArPXZ+sinb6\nzXDS1dC0ee6uYWa2E04K9fD+8vWMn
LiAk7q25QenHJy7E6/+ECYOg/emQKfjkwns9uuWu/ObmdXC\nSaGONm/dxjWPzqZ5
0ybceVHP3Aw/3bYNZj0A/zMyeX727cnooiZ5Xe7CzOyvOCnU0V2T32Hu0jXc\n/53
e7L9PDoaffvYOVPwElsyErqfD+aOhdeeGn9fMrB6cFOpg5qIV3D/9PQb16cTZPRo4
0dzWzfDS\n3TD9NmjeEr45Fo4e7CkqzKyonBSytGbDZq4dX0mXtq24+fwGLlTzUWU
yRcUn8+DIb8I5t8OeX8lN\noGZmDeCkkIWI4BcT5vHp51/w5NCTaLV7Pd+2zRuTls
FL90CrdjDoYTji/NwGa2bWAE4KWXjyzWVM\nmvsxP+t/GEd3al2/k3zwctJ3sKIKe
l0CZ/0K9miT20DNzBrISaEWi5evZ8TT8zn+oH350ald636C\nTWthyi3J6KLWneGS
CdC1X+4DNTPLASeFXdi8dRvDxlfStIm4a1BPmtZ1+Om7k5PvHaxdBidcCafd\nCLu
1yk+wZmY54KSwC7+d8i6VS1Zz78W9OaB1HeYbWr8Cnr8B5o6H/Q6HyydDp2PzF6iZ
WY44KezE\na+
+vZMzUKi48piPnfi3L4acRsOCpZM6iTauTyetOuQ6a7Z7fYM3McsRJYQfWbNzM8PG
VdNq3JSMH\nHJXdi9Z+nMxm+vYkOKAXDHga9u+e30DNzHLMSaGGiOCmCfP5ZO0mnr
jiRPasbfhpBLz5B3jhJtj6\nBZw1Co4fCk391ppZ6fH/XDVMqFxGxZyPuO7MbvTqX
MuQ0ZWLkpXQ3p8BXU6B8+
+GtvUYoWRm9jfC\nSSHDkpUbuGnCAo7t0oYr+x2y84LbtiZrJL84KpnS+rzR0PtST
2BnZiXPSSG1JZ39VLDr4af/tzCZ\nomLZG9CtP5x7J+zToaCxmpnli5NCaszUKt78
cDV3D+5JxzYt/7rAli/hf+9IHi32hgsehO4XeAI7\nM2tUnBSANz5YyT1T3uXve3V
gYM8d/NW/9A14+sfw2VvQ4yLo/2to1bbwgZqZ5VnZJ4XPN21m2PhK\nOrTZg1sG1h
h+
+uV6mPrPMPM+2OuryTrJ3f6uOIGamRVA2SeFEU8v4KPVm3jsRyeyV4uMdZAXTYeJ\
nV8OqxdDnMjjjluS2kZlZI1bWSeHpymX8cfYyhp1xKMccmA4/3bgaJt+UfPdg364w
ZBJ0+XpxAzUz\nK5CyTQpLVm7gxqfmc8yBbbhq+/DTP0+C/74W1n8KJ18DfW+A5nW
Y88jMrMSVZVLYui249rFKAhg9\nqCfNNq6AZ38GC/4I7bvDtx+BDr2LHaaZWcGVZV
K4b2oVsxav4q6LvkanJRPhuZ8nncqn3QgnD0u+\nkGZmVobKLinM/nAVo6e8y5Cjm
vKthcOhajJ0PA4GjoH9Dit2eGZmRZXXeRkk9Zf0tqQqSdfv4Pju\nksanx1+V1CWf
8WzcEgx75E2GtpzKiCWXJUtknv0buOw5JwQzM/LYUpDUFLgXOBNYCsySVBERCzOK\
nXQ6siohDJA0GbgMG5SumF+cv5l/W38+xTd6Gg/slE9i1OTBflzMzKzn5vH10HFAV
EYsAJD0KDAQy\nk8JAYGS6/QQwRpIiInIdzJyK3zJq1S1E8xZw3n3Q82JPUWFmVkM
+k0IHYEnG86XA8TsrExFbJK0B\n2gLLMwtJ+iHwQ4D27dszbdq0OgezYpVY16wXW4
8dyrY1+8L06XU+Rylat25dvd6vUuY6lwfXOT9K\noqM5IsYB4wD69OkTffv2rcdZ+
jJtWnfq99rSNW3aNNe5DLjO5aEQdc5nR/MyoFPG847pvh2WkdQM\n2AdYkceYzMxs
F/KZFGYBh0o6SNJuwGCgokaZCuDSdPtC4MV89CeYmVl28nb7KO0juAp4HmgKPBQR\
nCyTdCrweERXAg8B/SKoCVpIkDjMzK5K89ilExDPAMzX23ZyxvQn4h3zGYGZm2fOi
wmZmVs1JwczM\nqjkpmJlZNScFMzOrplIbASrpM+CDer68HTW+LV0GXOfy4DqXh4b
U+cCI2K+2QiWXFBpC0usR0afY\ncRSS61weXOfyUIg6+/aRmZlVc1IwM7Nq5ZYUxh
U7gCJwncuD61we8l7nsupTMDOzXSu3loKZme2C\nk4KZmVVrlElBUn9Jb0uqknT9D
o7vLml8evxVSV0KH2VuZVHnayUtlDRX0hRJJb84dW11zih3gaSQ\nVPLDF7Ops6SL
0s96gaT/KnSMuZbF73ZnSVMlzU5/v88pRpy5IukhSZ9Kmr+T45J0T/p+zJXUO6cB\
nRESjepBM0/0ecDCwGzAHOLJGmSuBsen2YGB8seMuQJ37AS3T7aHlUOe03F7ADGAm
0KfYcRfgcz4U\nmA20SZ9/pdhxF6DO44Ch6faRwOJix93AOp8K9Abm7+T4OcCzgIA
TgFdzef3G2FI4DqiKiEUR8SXw\nKDCwRpmBwL+n208Ap0tSAWPMtVrrHBFTI2JD+n
QmyUp4pSybzxngV8BtwKZCBpcn2dT5B8C9EbEK\nICI+LXCMuZZNnQPYO93eB/iog
PHlXETMIFlfZmcGAn+IxEygtaSv5ur6jTEpdACWZDxfmu7bYZmI\n2AKsAdoWJLr8
yKbOmS4n+UujlNVa57RZ3SkiJhUysDzK5nPuBnST9JKkmZL6Fyy6/MimziOB70pa\
nSrJ+y08KE1rR1PXfe53kdZEd+9sj6btAH+AbxY4lnyQ1Ae4EhhQ5lEJrRnILqS9J
a3CGpB4Rsbqo\nUeXXt4HfR8Qdkk4kWc2xe0RsK3ZgpagxthSWAZ0ynndM9+2wjKR
mJE3OFQWJLj+yqTOSzgB+CQyI\niC8KFFu+1FbnvYDuwDRJi0nuvVaUeGdzNp/zUq
AiIjZHxPvAOyRJolRlU+fLgccAIuIVoAXJxHGN\nVVb/3uurMSaFWcChkg6StBtJR
3JFjTIVwKXp9oXAi5H24JSoWussqRfwryQJodTvM0MtdY6INRHR\nLiK6REQXkn6U
ARHxenHCzYlsfrcnkLQSkNSO5HbSokIGmWPZ1PlD4HQASUeQJIXPChplYVUA30tH\
nIZ0ArImIj3N18kZ3+ygitki6CnieZOTCQxGxQNKtwOsRUQE8SNLErCLp0BlcvIgb
Lss63w7sCTye\n9ql/GBEDihZ0A2VZ50Ylyzo/D5wlaSGwFfhpRJRsKzjLOl8H/Ju
k4SSdzkNK+Y88SY+QJPZ2aT/J\nCKA5QESMJek3OQeoAjYA38/p9Uv4vTMzsxxrjL
ePzMysnpwUzMysmpOCmZlVc1IwM7NqTgpmZlbN\nScEapdpmmizA9Z+R1DrdvlrSW
5L+U9KAXc3ompZ/Of3ZRdLFhYjXbDsPSbVGSdKpwDqSicO6FzmW\nPwNnRMTSOr6u
L/BPEXFeXgIz2wG3FKxRqm2mSUmtJE2SNEfSfEmD0v2LJf1G0jxJr0k6JN2/n6Qn\
nJc1KHyen+/eU9Lu0/FxJF2Scp52ksSTTPj8rabikIZLGpGXaS3oqjWGOpJPS/evS
MH8NnCKpMn3t\nDEk9M+rwJ0lH5/zNs7LW6L7RbJal/sBHEXEugKR9Mo6tiYgekr4
HjAbOA+4G7oqIP0nqTPIN2yOA\nm7aXT8/TJvMiEXFFOlNpv4hYLmlIxuF7gOkR8S
1JTUm+cZ7pejJaCpJWkkzwN0xSN6BFRMxp8Dth\nlsEtBStX84AzJd0m6ZSIWJNx7
JGMnyem22cAYyRVksw9s7ekPdP9925/4fZ1DLJ0GnB/
+rqtNWLY\nkceB8yQ1By4Dfl+Ha5llxS0FKwuSOgET06djI2Jsut7COcAoSVMi4tb
0eGZH2/btJsAJEfEXi/UU\ncm2miNggaTLJIisXAccU7OJWNtxSsLIQEUsiomf6GC
vpAGBDRDxMMllg5jq3gzJ+vpJuv0DG4i0Z\n9/YnAz/O2P8Xt49qMYVkaVQkNa1xC
wvgc5IpwDM9QHLbaVYdWyVmWXFSsEYpnWnyFeAwSUslXV6j\nSA/gtfR20AhgVMax
NpLmAtcAw9N9VwN90s7khcAV6f5Rafn5kuaQrIWdrWuAfpLmAW+QrC+caS6w\nNe2
EHg4QEW8Aa4Hf1eE6ZlnzkFSzDEoW5OkTEcuLHcuOpC2cacDhXlnM8sEtBbMSkY6G
ehX4pROC\n5YtbCmZmVs0tBTMzq+akYGZm1ZwUzMysmpOCmZlVc1IwM7Nq/w/Wl/V
dJnmQ0QAAAABJRU5ErkJg\ngg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Z6XXH1IEk44t",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
},
"outputId": "6aa8bfe2-31c9-4e80-dc70-1bf5d19d7d16"
},
"source": [
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 208,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.46178435158581305
for threshold 1\n",
"Test confusion matrix\n",
"[[ 780 4279]\n",
" [ 763 4178]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "_OKCBS8Nk42Z",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "eYdFpRWtk4v6",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "b111O43y4YlL",
"colab_type": "code",
"colab": {}
},
"source": [
"from imblearn.over_sampling import SMOTE\n",
"sm = SMOTE(random_state = 2) \n",
"X_train_res, y_train_res =
sm.fit_sample(x_tr_bow,y_train) \n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "1ISr7rjT4Tyk",
"colab_type": "code",
"outputId": "86888352-0eba-4a48-c05c-52516ef89663",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 986
}
},
"source": [
"#Lets try the TF_IDF\n",
"#Trying the under sampling approach LETS GET 4751 records
from each class\n",
"\n",
"\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.model_selection import
RandomizedSearchCV\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"\n",
"nb =MultinomialNB()\n",
"parameters = {'alpha':
[0.00001,0.0001,0.001,0.01,0.1,1]}\n",
"clf = GridSearchCV(nb, parameters,
cv=StratifiedKFold(n_splits=5),
return_train_score=True,scoring='roc_auc')\n",
"clf.fit(X_train_res,y_train_res)\n",
"\n",
"results = pd.DataFrame.from_dict(clf.cv_results_)\n",
"import matplotlib.pyplot as plt\n",
"results\n",
"train_auc= results['mean_train_score']\n",
"cv_auc = results['mean_test_score'] \n",
"K = results['param_alpha']\n",
"\n",
"plt.semilogx(K, train_auc, label='Train AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, train_auc -
train_auc_std,train_auc +
train_auc_std,alpha=0.2,color='darkblue')\n",
"\n",
"plt.semilogx(K, cv_auc, label='Test AUC')\n",
"# this code is copied from here:
https://stackoverflow.com/a/48803361/4084039\n",
"# plt.gca().fill_between(K, cv_auc - cv_auc_std,cv_auc +
cv_auc_std,alpha=0.2,color='darkorange')\n",
"\n",
"plt.scatter(K, train_auc, label='Train AUC points')\n",
"plt.scatter(K, cv_auc, label='Test AUC points')\n",
"\n",
"\n",
"plt.legend()\n",
"plt.xlabel(\"alpha: hyperparameter\")\n",
"plt.ylabel(\"AUC\")\n",
"plt.title(\"Hyper parameter Vs AUC plot\")\n",
"plt.grid()\n",
"plt.show()\n",
"#https://stackoverflow.com/questions/11116697/how-to-get-
most-informative-features-for-scikit-learn-classifiers 2nd
comment\n",
"def show_most_informative_features(vectorizer, clf,
n=20):\n",
" feature_names = vectorizer.get_feature_names()\n",
" coefs_with_fns = sorted(zip(clf.coef_[0],
feature_names))\n",
" top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n +
1):-1])\n",
" for (coef_1, fn_1), (coef_2, fn_2) in top:\n",
" print(\"\\t%.4f\\t%-15s\\t\\t%.4f\\t%-15s\" %
(coef_1, fn_1, coef_2, fn_2))\n",
"print('top 10 Essay features')\n",
"show_most_informative_features(vectorizerc_essay,clf.best_estima
tor_,10)\n",
"print('top 10 Title features')\n",
"show_most_informative_features(vectorizerc_title,clf.best_estima
tor_,10)\n",
"\n",
"results.head()\n"
],
"execution_count": 210,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAZgAAAEaCAYAAAAsQ0GGAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xl8FdXd+PHPN/tCSEjCHgQEBMGF\nJUURlLAo4gZtsYJiq1VprUulj
1Rs/SlFfR6sC3Xh0brWrQQesIgKoixRQAHZZAtLWEQ2gUCAkIRs\n398fM0luLjck
Iblk+75fr3ll5syZM+fkwv3mzJk5I6qKMcYYU90CaroCxhhj6icLMMYYY/zCAowx\
nxhi/sABjjDHGLyzAGGOM8QsLMMYYY/zCAowxpk4TkV0iMrim62FOZwHGnBVf/6lF
5A4RWVJTdaoP\nRKSdiKiIBFVTeWEikiEiA33smywiM86y3AluPS/zkf6Bj/wqIh0
9toeIyNcickJEDonIVyJy09nU\npRJ1ThKRPf48hynNAoyp08Tht3/H/i6/unkHJl
XNAaYBv/bKFwiMAt49i3OIW94R73IrePwI4P+A\n94AEoDnwOHBjZcsytVud+Y9j6
hYRGSciM73SXhKRF931FBH5HxFZISLHReRjEYn1yHu5iHzj/vX9\nvYgkeexLEZGn
RWQpkAWc7+P8u0TkURHZJCJHReQdEQlz9zURkU/dv5yPuusJZypfRO4UkVT3L+4d\
nIvI7j/xJIrJHRP4sIgdFZL+IDBeR60Rkq4gcEZG/eOQPEJHxIrJdRNJFZLpH2792
f2aISKaI9HGP\n+a17/qMiMk9E2nqUpyJyn4hsA7b5+DjeBX4pIhEeaUNw/v/Pdct
4RET2uu3bIiKDfJRT5EqgJfAg\nMFJEQs6QtxQ3OL0APKmqb6rqMVUtVNWvVPWeMo
6ZICIzRGSaW7/VInJpGXlDReQfIrLPXf7hpkW6\nbW3l/l4zRaRVRettzpKq2mJLp
RdgFzDYK+0OYIm73hI4CcS420HAQaCXu50C7AUuAiKBmcAH7r7W\nQDpwHc6X4NXu
dlOPY3cD3dxyg8uo3wagDRALLAWecvfFAb8EIoAonL+mZ3kce1r5wPVAB0CA/jiB\
np6ebPwnIx/krPBi4BzgE/NstvxuQDbR38/8RWIbz13so8E9gqruvHaBAkEd9hgFp
wIVufR4DvvHY\nr8CXbjvDy/i8tgKjPbanAv9w1zsDPwKtPOrQ4Qyf/VvAdLet6cA
vPfZNKPocvY5RoCPQxV1vX4l/\naxOAPGCEe86HgZ1Fnzse/xaBie7vthnQFPgGJ5
gVfU57avr/TkNaarwCttTNxf1PnQlkeCxZuAHG\nzTMXuMddvwHY5LEvBZjksd0Vy
AUCgUeA973ONw/4jcexEytQv997bF8HbC8jb3fgqFfdyit/FvBH\ndz0JJ4AEuttR
7pfoZR75VwHD3fVUYJDHvpbuF2gQvgPMXOAuj+0A93fd1t1WYGA59X0M+MJdb+we\
n38Pd7ogT/AfjI1h7lRMBHPdoyz+Bjz32T+DMAaavux5WiX9rE4BlXu3fD1zp8VkX
BZjtwHUeeYcA\nuzw+Jwsw53CxS2SmKoarakzRAvzBa/
+7wGh3fTTwvtf+Hz3Wf8D56zQeaAvc7F4eyxCRDKAfzhex\nr2PL4l1+KwARiRCRf
4rIDyJyHOeyVIw7LuGzfBEZKiLL3MtdGTgBK94jS7qqFrjr2e7Pnzz2ZwON\n3PW2
wH882pYKFOCMRfjSFnjRI/8RnJ5U67Lq68P7wAD3stAInGC7BkBV04CHcL7ID4pI8
hkuH/0c\np7c2x93+EBgqIk3d7Xycz7GYiBRt5+H0eKD0Z1kRxe1T1UJgD+7n6aUV
zmdd5Icy8plzwAKM8adZ\nwCUichFOD+ZDr/1tPNbPw/kCOozzZfK+Z/BS1UhVneS
RvyLTgHuXv89d/y+cy0KXqWpj4Co3XXyV\nLyKhOJfwngOau8F0jlf+yvgRGOrVvj
BV3Yvvdv0I/M4rf7iqfuOrvr6o6g/AYpxAfzteg/uq+m9V\n7YcTzBR4poyifoMTK
HeLyAGcy4vBwK3u/t04vTBP7XECz15gi9ueX56pvj4Uf5buTRcJlHyenva5\nbSji
+bnb1PHnmAUY4zfq3ME0A2csYoWq7vbKMlpEurqDzxOBGW4v4APgRnFuZQ0U51bbJ
M+B+Aq6\nT0QS3AH0v+LcTQXOJaxsnIH0WOCJcsoJwRkrOQTki8hQ4JpK1sXTa8DT
RQP1ItJURIa5+w4BhZS+\nceE14FER6ebmjxaRm8/ivO8C9+NcpioO9iLSWUQGuoE
0B+d3U+h9sIi0Bgbh/LHQ3V0uxQlGRXeT\nfQ50EZHbRSTY/f3+NzBTVfPVuVb1J+
D/uTdONHZveugnIq+foe69ROQX4twl9xBwCmesxdtU4DH3\ndxqPMy5WdNv0T0Cci
ESX+5sy1cICjPG3d4GLOf3yGG7av4ADQBjOXUmo6o84A9t/wfnC/REYR+X/\nvf4b
+ALYgXNt/ik3/R9AOE5vaRnOl2KZVPWEW7fpwFGcv9ZnV7Iunl50j/9CRE64dbjMP
VcW8DSw\n1L0kdrmq/gfnSzzZvaS3ARh6FuediXMjwAJV3e+RHgpMwvl9HMAZIH/U
x/G3A2tV9QtVPVC0AC/h\n9lRV9aBbt9/hjOtswBmfu7eoEFWdAdwC/Band/ETzmf
z8Rnq/rF7zFG3Hr9Q1Twf+Z4CVgLrgPXA\najcNVd2ME4B2uL9bu3TmZ+L8QWGMf4
jIecBmoIWqHvdIT8EZDH7TT+fdBdytqvP9Ub45d0RkAtBR\nVUeXl9fULtaDMX7jX
iv/E5DsGVyMMQ1DtUxHYYw398G2n3Du4rm2hqtjjKkBdonMGGOMX9glMmOM\nMX5h
AcYYY4xfNOgxmPj4eG3Xrl2Vyzl58iSRkZFVr1AdYe2tvxpSW8Hae7ZWrVp1WFWbl
pevQQeY\ndu3asXLlyiqXk5KSQlJSUtUrVEdYe+uvhtRWsPaeLRH5ofxcdonMGGOM
n1iAMcYY4xcWYIwxxviF\nBRhjjDF+YQHGGGOMX1iAMcYY4xcWYIwxxviFBZgqmLV
mL30nLWT93mP0nbSQWWv21nSVjDGm1mjQ\nD1pWxaw1e3n0o/Vk5xVAG9ibkc2jH6
0HYHiP1uUcbYwx9Z9fezAicq2IbBGRNBEZ72P/ZBFZ6y5b\nRSTDY98zIrLBXW7xS
G8vIsvdMqeJSIibHupup7n72/mzbc/O2+IEF2DdEefV7Nl5BTz56SZW7DzC\nhr3H
SDuYyd6MbI6czCUnrwCbudoY05D4rQcjIoHAFOBqYA/wnYjMVtVNRXlUdaxH/geAH
u769UBP\nnHd+hwIpIjLXfWnVM8BkVU0WkdeAu4BX3Z9HVbWjiIx08xUHpuq2LyO7
eP3LvYHF6+knc/nVP78t\n87jw4EDCQwJL/wwOJCwkkAg3LcxNiwgpvR0eEkB4cFC
p48JDvMoJDkBE/NLmWWv28uy8LYxsc4K/\nTlrIuCGdrbdmjCmTPy+R9QbSVHUHgI
gk47xnfVMZ+UcBT7jrXYGvVTUfyBeRdcC1IvJ/wECcd6KD\n8773CTgBZpi7DjADe
EVERP3UbWgVE85eN8iM6ZLP65udX2V8oxD+cUsPsvMKyMrNJyevgOzcArLz\nCsnO
zSc7r8BZcgvJcfNk5xVwLDuPn47luMcVFO8rPIvaewavsOAAIkKCioNYuLtdOmgFE
u7mOW3b\nTft662H+/vlmcvIL0QS7JGiMKZ/fXjgmIiOAa1X1bnf7duAyVb3fR962
wDIgQVULROQanGBzNRAB\nrMDpDb0LLFPVju5xbYC5qnqRiGxwz7fH3bfdPd9hr3O
NAcYANG/evFdycvJZtS8jO4+9R7MpVKV5\nOPyUDQEitG4STkx48FmV6U1VKVA4VQ
C5BVr8M7fATSv0TvPal+/8zPU63tlfsl7ZIBYgSlgghAdC\nRBA0axREo2AhKkTcn
9CoeN35GR6E33pW/paZmUmjRo1quhrnRENqK1h7z9aAAQNWqWpieflqyyD/\nSGCG
qhYAqOoXIvIz4BvgEPAtUFAdJ1LV14HXARITE7UqM4t6XjJK/jGqzl4yys0vJDuvo
Li3lZVb\nUGo7O6+AB6auKc7/s3hl+aEAsvIh/RSENwpn97E8jp7MJb+MaBUUIMRE
hBAbGUyTiBBiI0NO224S\nEUKTyBBiI0JoEhlMo9CgWhGUGtKMuw2prWDt9Td/Bpi
9QBuP7QQ3zZeRwH2eCar6NPA0gIj8G9gK\npAMxIhLkXj7zLLPofHtEJAiIdvP7zf
AerRneozUpKSk8cFuSP0/lVyFBAYQEBRB9hp7XpLmbiy8J\n9mtRyPJDzv0hrWPC+
WJsf8DpcZ04lc/Rk7kcOZlLRlYeR07mcjQr1/3pBKEjWbmkHczkaJaTVlBG\nUAoO
dIOSG3CKg1JRIIoMLt6OjXTSIkMCqy0o2ZiTMVXjzwDzHdBJRNrjfPmPpGTspJiId
AGa4PRS\nitICgRhVTReRS4BLgC9UVUVkETACSAZ+A3zsHjbb3f7W3b/QX+MvDdG4
IZ1Lbst2hQcHMm5I5+Jt\nEaFxWDCNw4JpG1exlxqpKsdz8osDT0ZWLkdO5nlt53L
0ZB5bf8rk6MlcMrLPHJRK94i8e0in95h8\nBSW7Dd2YqvNbgFHVfBG5H5gHBAJvq+
pGEZkIrFTV2W7WkUCyVzAIBha7/+mPA6PdHgvAI0CyiDwF\nrAHectPfAt4XkTTgi
FuuqSZFX6rPztsCnKB1THi1/EUvIkSHBxMdHkw7KhaUCguVEzn5HMkq6inl\nevSU
8kptbzlwgqNZTlpZY00hgQGnBZ6ULQeLg+m2YyW3oT87b4sFGGMqyK9jMKo6B5jjl
fa41/YE\nH8fl4NxJ5qvMHTh3qPk65uYqVNeUo7ZcEgwIEKIjgomOCKZ9fMWD0vGc
kkt2R0/mcSQrt6Sn5LGd\neuA4J3NLemqzd5fchr43I5tb31hGu/hI2sdFOj/jI2g
TG0FoUKCvUxvTYNWWQX5j/CrAvckgJiKk\nQvn7TlpYPOZ0W4d8Ptzu/FcJDw4kK7
eAOev3k5GVV5xfBFpFh9M+PpJ28RG0i4t01yNp0ySCkCCb\nlck0PBZgjPHBc8ypR
YSTFh4cyP/84uLiS2QZWbnsPHySXekn2XU4y/15ktlr93E8J7+4rACB1k3C\nS4JO
XEkQahMbQXCgBR9TP1mAMcaHiow5xUSE0OO8EHqc16TUsarK0aw8dh4+yQ9u0NmZn
sWuwyf5\nz+q9nDhVEnwCA4QEj+DTNi6i+PJbQpNwgiz4mDrMAowxZTjbMScRITbS
uWGgV9vTg8+Rk7nsSj/J\nzsNZbvBxAtGqH46S6RF8ggKENrERTtDxuOTWPi6SVjF
hFnxMrWcBxphzSESIaxRKXKNQerWNLbVP\nVTmcWRR8ino/Wew8fJIVO4+Q5XHjQX
Cg0KaJ09txgk/JequYcAIDav4BVWMswBhTS4gITaNCaRoV\nys/anR58Dp04xa70k
l7PrsNOIPp2e3qp55NCAgNoExvuMd5TMu7TKjqcAB/Bxx4qNf5gAcaYOkBE\naNY4
jGaNw+jd/vTgc/DEKeeGA4/g80N6FkvSDpOTV1icNyQogLaxRb0d5+feo9m8tWQnp
/IL7aFS\nU60swBhTx4kIzRuH0bxxGJefH1dqX2Gh8tOJHDf4ZPGDe/ltV/pJvtp6
iNz8wlL539vmPMuTnVfA\nM59vtgBjqsQCjDH1WECA0DI6nJbR4VzRofS+wkJl//E
c+k5aWJwWEaSAcwlt/7EcfvG/S+nbMZ6+\nHePpcV6MPUxqKsUCjDENVECA0DomnN
Ye7zYa0b6Q59c7d6dFhQahwJRFaby8MI3w4EB6t4+lnxtw\nurSI8jmeY0wRCzDGN
HBlTWT65PCLGN6jNcey81i+I52laYdZknaYp+ekAhAXGcIVHePp1zGOvh3j\nSWgS
UVNNMLWUBRhjGrjyHiqNDg/mmm4tuKZbCwD2H8tmaVo637gB55Pv9wHQLi6i+HJan
/PjaBJZ\nsWl5TP1lAcYYU6mHSltGhzOiVwIjeiWgqqQdzGRJ2mGWph3m47X7+HD5
bkTgolbR9O0YT7+O8SS2\na0JYsI3fNDQWYIwxZ01E6NQ8ik7No7izb3vyCgpZtye
DJducS2pvLt7Ba19tJyQogJ+1a1IccLq1\niraHQRsACzDGmGoTHBhAr7ax9Gobyx
8Hd+LkqXxW7DxSPH7z98+38He2EB0ezBUd4ooDTtu4iFrx\nemxTvSzAGGP8JjI0i
AFdmjGgSzMADp04xTfbnctpS7YdZu6GA4Dz6u2+7s0CfTvGE98otCarbaqJ\nBRhj
zDnTNCqUYd1bM6x7a1SVXe5sA0u3HebzDQeYvnIPAF1aRDm3Q3eKp3e7WCJD7auqL
vLrpyYi\n1wIv4rwy+U1VneS1fzIwwN2MAJqpaoy77+/A9UAA8CXwR6ARsNijiATg
A1V9SETuAJ4F9rr7XlHV\nN/3RLmNM1YkI7eOdWaJvv7wtBYXKhr3Him8YeO/bH3h
zyU6CA4Ue5zUpfv7m0oRom0m6jvBbgBGR\nQGAKcDWwB/hORGar6qaiPKo61iP/A0
APd/0KoC9wibt7CdBfVVOA7h7HrAI+8jjtNFW93y8NMsb4\nVWCAcGmbGC5tE8N9A
zqSnVvAyh+OsDTNuWFg8vytvPDlVhqFBnH5+XH07RhHv47xdGzWyMZvail/\n9mB6
A2mqugNARJKBYcCmMvKPAp5w1xUIA0Jw5q0IBn7yzCwiFwDNKN2jMcbUE+EhgVzZq
SlXdmoK\nwNGTuXy7I724hzM/1flKaBYVWty76dsxnhbRYTVZbeNBVNU/BYuMAK5V
1bvd7duBy3z1MESkLbAM\nSFDVAjftOeBunADziqr+1euYx4HGqvqwu30H8D/AIWA
rMFZVf/RxrjHAGIDmzZv3Sk5OrnJbMzMz\nadSoUZXLqSusvfVXXWrroaxCNqUXsD
G9gNT0Ak7kOemtIoWucYF0iw+kc5NAIoLL7t3UpfZWh+pq\n74ABA1apamJ5+WrLy
NlIYIZHcOkIXIgzxgLwpYhcqaqLvY653WP7E2Cqqp4Skd8B7wIDvU+kqq8D\nrwMk
JiZqUlJSlSufkpJCdZRTV1h766+62tbCQiX1wHG+SXN6OEt2pjN/d75z2S0huriH0
+O8JoQE\nBXi8/6aA5A2FDeb9N+f68/VngNkLtPHYTqBkAN7bSOA+j+2fA8tUNRNA
ROYCfXAvh4nIpUCQqq4q\nOkBV0z2OfxP4e1UbYIypGwIChG6tounWKpp7rjqfU/k
FrNmdUfz8zSuL0njJnbCzbVwEaQczyS9U\nNMHef+NP/gww3wGdRKQ9TmAZCdzqnU
lEugBNgG89kncD94jI/
+BcIusP/MNj/yhgqlc5LVV1v7t5\nE5BaTe0wxtQxoUGBXH5+HJefH8d/XdO51ISd
Hy7fTX6hMzTw9taS9988O2+LBZhq5rcAo6r5InI/\nMA/nNuW3VXWjiEwEVqrqbDf
rSCBZSw8GzcC5vLUeZ8D/c1X9xGP/r4DrvE75oIjcBOQDR4A7qrtN\nxpi6yXPCzv
e+/aE4PdBjeKbolQWm+vh1DEZV5wBzvNIe99qe4OO4AuB3Zyj3fB9pjwKPnm1djTE
N\nQyuP99/8ulMBkzeUfA3+afpaxg3pTMvo8JqqXr1iTysZYxqUcUM6E+7O7Fw032
ZYUACDujTj0+/3\nM+C5FF74citZufk1WMv6obbcRWaMMefEmd5/8+ORLJ75fDMvL
dhG8ordjBvSmV/2TLA3d54l68EY\nYxqc4T1as3T8QC5uHc3S8QOLg06b2AheubUn
M+/tQ8uYcMbNWMeNryzh2+3p5ZRofLEAY4wxXnq1\njeU/917BiyO7c/RkLqPeWMa
Y91ay8/DJmq5anWIBxhhjfAgIEIZ1b83Ch5MYN6QzS9MOc/ULXzHx\nk00cy8qr6e
rVCRZgjDHmDMKCA7lvQEcWjUtiRK8E3vlmJ/2fW8Q7S3eSV1BY09Wr1SzAGGNMBTS
L\nCmPSLy/hsweupFurxvztk00Mmfw18zf9hL/mdKzrLMAYY0wldG3VmA/uuoy370
gEgbvfW8ltby5n\n475jNV21WscCjDHGVJKIMLBLc+Y9dBV/u6kbm/Yf54aXl/DIj
HUcPJ5T09WrNSzAGGPMWQoODOA3\nV7Tjq4cHcFff9ny0Zg9Jz6Xw8oJt5OQV1HT1
apwFGGOMqaLoiGAeu6ErX47tz1WdmvL8l1sZ+FwK\ns9bspbCw4Y7PWIAxxphq0i4
+ktdu70XymMuJbRTCQ9PW8vNXv2HlriM1XbUaYQHGGGOq2eXnxzH7\nvn48f/OlHD
iWzYjXvuW+D1fz45Gsmq7aOWUBxhhj/CAgQPhlrwQWPZzEQ4M7sXDzQQY9/xX/Mze
V\n4zkN40FNCzDGGONHESFBPDT4AhY9nMSNl7bin1/tYMCzKXyw7Afy6/mDmhZgjD
HmHGgRHcbzv7qU\nT+7vR4dmjXhs1gaGvriYlC0Ha7pqfmMBxhhjzqGLE6KZNuZyX
hvdi9yCQu545zt+8/YKtv50oqar\nVu38GmBE5FoR2SIiaSIy3sf+ySKy1l22ikiG
x76/i8hGEUkVkZdERNz0FLfMouOauemhIjLNPddy\nEWnnz7YZY8zZEhGuvagFX47
tz2PXX8jq3Ue59h9f89f/rOdw5qmarl618dsLx0QkEJgCXA3sAb4T\nkdmquqkoj6
qO9cj/ANDDXb8C6Atc4u5eAvQHUtzt21R1pdcp7wKOqmpHERkJPAPcUt3tMsaY6hI
S\nFMDdV57PL3om8NKCbby/7Admr93HfQM7cscV7Qhz37xZV/mzB9MbSFPVHaqaCy
QDw86QfxQw1V1X\nIAwIAUKBYOCncs43DHjXXZ8BDCrq9RhjTG0WGxnChJu6Me+hq
+jdPpZJczdz9eSv+Gzd/jo9kaY/\nA0xr4EeP7T1u2mlEpC3QHlgIoKrfAouA/e4y
T1VTPQ55x7089v88gkjx+VQ1HzgGxFVfc4wxxr86\nNmvEW3f8jA/uuozIkCDu+/d
qRrz2LWt/zCj/4FrIb5fIKmkkMENVCwBEpCNwIZDg7v9SRK5U1cU4\nl8f2ikgUMB
O4HXivoicSkTHAGIDmzZuTkpJS5cpnZmZWSzl1hbW3/mpIbYXa3d4/X6osjgth5rY
M\nhk9ZSp+WgYy4IIS48LPvF5zr9vozwOwF2nhsJ7hpvowE7vPY/jmwTFUzAURkLt
AHWKyqewFU9YSI\n/BvnUtx7HufbIyJBQDRw2ou0VfV14HWAxMRETUpKOtv2FUtJS
aE6yqkrrL31V0NqK9T+9g4E/utU\nPq+mpPHG4p2sPnSKMVedz+/7dyAytPJf3+e6
vf68RPYd0ElE2otICE4Qme2dSUS6AE2Abz2SdwP9\nRSRIRIJxBvhT3e1497hg4AZ
gg3vMbOA37voIYKHW5YuXxhgDNAoNYtyQLiz8r/5ce1ELXl6YRtJz\nKUz7bjcFtX
wiTb8FGHcc5H5gHpAKTFfVjSIyUURu8sg6Ekj2CgYzgO3AeuB74HtV/QRnwH+eiKw
D\n1uL0Wt5wj3kLiBORNOBPwGm3RRtjTF2V0CSCF0f24KM/XEGbJuE8MnM9N7y8hG
/SDtd01crk1zEY\nVZ0DzPFKe9xre4KP4wqA3/lIPwn0KuNcOcDNVaiuMcbUej3Pa
8LMe6/gs/X7mTR3M7e+uZzBFzbj\n0esupEPTRjVdvVLsSX5jjKljRIQbLmnF/D/1
55Fru7BsxxGGTP6aCbM3cvRkbk1Xr5gFGGOMqaPC\nggO5N6kDKeOSuOVnbXjv210
kPZfCW0t2kptf8xNpWoAxxpg6Lr5RKE///GLm/vEqLkmI5slPN3HN\n5K+Yt/EAqs
qsNXvpO2kh6/ceo+
+khcxaU9YNvdWrtjwHY4wxpoo6t4ji/bsuI2XLQZ7+LJXfvb+K\njs0a8eORLE7lF
0Ib2JuRzaMfrQdgeA+fz75XG+vBGGNMPZPUuRlz/3glTw6/iB2HMp3gAmS67znL\n
zivg2Xlb/F4PCzDGGFMPBQUGcPvlbfF8VGb5oZKv/H0Z2X6vgwUYY4ypx1rHhBev9
2lWMvDfyiPd\nXyzAGGNMPTZuSGfC3Wn/I9xR9/DgQMYN6ez3c9sgvzHG1GNFA/nO
mMsJWseEM25IZ78P8IMFGGOM\nqfeG92jN8B6tSUlJ4YHbks7Zee0SmTHGGL+wAGO
MMcYvLMAYY4zxCwswxhhj/MICjDHGGL+wAGOM\nMcYvLMAYY4zxC78GGBG5VkS2iE
iaiJz2CmMRmSwia91lq4hkeOz7u4hsFJFUEXlJHBEi8pmIbHb3\nTfLIf4eIHPIo7
25/ts0YY8yZ+e1BSxEJBKYAVwN7gO9EZLaqbirKo6pjPfI/APRw168A+gKXuLuX\n
AP2BFcBzqrpIREKABSIyVFXnuvmmqer9/mqTMcaYivNnD6Y3kKaqO1Q1F0gGhp0h/
yhgqruuQBgQ\nAoQCwcBPqpqlqosA3DJXAwl+qr8xxpgq8GeAaQ386LG9x007jYi0
BdoDCwFU9VtgEbDfXeapaqrX\nMTHAjcACj+Rfisg6EZkhIm2qqyHGGGMqr7bMRTY
SmKGqBQAi0hG4kJLeyZcicqWqLnb3B+H0dl5S\n1R1unk+Aqap6SkR+B7wLDPQ+kY
iMAcYANG/enJSUlCpXPjMzs1rKqSusvfVXQ2orWHv9zZ8BZi/g\n2YtIcNN8GQnc5
7H9c2CZqmYCiMhcoA+w2N3/OrBNVf9RdICqpnsc/ybwd18nUtXX3eNJTEzUpKSk\n
CjanbCkpKVRHOXWFtbf+akhtBWuvv/nzEtl3QCcRae8OyI8EZntnEpEuQBPgW4/k3
UB/EQkSkWCc\nAf5UN/9TQDTwkFc5LT02byrKb4wxpmb4rQejqvkicj8wDwgE3lbV
jSIyEVipqkXBZiSQrKoeL/Zk\nBs7lrfU4A/6fq+onIpIA/BXYDKwWEYBXVPVN4EE
RuQnIB44Ad/irbcYYY8rn1zEYVZ0DzPFKe9xr\ne4KP4wqA3/lI3wNIGed6FHi0Ct
U1xhhTjexJfmOMMX5hAcYYY4xflBlgRGSIiIzwkT5CRK72b7WM\nMcbUdWfqwTwOf
OUjPQWY6JfaGGOMqTfOFGBCVfWQd6KqHgYi/VclY4wx9cGZAkxj94n5UtznUsL9\n
VyVjjDH1wZkCzEfAGyJS3FsP8FfuAAAgAElEQVQRkUbAa+4+Y4wxpkxnCjCPAT8BP
4jIKhFZDewE\nDrn7jDHGmDKV+aClquYD40Xkb0BHNzlNVbPPSc2MMcbUaWUGGBH5
hVeSAjEislZVT/i3WsYYY+q6\nM00Vc6OPtFjgEhG5S1UX+qlOxhhj6oEzXSK701e
6+3Kw6cBl/qqUMcaYuq/SU8Wo6g84rzA2xhhj\nylTpAOO+v+WUH+pijDGmHjnTIP
8nOAP7nmKBlsBof1bKGGNM3XemQf7nvLYV50VesTgB5tvTjjDG\nGGNcZxrkL57oU
kR6ALcCN+M8bDnT/1UzxhhTl53pEtkFwCh3OQxMA0RVB5yjuhljjKnDzjTIvxkY\n
CNygqv1U9WWgoDKFi8i1IrJFRNJEZLyP/ZNFZK27bBWRDI99fxeRjSKSKiIviYi46
b1EZL1bpmd6\nrIh8KSLb3J9NKlNXY4wx1etMAeYXwH5gkYi8ISKDAKlowSISCEwB
hgJdgVEi0tUzj6qOVdXuqtod\neBl3Ek0RuQLoC1wCXAT8DOjvHvYqcA/QyV2uddP
HAwtUtROwwN02xhhTQ8oMMKo6S1VHAl2ARcBD\nQDMReVVErqlA2b1x5i7boaq5QD
Iw7Az5RwFTi04PhAEhQCjOczc/iUhLoLGqLlNVBd4DhrvHDAPe\nddff9Ug3xhhTA
850FxkAqnoS+Dfwb/ey083AI8AX5RzaGvjRY3sPZTz9784O0B5Y6J7zWxFZhNOD\n
EuAVVU0VkUS3HM8yW7vrzVV1v7t+AGhexrnGAGMAmjdvTkpKSjnNKF9mZma1lFNXW
Hvrr4bUVrD2\n+lu5AcaTqh4FXneX6jQSmKGqBQAi0hG4EEhw938pIlcCFZrJWVVV
RLyf4SnaV1z/xMRETUpKqmLV\nISUlheoop66w9tZfDamtYO31t0o/yV8Je4E2Hts
JbpovIym5PAbwc2CZqmaqaiYwF+jjHp/gkc+z\nzKJLaLg/D1a5BcYYY86aPwPMd0
AnEWkvIiE4QWS2dyZ36pkmlH5wczfQX0SC3Fc09wdS3Utgx0Xk\ncvfusV8DH7vHz
AZ+467/xiPdGGNMDfBbgHFfWHY/MA9IBaar6kYRmSgiN3lkHQkku4P2RWYA24H1\n
wPfA96r6ibvvD8CbQJqbZ66bPgm4WkS2AYPdbWOMMTWkUmMwlaWqc4A5XmmPe21P8
HFcAfC7Mspc\niXPrsnd6OjCoCtU1xhhTjfx5icwYY0wDZgHGGGOMX1iAMcYY4xcW
YIwxxviFBRhjjDF+YQHGGGOM\nX1iAMcYY4xcWYIwxxviFBRhjjDF+YQGmKtZNh8k
Xwf61zs9102u6RsYYU2v4daqYem3ddPjkQcjL\nhhbAsR+dbYBLflWjVTPGmNrAAs
zZWjDRCS5A66PuRNB52fD5oxDVEkIivZZGEBhcgxU2xphzywLM\n2TpW8mLNTgc/L
0nPOgzv3uD7mIDgkmATEgkhER7r7hLsFZRCIkofE+zjmIBAPzfWtW66E1hb3A2T\n
74dBj1tvzRhTJgswZys6wbksBizpOJ5+ae7bASKbw4i3IPck5J10fuaehNxM92dW6
e28LDix3yNf\nFuSeAC2seF2CwkoHpeCIMwcyX0GqVFCLhKBwCPAYorNLgsaYSrIA
c7YGPV78hZsfGO6kBYfDkKeg\n/ZVVK1sV8k+VBKK8LB9BKrN08PKVJ+tI6UCWm1m
5enj2po7tgcI8ALruc29myMuGOX922h3ZDCLj\nIbIphEaBSNV+B8aYOs8CzNkq+q
t9wUTnZ3Sb6rtkJALBYc4SGVf18ooUFkJ+tkcg8tGbKhW4PJaj\nO4uLaZRzoKTMn
KMwbXTp8wSFOYGmKOCctrjpjZpBRJyNTRlTT1mAqYpLfuUsKSkwakNN16Z8AQEl\n
PRKaVe7Y3d8WXxJccf6DJG15wkmPagm3ToOTh+DkYcg8WLJ+8hBk/gQ/bXTWC3J9l
x3exA08zUoH\npUY+gpP1joypM/waYETkWuBFIBB4U1Unee2fDAxwNyOAZqoaIyID
gMkeWbsAI1V1logsBqLc9GbA\nClUdLiJJwMdA0Z/aH6nqRH+0q0HyuCRYLDgcrp4
ILS8t/3hVOHXcKwgVBSKPoHRwk7M/J8N3OYGh\nJb2gRs3K7ylVpXdkNzUYUyV+Cz
AiEghMAa4G9gDfichsVd1UlEdVx3rkfwDo4aYvArq76bFAGvCF\nu+9Kj2Nm4gSVI
otVtYxbuEyVVPWSoAiERTtLXIfy8+fnQla6G3gOlvSIPHtKmQfhp03O/nJ7R0WB\n
qNnpl+mKtkMbl/SO7KYGY6rMnz2Y3kCaqu4AEJFkYBiwqYz8o4AnfKSPAOaqapZno
og0BgYCd1Zb\njc2ZnctLgkEh0Lils5THs3dUFIQyvYPSITiYCie/huyjvsvx7B0d
2gz5OQC0yvjO2Z+XDfP/ZgHG\nmAoSVfVPwSIjgGtV9W53+3bgMlW930fetsAyIEF
VC7z2LQReUNVPvdJ/DdykqiPc7SRgJk5vaR/w\nsKpu9HGuMcAYgObNm/dKTk6ual
PJzMykUaNGVS6nrqjr7ZXCfILzjhOSm0Fw3jFCco+5PzMIzstw\ntrP2E5J/kpCCT
AI8/knmBYST1eg8siLakBWRQFZEAicjE8gJawZyjp5H8qO6/tlWlrX37AwYMGCV\n
qiaWl6+2DPKPBGb4CC4tgYuBeT6OGQW86bG9Gmirqpkich0wC+jkfZCqvg68DpCYm
KhJSUlVrnxK\nSgrVUU5d0SDaO/kiyDkGwLfn/4k+O14AIDgogOjYZkQfWgcH5pfk
DwyFuI4Q3wmadob4C5wlrqPz\nHFId0SA+Ww/WXv/yZ4DZC7Tx2E5w03wZCdznI/1
XwH9UNc8zUUTicS7B/bwoTVWPe6zPEZH/FZF4\nVT18lvU3DZnHTQ2ngqOdtOBwuO
EfJZfIso/C4W1waAsc3uosB9ZB6myPB2UFYtq4Aadz6QAUGV8j\nTTPmXPFngPkO6
CQi7XECy0jgVu9MItIFaAJ866OMUcCjPtJHAJ+qao5HOS2An1RVRaQ3zkzR6VVu\n
hWmYKnJTQ3gTaNPbWTzl5cCRHXB4i0cA2gK7ljrPIRUfH+sEmqYXlA5AMeedu+l/j
PEjvwUYVc0X\nkftxLm8FAm+r6kYRmQisVNXZbtaRQLJ6DQaJSDucHtBXPoofCUzy
ShsB3Csi+UA2zm3NlR5gysvL\nY8+ePeTk5JSf2RUdHU1qamplT1Vn1dX2hoWFkZC
QQHBwBW9dPtubGoLDoHlXZ/FUWOjcjXZ4mxt8\ntsKhrbB5DmS9V5IvKAziOnn0dj
o5wSeug9OLMqaO8OsYjKrOAeZ4pT3utT2hjGN3Aa3L2JfkI+0V\n4JWzq2mJPXv2E
BUVRbt27ZAKPtB34sQJoqKiys9YT9TF9qoq6enp7Nmzh/bt29dMJQICoElbZ+k0\n
uPS+rCNuwPG43LZvNWz8D1D0d5I4xxaN78RfUHK5LSL2XLfGmHLVlkH+WiMnJ6dSw
cXUDSJCXFwc\nhw4dqumq+BYRC+dd7iye8rIhfbvT4zm0tST47PgKCk55HB/v+3Jb
dJvSk5Yacw5ZgPHBgkv9VCc/\n1+BwaHGRs3gqLICM3adfbtv0cennfILCIb6jG3A
8AlBcRwgKLclnsxYYP7AAY0xdFBAIse2d5YJr\nSu87edjjcpsbgPasgA0zSvJIAM
S0dS6xaSHsWAQFeQQ1zbZZC0y1sQBTy6SnpzNo0CAADhw4QGBg\nIE2bNgVgxYoVh
ISElFvGnXfeyfjx4+ncuXOlzn3DDTeQkZHBkiVLitNGjx7NiBEjGD58OAD5+fm0\n
adOGjAxnrrDNmzczduxY0tLSiIqK4oILLuCll16iWbNKTqZpqk9kvLO0vaJ0em4Wp
G87/dbqgyWT\naxS/1ygvG+b9Fbr9AgLta8KcHfuXU8vExcWxdu1aACZMmECjRo14
+OGHS+VRVVSVgDKurb/zzjuV\nPu+RI0dYt24dYWFh7N69m/POO6/cY7Kysrj+
+ut5+eWXue666wBYsGAB6enpFmBqo5AIZ2JS78lJ\nJ0QXr+6MG0D79EXOxsmD8Pf
z4fz+0HEwdBzkvGjPmAqy0b86Ii0tja5du3LbbbfRrVs39u/fz5gx\nY0hMTKRbt2
5MnFgycXS/fv1Yu3Yt+fn5xMTEMH78eC699FL69OnDwYMHfZY/Y8YMhg8fzi233EJ
F\np8/54IMP6N+/f3FwARg0aBAXXnhh1Rprzq3okuehf4hPKkmPiINuw2DPSueS2e
RuMOVyp2ezfZHz\nUjxjzsB6MGfwt082smnf8XLzFRQUEBhYsQfjurZqzBM3djur+
mzevJn33nuPxERnCqBJkyYRGxtL\nfn4+AwYMYMSIEXTtWvrZi2PHjtG/f38mTZrE
n/70J95+
+23Gjx9/WtlTp07lv//7v4mOjua2227j\nz3/+c7n12bBhA7169TqrtphapKxXMVw
7yRmDUXUm/0yb7ywrXodvX3Fevd3uypLeTUVmyTYNigWY\nOqRDhw7FwQWcoPDWW2
+Rn5/Pvn372LRp02kBJjw8nKFDhwLQq1cvFi9efFq5+/btY/fu3fTp0weA\nwsJCN
m/eTJcuXXzeeVUn78YyZStv1gIRaHahs1zxgPOG011LSgLONneqwCbt3WAzGNr1g9
CGM4mk\n8c0CzBlUtKdxrh48jIyMLF7ftm0bL774IitWrCAmJobRo0f7nH3A86aAw
MBA8vPzT8szbdo0Dh8+\nTLt27QCn1zN16lT+9re/ERcXx9GjJbe9HjlyhNhY56G+
bt26sXz58upqnqlJlZm1ICQSLhjiLOA8\np7N9oRNs1n4I370BgSHOMz1FAadZV3s
TaQNkYzB11PHjx4mKiqJx48bs37+fefN8TThdMVOnTmX+\n/Pns2rWLXbt2sWLFCq
ZOnQpAUlISycnJ5OU5843+61//4qqrrgLg9ttvJyUlhc8//7y4rEWLFtXJ\naWRMF
cR1gN73OK/OfmQX/Ho2XPZ7OJkOXz4Or14BL1wIH9/nzExQ1vt4TL1jPZg6qmfPnn
Tt2pUu\nXbrQtm1b+vbte1blbN+
+nf3795e69NapUyfCwsJYtWoVw4cPZ/Xq1fTq1YuAgAA6derEs88+C0BE\nRASffv
opY8eO5YEHHiA4OJju3bvz4osvVksbTR0UFOrcdXZ+f7jmSTi2t6R3k/oJrPnAeQY
n4Wcl\nYzcte9hsA/WU3144VhckJibqypUrS6WlpqZW+i6oujg3V1XU5faezefbkN
4Z4te2FuTD3lUlYzf7\n1gDq3K3WYaATcDoMdF5jfY40pM8Wqq+9IlKnXjhmjKnvA
oPgvMucZeBfnRkHti9ygs32BbD+/5x8\nLS91g80g51UIgRWc/drUOhZgjDE1IzIe
LrnZWQoLnZe1bV8AaQtgyT9g8fMQ2hjaX1Vys0BMm/LL\nNbWGBRhjTM0LCIBW3Z3
lyv9yXle982v3ctoC2Pypky+
+c8nYTdu+zrt3TK1lAcYYU/uERcOFNzqL\nqjNnWtHYzXdvwrIpzkzR7fqV9G7iOt
it0LWMBRhjTO0m4sz63LQz9LnPmbTzh6UlvZvPH3HyxbQt\nCTbtr4TQunkjSn3i1
3sDReRaEdkiImkictr8JCIyWUTWustWEclw0wd4pK8VkRwRGe7u+5eI7PTY\n191N
FxF5yT3XOhHp6c+2GWNqSEgEdLoahj4DD6yEP34P178AzS+CddMgeRQ80x7+dQMsm
QwH1ju9\nIE/rpsPki2D/Wufnuuk105Z6zm8BRkQCgSnAUKArMEpESs1joqpjVbW7
qnYHXgY+ctMXeaQPBLKA\nLzwOHVe0X1XXumlDgU7uMgZ41V9t86f09HS6d+9O9+7
dadGiBa1bty7ezs3NrXA5b7/9NgcOHChz\nf25uLrGxsTz22GOl0hMSEoqn4geYP3
9+8VT9AJ999hlXXXUV3bp1o3v37jzyyCOVaJ0xftCkHfzs\nLhj1b/jzTvjNp05PJ
zsD5k+A1/rB811g1h9gw0xY+Y4z99qxH53ji95/Y0Gm2vnzEllvIE1VdwCI\nSDIw
DNhURv5RwBM+0kcAc1U1q5zzDQPeU+fBnmUiEiMiLVV1/9lVv2ZUZLr+inj77bfp2
bMnLVq0\n8Ll/3rx5dO3alWnTpvHUU09VqMzvv/
+ehx56iGnTptGzZ08KCgp4/fXXK103Y/wmKMS5PNb+Srj6\nb3B8f8mDnps/c6ay8
RB56idnJS/bmYvNXrBWrfwZYFoDP3ps7wEu85VRRNoC7YGFPnaPBF7wSnta\nRB4H
FgDjVfVUGedrDZQKMCIyBqeHQ/PmzUlJSSlVcHR0NCdOnDhTu05TUFBQ6WMq4tSpU
wQHBxeX\n/eGHH/LGG2+Ql5dH7969ef755yksLOTee+9l/fr1qCp33HEHzZo1Y+3a
tdx8882Eh4ezaNGi015U\n9t5773HvvfcyZcoUFi1aVPwkv6py4sSJ4tmhs7KyyM/
P58SJEzz11FM8/PDDnH/+
+cV1Gj16tF/a\n7i85OTmnfeblyczMrPQxdVX9bGtraPobiB9N1Ik0Yn+YQ+zJNBr
n7OVnu/6XA40vYWf8IE4Fxzhz\nsdVj5/rzrS2D/COBGapa4JkoIi2BiwHPibYeBQ
4AIcDrwCPARCpIVV93jyMxMVG9n2pNTU0teUp9\n7njn+m058gvyCaroW/9aXAxDJ
1Uoa2hoKKGhoURFRbFhwwY+//xzli9fTlBQEGPGjOGzzz6jQ4cO\nHDt2jI0bNwKQ
kZFBTEwMb775Jq+88grdu3c/rdysrCyWLl3K++
+/z7Fjx5g9ezYDBgwAnJmSo6Ki\nin8HERERBAUFERUVxZYtW5gwYQKBgYF19kn+s
LAwevToUaljGtLT3vW/rYNg8suQsweAH2KvpO2R\nxbQ4vg5ComD4eghvUsN19J9z
/fn6c5B/L+D5VFSCm+bLSGCqj/RfAf9R1byiBFXdr45TwDs4l+Iq\ne746Z/78+Xz
33XckJibSvXt3vvrqK7Zv307Hjh3ZsmULDz74IPPmzSM6OrrcsmbPns3VV19NWFgY
\nN998MzNnzqSwsBDwPRW/Tc9v6pVBjzvvuwF2Nh3spEkg5GbCi93hm5ftZWrVxJ8
9mO+ATiLSHueL\nfiRwq3cmEekCNAG+9VHGKJwei2f+lqq6X5xvveFA0dzis4H73b
Gey4BjVR5/qWBPI/sczM2lqvz2\nt7/lySefPG3funXrmDt3LlOmTGHmzJnljotMn
TqVZcuWFU/Pf+jQIb766isGDBhQPD1/TEwM4EzP\nHx8fDzjT869atapCr1M2ptYq
6/03zbrC/Cfgi8ecl6oNfBwu+qVNxFkFfvvNqWo+cD/O5a1UYLqq\nbhSRiSJyk0f
WkUCyes26KSLtcHokX3kV/aGIrAfWA/FA0Qj1HGAHkAa8AfyhWhtUwwYPHsz06dM5
\nfPgw4Nxttnv3bg4dOoSqcvPNNzNx4kRWr14NQFRUlM+xkYyMDJYtW8aePXuKp+d
/6aWXSk3P//77\n7wOQn5/Phx9+WHz57M9//jNPPvkk27dvB5yxp9dee83vbTem2l
3yKxi7AVp2d35e8itocRGMngm3\nz4KwGPjobnhjgDOjgDkrfh2DUdU5OF/8nmmPe
21PKOPYXTiD9N7pA8vIr8B9Z1nVWu/iiy/miSee\nYPDgwRQWFhIcHMxrr71GYGAg
d911F6qKiPDMM88AcOedd3L33XcTHh7OihUrigf5Z86cydVXX01w\ncMkEgsOHD+e
vf/0rU6ZMYcKECfz+97/n0ksvRVW57rrrGDVqFAA9evTg+eef54477ii+ZXrYsGHn
\n+DdhjJ91GADtv3Im31z4JLx7I3S6Bgb/DZp3Lf94U8ym67fp+iutLrfXpus/s4b
UVqhAe/NynMtl\ni5+DUyeg+20w4C/QuNU5q2N1OtfT9dvFRWOMKUtwGPR9EB5cC5
f/wZkp4KWesOBJyDle07Wr9SzA\nGGNMeSJiYcjTcP930OV6p0fzUg9Y8QYU5JV/f
ANlAcYYYyqqSTsY8RbcswiaXQhzHoYpl8Gm2afP\nd2YswBhjTKW17gm/
+QRune68cXP67fDWNbB7eU3XrFaxAGOMMWdDBC4YAr9fCje9DBm74e1rYNpo\nOJx
W07WrFSzAGGNMVQQGQc9fw4OrYcBjsH0RTOkNn/0XZB6s6drVKAswtUx1TNd/5513
smXLlkqf\n+4YbbqBfv36l0kaPHs2sWbOKt/Pz82nTpmRGns2bNzN06FA6depEz54
9GTlyJAcPVv0/1ZAhQ8qd\nRLO8VxIYc06FREL/cc4dZ4l3Oq8FeKkHfPV3yD1Z07
WrEbVlsss6a9aavTwzN5UDx0/RKiaccUM6\nM7zHac+HVlhFputXVVSVgDKmsHjnn
Xcqfd4jR46wbt06wsLC2L17d4Wmg8nKyuL666/n5Zdf5rrr\nrgNgwYIFpKen06xZ
s0rXwdO8efPKzVPeKwmMqRGNmsL1z8Nlv4cFf4NFT8N3bznPz3S/zenxNBDW\ng6m
CWWv28uhH69l//BQK7M3I5tGP1jNrTfXPsZmWlkbXrl257bbb6NatG/v372fMmDEk
JibSrVs3\nJk4smVC6X79+rF27lvz8fGJiYhg/fjyXXnopffr0KbN3MWPGDIYPH84
tt9xCcnJyher0wQcf0L9/\n/
+LgAjBo0KDTHmScP38+AwYMYOjQoXTu3Jn77ruPogd8P/jgAy6+
+GIuuugi/vKXvxQfU/Tis7S0\nNC666CLuuusuunXrxtChQ8nJyWHatGmsXbuWW26
5pbh3N27cOLp27coll1xiL0IzNS+
+E9zyAfx2\nHsSc57zU7LV+sHVeg7njzAJMFTw7bwvZeaXeMEB2XgHPzqv85amK2L
x5M2PHjmXTpk20bt2aSZMm\nsXLlSr7//nu+/PJLNm06/V1ux44do3///nz//ff06
dOHt99+22fZU6dOZdSoUYwaNap4XrLybNiw\ngV69elUo7/Lly3n11VfZtGkTqamp
fPzxx+zZs4fHHnuMRYsWsWbNGpYuXcqnn3562rFbtmzhoYce\nYuPGjYSHhzNr1qz
iwFIUaI4ePcqcOXPYuHEj69at49FHH/VRC2NqwHmXw11fwK/eh4Jc+PevnOln\n9q
6u6Zr5nQWYKtiXkV2p9Krq0KFD8YvBwAkKPXv2pGfPnqSmpvoMMOHh4QwdOhSAXr1
6sWvXrtPr\nu28fu3fvpk+fPnTt2pXCwkI2b94MVN/0/Zdffjnt2rUjMDCQkSNHsm
TJEpYvX87AgQOJj48nODiY\nW2+9la+/Pn1iwY4dO3LxxRefsQ2xsbEEBARwzz338
J///IfIyMhK19EYvxGBrjfBfcvhuufgYKoz\nkeaMu+Dorpqund9YgKmCVjHhlUqv
Ks8vzW3btvHiiy+ycOFC1q1bx7XXXktOTs5px3i+yTIwMJD8\n/PzT8kybNo3Dhw/
Trl072rVrx+7du4t7MUXT9xc5cuQIsbGxQMn0/RXhHZQqE6RCQ0PLbUNwcDAr\nV6
5k+PDhzJo1i+uvv77C5RtzzgQGQ+974ME1cNU45zXOr/wMPv8LZB2p6dpVOwswVTB
uSGfCgwNL\npYUHBzJuSGe/n/v48eNERUXRuHFj9u/fX6FB8bJMnTqV+fPnF0/fv2
LFilLT9ycnJ5OX50yH8a9/\n/YurrroKgNtvv52UlBQ+//zz4rIWLVpEamrqaedYt
mwZu3fvpqCggOnTp9OvXz8uu+wyFi1aRHp6\nOvn5+SQnJ9O/f/8K19vzlQQnTpzg
+PHj3HDDDUyePJk1a9ac9e/DGL8LawwDH3Nubb7kFlj+KrzU\nHZa+6EywWU80nNs
Z/KDobrHqvIusonr27EnXrl3p0qULbdu2pW/fvmdVzvbt29m/f3+pS2+dOnUi\nLC
yMVatWMXz4cFavXk2vXr0ICAigU6dOPPvss4DzOuVPP/2UsWPH8sADDxAcHEz37t1
58cUXTztP\n7969+f3vf8/27dsZPHgwN910EyLCk08+SVJSEqrKjTfeWKmeh+crCW
bPns2IESM4deoUhYWFvPDC\nC2f1+zDmnGrcCoa94kykOf8J+PJxZ36zgf8PLr657
r/srOiW14a49OrVS71t2rTptLTyHD9+vNLH\n1GWVbe+XX36pw4YN81NtKudsPt9F
ixZVf0VqqYbUVtVa2N7tKaqvXan6RGPVV/uppi2s1uKrq73A\nSq3Ad2wdD4/GGFO
PnN8f7kmBX7wJ2Rnw/nD44JdwYEO5h9ZGfg0wInKtiGwRkTQRGe9j/2QRWesu\nW0
Ukw00f4JG+VkRyRGS4u+9Dt8wNIvK2iAS76UkicszjmMe9z2dqxuDBg0vNBmCMOYO
AALjkZnhg\nJVzzNOxZ6Tw/M+sPcKz6n7HzJ7+NwYhIIDAFuBrYA3wnIrNVtfheWl
Ud65H/AaCHm74I6O6mxwJp\nwBdu1g+B0e76v4G7gVfd7cWqeoO/2mSMMedMUChcc
T/0uA0WPw/L/wkbZjrjNf0egrDomq5hufzZ\ng+kNpKnqDlXNBZKBM73AfRTg6wm/
EcBcVc0CUNU5HtcBVwAJ1VxvY4ypPcKbwDVPwf0r4cKbYMkL\n8GJ3WPYa5FdsfsK
aIuqnKQtEZARwrare7W7fDlymqvf7yNsWWAYkqGqB176FwAuq+qlXejCwHPij\nqi
4WkSRgJk5vaR/wsKpu9HGuMcAYgObNm/fynhYlOjqajh07VqqtBQUFBAYGlp+xnqj
L7U1LS+PY\nsWOVOiYzM5NGjRr5qUa1S0NqK9TN9jY6sZ0O2/9Fk4x1ZIe1YMf5v+
ZQ0yuchznLUV3tHTBgwCpV\nTSwvX225TXkkMMNHcGkJXAz4esjjf4GvVXWxu70aa
KuqmSJyHTAL6OR9kKq+DrwOkJiYqElJSaX2\np6amEhUVVanKnzhxotLH1GV1ub1h
YWH06NGjUsekpKTg/e+kvmpIbYW62t4k0N9C2nz+f3vnHt1F\neebxz5cQGooFFBY
4FtpQjQUJIXhCtKsgHoOu2hXaBQQtSqVVdAuL6LHZw0UEq+Ae9SxCy7F4Lw1Q\nqB
68wQHXoIAsNwmXjVv7PzQAAA88SURBVLRFPVzatYGVizcU8+wfM4k/fuT2S36TkPy
ezzm/wzvv\nvO87z3eGzDPzzszztF09nT7/8zB8Ow+umgXf/ccaeza23iinyA4CPW
KWu4d1VTGKqqfHRgIvmNkp\nSa8l3Qf8AzC5os7MjpnZx2H5VSBdUuf6m980JCNcP
9Qeyv6LL77gnHPOYerUqafUVwSZrGDNmjUM\nGzascvmVV15h0KBB9OnTh9zc3KQE
ldy/fz833HBDjW3Ky8uZPXt2g7flOC0CCbKGwPh1MHQ+HDsI\nT18DRTdC2Z+a2rp
KonQwm4EsST0ltSFwIiviG0nqBZwNvF3FGKc9l5H0M+BqYLSZlcfUd1MYf0RS\nPo
G2w0nSUj07ltLuiYthRkd4LBt2LG3QcBXh+rdv38748eO56667Kpdjw77URm0OZtW
qVVx44YUs\nWbKkzmOWlJQwadIknnzySXbv3s3WrVvJzMysc//q6NGjR612uINxnC
polQb9fwITtgUfZ77/Jvz6\nEnj5Ljj+YVNbF52DMbOTwC8IprdKgaVmtlvSTEnXx
zQdBSy2uIdBkjIJ7oDWxg29AOgKvB33OvJw\nYJekEmAuMCp+zKSzYym8NJFWxw8C
Bkf3ByG5G+hkquPZZ58lPz+f3Nxc7rzzTsrLyzl58iRjxoyp\nDHk/d+7cKkPZx1N
UVMTkyZPp1q0bmzZtqtP258yZw7Rp08jKCmYe09LSuOOOO05rN3XqVG655RYu\nue
QSsrKyKiM4l5eXM3nyZLKzs+nbty/Lli0Dguciubm5ACxcuJDhw4dz9dVXk5WVVRk
VubCwkOPH\nj5Obm8vNN9/M8ePHueaaa+jXrx/Z2dmVYzlOStLmmzDoHvi37TBgHG
x7Lkh2VjwbTnwcnJMey4a/\nbU/KhXBdifQZTDhV9Wpc3fS45RnV9P0AOC3miplVa
bOZzQPm1dPU+vH6TPgyLnLyl58F9Tkjk7qp\nXbt28cILL7BhwwZat27NbbfdxuLF
iznvvPM4dOgQO3fuBODIkSN07NiRxx9/nHnz5lWeuGP59NNP\nKS4urrzLKSoqIj8
/v042TJkypU727ty5kw0bNnDs2DEuuugirrvuOoqLiyktLaWkpISysjIGDBhQ\nGd
cslpKSErZu3Up6ejoXXHABEyZMYPbs2SxcuLAyGduSJUvIzMzktddeA0j4wb3jtEj
adYZr/
+Pr\nZGfFD8Hbv4aTn8JXX0I3vr4QhqSfp+LxL/kbwtEDidU3gDVr1rB582by8vLI
zc1l7dq17N27l/PP\nP589e/YwceJEVq1aRYcOtb8bv2LFCoYMGUJGRgYjRoxg+fL
llJcHs43JCs8/bNgwMjIy6NKlC4MG\nDWLz5s2sW7eO0aNHk5aWRrdu3bjsssvYsm
XLaX0LCgpo3749bdu2pVevXuzbt+
+0Njk5OaxcuZLC\nwkLWr19fJ92OkzJ0Og9GPgfjVsPJzwLnApzzyZ+D9RUXwhHjD
qYhdKjmE5zq6huAmXHrrbdWPo/Z\ns2cP06ZNo1OnTuzYsYOBAwcyf/58br/99lrH
KioqYuXKlWRmZjJgwADKyspYuzaYiawqPH/nzsG7\nEmdSeP7evXuzZcsW+vTpQ2F
hIQ8+
+GCdx3eclKFHfpDkLKTdiZiMthFcCMfjDqYhXDkd0uNyv6S3\nDeqTTEFBAUuXLuX
QoUNA8LbZvn37KCsrw8wYMWIEM2fOZNu2IEtebCj7WI4cOcLGjRs5cOBAZXj+\nuX
PnnhKe//nnnwfg5MmTLFq0iCuuuAKAe+
+9l1mzZrF3714g+B5mwYIFVdr74osvcuLECcrKynjr\nrbfIy8tj4MCBLF68mPLyc
j788EPWr19/ShTnmmjdunWlTQAHDx7krLPOYsyYMdx9992Vuh3HiaPD\n1y/zHjj7
4pj66L9RP1O+g2mehPOX5atn0Or4X4MDduX0SOY1+/bty3333UdBQQHl5eWkp6ezY
MEC\n0tLSGDduHGaGJObMmQOcGsp+06ZNlW+gLV+
+nCFDhpCenl459rBhw5gyZQrz589nxowZjB8/nn79\n+mFmXHvttYwePRqA/v3788
gjjzB27NjKFweGDq06OEN2djaXX345hw8f5v7776dr164MHz6cjRs3\nkpOTgyQef
fRRunTpwrFjx+q0D8aNG0dOTg55eXmMGjWKwsJCWrVqRZs2bap1dI6T8lw5PXjm8u
Vn\nmMJTfkQXwvFE9iV/cyAvL8/inwGUlpbSu3fvhMZpzh8e1ofa9E6dOpXOnTsza
dKkRrSqbtTn+DbP\nj/HqRypphRTSu2MpvD6T4m4/Y/D/LmzwhbCkZvUlv+M4jhMV
OSODX3ExjG680P/uYJyk88ADDzS1\nCY7jnAH4Q/4qSOVpw5aMH1fHaVzcwcSRkZH
B4cOH/WTUwjAzDh8+TEZGRlOb4jgpg0+RxdG9e3cO\nHDhAWVlZnft8/vnnKXXiaq
56MzIy6N7d0wc5TmPhDiaO9PR0evbsmVCf4uLihEPAN2dSTa/jOPXD\np8gcx3GcS
HAH4ziO40SCOxjHcRwnElL6S35JR4E/x1V3AI7Wcbmi3Bk4lAST4rdV37bVrauqvi
76\n4suut37UVW9t7eqiq6o6/798etn11o8sM6s9hLmZpewPeKK2upqWK8rAlqjsq
U/b6tYlqreGsuuN\nUG9t7eqiqzat1en1Y+t6k6k31afIXqpDXU3LVfVvCImMV1Pb
6tYlqjdKrYmOmUp6a2tXF11V1fn/\n5dq3V19cbxWk9BRZspC0xeoQ+K2l4HpbLqm
kFVxv1KT6HUyyeKKpDWhkXG/LJZW0guuNFL+DcRzH\ncSLB72Acx3GcSHAH4ziO40
SCOxjHcRwnEtzBRIykwZLekrRA0uCmtqcxkNRO0hZJP2xqW6JEUu/w\nuC6TdEdT2
xM1koZJ+q2kJZKuamp7okbS9yQ9KWlZU9sSBeHf6bPhMb0pim24g6kBSU9J+rukXX
H1\n/yRpj6S/SCqsZRgDPgYygANR2ZoMkqQX4JfA0misTA7J0GpmpWY2HhgJXBqlv
Q0lSXpfNLOfA+OB\nG6K0t6EkSe97ZjYuWkuTS4K6fwwsC4/p9ZHY42+RVY+kQQTO
4Tkzyw7r0oA/AUMIHMZmYDSQBjwU\nN8StwCEzK5fUFXjUzCK5UkgGSdLbD+hE4FA
PmdnLjWN9YiRDq5n9XdL1wB3A82b2+8ayP1GSpTfs\n9wiwyMy2NZL5CZNkvcvMbH
hj2d4QEtQ9FHjNzLZL+r2Z3ZhsezwfTA2Y2ZuSMuOq84G/mNl7AJIW\nA0PN7CGgp
imhj4BvRGFnskiG3nAasB1wIfCZpFfNrDxKu+tDso6tma0AVkh6BThjHUySjq2A2Q
Qn\npTPWuUDS/3abDYnoJnA23YHtRDSb5Q4mcb4N7I9ZPgBcXF1jST8GrgY6AvOiN
S0SEtJrZlMAJI0l\nvHuL1LrkkuixHUwwzfAN4NVILYuGhPQCE4ACoIOk881sQZTG
RUCix7cT8Cugv6R/Dx1Rc6Q63XOB\neZKuI5pwMu5gosbM/gj8santaGzM7JmmtiF
qzKwYKG5iMxoNM5tLcFJKCczsMMHzphaJmX0C/DTK\nbfhD/sQ5CPSIWe4e1rVUUk
lvKmkF19vS9VbQZLrdwSTOZiBLUk9JbYBRwIomtilKUklvKmkF19vS\n9VbQZLrdw
dSApCLgbeD7kg5IGmdmJ4FfAKuAUmCpme1uSjuTRSrpTSWt4Hpbut4KzjTd/pqy4z
iO\nEwl+B+M4juNEgjsYx3EcJxLcwTiO4ziR4A7GcRzHiQR3MI7jOE4kuINxHMdxI
sEdjNOikPSBpM4N\nbZPA9j5OxjgtAUmTJH2zqe1wzhzcwThOM0FSg2MHhqHbo2IS
kJCDidgep4lxB+M0SyS9KGmrpN2S\nbqtifaakdyUtklSqIOtk7MlvgqRtknZK6hX
2yZf0tqR3JG2Q9P062vIrSSWSNkrqKulbkt6XlB6u\nb1+xLKlY0n9K2i5pl6T8sE
27MFnUpnD7Q8P6sZJWSPov4HUFGVLflPSKggRSCyS1Ctv+RkEm0d2S\n7o+x7wNJc
yRtA0ZI+rmkzaHNyyv2i6RnwjE2Snov3NZT4f57Jma8q8L9tE3SHySdJWkicC7whq
Q3\nqmtXlT11POROc8TM/Oe/ZvcDzgn/bQvsAjqFyx8AnYFMgmyil4b1TwH3xLSZE
JbvBBaG5fZA67Bc\nACwPy+cCr1ZjhwH/HJYfBqaG5aeBYWH5NuCRsFwM/DYsDwJ2
heUHgZ+E5Y4ECaLaAWMJwqtX6B0M\nfA58jyBR1mpgeNw+SQu3kxOj994YmzvFlB+
I2RfPAIsBEeQLOQb0JbgQ3Qrkhvv2TaBd2OeXwPTY\nfR+Wa2t3b1X7038t6+d3ME
5zZaKkEmAjQaTYrCra7Dez9WH5d8BlMesqUihsJXBGAB2APyhIN/sY\n0AfAzP5qZ
tdWY8cXQEXWztixFvJ1KPSfEjicCorCcd8E2kvqCFwFFEraTuAcMoDvhO1Xm9n/xf
Tf\nZEE636/CsSp0jQzvCt4Jbb8wps+SmHK2pLck7QRuqtAZ8pKZGbAT+NDMdlqQ0
2d3qO2ScNz1oa23\nAN+tYr/U1m5JFX2cFobng3GaHQoSfRUAPzCzTyUVE5yQ44kP
tBe7fCL89yu+/juYBbxhZj9SkBWw\nuA7mfBmekE8Zy8zWh9N0g4E0M4vNkV6VXQL
+xcz2xK6QdDHwSQ06AExST+AeYICZfRROacXuk9gx\nniG4uypRkBhucMy6iv1SHl
OuWG4dalxtZqOpGdXSLl6T0wLxOxinOdIB+Ch0Lr0Irpar4juSfhCW\nbwTW1WHci
jwZYxtsJTxHkEb56bj6GwAkXQYcNbOjBJFuJ0hSuK5/DePmKwi93iocax3B9N4nwF
FJ\nXYFrauj/LeBv4TOimxLUtBG4VNL5oZ3tJF0Qrjsejl1bOydFcAfjNEdWAq0ll
RLkiN9YTbs9wL+G\n7c4GflPLuA8DD0l6h5i7e0nnSqpPSuRF4XaL4uo/D7exABgX
1s0C0oEdknaHy9WxmSD9dinwPvCC\nmZUQTI29S+DU1lffnWnAf4dt3k1EkJmVETj
fIkk7CELD9wpXPwGslPRGLe2cFMHD9TstknCK62Uz\ny25CG4YDQ81sTExdMcHLBl
vqOebgsP8Pk2Kk40SIP4NxnAiQ9DjBNFV1Lwc4TovH72Acx3GcSPBn\nMI7jOE4ku
INxHMdxIsEdjOM4jhMJ7mAcx3GcSHAH4ziO40SCOxjHcRwnEv4fDmsJb2NrZfUAAA
AA\nSUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"top 10 Essay features\n",
"\t-10.2361\tfaced \t\t-3.0754\tuntil
\n",
"\t-10.2327\tdo \t\t-3.2379\tattention
\n",
"\t-10.2261\tkinesthetic \t\t-3.3286\ttrack
\n",
"\t-10.2228\tpillows \t\t-3.5301\tteams
\n",
"\t-10.2228\tthing \t\t-3.8033\tparent
\n",
"\t-10.2228\twho \t\t-3.8954\tinteresting
\n",
"\t-10.2130\tnthere \t\t-4.0276\tnothing
\n",
"\t-10.2130\tread \t\t-4.1644\tballs
\n",
"\t-10.2097\tsongs \t\t-4.2033\ttruly
\n",
"\t-10.2065\tany \t\t-4.3033\ttraditional
\n",
"top 10 Title features\n",
"\t-10.2361\tforward \t\t-3.2379\tbetter
\n",
"\t-10.2327\telmo \t\t-3.3286\twow
\n",
"\t-10.2261\tlots \t\t-3.5301\twalk
\n",
"\t-10.2228\treaders \t\t-3.8033\tproduction
\n",
"\t-10.2228\twhy \t\t-3.8954\tleft
\n",
"\t-10.2130\tpersonal \t\t-4.0276\tpe
\n",
"\t-10.2130\tset \t\t-4.1644\tbook
\n",
"\t-10.2097\ttechnological \t\t-4.2033\tyoung
\n",
"\t-10.2065\tawesome \t\t-4.3033\twrite
\n",
"\t-10.2065\tstrong \t\t-4.4596\thealth
\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_alpha</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.092815</td>\n",
" <td>0.001282</td>\n",
" <td>0.017036</td>\n",
" <td>0.000861</td>\n",
" <td>1e-05</td>\n",
" <td>{'alpha': 1e-05}</td>\n",
" <td>0.738294</td>\n",
" <td>0.783556</td>\n",
" <td>0.791780</td>\n",
" <td>0.789251</td>\n",
" <td>0.788332</td>\n",
" <td>0.778242</td>\n",
" <td>0.020152</td>\n",
" <td>1</td>\n",
" <td>0.803469</td>\n",
" <td>0.787462</td>\n",
" <td>0.785285</td>\n",
" <td>0.787560</td>\n",
" <td>0.787103</td>\n",
" <td>0.790176</td>\n",
" <td>0.006698</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.093662</td>\n",
" <td>0.002202</td>\n",
" <td>0.017110</td>\n",
" <td>0.000561</td>\n",
" <td>0.0001</td>\n",
" <td>{'alpha': 0.0001}</td>\n",
" <td>0.737864</td>\n",
" <td>0.783325</td>\n",
" <td>0.791546</td>\n",
" <td>0.789032</td>\n",
" <td>0.788135</td>\n",
" <td>0.777980</td>\n",
" <td>0.020235</td>\n",
" <td>2</td>\n",
" <td>0.803253</td>\n",
" <td>0.787230</td>\n",
" <td>0.785056</td>\n",
" <td>0.787331</td>\n",
" <td>0.786871</td>\n",
" <td>0.789948</td>\n",
" <td>0.006703</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.093880</td>\n",
" <td>0.002233</td>\n",
" <td>0.016989</td>\n",
" <td>0.000755</td>\n",
" <td>0.001</td>\n",
" <td>{'alpha': 0.001}</td>\n",
" <td>0.737123</td>\n",
" <td>0.782892</td>\n",
" <td>0.791101</td>\n",
" <td>0.788589</td>\n",
" <td>0.787722</td>\n",
" <td>0.777485</td>\n",
" <td>0.020357</td>\n",
" <td>3</td>\n",
" <td>0.802838</td>\n",
" <td>0.786778</td>\n",
" <td>0.784608</td>\n",
" <td>0.786891</td>\n",
" <td>0.786425</td>\n",
" <td>0.789508</td>\n",
" <td>0.006716</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.093623</td>\n",
" <td>0.001536</td>\n",
" <td>0.017058</td>\n",
" <td>0.000769</td>\n",
" <td>0.01</td>\n",
" <td>{'alpha': 0.01}</td>\n",
" <td>0.735879</td>\n",
" <td>0.782092</td>\n",
" <td>0.790283</td>\n",
" <td>0.787746</td>\n",
" <td>0.786917</td>\n",
" <td>0.776582</td>\n",
" <td>0.020525</td>\n",
" <td>4</td>\n",
" <td>0.802066</td>\n",
" <td>0.785941</td>\n",
" <td>0.783770</td>\n",
" <td>0.786071</td>\n",
" <td>0.785596</td>\n",
" <td>0.788689</td>\n",
" <td>0.006739</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.092787</td>\n",
" <td>0.001193</td>\n",
" <td>0.017040</td>\n",
" <td>0.000756</td>\n",
" <td>0.1</td>\n",
" <td>{'alpha': 0.1}</td>\n",
" <td>0.733876</td>\n",
" <td>0.780623</td>\n",
" <td>0.788774</td>\n",
" <td>0.786197</td>\n",
" <td>0.785440</td>\n",
" <td>0.774981</td>\n",
" <td>0.020722</td>\n",
" <td>5</td>\n",
" <td>0.800620</td>\n",
" <td>0.784410</td>\n",
" <td>0.782232</td>\n",
" <td>0.784552</td>\n",
" <td>0.784071</td>\n",
" <td>0.787177</td>\n",
" <td>0.006773</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ...
mean_train_score std_train_score\n",
"0 0.092815 0.001282 ...
0.790176 0.006698\n",
"1 0.093662 0.002202 ...
0.789948 0.006703\n",
"2 0.093880 0.002233 ...
0.789508 0.006716\n",
"3 0.093623 0.001536 ...
0.788689 0.006739\n",
"4 0.092787 0.001193 ...
0.787177 0.006773\n",
"\n",
"[5 rows x 21 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 210
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "nlEgzS204W4y",
"colab_type": "code",
"outputId": "a8f52510-c71e-41c1-e1a9-5766e90e36bb",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 295
}
},
"source": [
"# https://scikit-
learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
#sklearn.metrics.roc_curve\n",
"from sklearn.metrics import roc_curve, auc\n",
"\n",
"\n",
"\n",
"y_train_pred =
np.argmax(clf.best_estimator_.predict_proba(X_train_res),axis=1)
\n",
"y_test_pred =
np.argmax(clf.best_estimator_.predict_proba(x_te_bow.todense()),a
xis=1)\n",
" \n",
"train_fpr, train_tpr, tr_thresholds =
roc_curve(y_train_res, y_train_pred)\n",
"test_fpr, test_tpr, te_thresholds = roc_curve(y_test,
y_test_pred)\n",
"\n",
"plt.plot(train_fpr, train_tpr, label=\"train AUC
=\"+str(auc(train_fpr, train_tpr)))\n",
"plt.plot(test_fpr, test_tpr, label=\"Test AUC
=\"+str(auc(test_fpr, test_tpr)))\n",
"plt.legend()\n",
"plt.xlabel(\"1-specificity\")\n",
"plt.ylabel(\"sensitivity\")\n",
"plt.title(\"ERROR PLOTS\")\n",
"plt.grid()\n",
"plt.show()\n",
"x.add_row(['BOW(over
sampling)',clf.best_params_['alpha'],auc(train_fpr,
train_tpr),auc(test_fpr, test_tpr)])"
],
"execution_count": 211,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYUAAAEWCAYAAACJ0YulAAAABHNCSVQICAgIfAhk
iAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGx
pYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIA
BJREFUeJzs3Xd4VFX6wPHvSQgECCUk1AQIKUCA\nQCBIC1UEAigWQEFEERVXZcEOK
q7r6iq2tYHsT1w7giBdQBQlSEcQpIQEEmpCSYMUSJ15f3/cyRAg\nZRIymZTzeZ48
MLe+Z1Leuffc8x4lImiapmkagJOjA9A0TdMqDp0UNE3TNCudFDRN0zQrnRQ0TdM0\
nK50UNE3TNCudFDRN0zQrnRQ0TdM0K50UtEpDKXVCKZWhlErP9zXHsm6SUspkWZaq
lPpLKXVrvn19\nlFKSb78TSqmZBZxjklLqgFLqslLqnFJqnlKqYb71/1RK5ViOcVE
ptU0p1buImK+Na19eXEqpgUqp\n2CL27aOU+k0plaaUSlFKrVZKdbCsm5CvLRlKKX
P+98WyTV9LfClKqWSl1Fal1E2lee+16kMnBa2y\nuU1E3PJ9Tc23bruIuAENgU+AR
fn/oFs0tGwzBnhZKTUkb4VS6hngLeA5oAHQC2gN/KKUqpnvGN9b\njuEJbASWFBNz
/rj+ByxWSrkXtYMl0fwMrARaAG2Av4CtSilfEVmQ9x4Aw4Ez+d8XpVR94EfgY6AR\
n4AW8CmQVE6tWzemkoFU5ImIGvgHqAgGFbLMbOAQEA1j+iL4K/F1EfhKRHBE5AdwN
+AD3FXCMXGAB\n4KWUamxjXJ8DtQG/YjZ/G/haRD4UkTQRSRaRWcAO4J/FnQtoazn
nQhExiUiGiPwsIvtt2FerxnRS\n0KocpZQz8CCQA5wsZJteQCcg2rKoD+AKLMu/nY
ikA2uBIVzDcvVwP5AEXLAhrhrAw0A6cLSI7epY\n4inoCmRxQbEU4AhgUkp9pZQaX
tyViabl0UlBq2xWWO7l5309km9dL6XURSATeBe4T0Tir9k/USmV\nAWzHuMW0wrLc
E0i0fPq/1lnL+jx3W86TATwCjClkv2vjOgeMB+4UkZQitm+E8bt51oZYCiQiqUBf\
nQID5QIJSapVSqmlx+2rVm04KWmVzh4g0zPc1P9+6HSLSEHAHVgH9CtjfE3ADngEG
Ai6W5YmAp+XT\n/LWaW9bnWWw5T1PgIBBSTMw7LLF6ikgvEdlQzPYXALPlvMXFUig
ROSwik0TEG+OqqAXwgS37atWX\nTgpalWO55fMYMFEp1bWA9SYR+Q/GFcXjlsXbMT
ph78q/rVIqryP31wKOkwhMAf6plCroD3hp479k\niWdsAavvLigWG44ZCXyJkRw0r
VA6KWhVkogkA58B/yhis9nA80opV8vtnFeBj5VSYUopF6WUD8Y9\n/FiMjuuCzhMF
rAeeL22sSinXa74UMBN4QCk1TSlVTynlrpR6HehtibO4Y7ZXSj2jlPK2vG6Jcetq\
nR2nj1KoHnRS0ymb1NeMUlhex7QfACKVU50LWr8G4VfMIgIi8DbyI0R+RCuwETgOD
RaSoRznfAaYo\npZqUsC1gPCqacc2Xn4hsAYZhXLmcxegw7wr0FZFCO6nzSQN6Aju
VUpcwksFBjNtmmlYopSfZ0TRN\n0/LoKwVN0zTNSicFTdM0zUonBU3TNM1KJwVN0z
TNqqCBOhWap6en+Pj4lGrfS5cuUbdu3bINqILT\nba4edJurhxtp8549exJFpNgaX
ZUuKfj4+LB79+5S7RseHs7AgQPLNqAKTre5etBtrh5upM1KqQLr\ngF1L3z7SNE3T
rHRS0DRN06x0UtA0TdOsKl2fQkFycnKIjY0lMzOzyO0aNGjA4cOHyymqikG3uXoo\
naZtdXV3x9vbGxcWl+I21aqVKJIXY2Fjq1auHj48PRi2xgqWlpVGvXr1yjMzxdJur
h5K0WURISkoi\nNjaWNm3a2DkyrbKx2+0jpdTnSql4pdTBQtYrpdRHSqlopdR+pVS
30p4rMzMTDw+PIhOCpmkGpRQe\nHh7FXllr1ZM9+xS+BMKKWD8cY/7cAIya9PNu5G
Q6IWia7fTvi1YYu90+EpHfLfXoC3M7xsTkAuxQ\nSjVUSjUXkYKmINQ0TauWckxmo
g79Sfru70mtG4gxYaD9OLJPwQujVn2eWMuy65KCUmoKxtUETZs2\nJTw8/Kr1DRo0
IC0trdgTmkwmm7YrqYsXL7JkyRIeeeSR4je+xujRo/nf//5Hw4YNS7RfaGgoAQEB\
nfPnll9ZlI0aM4PXXX6dbN+NO3MmTJxk7diy7du0CYPfu3cyaNYv4+Hjq1KlDcHAw
b7/9NnXq1CnR\nuffu3ctjjz1GRkYGQ4cO5e23377uk+eHH37I4sWLAcjNzSUqKop
jx45x+fJlHn30UeLj41FKMWnS\nJB5/3Jj8bPny5bz55ptERUWxceNGazsA3nvvPb
7++mucnZ15+
+23ueWWWwD45ZdfmDFjBiaTiQce\neICnn34ak8lEamoqr732GsuXL8fZ2ZmHHnqI
xx57jJSUFB555BFiY2PJzc1l2rRp3HfffQC8/PLL\nrF+/HrPZzKBBg3j77bdJT08
nLOzKBW9cXBz33HMPb731FqdOneKJJ54gMTERd3d35s+fj5eXV6HH\nUkqxZMkS3n
vvPZRSNGvWjM8+
+wwPDw/279/Pk08+SVZWFjVq1OC9996je/fuRcYLkJqaSo8ePRgx\nYgT/
+c9/rD8H586do3bt2gCsWLGCxo2vH8iamZl53e9SZZKenl6p4y+MiHAmXTh1PoEmC
VvokbGF\nIKdjmEWxsuEk+7dZROz2BfgABwtZ9yPGhCF5r38Fuhd3zJCQELlWRETE
dcsKkpqaatN2JXX8+HHp\n2LFjgetycnLK/HwRERHSqVMnadGihaSnp1uXDxgwQP7
444+r4goMDBQRkXPnzkmrVq1k27Zt1vVL\nliyRc+fOlfj8N910k2zfvl3MZrOEhY
XJ2rVri9x+1apVMmjQIBEROXPmjOzZs0dEjO9HQECAHDp0\nyNquyMjI69px6NAh6
dy5s2RmZsqxY8fE19dXcnNzJTc3V3x9fSUmJkaysrKkc+fOcujQIUlNTZXP\nP/9c
Jk6cKCaTSUREzp8/LyIi//73v+X5558XEZH4+Hhxd3eXrKws2bp1q/Tp08d63F69e
snGjRuv\na0u3bt1k06ZNIiIyZswY+fLLL0VE5Ndff5X77rtPRKTQY+Xk5Ejjxo0l
ISFBRESee+45eeWVV0RE\nZMiQIdb3cc2aNTJgwIAi480zbdo0GT9+vDzyyCPWZde
+f4Wx9femoiro+1NZnbl4WRb/cUpeWPC7\n/OtfM2TLrN5i+kcDkVfqy+nZPSRi6R
ty8dyJG2ozsFts+LvtyCuFOKBlvtfelmWVzsyZM4mJiSE4\nOJghQ4YwcuRIXn75Z
dzd3YmMjOTIkSPccccdnD59mszMTKZPn86UKVOAK2U70tPTGT58OH379mXb\ntm14
eXmxcuVK66e9/BYuXMjEiRM5fPgwK1eu5N577y02xrlz5/LAAw/Qu3dv67IxY8aUu
K1nz54l\nNTWVXr16AXD//fezYsUKhg8fXug+CxcuZPz48QA0b96c5s2N6Yzr1atH
YGAgcXFxdOjQgcDAwAL3\nX7lyJePGjaNWrVq0adMGf39/69WPv78/vr6+AIwbN46
VK1cydepU5s2bx3fffYeTk9Ft1qSJMSma\nUoq0tDREhPT0dBo1akSNGjVQSpGZmU
l2djYiQk5ODk2bNr0qjiNHjhAfH0+/fv0AiIiIsH46HzRo\nEHfccYf1HAUdK+
+X7tKlS3h4eJCamoq/v791n9TUVABSUlJo0aJFkfEC7Nmzh/PnzxMWFsa2bdts\n+
O5pFUVKRg7bY5LYFpPIrqNx+CZv4XbnbfzTeR81ySWtfmvSOz1N/ZvuxdvT/8qOh4
/bPTZHJoVV\nwFSl1CKMaQNTpAz6E15dfYiIM6kFrjOZTDg7O5f4mB1a1OeV2zoWu
n727NkcPHiQffv2AUZ9kj//\n/JODBw9aH/n7/PPPadSoERkZGdx0002MHj0aDw+P
q45z9OhRFi5cyPz587n77rtZunTpVbcK8nz/\n/ff88ssvREZG8vHHH9uUFA4ePMg
DDzxQ7HZRUVHcc889Ba4LDw8nLi4Ob29v6zJvb2/i4grP5Zcv\nX+ann35izpw516
07ceIEe/fupWfPnkXGFBcXZ01C156zZcuWVy3fuXMnADExMXz//fcsX76cxo0b\n8
9FHHxEQEMDUqVMZNWoULVq0IC0tje+//x4nJyd69+7NoEGDaN68OSLC1KlTr0tSix
Yt4p577rHe\nKuvSpQvLli1j+vTpLF+
+nLS0NJKSkoo81rx58wgKCqJu3boEBAQwd+5cAD744AOGDRvGs88+i9ls\ntv6RLy
xes9nMM888w7fffsuGDRuue88efPBBnJ2dGT16NLNmzdIdyw6WmWPiz1MX2BqdyJb
oJCJi\nk+itDnKXy3ZecPqD2jUzyKnThBpBU6DzWOq16AoO+p7ZLSkopRZi9Ih4Kq
VigVcAFwAR+S+wFhgB\nRAOXgQftFYsj9OjR46pnwD/66COWLzemEz59+jRHjx69L
im0adOG4OBgAEJCQjhx4sR1x929ezee\nnp60atUKLy8vJk+eTHJyMo0aNSrwF7+k
fwzatWtnTW5lYfXq1YSGhtKoUaOrlqenpzN69Gg+
+OAD\n6tevX2bny5OVlYWrqyu7d+9m2bJlTJ48mc2bN7N+/XqCg4P57bffiImJYci
QIfTr14/4+HgOHz5M\nbGwsAEOGDGHz5s3WqwIwksI333xjff3uu+8ydepUvvzyS/
r374+XlxfOzs5ER0cXeKxevXoxb948\n9u7di6+vL3//+9958803mTVrFvPmzeP99
99n9OjRLF68mIceeogNGzYUGu/XX3/NiBEjrkrQeRYs\nWICXlxdpaWmMHj2ab775
hvvvv7/M32OtcGazEHE2lS3RiWyNTmTX8WSyck10d47m0fq7Gei2hTo5\nF5Ba9VE
dxkDQWFx8+oJTyT+0ljV7Pn00vpj1AjxR1uct6hN9eQ5qyl/eNjw8nA0bNrB9+3bq
1KnD\nwIEDC3xGvFatWtb/Ozs7k5GRcd02CxcuJDIykrzy4ampqSxdupRHHnkEDw8
PLly4YN02OTnZmng6\nduzInj17uP3224uMu7grBS8vL+sfOzAGDuZ1rhZk0aJF1l
tHeXJychg9ejQTJkzgrrvuKjIeAC8v\nL06fvvJMQv5zFrbc29vbeuw777yTBx80P
nN88cUXzJw5E6UU/v7+tGnThsjISDZt2kSvXr1wc3MD\nYPjw4Wzfvt2aFP766y9y
c3MJCQmxnq9FixYsW7YMMJLc0qVLadiwIfPnzy/wWK6urgD4+fkBcPfd\ndzN79mw
AvvrqKz788EMAxo4dy8MPP1xkvNu3b2fz5s188sknpKenk52dTaNGjZg9e7b1PahX
rx73\n3nsvu3bt0knBzkSEU8mXrUlge0wSFy7nADDUM5nPvHfRPe03al+KhRxXaBs
GQWNRAUOgRq1ijl6+\ndO2jMlCvXr0in2pKSUnB3d2dOnXqEBkZyY4dO0p1HrPZzO
LFizlw4AAnTpzgxIkTrFy5koULFwIw\ncOBAvv3227yOe7766ivrH7WpU6fy1VdfW
W+vACxbtozz589fdY68K4WCvho2bEjz5s2pX78+O3bs\nQET4+uuvC000KSkpbNq0
6ar1IsJDDz1EYGAgTz/9tE3tHjVqFIsWLSIrK4vjx49z9OhRevTowU03\n3cTRo0c
5fvw42dnZLFq0iFGjRgFwxx13sHHjRgA2bdpE27ZtAWjVqhW//vorAOfPnycqKgpf
X19a\ntWrFpk2byM3NJScnh02bNl11+yh/v0iexMREzGYzAG++
+SaTJ0+2nqOgY3l5eREREUFCQgJgPDmV\nd44WLVqwadMmAH777TcCAgKKjHfBggW
cOnWKEydO8O677zJu3Dhmz55Nbm4uiYmJgJF8f/zxRzp1\n6mTT+6yVTGJ6Fqv+Os
PMpfvp9/ZGBrwTzkvLD7L31EXG+Alruu3mqPfrfJo+lX7nF1C7eXu48//g\n2aNw9
1cQeGuFSwhQRcpcOJqHhwehoaF06tSJ4cOHM3LkyKvWh4WF8d///pfAwEDatWt31f
3xkti8\neTNeXl7WTkiA/v37ExERwdmzZ5kyZQqRkZF06dIFpRTdu3fnxRdfBIxHe
RctWsSzzz5LfHw8Tk5O\n9O/f/6rHLW31ySefMGnSJDIyMhg+fLi1k/m///0vAH/7
298A4xHToUOHXnXVtHXrVr755huCgoKs\nt8reeOMNRowYwfLly/n73/9OQkICI0e
OJDg4mPXr19OxY0fuvvtuOnToQI0aNZg7d661b2jOnDkM\nGzYMk8nE5MmT6dixI2
lpacycOZMJEybw/vvv4+bmxmeffQYYj4pOmjSJoKAgRIS33noLT09PxowZ\nw2+//
UZQUBBKKcLCwrjtttuscS9evJi1a9de9T6Eh4fzwgsvoJSif//
+1v6Boo71yiuv0L9/f1xc\nXGjdurX1keL58+czffp0cnNzcXV15dNPPy0y3sJkZW
UxbNgwcnJyMJlM3HLLLaV6VFq73uXsXHYe\nT2abpV/g8Fmj77Keaw36+HkwrZc7g
8zb8Dy+GnV0u7FTy54w4l3ocAe4FTu/TYWg8j5VVhbdu3eX\nayfZOXz4cKFPruSn
a+JUD7rNtrH196aisvckOzkmM/tjL7I1Ookt0YnsPXWBHJNQ09mJ7j7uhPp7\n0q9
1bTqlbcHp4A8Q8xuYc6FxewgaC0FjwN2nTGO6wUl29ohI9+K201cKmqZpGLc2o+PT
rf0CO44l\nk56Vi1LQqUUDHurrS6i/B9293ah9KhwOfApb10JuBjRoCb2nGsmgaUe
HPTlUFnRS0DSt2jqbksHW\n6CS2WhJBfFoWAD4edRgV3IK+/p709vXAvXYNOLUNDs
yDpSsg8yLU8YCuE6DTGOM2kVPV6KLVSUHT\ntGojJSOHHceSLOMFEjmWcAkAj7o16
ePvSV9/D/r4edKyUR0QgXP7YetcOLAU0s6AS12jgzhoLPgO\nBOeqNx+FTgqaplVZ
Wbkm9py8YLkSSGJ/7EXMArVdnOnp24h7e7Qi1N+Tdk3r4eRkueWTFAOblsKB\nJZB
4BJxcIGAIBL1uPEpas27RJ63kdFLQNK3KyBs0lncl8MeJZDJzzDg7KYJbNmTqzQGE
+nnQtZU7\nNWvku92Tdg4OLTcSQdweQEHrUOj9BASOgjqNCj1nVaOTgqZpldqppCu
DxrbFJFoHjbVt6sb4Hq0I\n9fOkp28j6rlec6sn4yJE/mgkguO/g5ihWWcY8hp0ug
saXD9avDqoGj0jDpaUlERwcDDBwcE0a9YM\nLy8v6+vs7Gybj/P5559z7ty5Qtfnj
VqdNWvWVcu9vb25ePGi9fWGDRusxdkA1qxZQ0hICB07diQ4\nOJgZM2aUoHVXrF27
lnbt2uHv788777xT6HYLFy6kQ4cOdOzY0TqS9vjx43Tr1o3g4GA6derE/Pnz\nr9t
vxIgR1rELed5//33atWtHhw4drGMuAPbt20evXr3o2LEjQUFB5OTkkJaWxogRI6xt
femll6zb\nz5kzh86dOxMcHEy/fv2IjIwE4KeffqJbt24EBQUREhJSYFnia+NKSkp
i8ODBBAQEMGzYMFJSUgDj\n6ZXHH38cf39/OnfufFW5kKeffpqOHTsSGBjIU089ZR
1gmJWVxcMPP0y7du1o3749K1asKPJ9zM3N\nxdnZ2frzdeedd14X7+OPP17iUuyVS
VJ6Fqv/OsPnB7Po+9Zv9H9nIy8uP8Cekxe4uX1T3r+nC7te\nHMzPTw3glds6ckuH
plcSQk4GRKyERRPg3QBY+QRcOAn9noUndsHfNkPotGqbEAD7ls62x1dFLJ2d\n3yu
vvCLvvPNOqfYNDQ2VvXv3Frp+1apVEhoaKv7+/lct9/LykgsXLlhf//LLL3L77beL
iFHG2d/f\nX6KiokREJDc3Vz755JMSx5adnS1t2rSREydOSGZmpnTq1Ml6zPwOHz4
s3bp1s8aTV7I6MzNTMjMz\nRUQkJSVFWrZsaV0nIvL999/L+PHjpUuXLtZlP//8sw
wdOtS6X9722dnZ0qlTJ9m/f7+IiCQkJIjJ\nZJK0tDQJDw+X1NRUyczMlN69e8vPP
/9sPWeepUuXysiRI0VEZM+ePXLmzBkREdm3b594e3tf1Z6C\n4nrqqaes3+PXXntN
XnzxRRERWblypdx6660iIrJ582bp06ePiIhs2rRJ+vXrJyaTSXJycuSmm26S\nzZs
3i4jIiy+
+aC2fbTKZJDExscj3MScnRxo0aHDd+573s71jxw657777CtzmWpWldPalrBzZGHle
\nXv/xkIR98Lu0nvGjtJ7xo7R/6Ud55Ks/5KttxyU6Pk3MZnPBB8jNEYn+VWT5YyJ
veIu8Ul/knQCR\ntTNETu8WKWy/Cqiql86uFr766ivmzp1LdnY2ffr0Yc6cOZjNZh
588EH27duHiDBlyhSaNm3Kvn37\nuOeee6hduza7du2iZs2aVx1r4cKFPP3007z//
vvs2rWLHj16FHv+999/n5dfftla5sHZ2ZnHHnus\nxO3YsWMHgYGBtG7dGjDq9qxc
uZLnnnvuqu0+/fRT/v73v1s/qeaVrM5f1ykrKyv/vBqkpqby0Ucf\nMW/ePCZOnGj
dbt68ebzwwgvWffOOtW7dOkJCQggKCgKwjvB1c3NjwIABpKWlUatWLbp27Wqt05S/
\n6N6lS5eshQLzT+QTFBREeno6OTk5uLi4FBrXypUrraVKHnjgAcLCwvj3v//NypU
rrZ/o+/bty7lz\n50hISLiqlLbJZCI3N9fali+//JLo6GgAnJycrLWqCnsfi5Kbm8
uMGTNYsGABq1evLnb7iirXZOav\n2BRrv0D+QWMhrd15blg7Qv09STq6l8E3FzIWS
8ToGziwBA4ug0vxUKs+dBhlPDnk069CFJ+riKpe\nUlg3E84dKHBVbVMuOJeiyc2C
YPjsEu928OBBli9fzrZt26hRowZTpkxh0aJF+Pn5kZiYyIEDRpwX\nL16kYcOGfPz
xx8yZM+e6WyhglKAODw+33mJauHChTUnh8OHD/POf/yx2uw0bNvDss89et7xevXps
\n3ryZuLi468pU//XXX9dtf+TIEVxcXAgNDcVsNvPqq68ydOhQwCiVPWrUKKKjo/n
Pf/5jna/gpZde\nYsaMGdfNHXHkyBHCw8Ot69577z1CQkI4cuQIIsLQoUNJTExkwo
QJPPPMM1fte+HCBdauXcvzzz9v\nXfbRRx/x4YcfkpOTY62LlN/ixYvp2bMnLi4uR
caVlJRkncnMy8uLs2eNiu8FvUdxcXH069ePPn36\n0KxZM0SEJ598krZt25KYmEjN
mjV54YUX+P333wkICGDOnDk0bty4yPfx0qVLhISEULNmTV588UVr\nCY0PP/yQ0aN
HXzcPREUnVw0aS2LnsSTSLIPGOraoz+S+bejr70n31o2oXfPKH/LwmAIGiCVEGYng
\nwBK4cAKca0E7o/gc/kPAxbX8GlZJVb2kUIFs2LCBP/74g+7djU8zGRkZtGzZkmH
DhhEVFcW0adMY\nOXKk9Ze9KKtWrWLIkCG4uroyduxYQkJCeO+993ByciqTktm33H
JLmZTMzs3N5dixY2zatImTJ08y\nYMAAIiIiqF+/Pj4+Puzfv5+4uDjuvPNOxowZw
8mTJ4mNjeW2226zfmLOf6yUlBR27tzJ9u3bueee\ne4iOjiY3N5etW7eyc+dOXF1d
GTRoEN27d2fAgAGAUQhu3LhxPPPMM9YrG4Bp06Yxbdo0vv76a954\n4w3+97//Wdc
dOHCAWbNm8csvvwDGBDaFxVVSUVFRxMTEEBcXZ61HNGzYMHx9fTlx4gQDBw7kgw8+
\n4O233+b555/niy+
+KPR9rFevHidPnqRFixZER0czePBggoKCyMzMZMWKFYSHh1uvwCqycymZ1gFj\nW/
INGmvtUYfbglsQ6udJbz8PGtWtWcyRgJRYOGh5hPTcAVBO0GYA9H/eGFPg2sDOral
aql5SKOIT\nfUY518QRESZPnsxrr7123br9+/ezbt065s6dy9KlS60F0AqzcOFCdu
zYYS2ZnZCQwKZNmxg0aJC1\nZHberYbk5GTrLZX27duzZ88eOnYsvKQ4FH+lUFT56
vy8vb0ZMGAANWrUwM/PDz8/P2JiYujatat1\nGy8vL9q3b8+WLVuIjY1l586d+Pj4
kJubS3x8PIMHD+bXX3+9qvx17969ycnJ4cKFC9Zz5N1qGT58\nOH/+
+ScDBgxARHjiiSfo1KkTU6dOLbCt9957L9OnT7cmhVOnTnHXXXfx7bffWufA2L59e
6FxeXh4\nkJCQQOPGjYmLi7POJJf3HuUVPMx7jz777DP69OljLQwYFhbGjh076NWr
F3Xq1LFWkR07dqz1AYGi\n3se8goj+/v7069ePffv2kZWVxdGjR61luVNTU2nXrh1
RUVFFft/LS2pmDjtirgwai7lm0Fionweh\n/pZBY7a4lESLuHXw+VvGSGMAr+4Q9h
Z0vBPqVa6rpQrFlo6HivRVmTqa9+/fL23btrXOyZuYmCgn\nT56U+Ph4ayx79+6Vv
DaFhYXJ77//ft0xL1y4IE2aNJHs7Gzrsk8//dQ6L+/06dPl1VdfFRGjI3LU\nqFGy
YMECETE6PP39/eXo0aMiYnQ0z5s3r8Ttys7OFh8fn6s6miMjI6/bbvXq1TJ58mQRM
TpH8zrB\nT58+LRkZGdb3wc/Pzzo3c56jR49e1aH78ccfW9sVEREhrVq1su7frVs3
uXz5suTk5MjAgQPlp59+\nEhGRGTNmyJ133mmdmznPkSNHrP9ftmyZ9OzZU0REkpO
TpVOnTrJixYpC235tXE8+
+eRVHc0vvPCC\niIisWLHiqo7m3r17i4jIt99+K8OGDZOcnBzJzs6W/v37W+djHj1
6tHXO5/nz58u4ceOKfB+TkpKs\nHe/x8fHi6+srkZGRV/1sF9YZfS17djRn5uTKtu
hEeeenSLl9zhZpM9PSOTxrndz/v53y6aYYORSX\nIiZTCTp5s9JF9i8RWXC3yKuNj
A7jj28SCX9bJCnGbm2pSMqjo9nhf+RL+lWZkoKIyIIFC6RLly4S\nFBQk3bp1k127
dsmePXskODgiEOFLAAAgAElEQVRYunTpIsHBwbJ+/XoRMZ50adu2rXTp0uWqydk/\
n+
+wzmTBhwlXniY+Pl8aNG0t2drZcuHBB7rnnHuncubMEBQXJjBkzrE9ipKamysqVK6
Vr164SGBgo\ngYGBMnPmzFK1bdWqVRIQECC+vr4ye/Zs6/IXX3xR1qxZIyIiZrNZp
k2bJoGBgRIUFCSLFy8WEZF1\n69ZJp06drDF+9tln1x3/2j+
+mZmZMm7cOOnYsaN069ZNwsPDreu+/PJLCQwMlI4dO1rbc/z4cQGk\nXbt20qVLF+
nSpYt8/vnnIiLy+OOPS4cOHaRLly5y8803W39mXnnlFalbt651+y5dulifACosrvj
4\neBk4cKD4+/vLkCFDJDk5WUSMp4ceffRR8fX1lU6dOsmff/4pIkYifvjhh63v/7
PPPms91rFjx6Rv\n374SFBQkgwcPllOnThX5Pv7++
+9XvY9ffPGFiIjDk4LJZJYDsRflv+HRct9nO6TdrLXSesaP4vvC\nGrlz7hZ5b32k
7IhJlKwcU/EHyy83WyTqJ5EfHhJ5vZmRCN7rIPLzy7Jr9eeV6smhslAeSUGXzq7i\
ndJurB0eUzi5s0FhAEzdC/T3p61/IoLHimM1warvRRxCxEjKSoba7cVsoaCy07AVO
TnYvnV0R6dLZ\nmqZVGEnpWWyLSWJbjNEvcDrZmC62WX1Xbm7flFB/o1+gaf1SPOE
jYnQSH1hidBqnxoFLHWg/0lJ8\nbhDUsKHTWbthOilomlagy9m57DqezLaYJLYcTS
Qi30xjvX09eLivL6H+nvg1rlvip92sko8ZFUgP\nLIHEKHCqAX6D4ZZXod1wqOVWh
i3SbFFlkoKIlP4HU9OqmYJuG+eazOyPS2HrUeNK4M9rBo09O7Qt\nof6eBHk1oIbz
DVTISY83BpQdWAJxllvBrfrAyP8Y01bW9Sj9sbUbViWSgqurK0lJSXh4eOjEoGnF\
nEBGSkpJwdXUlOj6NLUeNOYfzDxrr0Lw+k0PbEOrvyU0+Vw8aK5XM1CvF546FW4rP
BRlXBJ1GQ8OW\nxR5CKx9VIil4e3sTGxtLQkJCkdtlZmbi6lq9RjTqNlcPtrbZZBY
yc0ycu2Tm/e2JxCRGANCqUR1u\n7WKZaczWQWPFycmEoz8bieDIejBlGXMW93vGmK
2sSfsbP4dW5qpEUnBxcbEOOipKeHj4VYOoqgPd\n5uqhsDbnDRrbFmNMPh8dnw5Ao
7o16ePnwSP9PUs2aKw4ZpNRhvrAD3B4FWSlQt3G0P1Bo8PYK6RS\nz19cHVSJpKBp
miEr18SfJy9anxD66/SVmcZ6tGnE3d29CfX3JLBZ/Sszjd0oEYj707giOLQM0s9D\
nzXoQeBt0Hgs+/UtXc0xzCP2d0rRKLG+msXXHc/j82C52HU+yzjTWxbsBTwzyJ9Tf
k66tGlKrRhlX\nBU04kq/43HFwrgkBQ40rgrbDwKV28cfQKhydFDStkjmdbAwa2xK
dyPaYJJIvGRM5+TfJYNxNxpzD\nPX0bUb+kg8ZskRKXr/jcfkvxuf5GP0HgbVC76k
7uU13opKBpFVzypWy2xVypKJo3aKxp/VoMbNeY\nvv6eqPgj3Bk2wD4BXE42RhYf+
AFObgXE6BsIm20pPtfMPufVHEInBU2rYDKyTew6kWwtLX3ojGXQ\nWK0a9PLLGzTm
gV9jN+sj2OHhN1be+zrZlyBqnZEIojeAOQc8AmDQi8YjpB5+ZXs+rcLQSUHTHCxv\
n0Ng2y5XAnycvkm0y4+KsCGntzjND2hIa4EnnGx00VhxTDsRsNG4NRa6BnEtQrwX0
+pvRT9Css35y\nqBrQSUHTypmIEJOQztZo4zHRHTHGoDEwZhqbFOpjGTTmTp2adv4
VNZvh9E7Lk0PLjeJzrg0haIyR\nCFqHgpMdE5FW4dj1J04pFQZ8CDgDn4nI7GvWtw
K+AhpatpkpImvtGZOmOcL51Exrn8DW6ETOpxoz\njRmDxpoT6u9Jb18PPNxqFXOkM
iAC5w9dKT6Xchpq1Ib2I4xBZf6DoUY5xKFVSHZLCkopZ2AuMASI\nBf5QSq0SkYh8
m80CFovIPKVUB2At4GOvmDStvKRm5rDzWLI1EeQNGnOv40IfS1npUD9PWnmU0aAx\
nW1w4YfQRHPgBEg6DcjYSwOB/QLsRuvicBtj3SqEHEC0ixwCUUouA24H8SUGA+pb/
NwDO2DEeTbOb\nrFwTe09dtCaB/bEpmMyCq4sTPdp4cHd3b/r4edKheRkOGrNFeoJ
xW+jAEojdZSxr1RtGvmcpPudZ\nfrFolYLdJtlRSo0BwkTkYcvriUBPEZmab5vmwM
+AO1AXuEVE9hRwrCnAFICmTZuGLFq0qFQxpaen\n4+ZWvT4N6Tbbh1mE02lmIpLMH
EoyceSCiWwTKMC3gRMdPJ3p0MgZf3cnXMohCeRvs3PuZTwTd9D0\n/O+4X/gLhZn0
uj6cb9qf+Cb9yHJtYvd4yoP+2S6ZQYMGVYpJdsYDX4rIe0qp3sA3SqlOImLOv5GI\
nfAp8CsbMa6WdeUjP1FQ92KvNp5MvW68Etl01aMyN8T08LIPGPGhQ2w6Dxoqx6bdf
GNA03VJ87ifI\nzYSGraDfU9BpDG5NO+AGVKUHSfXPtn3YMynEAfnr4XpbluX3EBA
GICLblVKugCcQb8e4NM0myZey\n2W4pJLc1OpFTyZcBy6Cxto0J9TeKyTVr4KCKrG
YTnNgCB5YQun8ZmC5BHU/oOtEybWUP/QipVmL2\nTAp/AAFKqTYYyWAccO8125wCB
gNfKqUCAVeg6PrXmmYnGdkm/jhxpXM44mwqIsagsZ6+HkwO9aFv\ngOdVg8bKnQic
2Wt0Fh9cCunnoKYbiZ49aHbLVPAdAM7lf6WiVR12SwoikquUmgqsx3jc9HMROaSU\
n+hewW0RWAc8A85VST2F0Ok8Se3VyaNo1ck1mDsSlWJNA/kFj3Vq58/Qt5TRozBaJ
0VeKzyXH5Cs+\nNwYChhG5bRfNAgY6NkatSrBrn4JlzMHaa5b9I9//I4BQe8agaXm
MQWOXrElgx7Ek0jKNQWMdmhuD\nxvr4edCjTSP7DxqzReqZK9NWnt0HKGjTD/o+aS
k+5+7oCLUqqAL85Gua/eQfNLYtOolzqZkAeLvX\n5tbOzenj50kfv3IaNGaLjAsQs
cpIBCe2AAItusKwN4zic/VbODpCrYrTSUGrUlIzc9gbn0v4qkNs\njU7kaP5BY35G
x3Bf/3IeNFac7MvGE0MHfjCmrzTnQCM/GDDD6DD29Hd0hFo1opOCVqnlDRrLKyb3\
nl3XQ2Clu8mnEmBBjprFyHzRWHFOuMYH9gSXGhPbZ6eDWDHo+alQhbdFVPzmkOYRO
ClqlYjYLkefS\nrLeEdh1PJiPHhJOCzt4NeWyAH3XTY5l8+8Cyn2nsRonA6V1Xis9
dTgTXBtDprnzF5ypYzFq1o5OC\nVuHlHzS2PSaJJMugMb/GdY3yEf6e9Mo3aCw8/G
zFSgjnIyzF536Ai6eghiu0G24kAv9bdPE5rULR\nSUGrcC5cymabZdDYtphETiYZg
8aa1KvFgLaN6ePvSai/B80bVOA5gC+ctExb+QPEHzKKz/kNgkEv\nGcXnXOsXfwxN
cwCdFDSHsw4ai7ky05gIuNWqQS/fRkzq40Nff0/8mzhw0JgtLiVais/9AKd3GMta\
n9oQR7xrF59waOzY+TbOBTgpaucsbNLYtJoktRxPZc/KCddBY11buPHVLW0L9Peni
XQEGjRUnKw0i\n1xq3h2J+AzFB4/Zw88vGwDJ3H0dHqGklopOCZnd5g8a2xSSy5Wg
i2/MNGgtsXp8H+rQm1N+z4gwa\nK05utjFv8YElxjzGuRnQoCWETjMmqWnaUT85pF
ValeA3UKuM4lMz2RqTyJajSWyNTrQOGvNqWJuR\nQc3p428MGvOsKIPGimM2w8mtR
iKIWAmZF6GOB3SdYHQYe/fQ01ZqVYJOClqZSLPMNJZXUTRv0FjD\nOi6E+nnSx9/D
GDTWqE7F7hfITwTO/mV5cmgZpJ0Bl7oQeKuRCHwH6uJzWpWjk4JWKtm5ZvaeusDW\
n6ES2xiSx7/RFTGahVg0nerRpxOgQb/pWxEFjtkiKsUxbuQSSjoKTCwQMgaDXoW0Y
1Kzr6Ag1zW50\nUtBskjdobFuMMV5g57Erg8aCvBvytwG+hPp70q2VO64uFWiMgK3
Szl0pPnfmT0AZg8n6TIXAUVCn\nkaMj1LRyoZOCViizWVj5Vxy/RSawLTrROmjMt3
FdxnY3ykf0ctBMY2Ui4yIcXm0pPrcZxAzNu8DQ\n16HjXdDAy9ERalq500lBK9R3u
04xa8VBGterRX/rTGMVfNBYcXIy4Mh6IxEc/RlM2eDeBvo/Zzw5\n1LitoyPUNIfS
SUErUFpmDu//coQebRrx/ZReladzuCCmXDi+yegnOLwastPArSnc9LAxlqBFN/0I\
nqaZZ6KSgFeiT8BiSLmXz5cgOlTchiMDWD2D7XLiUALXqQ8fbjSeHfPrp4nOaVgCd
FLTrnE6+zP+2\nHOeurl4EeTdwdDilt/ld+O11o+hctweM6StdXB0dlaZVaDopaNd
5e30UTgqeHdbO0aGU3q75RkLo\nPA7umKcHlmmajXRS0K7y56kLrP7rDNNu9qdFw8
rZodzkfDgcft+oRnr7HJ0QNK0E9G+LZiUivP5j\nBI3r1eLRAX6ODqd0otYRePhDo
89gzBd6xLGmlZBOCprVmgNn+fPURZ4d2pa6tSrhReSJLbBkEmn1\nfGH8Qt1/oGml
oJOCBkBmjonZ6yJp36weY0JaOjqckjuzF74bBw1bcyDoFahVz9ERaVqlpJOCBsBX\
n204QeyGDWSM74FzZahUlHIFvR0Ntd5i4nJyaelYzTSstnRQ0ktKzmPNbNIPbN6Fv
gKejwymZi6fg\nmzuM6S7vX6FLU2jaDaqEN461svbBhqNczjHxwohAR4dSMunx8PU
dkJ0Ok9aARyXtHNe0CkQnhWou\nOj6N73adYkLPVvg3cXN0OLbLuAjf3gWpZ+D+ld
AsyNERaVqVoJNCNffG2kjq1HRm+uAAR4diu+zL\nsHAcxEfCvYugVU9HR6RpVYbuU
6jGNh9N4LfIeP5+sz8elWVazNxsWHw/nN4Jo+cbJSw0TSsz+kqh\nmjKZhX+vOUzL
RrV5oI+Po8OxjdkEyx+F6F/gto+g452OjkjTqhybrhSUUsuUUiOVUiW6slBKhSml\
nopRS0UqpmYVsc7dSKkIpdUgp9V1Jjq+V3pLdp4k8l8bMsEBq1agE1UJFYM3TcGgZ
DPkXhDzg6Ig0\nrUqy9Y/8J8C9wFGl1GylVLGV0pRSzsBcYDjQARivlOpwzTYBwAt
AqIh0BJ4sSfBa6aRn5fLeL0cI\nae3OiKBmjg7HNr+
+Cnu+hL5PQ+h0R0ejaVWWTUlBRDaIyASgG3AC2KCU2qaUelApVVhxmR5AtIgc\nE5
FsYBFw+zXbPALMFZELlvPEl6YRWsn836YYEtKymDUysHLMlbDlA9jyPnSfDIP/4eh
oNK1KUyJi\n24ZKeQD3AROBM8ACoC8QJCIDC9h+DBAmIg9bXk8EeorI1HzbrACOAK
GAM/BPEfmpgGNNAaYANG3a\nNGTRokUlaOIV6enpuLlVoscuy8C1bU7KMDNzcwYhT
Z35W5eKXxuo+ZmfaXdkLueb9ONw4FPGILVi\n6O9z9aDbXDKDBg3aIyLdi91QRIr9
ApYDERi3eppfs253IfuMAT7L93oiMOeabX60HNsFaAOcBhoW\nFUtISIiU1saNG0u
9b2V1bZufXLRXAl5aK6eTLzkmoJI4sFTklQYi34wWycmyeTf9fa4edJtLprC/\n1d
d+2fr00XwRWZt/gVKqlohkSeGZJw7IX1nN27Isv1hgp4jkAMeVUkeAAOAPG+PSSmB
/7EWW743j\n8YF+eLvXcXQ4RTu6AZZNgVa94O6voUZNR0ekadWCrR3NrxewbHsx+/
wBBCil2iilagLjgFXXbLMC\nGAiglPIE2gLHbIxJKwER4fUfD+PpVpPHBlbwchCnd
sD390GT9jB+EdSs4AlM06qQIq8UlFLNAC+g\ntlKqK5DXK1kfKPI3VURylVJTgfUY
/QWfi8ghpdS/MC5jVlnWDVVKRQAm4DkRSbqhFmkFWn/oHLtO\nJPPvOztRz7UCTzx
z7gAsuNsobHffcqjd0NERaVq1Utzto2HAJIxbP//JtzwNeLG4g1tuOa29Ztk/\n8v
1fgKctX5qdZOeaeXNdJG2bunFP9wo8V0JSDHxzJ9Ryg4krwK2xoyPStGqnyKQgIl8
BXymlRovI\n0nKKSStjX28/wcmky3w1uQc1nCtoZZOUOKPiqZiNhNCwAicvTavCir
t9dJ+IfAv4KKWu+zQvIv8p\nYDetAknPFj7adpQBbRszoG0F/eR9Kcm4Qsi4AJN+h
MZtHR2RplVbxd0+qmv5t3o9DFyFrIzJJj0r\nl5dGVtC5EjJTjRLYF0/CfcugRbCj
I9K0aq2420f/Z/nvJyKSUA7xaGXoWEI6v53KZVyPVrRtWgHn\nLM7JgIXj4fxBGPc
d+IQ6OiJNq/ZsvcG8VSn1s1LqIaWUu10j0srMm+sicXGCp26pgLdjTDmw5EE4\nuR
Xu+C+0HeboiDRNw/baR22BWUBHYI9S6kel1H12jUy7IdtiEvkl4jy3+rnQuF4Fmyv
BbIaVT8CR\ndTDyXeg81tERaZpmYfOjKCKyS0Sexih0lwx8ZbeotBtiMhsD1bwa1m
Zo6wo2JkEEfpoB+7+Hm2fB\nTQ87OiJN0/KxdT6F+kqpB5RS64BtwFmM5KBVQMv+j
CXibCrPh7WjpnMFq4Ia/ibs+hR6T4V+zzo6\nGk3TrmHrlcJfQDDwLxFpKyIzRGSP
HePSSulydi7v/hxFcMuGjOrSwtHhXG37J7DpLeh6Hwx9HSpD\n2W5Nq2ZsLYjnaxl
9rFVwn/5+jPOpWXwyoVvFmith7wJY/wIEjjKm0qxIsWmaZlXc4LUPRORJYJVS\n6r
qkICKj7BaZVmLnUjL5v03HGNm5OSGtGzk6nCsOr4ZVU8F3EIz+DJwqwfSfmlZNFXe
l8I3l33ft\nHYh24979OQqTWZgZ1t7RoVxxLBx+mAxeIXDPt1Cjgj0JpWnaVYobvJ
bXbxAsIh/mX6eUmg5ssldg\nWskcjEth6Z+xTOnnS8tGFaTUdOxuWHgveATAhCVGo
TtN0yo0WzuaHyhg2aQyjEO7ASLCv9ccxr1O\nTR4f5O/ocAznI+Db0eDWBCYug9p6
zKOmVQbF9SmMB+4F2iil8k+QUw9jrIJWAWw4HM/2Y0m8dntH\nGtSuAOMSko8bBe5
quML9K6BeM0dHpGmajYrrU8gbk+AJvJdveRqw315BabbLMZl5c+1h/BrXZXyP\nVo
4OB9LOwTd3gCkLHlwH7j6OjkjTtBIork/hJHAS6F0+4WgltWDHSY4lXuLzSd0dP1f
C5WTjCiE9\nAR5YDU0qaGVWTdMKVdztoy0i0lcplQbkfyRVYUycVt+u0WlFSrmcww
e/HqWvvyeD2jVxbDBZ6bBg\nLCRFG53K3iGOjUfTtFIp7kqhr+XfClh3Wfv4t6OkZ
OTw0shAxw5Uy82C7yfAmT/h7m/Ad6DjYtE0\n7YbYWvvITylVy/L/gUqpaUopPaO6
A51IvMRX209wd0hLAps78ILNlAtLHzLGI9w+FwJvdVwsmqbd\nMFtvQi8FTEopf+B
ToCXwnd2i0or11k+RuDg78cxQB86VIAKrpxsjlsNmQ/C9jotF07QyYWtSMItI\nLn
An8LGIPAc0t19YWlF2HU9m3cFzPDbAjyb1XR0ThAj8PAv2fQsDZkCvxxwTh6ZpZcr
WpJBjGbPw\nAPCjZVkFeCC+
+jGbhdfXRNC8gSsP9/N1XCCb34Xtc6DHozDwBcfFoWlambI1KTyI8Vjqv0XkuFKq\
nDVfqImnlaOVfceyPTeG5Ye2oXdNBheV2zYffXofO44zbRrriqaZVGTaVzhaRCGBa
vtfHgbfsFZRW\nsIxsE2//FEWQVwPuCPZyTBD7F8PaZ6HdCLh9Djg5eGyEpmllyqa
koJQKBf4JtLbskzdOwYH3L6qf\n/205xtmUTD64JxgnJwd8Oo9aB8v/Bj79YMwX4K
zvIGpaVWPrJDv/A54C9gAm+4WjFSY+LZNPwmMI\n69iMnr4e5R/AiS2wZBI07wzjF
4KLgzq4NU2zK1uTQoqIrLNrJFqR/vPzEXJMZmYOd8BcCWf2wnfj\noGFrmLAUaumx
jJpWVdmaFDYqpd4BlgFZeQtF5E+7RKVd5fDZVBbvPs2DoW3w8axbvidPOGKUwK7t\
nDhOXQ10HXKVomlZubE0KPS3/ds+3TICbyzYc7Vp5cyXUr+3CtJsDyvfkF08ZFU+V
s1ECu4GDOrc1\nTSs3tj59NMjegWgFC49KYEt0Iq/c1oEGdcqxYzc9Hr6+A7LTYdI
a8PArv3NrmuYwttY+aqqU+p9S\nap3ldQel1EM27BemlIpSSkUrpWYWsd1opZQopb
oXtk11lGsy8+
+1h2njWZcJPVuX34kzLsK3d0Hq\nGbh3CTQLKr9za5rmULY+ZP4lsB5oYXl9BHiyq
B2UUs7AXGA40AEYr5TqUMB29YDpwE4bY6k2Fv5x\nmuj4dF4Y3p6aNcppPED2ZVg4
DuIjYdy30Kpn8ftomlZl2PqXxlNEFgNmAEsdpOIeTe0BRIvIMRHJ\nBhYBtxew3Ws
YA+EybYylWkjNzOH9X47Qy7cRQzo0LZ+T5mbD4vvh9E4YPR/8bymf82qaVmHY2tF8
\nSSnlgWWiHaVULyClmH28gNP5XsdypcMay3G6AS1FZI1S6rnCDqSUmgJMAWjatCn
h4eE2hn219PT0\nUu9b3hZHZXPhUg5hTS+zadOmUh/H5jaLiQ4R/6FJwhai2j7B2Q
R3qCTv1bUq0/e5rOg2Vw/l0mYR\nKfYL6AZsxUgEWzFuH3UuZp8xwGf5Xk8E5uR77
QSEAz6W1+FA9+JiCQkJkdLauHFjqfctT6eSLknA\ni2vl6e/33fCxbGqz2SyyaprI
K/VFtnxww+d0tMryfS5Lus3Vw420GdgtNvy9t/X2kR9G30AfjL6F\noxR/lRGHMe9
CHm/Lsjz1gE5AuFLqBNALWKU7m425Epyc4Llh7crnhL+
+Cnu+hL5PQ+j08jmnpmkV\nkq1J4WURSQXcgUHAJ8C8Yvb5AwhQSrVRStUExgGr8l
aKSIqIeIqIj4j4ADuAUSKyu6SNqEr2nLzA\nj/vP8mh/P5o1KIdSEls+gC3vQ/fJM
Pgf9j+fpmkVmq1JIa9TeSQwX0TWADWL2kGMzuipGFcWh4HF\nInJIKfUvpdSo0gZc
lYkIr/0YQZN6tXh0QDnUGtzzJWx4BTqNhhHv6hLYmqbZ3NEcp5T6P2AI8JZl\nvuZ
iE4qIrAXWXrOswI+jIjLQxliqrNX7z7Lv9EXeHtOZOjVt/daU0sFlsPpJ8B8Cd/wX
nBw0N4Om\naRWKrVcKd2N84h8mIheBRkChTwtpJZeZY+KtdZF0aF6f0d287Xuyoxt
g2RRo1Qvu/hpqFHnRp2la\nNWJrmYvLGMXw8l6fBc7aK6jq6IutJ4i7mME7YzrjbM
+5Ek7tgO/vgybtYfwiqFnHfufSNK3S0dNm\nVQCJ6VnM3RjNLYFN6ePvab8TnTsAC
+42CtvdtxxqN7TfuTRNq5R0UqgA3v/lCJk5Jl4YYce5EpJi\n4Js7oZYbTFwBbo3t
dy5N0yotnRQc7Mj5NBbuOsV9vVrj19jNPidJiTMqnorZSAgNWxa/j6Zp1ZKd\nH3H
RivPG2sO41arB9MH2mSvBJTvVuELIuACTfoTGbe1yHk3TqgZ9peBAm44kEB6VwLTB
AbjXtcMT\nQJmpdN7/T7h4Eu79HloEl/05NE2rUvSVgoOYzMIbaw7T2qMOE3vbYa6
EnAxYOJ66l07A+IXgE1r2\n59A0rcrRVwoOsnj3aaLOpzEzrD21apTxwDFTDix5EE
5uJbL9dGg7rGyPr2lalaWTggOkZ+Xy3s9R\n3OTjTlinZmV7cLMZVj4BR9bByHeJb
zqgbI+vaVqVppOCA8wLjyYxPZtZIzugyrLekAj8NAP2fw83\nz4KbHi67Y2uaVi3o
pFDOYi9cZv7m49zZ1YsuLct48Fj4m7DrU+g9Ffo9W7bH1jStWtBJoZy9sz4K\nhR3
mStj+CWx6C7reB0Nf1xVPNU0rFZ0UytG+0xdZue8Mj/TzpUXD2mV34L0LYP0LEDgK
bvtIJwRN\n00pNJ4VyIiK8/mMEnm61+NtAv7I78OHVsGoq+A6C0Z/pEtiapt0QnRT
KybqD59h98gLPDm2LW60y\nGh4SsxF+mAxeIXDPt1CjVtkcV9O0aksnhXKQlWvizX
WHad+sHmO7l1HdodjdsGgCeATAhCVGoTtN\n07QbpJNCOfh620lOJ2fw0sjAspkr4
XwEfDsa3JrAxGVQ2/3Gj6lpmoZOCnaXfCmbj347yqB2jekX\nUAblqpOPGwXuarjC
/SugXhkPftM0rVrTtY/s7MMNR7icbeLFEYE3frC0c/DNHWDKggfXgbvPjR9T\n0zQ
tH50U7Cg6Pp1vd55ifI+WBDStd2MHu5xsXCGkJ8ADq6FJGSQZTdO0a+ikYEez1x2m
joszT95y\ng3MYZKXDgrGQFG10KnuHlE2AmqZp19B9CnayNTqRDYfjeeJmfzzdbuB
R0dws+H4CnPkTxnwBvgPL\nKkRN07Tr6CsFOzCZhdfXHMbbvTaT+vjcwIFyYelDcC
wc7pgHgbeWVYiapmkF0lcKdrB0TyyHz6Yy\nI6w9ri6lHGEsAqunGyOWw2ZD8L1lG
6SmaVoBdFIoY5eycnn35yi6tmrIrZ2bl+4gIvDzLNj3LQyY\nAb0eK9sgNU3TCqGT
Qhn7v9+PEZ+Wxcu33sBcCb+/C9vnQI9HYeALZRugpmlaEXRSKENnUzL49PcY\nbuv
Sgm6tSjnKeNd82Pg6dB5n3DbSFU81TStHOimUoXfWR2EWeL60cyXsXwxrn4V2I+D2
OeCkvz2a\nppUv/VenjByITWHZn3FMDm1Dy0Z1Sn6AqHWw/G/g08949NTZpeyD1DR
NK4Zdk4JSKkwpFaWUilZK\nzSxg/dNKqQil1H6l1Eh9OkMAAA9GSURBVK9Kqdb2jM
deRITX10TgUbcmjw8qxVwJJ7bAkknQvDOM\nXwgurmUeo6Zpmi3slhSUUs7AXGA40
AEYr5TqcM1me4HuItIZ+AF4217x2NPPEefZeTyZp4a0pb5r\nCT/hn9kL342Dhq1h
wlKodYPlMDRN026APa8UegDRInJMRLKBRcDt+TcQkY0ictnycgfgbcd47CI7\n18y
baw8T0MSNcTeVcK6EhCNGCeza7jBxOdT1sE+QmqZpNlIiYp8DKzUGCBORhy2vJwI9
RWRqIdvP\nAc6JyOsFrJsCTAFo2rRpyKJFi0oVU3p6Om5uZTsZzc8ncvguMpunQ2r
RubHtA8RrZcbTde9MnMwm\n9nadTUadUo5pKIY92lzR6TZXD7rNJTNo0KA9ItK9uO
0qRJkLpdR9QHdgQEHrReRT4FOA7t27y8CB\nA0t1nvDwcEq7b0EuXs5m+qZw+gV48
vcxPWwfl5AeD58/DSoXHlpDz2ZBZRbTtcq6zZWBbnP1oNts\nH/ZMCnFA/vsp3pZl
V1FK3QK8BAwQkSw7xlPmPvo1mrTMHF4aGWh7Qsi4yP+3d+dRVpRnHse/PzZR\nEXB
AcEQRF1AIRg24R0VBRYIQQ0R0cJ8YnTBu0aOOGTNj9IzGURNPVKJxieKCGDXNAcS1
YzCi4CgI\nItggYYuCEEAEBLqf+aOKnmtPQ9+Gu9B9f59z+nTdqrduPc+93f30W1X
3fRn1A1i9BM7/I+SxIJiZ\n1Vc+rylMAbpK2k9SC2AYUJbZQNLhwG+BQRGxNI+x5N
ynX3zF42/P5+wj9uHgPVtnt9OGtfD0MFj6\nMQwbBZ2PymuMZmb1lbeiEBGbgBHAR
GAW8GxEzJR0i6RBabM7gVbAGEkfSCrbwtPtcG6fMIudmjXh\n6lOynCth0wZ49jxY
MBmGPAQH9stvgGZm2yCv1xQiYjwwvsa6mzOWG+RfxsnzljNx5udcd9pBdNgt\ni88
UVFXCCz+GilfhjF/Dt87Mf5BmZtvAn2iup6qq5INqe7VpySXf3a/uHSJg3DUw83k4
5RbodWHe\nYzQz21YuCvX0wvuLmbF4NdefnuVcCa/9J7z3GHz3GjjuyrzHZ2a2PVw
U6mHdhkrunDibQ/duwxnf\n3qvuHSb9CibdA70vhr43193ezKzIXBTq4aE/z+Oz1e
v52cAeNGlSxy2o7z0Gr/4ceg6BAf/tIbDN\nrEFwUcjS56vX80D5XAYcsidHdPmHr
Tee8TyMvQoOPAW+PxKabOOUnGZmBeaikKW7Xp5NZVVwff+D\nt97wk1fh+Uuh89Ew
9HFo1qIwAZqZ5YCLQhY+WrKaMe8t4oJj92XfdrtuueGCyTB6OHQ4GM55Blps\nw7w
KZmZF5KJQh81zJbTduTkjTu665YaffQhPDoU2nWD4C7Bz28IFaWaWIy4KdXj946X8
Ze5yrurX\njTY7b2GuhOVz4YkzYadWcN6L0GqPwgZpZpYjLgpbsbGyitvGz2L/PXb
l3KM6195o1WJ4fDBEVVIQ\n2tZzTgUzsx2Ii8JWPP3uAuYt+4p/O707zZvW8lJ9tR
ye+H4y8unwP8AeWY6DZGa2g9oh5lPYEa1a\nt5F7XpnDsQe0o2/3Dv+/wfrVyRDYK
xfA8Odhr8MLH6SZWY65KGzBfW9UsHLdFuZK2LgOnj4HPp8B\nw56CLscVJ0gzsxxz
UajFguVreeyt+ZzVa2+
+tVebb26s3AhjLoK/vgU/eAi6nVacIM3M8sBFoRZ3\nvPQxTZuIn5560Dc3VFXBH3
8CcybA9+6Cb59VnADNzPLEF5prmDp/BeM+/BuXnXgAHVtnzJUQAS9d\nD9NHw8k/g
yP+uXhBmpnliYtChqqq4BfjZrFn65b86IQacyWU/xe8+yAcMwKOv7Y4AZqZ5ZmLQo
ax\n05cwbeFKrjvtIHZpkXFm7e374U93wOHD4dRbPeKpmTVaLgqp9Rsr+eVLs+nZq
TVnHt7p/za8/yRM\nvBG6D4Iz7nVBMLNGzUUh9fCkT1m8ch03DciYK2HWWCgbAfuf
BEN+5yGwzazRc1EAln35Nfe/UcGp\nPTpyzAHtkpVz34DnLoZOveDsUdBsp+IGaWZ
WAC4KwN2vzOHrTVXcOKB7smLRVHjmn6DdgXDus8lA\nd2ZmJaDki8Lsz75k9JQFnH
fMvuzXflf4/CMYNQRadYDzXoBd6phlzcysESn5onDb+Fns1rI5V/bt\nCis+TYbAb
tYSzn8Rdtuz2OGZmRVUSReF8tlLeXPOMq7o25W2lSuSEU8rv04Kwu5dih2emVnBle
ww\nF5sqq7ht3Cy6tNuF8w5tDU8MhDXL4IKx0KF7scMzMyuKku0pjJ66kE+WruGmU
zrT4pmhsLwCznkK\n9u5V7NDMzIqmJHsKX67fyN0vz+HYLq3oN/0aWPI/MPQJ2L9P
sUMzMyuqkuwp3F8+l5VfreOBlg+g\neeUw+D7oPrDYYZmZFV3JFYWFK9by8KR5PLX
nU7SZPwH63w6HnVvssMzMdgglVxTufOljbmwyiqNW\nToATr4ejLy92SGZmO4y8Fg
VJ/SXNllQh6YZatu8kaXS6/R1JXfIZT8XKSjrPvJ+LmoyDI38MfW7M\n5+HMzBqcv
BUFSU2B+4DTgR7AOZJ61Gh2CfD3iDgQuAe4I1/xRARrZ4zl2uZj2NhzaHLayCOemp
l9\nQz57CkcCFRExLyI2AM8Ag2u0GQz8Pl1+Dugr5ecv9fvjH+KKTY+yuONJND/zf
mhScmfOzMzqlM9b\nUjsBCzMeLwKO2lKbiNgkaRXQDvgis5GkS4FLATp27Eh5eXm9
g/li2To2NO3F+m6X88mf36r3/g3V\nmjVrtun1asicc2lwzvnRID6nEBEPAg8C9O7
dO/r06bMNz9KH8vJD2bZ9G67y8nLnXAKcc2koRM75\nPIeyGNgn4/He6bpa20hqBr
QBlucxJjMz24p8FoUpQFdJ+0lqAQwDymq0KQMuSJd/CLweEZHHmMzM\nbCvydvoov
UYwApgINAUeiYiZkm4BpkZEGfAw8ISkCmAFSeEwM7Miyes1hYgYD4yvse7mjOX1wF
n5\njMHMzLLn+zLNzKyai4KZmVVzUTAzs2ouCmZmVk0N7Q5QScuAv27j7u2p8WnpE
uCcS4NzLg3bk/O+\nEbFHXY0aXFHYHpKmRkTvYsdRSM65NDjn0lCInH36yMzMqrko
mJlZtVIrCg8WO4AicM6lwTmXhrzn\nXFLXFMzMbOtKradgZmZb4aJgZmbVGmVRkNR
f0mxJFZJuqGX7TpJGp9vfkdSl8FHmVhY5XyPpI0nT\nJb0mad9ixJlLdeWc0W6IpJ
DU4G9fzCZnSUPT93qmpKcKHWOuZfGz3VnSG5LeT3+
+BxQjzlyR9Iik\npZJmbGG7JN2bvh7TJX0npwFERKP6Ihmmey6wP9ACmAb0qNHmX4
CR6fIwYHSx4y5AzicBu6TLl5dC\nzmm73YA3gclA72LHXYD3uSvwPrB7+rhDseMuQ
M4PApenyz2A+cWOeztzPgH4DjBjC9sHABMAAUcD\n7+Ty+I2xp3AkUBER8yJiA/AM
MLhGm8HA79Pl54C+klTAGHOtzpwj4o2IWJs+nEwyE15Dls37DPAL\n4A5gfSGDy5N
scv4RcF9E/B0gIpYWOMZcyybnAFqny22AJQWML+ci4k2S+WW2ZDDweCQmA20l/WOu
\njt8Yi0InYGHG40XpulrbRMQmYBXQriDR5Uc2OWe6hOQ/jYaszpzTbvU+ETGukIH
lUTbvczegm6S3\nJE2W1L9g0eVHNjn/BzBc0iKS+Vv+tTChFU19f9/rJa+T7NiOR9
JwoDdwYrFjySdJTYC7gQuLHEqh\nNSM5hdSHpDf4pqRDImJlUaPKr3OAxyLiLknHk
Mzm2DMiqoodWEPUGHsKi4F9Mh7vna6rtY2kZiRd\nzuUFiS4/sskZSf2Am4BBEfF1
gWLLl7py3g3oCZRLmk9y7rWsgV9szuZ9XgSURcTGiPgUmENSJBqq\nbHK+BHgWICL
eBlqSDBzXWGX1+76tGmNRmAJ0lbSfpBYkF5LLarQpAy5Il38IvB7pFZwGqs6cJR0O
\n/JakIDT088xQR84RsSoi2kdEl4joQnIdZVBETC1OuDmRzc/2iyS9BCS1JzmdNK+
QQeZYNjkvAPoC\nSOpOUhSWFTTKwioDzk/vQjoaWBURf8vVkze600cRsUnSCGAiyZ
0Lj0TETEm3AFMjogx4mKSLWUFy\nQWdY8SLeflnmfCfQChiTXlNfEBGDihb0dsoy5
0Yly5wnAqdK+gioBK6LiAbbC84y558CD0m6muSi\n84UN+Z88SU+TFPb26XWSnwPN
ASJiJMl1kwFABbAWuCinx2/Ar52ZmeVYYzx9ZGZm28hFwczMqrko\nmJlZNRcFMzO
r5qJgZmbVXBSsUaprpMkCHH+8pLbp8hWSZkl6UtKgrY3omrb/S/q9i6RzCxGv2Wa+
\nJdUaJUknAGtIBg7rWeRYPgb6RcSieu7XB7g2IgbmJTCzWrinYI1SXSNNStpV0jh
J0yTNkHR2un6+\npF9K+lDSu5IOTNfvIekPkqakX8el61tJejRtP13SkIznaS9pJM
mwzxMkXS3pQkm/Sdt0lPRCGsM0\nScem69ekYd4OHC/pg3TfNyUdlpHDJEmH5vzFs
5LW6D7RbJal/sCSiPgegKQ2GdtWRcQhks4HfgUM\nBH4N3BMRkyR1JvmEbXfg3ze3
T59n98yDRMRl6UilJ0XEF5IuzNh8L/CniDhTUlOST5xnuoGMnoKk\nFSQD/F0lqRv
QMiKmbfcrYZbBPQUrVR8Cp0i6Q9LxEbEqY9vTGd+PSZf7Ab+R9AHJ2DOtJbVK19+3
\necfN8xhk6WTggXS/yhox1GYMMFBSc+Bi4LF6HMssK+4pWEmQtA8wNn04MiJGpvM
tDABulfRaRNyS\nbs+80LZ5uQlwdER8Y7KeQs7NFBFrJb1CMsnKUKBXwQ5uJcM9BS
sJEbEwIg5Lv0ZK2gtYGxGjSAYL\nzJzn9uyM72+nyy+TMXlLxrn9V4CfZKz/xumjO
rxGMjUqkprWOIUF8CXJEOCZfkdy2mlKPXslZllx\nUbBGKR1p8m3gIEmLJF1So8kh
wLvp6aCfA7dmbNtd0nTgSuDqdN0VQO/0YvJHwGXp+lvT9jMkTSOZ\nCztbVwInSfo
QeI9kfuFM04HK9CL01QAR8R6wGni0Hscxy5pvSTXLoGRCnt4R8UWxY6lN2sMpBw72
\nzGKWD+4pmDUQ6d1Q7wA3uSBYvrinYGZm1dxTMDOzai4KZmZWzUXBzMyquSiYmVk
1FwUzM6v2v9To\nh63Q/P4wAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "sR3iX9Gd4Zrt",
"colab_type": "code",
"outputId": "73ab940b-21b4-4d7e-8f11-3539042c19f0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 108
}
},
"source": [
"\n",
"# we are writing our own function for predict, with
defined thresould\n",
"# we will pick a threshold that will give the least
fpr\n",
"def find_best_threshold(threshould, fpr, tpr):\n",
" t = threshould[np.argmax(tpr*(1-fpr))]\n",
" # (tpr*(1-fpr)) will be maximum if your fpr is very
low and tpr is very high\n",
" print(\"the maximum value of tpr*(1-fpr)\",
max(tpr*(1-fpr)), \"for threshold\", np.round(t,3))\n",
" return t\n",
"\n",
"def predict_with_best_t(proba, threshould):\n",
" predictions = []\n",
" for i in proba:\n",
" if i>=threshould:\n",
" predictions.append(1)\n",
" else:\n",
" predictions.append(0)\n",
" return predictions\n",
"print(\"=\"*100)\n",
"from sklearn.metrics import confusion_matrix\n",
"best_t = find_best_threshold(tr_thresholds, train_fpr,
train_tpr)\n",
"\n",
"print(\"Test confusion matrix\")\n",
"print(confusion_matrix( predict_with_best_t(y_test_pred,
best_t),y_test))\n"
],
"execution_count": 212,
"outputs": [
{
"output_type": "stream",
"text": [
"================================================================
====================================\n",
"the maximum value of tpr*(1-fpr) 0.5192128201520539
for threshold 1\n",
"Test confusion matrix\n",
"[[ 906 2688]\n",
" [ 637 5769]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "8JZXMRD2tzU8",
"colab_type": "code",
"colab": {}
},
"source": [
"\n"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "lroxWRRHv7dS",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 199
},
"outputId": "4903f2c1-f6b0-46a5-c17d-eca79f2ea2d7"
},
"source": [
"print(x)"
],
"execution_count": 213,
"outputs": [
{
"output_type": "stream",
"text": [
"+------------------------+-------
+--------------------+--------------------+\n",
"| topic | alpha | tain_auc
| test_auc |\n",
"+------------------------+-------
+--------------------+--------------------+\n",
"| TF_IDF | 0.1 | 0.5770929184379726
| 0.5190892112444709 |\n",
"| TF_IDF(under sampling) | 1 | 0.6565349544072948
| 0.5083653718161435 |\n",
"| TF_IDF(over sampling) | 1e-05 | 0.739409347562598
| 0.6219835681263862 |\n",
"| BOW | 1 | 0.6659045721488958
| 0.6315155292478415 |\n",
"| BOW(under sampling) | 1 | 0.6796352583586626
| 0.499768682269061 |\n",
"| BOW(over sampling) | 1e-05 | 0.7210068879888845
| 0.6346623240086654 |\n",
"+------------------------+-------
+--------------------+--------------------+\n"
],
"name": "stdout"
}
]
}
]
}