{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":61461,"databundleVersionId":6756046,"sourceType":"competition"}],"dockerImageVersionId":30558,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# PF3211 Tutorial 3 Group 3 Project\n# ERA Singapore Model for Prospective Flats","metadata":{}},{"cell_type":"code","source":"#Credits: Make it rain: Rainwater Harvesting Feasibility\n\n#importing all the external libraries we need - zy\nimport os\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Additional modules for maps\nimport folium\nfrom branca.element import Figure\nfrom folium.plugins import HeatMap, MarkerCluster\nimport plotly.express as px\nfrom math import cos, asin, sqrt, pi\npd.set_option('display.max_columns', None)\n\nmembers = pd.DataFrame({\n    \"Member's Name\" : [\"Chen Yong Zhi\",\"Chin Jovan\",\"Lee Ze Yuan\",\"Millenn Tan Jun Ming\",\"Solvang Stoltz Oliver Alexander\"],\n    \"Matriculation Number\" : [\"A0252714J\",\"A0251943A\",\"A0253208L\",\"A0253383A\",\"A0283597J\"]},\n    index = [\"1\",\"2\",\"3\",\"4\",\"5\"])\n\n#showing the table\nmembers","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:31:06.115011Z","iopub.execute_input":"2023-11-24T08:31:06.115837Z","iopub.status.idle":"2023-11-24T08:31:06.137517Z","shell.execute_reply.started":"2023-11-24T08:31:06.115754Z","shell.execute_reply":"2023-11-24T08:31:06.135627Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":" \n ## Table of Content\n* [Introduction](#Introduction)\n     * [AI Model](#AI_Model)\n* [Data Cleaning](#Data_cleaning)\n    * [Read data](#Read_data)\n    * [Interpolate health data](#Interpolate_health_data)\n    * [Interpolate weather data](#Interpolate_weather_data)\n    * [Remove rows and columns](#Remove_rows_and_columns)\n* [Data Visualization](#Data_Visualization)\n    * [Visualization 1](#Data_Visualization1)\n    * [Visualization 2](#Data_Visualization2)\n    * [Visualization 3](#Data_Visualization3)\n    * [Visualization 4](#Data_Visualization4)\n* [Prediction](#Prediction)\n * [Split data](#Split_data)\n * [Data preparation](#Data_preparation)\n * [Example prediction](#Example_prediction)\n     * [Prediction `q_noise_nearby`](#Predict_q_noise_nearby)\n     * [Prediction `q_noise_kind`](#Predict_q_noise_kind)\n     * [Prediction `q_earphones`](#Predict_q_earphones)\n     * [Prediction `q_thermal_preference`](#Predict_q_thermal_preference)\n * [Predict any column](#Predict_any_column)\n * [Compute overall score](#Compute_overall_score)\n * [Create submission file](#Create_submission_file)\n* [Evaluation](#Evaluation)\n * [Results](#Results)\n * [Learning Points](#Learning_Points)\n* [Limitations and Next Steps](#Limitations)\n    * [Lack of Sampling Data](#Lack_of_Sampling_Data)\n    * [Judgement](#Judgment)\n    * [Overgeneralisation](#Overgenerelisation)\n    * [Moving Forward](#Moving_Forward)\n* [Conclusion](#Conclusion)\n* [References](#References)\n","metadata":{}},{"cell_type":"markdown","source":"<a id=\"Introduction\"></a>\n# 1 Introduction\nERA Singapore has enlisted our expertise to enhance their competitive edge within the real estate market. Our collaborative effort aims to elevate the customer satisfaction by developing an application tailored for ERA Singapore's property agents. This tool will empower agents to efficiently locate and suggest optimal flats to their clientele. Leveraging the power of machine learning, the application will predict and identify the most suitable properties within specified areas. By analyzing diverse data sets, including, the machine learning algorithms will forecast thermal comfort levels and noise disruptions, culminating in a curated selection of prospective flats for customers.\n<a id=\"AI_Model\"></a>\n## 1.1 AI Model\n![image.png](attachment:8ea7fec3-7eb6-4ef2-a878-5a0ff69f5617.png)","metadata":{},"attachments":{"8ea7fec3-7eb6-4ef2-a878-5a0ff69f5617.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA+IAAAKMCAYAAABvkwLVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAP+lSURBVHhe7J0FnBVV+8eP8drdWNgdmNjdCTZiYYuKgfEqYoAi+hpYWPxtBRXsRMUOTDARuxEBERUDYf7zfXbOOjs79+7M3bt36/f9fC7snTtx5sx56pznnJkuCHFCCCGEEEIIIYQoK3///bcbN26cW2CBBdxMM80UbXVu+uh/IYQQQgghhBBCVAAF4kIIIYQQQgghRAVRIC6EEEIIIYQQQlQQBeJCCCGEEEIIIUQDMP30VSH3P//8Y/97FIgLIYQQQgghhBANwIwzzuimm246N2XKlGhLFQrEhRBCCCGEEEKIBoLV0v/88083bdq0aIsCcSGEEEIIIYQQosGYa6653NSpU92kSZOiLc7pPeJCCCGEEEIIIUQD8ttvv1kgzuj43HPPXTgQJ49dCCGEEEIIIYQQ9Wfy5MkWjDM6rkBcCCGEEEIIIYRoYAi9mSf+119/1R2I//D99/a/EK2dNosuav9LJoQQTQXpJSFaL5J/IZoPXl7jobcWaxNCCCGEEEIIISqIAnEhhBBCCCGEEKKCKBAXQgghhBBCCCEqiAJxIYQQQgghhBCigpQtEP/zzz/daaefbhPR0z7Lr7CC69Cxo7vq6qvd+PHjo6Mah59//tl12n9/Kxf/8z25fZtttnGfffaZba8PX331lbvnnnuib1Xcd9991fVy+eWXR1tFayApJ2+88Ub0S8NAG6Ytcy2uy/VbK2myKERrBx2EffY66Zxzz3VTpkyJfi0f2P27Bg6soYMawuYKIbLBqs2jRo1y5553ntt2u+2qdQB/s43f2KfcpOkCIVorFRsR5wXmw4cPd3369HGnnHKK++mnn6JfWiZ///23u/nmm90OO+7ovvvuu2irEKLSSBaFSId3mD773HNmnz1vvvmm++GHH6Jv9QdH/pFHHnG7d+jgRowYEW0VQjQmyHzfvn3dlltt5a6//nr3/vvvR784+5tt/NbjrLPcxIkTo1/qh3SBELVplNT0J5580vW/9lpzkFsqI0eOdGf26FE2BSaEKA3JohDpjBs3zr0VBt5x3n77bQvGy8UXX3zh+vXrp9FuIZoIkydPdhf06WMZqnVxyy23WDZdOQbPpAuEqE2DBOKrrrKKe+nFF+29hv4z6qOP3Nk9e7o55pjD9sH4jx071v5uKsw777xu4F13WXmffvppt+yyy0a/lJc99tijul5OOumkaKsQQghROUaMHOleCG01YIuWX355+5ttOOsNTaVsrhDiX5544gkLsAGfvEePHm7kiBHu++++c999+6177dVX3THHHFPtrz/88MPugQcfrPHuYyFEeajYiPjcc8/tDjzwQLfDDjvYd4z8X3/9ZX/H57FedtllpiS22nprm7d2fLdu1QE7I+j3P/CA22PPPW3f9dZf33Xv3t198OGHqQqCNBgcin322cf232TTTd2NAwYUdDDqmq/GfBau789H+fbv3Nk9+uij1aP7fg7wbrvvbt/h4v/9z/b3c3TrmiPOuR5//HHX5dBD7Rpp1/HEy8z5J0yY4G699Va38y672La67lk0HeJykJzP7dsVv6W1TS8b/rnzP9+T7SVOUj6Qudtuu83SUn2b4n+/hgJzSdnGhzb8zTffuFNPO83kkDZ65FFHuffee8/O+2poyH375fe+F12UujaELwPtm31XXmUVO8/LL79sv8WJ1w9yw/no0aeNsy15z1lkUYjWCnJChzlstNFGbq/Qrq699tr2/bnnnnOffvqp/V0I5JH55Mg3MoUcMq8UveBBTtmOjYbbb7/dLb3MMtV6pS6b63UJfgC6gf2w/9i4NJsWt63oK65LBwPHxnWUAgrRWsFHHDxkiP1NoH1RaJuP7drVLbTQQm666aZz008/vWvbtq0784wz3AknnGD7wcMPPVQ9tSsut3EfwYPcx+XQbyumCzyTJk1yN918c7UvU8wngDw6Iu5Hcd0xP/5YI6aI+8tk0MX9C/wkfJW0MuCL4Fv4fZlj3xTWwxLNg0ZJTS/GY4895nqefbb76KOPbA7LPGEAP88885hQkF7aNVQYCB18++23tuDDXnvt5R4MlUTcuP7zzz/uuuuuc4cddph78aWXbBtG/uzw3CeceGLuuaIIFEEH1/fno3zPPvusO/yII9wNN95o16wvXKf7Kae4Q8Ny0yHBNeLX4bdCwv3555+7rsce6/4bKlDSC8Hf8wUXXKDAo4WC0Tj//POtbfrnzv987x1uH5fSXtLkA5k7/b//tc9PdWSrPDl0qBmvO+64w+SQNkqvOe0W+Tro4IOr2y+/X3HFFe6MM890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92iLEM0btWnRGiDQoIPs008/jbaUh6bif8i/EC2B5uLPi5ZHiw/EES56arfddlt34IEHWhC+wAILRL82L1ZccUUbPUJZFGLjjTe2F8V37tw52iKaClmeX3OhJd1LOWgKcjfrrLO66667zj3xxBOW/SOEcKaj0FXoLCFE00S+a3mQb9b8aPGB+D///ON+/fVXN8MMM1jaixBCCCGEEEII0ZiUNRCnN2vkyJHu0EMPtREZPvz93nvvRXtUwX6kJe6///7V87Y7duzonn32WZs36PFzHZ5//nl33333uW222caC6Q022MANGjTIUqFee+01O5ZzrLHGGu7mm2+24BuY68Ho95NPPumuv/56N9tss9WYT/3999+7Hj16uJVWWqn6vNdee22tVEnmWnDcsGHD3GabbWZlPvnkk21/zuvPHZ+TwVyTvn37ug033NDOzYfReEas/PXjsI3fuAdfH9w3deXJMvcjPs+Gc1LuAw44wJ4L98mcnOHDh9t5zjzzTDd16tToyCpI5efe9thjD/fzzz9HW0U5SHt+zK8bMmRIddumbe2zzz41nj37b7LJJvY3/3MOzpXEP7sdd9zRjRs3Ltpa1bZoByussIJ79913o61VMG2Dnuivvvoq2lI1d/fpp5+uLhPt5oorrqghF1nnISV1QqG2XQyui1wib5SH/9Pk6JdffnGXXXaZW3vttavLjQwii3GQEcqOXmLeZvy8fOeZeJLlZ780OS40v41r+GORbfSW109Jkvfpyz9hwoRojyqo86Q+YtrNxIkTbXty3l3WewW+33TTTdX70QZoC7fffnvBdpcky3Ooq01naYMer2vZx99b8vl4GejVq5d74IEH7FkstdRS7tZbb62lA1s6vk0fccQR1XWWpnc8WeWvoeSUVNEjjzzSdAdl/Prrr+33b775xvQdz5EP7SN5LaCtxduX112cN0sboy0+/PDD1ftxX8gO8sd3ylkIfvM+yNlnn237x3VEVh8kCfeAb1HI/4CxY8e6s846y+rG193bb79d6/lyf/he3o+iLaT5bUm8TCX9i/ic6axynNSzhexEMTnmefJcGQ2k3fl2yLV5Vsh5/DmiOx999NEa5/flyCobLYmk/HL/afYnbx3xzPzz4LnyjJHdJEkb6p817Zo1FtABXIcPf7MtySeffFLdhmgXtP+PPvrI2mVSPuLUJU9ZdVYh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VfaGB0bGV1xxRXu1CAsn8aoj0fSQXmpYeM0NMsHiQLwSp23btpY5kmUhMyEaGsl/FaykzYKBZLGw+Oecc85pK54jp3SW0ZksRGOjQFyIeiCZEEI0NaSXhGi9SP6FaD6kyau6iIQQQgghhBBCiAqiQFwIIYQQQgghhKggCsSFEEIIIYQQQogKokBcCCGEEEIIIYSoIArEhRBCCCGEEEKICqJAXAghhBBCCCGEqCAKxIUQQgghhBBCiAqiQDwnH3/8sWvXrp278847oy2iLnhf3iuvvOK22WYbe4fehhtu6D777LPo15ZLJe/7r7/+cvfff7/7/PPPoy3ijz/+cEcffbR9+FsI0XSZNm2au++++9wGG2xg+rJDhw7u559/jn6tH5z7qaeeciNGjIi2NC3wJ/Ar8C8ag5dfftnqXH5Ny8f7sL179462NF3S/Jr6tNWG1DFJfvrpJytj3PegzhtTzhuDxtZtzQEF4qLB+eabb9yZZ57pZphhBvfggw+6yy+/3C2++OLRry2XSt734MGD3XnnneemTJkSbRFCiObDu+++604++WS3zDLLuKFDh7pzzz3XzTXXXNGv9ePVV1912223nfv999+jLUKIpk65/ZqG1DFxCL579uzpXnzxxWiLEIVRIC4aHHoGR48e7Tp37ux22203642ceeaZo19bLq31voUQIi9ff/21++qrryyDZdttt7VRFDoxRcOz8cYbWwYXtkq0bFZccUXLDCFQbI7Up602to6hzql7noEQHgXiosH5888/3Q8//NDqnKrWet9CCJGXX3/91f6XvhRCNATSMaIpUtZAnLSva6+91ubEku7BHIy1117b9e3b102YMCHa6985Kk8++aSlhsw///xuiy22qJ6/9c8//7jHH3/c7bjjjnYefj/00EPdyJEjrSfM48+TNlckOS/B70uqyNNPP109b3ellVZyV1xxRWrK2nvvvWfX5fprrLGGGzRokJUtK4yIcu/MDeZafLjP6667rsa8kbrqw9ern9dCmZN16sl6TeqR+vT3V2i/Yvzyyy/usssus2ccLxdlAM5Dz+Mmm2xi3w844ADbr5S5Pc2Juu47q5x4/DOlftmX45jnRFv01+IaPE/22WGHHdz48ePt2KyyxLwrLx9HHnmk7bvPPvtYDzLztIYMGVItM5yD355//vka5yjEl19+aelgSy21VMF7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79+/+ly+bilfnDzXBJ7NkUceaedjf47jOlwvC+PHj7fz815Cjud/f7041Cu/11VnTR3ugU9W0u47j5x4qM9QUdrz5BiORT543h6eGe/6pp2uE3sXZ1ZZ8mVNygBMnTo1CA1K9Tn4dOjQIRg2bFj1O4OLkSx/vF3GySrLnrrqhfOFjkCtd3mCl7n4u1TTyCtTWe/Vv7c1rb6FyAPtiE8e0Bf9+vWr1t20b2QvKSdZdTztOXTygnHjxkVbqkD3pclumr5h3+Q2yKrDitlRzsG7yzmWc7z66qvRL7XJI/Np9+FJvjMYKG8YpARh4FJ97iuuuMLet5xWT0nyXi9r3fnzxuvuzz//DO66664gDOjtN2xLGCCk+mHUDXWU1Hu0H9GwUN98suLlJG77Cskv39meZkOTZLF9tJs8/k+aX1OftpqmY/LaeM731ltvBZ06dbLr+Gu9++670R5VjB492t63zTnDYDf4448/iuqEvffeu/p8/J30r/xzS9NvafeVRlPWba0F6oZPnOn4J9xYC9+DWeBnIVodkgkhRFNDekmI1ovkX4jmQ5q8aq15IYQQQgghhBCigigQF0IIIYQQQgghKogCcSGEEEIIIYQQooIoEBdCCCGEEEIIISqIAnEhhBBCCCGEEKKCKBAXQgghhBBCCCEqiAJxIYQQQgghhBCigigQF0IIIYQQQgghKogCcSGEEEIIIYQQooIoEBdCCCGEEEIIISpI2QLxjz/+2LVr18717t072pKPadOmuaeeesqNGDEi2tL0+emnn9ydd97p/vjjj2iLECIryM50001X52eHHXZw48ePj44qP/XVXa2Bv/76y91///3u888/j7aIlgYyhqzF5YC/kQ1kJC9NwT6m+RWSdyFaB19++aUbOHBg9K1p4vURulK0TprMiPirr77qtttuO/f7779HW5o2OBc9e/Z0L774YrRFCFEKBxxwgOvbt2/BT4cOHdzMM88c7S0ag8GDB7vzzjvPTZkyJdoiRGGain1sbn6FEKI80LF49NFHu08//TTaIkTTpGyB+Iorrmi9zhhfIYTICqNwp59+esEPxnSOOeaI9i4/0l1CpINMIBvISEtB8i6EEKKpoDniQgghhBBCCCFEBWnQOeL8zWjWV1995c466yy31FJLubnmmsvts88+7u2333ZBEFTvt8kmm9jf/B+fk8Y+I0eOdIceeqibf/757fiOHTu6559/vvp4IBWOa/Xq1cs98MADbo011rDr3XrrrW7q1KmZzwPMKzn55JPteOaorr322pYiO2HCBPudsm244Ybu+uuvt89ss82m+WZCVICXX37Z9MN7771nc7822GADk1H+5ztzmeH77793W265pcnx33//bds86IOzzz7bbbzxxqabiumuYcOGuc0228x0Rp8+fez86AtSXvfff/8auuTZZ5+1Oaker5M4FzrlyCOPtP358DfbPPF9uTevp9BB6E50z5gxY9ypp55q2/jtlFNOsXm4cbLqOX/PpA4//fTTbptttrF6XGmlldwVV1xRncrry8X0Ac7L7w09Z180PN988021jePDM+dZJ6E9xu0x1Mc+FpMrZAcZ2nfffavPzf+HH364yUQS2ui1115bQwdcd9111ffBtdL8ijR5h19++cVddtlldj9eFrivpIz5e6jLr4GkPHLeLbbYokY5hagkvv3jGw8aNKhafrAB9913n/vnn3+iPf/d98knn3TnnnuutWHar19zgX0ff/xxt+OOO5oM8DttnTafZm+yXBOy2jFvn5J+P3K5wAILWLmx9VzrjjvucOeff75bYYUV3Lvvvhud4V/eeustt+iii1p5ilGX/vN4/cQ9Uv5i+6aR1G9eHyWPRXcOGTKk2oZTX+iitNhGNE0afER89OjR7pBDDjEjd+ONN7qrrrrKGvIee+xhDR/22msv179/f/ub/6+++moTCBrR3Xff7bbaaitzrDHqONuzzjqr23XXXe3vZENDiPr16+d69OhhBpOGP/3002c+zyeffOL2228/9+GHH7pLLrnEnFTmqP7vf/9zJ510kps0aZKV7dJLL7XtfBB27kEI0fBMnjzZnAKMOsHoI4884pZZZhkLjHFwkeWFF17Ybbrppm748OHuhx9+iI6s4scff7QAdPPNN3eLL754tLU2L730kjvzzDNd586dTWdstNFGbqaZZjJ9sf3225vzMGDAgGpdsvvuu5v+SjoVr7zyigWyXOuee+4xJ+GFF16wbfFgHNj3mGOOMSOPw7L33nu7K6+80nTPEUccYddBjx577LHuhhtucBdddFF150Mp+pJzUJ4DDzzQDR061G277baWsnvOOefYeblfHB2+L7/88ubMUPcNOVVANCzYONoVwTDPlfZEAEk7QLaKUQ77WEiukB1kaO6553bXXHONnRtZYH/+j8sKMszxlHmnnXaytstc8NNOO82cctpuIb8iDc538MEHmzzQEcC1jzrqKHfLLbeYnHLfcbL4NYA8c09//vmnu+2226ycq6++upWToCCpK4SoFNhK2iDtnXa52GKLuT333NNdfvnl1lkdB5n64osvbEExbEXbtm2t7SLnvuMM+4I8Y3to8yzumbQ3Wa5Zih1L+v3Y54ceesi1b9/e7CYdfPgD6IjffvvNOtLjcD4C1yWXXNKttdZa0dbaZNF/8PPPP5v+wD4TIFMX+CmUh45H3/lYCPRRly5dqvVbXB/ROcHvQJ3hH9CxT8cm+1FflIO6YqFK0QwIG2Aq/FTk51qMGjUqWHPNNYNQYKMtgf3NOfr27RtMmTIl2hoEoXMctGnTJrjsssuiLUEQGlvbl/89oeAHG2+8cRAKUhAKT7Q1sHOFwhasvPLKwfvvv2/bQgciCBuqnZfzx8lzntC5D0JDGXz00Uf2HaZNmxaEBjrYYostgvfee8+2+evx4W/R8skrE6I4YVBXXafFPnGd4PVEaOiDMWPGRFuDYMKECUHHjh2D0PkOJk6caNtCoxTMOeecwYMPPmjfPaEDYNv5HYrpriFDhkRbqkBPoC+6du1aQ5eEjnZwxhlnBKGDErzxxhu2zesIrhU6MKZHPJyX8/uyxfflN79vaFCD0PGxfdFBfnvoBNn1wiAmCAMA25ZHz/l7Dh2DIHQqbBtwH926datxXuBZsT/HiaYFbYNPFmg3PXv2tGcZf+6+jXCepBzEn3t97WMhuRo7dmzQqVOn4MQTT7Q2GOexxx6zYwYNGmTfuV4YAJitf+aZZ2wb+HLEfYA0vyIp775OkN3nnnvOtnnCoNrkpnv37tXl8vdQl19Dec4555wgdMTt/jwcEwYMwd577x18++230VYhSoO2yCcrvv0n2zvt8swzz0y1E9hWbGwcb1+TchAGoWazsEXYJMhzzXL5/ePGjQvCgLyGPvN+AuXDtnr89jCYDsIAOdpam6z6D30TBvS19Bz3cNpppwXrrLNOEAb1ts3XDTYWOF+/fv1q6TdAZ7Mv+gq9hV5Bv6BnOM6DXgkD+OD8888P/v7772iraAqkyWuDj4gzikLayowzzhhtcW7ppZd2q666qvVMFYM0VFJI6KmeffbZo63OzrXbbrtZj1zY4KOtVXBezh8n73lCAbYe77Bh23fSPXyv2mqrrWbbhBDloa5V0xdaaKFoz39BpzDq7ZlnnnksLe3XX3+tHmUKDZaln4eGvzo9nR5k5Jie6VVWWcW2FYKRq+Q+9OJz/tD419AlrOpOTzkje8le6NDoWjofesTDeTk/5Y3Dvj4VDUJHx3Qo+9Kj77fPMMMMlqpG+hqjbVCKvmTUgVQ9D/dBGeLnFS0Hnw3CKEv8ufs2Qluri/raxzS5WnDBBd1dd91lI2PJNySQ7YIse7meOHGijeZTXlLgPZSDUSEWY2PEKiuh0+pCh9cyanwqu4frMuKFDiGd35PHryG1ndf+hf6WfecYRgXJjmFEUIjGINneaZeMVCNn2Lk42FZsrAd7+uijj5qtYIQ8LgfsxzbsURgcR1uryHLNcvn9acw777xmR1977TUb4fcw0k1W0M4772w2vBhZ9B9+B+cjQyYO90Bdcg/JrAMP076eeOKJWvoN0NnobnS4HxUHpslQLg96hedDhsB//vOfaKtoqjR4II6BJdUsDqniOJKkbyTnb8bBeC2yyCKW8oUhjH+YczLLLLNYA4w36DZt2tj2OHnOQ8MnPYXUGpwF0jRRDJrPJUTDUNeq6WnBAXIeB2OITiGw9Y4wc6VItSY99LvvvrNtGC/S0khLRycUw89N8xCY8ioU0vKS1weMH0EDuiSuL5irFncogPKiB8eOHRttqYIgJO1VbXQ6UJ443G+cUvQl+jl5Hr5Trro6SkXzg2katAU6cZLP3bffYpTDPiblKg7OLYEr5yQwJ4W7U6dONl/UQ9skeKa8pKvGIQjHISZtPCvUCXPQ0+qE7zj5pJvHHd8sfg0yjv6h44DONeru4osvNgfddyoI0VjQrgvpAOxcvCMWe0d79tBRSzC63HLL1QjQPegIOrHYJ06Wa5bL7y/E1ltvbf/79HQ6yAjs8TOSHYRJ8uo/9AABPx19TI9BLxEcF4NAHJ2ELqQjI37/BOBcC3+GwHu++eazdHtS1pdddlmbR3/77bdbp6Hv+BNNnwYPxBnRKTSfcPLkyQV7hXxjo6eKETMWXop/WIwA48nCBfFgnoVh4r1zec+DMDLfpHe0kAs91/TgMb+T3vo8DocQTQWMBYY0/mnOi24lg1JPfCSXe0R2v/76a/fOO+/Ytg8++MCMOcaL34uRDIoxbOgrHAmc7qxQ1kK97Mlgl7l26LAkdV2zVH2Zlm0AOAIaEW958Ex5tklnOCvlsI+FOptYAAoHlzbJOY8//nhzxplDmtYZVy6QaTrw8tRJVr+GkTHmyDN/lMUW6VhkFJGRM+a6KiAXjcUSSywR/VUb2m88kEu2dYJE2i4yU5cdjVPXNZGdcvj9xSBgRS7xiZB7fCCy2LJ0zmfVf9QN8s3oN50MzBNnLjeddwTLxSDApuORtSeS98+HufDUj9dZ6BZG0OlgIOA/6KCDrLOAEXW/qJ5o2jR4IF4q9G4hFCzkgjFGKaR9WPwh2Ssep5TzsKALiySQ3sYx9DbRk8dKifTSCyGaByuvvLIZQRZiwcgzWsboVCmOPQ4Hhg+HwaelNRXKpS9Fy4Z2wuiRDxRLoSHsI+c57rjjbDQcZ9I7yPfcc48tOtSQINME1vWpk2IwSs9q7Iz4jRo1yhxpOuaY3oJeEqIxiE+18GDXkAMC22IdU3QKE/iyL3YlK3Vdk8yxhrZjXIPg2aen0zH/0UcfZeqchyz6j7Rw5JuAn6CZhdmQfd5OQeZNMei4Z/oOOiPt3v2HcwPPgcXpWBCOTlZG90844QTLBOQtK2wTTZsmG4gjEDgM9H6RhpaEOSSkibC8fzHynIfRAgSMnjhWQ0XZkIbKXBV6p0i1YRVHIZobKO2kIqcXtdDIcksBB5ue7jfffNNGxUlHY44Yc8XyQhBDKh6j6oyyJ6Enn7Q6dEalg91y6UvRsqGNEBgyUhIfUQJGYhi1LURD2kfaJyNUXbt2tXUL4iNwpITjzHrQWdwH8pYcgSeQJ3C/4IIL3JQpU6KtxeFcOL5pdUKAgLwzih1fkyILpKizwjHOMOfFYabucZK9HBarbyEaEoJQ/IA4BG2kfdNOi82VJphlvjLBaPL1foB9ZFQ3vg4F1HVNMmUqYcfQMaR14w+Q/r3eeuvZ9YuRVf8h63Swkd2G7OMz+LpEn3CvxfCvgaODIKnfOJ7Uduae0wnAlBnqgxXigeeCr8foPCPlPBu/krtoujS5QJyG5mGBI9I66HGih9xD42QbDRoDWRdZz4OjzYIPLAQTfwUJMJrGJ5miQ3mTikUI0XRgBBynGFnHefdzxEqBXnPmxN10002WBu+hx5vXjZFqXp/z14dy6ctCMHIhXde8IZikDZNeGX+FD6mUvIc3Phc7SUPaR99xhUzF98eRRNYgufYDHYmvv/66bfPQ2YYTTCZMfJGiuF+RhLRSZDZZJ0B9UC84t8XSatPAoebcpL1+9tln0dYqcI6RUToKhWgMeJ0Wo7Qeb8MYmcaWFIPAkoXNCJg5Jj7FgjURmKfMgqjrr79+tLWKLNcstx1L00GMalM+FogjS46sueSaD0my6j8yCdiXwD0ZSKOv0Cfsy72n4XU0wTWdk/GyM6DAK+TQRXRYcB9ck3qN+yPcM3VHYE5ZRNOmyQTiGCTSRXk3MIaURkRvGou18E5B3ns6ePBgS/k47LDDrMeHnmXeE14Xec6zyy67mPKgZ57fWCCBMpFmwtw1P78DRUSPGkb23nvvtdQWoBerXbt29u7dpBAKIWqDQ837Not94iNiecGos5oy7/zGoWaOWKmwQAu94jgaXbp0sXQwdAl/855ieqGz6KSGoFz6Mg10H04X70Impa+QEyGaNjiJjNJio7BptAtsGO2WtMm6AsP62sdCMJrEnEZkndRtzsuoF84+I0z87hc2JPuDd4jH74F09l69etnCbqzYTKompPkVSagT3svvz0cZOB/nZZVn7oP7TZvXXgzOS3lwhBk1owzcF+elvpFRsnMAXwGfgTLgQwjR0DBq7dtl3IZhQ5Ij2WmQacboLNknrOfAObA5vD2Ev0888UQbFY6T5ZrlsmPoIHQS/gXBb3wkGln2nW90kpGqnoUs+g+5Z/0dOg5JV6f86EHqihXiOd7P8U7D62j2Y3/mo3t9RN2Ruo+u4B74mzqkM4OV26knr8/Rn8ypZ744KDZpwgQF4KciP9fCvwsv/s4+/uY9fuPGjYu2VMF3toeNt/odo7xf77rrrrP3DIbGM3j11Vdt+7Rp04IRI0YEYWMLQoNoZQoFyN7PxzEezsP54ueMk/U8wLv5eE/fiiuuaPvx/4UXXljjXaAwevRoe/cg+4SCGYSNu7oeCpVDNF94znxEecj6HnE+L0XvAeb/+Pc46BtkDxlMgpxzXBiMR1v+JY/uAnRJaIDtPcDoEj78PWzYsGDq1KnRXsV1UvKaxfYtVJa0d3tn1XP++v7dpXH8c4nXcehU2LtKOec6sXegisaHZ8UnD+PHjw9CB7ra3tJ+Qweu1nt3+TvZxupjH4vJVeik27uDaWOUqUOHDiZTEydOtPf+HnLIITXeK8zfvG+X9/VyDd6JHzqfNeQnza9Ik3egTrgPfz7+T7uvQveQ5tfAF198ERx55JFWBl/O/v3717gXL//JuhaiLmhTfLLi2/8tt9wSDBw40NqjlzfsGjbEU8xOAPKFbQkDTzsHbTwMmM0GpZ0nyzUhqx0rZjcBed90003t+D59+kRbq/juu+/s3d+Fji1EFv1H+cPg2crMPtRLGBybLhg5cmSw/PLLV/siheoY/YCeoK7i50BPxsHnQHf7Z+DrNemP+OvkvV9RXniWfOJMxz/hxlr4RQsK/CxEq0MyIYRoakgvCdF6ySv/jIwy0sr8ZTJLKkFjXLMuGCEn46V79+613vctREORJq9NdrE2IYQQQgghhCgXBEG8k5u56Sx2JkRjokBcCCGEEEII0WIZO3asvc/7lFNOsbnmzPlmnrUQjYkCcSGEEEIIIUSLhTcp8J5tVl9ngbnDDz+8OlVYiMZCc8SFyIhkQgjR1JBeEqL1IvkXovmQJq8aERdCCCGEEEIIISqIAnEhhBBCCCGEEKKCKBAXQgghhBBCCCEqiAJxIYQQQgghhBCigigQF0IIIYQQQgghKogCcSGEEEIIIYQQooIoEBdCNAp33nmnvcoh7bPUUku5fffd1z377LNu2rRp0RHF6d27t2vXrp37+OOPoy3ZYH+O43ghhBCiJTJ+/Hi3ww47pNrctM/LL7/s/vjjD3f00Ufbh7+bGk29fJWCZ+Wfmeevv/5y999/v/v888+jLf/uh//VGMjfqo0CcSFEo3LAAQe4vn371vjss88+buTIkW733Xd3/fr1c1OnTo32FkIIIUReZp55ZtehQ4catva4446z39Ls8EILLWS/iebJ4MGD3XnnneemTJkSbRFNkemC+FvFY9BjAgV+FqLVIZkoL/TIYvzvuOMO17lz52jrv4wZM8Ydfvjhbty4cW7gwIFu6aWXjn4RQnikl4RovdRX/hkh3WSTTQraYUaZTzrpJPv78ssvd7POOqv93VRo6uWrFP45vvTSS27jjTe2bfhY//vf/9zdd9/tVlxxRdsmGpc0edWIuBCiSbLIIou4XXfd1Q0fPty999570VYhhBBCCCGaPwrEhRBNljnmmMP+//XXX+1/en2ZX/Tiiy+6I4880s0111yWxv7111+nzhGn15EU90MPPdTNP//89uHveGCfNmeJv5lz9tVXX7mzzjrL5qz7a7399tu1Rh8YvT/11FNtP65B2T788EPNXRNCCNEi+OKLL8y2eVvK319++WX067/89NNPltq+0kor2QjgBhts4K677rpadtDb2WHDhrnNNtvMztmnTx+b25y03djfjh07uueff77g6D/7H3zwwbYv16YMEyZMsN845vzzz3crrLCCe/fdd21bnLfeesstuuii7r777ou21Mb7Ck8++aQ799xzrVxbbLGFGzFihP3++++/u2uvvdbul/tOlsGTvDf25TzJOvLzufk/CXXHfH/m/SfhHNQrGYdch3L4ff05/Rxxvy/n41lmeb6ffPJJddnxefCRPvroI7tG3I9Koxz+VktDgbgQoknyzz//WDDbpk0bMySesWPHuu7du7u5557b3XPPPW6XXXZxCy+8cPTrv6C8SWnfdNNN3ffff++uv/56++BM7L333mZ4izF69Gh3yCGHuF9++cXdeOON7qqrrjKjtMcee9Q49tNPP3V77bWXe/jhh90JJ5zgBg0a5GaccUabi0eamBBCCNGcwZZh+5hnjo0jYHrhhRcs2IsHawRaBMy33HKLO+qoo9zTTz/tdtppJ9ejRw93yimnWLAah/OeeeaZlhaPfd5oo43cTDPNZOnUW221VbXtxpaTdk6WHH8ngzPOg71mXjsLlPE3adlMb6NjgOBzu+22c7/99pt79dVXo6Oq4FwE+EsuuaRba621oq2F6dWrl/kRBLMHHniga9u2rfvxxx9dly5drF64X+6b+6ceCFr53fPKK6/Y+jd//vmnu+2229zQoUPd6quv7k477TTrLMD3qQ/UH4HtOeec45ZffnmbdkDHgR/YSIMy8SwXX3xx86sKPV8CeZ7B+++/7y677DJ3zTXXmK/UqVMnN2rUqGiv/GT1t1okYQNMhZ+K/CxEq0MyUV5C42D1yf9JJkyYEFx77bXBfPPNFxx00EFBqJxte2hs7Zhu3boFoRGzbZ7QOAZrrrlmEBoD+/75558H7du3D4444oggNL62Db799ttgyy23rD4H+3Mcx3v4m+v07ds3mDJlSrQ1CIYPHx60adMmCA2QfQ8NZtCzZ087/sMPP7RtwDEcyzlCYxxMnjw5+kWI8kIb4yOEaH3UV/69TU2zw4DtwobNOeecQRh4BtOmTYt+CYIhQ4bYsQ8++KB9x5527969lj2EZ555xmzngAEDoi3/2lnOEycMcoONN964lu3Grvbu3TtYeeWVgzAQtG2+fJzn9ttvr1G+J5980srtr4lf0bFjxyAM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AnHqZuONN3Y9e/aMtgrxL9JLQrRe8sq/tymADZ5//vnt77pgRPTss892L730ktmjJGSu3XjjjdZxPGDAAHfYYYdFv/zLF1984Tp16uR22203984771hAfvHFF7uZZ5452qNuv0A0Djz/l19+OVebEbVJk1eNiAshmiSLLLKI23XXXd3w4cPde++9F20VQgghRFNi+umnd5tvvrlbffXV3dtvv+3+/PPP6Jd/Ifj++uuv3TbbbOM22mgj99RTT9XK9tpjjz3cpZde6pZYYoloixAtGwXiQogmyxxzzGH///rrr/Y/PbLMjX7xxRfdkUceaXPNSGPHuMMvv/ziLrvsMpuvRs/jSiutZCl2yXlrf/31lxsyZIg5BOxHDy/nef7552v0VPp5USNGjLDrsR/z108++WT3zTffRHv9C6MCpOp17NjRysb+hx56aGpHQnLf5Hm51wUWWMA9+eSTNhJBOX26HuXyc8Tfffddt8IKK7jLL7/cfovz+++/uy5duri9997b6gbylFEIIYTIAjaKgJwU9OQIPbbo4YcfdmuuuaZbZpll3GabbeYmTpxo9i2+L/YJG+hHXfmNaWrYKLZxjS222MJdd911Nge8GGlzxL0Pgb0j026DDTawc/I/3/EN4tRlp6Euv4R7v/baa6uv5f2SCRMm2O8ef6+k97MP+3LPab5JnnrJY/M5lnNQVvZlvzRfR5QPBeJCiCbJP//84z788EPXpk0bM0qesWPHuu7du7u5557b3XPPPW6XXXZxCy+8sM1LO/jgg90NN9xgC709/fTT7qijjnK33HKLpbp98skndjxOwpVXXmkGE2eA/a6//no3adIkG4Gnlz7OqFGj3CGHHOJ+++03d9ttt7kzzjjDPfbYYxbc+nMC5aUnn3nts846qxl1zvv999/beTGkHvb93//+57baaqvqfZmvN2zYMHfQQQe5r776yq244oruoYcesrl3GGYM6SabbBKd4V+Yx0eq4CuvvFIdbHs+++wzcxLocKC+8pRRCCGEyAp26/PPP7eO4VlmmSXaWgWLjpLdxiJtBILLLbec2S3sbXwBMOaQr7POOtU2H7uGvWKEHfs7dOhQG3U/7bTT3Pnnn282LS+TJ0925557rrv11lvdKaecYnPc6RzYf//9LQj1AW8WO+0p5pfQGX7WWWe5nXbaqYZfQpAbn09PObgW0/Eu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wSaljBHmljKfXrQspJeEaL1I/oVoPqTJq1LThRBCCCGEEEKICqJAXAghhBBCCCGEqCAKxIUQQgghhBBCiAqiOeJCZEQyIYRoakgvCdF6kfwL0XzQHHEhhBBCCCGEEKKRUSAuhBBCCCGEEEJUEAXiQgghhBBCCCFEBVEgLoQQQgghhBBCVBAF4kIIIYQQQgghRAVRIC6EEEIIIYQQQlQQBeJCiEahd+/ebocddnDjx4+PtgghhBCiqfPyyy/bq5j4H/744w939NFHl2zTk+crxscff+zatWtnPgT4a/Phb/Dnu/POO+07/PXXX+7+++93n3/+ebSl+UHdUsf+3kXzR4G4EEKIVHBiks6MEEII0dwYPHiwO++889yUKVOiLUI0PgrEhRBCCCGEECUx66yzuuuuu8498cQTbv7554+2NgwrrriiGzFihOvZs2e0pTYbb7yxC4LAde7cOdoiRNNEgbgQQohU9thjD3fppZe6JZZYItoihBBCCCHKgQJxIUSjMnbsWHfWWWe5pZZays0111xun332cW+//bb1Zsf55Zdf3GWXXebWXnttS5deaaWVXN++fd1PP/0U7VEFc8OYP0aPOT30G2ywge2/zTbbuGHDhrmpU6e6hx9+2L6zfbPNNnOPPvporev9/vvv7tprr60+3l9vwoQJ0R7/kqVsDz30kN1fcg6cT/++/vrroy1VvPXWW27RRRe14/ycuBdffNE9/fTT1WXnOldccYWVNQnXpgzsw77cB/Xh59CBn1vXq1cv98ADD7g11ljDnsOtt95q9TRt2jT3zTffVI9wUEcjR450hx56qG3jvFtssUWt8wohhGh6eFvy5JNPunPPPdf0ODocewno/GeffdZ17NjR7BW/o+/fe+89+70Q3pYk54h7O7ThhhuavajLZrCN37BFXJ9yPP/88zXsc3KOeBrxOeK+bAcccIDZL2wi5Rw+fLid58wzzzR7F+fvv/92J598snVG//zzz9HW2vj62nfffc12ck3+P/zww2vVGeWlHF999VUmnwfbSxnYjw+2Xna25aFAXAjRaIwaNcp16tTJFk+55ppr3FVXXeW+/PJLM34Eop4ff/zRHXzwwe6GG24wg0cwetRRR7lbbrnFjOsnn3wS7VnF5MmTzegRXJ5yyilu0KBBbtKkSe64445zp556qhk0DOK9997rZphhBnfsscfWul6XLl3MWO600041rodTwu+erGUjnW6ZZZZxr7/+un0HjP8HH3xgf7/77rvuzz//tL/hzTffdAsttJAd5+EalOnAAw90Q4cOddtuu62l551zzjm2EI0HRwUHhjJQFsrEffTo0cPqIxm433fffa5fv372O/VGhwL18swzz7h11lnHHBd45ZVX3O67727lvO2226wMq6++ujvttNPc+eef7/755x/bTwghRNOFztcvvvjCAlXsSdu2bU1/kwGFjifVfODAgdZB/P3337tdd93VAuI8EHASZGJ/sYUErNga7Noxxxxj9iwZfGLLbrrpJrNFd9xxh5WJa999993RHvmZaaaZzN5z7uWXX97OSyfEyiuv7DbffHP36quv1rDp8N1335m922STTdw888wTba0JZe/fv7/V19xzz20+DLaWe3vppZfsf/yZOKNHj3aHHHKIdd7feOONBX0e/Ia9997bBg8oN/sSrGP/8W9ECyJsSKnwU5GfhWh1SCbKS+gIWH327ds3mDJlSrQ1CIYPHx60adMmuOyyy+x7aIiDMNgMQkcheO6552ybJzRcQWhMg+7duwdhcGjbQgNo591rr72C8ePH2zYIg0bbvuWWWwbffvtttDUIRo4cGYTGufp606ZNC8Kg1MoQBqK2zfPhhx8Ga665ppWHcuUp26RJk4LQ4QnCwDgIDant89NPPwU77LCDXWuLLbYIQuNv2/md/fy+o0aNsuu2b9/eyuDhvN26dQs22mijIDTm1du4JvvH9wXuh2sNGDDAvvvrsI16Lwb1EjoEwTbbbBOMHTs22hrYswudpiB0GmrUq6gM0ktCtF7yyr+3JR07dgwmTJgQba3ijTfeMFvWu3fvGjb5t99+C4444gjT/WFQbtu8neV/8LZk++23D8aNG2fbwkA+WGuttWrZlokTJwadO3cOdt555+oy+POx7YcffrBtEAaswUEHHVTj2v4e8CEgaS/Bny8Muu078DfHcbxnyJAhth/+QRy2YxfffPPNaEttsIOdOnUKTjzxxGr/w/PYY4/ZeQcNGhRtye/zJG04x/BsOIe/d9G84NnxiaMRcSFEo0Hv9I477uhmnHHGaItzyy67rKWlkdLGiHEY3NnI7P7772+903FCQ+U6dOjgwiDY0rjikL4933zzRd+cW3LJJW1/UtFJ+faEBtBGA0Jnw76TVseCM7vttpul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fmMfPqzbcv3119tnttlmM9sP3rYdccQR1Xaesu2zzz41rke5FlhgAbu/s88+u9rOF5oj/s8//7jHH3/c7bjjjjXul2vF7yGvzRYiKwrEhRCNxqhRo9whhxzifvvtN3fbbbe5M844wz322GNu7733dp988km0VxUvvfSSze8mrRwjvdFGG1laOcYb43/LLbe4o446yhyDnXbayfXo0cOdcsop7vfff3czzTSTGeH+/fvbuc455xxzNgjMMbZ3332322qrrdz3339v58awksq266672t9xgwy9evVyX3zxhRn4Aw880LVt29YM+qWXXup23313O5bjOBfn5Dw4C3EmT55sjtCtt95q5XzkkUfcMsss4/bff3/rRPDX5H/Otemmm1aXjw/Xp57eeuut6v2y3gd1u99++7kPP/zQXXLJJVZnHTp0cP/73//cSSed5CZNmmT7CSGEaHmUw4YBtvSOO+4w283/nIN9sUV5WXTRRe362CI+BNN77bWX/YZ9xLaNGzfOXXjhhWa/zz//fOtQPvjgg6vt4Iorrugeeugh1759ewvavZ1Pw9/vvvvuax3S8fulDu6///4atj+rzRYiF2HDSYWfivwsRKtDMlFeQkfA6rNr165BGIhHW4Ng5MiRwcorrxz07NkzCA2lbfP7DhkyxL57/vzzz6B79+7BmmuuGYRBZbS1imeeeSZo06ZNMGDAgGhLEITBvJ0ndBiiLUEQOiPBxhtvHIRGu0Y5pkyZEvTu3dvK8v7779u2UaNG2bXCwD+YMGGCbfO88cYbQejM2DEc6+GcnHubbbYJQgNv23w5QmMfjBkzxrYB5+TcofMRTJw40bZ9/vnnQehU1Crft99+G2y55ZZBt27drB7y3EfoSASrr7568NFHH9l3mDZtWnDDDTcEW/w/e2cCb9XU/vFlHjNkzJQ5mek1lSFEyBSFjGUWIplJiMT7SqYIfyJkqCiEzGTMVJFMGSPRYKbU/u/v017Xvvvuc+7Z955zutXv+/nsumedddZe83qetZ61VvPmwZgxYyJXUdehHvEIIeY/srb/Yo9hjE3xsffnn38Ojj766Ep+/Tvj464HN77DD4TKbnDSSSfZw9/A+xnn27ZtWyXO7777brDBBhsEPXr0iFyCIFTWg5YtW5rc4PHh4s738Oyzzwb16tULevbsWSm9U6dODY466igbTxlXIcuY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ghx2G77y5TLrEGJ+Q22iuDBjzGzxfffdl/fkVSFEbtQvCTH/MqfaP2M3N22gWDdr1ixyFULkI629akVcCCGEEEIIIYQoI1LEhRBCCCGEEEKIMiJFXAghhBBCCCGEKCPaIy5EgahNCCHqGuqXhJh/UfsXYu5Be8SFEEIIIYQQQog5jBRxIYQQQgghhBCijEgRF0IIIYQQQgghyogUcSGEEEIIIYQQooxIERdCCCGEEEIIIcqIFHEhhBBCCCGEEKKMSBEXosjMnDnTXXLJJW611VZzb731VuSazs8//+zatm3r9t57b/fTTz9FrvMef//9t3vkkUfc+PHjIxfnXn31VbvKgf/nB7788ks3YMCA6FPx+PXXX92ll17q1l57bcvPa665JvqmKln8pjG/lZkQQgghRKmQIi5EkVlooYXcLrvs4n777Tc3YsSIvPd7fvzxx6bU7LHHHm6FFVaIXOc9Bg4c6C677DI3Y8aMyGX+YvLkye7kk092n332WeRSPO6++27Xq1cvd8IJJ7gXXnjBHXroodE3VcniVwghhBBClA4p4kKUgK233tq1aNHCPfPMM6aEpYGCjqIOKO7+on8hCmX69OlmZbDddtu5E0880TVv3tw1bNgw+rYyWfwKIYQQQojSIkVciBKw3HLLuR133NFWu1n1TmPatGmmiLds2dJttNFGkasQhcM2iD/++MOsMBZcMH93nsWvEEIIIYQoLZLGhCgBrG6zIr7qqquaCXCaefrYsWPds88+a/6WWmopc5s1a5b5b926tVtmmWXMXP3YY491Y8aMse89KPhbbrmle+WVV2x1E7+HHHKI+/rrr20/9qBBgyxc4kEYfPfSSy9Vikf37t3dXnvtVWXFns+4872H340aNcriQniEy4rqrbfe6v7888/IV1X4DpPsI4880n7PhEPyncSXvdPbb7+9hcv/fMY9TqF5k4/ff//d3XLLLZXelZYG9u5jwo1lA/6Id8+ePd2PP/4Y+ZhNIflCWa244oru6aeftrMD8HPffffZd7n4559/3JNPPmlnB8TTyrt8GRLukksu6fr27Wth84608oR8fn0aMFcnncQvV51Jg73vZ511VsW+c/KMvJoyZUrkYzbJvCJdlGUh7xBCCCGEmNeQIi5EiVhvvfVcs2bNTAlKKkesTqIQbbzxxq5p06bmhvJ17bXXugMOOMAtscQSpoyiOH333Xduv/32M4UlzqRJk1yXLl3csssu6x566CG37777moJ1ww03mHK+8847m6JPGL/88ouFgal8TXjttdcsXn/99Ze755573PDhw91mm23mzj33XHfFFVdY3NNYdNFFTRHv1q2b22CDDdy9995rh4UtvfTSkQ/nunbt6q677jp3yimnuMcff9ytu+667vDDDzdl1itoWfMmjR9++MEdccQR7uKLL3b77LOPpWHPPfe0NFx++eUVij/+jjnmGHfbbbfZHmry8KSTTnL9+vWzCYVPP/3U/EEh+dKoUSM3dOhQMwn3e7OxlsiFTyvvRrmNp5V3cegd+UK41KEDDzzQwuYdybz15PNLnu+22252WOBVV11l8SPuKNjkwzvvvBOFUhXy4rDDDrNJpf/973+WV7zjv//9r+vcubPVOyC+Dz74oL2HdJAe0kVZUn787ctaCCGEEGK+IBR+UuGrPF8LMd9RkzYRKp5BvXr1ghEjRkQuswmVkaBFixZBqKwEoQJobiNHjgwaNmwYdO/ePZgxY4a5wW+//RaECpz553dAeMSlU6dOQagEmhuEyrn5CxXfYNasWZFrEHz77bdBqHwGoYIVTJ8+3dxC5TNo2bJlECpg9tnDZ9z5HgiH8AiX8D3E8aKLLgratm1r4eeDfNhiiy2CcePGRS7/piFULoOJEydGrkEwZcqUoHXr1kGbNm2CadOmmVuWvEmDNITKbdCgQYPgueeei1xnu4cKt7m/+eabQagEB127drV3vfjii5Gv2YQKadC4ceOgS5culudZ8iWZp/kIlVmrMz179qyU1qlTpwZHHXVU0KxZs+CLL74wtz/++CM46aSTUssxSZpf8o/0EFfyPc67774bbLDBBkGPHj0il3/LzNfnu+++O9hss82Cjz76yD6Dz9PmzZsHY8aMMTfiS7wpK97pIX2UKfn6wQcfRK4iCzXpl4QQ8wZq/0LMPaS1V62IC1FCWO1m1ZvVSFbBPaHS4ULFz7Vq1cpWjcO26J566inbW851ZgsvvHDk05nZOm6sNvK7OE2aNHGLLbZY9Olfvvrqq0rXoa2++uruiSeecKGC6BZZZJHINRuYZXPYF3EF4sjKKavxhF9TML9eZZVVok/OLb/88m6rrbay+GNKXtO8icN+/Oeff97tv//+bocddohcZ28hwHKAFWNWdUPF2YWKuq3IJ1ett9hiC1vtDRV0980330Suxc0XDlSjnCjXUOmulFbSjxsWFtSdYkD+sZJNXMn3OGuttZZZJ+SydvBQTp988oltHQDy1K/8b7rppuZGnEePHm0r7H4bBpA+yoR3hMp95CqEEEIIMe8jRVyIEoIihjL++uuvmyk5oJCjpGAijJIOmDajBC6++OKm1KDsxR/2fq+88sqV7uGGBg0aRH/Npn79+mZujRk1pvHswe3fv78pjl5RzAqKFderocyypxpFlvun33333WqVtEJIpsEzdepUu/e6pnkTh7wnDMoDc+g4KOGUR/v27d33339ve87ZK82hZnH4vMkmm5ipNubrpcgXJh5I4/rrr2+KdxKUYyYE8FNMqBvk98iRI830HfP9gw8+2CaQ8kGaiRMm89RlthmgdCf33FM2nJeAuXuy/DjMkLJl8ig+WSWEEEIIMS8jRVyIEsJqN6verAay4goohOxpZiUY5QQ4zRolhZVOVgh33XXXSs/xxx9vyqRX5j0cwBUHZZG9uawg77777ra6e/TRR5uyRLjvv/9+5DMb7HVHKSPsiRMnuvPOO89WbVnxZH9vbRRyDu7KR03zpiagCKL8J5XwXBQ7X1hV5je8H0W/HDBJwyQEkzjbbrttxb5wDnNjsigf7PsfPHhwxcF+WAJgSbDGGmvYvn8Ucp4JEybYfnL22CfLj0PhmPzgcDcsAoQQQggh5gekiAtRYlgp3HzzzU35RtFDyfniiy8q3R3OKu2aa67p2rRpYyusrFCmPaw4Vgfmvi1btrSVTVZ4Mfk944wz7GCxc845x9zywaFlyRPLgZVjThL/7LPP3Lhx41zv3r1tooGDzAo5LK2mFDNvqgMFuF69eplWZouZL1wrRvnxftJUalgF58A/4vnwww+bMsyJ8ZzYzgRO0nogjdVWW81W0JloYsIEawwsBzhJ/f7777fVbiacsAzh+2S5+YfD+Qp5nxBCCCHEvIAUcSFKDEoIq9+Yp7P6iNKDohy/O5x93iuttJKtGrKymoTTzrkWiv3D+UDJx1yYU7GB/bis2rI6yaot+5n9SdaQpnSz55cVTA/KGldOocSzYomiiPKJcs9VYJAW52JRjLxh1R0TeNKVNJsmTzi5+8orr7T3cOo5lgPJ1VmU4w8//NBWvNnTXop8obw23HBDU2qTV6UBZvhcAYafYoDJOBM1rIhjis4+cT85lKwHSdgygALOKjfKO5MIDRs2tBX122+/3UzoOSGd8Mh7Vr2xBkmCtQh11ueZEEIIIcT8gBRxIUoMigjmuiiSKOFvv/22fY4fWsVKLKbAmFdzcFZcOWaVkqu0WGX1e8pzweqkv5KK/cYeb3LNO1mhBPZVsz83rhxhFs1qKHH1cN8zpsYovJ9//nnkOhuUesJlFbk6MLtm5TMrxcgbFHH2c2Oy/9Zbb0Wus3nvvfesXBo3bmzXhWHSj7k1EydxUIAfffRRm9hghb4m+VLdSrffyoDS+sADD1QybccagP3+mItjQl4MOLiP+sLkRNwKgM9333231YPkdx7q0TrrrGOH4DEBFIftBDz+KjXuVufgN1bLyRcPYePG/nAmOIQQQggh5htCoTAVvsrztRDzHbVpE6FiZldPbbXVVkGoSAXjx4+PvvkXrnLiyire0a5duyBUpoOHH37YrpviOqv77rvProaC5DVSHr7HH/59GMOHDw9OO+00c+vdu3dFGFwlxpViPHfeeaf5Pfnkk+3aqV133bXSVVtjx461eG+zzTZBqDgFL7zwQtCrV6+gUaNGqVdfJSEOxPeCCy4IQgXXrv/KlQbg3cTLX3eWJW9yMXHiRLsqjTgTd64Ju+yyy4L69esHHTt2rLhWK+6Pd+LPp5UruOJXsBWaL7788Rsq+cGXX35p7mn4tJIuyiOeVuI6YMCAirSmXUmWizS/3o13cW0bab3nnnvMz5577mn1gO/xB8kyS+Yp6ScfyA/yyl+zFq+XhE16SBdlSXjJq9pE4ZB/PEKI+Q+1fyHmHtLaa87Wq8YtRGVq2ybuuOMO+3387vAkM2fODJ5//vngwAMPNKWFh79ffPHFSopmPiWWMJ555plgr732qhQG4fJdnNGjRwdHH320+eHubO6//uabb0z5St55jVJ14oknmj/ejVLZp0+fSvdC5wI/3LmNItmkSZPg008/zZuGpCIOheZNPogHkxFMiPg03HLLLRWKpmfy5MnBVVddVeGP//k8KXZfuKfQfGECYqeddjI/8bu500ApHTRoUEUZEvZxxx0XvP/++5XSWltFHEgr5e7jv/vuuwcDBw4Mfv/9d5s4Sbu/Pl5m5AlKPMo43/F/Wl4Rb+LfoUMHqwf+XaRTSnjNIR95hBDzH2r/Qsw9pLXXBfgndKyC3yeY42sh5jvUJoQQdQ31S0LMv6j9CzH3kNZetUdcCCGEEEIIIYQoI1LEhRBCCCGEEEKIMiJFXAghhBBCCCGEKCNSxIUQQgghhBBCiDIiRVwIIYQQQgghhCgjUsSFEEIIIYQQQogyIkVcCCGEEEIIIYQoI1LEhRBCCCGEEEKIMiJFXAghhBBCCCGEKCNSxIUQQgghhBBCiDIiRVwIIYQQQgghhCgjUsSFEBX8+OOP7r777nN//vln5OJc9+7d3ZZbbuk+/vjjyKVu89JLL7lDDjnETZo0KXKpHaSb9JMPpWJuy+MspNUpIYQQQoj5HSniQggDRalr167ulVdeiVzmPiZOnOh69erljjjiCLfyyitHrmJOMS/UKSGEEEKIUrBAEBL9XYkFFljA/s/xtRDzHfN6m0Bp6ty5s/193XXXuSWWWML+nlugXG644Qb37rvvuhtvvNEts8wy0TdiTjG316m5AY3VQsy/qP0LMfeQ1l61Ii6EmCf46quv3MMPP+wOOOAAKeFCCCGEEKJOI0VciBLBvt+TTz7ZFMSLL77Yrb322qYgsn+ZVdvkDPbvv//ubrnlFrf99tvbrNlGG23kevbs6aZMmRL5+Je///7b3XnnnRV+W7Ro4Z599lnXv3//KnuN2aNLODvssIP55WnevLm79dZbK/bt4p/v+/bta8+SSy5ZsSc6vn/5u+++c7vuuqs766yz3PTp0+17z8yZM90ll1zimjVrZmkG0jhq1Ch37LHHuhVWWMHS37p1a9vHnUz/l19+aeGST8Rx6623zpn+NJ577jn3zz//uK222ipymb0iSxmQhjFjxlTEg3dQJoSNOfs555xjbnx39tlnW5550vaIk/+DBg2yfCeu/I5yTaarUH/xPIZXX33VPhPnAQMGVJQz//OZcOPMmjXLPfbYYxXv8f6ef/55+0x41UHePfnkk27vvfe2ciKu5BflF48rYeUKk3TstddebvLkyXnrVC54z+uvv+4OP/xwe7+vLy+88IKl0ePLBJN36r1PN23m+uuvt7YkhBBCCFGXkSIuRAn55JNPXPv27d3PP//sbr/9djOZRuE86KCD3DvvvBP5cu6HH35wHTp0MOVwn332MeXipJNOcv369TNliO89KJfnn3++O/PMM90222zjhg8f7lq1auU6duzo+vTpE/maDQoxit8DDzzgjjzySFNoBg8ebPunTznlFHfbbbeZ8rPaaqu5a6+91h144IH2PP30065NmzZRKP+yyiqruJ122sm9+eab7vvvv49cZ0McUYx22WUXt8Yaa1i4Dz74oNttt91MgUcZQznEPHm//fazv72C9+mnn7rDDjvMjR071v3vf/+z9BOP//73v2ba/Msvv5i/XKB4jRgxwpSzVVddNXL9l9dee83Si7JNXrRt29bM2An7hBNOsDhRPqeeeqrlydVXX11F2fUw4cBvTzzxRLfzzjtbXEkbcSRdzzzzTCZ/ufjjjz/cpZde6u6++26bHHj88cfduuuua0oqkyg+73hP7969K/bF44+6QxrYn10IKOGU/6GHHmp5RNkQV8oNC4NHHnmk4n2FUmid8hA+723ZsqXF54477qioL8SBuo17HMqKNnPUUUdZO9hjjz0szd26dctZfkIIIYQQdYJQ+EmFr/J8LcR8R9Y2cfnll5v/nj17BjNmzIhcgyBUYoMGDRoEvXr1ss+zZs0KQkXK3J577jlz84SKabDFFlsEoXIRhEqIuYUKXVCvXr2gf//+9lvPiy++GDRs2ND8jxs3ztxCRSbYaqut7J1xpk2bFoSKWxAq8MGUKVPMLVT8glCBs4e/PaQjHqZ//5AhQ+yzJ1SEzJ3v4YsvvgiaNWsWhIpu8Ntvv5kbkBfdu3cPGjduHHzwwQfmFiqbwWabbRZ89NFH9hlIW6hoBc2bNw/GjBkTuabz5ZdfBk2bNg169OgRuczGp4l4DRo0qCK/QmU4CJU3Kx/e4d3J4wsuuMDCIkwg3aSffIBJkyYFLVq0CEJlr1L+f/vtt8E+++wTXHHFFcH06dML9gfJPB4xYoTFLVRAg4kTJ5obUFatW7cOQoXWyhDIQ/KSPI3XM+rOdtttZ+EQXj58mSbr6tSpUy2fKEfKE3zc0sIkHaEiHfz000/2OVedSsOno2PHjpXqy19//WVlQt0eOXKkufkyIX2k04PfTp06VSq/eR3KgkcIMf+h9i/E3ENae9WKuBAlZIMNNjBT34UXXjhycW6dddZxm2yyiQuVDfuMGe9TTz3l9t9/fzPljbPhhhvaCjkrzaw4Yw7+xBNPuCZNmthKM+a4HsyRWTmMwyozZvDbbrtt5DKbZZdd1jVq1MhWGEMlMXItjFABMvPzUPGvME9nVZbV9lAxchtvvLG5Ybo8evRod8wxx7illlrK3IC8IK28m1VsT6i8mQWBjw9pY7WacDfddFNzywWr85hxr7XWWpFLZcgvb94NodJpZRMq/7bC790XWmghM29mhT1U6swtF1gbEGfP6quvbmVz0UUXuUUWWSRyLdxfGtQdrBA8yy23nNt8883dr7/+WrE6zEowf5On8XpGOrCGqI54nWJlOR4G78ONssQKopT4dIRKe6X6sthii1k9XnTRRatYEdAGaCMe/JKOQspPCCGEEGJOIkVciBKy0kormdIbZ8EFFzSFb+rUqaYEoYijSKKAouyg4PoHBRxT9AkTJpgyh4KBsooSvfzyy0chzgYlBLPiNAjjo48+MkUGc2EUNMyZawJ7dzEBxtybeAGTBOztxSzdm4aPHz/e/sYUP54mHvb4Lr744qakosQzAYESzUQCijzmxSh/fg97daCY8uRKP3nDkwQll/TEoWzyUb9+fbfnnnvatoH11lvP9jCzN/+bb75hmjPyVbi/fDRo0CD6azZMGBA/0spEDsrmZ599ZibrKPhx8Lv++utHn3Lj6xR+UbyTUC5MvuCnVPh0NGzYsEqagbSRRupLvE7QvpLlxWfukPcTXUIIIYQQdREp4kKUEFZel1566ehTZf744w9TQlGwORCLPcochJZ8UJjZQ43yhbLuV0LTSN6djdLCtVHs2UbBRTG87777TJFnX3lNQMHbcccd3ddff+3ee+89c/vwww9NuSZ8vveTB8SbvenJNDERwAo2h6UxGcHqNHvX/WFeV1xxhb2DeBP/6hRyFK98oKBzWFgSlDYmRrLAb9hbjhXD7rvvbofEHX300aawsir9/vvvZ/KXj+Qkgcev+KLQU4dykev3cXydIr7eMqDc+HRkLY9cd8UzsaUVcSGEEELUZaSICzGHQVnCRLpXr16mkOR6MAdHSYmbDieJrwLyGw6z4iRyDipjJXbGjBlmqs4hYCi5NaVx48Z2UjWnfzOhgPk4pt8o1MBqN6vhTZs2tRXxZFr8w6Fj/m5pDvfi4C0ObOM3rCRjwk/877//fvOTi1wKWamgDDhUjEPMUPowsT/jjDPMSoAT2P1BdoX6qyl+hTwXlE11+DqFIkyZ1BR+X6gFQxKfDsLIulVCCCGEEGJuRIq4EHMYf1UUK8pJRQbFhL3EnLKOcsreWfbE4hfT9jicEo0S6+F0bhQ/FGaUPxRvr8SjoH377bf2d01gpR8z9LfffttWxTFLZ6+1N5dHscLEmFXvtPewdxxzdK5rY+USBZyVc06XRzHERJm95VgJYBbN6d35ID485FGp4bR74j506FD7TJkwScLKPSvgXH1G3hfqrzYw4YFJOdsA/DYBD0o1+V8dvk5Rd+LXtnmwfMBiI74XG5JKfm3qlE8HlhW8LwlpI43UCz9xI4QQQggxNyNFXIg5DPuUMelGYWNfdHxVEkUXU/I111zTFFsOrMKkHCWPO6Ljft944w03ZMiQ6NPslU6UFhT0+FVO/IartB599NEq30GhK6OsgDMZwMo1ihLm13G4q5x9vXyPWb2HyQbc2O/LwVooYRxgR3riV7oByh1PLvN+D3mDVUGaEldsWLknPlwThom4h3wjnSi2pKlQf7WFusMEC/Unvm1h3Lhx7qGHHoo+5cbXKZR2rnaLhzFt2jTb184hfP7AP3/QHf7j9QRLi5dffjn6VJlC6hTpYI869+PH84v6Sbyw9kjWMSGEEEKIuRUp4kLMYTDJ5a5wFB3ucWafNPuJWTllVRgT75NPPrnisDHMvXHn3vBOnTrZAWz45Q7s+Io6ChNm0Rz4hnk3J2Pz8DsOQ+M0dhRprySjkHHAGOE9/PDDdrhbPlCyuR+b+55Z6eVAsjisoJ577rl2lzj3dg8cONDef9xxx1l8WaXfeuutze++++5r6SdufMeBbtyfzQnamJ1z0Fk+8IMizqppcqW22FAeHTp0MOWQU91JE3nGKjcr/Ox/Zx94of5qC6ej8x7KlD3ovIe8o44UOjGBdQOWF1deeaU7/fTTLQzKi9PK+Zs76/1BeCjhnFbO9gbu6yZN3FmOqT0Ke5wsdYozDLCMQPEnPZjz827+vummmyzffH0RQgghhJjbkSIuRB2AVXFWvjmkbNiwYWZOfv3115uyjALDnmwPq9zXXHONPSNHjrSVRBQWDnVjLzjm4SjhgGI/YMAAU8hQdrt06WLmvezpRiFGcfXmxEwIoPSg7LRv396Un3wHXhEP3g0crMYKbxzM09u1a2cTAawOo1QTBw5WGzRokMXFm8qTfszQUU779u1rB7pdddVVZpKPQpbrNHQPccE0nvxgL3wpIV0oqBwux0QGaTz44IMtH7FIQJHFT6H+agvlhpJKnpK35DGKPm7UJxRnXx9yQTlQHlgqYN5PXM8++2zbzoClAvXIx5W87tGjhzv//PPdPffcY2nCkoHzCDiELk6WOkX4vPexxx6zz8cff7xNLLBCT37F64sQQgghxNzOAkEOe0EvdBVioirE/EBdbxOY/7Iqyv5rVhWT15vN62Aez53XRxxxhE0yCGeTGkxwsCpfyFVmYu5DY7UQ8y9q/0LMPaS1V62ICzGXgRkwK8XssY7DSjB7dFl95AC4+Q1W3bmHHOuA5EF28zKY/rMfnz3accgDtjhgsp92N7cQQgghhJhzSBEXYi4DM3CULky9WflmP7Xfc4wZL+a9mATPbzDTiAk1lgG5Dg2bF2HiBXNvzhGgHlAfqBfUg7feestMwpPbBoQQQgghxJxFpulCFEhdaRO8H/PzG2+80U4/Z2W8UaNGpnBhkr3SSitFPudPuNsck2z22M8vecG+buoD1gBcbcc5AFhNcJhfdfvrxdyNxmoh5l/U/oWYe0hrr1LEhSgQtQkhRF1D/ZIQ8y9q/0LMPaS1V5mmCyGEEEIIIYQQZUSKuBBCCCGEEEIIUUakiAshhBBCCCGEEGVEirgQQgghhBBCCFFGpIgLIYQQQgghhBBlRIq4EEIIIYQQQghRRqSICzGP8Pfff7tHHnnEjR8/PnLJBvdPb7nllq579+6RS3H49ddf3aWXXmr3WXN1wzXXXGPv2GuvvdzkyZMjX9mobVrTSAvz1VdftTjzf7H58ccf3X333ef+/PPPyGXeoLZlW0q4MuS1115zLVq0sHLdYYcd3Oeffx59K4QQQghRPqSICzGPMHDgQHfZZZe5GTNmRC51g7vvvtv16tXLnXDCCe6FF15whx56aPRNzSlFWsuZfyjfXbt2da+88krkIsrBN9984y688EK30EILuSFDhrjrrrvOrbHGGtG3QgghhBDlQ4q4EMJo1KiRe//9901BLBbTp0+3FebtttvOnXjiia558+auYcOG0bdClBesED755BN3xBFHuP33399tv/32brHFFou+FUIIIYQoH1LEhRAlY+bMme6PP/6wFcgFF1R3I+Ysf/31l/v++++tPgohhBBCzEkkGQtRQn7//Xd3yy232Mobe1L5/9Zbb62yLzjpb6ONNnI9e/Z0U6ZMiXzMhv23J598snv++efdzjvv7FZYYQUzp8bs+8gjj3SjRo2y38b36LIKSFjshyVsHlamk/FI2yPu3/fVV1+5iy++2PZ5L7PMMu6QQw5x7777ru25zQX7qpdccknXt29f9/TTT7sVV1wx795hnwfs3+UdxHPrrbeulA/El/ikpZW44HbsscdavuRKZ5J8YXrYPz5gwIBK5chn3OMUkgbymbIgX3jIo3ieJ/Hxw8+YMWMq0kdZUCaEO3HiRHfOOeeYG9+dffbZVu5xCqkHP/30k9t7773d0UcfbXv7k2DKTdq/+OKLyCU3mIGfeeaZFXE966yzzC3JrFmzbMtC69atLc/wTxpJa6F899137qKLLrKy8+VDOVAe4PNwxx13tM+UNf7Yoy+EEEIIMSeQIi5Eifjhhx/MBBZlaZ999nHDhw93e+65pzv33HPd5ZdfXqHE4a9Dhw4V/p599ll30kknuX79+plCwvdxRowYYftcCRtFbqeddnKnnnqq69atm9tggw3cvffea4ejLb300qZAozQ/8MADpnyg8AwePNitvPLK7pRTTnG33XZbXmUaMOVt3769+/nnn93tt9/ubrzxRvfll1+6gw46yL3zzjuRr6pg6o4CfuCBB5pp+tChQyvilWTq1KmW5quvvtqUWA5Ne/zxx+13PXr0sIf8WnTRRU2hSksrh3AdcMABtup5zz33WH5vttlmlt9XXHGF++eff6K3VSZfmB7M9VFCyTPite6667rDDz/clFiff4WmYbXVVnPXXnut5QsPedSmTRsLIx+kj/ej1FKebdu2dTfccIPr3LmzTcQsscQSVj7UBcqVePg6Vmg9QAneY4893BtvvFFF2SZ97GknPaQhH+PGjbM6w2945wUXXOCGDRtmcf70008jX87KhLyg3Ig/kxvUaRTr/fbbz7300kuRz9x89NFHVhefeeYZd8YZZ1j7oR3RnkgbExC+jPv06WO/oazJA6+YCyGEEEKUnVD4SoWv8nwtxHxHljYxa9asIFQwggYNGgTPPfdc5DrbPVR6zP3NN9+0z717967iD8aOHRtsscUWQagEBqHCYm6hAm9xGDRokH2OEyqQ5j9UgiKXIAgVm2Crrbayd8WZNm1aECryQatWrYIpU6aYG7/j97zD49/Xs2fPYMaMGZFrYOER5169ekUu6fzxxx9BqJwGLVu2DH766afIdXa4cbcRI0ZYPJPp4p2hIh00adIkCBW4yLVqWsnHULkKQgU4mDRpkrkBv7/ooouCUAEMvv3228g1nbT8I16kP1QUg4kTJ0augeVZ69atg1CBtryELGnw+cLD3/nwfuvVq2dhk1b45ZdfgqOOOsriR53y7tSVUPENmjZtGnz55ZfmlqUe+LK99dZb7bPHuw8ZMiRyScfXme7du1eqM6NGjQoaN25cqT6PHDkyaNiwYRW/v/32W3DCCSdYeYZKeeRaFfyFCn+w3XbbWXvxkBeh4m95RvvyeePLk7KeVyA9PEKI+Q+1fyHmHtLaq1bEhSgBoYJj5uMcCIUpsAdzWEzKWS0OFQczf37qqaeq+IMNN9zQVvZYhYyvirPKu/HGG0ef8nPYYYeZCfm2224bucxm2WWXtTiwIhkqKZFrOqwSY6688MILRy7OrbPOOm6TTTZxoSIUudSOZs2aWTxZ2YzDOzfffHOLJ/vNq4PVTw6HC/s2+8zvWQ1/6KGH3Oqrr25uNYH0r7LKKtEn55ZffnkXKrZmyu3Nn4uVhlyEinyFaTyESqaVDfUBqwjvzv5nTLSJF9YBkKUe8Jm0sLXAm6eTn1hiUObbbLONueUjVLjN1DxeZ/gtFgC+PhMmdX+55ZazlfK436WWWsrcWN3+4IMPIteqsPKORQEWJbzTQ16w2s37WCmnPQohhBBC1CWkiAtRAiZNmuS+/fZbU/4wuY2DooNZLKa7KOIcHoUS9Oabb7oXX3yx4kFhYW/rhAkTTOHzYD7MXtosEA4mvCglmAJjpty7d+/o2/ystNJKprDF4eA1FD5MjzkZvVgQFibRzz33nJkRk0fs/a0OFC9MqlG4UFaZ1OC+cpRPlMza0qBBg+ivypD+5F7qmqahOjjdO+2EbyYIqBNxch1GVkg9oKwxrY+bp5OvKOLkK+bs1bHWWmu5VVddNfo0Gz9BwB556jyTBLSRxRdf3LY/xOs+z9dff23vyndX/GeffWZhxZVwj5+o4B20RyGEEEKIuoQUcSHmICjYHBDG3t5dd921yoOSxJ7auLKXSyFLA8XL35XMKjp71DmgismAVq1aRb7yg0KTtq8bOBG9Nqu8HpRl9gezcsz+axRB9j+jFLKyWgis4rI6yp5pDi8777zzbBV50003tbBro5AnFd00ipGGfLA3nIPdkqDgVncifdZ6wGoyK9Svv/66fcZ6gxXyli1b5lTyC4HfeiWcusNZA0xAYRGSrPvHH3+8KdD5lGhfprWJkxBCCCHEnECKuBBzEBQ8TIt79eplprq5HpTMrPA7DuHitGoOreLE6hkzZtgqMYeRoZTVFZ544gk76Ix0MvHAIWOYHV9//fW2ilooKJbkJSul/J6JDA7qIuxCDv6qDcVKQ7GpST1A6edQNpTvX375xSw4SFehWyJywVYGVqmZ3MFSZM0117SD6lhxj9f3+JPvXntvzl6MySAhhBBCiHIiRVyIEoCCjTkzZuWsRsZhHzMnQl955ZW2wolfzHWT/lAuMGlmzzErh1lBgcKcmJVZTpNG4fKKC6uRmOzWBTDlRklG+eMKrvXXX9+UZyAPOPG7OjAR54R5fk94pBOlnHRzjRWwSl4qipGGUlGTesAebeoo5uko7DzsQ2dvfCGQ1/HtFMDEBCvrbNfgKjusOtj2wKRFWtlgPs/Vb0xw5IJ8pp2lnd6PFQlhk95CzOmFEEIIIcqJFHEhSgDKNXuWOYzqrbfeilxn895775nSxr5WlBLMhLnai9VHVgA9b7/9tpkPs2qYa49yEvaa+zAwV2bVEQXIX2MFfM8hWI8++miV7+YEmBWzTxhz5eRkBHlHPFEYk/GMp5U98yhcKG+ff/65uXlQRFHKWIWtjniYWahpGlDSa/K+LNS0HnAYXf369d3AgQPtOrHdd989+qZ62G5BuPHtACj1Q4YMsfrOvnbyjPvaMT3nML34+7kbnVV8JjPyrcJjaYC5/IMPPmh73z2kjckH4rDbbrvZgXBCCCGEEHUJKeJClAAOD+Oe7y233NLMldmfy+Fdl19+uWvXrp076qijKvbbspLLadaHHnqo6969u/nD/zHHHGMHXnH/cSF7wln1GzNmjN2hjdKDEsM7OPQNs2RWFnk6duxo5r6cyJ522Fi58QoZZsvEE8UPhRprAPKEvEnuk0+mFYWPfEUZJt/uvvtuO/CLfGTPOCdws6Kbj2SYScU0H1nTQNmg5OLn4YcfrqREFhsmIGpSD5gkatq0qbv55ptt0mi99daLvqke3olJPnlPGikH2gHtgfpOfgHhs0p/ySWX2MnnxIu844529vt36tTJrAxywco998QD5aQ7Pi8AAJ50SURBVI71A+2HdsR96ZQJ7dCfKC+EEEIIUVeQIi5EiWDVjxVt9uX279/fTIOHDRtmJun/+9//TImI++OaLb7HH0oMChJKWtqJ0Gmg1HTr1s317dvXnXbaabYXGCWQA8Q4gXrfffd1Xbp0cQ0bNrQ9v8cdd5ydSF0XTNRRku+9915T0FCaTzjhBFtZfvnll015ZF8x+609aWklnx544AFbyeU7DvxipRRF76677qrWrDotzCxkSQN+UDwxveZU9ZtuuqniqrFSUJN6wGQB17YBddLX10IgL6nLTGZwdRr1+eijj3Z33nlnpWvgMJHHlJ+r/sgrJlNQ1FnBf+yxx+xzdUo05U47If95D3ElPNoT5R5/nxBCCCFEXWGBIIddpBd+Sm02KcTcgtqEmN9gy0SPHj1MiefueFH3UL8kxPyL2r8Qcw9p7VUr4kIIIarw+++/u8cff9z2dHMvuBBCCCGEKB5aEReiQNQmxPwAhwSyz5qTyDlojj3b//nPf6JvRV1D/ZIQ8y9q/0LMPWhFXAghRF4YIDj0zN/D3qRJk+gbIYQQQghRLLQiLkSBqE0IIeoa6peEmH9R+xdi7kEr4kIIIYQQQgghxBxGirgQQgghhBBCCFFGpIgLIYQQQgghhBBlRIq4EEIIIYQQQghRRqSICyGEEEIIIYQQZUSKuBBCCCGEEEIIUUakiAshhBBCCCGEEGVEirgQ8yndu3d3e+21l5s8eXLkUnf5+OOP3ZZbbunuu+8++/znn3+6k08+uUr8v/zySzdgwIDok6iOZB3w+Yz7nOLvv/92jzzyiBs/fnzkUhzSwk3WKyGEEEKIciFFXAgxT4AyiXL+2WefRS5ibmTgwIHusssuczNmzIhcikOpwhVCCCGEqAlSxIUQcx1LLLGEu/XWW91TTz3lVlhhhchV1JZGjRq5999/33Xt2jVyEUIIIYQQpUCKuBBCCCGEEEIIUUakiAtRQiZOnOjOOecct/baa9vK7YknnujGjh1rJtQ87HX2/Pzzz65Xr15u6623dgsssIDbaKONXM+ePd2PP/4Y+fiXf/75xz355JNu7733dssss4yFfeyxx7pRo0a5IAgiX7PhHaweb7/99uYXf9988030bWHg/6yzzqpIx9lnn217bUlDfD/xq6++anHn/yRpe9JJG2ncYYcd7Hc8zZs3t/jG8yZJco8471txxRXd008/7S655BIL595773VXXHGF23DDDd3o0aOjX/7LO++841ZbbTU3ePDgyCWd33//3d1yyy2uRYsWln+ETRkR7ylTpkS+ZkPeUwbkMfnky2XMmDGRj9lk8ff666+7ww8/3Pzw/tatW7sXXnjBzZo1K/L1715n0n/ppZeaX/KR1W0otA4k94j7fOYz+++pvz6+/I1bkix1Po5/15FHHml5Q/2P15csdT5OdeECefnss89aGVO++Ln++uut7OMky82Xx0svvZQ3DkIIIYQQSaSIC1Ei2Kvcpk0b99hjj7kzzjjDPfDAA27hhRd2Bx54oBsxYkTkazY//PCDO+aYY9xtt93mDj30UFMKTjrpJNevXz9TID799NPI52yF5NprrzV/KDscTta3b1/33XffuQMOOMAOpPJKAUrIueeea8+ee+5p36GYHn/88aZ0FcJHH33k2rZt64YNG+YuuOACd88999i7UEY++eSTyFd2vvrqK3fIIYdYvpBGlEuU4pVXXtmdcsoplheFKjeYVA8dOtRtt9127oQTTrCwdtppJ0vzb7/9ZspsHMJFeVprrbXcVlttFblWZerUqVYOV199tSlp5N/jjz9u7+nRo4c9HAIGhElZ8F7yhzLh+eKLLyz/UPxr4q9ly5ZW5nfccYd9xiyfcu7Tp4+5x7n88sstHA4fO+qoo1zDhg2LUgdee+01K6M11ljDPfTQQ+7iiy92L7/8srnFlfEsdT7Joosuagpzt27d3AYbbGATKUwqLL300pnqfJJ84XrIyzPPPNO1atXKDR8+3O2xxx5mns9v4uX74IMPut12262i3Hx57LfffvZ3rjgIIYQQQlQhFBxS4as8Xwsx35GlTYSKQxAK8sEWW2wRjB07NnINghkzZgQ9e/a0cEIFL/jjjz8q/IZKU/Diiy9GPmcTKmVB48aNgy5dugR//fWXuYVKelCvXj0Lh/A8odIYhMpX0KxZsyBUxszN++3fv38wa9Ysc4PnnnsuaNCgQRAqecFPP/0UuVbFx404jBo1KnINLC6hUm7pCJW/yDUIQmXL3Pg/Cf7i7wsVlyBUgoM333zTPnumTZsWHHHEEUGoFAVTpkwxt3HjxllehkqUfSbfyL94ePzP53h8+H3r1q0tX3755ZfI9V/3zp07B6GiFblWhXQQx0GDBkUusyHfQ8U2aNKkSfDpp5+a2/jx44NQQQ9OOOGEIFT+zQ2+/fbbYNdddw06depk+Vaovw8++MDyvWPHjpX8+bynvowcOdLcfP6QJp9nnix1wIfj89DnM78PlftKvydPKOshQ4bY5yx1Ph+UMWEQF0+WOp+LtHB9eimPeJzJY8qhadOmwZdffmluhM97kuVGfLp3725lRZmVG/KVRwgx/6H2L8TcQ1p71Yq4ECUgVKpcqOi4ffbZx1YfPawOsgrMiqrH+8X8eMcdd4xcZxMqCbaaGCroZko8ffp098QTT7hQAbQVT8LzLLfccuaGmXao3LqZM2dauPhlFQ+TW88222xjK7zVwUr9K6+8Yqa8mOt6FltsMRcqyy5UPiKX7Bx22GHu3Xffddtuu23kMptll13WVrhZBY2bX9eE5Zdf3lae33jjDVsp9mBhwLtZAWXFNBeh4mX+DjrooMhlNuT75ptvbnEkn+Gtt94yE2wsG5ZaailzA8zfd999d/f999+7UOEt2B8rs4TPinzcH3lP3hHvZ555JnKdDXGiHniKUQeA32PqHv/9xhtv7DbbbDP366+/2ucsdT4LWep8TSFv4nEmj6mXbJ1gywjwDrY4JMuN+Oy///5WVtWt+gshhBBCeKSIC1ECUKbY77vJJpu4hRZaKHKdTf369d2aa64ZffrXL4pu0i+fCQNzZZRi9qxiDr7++utXUrg8mFqjvOMHk2wUzjS/9erVMzPd6iBumC+jGCcV1lVXXdXeV1swncb8HaUS82OUtt69e0ff1h6UW/Dm6UEQmMJE+lEmCwFlEEUeRRMz5vbt27uLLroo+nY25Pm6665re9XjoLziF5Pu1VdfvSB/7D/GzBvT8gYNGkQ+/oVwCAPzfvLPg9+4slyMOgDENa58Au9ZcMEF3aRJk+xzljqfhSx1vqastNJKVeIM5J2faOBMBOo8pvhMjMUf2sjiiy9u5eEnZoQQQggh8iFFXIgSgDDuBfgkKLQoWh7vN00RSMIKMStv+I0rXGngz4dbnd9c/PXXX6ZgxffTepZccknbr1tTUCCvu+4623eMQsz+ZfY2o/SzUl0s1ltvPVvZZkWT/OCQLpT+XXbZxRSrfJCH7P1lpRnFlxXkG264wVbtOaSrVDBZQL2g7FB2CyVZTsWoA0B9zWU5gLIPWep8FrLU+ZrCuQT5oK5OmDDBFHP2xe+6666VHiaPmITg8D4mbYQQQgghqkOKuBAlAKWBFcc0UCr++OOP6NO/fgtZSUMpwxQWvyhr+cCfD7c6v7nwq6Ze2YqDwhE/eTofxCG+ckt8OIyNk9g5mA2z+xkzZpgZOAdpoZwXC1ZyMfn35umsXrICj+JfnWKHSTSm4SjyKGEc3DVu3Dg7UTtuql9siBf1gnyrjXl+MepAoWSp81nIUudLBavdTNo0bdrUVsSJR9rDyfQc3iaEEEIIUR1SxIUoAZgIs3/2ww8/NAUiDvt/42a03i9XTSVX0/gtYbA/dpVVVjGlkr2s7DFOu9bs66+/tuuV8MPqKEp0ml+/wlcdmOxiHk0Y/vRoD6t/ua5BSypdfGYPseeXX34x83BWmDldG8UbZQuSfosBe4Axj8Y8nb3E7I9m5T0flAUnq7Pqz3VcmEb7VWHKBTPkOKyYY75M+SbhpHlWTj/44IOC/GGWzvsoe8o0CWVHGJRNPsWvGHWgULLU+SxkqfOlgokR0seqd1rdZO84V/BxzZ0QQgghRCFIEReiBKBYsjeZK7/iCggrg+wBjh8s5f1ydVfymi0UjEcffdRWZNljiyKI2TYKAVdDEZ5n2rRprn///nYoFgdNsULJIWusAif9cmDYU089FX3KDauA++67rxsyZIitKHvS0gF+BZ34sULoYaWb6648rHKiQKLcxxV8fsPVbaQ5+V2hpK2cchAa+cIBaFxtxgQA5uX5IP9YCcU8P76aD+QfcWTSwMeR1VJM7O+///5K908z6cDecg6OY293of5YsWdP9J133lnJH++jPLFS8Pvfc1GMOlAoWep8dWAF4MswS52vjni4WeGwOiZRuFIwboJP3cCNiRkmzIQQQgghCkGKuBAlAAWI05xR5NhLzF5o9iV37tzZzJrjJrz4PfXUU92WW25ZcWc1Chm/4SR1VnI7duxoJzkDe5s51OvKK690p59+uplPDxw40E7S5m/uQ/Z7t1H6WHHGL+8mDoTL+5LKZRqsBBIuSg5xy5cOQAln9Rnzcu5gxi/pYUU5fmo2v2vZsqWdyI55OvHmIZ3c38zJ29zhnWvPcRoobOz1RblESY6vWJN3frLj888/r3I6fRpeiUXhJY7kMekh77nPmjyJH+ZFnnfq1MkUQ+4y9+XC/mFW1ikHlOxC/aGsc183/jp06GB3ZeOXv2+66SYrg6233trenY/a1oFCyVLn80EZonRjHcDkDxMPWep8LtLCzQIr7tzFzl3i3PfO+3n3cccdZ2kljwspDyGEEEIII8gBX+X5Woj5jpq0ia+//truqubO51ChtjuIufuZu5u5C/qff/6JfAbB5MmTg6uuusrureY9/M/nSZMmRT7+hbuLucc5VBTtfmXCDxWC4P3336901zN4vzvttJOFGyrEdod3qORVukM6H6EyGvTu3Tto1KhRRTree++9Kvd2A+kIFSaLE3ELlRbzyz3O8fcRL+JBfIgXYfv0Dh8+3H7L/dHg73vOd484vP766xXp7NGjR+Q6mwkTJgTNmzcv6C5rD3n53HPPBaESb2GSJsrziy++sHvVN9hgg+COO+6IfM/2z93v7dq1s3ziCRXnYPTo0ZGP2WTx9+KLL1oeen/8/fzzzwczZ86MfFXNnySF1gEfTvIe8bQ8S/r1ZKnzaVDXunXrZr9tErunPUudTyMt3Hz5hht5Fb8Tn/fwPsqKcPieukG8iN+cgDjwCCHmP9T+hZh7SGuvC/BP6FgFf4hRjq+FmO8oVpv47rvv7A5uTI9DxSRynfvgoDbSgdk8q9h1HVbIsTDo0qVLlXvBRWmZV+p8XURjtRDzL2r/Qsw9pLVXmaYLUQIwqz744IPNRDtpAjty5Eg7eKqQPa2iONDpYQbPlWscqiWKj+q8EEIIIUThSBEXogQss8wybvvtt3e9evWy/avsJfX7i4899ljXpk0b+16UlkmTJtm932effbbt4eXgueruDhc1Q3VeCCGEEKJwpIgLUQI4uIoDue666y67d7hdu3ZmlsvJ0dyfjbLCtUyitCyyyCJ2TRqnWnPI1/HHH19hGiSKi+q8EEIIIUThaI+4EAWiNiGEqGuoXxJi/kXtX4i5h7T2qhVxIYQQQgghhBCijEgRF0IIIYQQQgghyogUcSGEEEIIIYQQooxIERdCCCGEEEIIIcqIFHEhhBBCCCGEEKKMSBEXQgghhBBCCCHKiBRxIeoAs2bNcs8884x7//33Ixfn/vzzT3fyySfbw99zmokTJ7pTTjnFrbDCCm6ZZZZxAwcOjL4pLn///bd75JFH3Pjx4yOX8vPxxx+7fffd13300UeRixBCCCGEEMVDirgQdYDXX3/d7bnnnu7333+PXOoW06dPd9ddd5178sknXY8ePdzQoUNd8+bNo2+LCwr+ZZdd5mbMmBG5lJ8NN9zQ7bHHHq5Pnz51YhJECCGEEELMW0gRF0JUC8ooK9Qop0cddZQp4SuuuGL07bzHAgss4A444AA3ZswY98orr0SuQgghhBBCFAcp4kKIavnnn3/cr7/+6hZaaCFTUucHGjZs6Fq0aOHuu+8+98svv0SuQgghhBBC1B4p4kKUkJ9//tn16tXLbb311qbAbrTRRq5nz57uxx9/jHw41717d7fjjjva3/y/5ZZb2h7lOF988YU78cQTbX82D39/+eWX0bf/QriEz3t43/bbb+9uvfXWKubVvJO9588//7zbeeedLUxMztmfnQRFlNXvp59+2vXt29ctueSSFfvW2dv+wgsvuEMPPdStvfba9k7+P/744201OUkyfii6gwcPNkWf8Aj3yCOPdKNGjTI/e+21l5s8ebL9Fj+Yxu+99962R504H3vsseY3CALzA+QdeUh8L730UvPHCj777/GHf36HO3Hgu7Q84ju2C7z00ktu5MiRkasQQgghhBC1R4q4ECXihx9+cMccc4y77bbbTFF99tln3UknneT69etnyuann35q/tq0aWN7kYH/b7rpJrfaaqvZZxgxYoQ76KCD3GKLLeYeeOABd/HFF7uXX37Zwogr4yigrVu3tvB5D+/bZ5993EUXXeTOPvvsKvvPCffCCy90RxxxhCnYTZs2tXckYXKAPeHbbbedO/DAA03BRWFeZJFFLL6YcC+77LLu5ptvtndyoBth8388fhx8tt9++1XEb/jw4bYXu3379qYIEx7hduvWzW2wwQbu3nvvNUV66aWXNiX82muvrVD4BwwYYHH+7rvv7P0c7hZXxuHyyy+3CQwmEjCnZ4X7tddeM/9//fWXu+eeeywOm222mTv33HPdFVdcYe+Js84661hc2MOfDF8IIYQQQogaEwqXqfBVnq+FmO/I0iZChS7o2rVrECp/wYsvvhi5zuadd94JGjduHHTp0iUIFUJzCxVXC5v/PX/88UcQKqxBvXr1glCZDGbNmhV9EwSDBg0y/0OGDLHPhEN4W2yxRTB27Fhz8zz33HNBgwYNgjvuuCNyCYJQSbXfE04h/PTTT0HLli0tPsQLJk2aFLRr1y4488wzK9LhGTZsmIX/wAMP2Ge+79SpU5X4zZgxI7jwwguDUMkPxo8fb26hAm7+xo0bZ58hVPAtH3r27Gm/8UydOjUIleygWbNmQah0mxu/4/etW7cOpkyZYm5A/oVKftCiRQuLu4fwLrrooqBt27bBt99+G7nO5s8//ww6duwYtGnTJpg2bVrkKkTdgXbGI4SY/1D7F2LuIa29akVciBIQKnQuVIDd4YcfXmF27gmVRFtZDhV0980330SuuWnSpImZT2Mq7dlkk00snO+//94+s/LMajSr65h0x9lmm23MBBwTa/Z5e1gJ3njjjaNP2VlppZXc/fff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MDe+m5+YPHmy22uvvSwfks/aa6/tDj30UPfUU0+5v//+O/pFzZg1a5Z75pln3Pvvvx+5iPmV7t27W52j7lUH1yeMGjXKHX/88VYfqZcbbbSRO+GEE8y9nNch/fjjj+6+++5zf/75Z+QyOy1bbrml+/jjjyOXwuE3/JYw81GuNgpffvmlGzBgQPRJiPkD2s4jjzzixo8fH7lkw7dl+oO5mVKlw/dhxQ4XuWLw4MFu++23t/7wwAMPdFOnTo2+rUyaDFKXy23ixInulFNOcSussILJqAMHDoy+qbuktaNXX33Vyob/5zSUc6GyRxppMkC5yVLnhSgWRVXE6SAOOuggd95557nll1/eXXnlle7888939erVMzeE2m+//TbyPf/QuHFj161bN9ezZ8+K55BDDjFlZ++997a8qc0kxeuvv+723HPP+W6iQ9ScmTNnultvvdXttNNObsSIEVYfqZf777+/e+WVV8z9nnvuMX+lhoG3a9eu9t45RanbKMLJySef7D777LPIRYj5A5Scyy67zM2YMSNyEXMDo0ePdmeddZZbd9113fDhw92ll15qSmsac5MMMn36dHfddde5J5980vXo0cMNHTrUFo7qOvNyO6oLMgBkqfNCFIuiKeII7P369bNZ0Mcee8xm7i688EJ7mGF68MEH3QcffOB69+5dlNWluYm11lrLnX766SbM++eaa65x7733njX066+/3vXp06csSo8QMG7cOHfjjTe6o446yr3zzjtWH329fO2119xhhx1miil1dE7BwMwKS6NGjSKX0qE2KkTdhPZPP0B/MDczt6Xj66+/dl999ZVNIO6xxx62ur3QQgtF31ZPXU0vSh+LRqSJ8Q8lfMUVV4y+FfMzta3zQtSEoini06ZNc2+99ZaZpmy77baR62ww8dhtt93cAQcc4J599lkz0RTOLbHEEq5z587u6KOPdnfddZcpR0KUAwSkjz76yB1++OFuqaWWilxnU79+fTNXZ+UAs+xymqjXNdRGhRDzI7/++qv9P68pIv/884+ljXQhmwrhmVfrvKjbFH2P+G+//WYCfJLFFlvMNWnSxP3111/mJw57QzAFZX8qHSP7MzCbTe4VYQ8KM1XMWF188cW2hxOzEUxI33333UoKA6vugwYNsv3phMleIPy99NJLVRSLn3/+2fXq1cttvfXW5pd4EB/iFYd9OMyQYT5z4oknVrybWbSaQhhMUKAUoRx52KvywgsvmDm/37/L/yhIY8aMiXzNzpMdd9zR/uZ/4odVAmAmxt588oD3EAZpJG1TpkwxP6J0+D3Y7Ln2dTtXPcxSt4G2QRuhreDv2GOPdd988030beH88ssv0V+VWWedddzmm29ubdVbsPj9aEym3XDDDZYm3t26devUduXb9Q477GC/42H1Id62qat837dvX3uWXHLJij2F/B+vzzAn6jTvSWujhZYv+caKy9NPP+0uueQS8+f3rhfazoUoJr4d+b2QucbcpD8/Nibbmu+/nn/+ebfzzjtbO8CMlrZx5JFHWjvht/E9pIX0D5C21zhrf5nEh3n33Xe7Bx54oCJ99CtY8KGsJSlETuFv4nX55Ze7Rx991PpQ4sZ7xo4dWyUdUKj8AfTxmM4SJg+WOskyq47vvvvOXXTRRZXSET/Dx+85p9wAuQJ/ufYhk540GSRfufGdTwd1BXmKtKEIYYlE3CjPY445psrZAr7fZczjt/nGoCT0u74v9uMN8aE+5yo3rKAIF/N7Jq7j76Tvpg/3+DQTF+qRlz/JY+oZZuVvvPGG/ZYweA8TvGn1zePrVK52BIzRnD/i6zH/8zlpfVqbvPMQn0Jlj9rKAFBoH5SPYtd5T3Xhxkmmg/8L6XPT/JE/yToAPh3JNocbsgvtjHKnbtP+0sqt0H7Z60PIKTWpezz87eWcn376ybYBsujhJ0TisJ2EsL/44ovIZR4izJxU+CrP11UIO5Kga9eu9pswI4M333wzCAsi+jY348aNC5o1axY0atQoCAejIBTyg3AAD+rXrx907NgxCBWByGcQhJ1ksOuuuwZhpQhOO+20YPjw4UG/fv2CbbbZJmjYsGEwcuRI80dcws7cwiAswnz44YeDli1bBvXq1QvCTtj8wcSJE4NQyLb3h5XP/BIPPu+5557BJ598EvkMghEjRgQNGjSw95199tnBk08+GYQddfDXX39FPioTVix7Jw9/5yKsnMEGG2wQXHDBBRb3sGMPbrzxRotrKMgEjz/+uMWL+BEv8iusjPbbcHAP+vTpY/nO/6+88koQKldB2EkFRxxxhOXLVVddZb8nnLBDt3C7dOmSM94inaxtYujQoVYHDzzwwCAclINw0LYyStZXKLRuwx9//GF+KEfaHGVLGVNfKfPq6ht88MEHQePGja0+3XHHHcH3339v9S4f1H/S37RpU4sX8RsyZEiw7777WlzCzjfyGQRffvmlpWWLLbYIbrrpJks7edC2bVsLo3fv3vY+6irxJ494aJvUaSBP+D19BGSp0/yG39577732ORc1baNQaPmGA5v53W677aw944/8ydLOhchF1n7Jj3l+fKSvoR+hHp5//vkVbQh/tNf4OOrHRn7P9x7a6iabbGJ1PBTYbLx97rnngvfeey/o1q2btR3aYqjMWPiF9g/g2zLv8GTpL9PwYYaCncWbdBEGsgvvR37w7RwKlVPom0866SQLe5dddglC5Su45557gtGjR6emI4v8wd/kL2HceeedFfENldVgp512qhRuLuhbCYN8oq+Kp+Ooo44KJk2aZOVDOVFu5AX+KB/6sTRyySCFlht9ue9H27VrF5xyyinmTj5QltQJ+n6gTjDO4J8+m3pGv8nvqL+hop13HKPe+b7YjzfU0VDwz1luhEe4hE9cqKfxd9KHhwq2he/THCp09o7kGHnOOefY+En5EQbh4R4q//b7NKiHudpR2pjs45ZsR7XNO8giexRDBsjSB+WiFHUeCgnX49u5Twf1O1efW4g/2lGazOLlmWSbox1RDpQ1ZU4fTR4S/3gfk6Vfpu5RHw866KAq9Smt7vk25P3y8C7i8fbbb5ufa6+91sJE3opD+2/dunXQqVOnijyYWyFveOIUTREH32j8b6lMdEBUUgp45syZkc/ZkKEIzxS6b3geBnGUXpQEDxWKcBmwfMcHKP34pYECDaBFixbWqHxFgG+//TbYZ599giuuuCKYPn26dXBUcirpiy++GPmazTvvvGOKSly4951eoZWhUCHfd94MBHR0xJ/KfOaZZ1Z5z7BhwywODBQeHy/+9/D3VlttFQwaNChymQ35du655wZNmjQJPv3008hVFAJ5zFMICGbUHdqDFyI87777rnU2PXr0iFwKr9tAh0+H1r9//0r127eZ6uob8Ds/KPt0UV+o23S+8Qkwj69ndN7x9vrzzz+bQEib++6778yNsAmP+MeZNm2aDditWrWqyBcvvPr67yFPaBe0D8hSp32bKpYinmyjWcvXvyc+QGZt50Kk4dtvIXhhh36C/sKD+2233WbutFk+I0gl/QFtn7bA2OmVVd9/Jdsm0Abj7Riy9A++7cXbTpb+Mg0fZnLsJ6wLL7zQxn4mKyGLnOL7Mp+PcZLpyCJ/eL/JOBDf7t27W17E8ycN+qz27dtX6b8pa/obxpS48Ey5EW5crsiFHxvifvOVG+Xj5UHSxgQn7uR9vDxRGMhLBHVgYpIJESYu42OUz4d4ueXC98Xx8SZfuflJ6+TCEOVCvCk/P/Hj00wc4/KVn8glnLiSMWHCBFNGOnfuXO3CVVo78vmeVEq94tKmTRtrU1CMvMsie9RWBsjaB6VRqjqfJVyeQvvcQvwB7ShNZkmTM3ybS9Zf6iFlHs/DLGWWpe6NHz/e8ipZ99DJmJjzOhXvJZ20+zjenUmtuR3yjCdOUU3TV1llFRc2UDuN8sADDzQznMcff9yFFcBMIcICq2TaGSrnZuYaFpiZdsTZZpttzKwHk5m4mULYmZn5wsILLxy5zDaj3WSTTaqYvGO2FlbM6JNzq6++unviiSfMlGSRRRaxE9zDCm/mRt60yhM2cktDOEBWMd/AxB5T+2IRKkNupZVWij45+/v+++83U4zkezjNkbiFDSdySSfscM1Ej1Ps45BvmEPxex08VTrYd/2///3PPfTQQ3aDQBwOBqMck2VYSN2mzKiz1EHOXcAUyOPbTCHwOw5k4zAyTJcaNWpkf2NyHnaMFkfqX9JsCjp06GCnjHswT8Oki7YcCiTmRtjUv+R5Ecsuu6y9i7SHA0zkWhhzsk4n22hNyjdJMdq5EFkIBSMzH+d2BEwPPfQHmJTTNkPB0kwcOR8i6Q823HBDt88++9gWrR9++CFydW6zzTZzG2+8cfQpP8XoH7LIArlIjv2ExTYR3j98+HBzq4mcQhyISz6yyB/kM/lNvpP/HuJLGZEX1REqcA6T7GT/Tdnzft7HFWTUkVJCXHfffXe34IKzxU/245JfECoRlcqTeH7//fe2pREwh+Vka0zW42eb+Hyg3EIFIXLNTlq5UQ8IN1QSK72TPpt6vOiii1q+xaEtxcNB9qRPZwxbf/31I1fnlltuOfscKp+1GrtoB8jfHsakUKEy+debSdc277LKHrVt4zXpg5KUqs5nCbfQPrdQfzWBNpesv9R14kmZ+tusalJmybpHnUYeoz/EP3B+GHFP1r3VVlvN+gLaOHWVd9BGqKu+Pw31VKuXxJd6Ni9S9D3idE7sR+DUdBrI22+/7a6++mq33XbbmVLOXpdPP/3U/JLxo0aNssJiIGPQ8Q8Fh7vfN+RBeKVSxKFDpzPnvj/2pyM0c5VGv3793HrrrWd7YJggICwK1UPhsz+BwTV5OIMfHDhROtnQGzRoEP1VHKZMmZK6H4wKjzuVEoH93HPPde3atbM8KxTygz0VNLY+ffq49u3b20SEKA/UN+olCiptgv2MBx98sHXiSQqp2wiYtB8Gbzq8OPXq1StIIIuD0kic6CQnTJjghgwZYifJAnuIbrrppioCwqabbhr99S+Eg/D44YcfRi6zQZFnbzWD0rXXXmt7OHv37h19WzPmRJ3O1UazlG8uitHOhSiESZMmmdCFYsBBhHEQgl544QVrTwjBjI/UzTfffLPS2IzwS7umv4hPdPs9p1moTf9QSH9ZHYzxybHfK01cNYgCWBM5BRlh8cUXjz6lk0X+wC97adP8+vhWB+khnLji4PFjB3WDOlJK2AOctpDBRM7KK68cfZpNMq3sF1911VVtciReDjzkD3nOAkxNldpkuVH+5FvDhg1T5T6f97wzPmlN20rGHZLtDiUrzV9WcsmktANfL2ubdzWVPWraxmvSByUpVZ3PEm6hfW6h/moCdZRw4/g+hj6ItMTJUmbJuufrNPXOT4h+8sknFofk7QT4RXZjQYP40Z8zocM5Csh4wAQFijiTE8n+YV6h6Ip4HCoTs2cIlgxg3NlIg0IhBzoEuOyyy2wVLv5QGAMGDKjUkQCVfOmll44+VcbPKlIJOOmY2TRmWxDYOQAAZYHZJr8qj1/CztoRMpAUEw41IO50kn4QII5YEFDxmGHjaiXyCyG/EGUL4YD8Y2aKBkB+stpJRWdiQpQehDM6TiaGmGFkNhDBiokqJqaSFFK3KVdfZ+nEigUCLLOTtA/uD6e9EkcOrmFw8CAsIXDngvgBHTkrvWussYatkjExxkE5DCitWrUyP1mZk3U6rY1mLd80atvOhSgFXvm8/fbbq4zNPAhlCOXxsRnlKk3BSqMY/UMh/WV1rLnmmtFfVeH3TLTVRE5BRoiv7KaRRf5AIURYziqrxPF9c23CKAb0oWnXhTEG5RvTvOJFvcMCK1kWKAsoFUyaFjIJk0ay3Ch/yok8I36FwviURrHHbU++MRmKkXdZZY/atvGa9EFJSlXn60pbKhT6uaRy7yH/fF9ZkzLLVfewxPCWLFlADqINcjgisEjEIgXWMnNLfmelaIo4KzmsPiOIpsEAjaDavHlzm32jwP0gyCocHV7ag6BKJcgKBUnBsUrFAMaMyhlnnGF3JJ9zzjkVgxqDeSEDdimhA6RDQfCmg2PgP+2002yVjEkEGgqzg8wa7bffftGv8oMJPqYomHkQNooE5jScspo0rxPFB8GsS5cuptA+/PDDNsBxOi7bNpgUytUpVgf12tdZ2kdNoF6huLLinWvQZdW7Q4cO1l7iijh1lbqYhLgwc41gzN+33XabhX/KKaeYwso2FUyeuJObTr4mzMk6nWyjxSjfYrRzIUoBwhWTbr169aoYi9Me2mJW+F0p+oeawLuT0I/Rv6KUISOUSk7JIn8w+cfKU21kFa9gzml5p6aQByjxTZs2tb4zrRx4ON25puNrEvp6yok8o17MrRQj77LIHnxf2zZejD6oVHW+rrYlZCKeJOQ/OlcS4u+tQMjLutAvs42ZhQyUb271wRKAMi5029PcSNEUcfYIIFAimFKgaVBBqAx+VQnzFgRb9q0kf4NQiiJwwgknmICbBSYDMGMYOnSofWZPAgXJTA8r5cSTAqYC0tAZRJMKCRUUM1tW9OP7H4oNAj0DPBWPThLIDyohe+vZixOf9cdMDYUgH6SFcqBCM+mAKRH7mIB0YX4kSgtmYEz+sGLK6iZ7tvwsMjO9zE7XBOoCbYZZQupxHNpWIeEiYNL2ULJz+ac9MqOZtgLuV4ji0GmjrKLA07ZIO6tFTH7RgfuBi5WquGJfKHOyTqe10WKUb23buRBZoS0z7lE/k4IZ/QkTQFdeeaX1Efj1k+ZxaG+YE3JWQ1pfUB2l6B9qCuaPSdmDSXr6ExRr+phSySlZ5A/8Ep80v/Q3EydOjD7lhj6TcNIWS0gH/Q1lUVfNP+lfiT/jTFodoXyQ+7j6qVggp5JvlEXaNbW0I8YCTNeLpfyXgmLkXRbZoxhtnG0ute2DSlXns4RbaJ9Legvxh3IMaUp3LtmD/oHv4pCHLGTQr/DeUvbLWIjQTpJxgHvuuccsHD744AP7jL5GWjFPZxKAZ6eddqpyFs+8RNEUce7AxCQTU9Fhw4ZVmT1EqOdORjozf9ADjZq/Bw4cWFEIwGDH3gTuAWcPRtZ9Z5jY0mlgAu8PqgAqHo2EgqaDpaJhuj548OAKMwgPJjGY5aLA5zNfqw3EjdU8VtTYE4qSAb5D5/v4wE9jvPPOO+3vtMNoSB8wg0v6MAtJNmj2tJEuGlbazJkoDhwGSB0k/325AJ9pB3TUye8KgbKlnSFAci+pN5ECypbtGNVB/eeQDgbUq666qsqgSp3jbAdWZlE8ETLiUF/j5yawh6d///5m1s4+cUz4qMPJgYJwOfSI+pc2iJAXSUHXM6fqdK42WtPyjaexpu1ciJqCULjHHntYP0G7icNhjUx2MeayXw+zRCazmSyK10/6BswVGRcR4AoBecCHUdP+oRQgIyCMengn/SoTEVjvQanklCzyB8o45ZH0S/+PP/xXB1ZDWAk++OCDtv/TQzoQwAmHdCb3/2Yh63iWFcoEoZ7zf5DlPPS1uDGBwuRFMSHfyRP65Lg86esKfTTlWA7i7Sgrtc27LLJHMWQAX+dr0weVqs5nCbfQPpcFykL8IXug4DNBEVeOKQ8s8pA9kvj+JF5m3o08Jq9L2S8jR7KijeV0vA2h/GMNiJId38POQYNs+aPP5a72crWvOUXRFHEyktOXGVz23Xdf95///Mf2hnNQ26mnnmoNHBOTCy+8sGJViUJn5gUBu23btrZiTaEQDjPMVOQjjjjClPYsUKE7dOhgnQXhYNLKgMlqODN+7IdhvzgdC3HjUnpMXokr7ycenGRKRWC1qtB9b7lg8uHGG2+08P3j84R9Z+TB8ccfX5FOlBmUGvyxD4bDKYg3ezSYDef7+OESmAshLKAA0FhRSOgwGSAwM6Eyk35mEDkRlv2sNNZ4Z0xHx/vJe1F7vPBGuV1++eVWr1BWMQlHmGMGsKZ72Wg/1BlmR6nTlC11ljrFoFoI1KWuXbtaG2FQoU1whgPlz2mkdHzsvcb82iuMHgYJtplQr3g4afPll1+2usYAQX1kkOJAFdxofzy0Jd5J+PE9law60dZIBwpvfGDzeCEgS53OQtY2mrV8SSN5wyDLgIbQk7WdC1FbqL+MqX7M82MudZiJJg5qpO3S3o499lhrV7Qv+gU/NtL2GWM5eLWQsZF6z0ocKx+sctAWsvQPpYR2T3oYO4lDh1Bu4IBKZBd/Onmp5JQs8ocvj3i5eZmGiUL63OpgApZ0AWmmr/HpYN8w/WtN0gFJGaRUZUeZkAYUIMqCcYByO+644yxPKCcWhYoJCgSHcNK/Uz/Y7hivK5RBsd+ZRrIdZVWIipF3hcoexZABitEHlarOZwm30D63UH/ApAr14cQTT3R33XWX5S3nyyBfIHskoTzoJ+JlRh9DnSCPyeusZZYFFjA6depkbcjrZNQ/5E76C+pUfMUbpZy6dvPNN9vkA9uePUxAkEeUfaHybp0nyAFf5fk6J6GgbBe3c3942LAsjEaNGtk9ce+//77diZckFDaDq666yvx5/3yePHly5GM2YYXMe3deWHkr7iCcOXNmEFa4IGwQdqcfz4EHHhg8//zzVe4z5z28j/vzeD//85l4xRmRcldmPny8+E3yIY3t27e3+0OT8YFQQLA798jDeNynTZsWhA3Sfktew4wZM+zePe6zxO/rr79u+Rw24iBUqOx9fBc2QrtLclR0p2X8jnafNvJYpOPLrlCoV6GiaHnP7yiLsPMJfv/9d7t/tEXs3u0sdRsoc+7s3WmnnSzs7bbbzu6ADAWG1HDSoI6MHTs2CDvdirpP/aHNUDd8/fL4OkK7Cjt1q8PUz1AgCUaPHh35mg3xIz7Ei9/4Nk2bGj58uL3n2WefjXwHwSeffGJ3T+I37PiDsIO1PAmV0Yp7U7PUaX7Dbwu9R5zwkk91bTRL+QLt0peXv2M8SzsXIg1fX7NAnerdu3dFu6edhsJkpT4G8NenT5+KduzbHPU2Tq7+CwijW7duVsebRHf9Z+kffFuOj01Z+8skPsx+/fpVxMO3P9p7TeUU3sm7096flg4oVP4A/IZKkJUD8Q0VKuuPSXMy3FxQdvT5Ph277LKLlXGyn8lyj3iaDJKl3NLuyIY0mYuyQZZk3PEyJn0v4yHxqI60OpKv3IB3Ui/Ib97Jw99JedKnOTnu+Hcmy6i698ZJa0dp+ePhXck8rW3eAf4KkT2ytHFIkwGg0D4oH6Wo81BouIBboX1uIf6QuY4++mjLR/IEWeSbb76xupTW5t57770KWcOXRbzvgixlVpO698477wTt2rWraENpsqOH9xF+si35NlZIm6mLkCaeOAvwT+hYBT9DlONrMQ+CCdDnn39us2aiKvN7m8BqghMtw4437wEpQojyobE6O6yqsMrGeROsQgkhxLwIq/TIbpjyYyY/t4A+gpXmgAEDqtztPzeTNl4XzTRdzN1gbsLdx1wNJYQQQgghhBDlhH3knN/B/nW2Ec/rSBEXBhfus+dm++23j1yEEEIIIYQQorRwCB9nZXTo0MENHz7cztBh//q8jhRxYXAoFQcycAiFEEIIIYQQQpQDzLU5+G7cuHF2gC16yfyA9ogLUSBqE0KIuob6JSGEEKLuoz3iQgghhBBCCCHEHEaKuBBCCCGEEEIIUUakiAshhBBCCCGEEGVEirgQQgghhBBCCFFGpIgLIYQQQgghhBBlRIq4EEIIIYQQQghRRqSICyGEEEIIIYQQZaToivjvv/9uF7I3b97c7ktbZpllXIsWLcyN78rFrFmz3DPPPOPef//9yMW5P//805188slur732cpMnT45cC+fVV1+1NPF/Pj7++GO35ZZbmt/ks9FGG7kTTjjBvf766xbH2vD333+7Rx55xI0fPz5ymXvp3r17jctFCCFEYdx33302FvF/LuiH6Y8ZLxk3y02+8XtOxUnMW/z444/WBopdl3799Vd36aWXurXXXtva2TXXXBN9U3vS2oWXN/O153KBHEdciJMojDQ5vlBdoxTMnDnTXXLJJfZ+/udzGr4/ntvKuza6RqnaWlEVcSrSQQcd5M477zy3/PLLuyuvvNKdf/75rl69euZ26KGHum+//TbyXVpQdPfcc8+yKv9JmjVrZoXes2fPime33XazjrRly5bu2muvdf/880/kOzsDBw50l112mZsxY0bkIoQQQszd1IXxW8y7oER07drVvfLKK5FL8bj77rtdr169bMHlhRdeMLm3WKhdzHvUNTn+hx9+sHax1VZbueHDh7uvv/46+kaUiqIp4sya9OvXz2YMHnvsMZvhufDCC+0ZPHiwe/DBB90HH3zgevfubTNAc4IllljC3Xrrre6pp55yK6ywQuRaOjbddFPXpUsXm4TwT58+fdy7777rDjvsMFPSaYRCCCGEEGLuZfr06bYgtd1227kTTzzRLEMbNmwYfTvvw+QGq/WNGjWKXMTcxhtvvOEmTJhgq90o4e+99170jSgVRVPEp02b5t566y1b8t92220j19lg4sBK8AEHHOCeffZZ9+WXX0bfzJ/Ur1/fdevWzf3nP/9x//d//+e+//776BshhBBCCDG3wYLUH3/84RZaaCG34II6gknMXbBI+tJLL9ki4h577GFWvSysygKjtBS9p/jtt99sVjDJYost5po0aeL++usv8wPxPV+vvfaaO+SQQ2xPOfuoMeOeMmWK+fMEQeBGjRplJj/4QcFnZZvfUXn4Hlhp3nHHHe1v/vd7GPz74vsDCg2z2Ky22mpu3333dW+++WalvSHsAfLmTH6PEf8ff/zxbsyYMebHp+PII4+0uBPveJrY+0T+7bDDDvZ7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qOBza/yFEEIIIcS8w9133+169erlTjjhBPfCCy+4Qw89NPqmZqDEde3a1b3yyiuRS3EYOHCgu+yyy9yMGTMil+LwzTffuAsvvNAttNBCbsiQIe66665za6yxRvRt9ZQqvfMbpSrfeZ2iK+JrrbWWO/300915551X8dBABg8e7Pr06WOzh0OHDq10mXk5WWKJJdytt97qnnrqKbfCCitErjWn2OEJIYQQYu6hUaNG7v333zdhXsxfNGvWzOTZI444InIpL9OnT7cVyO22286deOKJrnnz5q5hw4bRt/MHrGZ/8sknVgb777+/23777d1iiy0WfTt/Q59E30QfJeomZdsjjrnIbrvtZp3E66+/7n755ZfoGyGEEEIIIUQWZs6c6f744w9bDV5wwfnz2Ke//vrLff/995YHQsxtlLXVMkPFw36Wf/75p2I/w+WXX+4effRRt/nmm9seF8xs6FyYZRw1apQ79thjbbV5mWWWMdP2l156qcqKOuGx6u73iBx00EE2C5TEvzO5d2bWrFlm0kP4vId4nHXWWWbyAqzkr7jiiu7pp592l1xyScWeoFzhEZ8nn3zS7b333hYe8ScdpCced8Jl/8aYMWNs7zkzeYTN/3xmz4UQQghRDPy4ihnrRhttZOMN49MhhxySOrb+/vvv7pZbbqk0NmEFxtgXpxB/ufat8hn3+B5rPzZiLspKH+Mocfz666+LngbGctyfeeYZ+xznq6++slVPTH+T4XrS9ojzN7IBv7/44otNpvBpePfdd3OG5fGyRS75KCmzeBkDWSKJzy8vS+Xyiz8WSg4//HDzQ7iEz3t4n8enl7yOy13k6wMPPGCmqW+88UZF3Ij7XXfdZXKRx5cvchpl4cuGsJ5//nlL42OPPVYR9s477+yeeOKJasuW+sCWyClTpkQ+ZpO1PMh/Hy/8kV9eHoxDOniv3yPuy433caYQddfnOX/jluTTTz+tKBviRfw++uijKm0iCe9ecsklXd++fU02RUZNa18en1fkKWki3ltvvXWl/KJs2WNNmDyE7+OQrEf8nsW1tP4gjs+TI4880n5PGcXjWai8nMSHu+OOO9pnwvdl4euoL5c4uPEdfvKl15ct/yfBTzwNvj6n9VdQaD3NByv//Mb3eZQj7S/erpIQT59WT7IciWuablVoXc5XvjWtM/MTZVXEJ0yYYJVy4403dvXq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Qoi6T9p4rak2IYQQQgghhBCijEgRF0IIIYQQQgghyogUcSGEEEIIIYQQooxIERdCCCGEEEIIIcqIFHEhhBBCCCGEEKKMSBEXQgghhBBCCCHKiBRxIYQQQgghhBCijJREEf/777/dU0895Q455BC3wgor2L1pW2+9tevSpYv76KOPUu877d69u9trr73c5MmTI5fcvPrqqxYm/5cS0vHII4+48ePHRy7/vvu+++6LXIQQQgghhBBCiMIpuiL+1VdfuXbt2pkSvvDCC7s77rjDvfDCC+6EE05wI0eOdNttt5276aabTMmt6wwcONBddtllbsaMGZGLEEIIIYQQQghRO4qqiP/www/ujDPOsBXkJ5980laNW7du7Zo3b+5OOeUU98wzz7gLLrjAderUyd1www1u5syZ0S+z0axZM1tV5/9y4999xBFHRC5CCCGEEEIIIUThFE0RRzlF8X7rrbdcr169TGHFhDvOYostZkp4x44d3c033+zee++96BshhBBCCCGEEGL+oGiK+MSJE20VvEWLFm6bbbaJXKuy1FJLuWOOOcZNnz7d9pEn94t/88037swzz7S95WuvvbY766yzzC1O2h5xwhk1apQ79thj7bfLLLOMrca/9NJLVd4BP/74o+vZs6fbaKONLCziPXjwYPfPP/+4P//805188snuyCOPtDDx4/evx/eIs6J/4YUX2qQDJvlJnnvuOYvH0KFDI5eq791+++3drbfeau+M8/vvv7tbbrnFvscfeXH88ce7MWPGRD6EEEIIIYQQQsyNFE0RRxF988033VZbbeXq1asXuaazzjrruE022cSU3F9++SVydW7cuHGuffv2burUqe6BBx4wM/Zhw4a5tm3buk8//TTyVRUU7QcffNDttttu7rvvvnN9+/Z1AwYMcEsssYTbb7/97O+4Ms6Bcbj369fPnXTSSW748OFuww03tHejFC+yyCKmiHfr1s1tsMEG7t5773WXXnqpW3rppaMQZrPQQgu53Xff3ZRj0hIHJR1FvEmTJu4///mPuX388cc2OeDf++yzz7p99tnHXXTRRe7ss8825RtQys8//3x3/fXXu0MPPdT22LNXffTo0faZ/4UQQgghhBBCzJ0UTRH//PPP3a+//upWXnnlyCU3KLTrrbee++KLL2yF2IMy36ZNG/d///d/bo899jBl9aGHHjJlvX//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"}}},{"cell_type":"markdown","source":"<a id=\"Data_cleaning\"></a>\n# 2 Data Cleaning\n\nBefore inputting the data into the machine learning model, we first have to clean the data to obtain a better model in terms of accuracy. This process of data cleaning is already done for us by Mario Frei.\n<a id=\"Read_data\"></a>\n## 2.1 Read Data","metadata":{}},{"cell_type":"code","source":"df_train = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/5_xesh_split_ipm_train.csv', index_col=[0], keep_default_na=False, na_values=[''], parse_dates=['time', 'ws_timestamp_location', 'ws_timestamp_start'], date_format='%Y-%m-%d %H:%M:%S.%f%z')\ndf_solution = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/5_xesh_split_ipm_test_public.csv', index_col=[0], keep_default_na=False, na_values=[''], parse_dates=['time', 'ws_timestamp_location', 'ws_timestamp_start'], date_format='%Y-%m-%d %H:%M:%S.%f%z')\ndf_rain = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_rainfall_processed.csv', parse_dates=True, index_col=[0])\ndf_temperature = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_air-temperature_processed.csv', parse_dates=True, index_col=[0])\ndf_humidity = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_relative-humidity_processed.csv', parse_dates=True, index_col=[0])\ndf_wind_speed = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_wind-speed_processed.csv', parse_dates=True, index_col=[0])\ndf_wind_direction = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_wind-direction_processed.csv', parse_dates=True, index_col=[0])\ndf_stations = pd.read_csv('/kaggle/input/IPM3211-City-Heat-Noise/3_weather_stations.csv')","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:31:06.139809Z","iopub.execute_input":"2023-11-24T08:31:06.140234Z","iopub.status.idle":"2023-11-24T08:32:45.983832Z","shell.execute_reply.started":"2023-11-24T08:31:06.140199Z","shell.execute_reply":"2023-11-24T08:32:45.982395Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Combine training data (`df_train`) and data needed to predict the solution (`df_solution`) for more convenient data processing.","metadata":{}},{"cell_type":"code","source":"df_train['source']='train'\ndf_solution['source']='solution'\ndf_all = pd.concat([df_train, df_solution])","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:32:45.985215Z","iopub.execute_input":"2023-11-24T08:32:45.985605Z","iopub.status.idle":"2023-11-24T08:32:46.343936Z","shell.execute_reply.started":"2023-11-24T08:32:45.985573Z","shell.execute_reply":"2023-11-24T08:32:46.342632Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Interpolate_health_data\"></a>\n## 2.2 Interpolate health data\n\nHealth data, e.g., `ts_heart_reate`, and the watch survey responses, e.g., `q_thermal_preference`, do not have the timestamps. Hence, the health data needs to be interpolated at the timestamps of the watch survey responses.\n\nThe interpolated values are stored in columns with the prefix `ws_` which stands for 'watch survey', e.g., the interpolated values of `ts_heart_rate` are stored in `ws_heart_rate`.\n","metadata":{}},{"cell_type":"code","source":"# Inspect dataset with raw values\ndf_all[(df_all.id_participant=='xesh001') & ((df_all.ws_survey_count.notna()) | (df_all.ts_heart_rate))][['id_participant', 'ws_survey_count', 'ts_heart_rate']].head(10)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:32:46.346831Z","iopub.execute_input":"2023-11-24T08:32:46.347260Z","iopub.status.idle":"2023-11-24T08:32:46.576113Z","shell.execute_reply.started":"2023-11-24T08:32:46.347225Z","shell.execute_reply":"2023-11-24T08:32:46.574033Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Function to resample health data at the timestamps of watch survey responses.\ndef resample_health(df, col_name, col_name_new):\n    df[col_name_new] = df[col_name].interpolate(method='nearest').bfill().ffill().mask(df['ws_survey_count'].isna())\n    return df","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:32:46.578334Z","iopub.execute_input":"2023-11-24T08:32:46.578763Z","iopub.status.idle":"2023-11-24T08:32:46.587157Z","shell.execute_reply.started":"2023-11-24T08:32:46.578725Z","shell.execute_reply":"2023-11-24T08:32:46.585489Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Resample health data\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_heart_rate', col_name_new='ws_heart_rate').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_audio_exposure_environment', col_name_new='ws_audio_exposure_environment').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_oxygen_saturation', col_name_new='ws_oxygen_saturation').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_resting_heart_rate', col_name_new='ws_resting_heart_rate').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_stand_time', col_name_new='ws_stand_time').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_step_count', col_name_new='ws_step_count').reset_index(level=[0], drop=True)\ndf_all = df_all.groupby('id_participant').apply(resample_health, col_name='ts_walking_distance', col_name_new='ws_walking_distance').reset_index(level=[0], drop=True)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:32:46.588901Z","iopub.execute_input":"2023-11-24T08:32:46.589300Z","iopub.status.idle":"2023-11-24T08:33:00.207270Z","shell.execute_reply.started":"2023-11-24T08:32:46.589255Z","shell.execute_reply":"2023-11-24T08:33:00.205871Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Inspect dataset with resampled health values\ndf_all[df_all.id_participant.notna() & (df_all.ws_survey_count.notna() | df_all.ts_heart_rate.notna())][['id_participant', 'ws_survey_count', 'ws_heart_rate', 'ts_heart_rate']].head(10)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:33:00.209269Z","iopub.execute_input":"2023-11-24T08:33:00.209760Z","iopub.status.idle":"2023-11-24T08:33:00.457803Z","shell.execute_reply.started":"2023-11-24T08:33:00.209723Z","shell.execute_reply":"2023-11-24T08:33:00.455911Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Interpolate_weather_data\"></a>\n## 2.3 Interpolate weather data\n\nThe weather data is distributed over several dataframes. Each measurement, e.g., rain or air temperature, is in a separate dataframe. The column names are the IDs of the weather stations.\nThere is one dataframe (`df_stations`), which contains meta information to the weather stations, e.g., coordinates and names. \n\nTo make the weather data usable, we need to find the nearest weather stations for each watch survey response in `df_all`. Then we can transfer the measurement values with the same timestamp to from the weather data dataframe, e.g., `df_rain`, to the dataframe with the Cozie data (`df_all`).","metadata":{}},{"cell_type":"code","source":"# Function to get weather data for a given timestamp and location from the nearest weather station\ndef get_weather_data(df_weather_data, lat, lon, timestamp):    \n    # Get timestamp with no seconds or microseconds\n    timestamp = timestamp.replace(second=0, microsecond=0)\n    \n    # Get weather data for timestamp above\n    weather_data_row = df_weather_data[df_weather_data.index == timestamp]\n\n    # If no weather data is available for timestamp above, get weather data for next minute\n    if (weather_data_row.empty):\n        timestamp = timestamp + pd.Timedelta(minutes=1)\n        weather_data_row = df_weather_data[df_weather_data.index == timestamp]\n        # If there is still no weather data available, return NaN\n        if (weather_data_row.empty):\n            return np.NaN\n\n    # Get weather station ids from weather stations with with data\n    station_ids_with_data = weather_data_row.columns[weather_data_row.count() > 0].tolist()\n\n    # Get weather stations with data\n    df_stations2 = df_stations[df_stations.id.isin(station_ids_with_data)]\n\n    # Compute distance to each weather station\n    df_stations2['distance'] = df_stations2.apply(lambda x: distance(x['latitude'], x['longitude'], lat, lon), axis=1)\n\n    # Get nearest weather station\n    station_id_nearest = df_stations2[df_stations2.distance==df_stations2.distance.min()].id.values[0]\n\n    # Retrun NaN for cases where the nearest weather station is more than 10km away\n    if df_stations2.distance.min()>10:\n        return np.NaN\n\n    # Return weather data from nearest weather station\n    return weather_data_row[station_id_nearest].values[0]\n\n# Function to compute distnace on spherical earth\ndef distance(lat1, lon1, lat2, lon2):\n    r = 6371 # km\n    p = pi / 180\n\n    a = 0.5 - cos((lat2-lat1)*p)/2 + cos(lat1*p) * cos(lat2*p) * (1-cos((lon2-lon1)*p))/2\n    return 2 * r * asin(sqrt(a))","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:33:00.459397Z","iopub.execute_input":"2023-11-24T08:33:00.459995Z","iopub.status.idle":"2023-11-24T08:33:00.473979Z","shell.execute_reply.started":"2023-11-24T08:33:00.459958Z","shell.execute_reply":"2023-11-24T08:33:00.472239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Apply above function to the dataset for all weather data\ndf_all['ws_rainfall'] = df_all[df_all.ws_survey_count.notna()].apply(lambda row: get_weather_data(df_rain, row['ws_latitude'], row['ws_longitude'], row.name), axis=1)\ndf_all['ws_air_temperature'] = df_all[df_all.ws_survey_count.notna()].apply(lambda row: get_weather_data(df_temperature, row['ws_latitude'], row['ws_longitude'], row.name), axis=1)\ndf_all['ws_relative_humidity'] = df_all[df_all.ws_survey_count.notna()].apply(lambda row: get_weather_data(df_humidity, row['ws_latitude'], row['ws_longitude'], row.name), axis=1)\ndf_all['ws_wind_speed'] = df_all[df_all.ws_survey_count.notna()].apply(lambda row: get_weather_data(df_wind_speed, row['ws_latitude'], row['ws_longitude'], row.name), axis=1)\ndf_all['ws_wind_direction'] = df_all[df_all.ws_survey_count.notna()].apply(lambda row: get_weather_data(df_wind_direction, row['ws_latitude'], row['ws_longitude'], row.name), axis=1)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:33:00.476022Z","iopub.execute_input":"2023-11-24T08:33:00.479298Z","iopub.status.idle":"2023-11-24T08:34:01.741469Z","shell.execute_reply.started":"2023-11-24T08:33:00.479233Z","shell.execute_reply":"2023-11-24T08:34:01.740244Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Inspect dataframe that now includes weather data\n# Inspect dataset with resampled health values\ndf_all[df_all.id_participant.notna() & df_all.ws_survey_count.notna()][['id_participant', 'ws_survey_count', 'ws_air_temperature', 'ws_heart_rate']].head()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:01.746233Z","iopub.execute_input":"2023-11-24T08:34:01.746831Z","iopub.status.idle":"2023-11-24T08:34:01.838221Z","shell.execute_reply.started":"2023-11-24T08:34:01.746782Z","shell.execute_reply":"2023-11-24T08:34:01.836426Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Remove_rows_and_columns\"></a>\n## 2.3 Remove rows and columns that we are not going to use\nWe are now at a point where we have completed the (basic) feature engineering and start preparing the data for the machine learning. For that, we are going to remove some of the rows and columns that we no longer need as it reduces the amount of data that we need to handle. More importantly it makes the dataframes easier to read for humans.\n","metadata":{}},{"cell_type":"code","source":"# Remove all rows that are not a watch survey response\ndf_all = df_all[df_all.ws_survey_count.notna()]\n\n# Remove some timestamp columns\ndf_all = df_all.drop(columns=['ws_timestamp_location', 'ws_timestamp_start'])\n\n# Remove columns of the original health data those are no longer needed since we are going to use the interpolated values\ndf_all = df_all.drop(columns=['ts_heart_rate',\n                              'ts_audio_exposure_environment',\n                              'ts_oxygen_saturation',\n                              'ts_resting_heart_rate',\n                              'ts_stand_time', \n                              'ts_step_count',\n                              'ts_walking_distance'])\n\n# Inspect dataframe\ndf_all.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:01.839578Z","iopub.execute_input":"2023-11-24T08:34:01.839930Z","iopub.status.idle":"2023-11-24T08:34:01.978087Z","shell.execute_reply.started":"2023-11-24T08:34:01.839901Z","shell.execute_reply":"2023-11-24T08:34:01.976303Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Data_Visualization\"></a>\n# 3 Data Visualization\nAfter the cleaning of data, we proceeded to create some visualization graphs for us to do some simple analysis\n\n<a id=\"Data_Visualization1\"></a>\n## 3.1 Visualization 1\nThis line graph shows all individual weather stations' temperatures across a period of 3 months, from mid- October 2022 to mid-January 2023. The temperature was recorded every minute, however, for data visualization purposes, this was condensed into a per-hour sampling rate. The maximum temperature recorded across all weather stations fluctuates between 32 - 34 degrees, and the minimum temperature fluctuates between 24 - 26 degrees. \nThis data thus provides a diverse range of data points that can potentially enhance the machine learning model’s understanding of how temperatures evolve in different locations. \n\nThis can be further improved if there is “other data”  from the aforementioned, such as environment data. By incorporating this “other data”, it will allow the machine learning model to learn the nuances of temperature changes in different environments, helping it make more nuanced and accurate predictions. Therefore, the lack of other datas is a limitation that we have acknowledged and will be further elaborated in the limitations section.\n\n","metadata":{}},{"cell_type":"code","source":"#visualisation 1 - time-based temperature change per weather station\n\n#Credits: Mario Frei\n#for coding the data resampling and visualisations\n\n#removing data after 21 Jan 2023\ndf_rain = df_rain[df_rain.index<'2023-01-22']\ndf_temperature = df_temperature[df_temperature.index<'2023-01-22']\ndf_humidity = df_humidity[df_humidity.index<'2023-01-22']\ndf_wind_speed = df_wind_speed[df_wind_speed.index<'2023-01-22']\ndf_wind_direction = df_wind_direction[df_wind_direction.index<'2023-01-22']\n\n#removing S117 weather station data due to missing fills\ndf_temperature = df_temperature.drop(columns=['S117'])\n\n#resample weather data\ndf_temperature_average = df_temperature.resample('60min').mean()\ndf_rain_sum = df_rain.resample('60min').sum() # note: for rain the data is aggregated with a sum instead of the mean\ndf_humidity_average = df_humidity.resample('60min').mean()\ndf_wind_speed_average = df_wind_speed.resample('60min').mean()\ndf_wind_direction_average = df_wind_direction.resample('60min').mean()\n\n#ensure df_stations has data and the 'id' column matches station codes in df_temperature_average\nif not df_stations.empty and 'id' in df_stations.columns and 'name' in df_stations.columns:\n    cols_num = 1\n    rows_num = len(df_temperature_average.columns)\n    fig, axs = plt.subplots(rows_num, cols_num, figsize=(20, 3 * rows_num))\n    plt.subplots_adjust(hspace=0.5)\n\n    for i, col in enumerate(df_temperature_average.columns):\n        axs[i].plot(df_temperature_average.index, df_temperature_average[col])\n        # Match station code from df_temperature_average to 'id' column in df_stations and retrieve station name\n        station_name = df_stations[df_stations['id'] == col]['name'].iloc[0]\n        axs[i].set_title(f'Weather Station {col}: {station_name}')\n        axs[i].set_ylabel('Air Temperature [°C]')\n        axs[i].set_xlabel('Timestamp')\n\n    plt.tight_layout()\n    plt.show()\nelse:\n    print(\"Data for station names not available or doesn't match the station codes.\")","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:01.979668Z","iopub.execute_input":"2023-11-24T08:34:01.980092Z","iopub.status.idle":"2023-11-24T08:34:09.693824Z","shell.execute_reply.started":"2023-11-24T08:34:01.980059Z","shell.execute_reply":"2023-11-24T08:34:09.692365Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Data_Visualization2\"></a>\n## 3.2 Visualization 2\nThe bar graph illustrates the noise volume distribution within the entire dataset. It shows that the majority of nearby noises fall within a bearable range, with only a minority categorized as \"a lot\" of noise. By incorporating this noise volume data, the model gains insights into the varied distribution of noise levels. This enables the model to better account for noise as a factor affecting comfort levels, leading to improved recommendations by considering noise levels as a crucial factor influencing the suitability of a location.","metadata":{}},{"cell_type":"code","source":"#visualisation 2 - Volume of noise nearby\n\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n#this cleaning will be based on the q_noise_kind column, a new dataset will be created to preserve the original one\n#Drop rows with missing values in the 'q_noise_kind' column\ncleaned_df_train = df_train.dropna(subset=['q_noise_nearby']).copy()\n\n# Calculate the frequency of each unique text value in the 'q_noise_nearby' column\nvalue_counts = cleaned_df_train['q_noise_nearby'].value_counts()\n\n# Creating a bar graph\nplt.figure(figsize=(8, 6))  # Adjust figure size if needed\nvalue_counts.plot(kind='bar')\n\n# Labeling the axes and giving the graph a title\nplt.xlabel('Noise Volume')\nplt.ylabel('Frequency')\nplt.title('Volume of Noise Nearby')\n\n# Show the bar graph\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:09.695577Z","iopub.execute_input":"2023-11-24T08:34:09.696973Z","iopub.status.idle":"2023-11-24T08:34:10.024710Z","shell.execute_reply.started":"2023-11-24T08:34:09.696893Z","shell.execute_reply":"2023-11-24T08:34:10.023362Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Data_Visualization3\"></a>\n## 3.3 Visualization 3\nThe heatmap displays temperature fluctuations collected from various weather stations, using color intensity to represent higher temperatures, with darker shades indicating hotter regions. It notably highlights a consistent trend where southern regions consistently register higher temperatures compared to other areas.\n\nThis graph is instrumental for the machine learning model as it showcases distinct temperature variations across different locations in Singapore. Understanding these nuances is pivotal for the model's ability to accurately predict temperatures at specific locations. Consequently, this information aids in recommending flats that align with desired thermal comfort levels for clients.\n","metadata":{}},{"cell_type":"code","source":"#visualisation 3 - heatmap for average temperature according to location of weather stations (change it into normal dot map)\n#Credits - Mario Frei\n\nimport pandas as pd\nimport matplotlib.pyplot as plt\n#creating a new dataset where the weather station codes are melted \nmelted_temp = pd.melt(df_temperature, id_vars=None, var_name='id', value_name='temperature')\n\n#calculating the average temperature of each weather station in another dataset\nmelted_temp_mean = melted_temp.groupby('id', as_index=False)['temperature'].mean()\n\n#combining the corresponding weather stations and their codes with df_stations\nmerged_melted_temp_mean = pd.merge(melted_temp_mean, df_stations, on='id', how='inner')\n\n# Assuming you have a DataFrame 'merged_melted_temp_mean' with columns 'name' and 'temperature'\n\nPreci = merged_melted_temp_mean['temperature']\nx_ = merged_melted_temp_mean['name']\n\nfig = px.density_mapbox(merged_melted_temp_mean,  # Your data DataFrame\n                        lat='latitude',            # Column with latitude values\n                        lon='longitude',           # Column with longitude values\n                        z='temperature',           # Column with data for color density\n                        radius=20,                # Radius of the density circles\n                        mapbox_style=\"open-street-map\",\n                        center={\"lat\": 1.3587264156314176, \"lon\": 103.81600792035914},  # Centered on Singapore\n                        range_color=[26.5, 27.9],      # Color range for data\n                        zoom=10,                   # Initial zoom level\n                        height=400)\n\nfig.update_layout(margin={\"r\": 10, \"t\": 10, \"l\": 10, \"b\": 10})  # Update margin for layout\nfig.update_layout(coloraxis_colorbar=dict(\n    title=\"Average Temperature\",    # Colorbar title\n    ticks=\"outside\",               # Display colorbar ticks outside\n    ticksuffix=\" \",                # Add a space after ticks\n    dtick=0.1                       # Specify the tick interval\n))\nfig.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:10.026494Z","iopub.execute_input":"2023-11-24T08:34:10.027286Z","iopub.status.idle":"2023-11-24T08:34:12.822546Z","shell.execute_reply.started":"2023-11-24T08:34:10.027249Z","shell.execute_reply":"2023-11-24T08:34:12.820820Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Data_Visualization4\"></a>\n## 3.4 Visualization 4\nThe final visualization illustrates the dataset distribution based on their respective locations, revealing a predominant concentration of data points collected from indoor home settings. This observation directly aligns with our machine model, tailored for forecasting the comfort levels of potential indoor residential spaces. However, it's crucial to note that our dataset encompasses diverse locations, including outdoor and transportation settings. As a result, the model's predictions may exhibit reduced accuracy specifically within the context of assessing prospective flats, a point that will be further detailed in the limitations section of this notebook.\n\nFurthermore, the inclusion of data from various locations lays the groundwork for potential enhancements to our machine learning model. This expansion could facilitate predictions not only for prospective flats but also for offices or other real estate categories. This stands to  improve ERA's recommendations across a broader spectrum of property types.\n","metadata":{}},{"cell_type":"code","source":"#visualisation 4 - Location of data points(indoor or outdoor)\n\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n#this cleaning will be based on the q_noise_kind column, a new dataset will be created to preserve the original one\n#Drop rows with missing values in the 'q_noise_kind' column\ncleaned_df_train_location = df_train.dropna(subset=['q_location']).copy()\n\n# Calculate the frequency of each unique text value in the 'q_noise_nearby' column\nvalue_counts = cleaned_df_train_location['q_location'].value_counts()\n\n# Creating a bar graph\nplt.figure(figsize=(8, 6))  # Adjust figure size if needed\nvalue_counts.plot(kind='bar')\n\n# Labeling the axes and giving the graph a title\nplt.xlabel('Location')\nplt.ylabel('Frequency')\nplt.title('Location of Data Points')\n\n# Show the bar graph\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:12.824620Z","iopub.execute_input":"2023-11-24T08:34:12.825450Z","iopub.status.idle":"2023-11-24T08:34:13.206442Z","shell.execute_reply.started":"2023-11-24T08:34:12.825406Z","shell.execute_reply":"2023-11-24T08:34:13.204293Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Prediction\"></a>\n# 4 Prediction\nIn order to optimize property selection based on both noise and temperature, we have customized an AI machine learning model to predict thermal comfort and noise levels based on the location of the property. \n\n\n<a id=\"Split_data\"></a>\n## 4.1 Split data\nWe split the data into the training set and solution set according to the original data (before we combined `df_train` and `df_solution` to `df_all` in the section [Read data](#Read_data)).\nFurther, we are going to take some data from the training set `df_train` and create a test set (`df_test`) in order to score the quality of our model. The split into training and testing data is need because the submission to the public leader board is limited to two per day and we want to avoid overfitting of the model.","metadata":{}},{"cell_type":"code","source":"# Separate training and solution data again\ndf_train = df_all[df_all.source == 'train'].copy()\ndf_solution = df_all[df_all.source == 'solution'].copy()\n\n# ws_survey_count might contain missing values and might reset. \n# To avoid any issue we are creating a similar column ws_survey_count_2 without missing and duplicate values\ndf_train.loc[(df_train.ws_survey_count.notna()), 'ws_survey_count_2'] = df_train.loc[(df_train.ws_survey_count.notna()),].groupby('id_participant').cumcount()\n\n# Add 1 to start at 1 instead of 0\ndf_train['ws_survey_count_2'] = df_train['ws_survey_count_2']+1 \n\n# Split data into training and testing sets\ndf_test = df_train[(df_train.ws_survey_count_2>28)]\ndf_train = df_train[df_train.ws_survey_count_2<=28]\n\n# Drop the helper columns ws_surve_count_2 and source again\ndf_train = df_train.drop(columns=['ws_survey_count_2', 'source'])\ndf_test = df_test.drop(columns=['ws_survey_count_2', 'source'])\ndf_solution = df_solution.drop(columns=['source'])","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.208225Z","iopub.execute_input":"2023-11-24T08:34:13.208634Z","iopub.status.idle":"2023-11-24T08:34:13.269518Z","shell.execute_reply.started":"2023-11-24T08:34:13.208603Z","shell.execute_reply":"2023-11-24T08:34:13.268046Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Data_preparation\"></a>\n## 4.2 Data preparation","metadata":{}},{"cell_type":"markdown","source":"For the machine learning model below, all input and output values need to be numeric. At this point, the watch survey the response columns, e.g., `q_noise_nearby`, are of type string. Hence, we need convert the values in these columns into numbers.","metadata":{}},{"cell_type":"code","source":"# Inspect dataframe still containing strings\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.271570Z","iopub.execute_input":"2023-11-24T08:34:13.272097Z","iopub.status.idle":"2023-11-24T08:34:13.364571Z","shell.execute_reply.started":"2023-11-24T08:34:13.272050Z","shell.execute_reply":"2023-11-24T08:34:13.363194Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Find columns with values that are not numeric\ncat_vars = list(df_train.select_dtypes(include=['object']).columns)\ncat_vars","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.366730Z","iopub.execute_input":"2023-11-24T08:34:13.368425Z","iopub.status.idle":"2023-11-24T08:34:13.380837Z","shell.execute_reply.started":"2023-11-24T08:34:13.368363Z","shell.execute_reply":"2023-11-24T08:34:13.378460Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# encoding categorical variables\ndict_cat = {}\n\nfor var in cat_vars:\n    print(var)\n    if var == 'id_participant': # no need to encode the participant ID\n        continue\n    # convert categorical variables into 'category' type\n    df_train[var] = df_train[var].astype('category')\n    df_test[var] = df_test[var].astype('category')\n    df_solution[var] = df_solution[var].astype('category')\n    \n    # dictionary to keep track of the variable mapping: {variable-name: {number1: string1, number2: string2, ...}\n    dict_cat[var] = dict(enumerate(df_train[var].cat.categories))\n\n    # encode variables, missing values are encoded as -1\n    df_train[var] = df_train[var].cat.codes\n    df_test[var] = df_test[var].cat.codes\n    df_solution[var] = df_solution[var].cat.codes\n\n#dict_cat","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.383342Z","iopub.execute_input":"2023-11-24T08:34:13.383907Z","iopub.status.idle":"2023-11-24T08:34:13.444933Z","shell.execute_reply.started":"2023-11-24T08:34:13.383868Z","shell.execute_reply":"2023-11-24T08:34:13.443339Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Inspect dataframe where all strings were converted into integers\ndf_train.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.447091Z","iopub.execute_input":"2023-11-24T08:34:13.447598Z","iopub.status.idle":"2023-11-24T08:34:13.536914Z","shell.execute_reply.started":"2023-11-24T08:34:13.447448Z","shell.execute_reply":"2023-11-24T08:34:13.535533Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Example_prediction\"></a>\n## 4.3 Model to predict `q_noise_nearby`\n\nThe machine learning model was originally created by Mario Frei. What we had done to further improve the model was to change or include some variables, specifically:\n1. ##### Early stopping (=5)\n* To prevent overfitting of the data. If the validation metric does not improve for 5 rounds the training will stop. After some tries we landed to set the variable\n* To facilitate implementation, we partitioned the train_data to assess the model's performance. We accomplished this using the train_test_split function from sklearn.model_selection in Python. Our selection involved allocating 20% of the data to validate the trained model. Additionally, within train_test_split, we set random_state=42 to establish a consistent seed, ensuring that the model consistently reserves 20% of the data. This approach aims to maintain the model's performance consistency when evaluated on new data.\n2. ##### Number of n-estimators (n=1200)\n* The performance of the model was significantly impacted by the number of n-estimators. A higher count of n-estimators results in increased boosting rounds, offering greater opportunities to discover improved outcomes. However, this can potentially lead to overfitting. To address this, we combined a high count of n-estimators with early stopping techniques in our code to mitigate overfitting. This approach allowed us to balance the pursuit of improved results with preventing the model from excessively tailoring itself to the training data.\n3. ##### Learning Rate (=0.05)\n* The learning rate plays a crucial role in determining the weightage assigned to new trees within the model. A lower learning rate entails smaller adjustments as the model seeks optimal solutions. When paired with a higher number of estimators, this combination enhances the likelihood of achieving an improved final solution. Essentially, a lower learning rate allows for more cautious adjustments while the increased number of estimators provides ample opportunities to refine and enhance the overall solution of the model.\n4. ##### Mlogloss \n* An evaluation metric used for validation of data","metadata":{}},{"cell_type":"markdown","source":"The improvements of this code have been created using tips from the edX videos, Chat GPT and pages like stack overflow. \n\n","metadata":{}},{"cell_type":"code","source":"# Original size of the train dataset\ndf_train.shape","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.539180Z","iopub.execute_input":"2023-11-24T08:34:13.539725Z","iopub.status.idle":"2023-11-24T08:34:13.549946Z","shell.execute_reply.started":"2023-11-24T08:34:13.539669Z","shell.execute_reply":"2023-11-24T08:34:13.548020Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Original size of the test dataset\ndf_test.shape","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.551752Z","iopub.execute_input":"2023-11-24T08:34:13.552236Z","iopub.status.idle":"2023-11-24T08:34:13.562993Z","shell.execute_reply.started":"2023-11-24T08:34:13.552198Z","shell.execute_reply":"2023-11-24T08:34:13.560946Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Train: remove rows where the predicting variable is missing\n# In this example this doesn't remove any rows, but this will \n# be necessary for the column 'q_noise_kind'.\ndf_train_noise_nearby = df_train[df_train['q_noise_nearby'] != -1]\nprint(df_train_noise_nearby.shape)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.565323Z","iopub.execute_input":"2023-11-24T08:34:13.569827Z","iopub.status.idle":"2023-11-24T08:34:13.581272Z","shell.execute_reply.started":"2023-11-24T08:34:13.569753Z","shell.execute_reply":"2023-11-24T08:34:13.579503Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Test: remove rows where the predicting variable is missing\ndf_test_noise_nearby = df_test[df_test['q_noise_nearby'] != -1]\nprint(df_test_noise_nearby.shape)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.583952Z","iopub.execute_input":"2023-11-24T08:34:13.584784Z","iopub.status.idle":"2023-11-24T08:34:13.596950Z","shell.execute_reply.started":"2023-11-24T08:34:13.584733Z","shell.execute_reply":"2023-11-24T08:34:13.595092Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Train: remove the id_participant column\ndf_train_noise_nearby = df_train_noise_nearby.drop(['id_participant'], axis=1)\ndf_train_noise_nearby.shape","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.598694Z","iopub.execute_input":"2023-11-24T08:34:13.599136Z","iopub.status.idle":"2023-11-24T08:34:13.614858Z","shell.execute_reply.started":"2023-11-24T08:34:13.599101Z","shell.execute_reply":"2023-11-24T08:34:13.613147Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Test: remove the id_participant column\ndf_test_noise_nearby = df_test_noise_nearby.drop(['id_participant'], axis=1)\ndf_test_noise_nearby.shape","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.617133Z","iopub.execute_input":"2023-11-24T08:34:13.617569Z","iopub.status.idle":"2023-11-24T08:34:13.629574Z","shell.execute_reply.started":"2023-11-24T08:34:13.617535Z","shell.execute_reply":"2023-11-24T08:34:13.628044Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Count classes in predicting variable\nnum_class = df_train_noise_nearby['q_noise_nearby'].unique()\nprint(num_class)\ndict_cat['q_noise_nearby']","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:34:13.631772Z","iopub.execute_input":"2023-11-24T08:34:13.632670Z","iopub.status.idle":"2023-11-24T08:34:13.645848Z","shell.execute_reply.started":"2023-11-24T08:34:13.632630Z","shell.execute_reply":"2023-11-24T08:34:13.644315Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# First cell to run in case csv file doesnt work\n\n# Break dataframe into variables and ground truth\ny_train = df_train_noise_nearby['q_noise_nearby']\nX_train = df_train_noise_nearby.drop(['q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference'], axis=1)\n\ny_test = df_test_noise_nearby['q_noise_nearby']\nX_test = df_test_noise_nearby.drop(['q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference'], axis=1)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:24.244877Z","iopub.execute_input":"2023-11-24T08:50:24.245348Z","iopub.status.idle":"2023-11-24T08:50:24.255608Z","shell.execute_reply.started":"2023-11-24T08:50:24.245312Z","shell.execute_reply":"2023-11-24T08:50:24.253870Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#AI model modifications from our group: it further splits the data into 2\nfrom sklearn.model_selection import train_test_split\n\nX_train_final, X_valid, y_train_final, y_valid = train_test_split(X_train, y_train, test_size=0.2, random_state=42)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:26.262779Z","iopub.execute_input":"2023-11-24T08:50:26.263244Z","iopub.status.idle":"2023-11-24T08:50:26.274667Z","shell.execute_reply.started":"2023-11-24T08:50:26.263209Z","shell.execute_reply":"2023-11-24T08:50:26.273003Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Initialize model\nfrom xgboost import XGBClassifier\nfrom sklearn.metrics import accuracy_score, f1_score\n\nclf = XGBClassifier(\n    num_class=num_class, \n    objective='multi:softmax', \n    n_estimators=1200,\n    early_stopping_rounds=5,\n    learning_rate=0.05, \n    eval_metric=\"mlogloss\"\n)\n\n# Train model\n\nclf.fit(\n    X_train_final, y_train_final, \n    eval_set=[(X_valid, y_valid)], \n    verbose=False\n)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:28.082265Z","iopub.execute_input":"2023-11-24T08:50:28.082747Z","iopub.status.idle":"2023-11-24T08:50:29.630478Z","shell.execute_reply.started":"2023-11-24T08:50:28.082711Z","shell.execute_reply":"2023-11-24T08:50:29.629397Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Predict and evaluate\ny_pred = clf.predict(X_test)\nprint('Model accuracy score: {0:0.4f}'. format(accuracy_score(y_test, y_pred)))","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:32.384838Z","iopub.execute_input":"2023-11-24T08:50:32.385504Z","iopub.status.idle":"2023-11-24T08:50:32.406988Z","shell.execute_reply.started":"2023-11-24T08:50:32.385448Z","shell.execute_reply":"2023-11-24T08:50:32.406003Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Copy test data into new dataframe\ndf_comparison = df_test.copy()\n\n# Assign test prediction to dataframe\ndf_comparison['q_noise_nearby (original)'] = y_test\ndf_comparison['q_noise_nearby (predicted)'] = y_pred\n\n# Convert labels from integers back to strings\ndf_comparison['q_noise_nearby (original)'] = df_comparison['q_noise_nearby (original)'].replace(dict_cat['q_noise_nearby'])\ndf_comparison['q_noise_nearby (predicted)'] = df_comparison['q_noise_nearby (predicted)'].replace(dict_cat['q_noise_nearby'])\n\n# Show dataframe\ndf_comparison[['id_participant', 'q_noise_nearby (original)', 'q_noise_nearby (predicted)', 'ws_heart_rate']]","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:34.265442Z","iopub.execute_input":"2023-11-24T08:50:34.265911Z","iopub.status.idle":"2023-11-24T08:50:34.296532Z","shell.execute_reply.started":"2023-11-24T08:50:34.265878Z","shell.execute_reply":"2023-11-24T08:50:34.294078Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Show rows with wrong predictions\ndf_comparison[df_comparison['q_noise_nearby (original)'] != df_comparison['q_noise_nearby (predicted)']][['id_participant', 'q_noise_nearby (original)', 'q_noise_nearby (predicted)', 'ws_heart_rate']]","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:37.755831Z","iopub.execute_input":"2023-11-24T08:50:37.756282Z","iopub.status.idle":"2023-11-24T08:50:37.781897Z","shell.execute_reply.started":"2023-11-24T08:50:37.756248Z","shell.execute_reply":"2023-11-24T08:50:37.779880Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Predict_any_column\"></a>\n## 4.4 Predict any column\nWe are going to wrap up above code into a function in order to make the prediction of the other columns a bit more convenient. The steps are mostly the same as above and might feel a bit repetitive.","metadata":{}},{"cell_type":"code","source":"def predict_any_column(column_name, df_train, df_test, df_solution):\n    # Remove rows where the predicting variable is missing\n    df_train = df_train[df_train[column_name] != -1]\n    df_test = df_test[df_test[column_name] != -1]\n    \n    # Remove rows where the predicting variable is missing\n    df_train = df_train.drop(columns=['id_participant'])\n    df_test = df_test.drop(columns=['id_participant'])\n    df_solution = df_solution.drop(columns=['id_participant'])\n\n    # Count classes in predicting variable\n    num_class = df_train[column_name].unique()\n    \n    # Break dataframe into variables and ground truth\n    y_train = df_train[column_name]\n    X_train = df_train.drop(['q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference'], axis=1)\n\n    y_test = df_test[column_name]\n    X_test = df_test.drop(['q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference'], axis=1)\n    \n    X_solution = df_solution.drop(['q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference'], axis=1)\n    \n    \n    from sklearn.model_selection import train_test_split\n\n    X_train_final, X_valid, y_train_final, y_valid = train_test_split(X_train, y_train, test_size=0.2, random_state=42)\n\n\n        # Initialize model\n    clf = XGBClassifier(\n        num_class=num_class, \n        objective='multi:softmax', \n        n_estimators=1200,\n        early_stopping_rounds=5,\n        learning_rate=0.05, \n        eval_metric=\"mlogloss\"\n    )\n\n    # Train model\n\n    clf.fit(\n        X_train_final, y_train_final, \n        eval_set=[(X_valid, y_valid)], \n        verbose=False\n        )\n\n    # Predict and evaluate\n    y_pred = clf.predict(X_test)\n    score = accuracy_score(y_test, y_pred)\n    print('XGBoost model accuracy score: {0:0.4f}'. format(score))\n\n    # Predict solution\n    X_solution.shape\n    y_solution = clf.predict(X_solution)\n    \n    return y_solution, score","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:44.219805Z","iopub.execute_input":"2023-11-24T08:50:44.220238Z","iopub.status.idle":"2023-11-24T08:50:44.234779Z","shell.execute_reply.started":"2023-11-24T08:50:44.220204Z","shell.execute_reply":"2023-11-24T08:50:44.233192Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Create an empty list to collect the scores\nscore = []\n\n# Create a copy of the solution dataframe for submission\ndf_submission = df_solution.copy()","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:47.714082Z","iopub.execute_input":"2023-11-24T08:50:47.714679Z","iopub.status.idle":"2023-11-24T08:50:47.722205Z","shell.execute_reply.started":"2023-11-24T08:50:47.714631Z","shell.execute_reply":"2023-11-24T08:50:47.720673Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Predict_q_noise_nearby\"></a>\n### 4.4.1 Prediction `q_noise_nearby`\n\nWe've already prediced the values for the column `q_noise_nearby`. We are going to repeat this step in order to collect the score so that we can compute the overall score for all four columns that need to be predicted.","metadata":{}},{"cell_type":"code","source":"df_solution['q_noise_nearby'], this_score = predict_any_column('q_noise_nearby', df_train, df_test, df_solution)\nscore.append(this_score)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:51.641351Z","iopub.execute_input":"2023-11-24T08:50:51.641839Z","iopub.status.idle":"2023-11-24T08:50:54.459350Z","shell.execute_reply.started":"2023-11-24T08:50:51.641773Z","shell.execute_reply":"2023-11-24T08:50:54.458335Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Predict_q_noise_kind\"></a>\n### 4.4.2 Prediction `q_noise_kind`","metadata":{}},{"cell_type":"code","source":"df_submission['q_noise_kind'], this_score  = predict_any_column('q_noise_kind', df_train, df_test, df_solution)\nscore.append(this_score)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:50:56.196019Z","iopub.execute_input":"2023-11-24T08:50:56.196510Z","iopub.status.idle":"2023-11-24T08:51:00.131092Z","shell.execute_reply.started":"2023-11-24T08:50:56.196476Z","shell.execute_reply":"2023-11-24T08:51:00.129917Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Predict_q_earphones\"></a>\n### 4.4.3 Prediction `q_earphones`\n","metadata":{}},{"cell_type":"code","source":"df_submission['q_earphones'],this_score = predict_any_column('q_earphones', df_train, df_test, df_solution)\nscore.append(this_score)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:51:00.379473Z","iopub.execute_input":"2023-11-24T08:51:00.380252Z","iopub.status.idle":"2023-11-24T08:51:02.805341Z","shell.execute_reply.started":"2023-11-24T08:51:00.380200Z","shell.execute_reply":"2023-11-24T08:51:02.803608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Predict_q_thermal_preference\"></a>\n### 4.4.4 Prediction `q_thermal_preference`","metadata":{}},{"cell_type":"code","source":"df_submission['q_thermal_preference'],this_score = predict_any_column('q_thermal_preference', df_train, df_test, df_solution)\nscore.append(this_score)","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:51:06.246630Z","iopub.execute_input":"2023-11-24T08:51:06.247122Z","iopub.status.idle":"2023-11-24T08:51:08.150668Z","shell.execute_reply.started":"2023-11-24T08:51:06.247090Z","shell.execute_reply":"2023-11-24T08:51:08.149563Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Compute_overall_score\"></a>\n## Compute overall score\nThe model for this score used only part of the training dataset. This is because we need some reference data to compute a score. This also means that the score computed in this notebook will not necessarily be the same score as in the leaderboard.","metadata":{}},{"cell_type":"code","source":"# The overall score is just the averge of the scores for each column\nscore_total = np.mean(score)\nprint('Overall accuracy score: {0:0.4f}'. format(score_total))","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:51:12.032769Z","iopub.execute_input":"2023-11-24T08:51:12.033254Z","iopub.status.idle":"2023-11-24T08:51:12.041425Z","shell.execute_reply.started":"2023-11-24T08:51:12.033219Z","shell.execute_reply":"2023-11-24T08:51:12.040112Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Create_submission_file\"></a>\n## Create submission file\nWe now convert the integers in the watch survey response columns back to the original strings and create a file that can be submitted to the competition.","metadata":{}},{"cell_type":"code","source":"# Convert classes back form integers to strings\nfor key in dict_cat:\n    if key in df_solution.columns:\n        df_submission[key] = df_submission[key].replace(dict_cat[key])\n\n# Select only necessary columns for submission\ndf_submission = df_submission[['id_unique', 'q_noise_nearby', 'q_noise_kind', 'q_earphones', 'q_thermal_preference']].set_index('id_unique')\n\n# Write dataframe to csv file\ndf_submission.to_csv('submission.csv')\n\nprint('Congrats! The Notebook exectued successfully!')","metadata":{"execution":{"iopub.status.busy":"2023-11-24T08:51:14.673371Z","iopub.execute_input":"2023-11-24T08:51:14.674050Z","iopub.status.idle":"2023-11-24T08:51:14.720002Z","shell.execute_reply.started":"2023-11-24T08:51:14.674006Z","shell.execute_reply":"2023-11-24T08:51:14.717888Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<a id=\"Evaluation\"></a>\n# 5 Evaluation\n\n<a id=\"Results\"></a>\n## 5.1 Results\nIn our model's assessment of nearby noise distraction levels, it achieved an accuracy score of 0.5923, indicating a 59.23% accuracy in predicting whether individuals face no, minimal, or significant noise distractions. This capability aids in foreseeing if a client seeking to purchase a housing flat might encounter such disturbances and the degree of discomfort they might experience. Consequently, we can curate a housing list that filters properties based on these noise levels, aligning with client preferences.\n\nMoreover, our model predicted the types of noise distractions with an accuracy score of 0.5536, providing insight into the primary sources of noise disturbances with a 55.36% accuracy rate. This allows clients to filter the housing list not only by noise levels but also by the specific types of disturbances they may encounter.\nAdditionally, our model achieved an accuracy score of 0.6637 in predicting thermal comfort, determining if an area might be too hot, too cold, or thermally suitable, 66.37% of the time. This enhances the housing list by enabling clients to filter properties based on their preferred thermal comfort levels.\n\nCombining these insights, our model attained an overall average prediction score of 0.6057. This indicates that our housing list is predominantly reflective of the actual noise and thermal conditions of the properties, empowering clients to make more informed decisions based on their comfort preferences.\n\n\n<a id=\"Learning_Points\"></a>\n## 5.2 Learning Points\nIn our pursuit to enhance this model, we explored numerous strategies, with some yielding better results than others. An effective method involved fine-tuning the parameter values, manually adjusting them to observe potential improvements. As a team, we submitted 20 variations, experimenting with different ideas, parameter adjustments, and models such as CatBoost or LightGBM, ultimately arriving at the described prediction code.\nWe also attempted parameter optimization through a Kaggle script using random search, aiming to discover optimal settings. Despite investing significant time, we didn't uncover parameters that notably enhanced performance. Our optimization process involved 200 iterations, suggesting that increasing the iteration count might yield more promising results by expanding the search space for better parameters.\n","metadata":{}},{"cell_type":"markdown","source":"\n<a id=\"Limitations\"></a>\n# 6 Limitations and Next Steps\nAfter reviewing our machine learning model and analyzing its feasibility to be used in the market, we have identified some limitations to our machine learning model.\n\n<a id=\"Lack_of_Sampling Data\"></a>\n## 6.1 Lack of Sampling Data\nThe pool of data used to train the model is only updated as of 2022 and early 2023, data may not be fully applicable to the changing preferences of more recent flat buyers. Additionally, thermal data is obtained via weather stations distributed all across Singapore and not according to residential sub-districts. This suggests the possibility that areas recommended by the model may not be designated for housing at all. For example, temperature from weather stations that do not accommodate public housing infrastructure despite favorable thermal comfort levels include Pulau Ubin, Sentosa, Tuas, Pasir Panjang Ports, and even Pulau Semakau, Singapore’s landfill island. Therefore, in order for this model to improve, stricter and more applicable data samples must be used for training. Data sampling should be conducted in accordance to URA’s master plan for residential areas such that recommendations and assessments made by the model will be livable districts that are more appropriate for ERA's clients. In addition, the temperature data collected was across different regions of Singapore but, we do not have data on the more densely populated residential areas such as Jurong West, Punggol, and Yishun. The absence of such data confines the accuracy of the prediction outcomes within data used to train the model. Therefore, the machine learning model would be rendered less applicable if it were to be used on areas outside of the training data.\n\n<a id=\"Judgement\"></a>\n## 6.2 Judgement\nLike any other machine learning model, this model cannot fully incorporate emotional and moral judgments to meet the nuanced preferences of our clients. For example, the model may suggest a particular location with good levels of noise and thermal comfort as somewhere that is suitable and desirable for all prospective flat buyers, but that plot of land might be situated near a cemetery which may not be desirable for clients, our machine learning model is only able to suggest locations based on thermal comfort and noise distractions and will not be able to suggest locations based on nuanced preferences such as wanting a location near a good school or a place of worship. Thus, even with our machine learning model, we would still require clients to personally visit the location to evaluate if it meets their preferences.\n\n<a id=\"Overgeneralisation\"></a>\n## 6.3 Overgeneralisation\nGiven that this model is made to better recommend areas of residence for ERA’s clients, the parameters used are too little, as thermal comfort and noise levels are not the only 2 distinguishing factors to decide if a place is suitable as a home. In order to improve this model, other factors will have to be taken into consideration, such as price, proximity to facilities, proximity to educational institutions. Building on the new considerations to be incorporated into our machine learning model, new data will have to be obtained for training. If requirements that are not specific to residential areas are being integrated into the model, the model will make assessments that are too general and will most likely not be applicable for ERA’s clients. For example, a model that is over-generalised may instead recommend locations that are for industrial or commercial uses.\n\n<a id=\"Moving_Forward\"></a>\n## 6.4 Moving Forward\nLooking ahead, enhancing the machine learning model to better predict and curate ideal flats for clients hinges on acquiring more diverse data types and additional data points. Broadening the spectrum of data by including environmental and location-specific pricing data aims to combat over-generalization tendencies and refine judgment limitations. Moreover, augmenting data points, such as incorporating more locations, temperature variations, and noise data, promises more accurate predictions for compiling a refined list of potential flats.\n\nFurthermore, the integration of a richer dataset not only bolsters predictions for prospective flats but also opens avenues for ERA to extend this model to other real estate categories. This strategic move holds the potential to further amplify ERA's reputation and performance in the real estate sector.\n","metadata":{}},{"cell_type":"markdown","source":"<a id=\"Conclusion\"></a>\n# 7 Conclusion\nIn conclusion, utilizing a machine learning model for optimizing property search and recommendation is a promising area to explore. In residential real estate, several parameters are consistent across property types, with two already integrated into the model. The AI model can mitigate human errors in recommending residential properties through quantitative assessments like thermal comfort and noise levels. Moreover, machine learning algorithms can efficiently handle large-scale data, offering simultaneous recommendations to multiple users, making them adaptable across various platforms. Integrating more such parameters can enhance our model's accuracy and relevance compared to traditional methods. However, training the model with relevant, up-to-date data can be laborious, requiring manual data sampling. Despite this, maintaining the model could yield substantial cost savings, time efficiency, and heightened customer satisfaction, making it a worthwhile endeavor.\n\nIt's crucial to recognize that the AI model should serve as a significant tool for ERA's property recommendations, aiding in informed decision-making rather than solely making decisions. AI prediction models might not encompass all human beliefs and practices. Therefore, human judgment remains an indispensable step before communicating recommendations to ERA's clients, as AI recommendations may not always align with real-life scenarios\n","metadata":{}},{"cell_type":"markdown","source":"* Note: To keep our accuracy up, we had to ensure that the column for q_noise in the submission file is not in numbers. Although we weren't exactly sure what to do, we know that we had to run all the code, then specifically run from cell 47 \"# First cell to run in case csv file doesnt work\" one by one onwards so that when we download the submission file, the column for q_noise will not be in numbers. Therefore, our actual accuracy was 0.6 (do refer to the CSV file I uploaded. Its the same from this notebook) and above, however it requires manual running of cells from cell 47 onwards. Not too sure why.\n* Basically, this is our notebook for our work/narrative, however for accuracy wise, do refer to the excel submission named \"IPM_PFM Group 3 Submission\" submitted by Chen Yong Zhi for the accuracy.","metadata":{}},{"cell_type":"markdown","source":"<a id=\"References\"></a>\n# 8 References\nM. Frei, “IPM3211 Base Analysis and Model Example,” Kaggle,. [Online].Available:https://www.kaggle.com/code/mariofrei/ipm3211-base-analysis-and-model-example/notebook. [Accessed: 21-Nov-2023].\n\nOpenAI. \"GPT-4, GPT 3.5, GPT-4 DALL-E”,  OpenAI: [Online]. Available: https://chat.openai.com/\n\nV. Pok, \"IPM-PF1103 Tutorial 1 Group 4 Cozie Project,\" Kaggle, [Online]. Available: https://www.kaggle.com/code/vickipok/ipm-pf1103-tutorial-1-group-4-cozie-project. [Accessed: 21-Nov-2023].\n\nV. Pok, \"Group 4 Location Visualization,\" Kaggle, [Online]. Available: https://www.kaggle.com/code/vickipok/group-4-location-visualization. [Accessed: 21-Nov-2023].\n\n\"3 Ways to Merge Pandas DataFrames,\" KDnuggets, Mar. 2023. [Online]. Available: https://www.kdnuggets.com/2023/03/3-ways-merge-pandas-dataframes.html. [Accessed: 21-Nov-2023].\n\nUser \"A,\" \"How to calculate mean values grouped on another column in pandas,\" Stack Overflow, [Online]. Available: https://stackoverflow.com/questions/30482071/how-to-calculate-mean-values-grouped-on-another-column. [Accessed: 21-Nov-2023].\n\nUser \"B,\" \"Pandas merge: How to avoid 'Unnamed: 0' column,\" Stack Overflow, [Online]. Available: https://stackoverflow.com/questions/41087619/pandas-merge-how-to-avoid-unnamed-column. [Accessed: 21-Nov-2023].\n\nSeaborn, \"Heatmap,\" Seaborn, [Online]. Available: https://seaborn.pydata.org//seaborn.heatmap.html. [Accessed: 21-Nov-2023].\n","metadata":{}}]}