{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualizing the Corpus of ACL 2017 Paper Titles\n", "\n", "There was a significant variation topics covered in long and short papers in ACL 2017. Below is an application of Scattertext, written up in an ACL 2017 demo paper, on visualizing the differences in these paper titles.\n", "\n", "Jason S. Kessler. Scattertext: a Browser-Based Tool for Visualizing how Corpora Differ. To appear in ACL Demos. Vancouver, BC. 2017.\n", "\n", "https://github.com/JasonKessler/scattertext\n", "\n", "https://arxiv.org/abs/1703.00565" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's first, parse the accepted papers blog post using Beautiful Soup and load it into a Pandas data frame" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import requests\n", "from bs4 import BeautifulSoup\n", "import re\n", "import pygal\n", "import scattertext as st\n", "from IPython.display import IFrame\n", "from IPython.core.display import display, HTML\n", "import seaborn as sns\n", "display(HTML(\"\"))\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "url = 'https://chairs-blog.acl2017.org/2017/04/05/accepted-papers-and-demonstrations/'\n", "soup = BeautifulSoup(requests.get(url).text, 'lxml')\n", "content = soup.find_all('div', class_='entry-content')[0]\n", "\n", "def split_authors(author_list):\n", " return re.split('(?:\\W+and|\\,)\\W+', author_list)\n", "\n", "assert split_authors('Sayan Ghosh, Mathieu Chollet, Eugene Laksana, Stefan Scherer and Louis-Philippe Morency') \\\n", " == ['Sayan Ghosh', 'Mathieu Chollet', 'Eugene Laksana', 'Stefan Scherer', 'Louis-Philippe Morency']\n", "assert split_authors('Sayan Ghosh, Mathieu Chollet, Eugene Laksana, Stefan Scherer, and Louis-Philippe Morency') \\\n", " == ['Sayan Ghosh', 'Mathieu Chollet', 'Eugene Laksana', 'Stefan Scherer', 'Louis-Philippe Morency']\n", " \n", "data = []\n", "for paper_length in content.find_all('h2'):\n", " length_name = paper_length.text.strip()\n", " field = 'N/A'\n", " for sib in paper_length.findNextSiblings():\n", " if sib.name == 'h2':\n", " break\n", " if sib.name == 'h3':\n", " field = sib.text.strip()\n", " if sib.name == 'ol':\n", " for paper in sib.find_all('li'):\n", " try:\n", " title, authors = paper.text.split('Authors:')\n", " except:\n", " continue\n", " data.append({'Paper Type': length_name,\n", " 'Field': field,\n", " 'Title': title.strip(),\n", " 'Authors': split_authors(authors.strip())})\n", "df = pd.DataFrame(data)\n", "df['author count'] = df.Authors.apply(len) \n", "df['Paper Type']= df['Paper Type'].apply(lambda x: {'Accepted Long Papers':'Long', \n", " 'Accepted Short Papers':'Short',\n", " 'Accepted Software Demonstrations':'Demo',\n", " 'Transactions of the ACL articles to be presented at ACL 2017':'TACL'}[x])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Long', 'Short', 'Demo', 'TACL'], dtype=object)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Paper Type'].unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's use Scattertext to see how the titles of long and short papers differ\n", "End-to-end modeling, joint modeling, adversarial learning, and reading comprehension were particularly characteristic of long papers. \n", "\n", "Case studies, social media, multilingual analysis and were more prevalent in short papers. The term \"temporal\" fell victim to polysemy-- both temporal relation mining and trend-over-time analysis were common in short papers.\n", "\n", "Learning, neural, and translation were very common in both sets. \n", "\n", "Click around on the plot below to see other findings." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Parsed'] = df['Title'].apply(st.whitespace_nlp)\n", "long_short_df = df[df['Paper Type'].isin(['Long', 'Short'])]\n", "long_short_corpus = (st.CorpusFromParsedDocuments(long_short_df, \n", " category_col = 'Paper Type', \n", " parsed_col = 'Parsed', \n", " feats_from_spacy_doc = st.FeatsFromSpacyDoc(strip_final_period=True))\n", " .build()\n", " .get_stoplisted_unigram_corpus())\n", "html = st.produce_scattertext_explorer(long_short_corpus, \n", " category='Long', \n", " category_name='Long Papers', \n", " not_category_name='Short Papers',\n", " minimum_term_frequency=1,\n", " metadata=long_short_df.apply(lambda x: ', '.join(x['Authors']) + '('+x['Field']+')', axis=1),\n", " use_full_doc=True,\n", " width_in_pixels=1000)\n", "file_name = \"ACL2017LongShort.html\"\n", "open(file_name, 'wb').write(html.encode('utf-8'))\n", "IFrame(src=file_name, width = 1200, height=1000)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scattertext.termsignificance import LogOddsRatioUninformativeDirichletPrior\n", "term_freq_df = long_short_corpus.get_term_freq_df()\n", "frequencies = term_freq_df.sum(axis=1).values\n", "frequencies_scaled = frequences/frequences.max()\n", "p_vals = LogOddsRatioUninformativeDirichletPrior().get_p_vals(term_freq_df.values)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## As requested by Min-Yen Kan, let's look at how TACL differs from long papers\n", "\n", "Interesting finding: no TACL paper uses the word \"networks\" in its title, but lots of long papers do. \n", "\n", "Two TACL papers talked about \"effects\", while no long papers did:\n", "- \"evaluating visual representations for topic understanding and their effects on manually generated labels\"\n", "- \"winning on the merits: the joint effects of content and style on debate outcomes\"\n", "\n", "\"LSTMs\" appears to be a false positive for TACL, since the unmarked \"LSTM\" appeared four times in long papers. (I'm safely assuming the long papers used multiple LSTM nodes.)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['Parsed'] = df['Title'].apply(st.whitespace_nlp)\n", "long_short_df = df[df['Paper Type'].isin(['Long', 'TACL'])]\n", "long_short_corpus = (st.CorpusFromParsedDocuments(long_short_df, \n", " category_col = 'Paper Type', \n", " parsed_col = 'Parsed', \n", " feats_from_spacy_doc = st.FeatsFromSpacyDoc(strip_final_period=True))\n", " .build()\n", " .get_stoplisted_unigram_corpus())\n", "def get_metadata(x):\n", " meta = ', '.join(x['Authors']) \n", " if x['Field'].strip():\n", " meta += ' ('+x['Field']+')'\n", " return meta\n", " \n", "html = st.produce_scattertext_explorer(long_short_corpus, \n", " category='TACL', \n", " category_name='TACL Papers', \n", " not_category_name='Long Papers',\n", " minimum_term_frequency=1,\n", " metadata=long_short_df.apply(get_metadata, axis=1),\n", " use_full_doc=True,\n", " width_in_pixels=1000)\n", "file_name = \"ACL2017TACLLong.html\"\n", "open(file_name, 'wb').write(html.encode('utf-8'))\n", "IFrame(src=file_name, width = 1200, height=1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's see how the papers the area chairs published differed from the rest of the set\n", "\n", "The 53 papers were co-authored by an area chair, and 290 were only authored by average joes. \n", "\n", "\"Fast and accurate\" was a phrase used by two area chairs and nobody else.\n", "\n", "Lots of people worked on Chinese, but no area chairs had \"Chinese\" in their paper titles. \"Dialog\" and \"adpatation\" were strongly associated with average joes. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Average Joe 291\n", "Area Chair 53\n", "Name: AC, dtype: int64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import itertools\n", "area_chairs = set(itertools.chain(*[x.split(':')[1].strip().split(', ') for x in '''Biomedical: Aurélie Névéol, Karin Verspoor\n", "Cognitive Modeling and Psycholinguistics: Roger Levy, Anders Søgaard\n", "Dialogue and Interactive Systems: Ron Artstein, Raquel Fernandez, Oliver Lemon\n", "Discourse and Pragmatics: Yangfeng Ji, Sujian Li, Bonnie Webber\n", "Information Extraction and NLP Applications: Eugene Agichtein, Chia-Hui Chang, Jing Jiang, Sarvnaz Karimi, Zornitsa Kozareva, Kang Liu, Tie-Yan Liu, Mausam, Alessandro Moschitti, Smaranda Muresan\n", "Machine Learning: Grzegorz Chrupała, Amir Globerson, Tommi Jaakkola, Sujith Ravi, William Yang Wang\n", "Machine Translation: Yang Liu, Minh-Thang Luong, Haitao Mi, Graham Neubig, Deyi Xiong\n", "Multidisciplinary: Michael Piotrowski, Karën Fort\n", "Multilinguality: Omri Abend, Mona Diab\n", "Phonology, Morphology and Word Segmentation: Jason Eisner, Hinrich Schütze\n", "Resources and Evaluation: Sophie Rosset, Wajdi Zaghouani\n", "Semantics: Manaal Faruqui, Hannaneh Hajishirzi, Anna Korhonen, Preslav Nakov, Mehroosh Sadrzadeh, Aline Villavicencio\n", "Sentiment Analysis and Opinion Mining: Alexandra Balahur, Lun-Wei Ku, Saif M Mohammad\n", "Social Media: Zhiyuan Liu, Shimei Pan, Svitlana Volkova\n", "Speech: Chiori Hori, Chia-ying Lee\n", "Summarization and Generation: Wenjie Li, Alexander M Rush, Verena Rieser\n", "Tagging, Chunking, Syntax and Parsing: Emily Pitler, Barbara Plank, Yue Zhang, Hai Zhao\n", "Vision, Robotics and Grounding: Mohit Bansal, Nate Kushman'''.split('\\n')]))\n", "df['AC'] = df.Authors.apply(lambda x: 'Area Chair' if set(x) & area_chairs != set() else 'Average Joe')\n", "df['AC'].value_counts()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_chair_corpus = (st.CorpusFromParsedDocuments(df, \n", " category_col = 'AC', \n", " parsed_col = 'Parsed', \n", " feats_from_spacy_doc = st.FeatsFromSpacyDoc(strip_final_period=True))\n", " .build()\n", " .get_stoplisted_unigram_corpus())\n", "def get_metadata(x):\n", " meta = ', '.join(x['Authors']) \n", " meta += '('+x['Paper Type']+'; '+x['Field']+')'\n", " return meta\n", " \n", "html = st.produce_scattertext_explorer(area_chair_corpus, \n", " category='Area Chair', \n", " category_name='Area Chair', \n", " not_category_name='Average Joe',\n", " minimum_term_frequency=1,\n", " metadata=df.apply(get_metadata, axis=1),\n", " use_full_doc=True,\n", " width_in_pixels=1000)\n", "file_name = \"ACL2017AC.html\"\n", "open(file_name, 'wb').write(html.encode('utf-8'))\n", "IFrame(src=file_name, width = 1200, height=1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's look at some descriptive statistics about the set accepted papers, and look at variations in paper categories\n", "The vast majority of papers are long papers. MT, Semantics, and Gen. Summarization were more associated with Long Papers, while ML, Social Media, and Multidisciplinary dominated short papers. " ] }, { "cell_type": "code", "execution_count": 224, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", "PygalLong0.125Short0.375TACL0.625Demo0.875020406080100120140160180194307.034.42307692307692Long107174.61994448924.807692307692307Short2143.761498810515.192307692307693TACL2143.76149881055.576923076923076Demo1941072121Paper Type" ], "text/plain": [ "" ] }, "execution_count": 224, "metadata": {}, "output_type": "execute_result" } ], "source": [ "HTML(pygal.HorizontalStackedBar(explicit_size=5, \n", " height=100,\n", " x_labels = list(df['Paper Type'].value_counts().index),\n", " style=pygal.style.DefaultStyle(value_font_size=10), print_values=True)\n", " .add('Paper Type', df['Paper Type'].value_counts())\n", " .render(is_unicode=True))" ] }, { "cell_type": "code", "execution_count": 225, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAEMCAYAAAAiQXfTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnWeYVFXSgN8hfIDkoIBIRgoXE0bEjJkFxVUxiyJKUhTU\nRRAxg66KgoGkgBEwrAkjgoqoGFhEUCmVIBIFQWAGEAfm+1GnoWfongA9oWfqfR6fme6+99y6d1q6\nus659aZkZGTgOI7jOI5TXClV2AE4juM4juPkJ57sOI7jOI5TrPFkx3Ecx3GcYo0nO47jOI7jFGs8\n2XEcx3Ecp1jjyY7jOI7jOMWaMoUdgOOUZH744ceMDRs2x329UaMmlC5dugAjik316nuxbt2mwg4j\nW5IhRvA4E43HmViSJc69966ckpftPdlxnEKk1x3jqVh175ivpa1fzZCbLqRp0/0LOKpdKVOm8BOu\nnEiGGMHjTDQeZ2JJljjziic7TpFGRE4EXgK+x6Zd/w/oCVwBDFXVpfl47AnACKACUF9Vn8rDvncA\nK1R1dHbbbdq4lnhtPTdvXMuSJb9me5yiUvlxHMcpyniy4yQDU1X1EgAROQ24R1U7FNTBVfX9/Bq7\nSsvVVKr1V8zXqgMTFrwGC2Lvm7pmA/dcMKhIVH4cx3GKMp7sOMlA9NxsdWCViHwEdANWAc8DVYDS\nwEBV/VhEvgOmAwcD88N2JwBbgHZAReBpoEYYt7eqfi8ivYCrgRXA3gAi0hlooar9RWQgcE441ghV\nHSMig4HDgZrAHFW9Op+ug+M4jrMbeLLjJANtRWQaUB5LXs4F+ofXBgIfqOpjIrIvMANoAlQGnlfV\nmSLyI3Cjqt4ekqSWwCXAh6o6SkSaAeNE5Dygd3gd4JuoGDJE5FDgDFU9UkTKAENEpDKwVlXPEJEU\n4HsRqZvbE3ui239YuzZ1ty4K2DSW4ziOkz2e7DjJQPQ01v7Al4BiFZ8DsMoOqrpcRNaLyD5hv9nh\n55/Aj+H3dVjSdBBwsohcGMapDjQF5qlqejjW11niEOCrcKx04JaQ9NQWkReANKxiVDa3J9a8eXNW\nr96Y280dx3Gc3cD77DjJQPQ01mrYsaY3A/gBm55CROphScsfUa/HG+tH4BFVbQt0whKmn4GWIlJO\nREoDrbLsOx84LByrrIh8gE2J1VfVS4EB2GLmPN0S6TiO4+Qvnuw4ycDJIjJNRD4E3gP6AJHmNEOw\naa5PgP8C16jqNjInOrF+HwxcGKa13sUqOmuAB4AvgLeBTPNLqjoHeF9EPsfWAz2HVZkai8jHwCvA\nQmBfYidajuM4TiGQkpHh/yY7TiGSkQzTWHvvXbnIT7clQ4zgcSYajzOxJFGceaqge2XHcRzHcZxi\njSc7juM4juMUa/xuLMcpRH766ac9uvU8N3iXZcdxSjqFmuyISEtsQWgFoBLwrqremaCxzyC0+BeR\na4CxwIFAB1W9dzfHHI81lNtHVf8Ozx2G9WM5SVWn52KMbkBtVb07zuvjgAlAXaAF8Chwu6petzsx\n7wnhGl6kqldFPdcQ+A6YFZ4qB3ykqgP38Fi50iuEbTtjt4EPI4HXRkReUdXz47xWHzhEVSeLyFAS\npKrodtvTcd1YiaAo+bUcx3EKi0JLdkSkKvah3lFVF4aGbC+LyLW5+cDLiSwt/gcAz4S7aebswbAZ\nwHLgLODN8NwlxG3ov8dkqOoqoMATnegYYjz3fbhlGwAR+VxEDlTVeQUYF4m+NvESnUBbLPmcrKp9\nE3XM7NxYABUr1ySllM82O47j7AmFWdk5B2sWtxBAVTNE5ApgK4CIPAQch33YTlDV4SLSFBgftlkC\nNFTVtiLyM/Ap9mG0EjgPE0W2wHqn1AEmisgwoDvwInCuqnYJx5oFnAGcjN3WnA7MUNUBMeKegCU4\nb4YE7TDg6zBOGWAc1sG3FNbH5SUROQ6r0KwFtmG3NiMi14WxtgMTVfXxrAcLlZSJqnqMiMwBPsG6\nCG8HzlHVjSLyBKYrWAU0Btqr6pKoMc4DemF/7wysA/FBQL9wLRsDk1R1sIi0wKpgqcCmEHNWdqyC\nF5G9MDnnJhH5F/DvMOZy4OLwd7lGVX8UkTOB9sCdwDNAtTBM5/Czo4h0whQOt6vq2yJyKXADpnn4\nGVNE7Mm16RCOP0FVPwjVqwtVtYuIrFDVuiISEY1uw/62fYFbgQrhtvO+IY61Wc7jCqA28HC4BpuA\n81U1LcY1BLJ3Y6Wu2UDnozvToEHDeLvnCu+y7DhOSacwvzLui/Uk2YGqblLVdBH5J9BIVVsDxwMX\ni8iBwIPAvap6CvBZ1K6NMSdSG8xndGR4PkNVx2Keowsjz2E9VFqLSAUROQKrzGzDPgTbquoJwH4i\nckqMuL8GREQqYN/2p0W91g34XVWPBU4D7hGRmsCT2Afq6cAibIADQkzHYk3xzhWR5nGuVeTLfxXg\nBVU9iVBhEpGzgRrhWl0N7Bdj//2BduG8fsQSO4AGWOJzDJakgF3jgSHWz+PE84/Q92Ya8DrwaEha\nLwL+E44zGVM2jAGuDPt1AZ7CFA9vhOt0Ezv/XktV9VQs4ewhIjWwv8lJYcw/iUp2dvPaZFdIibzW\nGegV4ot0Xr4feFFV34raLut5HIUl8ZOAk4CRWJPD3aZBg4Y0bbr/Hv3n63UcxynpFGZl51dCN9oI\nItIIqI8pAD4Fa8svIl8C/8AqNV+EzT/FqiIAq1V1efh9KaYDiCaFqGqEqm4XkVewCtAx2AdyMyxR\neidUbCph+oCpWcbKAN4AOgKnAvdgje0IcU8Jx0gVkR/CGPuoamSq67Pw3IFAwzB+ClYdaBbvYkXx\nbfj5WzjPxpFroqprRERj7LMaeEZE0rC1LpEkZq6qZmBVmU3hueaESlWItUWM8TJNY0XRF+gvItdj\nScLrwMvAN6FSV09VvxURwSScqOpMYGZYsxNZB7QS2AurkM1T1Uhsn2JJ5FexL02O12Z+jH1SYvze\nBbg5vB+/YNcvBZHtYp3Hu8Bt2N91KTAzTqxAzm4sr8o4juPsOYVZ2ZkMnCEiTcDa7wNDMQnjj1hF\nJ/J8G+AnYF74HSxJyS3bMEt1NGOBy4GjVHUKVnFZApymqicDjxP/g2oCNmVRR1UXRz0frS6ojE0V\nLQSWhQ942FnFUOyDvG043nhs4W9OZK1MzCVcCxGpjiUrOxCRKsBdWNWlKzYdFKsZU+S579l5jY+M\nsV30tlm5FrgjnE8pbKpwE/Axtpj4+bDdD1gVBBE5QUTuj3Nui7AqUoXw+ETsfRCP3F6bLdgCcMiS\ncAeuAbqF8zgsjLGdXf9/iXUelwLjQjL4A3ZN4tK8eXOvyjiO4+QzhZbsqOpGbLpgTJgO+Rz4VlVH\nqurbwKKwPuJz4CVV/RZbN3GriEzB1l78HYaLpwaIMAObuoo+/uKw7evh8Ros2ZouIjOBM9n1gzUj\nbKtALXYuUo4ccwxQU0Q+xaa37gzjdgeeC3E3CGN8B0wTkRlBOLk/Nv2Sm2mW6FjeAf4QkRnYFFEa\nO68LqrohnP9MrDKyCZtCjDkecDMwMMR6VC7iiOYr4O2gdaiNJbRg1+Vs4IXweAhwTlA13IFN9+wy\npqr+gU1jfRzeCzWBEbmIKd612YRdm6eAvsFttW+MMeYCM0RkKrbW58vw3DlhTVFku1jn8TXwdLgG\nJwPPxonXcRzHKSCSShchIpcAM8PdW1cDx6hq18KOqzAJFaNDVXVSWOMyD1u4/XcOuxYYInIktgbm\nygI+bpG/NrguImEkQ4zgcSYajzOxJFGcedJFJFtTwd+ASWF9STq26LSk8xvwgIjciFXq/l2UPsxF\npBe2BqZTIRy+SF8bx3Ecp2BIqsqO4xRDvLKTIJIhRvA4E43HmViSKM5iXdlxnGJFQegiEsG6dZWK\nfJwFFaPrNxwn+fBkx3EKkfzWRTiJxfUbjpOceLJTRBCRE4GXsFu/S2F/m2Gq+rKIHEI2Tq/gimqh\nqv334PiLAFHVrXFePx5Yl2glRLgl/ExVnSAi/bCu2t/s5lhnYc39UjDf2uOq+mIe9i8HXKaqT+/O\n8XeHilX3pkqNujlv6DiO4+w2nuwULaaq6iUAIlIR+ERENJdOrz1dfJXT/l2AidgdTYnkEOy29Amq\n+sAejjUSOEhVN4TrN0dEPgi3/+eGulgvogJLdlYvVVLXr87XY7hfK3Gk5fPfynGc/MGTnSKKqqaJ\nyCjg/FD96K6qF4e7m/6FdRheg+kediAiN2Eair+B6araPygrXsQcVj9hSoyYdfjQybgxsA/WE6gP\n8AfWd6iViHyPNdnL5BAL+7UBKmJ3yXXGnFQ1gTmqerWI1GJXJ9YA4GAR6YqpMyZijfgeVdVPReRw\nTMtwAZbMNMMqX7er6idZwl8H3CAir6rqDyJygKr+HfrsZPVzvUgWh1WI5QARGQgMx5KeGmHs3qr6\nvZiH7TOsQeE0oCrWj2i+qnbO6gdT1YtiXecI2bmxEkGi/Fo1ahT9NTsFFaN3tXac5MOTnaLNKqBV\n+D1SeakZ3GCIyHtEdTkO/rDzgdYRJUbwjJ0CvKaqI0XkVEy5kB1bVLVd2LZv+P09rHN0Gtbo73BV\n3SIiz4btAH5Q1T6he/RaVT0jqDe+F5G6mHj0DVUdLSKtQ+z3YoncUyJybDjP0ZhP61PgKqwpYVdM\nC9I19MyZjik3ojkdU1ZMEJG9seTobnb6ufphFarBmGpkEtbZ+WzMYXUfcKCq3hu6IX+oqqNEpBkm\neD0eaIR5r1ZhItAjVVVFZEHoVh3xg/1XRC4TkSqhsWOhEfFr7QnJcIdGMsToOE7h4MlO0aYh5leK\nZquIRJKOekDZqNdaYE0Xt4fHMzD9RgtMRwHBOZYDs8PPiGMqmlgOschX3YiXazNQW0ReCHFWDHHG\nckmdGOP4HwAPhorWccD1mL7jOBE5GluTU1pEaqjqWgARqYbJYyNdtusC/xUz2sfycy1mV4dV9C02\nBwEni8iF4XgRoecfqrosHDM1dNMGWB+uVSw/WFxycmMlAq9EOI5T0vFkp2ixo29AqBJ0xSo1+4bn\nDgI6qmrr4IuaRWZP1XxMg1AKq5CcgE0b1cKmmL4jvlMsepxY63cibqhoh9i2sDh6NjadFkmyzgLq\nq+pFYeqqYxg/4pKaKyInAO0wjUem+3hVNUNEXsbUEK+Hx/OB31T1fhEpDwyIJDqBcljDyaNV9Xes\n8rIS+EtVN4nIx2T2c12GOaxuEZFbsamz8VGx/Ah8o6oTQ5Uo0sAy+trEkohG/GBrRGRkuC7Pxbie\ngLmxvBrhOI6Tv3iyU7Q4OXjCtmMfuoNU9WcRifibfgZSg3srBXNp7XA7qeq8kCR8Hl6foapvhDUr\nz4nIBcAKotxZUeS0QPlL4H5sPVDEIVYaS34mZdn2K8yv9XF4vDDEOQQYKyKXhXO8GlvbcqCI9M4S\nwzhgAeYMAxiFedQ+BioDT0YfUFVXhWrKZBH5G7t+k1X1w7DJGKyq1T0qxqfFTPDbsCTld6CsiAzB\nprTGiki3cLw7Y1ynWL9H/GAbgY3s9IM5juM4hYR3UC4BhFuyf1fVWSJyCtBfVU/Nab/iRGH5uXKB\nd1BOEMkQI3icicbjTCxJFKd3UHZ2YRFWpUjHpqJ6F3I8BUoh+7kcx3GcQsaTnRKAqs7H1uyUSFT1\nCeCJwo7DcRzHKRw82XGcQsTdWDtx55TjOPmFJzuOU4i4G8tw55TjOPmJJzvFmD3xbRUFROQjzHGV\nht1d9jfQWVVXFkIs9YFDVHWyiAwFhqpq1h5IeWbTxrV77PkoDmzeuJZt27YVdhiO4xRTPNkp/uyJ\nb6socLmq/gwgIt2Bm8N/BU1brDnjZFXtm6hB81sXkSyUXbOBzG2LHMdxEocnOyWIbHxb47AuyBWw\nys8LItIeGBR2/Z+qdheR04B7sA7Jf2B3OLWKjAMgIitUtW4YsybmluqI9eJJwboMd1fV70TkOkzb\nsB2YqKqPxwg72mBZA+szdCLwAPAXppbYAvTC3s8ZwLmqulZEnsD8XKsw31d74C6sQtQQa0Q4EegA\n1AfOAX7Fevrsh4lB38R67NwKVBCRz7Euyd0wXUS06+sKoDZZnFuqmhbvb1KpVhWq1qke7+USRenS\nLit1HCd/8GSn5JHJtyUilTAlQ+vw3GmhWeBjwBGq+oeI3CwiDbAkoI2qrgwN/G7HmubFa7Q3VVWH\niUg7TFp6BaavqCgiB2ANCo/FkqApIvJ+pIoTxTMisglLiBSTbB4BlFPV1gChA3K74OoaCZwRmgXW\nCN2ma2EC1AiLVPVaERmBKSb+KSJ3YknPG8AXqjpWRMoBS1V1UHBliaq+JSJ9wjgDyez6Ogo4lF2d\nW3GTndQ1harNKjL4dXAcJz/xZKfkkcm3paqp4cN7DNYp+HlML7FWVf8I2zwUEob1UetlPsW6DGft\nEBw9FxHxRr2LdUJ+E6t43IdJPBtibqoUrDqyP9YlOprLsyZAIhI9NsBqLClKw/xbnwMHAF+E+NcE\n3USE/4Wff2JaCDBjenmsWnOUiJyMdUD+P3Ylco6xXF/vsqtzKy4F4cZKBAVhFHeHl+M4+YUnO8Wf\nnHxbtTGD+b9CJWMJ8AJQTUSqqeqfIjIsPFdFRGqr6irgRKxasiVqrIbYVFOEiCvrJGBFsKC3xpKd\nG4F5qtou7Hsj5u6KG38Wtked013YNFQKMCX8nIf5r4aHKbvmUftmtyb4SmBdmLZrBlwTdbys8yyx\nXF+/satz6554B0sWN1aydFV1HMeJhSc7xZ9sfVvBKVVHRD4D0oEHVTVdRHpiZvN0YLaqfiUi1wKv\nicg2rBJyJWb7/lNEvsBEpAvDcaMTijnARBHpEWK4S1Xnisi04O0qh7m3lmWJPccblVR1QxhjZoh/\nLbCvqj4jImeF11Zh62f+Jv6UW4QPgQkicgxWhfopGNTnAgNE5H9R+8Vyfe3Drs4tx3EcpxBxN5ZT\nLBGb6zpUVSeJSA2s0tNQVWNJUAsTd2MliGSIETzORONxJpYkijNPt2/67Q9OceU34OJQcXoX+HcR\nTHQcx3GcAsCnsZxiiapuwm55dxzHcUo4nuw4TiHibqzEkQwxQu7idE+Y4yQWT3YcpxBxN5aTFfeE\nOU7i8WSniCAijYH/APWwDsWbgH6q+kMBxtARu6spA7hdVa/bg7GaYo31ygBVgOmqemtCAt0DRORF\n4ApVTc/DPgm7LlkpCm6sipVrklLKl+85jlN88WSnCCAiFbCGe1er6lfhuSOAxzEnU0FxA/CDqv4E\n7OkH+mBguKp+ACAir4rIOar6xp4GuSdEPGF5JJHXJROF7cZKXbOBzkd3pkGDhtluVxBNBfeUZIgR\nchenN1h0nMTiyU7RoAOmVvgq8oSqfkNIdERkP8wBVR6r+lyL/e0mYE0AmwFfqWrP0GTvaXY29+ut\nqt+LyK9YE7wfgLHAUOxuvFpAj7D9ocCzInI58KyqHpOND6sf1oemMTBJVQdnOaeVwJUikgp8BXRS\n1W3BaxXPpZWds6oB0B/zYe2HqSvaAgdjPq9RInIeWRxZwEHs9GiNCeciwHCs0WAKpp/oiXVWzu/r\nUuRo0KBhjlMmyXA7ajLECMkTp+MUJzzZKRo0Bn6JPBCR14GqmIjyFOAh7AP9fRFpi31434bpFU7F\nuhgvEJF9MEnlh+HDvxkwDjgeSxAOCR2ROwF9QxJ0MXCVqnYTkW+xRGorOxvnxfNhNcASiQrAcqyS\nE83NWLIwJGw3OewP8Rv7ZeesmoNN8R0CHAm8hMlL6wOvhTibk8WRFWKL9mjdDaCq3cPja4FfVfW5\nAroumSgKugivIjiOU9zxZKdo8BtWXQBAVTsCBMN2aezDc4CI9MMqEZF+Mb+EW6wRkRVY5ecgrGvy\nhWHbiFJ7tar+GX5fBgwKgs0qWBfkCNF6iVrAhjg+rLmqmgFsCuNkpa2qDsd0DXthJvCBZO/Sys5Z\nBaaX2C4ifwILQqVoHVYJAvidXR1ZkNmjtYNwjc4O/xXUdclEsugiHMdxkhlflVg0eAM4RUSOijwR\nqjL7YZWEH7HFym2B7sDLMcaIfBj/CDwStu2EiT0hcwVlOKaNuArTIET2zeR/UtU1QOXgz4KdPqx4\nx47mP8EXFel58xM2lZSdSyuntbrRr2c6ZpQj6yLM/7Uly3ll2k9EzsTW31ygqpHXC+K6OI7jOAWM\nV3aKAKqaJiIdgAdEpA5QFvM83aiqv4nILcAIESmPVTluCLvGmg4ajLmZumEW8ztjbPsc8IqIrMXM\n3LXC858DzwLdoraN5cM6KM6xo+kEPCYi1bDpn4XYtNYWcnZp5eYGpUzbxHNkAYvj7PcKJh59O1jU\n36RgrovjOI5TwLgby3EKF3djJYhkiBE8zkTjcSaWJIrT3ViO4ziO4zgRPNlxHMdxHKdY42t2HKcQ\ncTdW4kiGGMHjTDQeZ2LZ0ziLqtfNk509INxNNDE0mRsHHIY1mEvBFqc+p6rjsuxzOLaIuAJWWfsI\nuFtV/47aZjYwQ1WvJwsi8hBwOFAH2AtYgN1WfmEe4j4YqKyqn0U9Vxq7pf1xVe0d9fyTwKmq2lxE\nhgNDVHVFnHEnAReFW693GxF5G/hLVf+1G/uWBharav2c4o2z/4nYLewKTMjLdd0d3I3lOE5xoSh7\n3TzZ2XOiP9hvVtUp8TYUkXrYHT8dVHVBeO524BGChkBE2mC3PbcVkYqqmhY9hqreHLbrDIiqDtiN\nmC/A7lL6LMvzv4fjpqhqhoiUwRK4yLF7kw2JSAxEpBF2N1o1Eamvqr/txjAZIZ5s441DV2C8qv4I\n5GuiA0XDjeWUTNyJ5pQkPNlJLDn9y3E5MCaS6ACo6j0islBEyqnqX8A1WB+dJdjtzE/k9uAi8gBw\nDNaI8EGsyd2nwADsNu8pwFkhjs0i8j9VnR01xN/ADEzDMBU4E3gfiKgdPgU6A1dhPYBqYx2Mb1TV\nqSLyG6Z7eAZIxTpD18bEm3NDt+LuWPVrG6ZeeDHLaVyNdUTOwBQO/UO1Zj7wDdAUmB06G98THu+D\nNU/sGbaJXI9IvKkhpiph3Mux29OfBP4P61TdH0v2TgMOFJFzgM9ChegI4NFwfTZjf6PyYcxlmK7j\nM1XtLSLHY0LXrUAacJ6qbo73NytsN5ZTMsmNE604ucaKAiUlzqLakd2TncTyQFSX4wzgelX9Pur1\nRsC7MfZbBdQJ/V2Owz7w52Mf+rlKdkSkPbCvqp4Q+vF8CXyIJSpvYh/kvUPfnucwNcPsGEO9CFyB\nJTsXY436Lo6xXZqqtgvN+W4I20cXKRaoag8R6Q5cIyL3An0wl9U2YHqMcyiFVVOOwBLHOSIyCGvq\nVw84RVWXiMgroS8RWCfjS0TkIGA8cFTUkJF4BgEvq+rYUDk7EuvDc7+qfhYSlFuDnmIK5g5bFrX/\naOAyVf1BRP6F6TsGYknOqVgStCioLc4FXsD+bh2xJCxusuM4hUVOTrQkugXZ40wgyRJnXvFkJ7H8\nO2L5jsMSrBKxg/ABXx9LRq7EEqXJ4WcdETlZVT/KxbEPAo4SkWlh39JAg/AB/SVwqKpOy2GMDFWd\nLiKPiUgNrCnhsjjbRhKl39ipc4j3+mGYx2tuZG1SaCqYlXbYOqSJUedwEZaA/aqqS8J2X2AerAxg\nGkCoHO2bZbxIHwYhJI2q+nk4/oGYguOacJyyMfaLUFtVfwi/TwfuCL//rKpbwngrw3W4B/OWTQ3n\nnnWqMBNFwY2VG5LhW2kyxAhFJ86i+g3ccfIDT3YSS05Njp4F3heRN7CpnElYp97JqrpZRK4G2qvq\nfIAgo7wOW8ScE/OBKap6XUigbseqDcdhicaXInKDqg7DKiWxlstH4v8AGAH8N5vjxVpqkpLN6z8B\nLUWkLFbZOYqdCVGErsCVqvohQNBNPIglO/VFpFZQNbTBDObHYou1XxKRQ4BfY8QBZno/CvhRRE7G\nqjEHAsPD9FtXdq7PyaSGCKwUkQPCOp6TyF4NcTnwlKrOF5GBWJVuSIztgeRxYyXDt71kiBGSJ07H\nKU746rTE8oCITBORj8LPO6JfVNWlwGVYleEtTEdQB/g/EWkVtpkftct/gWPDwuZsUdXXgHQRmQ58\nja0ZKQeMxCpGtwBXhaTgG+CGkAhFE0lQXgDas6uDKyPLz6zEfV1VVwNDsUrHO9hameg70OoArbCK\nSGSf6dg6m8Mwr9bIUKVaqKrvhc2OEJEPsfU318aJ4z7gglD1ug0zlr8EDBORjzG31T5h2y+xBCu6\nAncNMEpEPsHWHN0U4zwjv38NjAsxHcdON5njOI5TSLguoggQplQWRgzmxZFwZ9ctqjokPP4MuElV\nZ+Zi3x23k2d5/h5s7dHY/Ii5gHBdRIJIhhjB40w0HmdiSaI486SL8GmsIoCqzivsGPIbVU0XkWoi\n8g1W0fksN4lOFLGycs/UHcdxnBzxZMcpMFS1327utw1oEOP5QXsclOM4jlPs8WTHcQoR10UkjoKK\nsai2w3ccJz6e7DhOIeK6iOSiKLfDdxwnPp7sODkSfFEfYd6rl6Ke/w74RlW75GGsmJoLEXkR67Sc\nvpsxjsNcVtn1OdojRKQ2cLuqXpeoMStW3ZsqNeomajjHcRwnBp7sOLllPtbg7yXYcQfZXokaXFUv\nSdRY+YWqriI4zBLF6qVK6vrViRyyUCgpnqW0YvC3cpySiCc7Tm6ZAzQXkcqquhHrF/Q8YeGwiPQC\n/oUlQGswbUIZYBzmyyoLRCzux4jI+1ifoRGq+pSILMI6HY/Ceuo0wnoQXamq34rIBZhuIh0zwudK\ngCoig7F+N6WBoar6amhWeAfWCLAScAl2h9hkYDWm9GgHfIs1H6yMyVNLsdNyPwf4BNNfbAfOUdWN\nIvIE1uhwFeYGax/V+XkXioMbKzeepYKgoDoTe+dhx0k+PNlx8sKrWELzDNaR+H523iVVU1VPARCR\n9zD/1NFYH5yLRaQp8E9gPbBVVc8QkYbA28BTZL6NfLGqdg+dja8VkduAO4HDVXWLiDwrIqeo6lSy\nIXi7GgVfWDlgZnBftQQuVdWVItIfS2RexBoLHqqq20SkHfClqvYJXq+LsY7XkTirAC8E+efzwFki\nsgWooaoige3CAAAgAElEQVStRaQWsTstF0ty8iwVBMnSH8RxnILHkx0nt2RgCcHIUIWZTmYtw1YR\nmYCZvuthlRzBuiUTTO/Dw5qd/4V9VhJ7Kizaq9UGE27uDbwjIpFqTFOiui3H4SCsw3LEF1YGqxgt\nAx4TkY2YvX1G2H5RuM09Vhy1Y4z/bdTr5bFKzhfhfNeIiOYQX7FxY3m1w3GcoownO06uUdXFIlIR\nm47qT1AqBON4x1DRqADMwpKLiJPqLRFpgkkyPyDvXq1FmET1tFB16cyuXq2sY4CtM5oWqkQpmKl8\nITAFaKKqaSIyPmq/rMfNqWlh1tfnYm6s4SJSHZOVZou7sRzHcfKf4r+i0Ek0k4D6qvpL1HM/A6ki\n8imWSCwH9sXW3zQJ/qnxwMPZjJudV2sN8AgwXURmAmcSe4pomIh8JSJfi8hzqvoWkBZ8Yd9gVvdU\n4DlgRoi3Uog167HzkuhkhDjfAf4QkRnY1FwaUf4vx3Ecp3BwN5bjJAgREWzNzyQRqQHMAxqqanYJ\nj7uxEkQyxAgeZ6LxOGH27FncddfAHTcJbN++nR49etOy5YF5HiunONPSUrn1VnMh//jj9/zjH3aM\nfv0GUq/efrsR/e7hbizHKTx+w8z3N2JV03/nkOg4juMkhOOOO5Gbb74VgCVLFvPQQ/czfPjIhB+n\nYsVKPPbYKAAuu+yCfDlGfuDJjuMkiGCt71jYcTiOUxLZOUuzYcNGypcvD8Dw4Q+zePFi/vxzHeed\n14l//vNsuna9goYNG7Jkya8cccTRdOvWi+XLl/Hgg4MpVQqqVavBrbcO4sMP3+ftt99k27Zt3Hnn\nfdSuXSfu0WfO/JwZMz7h5pv7s2lTGrfcciNdu3bnuefGk57+N6mpqdx4480cfPChvPfe27z++quk\npMC5517A6aefle9Xx5MdxylE3I2VOJIhRoAaNQ4p7BCcYsiMGdNZsuRXUlJSqFy5MjfccDMbN26k\nQYNG9O59E2vX/kG/fn355z/PZsOG9Vx+eRcaNWpMnz69WLjwF8aOHc211/bkhBNaM2zYk7z99puU\nK1eOffetx4ABd+R4/KOOas2IEY+xfft2PvnkI9q2PRWAzZvTGDFiLCtWLOeOOwbw4IOP8uqrkxg5\nchwAvXpdQ5s2x1OpUqV8vT6e7DhOIeJurJJF2vrVjLqvEtWruyLESSzR01gR0tPTWbx4EffeewcV\nKuzFtm1m46lSpSqNGjUGQOQAli5dyuLFixkx4jGeeupJ0tI2c8QRR1Gv3n7Ur5+7ZqGlSpXi6KNb\n89VXM5k2bQoDB97FwoULOOggS+7r1t2XtLRUVqxYzu+//06fPr3IyMhg8+ZNrFy5gmbN8rdPlyc7\nJZSi7rsKTfleDg8PBRTYBDynquPyOl4Ox1qExb81zusdgZlYnTihbqxNG9fmeNuXU3CUFO2FUzL4\n4gtrITZw4F3MmfMt8+bNAWDjxg2sXLmS2rVrM3/+D5x1VnsaNGhIjx7Xc9hhLXnnnQ9JSUlh9erf\nKVUq/jrgrDc4nXHGPxk7dhTlypWjatVqAPz0k7UbW758GVWqVKVOnX1p2LDRjrU+zz8/nrp18z/5\n92SnZFNkfVfhdvOTQ1zTgG6q+nOiYstCTvnGDcAPqvoTCXZjFQddRHGhoLQXTZs2Ze3aTfl6DMcB\nOOCAAxk37il69LiaqlWrApaglCpVipEjH2PFiuUcf/yJNGzYiB49rmfo0AfYvj2dlJTSDBp0D6tX\n/57t+CkpmROhpk2bsWLFcjp37rrjuY0bN3LjjT3ZvHkzN93Uj2rVqnH66WfSs2dX/vrrL44++hgq\nVszfKSzwZKekkyy+qxSiGgYGw3lNoAbQAfgP1gm5LvCmqg4K28Q65jigCVABGKaqL0TGFpGWwFDs\nTqpaQI9wjEOBZ0XkcuDZ4MY6DWuSuBn4A+gCtAL6AVuxbsqTVHVwdn+ASrWqULVO9ew2cQqQgtBe\nlC5dOl/Hd0oerVodTqtWh+/yfK1atRg79vldni9VqhR33nlfpufq12/AI488kenW87POap/tcZ9/\n/uVMj7dv307lylU49tjjdzx3wAEtd5lea9++I+3bF+y9HJ7sOEnlu4piqqoOC8f7QlXHBv/VUmBQ\nnGP+G5OCtg6vnxZ+RuJsCfRV1e9F5GLgKlXtJiLfAtdiSUxk21FAm+DXuh64HROJNsA0FRWw5orZ\nJjupazbk8nSd/Mb/Fk5JIWtFJhFs2LCBG2/swdlnn0uZMkUvtSh6ETkFSTL6riJEvFNrgaNE5GRg\nI/B/8Y6pqqki0gcYg5nMs37lWQYMEpFNmOhzfdRr0ZWlWsAGVV0ZnvoUuA9LduaqagawKYyTLcXF\njVUUSESM7vhySgJZKzKJoEqVKowd+0Km5+JVnAoDT3ZKOEngu4rH9vDzSmBdqOA0A66Jd0wRqY1V\nkv4VqkBLgrE8Eudw4BJVVRG5E5uqixxrx6rVIPmsLCK1VXUVcCKx9RU5fn1yN1biSIYYHccpHPy2\nAweKtu8q1v7Rj6cCZ4V4ngR+EpG6cY65CqgjIp9hCdqDwXIe2fZ54BUR+QTYn53OrM+BZ7H1OxGu\nBV4L1+cULOnLGpvfaOU4jlMEcDeW4xQu7sZKEMkQI3icicbjTCxJFKe7sRzHcRynuLJt2zYWL16Y\n0DEbNWpSrO8U9GTHcRzHcZKIxYsX0v/hSQnrvp62fjVDbrowx7YLs2fP4vXXX+Wuu7K9ybRI4smO\n4xQiRcGNVdy/0TlOcaRi1b2pUqPgtSP5cdt6QeDJjuMUIoXtxsrtNzrHcZxYfP31TMaMGRkUEVXp\n338QP/2kvPDCM5QtW5bly5dzyimnccUVXVi2bCn33XcnZcuWpXbtOqxYsZzHHhtVIHF6suMkhN1x\nbUU7tUTkGmAscCDQQVXvzbLtBGAE1qyvvqo+lYfYXlHV87OJu3tokhh3u/yisN1YmzeuZcmSX3Pc\nLiejuFeHHKdk8p//DGHkyKepWbMWr7wykfHjn6ZNm+NYtWolzz47ib/++ouOHc/kiiu68MQTw+jc\n+WqOPvoY3nrrdVauXFFgcXqy4ySSPXFtDQCeUdU5mMYiJqr6fl6DykUCk5HL7RJOYbuxqgMTFrwG\nC3Z/jNQ1G7jngkFeHXKcEsaff/5JpUoVqVmzFgCHHNKK0aOfpE2b42jSpBkpKSmUL1+ecuXKA/Dr\nr4s48MCDwraHMmXKewUWqyc7TiKJ59pqKCIrVLUuZKrSEB53wfxVE0VkGDsrLb2Aq4EVWLflSDWo\nBaaaeBnrhLwXcJuqfigiVwPdsR5Sb6rqXZFji8hHWELWIhz6wujgs2z3LVZlqgxcoKq/ichg4HDM\nyzVHVa8WkTuwjtAV2dmv6N8iUiqMcUQ8m7rjOE6yEd2upmrVqqSlpbF27R/UqFGT2bP/R/36DWLt\nBUCTJs2YO/c7Wrduw7x5cwsoYsOTHSfRxHJtNSSbBnvBazUQSz7aABkisg/QG/NVAXwTtUsG1um5\nBtaMsDawv4jsjYk4D1TVrSIyOHSHjj72DFXtISLdgduA/2YZN8KXqtpHRO4FLhaREcDa4P9KAb4P\nzQvBjOh9RKQSMEtE+oW4puWU6BQXXYRrFhynYElbv7pQxvrmmy+55poryMiAlBS4/PKrGDDgFkqV\nKkXlypW57bY7WbDglywLme337t2vY8iQu5k48XkqVqxYoA4tT3acRBLLtRWLWMv5U7I83xSYp6rp\nACLydfTGqvqDiIwGJmLv48cwm/ncSIIRsaiLSPSuH4WfXwDnZHMu0V6t2pjdvLaIvIC5wipirjAI\nnq7g3voES3SuAu7KZnzAdRGO4+SdRo2aMOSmC3PeMI9j5kSrVofz9tu76gs7dOi4y3bRTqw33rDp\nqu+/n0f//oOoV28/Jk9+vUCrO57sOAklnmsLKCsiewHp7KzWRLMNiF7h+jPQMjis0oFWwHORF8N6\noMqq2l5E6gCfYZWkFiJSVlX/FpGXgRuyHOdwTH1xLPB9lteyc3mdhU1RXRREoB2jtt8etd1TWHWp\npqrOi3GejuM4e0Tp0qWTco1c7dq1ueOOAZQvX57SpUtz6623F9ixs012RCTW5NsOVHVJYsNxigmT\ngMtU9RcRaYolDo8CX2JLYRfH2GcG8DahGhJkmw9gFZjfgaxzKD8Bd4hIJyzpuF1V/wj7TBeR7dia\nneVZKjtXishNYbzLgYOjXovr8gqx3x4cXAALMXdWpm1V9asgJH0sxhiO4zgllkMOacVTTz1bKMfO\n1o0VpiIygPJYKX8h9g28GbBAVSXuzo5TxAgLj7upajzhaCKOUQr4FDhDVXOzGMfdWAkiGWIEjzPR\neJyJJYnizFN3w2yt56raWFWbYGsvTlLV/VW1BXAM8N3uh+k4hUK+trQRkUbALGBCLhMdx3EcpwDI\n7ZqdA1T108gDVf1aRFpkt4PjFDVUtW0+j78YW1vkOI7jFCFym+wsFZG7sbUYpbD+Kfk2FeA4JYWi\n4MbKDd5B2XGKDm49zzu5TXYuA+7GbvPNAD4ErsynmBwHyB8FRVTjwEeAh1V1aT7Gv6ORYjwK242V\nCNyv5TgFy+LFC7n95bupVKtKQsbLbRf0558fzzfffEV6ejqlS5emZ88bePzxR7jllgE0aNAwz8d9\n9dWXOO+8Trsbdp7IVbKjquuwW4kdp6BJtIIioobok+A4Y5HjGqGCcGNVrFyTlFLZLs9zHCfJqFSr\nClXrVC+w4y1evIjPPpvOiBFjAfjll5+59947qFJl9xOuZ599umgkO+H23Vj/FqcAGapafGteTlEh\noQqKqNc/AroBFwONgX2ABkAfVZ0iIu2x2+D/DP/NAT6JHieqStQSGIpN8dYCeqjqTGI3T8xEfrux\nUtdsoPPRnXfrW1c03kHZcUo2lSpVYtWqVUye/AatW7ehWbP9GTPmGfr2vY6xY0ezbt1atmzZwp13\n3kfduvvy+OOP8t1335KSksJpp53B+edfxODBd7F+/Z9s2LCBY445lg0bNjB06AP07dsv3+PPNtlR\nVf866BQFEqKgyGb8LaraTkROBfqKyFRgGHB06PfzfNS2GTF+bwn0VdXvReRirHvyzDydYT7SoEHD\nPZ5iSpbbUR3HyR9q1dqbBx4YyiuvTGLcuDFUqFCBa67pAUCbNsdz+ulnMnbsaD76aCqNGjVm5crl\njB49nvT0dHr1uobDDjsCgMMPP4pOnex756uvvlQgiQ7kchpLRP4PuBkQbDrrRuB+Fxw6BUAiFRTx\niFZDlMekoxtUdU14/lOsz1S8Yy4DBonIJqAKsD4XxwQKxo3lVRfHcfaUZcuWstdeFenffxAAqvO5\n6abrqVVrb1q0sJuza9Soybp1a1m8eBEHH2w3ppYpU4Z//ONAFi1aBLDHVebdJbcLlJ8AVmOt9tOx\npoJPYx1oHSdfSaCCAmInP1mrPr8DlUSkpqr+AbQGFgFbsK7JiEhDTEQKMBy4RFVVRO7Eqk65Ilnc\nWI7jlGx++eVn3nzzNR54YChlypRhv/32o1KlypQqVYqs/6w2btyYt99+k06dLiY9PZ158+bQrl17\nvvzy87B9hPxesbiT3CY7h6vqYSJylqpuCne8FKyf3Snp7LGCIpBVCbHL/22qmiEi1wPviMh6bC3O\nT5h5/U8R+QJbOB259/N54BURWQssxdbtxBzbcRwnEaSu2VCgY5144sksWbKYrl2voEKFCkAG1113\nAy+9NGGXbY855jj+979ZdO/ehfT0dNq2PY39999VuNCoURPuuWcQt99+dyJOI1uy1UVEEJFZWNfk\nmSHp2RuYpqoH5XeAjlMYiMit2K3pf4vIc8D7qvp8TvvtBq6LSBDJECN4nImmJMaZn312kuh65kkX\nkdvKzqNYb506IvIocC6Zvy07TnFjI/BlWIezCKssOY7jFDrJaj0vTHLbZ+e5UN05GVsD0UFV3Y3l\nFFtU9QlsrZrjOI6T5OTUZ6e9qk4WkSvCU5Ha1qEicqiqFo6r3XGKCcmii6hR45DCDsFxHGe3yamy\ncy4wGavoZJB5yXUG4MmO4+wByaCLSFu/mlH3VaJ69WzNF47jOEWWnJKdVgCqepWI3KSqD+d24OA1\negn4PjxVHnhBVZ+IdK9V1YTKRMNdYi1UtX+Cx90OjFTVnlHPDcem8xrvwbgnkqWzbzbbNgQmquox\nu3u8GGMeB/RX1X+Gx/2xfkp7q+r2EN+NqnpuHsctB8zPem1E5EjgXixprgy8rKpDE3Aqu03QT1RX\n1U+z2aZXeN+eAdRX1acSdfyKVfemSg1PIhzHcfKTnJKd6ErOpUCuk53AVFW9BHY0JtRwZ0t+kh+3\n+/4BnCAipUISUAo4IkHHyssYiT63mUD0HXWnA1OBY7FGeicD7+7GuCnEjvVx4HJV/UlESgOfi8jU\n4K4qLM4DVmLnG4+BwBOq+n6iD756qZK6fnWih83Enrqx0vI5Psdx8oZbz/NObu/Ggtx1os1unypY\n87f08PhOEamNSR0vDo3jHgKOI3TNVdXHRGQc8BfQCHMdXamq34rIpcANWKO3nzHP0Q5E5CZMFfA3\nMF1V+4tITawb7/9hfVPaAu2A51X16LDfROAhVf0marh04GPgNOB9LCmYQmiqKCKtsMZy6SGea7CF\n3JOxZozvhuPMB1qEMS8MP5uLyNuYm2myqt4VZ7zoczsNuAfYjCViXVR1g4g8gTV+XIX5ns4BPgCO\nVNU/RaQ7UElVHwJQ1XQRmS0iBwO/hr/XRKA99uF/ItBZRMoA44AmWM+Zoar6cqjQ/Q5UB87HpjWr\nYX1vYrESuE5ExgPfAseGGMoAI7FmlaWA21X1k2z8VP2x98R+wCjs73gwMExVR4WK1L3h+i0AumPJ\nejvs/dYEeAC7w/BK4K+wAL8h0Av7/yIDm8btDlQXkceBrwmVwzjvrzuI4dmKcy2A5HFjNW3alLVr\nNyUoKsdx9oTFixcyZeCt1KlUKSHjrUxN5bR778/xDq/Zs2cxaFB/Gjduwvbt29m2bRsXXHAxbdue\nmpA48pOcvu7F8gDlhbYiMi24hp4DrlPVyL+Yb6nqKcB7wPki8k+gkaq2Bo4HLglTDACLVfVMrDJw\nrYjUAO4ETlLVE7APwh3JTtjvfKC1qh4L7B/Gvw14TVVPBl4GSqvqz8AmEWkhItVDDNGJToQXMWkk\nwCXAC1GvjQZ6hnFHAI+E5/cBTlPVB8PjGWGbSSEWgHJYUnIC9kGb3XgRRgEdw+ufALeLyNlAjXD9\nrsYSgW1Yw7uLwn6XYX6paKaEY0cSuA+BU8NUVFVVXRKu7e/hWp4G3BsSR7CpydOxhGyuqp4U4ovF\npVgiNiL8fDhU/LoCq8O+HYEnQvVsGHBGeJ9sjhqnHpaI9AzXMZLIRN4Do4Fzw/VZjiU0AFVUtQN2\nvfur6nJgPJa8fQPsD7QL76kfw7EHA2tV9bowRkY27y8Ini1MqdI3znUoUCJurD35rzh/43OcZKRO\npUrUq1I1If/lJWk6/PAjGT58JI8/PpqhQx/nhRee4Zdffs7HM00MOVV2WopIpFZWL+r3iPU8J+nO\njmmsGPwv/FyJeYcOIEwlhG/7XwL/CNtEu4vaYN/M50UlTp9iH8JfhsctsAaI28PjGZhOoAX24RbZ\nJ8JTmLxxCZYcZCVDVT8XkSdDolUDq4RE2FdVIx2lpwNDwu+LVHVb1HYfhZ9fYB+4hPNIB9JFJFL1\nijceIlIL8zatjDqPwVgF6QuAIK/U8Po4zPz9KbBSVbPOSXyIVU9SgcdDhWg9cCZWzQL720wJY6eK\nyI/sVDZE1l01xypZqOpXIvJ39EFC8nS4qt4H3Cci1bC/xbVh/ONE5GjsvVUaqEt8P9W8MJ34J7BA\nVbeJyDqgfGh4WRd4SURSsLViU7AKz7dh/9+wJDMrq4FnRCQNe698HmMbiP/+gszv1VjHyIS7sRzH\nSVYqVKhAx47n8dFHHzJ16gfMmTObjIztXHjhpZx00ilcf303mjVrzsKFC9hrrwocfHArvvrqC1JT\nU3nkkScoX748Q4bcxfLly9i+PYNOnS7hlFNOy5dYc0p2mufLUY2slaIfgC7AMBEpiyU144GzYmy7\nCPiHiFRQ1c3YdMtP7Jw2m4/Zq0uFfU/AKhq1wrjfYR2hI7yCLcxdA1wQI9bIuO9iVYnXs7y+TEQO\nCgnKSexMALLGfThWaTiWnQu3YxFvvEgiU1lEaqvqqnDuCswDrgCGhwpV87D9kpAU3Ib5zDKhqvNF\nZF/g/1Q18kH9Qbge94THP2LX8A0RqQwcyE5VQuQD/wfs2r4VpuHKZjnUduB5EWmrqj+HabVfsWm6\nH4HfVPV+ESkPDAjXKZafCjJf10zTq6q6WkR+A85R1Y0i0gFrmZDVkh7ZbztQSkSqYElf/fDalKht\nsk7hxnt/HUoeK6DuxnIcJ5mpXr06EyY8R/PmLXjyyafYunUr3bpdyRFHHA1Ay5YHcsMNN3HTTb2p\nUKE8jzzyBIMH38W3385i1apVVKtWg9tvv4dNmzbRpctlHHnkUVSpUjXhcWab7Kjqr9m9vgfE8hG9\nIyIni8jn2AflpLA2J9a2fwTh4scisg34BehHmGZS1Xki8jL2zTwFmz56Q0RmAM+JyAXACmy9Bar6\nl4hMB2qp6p/ZxPsC8BVZ1tBg1YnHQyXhb2waKdZ5XhnWeqRi630OjnUtshkv+vXXwrmvw9YxrRWR\nduEcVwFpkfMDxmBTQpfGOBZYshQ9pfkutij3k/B4NDAmVIfKA3eGpCs69pHAs+E6KramZucBTLtw\nATA2rNHJwNbAjMXeh2NE5GPsLq0nNb6fKiuxrt+NYb9SmIH8CnaVc0b2mwX8B0u4ZmCLttOBtQTp\nJ/CDiDyLVcFivb8+De+vQ2PE4jiOU2xZuXIFp59+Fu+99w69e3cnIyODbdu2sWLFcgCaNzcnVqVK\nlXZUmStVqsRff23l118XceSRlhTttddeNG7cmGXLluZLspMrN1ZxQUTOwtaezBKRU7B1G6eG1x4H\nXlHVj/Pp2Plyu33U+AIcqqqTwlTbPKBhSDLOBw5U1Tvz49j5hRScn6owcTdWgkiGGMHjTDQlMc4F\nC35m7v33Ui9BScGyDes56NaBNG26f7Zxzp49i9dff5W77hoMQFpaKj17dqVDh44sWrSQW24ZQEZG\nBs888zSdOl1Cv359uOWWATRo0JA77hjAueeez6GHHsbw4Q/TsuXBrF//J8uWLeX66/uwaVMaV111\nKaNGjadatWo5xpxfbqziwiKsspCOVQquBxCR97EFsh/n47HzO6v8DXhARG7Ezu3fIUm4D5sKa5/P\nx88P3E/lOI4Tg5WpiVvrtzI1ldxavWfPnkXv3t1JSSnF9u3b6Nq1O8cffxKPPfYIvXpdw+bNmznh\nhJPYa6+9SEnZmY/E+v3ss8/lgQfupWfPrmzdupUuXa7NVaKzO5Soyo7jFEG8spMgkiFG8DgTTUmM\n063nXtlxnKQiWdxY69ZVyjbO4t6QzHGKEm49zzue7DhOIZIMbqycSFu/miE3Xej/+DqOU2TxZKcY\nI7v6yapg/WYuDb19kobQnfgSYBk7dRRTVHVItjtmHmO33GkicjywLtyF9Yqqnp+X/bNj08a1+b6Y\nKxHsqXLCcRynMPFkp/iTqbGjiLwAnA38t/BC2m0eVtXRezjG7uQWXTCNxrxEJjqQ/7qIRJC6ZgO9\nT+9B1WwqUN640HGcoownO8WfHYu4gpqhLtabBxEZjLnISmPKhFdFpCfWl2Yb8LWq3ihmXB8btssA\neqvqXBFZoap1w1gTsIaLjbHkIAWIuKJ6YHeIvRncXxcAfbB+NjNUdYCItMFEs1uBTcD5qpoW71yi\nzqkDpoboEh7PAs7AvFX/wlxYazC9RGSfTAZ5EfkibL8tnEO5cJ0GAkuxbtKtROQH4CtVrSvxfWgT\nsE7czcK2PbP741SqVYWqdapnt0mRoHHjxlSv7nZ2x3GSE092ij9tRWQaplrYDoxS1Y9E5EzMA3ZC\nUDnMFJEPgc6Yl2uWiHQTs5M/BDyiqpNF5BAs8TmS+FWStap6blA3jMJ6/GwVkcEiUh/zmh2uqltE\n5FkRORVzc03Cmh+ejclFsyY7fUXkQnZOY90HvI3dcl8BUzYsCA0PawanFiLyXog3mljetxaYBHa6\niByDNU88I+z/oqr+FtVIcTQmYJ0r5iV7BOs6vT9wKpYALRSRfVT19zjXidQ1G+K9VGRIhhgdpyTh\n1vO848lO8Weqql4SGg1+wE7lwkHAESERSsHeCw2xqszNItIIc22lkNlbNkdE9gtjRFdaon+PeLma\nYHLQrWHfASJyJLA31uE4BagUthuMKS2mYtWUmTHOJeY0loi8ApyHKUDGhKe3hmpTGiYOzaqviI43\nshhlBTBQRCIdq8vG2R7i+8t+iTjbRGQ51nE6LgXhxkoEbj13nKLD4sULGTXsVapX3Sch461b/zvd\nbjgv25sMHn/8UVR/ZO3aP9iyZQv16u1HtWrVufvuIUydOoX777+biRNfo2bNWjv2mT79Y155ZSIZ\nGRls3bqViy++jJNOOoV3353Mr78upnv36+IeL9F4slNCCDqJy4GPgtZgPjBNVbuHpGMgtnj5PqzT\n89ZQ0TgG816dgHmvDsXkrQBlRGQvbCqnZdThIr6sBUALESkbGhy+DNyETfOcFgSenTF55mXAOFW9\nJXROvpadbq4I8foqjMUqSDVUtZeIHIRZ4VuHis+sLPtuAfYO510Vm2ojHG+0qr4vIldiVa7I+UQS\nosg4cf1luYh3B8nixirO3/gcJxmpXnUfatXcN+cNE8R1190IwLvvTmbJkl/p1q3XjtcmT36d88+/\niDfe+C9dulwLwLx53/HyyxN46KFhlCtXng0b1tOt21U0bmwO6egmgwWB315RglDVH7FpomGq+haQ\nFlxW32Bm9zRgLjBDRKZijq0vgVuA60XkE+AJrPoD8ChWgXkJWBzjeGuAB4DpIvIZ8I2qLsGmfKaL\nyFI6rTIAACAASURBVExsPcxPmHPs6TCVdjLwbIxT6CMi06L+GxGOsxibiooIWn8BUoPLawomFd3x\nr0IQqH6IublGAz+Hl14GHg6OrlMxcSzhGtwvIi3YOeUV8ZdNxzpx9wnPx5oecxzHKZasWLGcjRs3\nctllnXn//XfYtm0bAG+++RqdOl1MuXJW3K5SpSpjxjxLw4aNCiVO76DsOIWLd1BOEMkQI3iciaYk\nxrlgwc+8NP7ThFV21vyxnE5XHp+jGwt2reyMGTOCWrX25txzz+eee27n2GNPpG3bU+nb93p69bqB\npk2b5TjG7uAdlB3HcRzHyXe2b9/OBx+8y7771mPGjOls3LiB//73Jdq2PZU6derw++8rMyU7c+fO\noUaNmoUSq09jOY7jOI6TZz7/fAYHHNCSYcNG8PDDwxk9ejxr1/7BwoW/0K7d2bz44nNs2bIFgHXr\n1jJ48F389Zc9LuhZJa/sOE4hUlzcWEWBZIgRPM5Ekyxx1qhxSELHW7c+bkeLAhtr8uTX6dDh3EzP\ntW/fkVdffYlbbhlAhw7n0qdPT0qXLsPWrVvp0aM3TZo0Q3U+7733NrNmfUVGBqSkwGOPjaZ8+Wxv\nXt0jfM2O4xQiJ1/QLyPZ3ViO42RP2vrVjLrv6oQ15nTrua/ZcYoxItIPu0uqLNbt+BZV/V8BHLc+\ncEhoqjgU6za9NBFjJ4sbqyjgfi7HMdx6nnc82XGSAhE5ADhbVY8Njw8GngFaFcDh22LdlSerat9E\nDpwMbqyiQOqaDXQ+ujMNGjSMu02NGskyneFxJpJkidMbcxYunuw4ycJ6oL6IdAHeU9XvROQoETkQ\nc1QB/IH1ADoM6A/8BeyHNRxsCxyM9RgaJSLnAb2w/wcyMHfWQUA/zM/VGJN/PgDcClQQkc+BvkA3\nYC2WbFULx74CU3Lk5PdydpMGDRpm+202icrvHmcCSZY4vTFn4eLJjpMUqOry4KC6HrhDRNKwrs+3\nAFep6vyQCPXDGgnWAw7BnFgvYUqK+sBrWPLTHGgX/FwjMXnocqABlvRUAJar6hARuR8QVX1LRCLN\nAwcCb6jqaBFpDRwFHErOfq9MJIsuoih8e3azuuM4u4snO05SICJNgY2qenV4fBjwHmYof1JEwNby\nRLohz/v/9u483M7x3OP4N4aKmSjBKYLy02oPqmpoL1M5yqHoSFFjUZSqqYoqNVWLDooS84m5TalS\nVVFiLq2ZO8YaU4lEIomQSM4f97NkWVl7SPbOXkN+n+vKlb3ftdb73uvNsO79vM/7/CJimqS3yHDQ\n9yWNLc8HeAO4tDRNAu4p2x+LiOnAJEn1xpwrk+IEXAgQEfeRQao303W+14e0SlxEq/z0bGZWj2f7\nWav4bzKeoRLO+SzwFtncfDsiNidHdW4sj1fP+/3QrH1JiwEnADsB+5BZWfVm9le2VWdjVTxJjuYg\naeMy+rMLme+1eXl831l8j2ZmNgd4ZMdaQkQMLdlU/5D0Ntl8HA68DFwuaT6yKdmbvIRVbXrNvsZL\nuosceZlKzr9Znsz3qpdt9RjwI0n/rNp2KnCRpF2rjrsMme81kbxbzM2OmVkT8Do7Zo3lbKxe0go1\nguvsba6zd7VQnbO0zo4vY5mZmVlb82UsswZyXETv6U6NlVVizWzu4mbHrIH2O+ZCHBfRNyaOG8Wp\nh33TK8+azYXm2manN6IH5mSMQNUxdgDui4iRdR47Evg+MCgi3puNfR8PvB4R53fz+QOB4yLioG48\ndz5yYb8tyfP7XnntA528ptNzKOkK8s6rqd2pt87rf0Kuj/OxyvmUtDTwKnlX1iPAdhFxUgev3wpY\nISIGz87x61l48aVZbEDv5OWYmVl9c2Wz04vRA3MsRqDKIeRtzDM1O+StzlcCO5P1z1ER8R+gy0an\nOBGYJyI2BpC0IvBnSdtGxL872H+n5zAivjUr9dYxHQjgG8xYdXkn4N9l/4+QDU9Hx7+lh8efyahX\nggnjRvX2bvtcK+RWTWyD82xms2eubHboIHoAoJP4ge7GCOwMfBz4KLAU8Fvgq8BqwO4R8YCkg4Bv\nkbcsXxURZ0u6mIw3GAQsC+xB3g69NnCZpC9Uj2hI2oRca+Y8YAil2ZF0O/Aw8ClgUeDrEfGypFOA\ndUtNj1QW5yuvORl4NSLOkbQE8DfgS+RqwP2A/sD+5bxdFREbltdsCswL/D4ifl5zjnct7wWAiHhJ\n0tnAnqXGY8r7HwicHxHnlu2Vc7gyeSv3isChEXGrpBfIxfyWAy4qx54OHBwRj0kaAdxFNqAjga+W\nBQKrXc2Hm51tgT9VndP9I2JnSc8Aw6v3RUZCrFHO+ZXAS+Sf9QMRcYCkpYArgI8AI4DNI6LTaybt\nkI3VndyqvtCdVZ69CrPZ3GmubHY6iB44howSuID68QPdjREAmBQRW5dLZVtHxJcl7QHsVNaI+Sbw\nebKRuFXSX8vrXoyI/SXtA+xbPkAfLl/XXrrZBxgcEc9IelfSehHxj/LY/RFxqKSTgJ0lnQuMiYit\nJPUDnpBUfe1kMPnhfQ7ZhP0fuWDeaPIDfk1gYbLZqTQPO5PNzkhg9+rCyqWhNyNiWk3NLwDrl68r\njdx8wKOSruPDa9xMjohtJG1BNpK3Vj3+C+CscvlwLbLxWY+MhNi0/PneVbbVXjb7DzBR0iCyWXqJ\nXFSwonKMlYFNyr6Gl31VP74aeRl0MvCcpGXI5ndoRJxX6t6SuURXuVV9oVVumTWzvjdXNjt1ogfW\nBW6W9HfgE9SPH+hujABAZe7PW+QlKICx5AjJp4CVyEiBfmSQ5MfLc/5Vfn8Z2KiDfVNGX7YBlpZ0\nMLAYeXmp0nRU72cg8A4wUNIQMqtp4fLeAIiIFySNL5f3dgG2K/WuBtxAjmjVzmPZlRzdGgjcXPPY\nW8AASfPUNDyrkc0FwD2lgZsq6Qlg1Zp9VL+H/jXn4hPkqAsR8Yikj5XHRkfEax28rmI6My79zU+O\nim1V53mjqvb1Sp19PRsRkwAkvV4e/wRwSXl8eJ19zqRdsrE8YmJmzWyubHbI6IF9JX05IqaQDc1Y\ncjXdp8lJsK9I2oi8pAT14wfqxQjUPrfW02Ru0zYAkg4BHgW+3sHr6h1jN3JU56iyjwWB5yV9tIPj\nb01OrN2pPGcHZo5HGAwcB7wcEWMkbUZOXt6qBF2eQl7S61ciG74eETuX4z8p6aqIeBkgIqZIugY4\nWdKPImK6pFWA75KXjVYC1imjTAsCnyQv+1TXVO9c9CvbnwQ2Bv4kaW1mzGfq7gqZfwD+CoyPiBPL\nxOOeqNT9GNmkPgps2J0XOhvLzGzOa+4ZhXNIRAwF7iSjB4aTIxOHR8TbwAFk/MBwMhLg0Tq7qI4R\n2F7SN6q2dfqBGxGPAcMk3SXpH+Rox2udvO4ecs7OElXb9gIur9rnO8Dvge90sJ/7gVXKyNV1wPPk\nZaTq5w4lL8tU7jR6BNinzKM5nWx2AKaXBnGMpPskDSPnPb1cc8yjyObxPkl3kknje0fEi+Xx+cnz\nfgfw04gYQ9fnsLL9COB7ku4g50TtVed1Hf45RMR4cuTnoU6e29W+6j3+M+DLkm4jLzNO6agGMzPr\nO46LMAAkLQTcHhHrd/nknh9rE2C/Xri7qqlI2hp4IyIekvRF4OiI2KKLlzkuope0Qo3gOnub6+xd\nLVTnLMVFzK2XsayKpA3JkZfjG11Li3uBDAedSo6aHtzgeszMDDc7BkTEveQ8pr463h3k5au2EhFP\n8+GJ5WZm1gTc7Jg1ULtkYzlzysyamZsdswZqh2wsZ06ZWbNzs2MN1dOMsq7yuqpXRa7athI5v+aH\nEXF61fYbgEUiYvNuHHcB4OmIWFnSWcAZs5OL5mwsM7M5z82ONUxvZJR1M6+r3i2Hz5EREKeXYw8g\nF3esl0FWT2XNHyLi0C6e26F2yMZ65+0xvPRS7ZqQfW/AgLUaXYKZNSk3O9ZInWWUrQ38hlyrZzLw\nnbLQ47HA9mTUw7nk4oCVvK6vAgeSf6+nAzt2cuzRwGhJiohKOOg15GKFlRGhk8rxnyMzu/qTKy4v\nUbZRnlvJ9JpYalqAzO86NiJu6OwEtEM21pLAlc8NrTojfW/C6PH8dsDpLLmkR8nMbGZz5aKC1hxK\nHMOXyZyweyU9Sa6wDJlRdkBEbEY2EGeVBmiriFiPzO5anaoRlvL9NiVp/Snqx0BUq8RGQDZQf6x6\n7Hxgx3L814A9yTDUxyJiU/JW/VprAL+IiK3I5qe7CfFmZjYHeWTHGqaLjLLly2rTkKtdn0Y2Mw8A\nlFytI8r8m4o3gEtLsKvI1ac7Mp1sbu4qifOvkxlilSDT5YBrSqRFfzKIdBngz+X4D0iqXSH5deBY\nSZVE+S7/fbVLNlYzWHXVVRkzpl5snZnN7dzsWCN1llH2qqRPl4ZnUyDIXLHvApR8rj9TRk8kLQac\nAKxASZNn5vyvD4mISZKCnLdzQdVDo8k4ie0j4m1J2wFvl3o3IjO51qEqTLX4KXB+RNxSUu53pwvO\nxuo9vvXdzDriy1jWMF1klO0LnF3yr74HHBoRjwJ/kXRPed3lwLtlX+OBu4D7yMTxSWT+V1eGkJfR\nbquqazrwfeAmSXeTDdbj5KWrVUrW1wHkXCKYcRntWuCMMjK1BVAJZjUzswZyNpZZYzkbq5e0Qo3g\nOnub6+xdLVTnLGVjeWTHzMzM2pqbHTMzM2trnqBs1kA9zcZyJpWZWdfc7Jg1UE+ysZxJZWbWPW52\nrO31NH9rFo4zUw5XVya9PaZulkXFwosuRb95fLXZzKwn3OxYW+uN/K1ZNEu3N3YWFzFh9Hh2X393\nVlxxpbqPQ17GMjOzzrnZsXZXL39r/ZJn9TQZ8QDwzYh4Q9IpwBfI7K0zI+L3kj4F/Lo8701gr7LY\n4G/I2Ir5geOB8cDqkv5MrrZ8Y0Sc0Flxi3x0MRZfdskOH19xxZV8mcrMrIc8Pm5trYv8rbtL9tXV\nwDGSvgSsXLK1NiejHxZnRk7X5uTCh0dJ2gFYKiLWBzYDPlv2uQCZs7Ux3cjGmjB6PONGjq37a8Lo\n8b10FszM5m4e2bG2Vid/6zPAX8hwz2HlafcCOwCvAOtKGkZGTcwHDAI+AZwjCXIU5xkyp+tegIgY\nBxxf5uw8XnK7ptbJzppJV9lYvkxlZtZzbnas3dXmbz0LvEVOVF6XbHo+T8ZBPAUMi4j9SwDoscBz\n5OWub0fEK5I2ApYFpgDfACijP1cDp9Ycu8sVPlslG8vMrJX5Mpa1tZr8rbso+Vvk/Jo9So7VNsDJ\nEXEjMLFkXz0ITI+ICWQO1uUlv+tU4NGI+BMwtirT66xyyOoJys5iMTNrAs7GsrlSmaC8X0SMaHAp\nzsbqJa1QI7jO3uY6e1cL1elsLLNucJdvZjaX8JwdmyuVO6vMzGwu4GbHrIF6mo3VV8aOXaTp6+yr\nGp1HZtZ63OyYNVBPsrGs7zmPzKw1udkBJP2CvA15WWAh8nbjURHxzV7Y9zbAwIi4uAf7WBL4BbAq\n+Wf2IrA/8A7wYkSs0IN9fxHYIyJ2q9r2GWCriKi9lXpW9rs+cCJ5+/WiwFUR8atZ3Md/A4tGxN2z\nWcPewHHA82XTAsAZEfGH2dlf2eevgNMi4vXZ3Ue1rrKx2oUzvsyskdzsABFxOICk3QFFxI96cd83\n9cJurgZ+FRF/BpB0OHAOsCe9M9H2Q/soIZk9Dco8B/h6RDwvaV7gfkm3RcTjs7CPr5ON3Ww1O8Vl\nEfFjAElLAf8CZrvZiYhDelDLTDrLxmoX3cn46g0DBvTdZSwzay1udjpRPqTPB5YHlgOGRsQJklYD\nLgYmk6vuLh8R/yNpX3LE5U1y0brLgAXJVXgvIQMoXwU+TkYVHCxpaWAIuTLv08AWEbFaVQ2rAEtU\nGp3iTHIECmAhSUOAlYCRwDeBnwAvRMRFktYEfhkRW0p6FLiDXGhvChlrUDnOQsBQ4MJS/x7l1xPk\nSsFrAK9GxNckLQhcTuY/vQxsEhEfqzl9I4HvSboMeBjYICKmSroaGBwRt5baTgb+BGwJLAKsDJxC\nro2zG/COpH8Cq5VzOz8wFdiRjGQ4NCI2k3QyuS7OsTV1VN+euCQwsbzfb9TZ37rAScB7wLnAWuUY\n8wFXR8SZZV2d3clG82PAQGAF4PsRcZuk7YEfkwsXjgMejIhTmMv1RcZXq9wya2Z9z81O51YEhkfE\nJZL6Ay8BJwBnAMeXD7f9ga9IWgY4lGwk3iebiorKyMnHgS3IRuMFST8hL7NcExGDSzbTF2tqWB54\noXpDREwDJpRmbFHgyIh4tSyG9+k676Ny/CWBSyLiIUlXAVuRH8iLkQ3HzyPiL+XSVuU1q5DNzH8k\n3VMucW0KPF0an08CX61zzJ2A7wO/I5u9IZKOJHOm9gRuBfYGBpMNwyIRsa2kNYBrI2KIpMvJpu1f\n5dx8KSLekzQY2DIirpW0ZWmolgP+p04du0n6fHk/E4BdyvZVa/cHjAHmi4gNASSdRoaCjgJ2rTmX\nABMjYptS2yGS7iAXF/xsRIwp57hTXcVFNIuejpp4NMTMGsnNTufeBDYqH/7jyVEAyKyke8vXw4Gv\nkCMPj5VIAiTdV2d/z0TE5PL4SKB/2dd5Vfuq9RI5cvABSfOTDca1wBsR8Wp5aCQzRnwqahdeerj8\n/nI5/jiyeXmCnNNS6z8R8Z/y9StVNQ8FiIgnJY2pqa8/sE5E/BT4aZlzdBmZFv47SWeVS0qbAYcB\ne5GXlyp11atjNLmK8cRy/Equ1enknJwdI6LeJb0PLmN1c39R9ZzdyLlSywA3lm3V57O65v5k0/Zm\nRFTOx3Bg8TrH/kCrxEV41MTMWplnDHZub/LDfjfg18DCZftjwEbl6w3L7yOANSXNL2ke4HNd7Lvy\noVlvXx+IiJeAt8tE54rDmJHcXW+fk8kRIchLM9XqNQQ3kA3b6ZIGzkrNklYHBtQ5xpASwklEjCWb\ntsrklCuA3wA3VTUo9eqaBsxTmqVjy4Tx75T9VGo5j0wXP0nSop3U/oEu9jetPKc/2UDtRI627S9p\nuTrvs9pIYMmyf4ANulOPmZnNWW52Ovc3YLsSLfBr4Lkyx+ZI4DhJt5K5SlMiYhQ5l+Zu4CbgI+Tl\nqmr1cpNOBb4q6Tby8k69pOxvUXKcJN0LfJKcb9LRPq8Eti/7/HSdx2u/poze/JS8rNTR8ypfXwCs\nXs7LMcxoYir7epecO3SppHtLze+SozuQ85e+Vo7VmQfJS2FrAg+U0bI7yctRy0v6AfDviPgd2Tyd\n38X+Kt6qt7+a9zAZGF+eMwy4vtyB1WFzFhHvA4cAt0j6a9lnl8nnZmY2ZzkbazZI2hW4KyJelLQf\nsA45unBE5XZtSXcDh0VEvctZ1fv6X+C1Mi9lK3LC7Zfm8FvokTIHZoGIGCZJZCOwxiy8fgXggmZ/\nn7ND0tHk3Kepkq4kz01nc3ecjdVLWqFGcJ29zXX2rhaqc5aysTxnZ/a8AlwnaRJ5585e5cNtCUkP\nkj/N391Vo1O8CAyWNIW8lHLQnCq6Fz0PXCHpRGBe4MDuvlDS18hJ2d+ZQ7U12iRy1Ogd4FngugbX\nY2Y21/PIjlkDjRgxYnor3I213nprMWbMpEaX0akW+onUdfYi19m7WqhOj+yYtYpWiIuYOG4Uvzt5\nEZZcsnZ+tplZa3Cz0wIk/R34SUT8vWrbL8m7otYEzoyIV+q8bitghYjoaiJwZ8d+D7iLvMQ2Pzmp\nfeeI+HcHz5+lVaglHRgRv+3mc9chF/1bnJzwPAY4JCJe687rZ1eZl3ReWbzwCuDbETG1N/a98OJL\ns9gANxFmZnOSm53WcD65au/f4YN1drYFjo6Idzp6UUTc0gvHHh0Rm1e+KatEHwYc3Av7BjgW6LLZ\nkbQs8H/ADhHxTNm2PfAzcj2cOW06QER8qzd3OuqVYMK4UbP9+r7InJrYg/rMzJqBm53W8HvgFEn9\nyy3R2wN/jYh3yu3f+wEfJVd2fo+cJPu18muNiDha0mHk7eBTgDvLtuPJeIZlyNWiD42IW2uOXXtd\ndCVgLICkXchbrScDz5Q6IBdi/Bu5uvMJEXGTpC3JW9vfIRdr3Juc2DxA0tnAr8gIjink6NG3qhZL\nBPg2eQfXM5UNEXE9cH2p5XbgDXKV6G3J2ItVyr7OLKst3w7sFxEjyl10A8kIjyvJdYA+DjwQEQeU\n5mpIOVRlUUUkvQCIXBn6XXJ16GXJMNWHleGjB5b3OIUMQK3ccj+TnmRj9VXmFMCqq67a9HN2zMw6\n4manBUTEu5L+SOY3XUmux3N0ebgyw3wHSmAosB35oQ8wXdKnyMZng4iYJum6css7wOQSebAFOWJT\n2+wMkDSMvHQ0gGy8TpY0gMzgWisiJkk6g2x2JgATSvTD0sB9kv5CNgcbRcRISQcDx0TEkZIOioiD\nJB0A3E+uYbRxOV51s7MyUAlC7Q/cXLZ/rCpLbEhE3CDpQHJl6d0kLQI8VN5DR1YjYzwmk2spLUOu\nH3RFRFyoGTla1ecbMnF+f0n7APtKOq7UX8keu72TY/aKvsicAph33nnn+DHMzOYUNzutYzDw85K/\ntEREPFq2V0ZeTiE/oG8jb41/oOq1awD3lUwtyDk4a5avu4ppeDMiNpfUj1wM8L3S3HwSeDwiKj/u\nDyfzpe4v+yciRkkaRzZJ4yNiZHnunWQAaHX9FwJHAbeQi/7Vzvl5mRypqSz4txmApOr5OiPK75+g\nNG0RMUHSU2QWVrXqEatnK+9D0utk9MPqzFik8G5mNDvVqs/dRuTI0BNlUUUk3VPnNR/S02wsZ06Z\nmXXNzU6LiIjHSxzCwcBFdZ6yK3BxRBwh6YfkOjYvlceeBn5QYiymkyMnlwJrUz+moVq/cvzp5dLP\nw8rk7weAT0pasMwb2oRsNvpRojLKpaBFImK0pEUlDSwrNVee+8H+yUtzwyPiREk7kY3P3lV1XAbc\nJOmmiHi27H9dMim9otLMPVXe4/XlnH2KXBtoMhkYOgL4DNkU1n2/ZFbYRuQk8M/VeRxmPnfPAmtI\nWoAc2flcqaVDrZKNZWbWyhwX0VouAvYhL2VVVD5wHwAuLHNlNmNGNAMR8TgZGnoPcB/wfJnv0h0f\nfKCXEZV9yGiGSeRlrL+XEYylgHPLU/uXqIo/AvuWbd8BhpZG6Yvk/B2AJ5Sp5f8ATiyv268c4wPl\nbrNdgDMlDSsRFCcDX66tkxyRWaocaxh5J9toMvLjXEk38+G/+/UiMU4GdiyXv7Zl5piIenERb5LB\npMPJyJD+OC7CzKzhvKigWS+RNC9wVEScUr6/E/hRRNzVycscF9FLWqFGcJ29zXX2rhaq04sKmjVC\nRLwvaWFJD5F3at3fRaNjZmZ9wM2OWS+KiGPIieJmZtYkPGfHzMzM2pqbHTMzM2trbnbMuiBpE0lv\nSfqvqm2nSvp2+fqGqu1HSnpN0kcaUauZmc3MzY5Z97xLxll8iKQVgOpQ1F3IpQF27qO6zMysC252\nzLpnGDCmRFFU25YZMRabkAsLnkfmY5mZWRPw3Vhm3TMdOAB4oGR9Qa6mvCkZdQG54OLgiHhG0ruS\n1ouIf3S20xEjRvQoLqKvjB27SNPX2Qo1QvvUOWjQKs5Ms5bhZsesmyJirKRDyaiNu4CFgGkR8Z6k\nJYBtgKVL0OliwEHA7p3t8+oDDmLZRRbp7ClmTWfkhAlsedJpfRJCa9Yb3OyYzYKIuFHSjmTy/Elk\n8CrAbuSozlEAkhYEXpC0VImRqGv0pIn06zKezKy5jJ40iffff7/RZZh1m5sds1n3fTLf63RKEjuw\nF9nwABAR70i6jswEO62jHY1faVPmXXyZOViqWe8bP+4NPpyJa9bc3OyYdSEi7gDuqPr+bWBQzXPW\nqfO6g7ra95KLL8NHl1q+F6o061vzzuv7W6x1uNkxa6Cx495odAlms8x/b63VuNkxa6CjT9i9Je7M\nGTCg+e8gaoUaoX3qHDRolQ4fM2s2/aZP9+RIMzMza1++6GpmZmZtzc2OmZmZtTU3O2ZmZtbW3OyY\nmZlZW3OzY2ZmZm3NzY6ZmZm1Na+zY9bHJPUDzgHWAiYD+0TE842tqj5JDwHjyrcvRMTejaynlqT1\ngdMiYjNJqwKXANOAxyPiwIYWV6WmzrWBG4ER5eFzI+LaxlUHkuYDLiJXBv8IcDLwJE12Pjuo82Wa\n73zOA1wAiDx/+wPv0kTns4MaP0KTncsKScsADwJbAO8zi+fSIztmfW8HYIGI2Ag4GjizwfXUJWkB\ngIjYvPxqtkbnCPI/6wXKpjOBH0XEJsA8krZvWHFV6tS5LnBG1Xlthg+TXYHREbEx8CXgbJrzfFbX\nuTVZ52dovvO5HTA9Ir4AHAecQvOdz3o1NuPfzUqTex4wqWya5XPpZses730B+AtARNwPfLax5XRo\nLWBhSbdI+lsZnWgmzwI7Vn2/bkQML1/fTP4E2AxmqhP4X0l3SBosaeEG1VXtGvIDD2BeYCrwmSY8\nn9V1zgNMIc/nts10PiPiemDf8u1KwFia7HzW1DiIrLHpzmXxC+Bc4DUygXaWz6WbHbO+txgzLg0B\nTC1Dys1mEvDziNgK+C4wpJnqjIih5IdyRXUM99vA4n1bUX116rwfOKL8VPo88JNG1FUtIiZFxERJ\niwLXAsfQhOezTp3HAg8AhzfT+QSIiGmSLgF+DVxBc57PSo2/AoaQfzeb6lxK2gN4IyJuZcY5rP5/\nqFvnsmn+4zKbi4wHFq36fp6ImNaoYjoxgvwPkIh4BngTWK6hFXWu+hwuCrzVqEK68MeI+Ff5eiiw\ndiOLqZC0AjAMuDQirqJJz2edOpvyfAJExB7A6sBgYMGqh5rmfNbU+NcmPJd7AltKup0cbb4MWLrq\n8W6dSzc7Zn3vbmAbAEkbAI81tpwO7QWcASBpefI/ldcbWlHn/ilp4/L11sDwzp7cQLdIqly6/CLw\nUCOLAZA0ELgFODIiLi2b/9Vs57ODOpvxfO4q6Yfl28nkhNoHJW1StjX8fNapcRrwB0nrlW1NdMu+\npwAAAk9JREFUcS4jYpOI2CwiNgMeBnYDbp7Vv5u+G8us7w0lf1K5u3y/ZyOL6cSFwMWShpP/Ee7V\npCNQFYcDF0iaH3gKuK7B9XTku8BvJL0HjGTGvIlGOhpYAjhO0o+B6cAhZJ3NdD7r1Xko8MsmO59/\nIP/t3EF+zh4MPA0MbqLzWVvjIeSdbWc32bmsZ5b/rTv13MzMzNqaL2OZmZlZW3OzY2ZmZm3NzY6Z\nmZm1NTc7ZmZm1tbc7JiZmVlbc7NjZmZmbc3NjpmZzTZJgyQNbnQdZp1xs2NmZj0xCFil0UWYdcaL\nCpqZzQUk/QzYgUwKP59Miz4fGABMAA6OiIckXQzcHhGXlddNi4h5JB0P/BewGrAiMDgiTpX0CLAy\nmVX1vT5/Y2bd4JEdM7M2J+lrwIbAmsDnyIiSG4FfRsRawA+A35fl92tV/0T8aWALYAPgaEmLkVEI\nD7rRsWbmZsfMrP1tAlwTEVMjYhLwBWCpiLgeICLuJ1Pt1cV+bo+I9yNiVHn+4nOyaLPe4mbHzKz9\nTan5flWgX822echAyOmVx+qM9Eyu+b52H2ZNyc2OmVn7uxP4iqT5JC0EXA1Ml7QDgKQNgIHA48Bo\n8nIX5ByfrkwF6l3+MmsabnbMzNpcRPwRuBv4J3A/cBawEXCIpEeBXwM7RsRU4FxgU0kPk/N8Xutg\nt5W5PE8Bi0u6dA6+BbMe8d1YZmZm1tY8smNmZmZtzc2OmZmZtTU3O2ZmZtbW3OyYmZlZW3OzY2Zm\nZm3NzY6ZmZm1NTc7ZmZm1tbc7JiZmVlb+3+RBmNvnbGWAgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pct_df['Field %'] = pct_df['Title_x']/pct_df['Title_y']\n", "type_field_df = df.groupby(['Paper Type', 'Field'])['Title'].count().reset_index()\n", "type_field_df.columns = ['Count' if c == 'Title' else c for c in type_field_df.columns]\n", "_=sns.countplot(data=df, y='Field', hue='Paper Type')" ] }, { "cell_type": "code", "execution_count": 227, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "Pygal224466881010121214141616181844881212161620202424282832323636Long PapersShort PapersBiomedical1: 213.6923076923389.487179487Cognitive Modelling 3: 151.7264957265411.923076923Dialog Interactive S13: 3241.897435897367.051282051Discourse Pragmatics8: 8146.811965812254.871794872Generation Summariza16: 4298.948717949344.615384615IE QA Text Mining Ap37: 19698.3076923088.07692307692Machine Learning13: 6241.897435897299.743589744Machine Translation15: 12279.931623932165.128205128Multidisciplinary4: 670.7435897436299.743589744Multilingual6: 3108.777777778367.051282051Phonology Morphology5: 389.7606837607367.051282051Resources Evaluation6: 5108.777777778322.179487179Semantics30: 9565.188034188232.435897436Sentiment Analysis O11: 6203.863247863299.743589744Social Media6: 10108.777777778210.0Speech2: 132.7094017094411.923076923Tagging Chunking Syn13: 7241.897435897277.307692308Vision Robots Ground5: 289.7606837607389.487179487Biomedical1: 2Cognitive Modelling 3: 1Dialog Interactive S13: 3Discourse Pragmatics8: 8Generation Summariza16: 4IE QA Text Mining Ap37: 19Machine Learning13: 6Machine Translation15: 12Multidisciplinary4: 6Multilingual6: 3Phonology Morphology5: 3Resources Evaluation6: 5Semantics30: 9Sentiment Analysis O11: 6Social Media6: 10Speech2: 1Tagging Chunking Syn13: 7Vision Robots Ground5: 2BiomedicalCognitive Modelling…Cognitive Modelling and PsycholinguisticsDialog Interactive …Dialog Interactive SystemsDiscourse PragmaticsGeneration Summariz…Generation SummarizationIE QA Text Mining A…IE QA Text Mining ApplicationsMachine LearningMachine TranslationMultidisciplinaryMultilingualPhonology Morpholog…Phonology Morphology Word SegmentationResources EvaluationSemanticsSentiment Analysis …Sentiment Analysis Opinion MiningSocial MediaSpeechTagging Chunking Sy…Tagging Chunking Syntax ParsingVision Robots Groun…Vision Robots Grounding" ], "text/plain": [ "" ] }, "execution_count": 227, "metadata": {}, "output_type": "execute_result" } ], "source": [ "long_short_type_field_df = (type_field_df[type_field_df['Paper Type'].isin(('Long', 'Short'))]\n", " .pivot(index='Field',columns='Paper Type')['Count'].fillna(0).astype(int))\n", "\n", "data = [{'value': tuple(vals), 'label': lab} for vals, lab in zip(long_short_type_field_df.values, long_short_type_field_df.index)]\n", "chart = (pygal\n", " .XY(print_labels=True, print_values=True, stroke=False, legend_at_bottom=True, x_title='Long Papers', y_title=\"Short Papers\",\n", " style=pygal.style.DefaultStyle(value_font_size=10, label_font_size=10,legend_font_size=10, value_label_font_size=10, major_label_font_size=10), explicit_size=10))\n", "\n", "for vals, lab in zip(long_short_type_field_df.values, long_short_type_field_df.index):\n", " chart.add(lab, [{'value':vals,'label':lab[:20]}])\n", "HTML(chart.render(is_unicode=True))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [Root]", "language": "python", "name": "Python [Root]" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }