{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[{"file_id":"1ru4Ayzc5HtVBDHQ4R1fEI_P0cP5mE5_i","timestamp":1653777593369},{"file_id":"1obiWtD5ng2-_wY_7D_xapX-nJBwK52dY","timestamp":1652942576409}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"930b7e70df9a42c4b282f5b8ecb92bc5":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_911bf58e0a1d4e2fb57f46e6b0668a3f","IPY_MODEL_1711ac32959545bf9df96ba076057a76","IPY_MODEL_276f65ccf4874dc48604504e8ef10e99"],"layout":"IPY_MODEL_9e44355bf98348fbb850cd3b1e0f92aa"}},"911bf58e0a1d4e2fb57f46e6b0668a3f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_99386ad72c284b6289367c4b3cd99bc8","placeholder":"​","style":"IPY_MODEL_9ea4d29262ad4e09966001dc679c6479","value":"100%"}},"1711ac32959545bf9df96ba076057a76":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_44e09ccc57e44949b5325b075c40cb87","max":20,"min":0,"orientation":"horizontal","style":"IPY_MODEL_80df3276aba74a978ba14fa95ef8d36a","value":20}},"276f65ccf4874dc48604504e8ef10e99":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5b14f78c29e04907985b82334a96c1db","placeholder":"​","style":"IPY_MODEL_160406f93e98471bae7e2a9d3fe9c65f","value":" 20/20 [00:00<00:00, 29.88it/s]"}},"9e44355bf98348fbb850cd3b1e0f92aa":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"99386ad72c284b6289367c4b3cd99bc8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9ea4d29262ad4e09966001dc679c6479":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"44e09ccc57e44949b5325b075c40cb87":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"80df3276aba74a978ba14fa95ef8d36a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"5b14f78c29e04907985b82334a96c1db":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"160406f93e98471bae7e2a9d3fe9c65f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"31ef4e0b99bf4e11bea3bf8a6a8582cd":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_472153722daf42fbbd0be4ce62c9a12e","IPY_MODEL_83b92c59fdda4e98bb69eeb13e020332","IPY_MODEL_67ba32fce1294fa1b6bcd214c899dc7d"],"layout":"IPY_MODEL_73952c4d26d749348fa3bcf45825fe8f"}},"472153722daf42fbbd0be4ce62c9a12e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0a40a9cbff56441aa4ee13c7b236d950","placeholder":"​","style":"IPY_MODEL_c11e9961b91b4f569afe85f750cbca7f","value":""}},"83b92c59fdda4e98bb69eeb13e020332":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_a62f3e0e90c542ad808f739770e620b0","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b289b8b49c8546a5a0d1cbdd25addbb4","value":1}},"67ba32fce1294fa1b6bcd214c899dc7d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c357242ffed449f3a11ca89c27a1c51d","placeholder":"​","style":"IPY_MODEL_fb8714e423984166b645789160bd52cb","value":" 20/? [00:00<00:00, 217.07it/s]"}},"73952c4d26d749348fa3bcf45825fe8f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0a40a9cbff56441aa4ee13c7b236d950":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c11e9961b91b4f569afe85f750cbca7f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a62f3e0e90c542ad808f739770e620b0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":"20px"}},"b289b8b49c8546a5a0d1cbdd25addbb4":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"c357242ffed449f3a11ca89c27a1c51d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fb8714e423984166b645789160bd52cb":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"410e1e9970b547129633344e9915c53d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_91478e81e7c84e4b9b3ac60c49c32249","IPY_MODEL_e1bbf7772b5f4bd3a38dfeeee03ca227","IPY_MODEL_e474ab633dd342b18f89c285c921cc5a"],"layout":"IPY_MODEL_3cc027831dc74d379d76349d5cdb3944"}},"91478e81e7c84e4b9b3ac60c49c32249":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e59441aa6abc4a7daab51ba22bee8586","placeholder":"​","style":"IPY_MODEL_02f00d0afe7540e19f6bff1c960d08f0","value":"100%"}},"e1bbf7772b5f4bd3a38dfeeee03ca227":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_37923056d6c149a89059feee5abcbc7a","max":152,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1c20aaaa561547a1bc91a7b62dbe2469","value":152}},"e474ab633dd342b18f89c285c921cc5a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c3870f35353c4c939f5d71cd37f6adf2","placeholder":"​","style":"IPY_MODEL_2c5b9671f7c34128a3b997a70a8fcc2d","value":" 152/152 [00:05<00:00, 27.58it/s]"}},"3cc027831dc74d379d76349d5cdb3944":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e59441aa6abc4a7daab51ba22bee8586":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"02f00d0afe7540e19f6bff1c960d08f0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"37923056d6c149a89059feee5abcbc7a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1c20aaaa561547a1bc91a7b62dbe2469":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"c3870f35353c4c939f5d71cd37f6adf2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2c5b9671f7c34128a3b997a70a8fcc2d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"cells":[{"cell_type":"markdown","source":["# Guide to Extracting Data w/ APIs from the Withings ScanWatch\n","\n","\n","\n","Ever wanted a smart watch with an EKG? Introducing the [Withings ScanWatch](https://www.withings.com/us/en/scanwatch), a smart watch that can not only detect your heart rate optically, but also with an EKG! While this notebook is meant for the ScanWatch, it can be easily adapted to any other Withings product with some modifications.\n","\n","Also note that you need to set up your Withings ScanWatch prior to running this notebook.\n","\n","If you want to know more about Withings Body+ Scale, see the [README](https://github.com/alrojo/wearipedia/tree/main/wearables/withings-scanwatch) for a detailed analysis of performances, sensors, data privacy, and extraction pipelines.\n","\n","We will be able to extract the following parameters (see the definitions at [this documenation page](https://developer.withings.com/api-reference#operation/sleepv2-getsummary)):\n","\n","
\n","\n"," Click here to view all extractable parameters \n","\n","| Parameter Name | Sampling Frequency |\n","|-----------------------|--------------------|\n","| Heart Rate | Every 10 minutes OR every second (when set to [continuous heart rate mode](https://support.withings.com/hc/en-us/articles/360010042798-ScanWatch-Tracking-my-heart-rate)) |\n","| # of REM sleep phases | Per sleep |\n","| Sleep Efficiency | Per sleep |\n","| Sleep Latency | Per sleep |\n","| Total Sleep Time | Per sleep |\n","| Total Time in bed | Per sleep |\n","| Wakeup latency | Per sleep |\n","| Waso | Per sleep |\n","| Asleepduration | Per sleep |\n","| Deep sleep duration | Per sleep |\n","| Duration to sleep | Per sleep |\n","| Duration to wakeup | Per sleep |\n","| Average heart rate | Per sleep |\n","| Max heart rate | Per sleep |\n","| Min heart rate | Per sleep |\n","| Light sleep duration | Per sleep |\n","| Night events | Per sleep |\n","| Out of bed count | Per sleep |\n","| REM sleep duration | Per sleep |\n","| Average resp rate | Per sleep |\n","| Minimal resp. rate | Per sleep |\n","| Max resp. rate | Per sleep |\n","| Sleep score | Per sleep |\n","| Total snoring time | Per sleep |\n","| Snoring episode count | Per sleep |\n","| Wakeup count | Per sleep |\n","| Wakeup duration | Per sleep |\n","\n","\n","
\n","\n","Note that Withings provides even more measurements than just these. You can check these out at the [API reference](https://developer.withings.com/api-reference/). Since we focus on heart rate and sleep here, though, those are the main measurement types we extract.\n","\n","

\n","In this guide, we sequentially cover the following **five** topics to extract from the Withings API:\n","1. **Setup**\n"," - We cover setting up the watch and library imports in this section.\n","2. **Authentication/Authorization**\n"," - This requires a couple extra steps on your part\n","3. **Data extraction**\n"," - You can get data from the API in a couple lines of code.\n","4. **Data visualization**\n"," - 4.1: We reproduce a plot for heart rate over the course of a day\n"," - 4.2: We reproduce a plot for sleep data over the course of a week\n"," - 4.3: We visualize the times / days when the user fails to wear the watch.\n","5. **Data analysis**\n"," - 5.1: We try to find a correlation between the length of a sleep period and the median heart rate for that sleep period. We find that the correlation is not statistically significant.\n"," - 5.2: We demonstrate a simple outlier detection algorithm running on the dataset.\n","\n","Disclaimer: this notebook is purely for educational purposes. All of the data currently stored in this notebook is purely *synthetic*, meaning randomly generated according to rules we created. Despite this, the end-to-end data extraction pipeline has been tested on our own data, meaning that if you enter your own credentials on your own Colab instance, you can visualize your own *real* data. That being said, we were unable to thoroughly test the timezone functionality, though, since we only have one account, so beware."],"metadata":{"id":"OD2g9xsgxSYy"}},{"cell_type":"markdown","source":["# 1. Setup\n","\n","## 1.1 Study participant setup and usage\n","\n","To set up the watch itself so that you can run this notebook, download the Health Mate app and follow the instructions on the app. The app will pair via bluetooth to the watch. In our experience, this process was fairly straightforward."],"metadata":{"id":"EGZZcSOH3PT1"}},{"cell_type":"markdown","source":["# 2. Authentication/Authorization\n","\n","To be able to make requests to the API, the easiest way is to use the public developer API. This section roughly follows the steps outlined [here](https://developer.dexcom.com/authentication) on their website.\n","\n","First, follow the non-colab steps listed below:\n","\n","1. Visit the [developer portal](https://developer.withings.com/) and click \"Open Developer Dashboard\" on the top right.\n","2. Once logged in, click \"Add an app\".\n","3. For now, you can just click \"I don't know\" under \"Services\", accept terms of use, and click \"Next\".\n","5. Put whatever you want under \"Application Name\" (we used `withings-test`), anything under \"Application Description\", and \"https://wbsapi.withings.net/v2/oauth2\" under Registered URLs, then click \"Done\".\n"," - NOTE: \"registered URLs\" is intended to be a URL to a webserver you control and can receive requests from. However, in this notebook we are simply using it as a placeholder, as this functionality is not strictly necessary for obtaining your data.\n","\n","In the end, you should see something like the below.\n","\n","\n","\n","Now we can proceed with the rest of the notebook.\n","\n","To be able to make requests to the API and extract the data we need, we need to first issue an access token. This (ephemeral) access token will serve as our key to the data. While, you don't necessarily need to be familiar with how the issuing of the authtoken occurs, you can learn more about it by visiting [the official Withings tutorial](https://developer.withings.com/developer-guide/v3/integration-guide/public-health-data-api/get-access/oauth-web-flow/)."],"metadata":{"id":"d2Kbo6d4waj9"}},{"cell_type":"code","source":["#@title 6. Enter your credentials below (from the application you just created)\n","\n","# we hide a bunch of the library imports in here :)\n","!pip install -q july\n","\n","import requests\n","import urllib\n","import json\n","from datetime import datetime\n","from tqdm import tqdm\n","\n","import numpy as np\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","import seaborn as sns\n","from scipy.ndimage import gaussian_filter\n","from scipy import stats\n","import july\n","from july.utils import date_range\n","\n","CLIENT_ID = \"\" #@param {type:\"string\"}\n","CUSTOMER_SECRET = \"\" #@param {type:\"string\"}\n","\n","STATE = 'string'\n","ACCOUNT_URL = 'https://account.withings.com'\n","CALLBACK_URI = 'https://wbsapi.withings.net/v2/oauth2'\n","\n","\n","payload = {'response_type': 'code', # imposed string by the api\n"," 'client_id': CLIENT_ID,\n"," 'state': STATE,\n"," 'scope': 'user.info,user.metrics,user.activity', # see docs (https://developer.withings.com/api-reference/#operation/oauth2-authorize) for enhanced scope\n"," 'redirect_uri': CALLBACK_URI, # URL of this app\n"," #'mode': 'demo' # Use demo mode, DELETE THIS FOR REAL APP\n","}\n","\n","url = f'{ACCOUNT_URL}/oauth2_user/authorize2?'\n","\n","for key, value in payload.items():\n"," url += f'{key}={value}&'\n","\n","url = url[:-1]\n","\n","print(url)"],"metadata":{"cellView":"form","id":"ev3-mu5ou88c","executionInfo":{"status":"ok","timestamp":1663815667013,"user_tz":240,"elapsed":6594,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"bbded490-c845-4e9d-924e-9ff08d0bc17c"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["https://account.withings.com/oauth2_user/authorize2?response_type=code&client_id=&state=string&scope=user.info,user.metrics,user.activity&redirect_uri=https://wbsapi.withings.net/v2/oauth2\n"]}]},{"cell_type":"markdown","source":["7. Now visit the above URL and click \"Allow this app\", and copy the URL you were redirected to into the text field below. Note that if you mess up once, you have to go through the above URL again (including clicking \"Allow this app\"). Also, the URL is only valid for 30 seconds, so be quick!"],"metadata":{"id":"kpLZcG86vSuL"}},{"cell_type":"code","source":["#@title 7. Copy and paste the URL you were redirected to below\n","redirect_url = \"https://wbsapi.withings.net/v2/oauth2?code=09f095bcd678c7beaa9285e189c5a3917329ed7d&state=string\" #@param {type:\"string\"}\n","\n","try:\n"," code = urllib.parse.parse_qs(urllib.parse.urlparse(redirect_url).query)['code'][0]\n","except Exception as e:\n"," print(f'Caught error:\\n{e}\\n')\n"," print(\"Please copy and paste the entire URL (including https)\")\n","\n","params = {\n"," 'action': 'requesttoken',\n"," 'grant_type': 'authorization_code',\n"," 'client_id': CLIENT_ID,\n"," 'client_secret': CUSTOMER_SECRET,\n"," 'code': code,\n"," #'scope': 'user.info',\n"," 'redirect_uri': 'https://wbsapi.withings.net/v2/oauth2'\n","}\n","\n","out = requests.get('https://wbsapi.withings.net/v2/oauth2', data=params)\n","\n","out = json.loads(out.text)\n","\n","try:\n"," access_token = out['body']['access_token']\n","except KeyError as e:\n"," print('Took too long to paste in redirect URL. Please repeat step 7.')"],"metadata":{"id":"oZ8kzSuBoily","cellView":"form","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1663815667530,"user_tz":240,"elapsed":523,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"ae5981bf-92a5-4ade-949a-7aefac93cbf3"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Took too long to paste in redirect URL. Please repeat step 7.\n"]}]},{"cell_type":"markdown","source":["Now that we have our access token, we can begin making requests to the API! This access token will last only three hours, though, so you would need to re-do step 7 if three hours pass."],"metadata":{"id":"JObtRZuFvuJl"}},{"cell_type":"markdown","source":["# 3. Data extraction\n","\n","Here, data extraction is pretty simple! We've made it possible to get all heart rate and sleep data in one function call each.\n","\n","If you need to customize this part further and need to dig into the code, notice that all we need to do is make a few GET requests with the right query parameters. See [the overall health data API page](https://developer.withings.com/developer-guide/v3/integration-guide/public-health-data-api/data-api/all-available-health-data) or the [\"Measure\" endpoints specifically](https://developer.withings.com/api-reference/#operation/measurev2-getactivity) for more info."],"metadata":{"id":"GUtc7x14ebLe"}},{"cell_type":"code","source":["#@title Enter start and end dates\n","start_date = \"2020-05-20\" #@param {type:\"date\"}\n","end_date = \"2022-07-20\" #@param {type:\"date\"}\n","\n","import requests\n","import urllib\n","import json\n","from datetime import datetime\n","from tqdm import tqdm\n","\n","import numpy as np\n","import pandas as pd\n","import matplotlib.pyplot as plt\n","import seaborn as sns\n","from scipy.ndimage import gaussian_filter\n","from scipy import stats\n","import july\n","from july.utils import date_range\n","\n","from datetime import timedelta, datetime\n","import pandas as pd\n","import numpy as np\n","\n","def create_synthetic_sleeps_df():\n","\n"," syn_sleeps = pd.DataFrame()\n","\n"," syn_sleeps['id'] = np.random.randint(0, 100000000, size=(20,))\n"," syn_sleeps['timezone'] = 'America/Los_Angeles'\n"," syn_sleeps['model'] = 16\n"," syn_sleeps['model_id'] = 93\n"," syn_sleeps['hash_deviceid'] = 'd41d8cd98f00b204e9800998ecf8427e' # randomly generated\n"," syn_sleeps['date'] = [datetime.fromtimestamp(datetime.strptime('2022-05-17', '%Y-%m-%d').timestamp() + i * 24 * 3600).strftime('%Y-%m-%d') for i in range(20)]\n","\n","\n"," startdates = []\n"," enddates = []\n","\n"," for date in syn_sleeps['date']:\n"," sleep_start = np.random.randint(20, 27)\n"," sleep_time = np.random.randint(4, 9)\n","\n"," startdate = datetime.strptime(date, '%Y-%m-%d') + timedelta(hours=sleep_start + 7)\n","\n"," enddate = startdate + timedelta(hours=sleep_time)\n","\n"," startdate, enddate = int(startdate.timestamp()), int(enddate.timestamp())\n","\n"," startdates.append(startdate)\n"," enddates.append(enddate)\n","\n"," all_data = []\n","\n"," for i in range(20):\n","\n"," data = {\n"," 'wakeupduration': np.random.randint(0, 3000),\n"," 'wakeupcount': np.random.poisson(1),\n"," 'durationtosleep': np.random.randint(120, 180),\n"," 'durationtowakeup': np.random.randint(0, 700),\n"," 'total_timeinbed': np.random.randint(10000, 50000),\n"," 'total_sleep_time': np.random.randint(10000, 50000),\n"," 'sleep_efficiency': np.random.rand() * .1 + .9,\n"," 'sleep_latency': np.random.randint(120, 130),\n"," 'wakeup_latency': np.random.randint(0, 800),\n"," 'waso': np.random.randint(0, 4000),\n"," 'nb_rem_episodes': 0,\n"," 'out_of_bed_count': 0,\n"," 'lightsleepduration': np.random.randint(6000, 35000),\n"," 'deepsleepduration': np.random.randint(3000, 17000),\n"," 'hr_average': np.random.randint(55, 65),\n"," 'hr_min': np.random.randint(40, 60),\n"," 'hr_max': np.random.randint(70, 120),\n"," 'sleep_score': np.random.randint(30, 80)\n","\n"," }\n","\n"," all_data.append(data)\n","\n"," syn_sleeps['startdate'] = startdates\n"," syn_sleeps['enddate'] = enddates\n","\n"," syn_sleeps['data'] = all_data\n","\n"," syn_sleeps['created'] = enddates\n"," syn_sleeps['modified'] = enddates\n","\n"," return syn_sleeps\n","\n","from tqdm.notebook import tqdm\n","import hashlib\n","\n","def create_syn_hr(syn_sleeps):\n"," start_day = datetime.strptime('2022-05-20', '%Y-%m-%d')\n","\n"," hour_usage = [0.8] * 3 + [0.9] * 7 + [1.0] * 10 + [0.9] * 4\n","\n"," datetimes = []\n","\n"," for day_offset in tqdm(range(20)):\n"," for hour_offset in range(24):\n"," for minute_offset in range(0, 60, 10):\n"," day = start_day + timedelta(days=day_offset)\n"," hour = day + timedelta(hours=hour_offset)\n"," minute = hour + timedelta(minutes=minute_offset)\n","\n"," if np.random.uniform(0, 1) < hour_usage[hour_offset]:\n"," datetimes.append(minute)\n","\n"," hr_measurements = (np.random.randn(len(datetimes)) * 5 + 90).astype('int')\n","\n"," timestamps = np.array([dt.timestamp() for dt in datetimes])\n","\n"," for i, (startdate, enddate) in tqdm(enumerate(zip(syn_sleeps.startdate, syn_sleeps.enddate))):\n"," idxes = np.where(np.logical_and(timestamps > startdate, timestamps < enddate))[0]\n"," duration = (enddate - startdate) / 3600\n"," avg_hr = -5/7 * duration + 64.1428571429\n","\n"," hr_measurements[idxes] = (np.random.randn(idxes.shape[0]) + avg_hr).astype('int')\n","\n"," syn_hr = pd.DataFrame()\n"," syn_hr['datetime'] = datetimes\n"," syn_hr['heart_rate'] = hr_measurements\n","\n"," syn_hr['model'] = 'ScanWatch'\n"," syn_hr['model_id'] = 93\n"," syn_hr['deviceid'] = hashlib.md5().hexdigest()\n","\n"," num_garbage = 1000\n","\n"," timestamps_garbage = np.random.uniform((start_day - timedelta(days=100)).timestamp(), start_day.timestamp(), size=num_garbage)\n","\n"," garbage_df = pd.DataFrame()\n"," garbage_df['datetime'] = [datetime.fromtimestamp(int(ts)) for ts in timestamps_garbage]\n"," garbage_df['heart_rate'] = (np.random.randn(num_garbage) * 5 + 90).astype('int')\n","\n"," garbage_df['model'] = None\n"," garbage_df['model_id'] = 1059\n"," garbage_df['deviceid'] = None\n","\n","\n"," syn_hr = pd.concat((garbage_df, syn_hr), ignore_index=True)\n","\n"," return syn_hr\n","\n","#########################################\n","# real code below, synthetic code above #\n","#########################################\n","\n","num_to_description = {1: 'Weight (kg)',\n"," 4: 'Height (meter)',\n"," 5: 'Fat Free Mass (kg)',\n"," 6: 'Fat Ratio (%)',\n"," 8: 'Fat Mass Weight (kg)',\n"," 9: 'Diastolic Blood Pressure (mmHg)',\n"," 10: 'Systolic Blood Pressure (mmHg)',\n"," 11: 'Heart Pulse (bpm) - only for BPM and scale devices',\n"," 12: 'Temperature (celsius)',\n"," 54: 'SP02 (%)',\n"," 71: 'Body Temperature (celsius)',\n"," 73: 'Skin Temperature (celsius)',\n"," 76: 'Muscle Mass (kg)',\n"," 77: 'Hydration (kg)',\n"," 88: 'Bone Mass (kg)',\n"," 91: 'Pulse Wave Velocity (m/s)',\n"," 123: 'VO2 max is a numerical measurement of your body’s ability to consume oxygen (ml/min/kg).',\n"," 135: 'QRS interval duration based on ECG signal',\n"," 136: 'PR interval duration based on ECG signal',\n"," 137: 'QT interval duration based on ECG signal',\n"," 138: 'Corrected QT interval duration based on ECG signal',\n"," 139: 'Atrial fibrillation result from PPG'}\n","\n","NUM_RETRIES = 3\n","\n","def fetch_all_wrapper(endpoint_url, data, headers, arr_key, parse_data=lambda x: x):\n"," # wrapper around public API that retrieves arbitrarily large # of\n"," # records, since there is a restriction of # of records per API response\n"," # NOTES:\n"," # out['body'][arr_key] is concatenated across several requests\n"," # parse_data is a function that parses the returned array\n","\n"," cur_offset = 0\n"," arr_complete = None\n","\n"," arr = None\n","\n"," while True:\n"," # endpoint can be flaky if the response payload is extremely large,\n"," # so retry at most NUM_RETRIES times\n"," for i in range(NUM_RETRIES):\n"," data_args = {\n"," **data,\n"," 'offset': cur_offset\n"," }\n","\n"," out = requests.post(endpoint_url, data=data_args, headers=headers)\n","\n"," out = json.loads(out.text)\n","\n"," if out['status'] == 401:\n"," raise Exception(f'request response is {out} for request {data_args} to endpoint {endpoint_url}, headers {headers}')\n","\n"," try:\n"," arr = parse_data(out['body'][arr_key])\n"," break\n"," except KeyError:\n"," if 'body' in out.keys():\n"," raise Exception(f'got key {arr_key}, expected one of {out[\"body\"].keys()}')\n"," elif out['status'] == 2555:\n"," # when the payload is too large, this is the status code\n"," continue\n"," else:\n"," raise Exception(f'request response is {out} for request {data_args} to endpoint {endpoint_url}, headers {headers}')\n","\n"," # for example, https://developer.withings.com/api-reference/#operation/measurev2-getactivity\n"," # vs. https://developer.withings.com/api-reference/#operation/measure-getmeas\n","\n"," if arr is not None:\n"," if type(arr) == type({}):\n"," if arr_complete is None:\n"," arr_complete = dict()\n","\n"," arr_complete.update(arr)\n","\n"," elif type(arr) == type([]):\n"," if arr_complete is None:\n"," arr_complete = []\n","\n"," arr_complete += arr\n","\n"," # continue if there's still more to get\n"," if 'more' in out['body'].keys() and out['body']['more'] == 1:\n"," cur_offset = out['body']['offset']\n"," else:\n"," break\n"," else:\n"," break\n","\n"," # replace with concatenated version\n"," if arr_complete is not None:\n"," out['body'][arr_key] = arr_complete\n","\n"," return out\n","\n","def fetch_all_heart_rate(start='2020-03-10', end='2022-05-28'):\n"," # get all dates heart rate was collected for\n"," out = fetch_all_wrapper('https://wbsapi.withings.net/v2/measure', {\n"," 'action': 'getactivity',\n"," 'startdateymd': start,\n"," 'enddateymd': end,\n"," 'data_fields': 'hr_average'\n"," }, {'Authorization': f'Bearer {access_token}'},\n"," arr_key='activities')\n","\n"," dates = [act['date'] for act in out['body']['activities']]\n","\n"," # now for each date get the heart rate data and store as list of dicts\n"," dict_list = []\n"," for date in tqdm(dates):\n"," out = fetch_all_wrapper('https://wbsapi.withings.net/v2/measure', {\n"," 'action': 'getintradayactivity',\n"," 'startdate': int(datetime.strptime(date, '%Y-%m-%d').timestamp()),\n"," 'enddate': int(datetime.strptime(date, '%Y-%m-%d').timestamp()) + 24 * 3600,\n"," 'data_fields': 'heart_rate'\n"," }, {'Authorization': f'Bearer {access_token}'},\n"," arr_key='series')\n","\n","\n"," if 'body' in out.keys():\n"," dict_list += [{'datetime': datetime.fromtimestamp(int(k)), **v} for k,v in out['body']['series'].items()]\n","\n"," df = pd.DataFrame.from_dict(dict_list)\n","\n"," return df\n","\n","\n","def fetch_all_sleeps(start='2020-03-10', end='2022-05-28'):\n"," out = fetch_all_wrapper('https://wbsapi.withings.net/v2/sleep', {\n"," 'action': 'getsummary',\n"," 'startdateymd': '2020-07-01',\n"," 'enddateymd': '2022-07-01',\n"," 'data_fields': 'nb_rem_episodes,sleep_efficiency,sleep_latency,total_sleep_time,total_timeinbed,wakeup_latency,waso,asleepduration,deepsleepduration,durationtosleep,durationtowakeup,hr_average,hr_max,hr_min,lightsleepduration,night_events,out_of_bed_count,remsleepduration,rr_average,rr_max,rr_min,sleep_score,snoring,snoringepisodecount,wakeupcount,wakeupduration'\n"," }, {'Authorization': f'Bearer {access_token}'}, arr_key='series')\n","\n"," df = pd.DataFrame.from_dict(out['body']['series'])\n","\n"," return df\n","\n","SEED = 3\n","\n","np.random.seed(SEED)"],"metadata":{"id":"oIhFUppKKwBC","cellView":"form"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["synthetic = True\n","\n","if synthetic:\n"," sleeps_df = create_synthetic_sleeps_df()\n"," hr_df = create_syn_hr(sleeps_df)\n","else:\n"," hr_df = fetch_all_heart_rate(start=start_date, end=end_date)\n"," sleeps_df = fetch_all_sleeps(start=start_date, end=end_date)"],"metadata":{"id":"b22VGbw0KIms","colab":{"base_uri":"https://localhost:8080/","height":81,"referenced_widgets":["930b7e70df9a42c4b282f5b8ecb92bc5","911bf58e0a1d4e2fb57f46e6b0668a3f","1711ac32959545bf9df96ba076057a76","276f65ccf4874dc48604504e8ef10e99","9e44355bf98348fbb850cd3b1e0f92aa","99386ad72c284b6289367c4b3cd99bc8","9ea4d29262ad4e09966001dc679c6479","44e09ccc57e44949b5325b075c40cb87","80df3276aba74a978ba14fa95ef8d36a","5b14f78c29e04907985b82334a96c1db","160406f93e98471bae7e2a9d3fe9c65f","31ef4e0b99bf4e11bea3bf8a6a8582cd","472153722daf42fbbd0be4ce62c9a12e","83b92c59fdda4e98bb69eeb13e020332","67ba32fce1294fa1b6bcd214c899dc7d","73952c4d26d749348fa3bcf45825fe8f","0a40a9cbff56441aa4ee13c7b236d950","c11e9961b91b4f569afe85f750cbca7f","a62f3e0e90c542ad808f739770e620b0","b289b8b49c8546a5a0d1cbdd25addbb4","c357242ffed449f3a11ca89c27a1c51d","fb8714e423984166b645789160bd52cb"]},"executionInfo":{"status":"ok","timestamp":1663815668059,"user_tz":240,"elapsed":319,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"00d75cbb-d717-438c-f545-a73b8b32c35d"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/20 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
datetimeheart_ratemodelmodel_iddeviceid
02022-04-09 10:14:4588None1059None
12022-03-29 12:15:3186None1059None
22022-03-24 01:02:1589None1059None
32022-03-01 23:47:0288None1059None
42022-04-30 03:46:4287None1059None
..................
36722022-06-08 22:30:0087ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36732022-06-08 22:40:0089ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36742022-06-08 23:00:0096ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36752022-06-08 23:10:0090ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36762022-06-08 23:30:0089ScanWatch93d41d8cd98f00b204e9800998ecf8427e
\n","

3677 rows × 5 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":5}]},{"cell_type":"code","source":["sleeps_df"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"XsgGv4mK-L-T","executionInfo":{"status":"ok","timestamp":1663815668295,"user_tz":240,"elapsed":8,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"d739e536-ce73-4e4c-9177-0a89fa9ccc62"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" id timezone model model_id \\\n","0 83957610 America/Los_Angeles 16 93 \n","1 35325592 America/Los_Angeles 16 93 \n","2 88681721 America/Los_Angeles 16 93 \n","3 41466808 America/Los_Angeles 16 93 \n","4 46504192 America/Los_Angeles 16 93 \n","5 29254421 America/Los_Angeles 16 93 \n","6 77081597 America/Los_Angeles 16 93 \n","7 91453130 America/Los_Angeles 16 93 \n","8 80522091 America/Los_Angeles 16 93 \n","9 2513913 America/Los_Angeles 16 93 \n","10 40289961 America/Los_Angeles 16 93 \n","11 84795018 America/Los_Angeles 16 93 \n","12 86832247 America/Los_Angeles 16 93 \n","13 14215648 America/Los_Angeles 16 93 \n","14 31454868 America/Los_Angeles 16 93 \n","15 87489117 America/Los_Angeles 16 93 \n","16 83035559 America/Los_Angeles 16 93 \n","17 67312014 America/Los_Angeles 16 93 \n","18 43615706 America/Los_Angeles 16 93 \n","19 85920406 America/Los_Angeles 16 93 \n","\n"," hash_deviceid date startdate enddate \\\n","0 d41d8cd98f00b204e9800998ecf8427e 2022-05-17 1652850000 1652871600 \n","1 d41d8cd98f00b204e9800998ecf8427e 2022-05-18 1652943600 1652961600 \n","2 d41d8cd98f00b204e9800998ecf8427e 2022-05-19 1653026400 1653048000 \n","3 d41d8cd98f00b204e9800998ecf8427e 2022-05-20 1653120000 1653134400 \n","4 d41d8cd98f00b204e9800998ecf8427e 2022-05-21 1653210000 1653228000 \n","5 d41d8cd98f00b204e9800998ecf8427e 2022-05-22 1653292800 1653314400 \n","6 d41d8cd98f00b204e9800998ecf8427e 2022-05-23 1653361200 1653386400 \n","7 d41d8cd98f00b204e9800998ecf8427e 2022-05-24 1653469200 1653483600 \n","8 d41d8cd98f00b204e9800998ecf8427e 2022-05-25 1653544800 1653562800 \n","9 d41d8cd98f00b204e9800998ecf8427e 2022-05-26 1653631200 1653645600 \n","10 d41d8cd98f00b204e9800998ecf8427e 2022-05-27 1653724800 1653753600 \n","11 d41d8cd98f00b204e9800998ecf8427e 2022-05-28 1653814800 1653832800 \n","12 d41d8cd98f00b204e9800998ecf8427e 2022-05-29 1653897600 1653926400 \n","13 d41d8cd98f00b204e9800998ecf8427e 2022-05-30 1653980400 1653994800 \n","14 d41d8cd98f00b204e9800998ecf8427e 2022-05-31 1654052400 1654070400 \n","15 d41d8cd98f00b204e9800998ecf8427e 2022-06-01 1654146000 1654174800 \n","16 d41d8cd98f00b204e9800998ecf8427e 2022-06-02 1654243200 1654257600 \n","17 d41d8cd98f00b204e9800998ecf8427e 2022-06-03 1654311600 1654329600 \n","18 d41d8cd98f00b204e9800998ecf8427e 2022-06-04 1654401600 1654419600 \n","19 d41d8cd98f00b204e9800998ecf8427e 2022-06-05 1654502400 1654524000 \n","\n"," data created modified \n","0 {'wakeupduration': 2779, 'wakeupcount': 2, 'du... 1652871600 1652871600 \n","1 {'wakeupduration': 858, 'wakeupcount': 1, 'dur... 1652961600 1652961600 \n","2 {'wakeupduration': 1519, 'wakeupcount': 0, 'du... 1653048000 1653048000 \n","3 {'wakeupduration': 1202, 'wakeupcount': 0, 'du... 1653134400 1653134400 \n","4 {'wakeupduration': 939, 'wakeupcount': 1, 'dur... 1653228000 1653228000 \n","5 {'wakeupduration': 489, 'wakeupcount': 0, 'dur... 1653314400 1653314400 \n","6 {'wakeupduration': 2876, 'wakeupcount': 0, 'du... 1653386400 1653386400 \n","7 {'wakeupduration': 1023, 'wakeupcount': 0, 'du... 1653483600 1653483600 \n","8 {'wakeupduration': 2442, 'wakeupcount': 0, 'du... 1653562800 1653562800 \n","9 {'wakeupduration': 865, 'wakeupcount': 1, 'dur... 1653645600 1653645600 \n","10 {'wakeupduration': 2142, 'wakeupcount': 1, 'du... 1653753600 1653753600 \n","11 {'wakeupduration': 2484, 'wakeupcount': 0, 'du... 1653832800 1653832800 \n","12 {'wakeupduration': 2682, 'wakeupcount': 1, 'du... 1653926400 1653926400 \n","13 {'wakeupduration': 2796, 'wakeupcount': 1, 'du... 1653994800 1653994800 \n","14 {'wakeupduration': 2892, 'wakeupcount': 0, 'du... 1654070400 1654070400 \n","15 {'wakeupduration': 1298, 'wakeupcount': 0, 'du... 1654174800 1654174800 \n","16 {'wakeupduration': 110, 'wakeupcount': 0, 'dur... 1654257600 1654257600 \n","17 {'wakeupduration': 2373, 'wakeupcount': 0, 'du... 1654329600 1654329600 \n","18 {'wakeupduration': 2688, 'wakeupcount': 2, 'du... 1654419600 1654419600 \n","19 {'wakeupduration': 2813, 'wakeupcount': 1, 'du... 1654524000 1654524000 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
idtimezonemodelmodel_idhash_deviceiddatestartdateenddatedatacreatedmodified
083957610America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-1716528500001652871600{'wakeupduration': 2779, 'wakeupcount': 2, 'du...16528716001652871600
135325592America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-1816529436001652961600{'wakeupduration': 858, 'wakeupcount': 1, 'dur...16529616001652961600
288681721America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-1916530264001653048000{'wakeupduration': 1519, 'wakeupcount': 0, 'du...16530480001653048000
341466808America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2016531200001653134400{'wakeupduration': 1202, 'wakeupcount': 0, 'du...16531344001653134400
446504192America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2116532100001653228000{'wakeupduration': 939, 'wakeupcount': 1, 'dur...16532280001653228000
529254421America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2216532928001653314400{'wakeupduration': 489, 'wakeupcount': 0, 'dur...16533144001653314400
677081597America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2316533612001653386400{'wakeupduration': 2876, 'wakeupcount': 0, 'du...16533864001653386400
791453130America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2416534692001653483600{'wakeupduration': 1023, 'wakeupcount': 0, 'du...16534836001653483600
880522091America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2516535448001653562800{'wakeupduration': 2442, 'wakeupcount': 0, 'du...16535628001653562800
92513913America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2616536312001653645600{'wakeupduration': 865, 'wakeupcount': 1, 'dur...16536456001653645600
1040289961America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2716537248001653753600{'wakeupduration': 2142, 'wakeupcount': 1, 'du...16537536001653753600
1184795018America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2816538148001653832800{'wakeupduration': 2484, 'wakeupcount': 0, 'du...16538328001653832800
1286832247America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-2916538976001653926400{'wakeupduration': 2682, 'wakeupcount': 1, 'du...16539264001653926400
1314215648America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-3016539804001653994800{'wakeupduration': 2796, 'wakeupcount': 1, 'du...16539948001653994800
1431454868America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-05-3116540524001654070400{'wakeupduration': 2892, 'wakeupcount': 0, 'du...16540704001654070400
1587489117America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-06-0116541460001654174800{'wakeupduration': 1298, 'wakeupcount': 0, 'du...16541748001654174800
1683035559America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-06-0216542432001654257600{'wakeupduration': 110, 'wakeupcount': 0, 'dur...16542576001654257600
1767312014America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-06-0316543116001654329600{'wakeupduration': 2373, 'wakeupcount': 0, 'du...16543296001654329600
1843615706America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-06-0416544016001654419600{'wakeupduration': 2688, 'wakeupcount': 2, 'du...16544196001654419600
1985920406America/Los_Angeles1693d41d8cd98f00b204e9800998ecf8427e2022-06-0516545024001654524000{'wakeupduration': 2813, 'wakeupcount': 1, 'du...16545240001654524000
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":6}]},{"cell_type":"markdown","source":["Now that we've got dataframes with data, we can see the data they have. In particular, we have a ton of measurements from a non-ScanWatch device, so we'll get rid of those. Note that it is theoretically possible to have another ScanWatch device (and maybe the model name will be `ScanWatch2`, or something different), but we were unable to test this, so if you switch between devices you might want to be careful here."],"metadata":{"id":"CyvkzE-mSfuR"}},{"cell_type":"code","source":["hr_df = hr_df.drop(np.where(hr_df.model != 'ScanWatch')[0])\n","hr_df"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":424},"id":"SNpMhIa7u4Cj","executionInfo":{"status":"ok","timestamp":1663815668295,"user_tz":240,"elapsed":7,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"11dd117d-f217-4e8c-cb76-12689a935896"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" datetime heart_rate model model_id \\\n","1000 2022-05-20 00:00:00 82 ScanWatch 93 \n","1001 2022-05-20 00:10:00 84 ScanWatch 93 \n","1002 2022-05-20 00:20:00 87 ScanWatch 93 \n","1003 2022-05-20 00:40:00 92 ScanWatch 93 \n","1004 2022-05-20 00:50:00 95 ScanWatch 93 \n","... ... ... ... ... \n","3672 2022-06-08 22:30:00 87 ScanWatch 93 \n","3673 2022-06-08 22:40:00 89 ScanWatch 93 \n","3674 2022-06-08 23:00:00 96 ScanWatch 93 \n","3675 2022-06-08 23:10:00 90 ScanWatch 93 \n","3676 2022-06-08 23:30:00 89 ScanWatch 93 \n","\n"," deviceid \n","1000 d41d8cd98f00b204e9800998ecf8427e \n","1001 d41d8cd98f00b204e9800998ecf8427e \n","1002 d41d8cd98f00b204e9800998ecf8427e \n","1003 d41d8cd98f00b204e9800998ecf8427e \n","1004 d41d8cd98f00b204e9800998ecf8427e \n","... ... \n","3672 d41d8cd98f00b204e9800998ecf8427e \n","3673 d41d8cd98f00b204e9800998ecf8427e \n","3674 d41d8cd98f00b204e9800998ecf8427e \n","3675 d41d8cd98f00b204e9800998ecf8427e \n","3676 d41d8cd98f00b204e9800998ecf8427e \n","\n","[2677 rows x 5 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
datetimeheart_ratemodelmodel_iddeviceid
10002022-05-20 00:00:0082ScanWatch93d41d8cd98f00b204e9800998ecf8427e
10012022-05-20 00:10:0084ScanWatch93d41d8cd98f00b204e9800998ecf8427e
10022022-05-20 00:20:0087ScanWatch93d41d8cd98f00b204e9800998ecf8427e
10032022-05-20 00:40:0092ScanWatch93d41d8cd98f00b204e9800998ecf8427e
10042022-05-20 00:50:0095ScanWatch93d41d8cd98f00b204e9800998ecf8427e
..................
36722022-06-08 22:30:0087ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36732022-06-08 22:40:0089ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36742022-06-08 23:00:0096ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36752022-06-08 23:10:0090ScanWatch93d41d8cd98f00b204e9800998ecf8427e
36762022-06-08 23:30:0089ScanWatch93d41d8cd98f00b204e9800998ecf8427e
\n","

2677 rows × 5 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":7}]},{"cell_type":"markdown","source":["And now we have just 2.6k rows!"],"metadata":{"id":"oa_socCEve3m"}},{"cell_type":"markdown","source":["# 4. Data Visualization\n","\n","In this section, you'll expect to see a couple plots from the Health Mate mobile app reproduced.\n","\n","# 4.1: Heart rate single day\n","First, we'll reproduce the below plot you can find in the Health Mate mobile app that displays heart rate data over the course of a single day. This plot is super helpful because it allows you to view the heart rate signal at a very granular level, and see how it varies over the course of a few hours.\n","\n","\n","\n","*Above is a plot taken from the official Withings mobile app.*"],"metadata":{"id":"V-9IFYQAk9JZ"}},{"cell_type":"code","source":["#@title Enter date\n","date = \"2022-05-25\" #@param {type:\"date\"}\n","from matplotlib.ticker import FormatStrFormatter\n","import matplotlib.dates as dates\n","import matplotlib.transforms\n","\n","from dateutil import tz\n","from scipy.interpolate import make_interp_spline\n","from datetime import timedelta\n","\n","# measurements are taken every 10 minutes, displayed on app every 30\n","HEART_RATE_RECORDING_LENGTH = 30 * 60\n","\n","with plt.style.context('dark_background'):\n"," # get the start and end times as timestamps by using the datetime library\n"," start_ts = datetime.strptime(date + ' 00:00:00-07:00', '%Y-%m-%d %H:%M:%S%z').timestamp()\n"," #end_ts = datetime.strptime(date + ' 23:59:59-07:00', '%Y-%m-%d %H:%M:%S%z').timestamp()\n"," end_ts = start_ts + 24 * 3600 + 30 * 60 # 00:30 the next day\n"," #end_ts = datetime.strptime('2022-05-25 00:30:00-07:00', '%Y-%m-%d %H:%M:%S%z').timestamp()\n","\n"," # now find the indices in hr_df.timestamp that match as closely as possible\n"," start_idx = np.argmin(np.abs(hr_df.datetime.apply(lambda x: x.timestamp()) - start_ts))\n"," end_idx = np.argmin(np.abs(hr_df.datetime.apply(lambda x: x.timestamp()) - end_ts))\n","\n"," x = hr_df.datetime.iloc[start_idx:end_idx]\n"," y = hr_df.heart_rate.iloc[start_idx:end_idx]\n","\n"," # make it not as bumpy with gaussian filter. note that this does not reproduce\n"," # the curve exactly, as I'm not sure what smoothing algorithm they used...\n"," y = gaussian_filter(y, sigma=3)\n","\n"," fig = plt.figure(figsize=(18,6), facecolor='black')\n","\n"," x_timestamp = np.array([x_.timestamp() for x_ in x])\n","\n"," # get the gaps. we include [6] as well because when you do np.diff,\n"," # it actually leaves out exactly one element\n"," differences = np.concatenate((np.diff(x_timestamp), [60 * 10]))\n","\n"," # interpret a gap (i.e. when a user takes off the device for some prolonged\n"," # period of time) as any two measurements that are taken more than\n"," # 6 * 2 = 12 seconds apart, to account for minor variations around 6s\n"," gap_idxes = np.where(differences > HEART_RATE_RECORDING_LENGTH * 2)[0]\n","\n"," # get the sleeps\n"," sleep_idxes = []\n"," for lower, upper in zip(sleeps_df.startdate, sleeps_df.enddate):\n"," if lower < start_ts or upper > end_ts:\n"," continue\n"," # get the location in the timestamp array that is closest to `lower`\n"," lower_idx = np.argmin(np.abs((x_timestamp - lower) - 0))\n"," # get the location in the timestamp array that is closest to `upper`\n"," upper_idx = np.argmin(np.abs((x_timestamp - upper) - 0))\n","\n"," sleep_idxes.append((lower_idx, upper_idx))\n","\n"," # first, we just plot the entire thing\n"," plt.plot(x, y, linewidth=3, color='#85a6f7')\n","\n"," # now we overlay sleeps\n"," for sleep_start, sleep_end in sleep_idxes:\n"," plt.plot(x[sleep_start:sleep_end], y[sleep_start:sleep_end], linewidth=3, color='#3E414C')\n","\n"," plt.axvline(x=x.iloc[sleep_start], linestyle='--', linewidth=1.5, color='#2F303A')\n","\n"," plt.axvline(x=x.iloc[sleep_end], linestyle='--', linewidth=1.5, color='#2F303A')\n","\n"," # now we overlay gaps by overlaying with white\n"," for gap_idx in gap_idxes:\n"," plt.plot(x[gap_idx:gap_idx+2], y[gap_idx:gap_idx+2], linewidth=5, color='black')\n","\n"," plt.ylim(40, 180)\n"," plt.xlim(x.iloc[0], x.iloc[-1] - pd.Timedelta(minutes=30))\n","\n"," datetimes = [\n"," datetime.strptime(date + ' 00:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 04:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 08:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 12:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 16:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 20:00:00-0700', '%Y-%m-%d %H:%M:%S%z'),\n"," datetime.strptime(date + ' 00:00:00-0700', '%Y-%m-%d %H:%M:%S%z') + timedelta(days=1)\n"," ]\n","\n"," plt.xticks(ticks=datetimes, labels=['12AM', '4AM', '8AM', '12PM', '4PM', '8PM', '12AM'])\n","\n"," # get the y-axis ticks to appear on the right\n"," plt.gca().yaxis.tick_right()\n","\n"," #plt.gca().grid(axis='x', color='#2F303A')\n"," plt.gca().grid(axis='y', color='#2F303A', which='major')\n","\n"," # hide x-axis and make the xtick labels 16 size\n"," plt.tick_params(\n"," axis='x', # changes apply to the x-axis\n"," which='both', # both major and minor ticks are affected\n"," bottom=False, # ticks along the bottom edge are off\n"," labelsize=16,\n"," labelcolor='silver'\n"," )\n","\n"," # hide y-axis and make the ytick labels 16 size\n"," plt.tick_params(\n"," axis='y', # changes apply to the x-axis\n"," which='both', # both major and minor ticks are affected\n"," right=False, # ticks along the bottom edge are off\n"," labelsize=16,\n"," labelcolor='silver'\n"," )\n","\n"," # add offset to y-axis tick labels to make them appear above gridlines\n"," # instead of to the side\n"," # https://stackoverflow.com/questions/28615887/how-to-move-a-tick-label-in-matplotlib\n"," dx = -50/72.; dy = 15/72. \n"," offset = matplotlib.transforms.ScaledTranslation(dx, dy, fig.dpi_scale_trans)\n"," for label in plt.gca().yaxis.get_majorticklabels():\n"," label.set_transform(label.get_transform() + offset)\n","\n","\n"," title_text = datetime.strftime(datetime.strptime(date, '%Y-%m-%d'), '%A, %B %d')\n","\n"," plt.title(title_text, fontsize=25, pad=40)\n","\n"," # turn off all borders\n"," plt.gca().spines['left'].set_visible(False)\n"," plt.gca().spines['right'].set_visible(False)\n"," plt.gca().spines['top'].set_visible(False)\n"," plt.gca().spines['bottom'].set_visible(False)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":438},"executionInfo":{"status":"ok","timestamp":1663815668576,"user_tz":240,"elapsed":285,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"a3729da2-c7e4-40b0-bff3-76886d3e13c6","cellView":"form","id":"3pQu_Mor9CHX"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAABCgAAAGlCAYAAAA4fsddAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxV1bn/8e/JDGQiIRAIQ0KAEAlVUAiCNkDBCUQJWsEREVGrtlRbldqf073YVkSuva1jRcXKrSJSEQWNMkhBgiBzQKaEMIVAAhkIGVm/P+I5cjgn4YQMOzl83q/X85Lsvdbezz5ZRPaTtde2STICAAAAAACwkI/VCQAAAAAAAFCgAAAAAAAAlqNAAQAAAAAALEeBAgAAAAAAWI4CBQAAAAAAsBwFCgAAAAAAYDkKFAAAuGGMkTFGKSkpVqfSJJYtWyZjjJ5++mmrUwEAABcoChQAgAYVGhqqiooKGWP06KOP1tguISHBUQTIzMys9ZiLFy+WMUarV69u6HThxexFF2OMKisr1alTp1rbBwQE6NixYx6Py+bEx8dHw4cP14wZM7Rq1SodO3ZM5eXlys/P16pVqzRt2jSFh4fXegz7ddcW7733XhNdEQDgQkSBAgDQoAoLC7VhwwZJ0tChQ2tsN2zYMMefY2Nj1a1bN7ftfH19dcUVV0iSli5d2nCJ4oLi6+urO++8s9Y2N954oyIjI5soo4b12muv6euvv9bvfvc7DR48WOHh4SouLlbbtm01ePBgPf/889q+fbuSk5PPeaz8/Hzl5OS4jRMnTjTB1QAALlQUKAAADW7ZsmWSpCuvvFI+Pu7/V2MvXhw+fNjp67MNGDBAwcHBTscF6sI+E2LixIm1trv77rud2rck/v7+OnLkiGbMmKHLL79cQUFBioiIUHBwsO655x4dO3ZM0dHR+uyzz9SuXbtaj5WamqqOHTu6jYcffriJrggAcCGiQAEAaHD2QkJYWJj69+/vto19bYcZM2ZIcp5RcSb79rKyMq1ataqhU8UF4JtvvlFmZqYSEhI0ZMgQt21iYmI0cuRIFRUV6aOPPmriDOvv1VdfVWxsrB577DGtWbNGlZWVkqSTJ09q9uzZuv766yVJkZGRuu+++6xMFQCAGlGgAAA0uJUrV6qiokKS+5kRvXv3VnR0tHbs2KF//etfklTjYpT2/unp6SotLXXaFxwcrMcff1yrV69WXl6eSktLlZ2drf/7v//ToEGDas0xPDxcL7zwgnbv3q1Tp07p0KFD+vDDD2ssqNilpKQ4nseXpPj4eL311lvKzs5WaWmp9u/frzfeeOOc6x34+/vrgQce0NKlS3X06FGVlZXp8OHD+ve//61rrrmmxn5BQUF69NFHtXr1auXn56u8vFy5ubnatm2b3nnnHaWmprrt5+Pjo4ceekjr169XcXGx8vLytGzZMo0bN67WPCU5bnwXL16sH374QcXFxSoqKtK2bds0a9YsdenSxaVPeHi4Tp48KWOMbr755lqP/9xzz8kYoz179pwzl/NhjNE777wj6adZEmebOHGifH19NW/ePJ08ebLGY9lsNg0fPlwvv/yyvv32W+3fv19lZWU6duyYli9frvvuu09+fn4u/e677z4ZY5SXl6fAwMBaj5+ZmVnnBUvXrl3r8vfjTGvWrNG2bdskVc9KAgCguTIEQRAE0dCxevVqY4wxixYtctl3//33G2OMee2114wks3PnTmOMMbGxsU7t/Pz8TFFRkTHGmGeeecZp38UXX2yys7ONXUVFhSkoKHB8XVVVZZ544gm3uXXr1s1kZmY62paWlpoTJ044/nz99dc79qWkpDj1TUlJcewbOnSoKSwsNMYYU1BQYMrLyx37Dhw4YDp16uT2/F27djVbtmxxyvX48ePmTK+88opLv+DgYLNhwwanfvn5+U7nzczMdOkXEBBgFi9e7GhTWVlp8vPzTVVVlTHGmD/96U9m2bJlxhhjnn76aZf+9n32z+fo0aOmsrLSse348eNmyJAhLv3efvttY4wxaWlpNY4THx8fs3//fmOMMdOmTWvQMWjP++233zZdu3Y1VVVVprCw0LRu3dql7a5du4wxxlxxxRXm6aefrvGz7Natm9P3qbCw0OV7t2LFChMUFOTyvbOPldtuu63GnK+++mpjTPV47ty5c4N+HuvWrTPGGPPpp5+63W939pgnCIIgiCYMyxMgCIIgvDCmT5/uuHH38fFx2vevf/3LGGPM+PHjjSTz5ptvGmOMufvuu53aDR482O1NU3R0tMnJyTHGGPPRRx+Z/v37Gz8/PyPJREVFmWeffdZx037DDTc4HdPHx8esXbvWGGNMXl6euemmm4yvr6+RZBITE82KFStMfn5+jTdrZxYo8vLy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3XDDDbryyislVc96AQCgsVi+EAZBEAThvXHllVc6La5ojDFdunRx23by5MlO7QoKCty+dSA6OtocOHDAGGPMgQMHzO233+70Ro127dqZ1NRU8/HHH5slS5Y49fX19TXr1q0zxhhz7Ngxk5qa6nilY+/evc2yZctMfn6+I+eGXCRTqn6rhX2RxePHj5sHH3zQREREOPaHhYWZa665xrz77rtm69atTn03bNhgXn75ZZOSkmJat27t2N6xY0fz17/+1XHOq666yqnf//zP/xhjjKmsrDRPPPGE47Nq166d+d///V9HLu4WyZw0aZLjuH/84x8d5w0LCzPTpk0zFRUV5ujRo8YYY5YtW1brZzJjxgynxSXPtTjmXXfdVePn6Em4WyTTk6htkcxvvvnGGGPM/v37zbBhw4zNZjOSTJ8+fcwXX3xhTp065Vg09OwFTs8eh4cOHXL6u1GfxTGTk5OdFsSs6Q0zNcWHH35o/vSnP5nk5GQTGBjo2N6pUyfz1FNPOd5Usn//fhMeHn7eeRIEQRDEOcLyBAiCIAgvDn9/f8drDo2p/ZWSPXv2dLqBXbRoUY1te/fubXbs2OFoW1lZaY4dO+byCswvv/zSpW9cXJzjdaPGGHPq1CnHDXppaam5/vrra7wxrm+BQqouKKxevdrRpqqqyuTn55sTJ0445b5z506nfva3XpzZ5+zrnTlzpsv5AgMDzZdfful0M5yXl2eqqqqMMcb86U9/ctzMn12g8PPzMytWrHA6b15enuNNFZ9++qnjbS3nKlDEx8c7zlleXm46dOhQa/vmWKDo37+/02d+6tQpR2GgvLzc3H777Y7vU20FCumnt9wYY8zChQvr9ffs66+/dhzrzDesuIu1a9fW+FkZU/13KS8vz2U8bt++3SQmJjbKzwmCIAiCkHiLBwCgkVVUVGj16tWOr2t7o8auXbt0+PBhx9dnP95xph07duhnP/uZpkyZoi+++ELHjh1TaGiobDabdu3apQ8//FD33nuvfvnLX7r0zczM1CWXXKKZM2dq7969stlsKi0t1bx58zR48GB9+umn53m1njl8+LCuuOIKjR8/Xp988okOHz6s1q1bKyAgQJmZmVq4cKF+85vf6Oc//7lTv/Hjx+upp57SV199pczMTAUEBMjf319ZWVn617/+peHDh+vRRx91OV9ZWZmuvfZa/frXv9aG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\n"},"metadata":{}}]},{"cell_type":"markdown","source":["*Above is a plot we created ourselves!*\n","\n","Cool! Feel free to switch up the dates in the form as well, and see the user's heart rate for any day data has been collected for!\n","\n","## 4.2: Sleeps over the course of a week\n","\n","Now let's try to reproduce the plot below, which shows when and how long the user sleeps every day of the week. This is super cool because we can look at the user's sleeping patterns for an entire week at a glance, instead of having to sift through rows in a dataframe! We can do this by poking deeper into the [Matplotlib architecture](https://www.aosabook.org/en/matplotlib.html) into the Artist layer and directly adding rounded rectangles to the plot.\n","\n","\n","\n","*The above plot is taken directly from the mobile app.*"],"metadata":{"id":"JvSoAF9JntAl"}},{"cell_type":"code","source":["#@title Insert start of week (must be a Monday) and timezone name\n","\n","week_start = \"2022-05-23\" #@param {type:\"date\"}\n","timezone_name = \"America/Los_Angeles\" #@param {type:\"string\"}\n","\n","from matplotlib.ticker import FormatStrFormatter\n","import matplotlib.dates as dates\n","import matplotlib.transforms\n","import matplotlib.patches as patches\n","from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,\n"," AutoMinorLocator)\n","\n","from dateutil import tz\n","from scipy.interpolate import make_interp_spline\n","\n","from datetime import timezone\n","import pytz\n","\n","def timestamp_to_hour_min(timestamp, tz_name='America/Los_Angeles'):\n"," # convert timezone to '%H:%M' in local timezone\n","\n"," local_tz = pytz.timezone(tz_name)\n"," return datetime.fromtimestamp(int(timestamp)).replace(tzinfo=timezone.utc).astimezone(local_tz).strftime('%H:%M')\n","\n","def hour_min_to_vert_pos(hour_min):\n"," num_mins = (int(hour_min.split(':')[0]) * 60 + int(hour_min.split(':')[1]))\n"," vert_dist = (16 * 60 - num_mins) / (16 * 60)\n","\n"," return vert_dist\n","\n","# measurements are taken every 10 minutes, displayed on app every 30\n","HEART_RATE_RECORDING_LENGTH = 30 * 60\n","\n","NUM_DAYS = 7\n","RECT_WIDTH = 0.02\n","RECTS_START = 0.1\n","RECTS_END = 0.9\n","\n","# add on timezone\n","timezone_offset = datetime.now(pytz.timezone(timezone_name)).strftime('%z')\n","week_start = week_start + timezone_offset\n","week_start_ts = datetime.strptime(week_start, '%Y-%m-%d%z').timestamp()\n","\n","with plt.style.context('dark_background'):\n"," fig, ax = plt.subplots(figsize=(18,6), facecolor='black')\n","\n"," for day_num in range(NUM_DAYS):\n"," rect_center_pos = RECTS_START + day_num / (NUM_DAYS-1) * (RECTS_END - RECTS_START)\n"," # zorder to ensure it is drawn behind rect\n"," plt.axvline(x=rect_center_pos, linestyle='--', linewidth=1.5, color='#2F303A', zorder=0)\n","\n"," # rounded rectangles\n"," # https://stackoverflow.com/questions/58425392/bar-chart-with-rounded-corners-in-matplotlib\n","\n"," # subtract 4 hours because we want to capture sleeps that start from 8pm\n"," # and onward\n"," day_ts = week_start_ts + day_num * 24 * 3600 - 4 * 3600\n","\n"," row = sleeps_df[np.logical_and(sleeps_df.startdate >= day_ts, sleeps_df.enddate <= day_ts + 24 * 3600)]\n","\n"," # get the one with the longest sleep, this is how withings does it\n"," # source: https://support.withings.com/hc/en-us/community/posts/360026177173-Naps-don-t-count-for-sleep-tracking\n"," try:\n"," row = row.iloc[np.argmax(row.enddate - row.startdate)]\n"," except ValueError:\n"," continue\n","\n"," # do a shift by 4 hours to account for difference b/w\n"," # 8PM and 12AM, a bit of a hack\n"," row.startdate += 4 * 3600\n"," row.enddate += 4 * 3600\n","\n"," start, end = timestamp_to_hour_min(row.startdate, tz_name=timezone_name), timestamp_to_hour_min(row.enddate, tz_name=timezone_name)\n","\n"," top_pos, bottom_pos = hour_min_to_vert_pos(start), hour_min_to_vert_pos(end)\n","\n"," if row.data['sleep_score'] < 50:\n"," color = '#ff7455'\n"," elif row.data['sleep_score'] < 75:\n"," color = '#FEDF00'\n"," else:\n"," color = '#24ffa4'\n","\n"," rect = patches.FancyBboxPatch((rect_center_pos - RECT_WIDTH / 2, bottom_pos),\n"," RECT_WIDTH, top_pos - bottom_pos,\n"," boxstyle=\"round,pad=-0.0040,rounding_size=0.015\",\n"," linewidth=3, fc=color, ec='none')\n","\n"," ax.add_patch(rect)\n","\n"," plt.xticks(ticks=np.linspace(0.1,0.9,NUM_DAYS), labels=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'])\n"," plt.yticks(ticks=np.linspace(0, 1, 5), labels=['12PM', '8AM', '4AM', '12AM', '8PM'])\n","\n"," # get the y-axis ticks to appear on the right\n"," plt.gca().yaxis.tick_right()\n","\n"," plt.gca().yaxis.set_minor_locator(AutoMinorLocator(n=2))\n"," plt.gca().grid(axis='y', color='#2F303A', which='both')\n","\n"," # hide x-axis and make the xtick labels 16 size\n"," plt.tick_params(\n"," axis='x', # changes apply to the x-axis\n"," which='both', # both major and minor ticks are affected\n"," bottom=False, # ticks along the bottom edge are off\n"," labelsize=16,\n"," labelcolor='silver'\n"," )\n","\n"," # hide y-axis and make the ytick labels 16 size\n"," plt.tick_params(\n"," axis='y', # changes apply to the x-axis\n"," which='both', # both major and minor ticks are affected\n"," right=False, # ticks along the bottom edge are off\n"," labelsize=16,\n"," labelcolor='silver'\n"," )\n","\n"," # add offset to y-axis tick labels to make them appear above gridlines\n"," # instead of to the side\n"," # https://stackoverflow.com/questions/28615887/how-to-move-a-tick-label-in-matplotlib\n"," dx = -50/72.; dy = 15/72. \n"," offset = matplotlib.transforms.ScaledTranslation(dx, dy, fig.dpi_scale_trans)\n"," for label in plt.gca().yaxis.get_majorticklabels():\n"," label.set_transform(label.get_transform() + offset)\n","\n"," start_day_fmted = datetime.strftime(datetime.strptime(week_start, '%Y-%m-%d%z'), '%b %d')\n"," end_day_fmted = datetime.strftime(datetime.strptime(week_start, '%Y-%m-%d%z') + timedelta(days=6), '%b %d')\n"," plt.title(f'{start_day_fmted} - {end_day_fmted}', size=20, pad=40)\n","\n"," plt.gca().set_axisbelow(True)\n"," # turn off all borders\n"," plt.gca().spines['left'].set_visible(False)\n"," plt.gca().spines['right'].set_visible(False)\n"," plt.gca().spines['top'].set_visible(False)\n"," plt.gca().spines['bottom'].set_visible(False)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":434},"id":"rQvaa5iHyNpT","executionInfo":{"status":"ok","timestamp":1663815669098,"user_tz":240,"elapsed":527,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"3cb2fd20-5828-4408-b32d-3d97b863e20a","cellView":"form"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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2bJli2loaGh3D39nxsqVK40xxpx55pmnLPcMBoPBYJzo4Or9AABHqqio0Pz58zVw4EBVVlbqtdde63D+0KFDJUkLFy5sccV2SRo3bpx69Ohheb9AIKDnn39eycnJuuyyy3TTTTfp8OHDevXVV7tc8x133KHHH39cn332mS6++GIdOHCgy48hSUlJSc21nWrPP/+8GhsbNXDgQM2bN0+NjY0dzh86dKhKSkq0cuXKNrdNnDix3fu99NJLqqqq0o9+9CNdffXV6t27t1544YVjfr3WkpKStHLlSp1xxhn68Y9/rGeeeaZL9z8iLS1NF154oTZt2qQtW7Yc12MAAGAX23/zwGAwGAzGsUbrPf2SzMCBA80VV1xhLrjgghbbrfb0H7nS/Pz581vMTUhIMJ988onlXuqjv059fb3Zu3evMca0uIJ9Z8dvfvMbY4wxH3/8cafOxT/nnHMs92r37NnTLFu2zBhz4lexP9aw2tMvyUydOtVcccUVJi4urnlbe3v63333XWOMMWeddVaL7Uc+MaG9Pf2SzF/+8pfmn3vrT2vozEhJSTE7d+40gUCg0xd1jI6ObrMtLi7OfPDBB8YYYzIzM09J3hkMBoPBOFnDKwAAHGrv3r3au3dvp+Z+/PHHWrNmja666iqtXbtWa9asUb9+/TRt2jR99dVXKigo6PDrLF68WFdccYUk6bnnnutSnT/84Q/1+9//XoFAQKtXr9ZPf/rTNnN2796tl156qfnfd999ty688EKtW7dOeXl5qq6u1sCBAzVt2jT17t1ba9eu1R/+8Icu1XGyZGdnd3ru448/rszMTK1Zs0avv/66KioqdN5552nChAl644039J3vfKfd+z799NOaOXOmkpOTtXDhwg5/RlZycnKUmpqqTz75RIMHD9acOXPazPnrX/+qPXv2NP/77rvvVmZmpj744APt379fSUlJuvzyy9WrVy/ddtttWrp0aZdqAAAgGNj+mwcGg8FgMI41rPb0tzfau5Bf7969zVNPPWVyc3NNTU2N2bFjh7nvvvtMZGSkyc3N7fDj5i6//HJjjDEfffRRl2s/sse8I++//36L+1xyySXm5ZdfNl999ZUpLy83fr/fFBcXm+zsbDNz5sw21yXojtHenn6r0dHV+6dPn24++OADc+jQIVNWVmaysrLMRRddZK6//voO9/RLMp9++qkxpumC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\n"},"metadata":{}}]},{"cell_type":"markdown","source":["*Above is a plot we created ourselves!*\n","\n","Looks like we were able to pretty accurately reproduce the same things you can see in the mobile app by querying the public API!\n","\n","## 4.3: Watch wear time\n","\n","Now what if we want to check when the user has worn the watch? For example, which days of the month has the user worn the watch, and of the days the user did not wear the watch all day, how much?\n","\n","Fortunately, this idea is easy to execute with the use of [`july`](https://github.com/e-hulten/july/), a custom library that allows us to create beautiful calendar plots. Unfortunately, since the watch only samples the heart rate extremely sparsely (roughly every 10 minutes by default to preserve battery life), then it is hard to tell exactly when the watch is on or off. As a reasonable proxy of heart rate coverage throughout a particular day, we opt to count the number of hours in that day that the watch has logged at least 3 heart rate measurements for.\n","\n","Note that we considered using the absolute number of heart rate measurements in a particular day as a proxy, but this is skewed by exercise periods, where the watch records heart rate at a much much higher sampling rate."],"metadata":{"id":"NXDQ8BW5PbgQ"}},{"cell_type":"code","source":["#@title Specify start and end dates and extract watch usage metrics\n","start_date = \"2022-01-01\" #@param {type:\"date\"}\n","end_date = \"2022-06-01\" #@param {type:\"date\"}\n","\n","dates = date_range(start_date, end_date)\n","data = np.zeros((len(dates), 24))\n","\n","# populate data array\n","for idx, date in tqdm(list(enumerate(dates))):\n"," local_tz = pytz.timezone('America/Los_Angeles')\n","\n"," day_start = pd.Timestamp(date).replace(tzinfo=local_tz)\n","\n"," for i in range(24):\n"," hour_start, hour_end = day_start + pd.Timedelta(hours=i), day_start + pd.Timedelta(hours=i+1)\n","\n"," # check for number of measurements during this time\n"," bool_arr = np.logical_and(datetime.fromtimestamp(int(hour_start.timestamp())) < hr_df.datetime,\n"," hr_df.datetime < datetime.fromtimestamp(int(hour_end.timestamp())))\n","\n"," num_measurements = len(np.where(bool_arr)[0])\n","\n"," if num_measurements >= 3:\n"," data[idx, i] = 1\n","\n","# A couple TODO's for modifying july to make it fit our usage better\n","# TODO 1: apply patch to this line https://github.com/e-hulten/july/blob/953ef3ee20549ca791d88d2f08e54862aa4c2f58/src/july/helpers.py#L118\n","# to make the fontsize for text values smaller\n","# TODO 2: apply patch to this line https://github.com/e-hulten/july/blob/master/src/july/plot.py#L149\n","# to make the weeknum_labels refer to the month day number instead"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["410e1e9970b547129633344e9915c53d","91478e81e7c84e4b9b3ac60c49c32249","e1bbf7772b5f4bd3a38dfeeee03ca227","e474ab633dd342b18f89c285c921cc5a","3cc027831dc74d379d76349d5cdb3944","e59441aa6abc4a7daab51ba22bee8586","02f00d0afe7540e19f6bff1c960d08f0","37923056d6c149a89059feee5abcbc7a","1c20aaaa561547a1bc91a7b62dbe2469","c3870f35353c4c939f5d71cd37f6adf2","2c5b9671f7c34128a3b997a70a8fcc2d"]},"id":"Sknea4mHIDza","executionInfo":{"status":"ok","timestamp":1663815673992,"user_tz":240,"elapsed":4897,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"4c39e787-c8aa-4848-f138-64257743623c","cellView":"form"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/152 [00:00"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["As we can see, our user has been fairly consistent about wearing his watch. He's worn his watch for nearly every hour of the day every day.\n","\n","If we want to check *when* the user has failed to wear his watch, we can simply look at the `data` array we populated. First, we get the start and end indices for watch measurements."],"metadata":{"id":"UJy2lEWCUv7F"}},{"cell_type":"code","source":["start_idx = np.where(data.sum(axis=1) > 0)[0][0]\n","end_idx = np.where(data.sum(axis=1) > 0)[0][-1]\n","\n","print(f'Data collection started at index {start_idx}')\n","print(f'Data collection last performed at index {end_idx}')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"mPPpq1mSW1xp","executionInfo":{"status":"ok","timestamp":1663815676449,"user_tz":240,"elapsed":12,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"13e6f0c1-7a09-4e9a-dd1e-a2b6f9a0c932"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Data collection started at index 138\n","Data collection last performed at index 151\n"]}]},{"cell_type":"markdown","source":["Then, we exclude the first and last indices (because they have gone for half a day, so may skew the data) and look at which hours the user tends to miss for an average day of full usage."],"metadata":{"id":"_VIfDVO4XyMw"}},{"cell_type":"code","source":["def stylize_hour_num(hour):\n"," return datetime.strftime(datetime.strptime(str(hour), '%H'), ' %I %p').replace(' 0','')\n","\n","with plt.style.context('seaborn'):\n"," plt.figure(figsize=(14,6))\n"," plt.bar(np.arange(24), data[start_idx+1:end_idx].mean(axis=0))\n","\n"," plt.title('Rate at which user wears watch at a particular hour of the day',\n"," pad=20, fontsize=15)\n","\n"," plt.xticks(ticks=np.arange(24), labels=[stylize_hour_num(i) for i in range(24)], fontsize=8)\n","\n"," plt.ylabel('Wear rate')\n"," plt.xlabel('Hour of the day')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":574},"id":"hJZMEuFiW0gT","executionInfo":{"status":"ok","timestamp":1663815677484,"user_tz":240,"elapsed":1041,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"94df2797-0c59-46c2-9a34-ab18b1341fc4"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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vl0xMTEqU6aMy+M//PBDTZkyRX5+fgoKClKZMmW0d+9ezZgxQ6tXr9ZXX33l8p0nO2vWrNHgwYN1/fp11alTR5UqVdKePXvUs2dPdezY0e0ynuyL9913nyIiIvT9999r3bp1evTRRzM93/z58yVJXbt2zVFmAHnMAIA8YrfbDbvd7nZez549DbvdbixdutRl+rVr14yVK1caaWlpLtNPnTpldOzY0bDb7UZcXJzLvAkTJhh2u91YuHCh29faunWrUbNmTaNp06bGzp07XebNnz/fsNvtRpcuXXK8XrGxsUZKSorLtPT0dGPixImG3W43hg0b5jLv6NGjht1uN3r16pXj13BwbKejR486p02fPt2w2+1GmzZtjNq1axuXL192zouKijLsdrvx7bffOqdt3LjR+V68+uqrRmpqqnPeypUrDbvdbjz66KOZXttutxvNmzd3mXb48GEjKCjIqFWrlrFs2TKXeRkZGca6detcnr9Xr16G3W436tata/zyyy/O6ZcvXza6detm2O12Y8GCBTnaFrfbju72g+joaMNutxsDBw400tPTXR5/6tQpY+/evc5/X79+3Wjbtq1ht9uNKVOmuDw+MTHRiIiIMGrWrOmyjCOT3W43unXrZpw7dy5H62IYN/Yju91uvPHGG85p6enpRlhYmNGmTRvDbrcbH330kXPe+fPnjRo1ahht2rRxeZ733nvPsNvtxiuvvGKcP3/eOf3ChQvGgAEDDLvdbsybNy/Ta+dmH85qPa9evWoEBgYaISEhxpEjR1zmXbt2zYiPj8/RNnG8XxMmTHBOO3PmjBEQEODcJvPnz3fO27Nnj2G3243nnnvOK+uX1b517do1IzIy0rDb7caYMWNc9nHDMIx9+/YZSUlJzn879kW73W7MnDnT5bFjxowx7Ha78frrr+dgi9ywdevWTNvVMP63vXr37p1pnrvPb07k5hicnebNmxt2u90IDQ11Of5evHjR6NOnj2G3243Ro0e7LLNnzx5j3759mZ7rp59+MmrXrm20bNnSyMjIcPs69evXd7us4zh48+ftVt445jlyuJNVhqx+huX2fbfb7cZjjz1m/Prrr1muqzu5OV6PGjXKmeXChQvO6QcOHDAaNmxo2O12Y/Xq1ZkyZrVvLly4MNMx4OZsQUFBxqZNmzxar2nTpjl/Zt58XDh58qTzcz179uwc5bgdR86bf2bf7I033jDsdrtRo0YNY+XKlc7p169fN1566SXDbrcbH3/8scsyy5cvN+x2u9G2bVsjMTHROT0jI8P45JNPnMf/nLhw4YLRoEEDw263G9HR0S7PNW7cOOf+c+t6e7ovrl+/3rDb7cagQYMyLZOYmGjY7XbjL3/5S44yA8h7nD4GwGcyMjJ05MgRjRgxQvHx8WrRooVat27t8phChQqpZcuWmS72WapUKb322muSbvwV2RNffPGF0tPTNXLkSAUGBrrM69KliyIiIrR9+3b997//zdHzNWjQINNf5AoUKKDBgwerbNmyWr16tUf5suMYEXLziKBNmzapePHi6tu3r3M0iYPjce5GCpUoUULvvPOOChcu7JzWsmVL2e12JScn5+huKTNmzFBqaqo6d+6sdu3aucyz2Wxq0qSJy/M79O3bVyEhIc5/33XXXXrmmWckSZs3b77t6+aW4/TEBg0auIyUkW7sUzeP1FizZo327dunyMhIPfvssy6Pf+CBBzRs2DClp6c7/8J5q7feesuj0QIhISGZRoI5RoG1b99e999/v8u8+Ph4ZWRkKCwszDnt1KlTWrBggcqXL6+oqCjdfffdznklSpTQmDFj5Ofnp6+++srlte9kH3a3nhcvXlRaWpoqV66c6RochQoVyvEpHu729/j4eBmGoWeffVaFCxd2OS3U8bibt8mdrp8733//vQ4fPqzq1avrjTfeyLSPV69e3e21aEJDQ52nLTkMGjRIkmf7fXBwsNtrm3Tq1EmhoaGKi4vThQsXcvx82cmLY7Ak9erVy+X4W7x4cb3zzjuy2WyKjo52OWUwICDAeYrxzZo2barHH39cR44c0b59+9y+zoABA9wum1u5PeZ5w52870OGDHE72i8ncnq8vnz5sqKjo1WgQAGNGDHCZbRXtWrVnPv6rFmzcpXDnc6dO7v9+Zad2bNnS7pxO/ibjwv33Xefhg4d6vWMOdGmTRuXkYUFCxbUc889JynzseHzzz+XJI0fP95lNLTNZtNLL72kmjVrasWKFZlOx3fH8biwsDB16tTJ5bn++te/qly5cm6X83RfbNSokR544AGtXbs206m1CxYskMQoIeCPhNPHAOQ5d+fTd+3aVaNGjZLNZnO7TEJCgtavX6/k5GRdvXpVhmE4TzlLTEzM8WtnZGQoNjZWd911V5anGzz88MNavXq1duzY4XIKSnbOnDmj1atXa//+/Tp//rzzOhvXr1/X2bNndfbsWY+G62fF8ctuXFycOnbsqIyMDG3ZskX16tVTw4YNJd0oiRo1aqQLFy4oISFBDz30UKbT8iSpdu3aKlmyZKbpVapU0b59+5SSkuJyGpM7sbGxkqTu3bt7tB7utn2VKlUkSSkpKR49lyccv4ROmzZNpUuXVrNmzVx+cbmZ46Lnjz32mNv5jlMHbr52jUOZMmUUFBTkUbYiRYqoTp062rx5s44dO6aKFSs6S4769evr4MGDiomJ0ZUrV3TXXXe5Lfw2bdqka9euqWnTpm5PwStTpozz/b169arLY3KzD2e1nv7+/ipXrpwSEhL04Ycfqlu3brm6QGulSpVUoUIFbdu2TampqSpSpIizBGratKmCg4MVHx/vfHx2Jag3P6OO/b5z584qWLBgjtencePGmaaVLFlS9957b5bXIMrKpUuXtGbNGiUkJOjcuXPO69ikpKTIMAwdOXJEtWvX9ug5s+OtY7DDrX8AkKSHHnpINWrUUEJCgv773/+6FBFpaWn66aeftHPnTp0+fVrXrl2TJGcZlJSU5PZnS1bXqsmt3B7zvCU377vNZruj7ZDT4/Xu3bt19epVBQYGuj39un379ho9erR++eUXZWRkZCrmc8PT9UpOTlZycrJKlSrldr2aN2+ue+65R0lJSUpJScl02lZeyW4b33xsOHXqlPbs2aMqVaq4Pd3UZrMpNDRUCQkJ2r17t8vpr+44Cid3n0c/Pz9FRkZq5syZbpf1ZF+02Wzq2rWrxo0bp0WLFmngwIGSbpwWvXjxYhUuXJg7zwJ/IJRCAPKc405jqamp2rNnjw4dOqT58+crJCQk0/nraWlpGj58uGJiYrJ8PscvJjlx5swZXb58WZIyjRJy99iciImJ0TvvvON83qwyeqMUunU0iWMkSf369VWxYkWX0SSOkSRZ/RU1q78AFi9eXNKNbX87jus3ePoLv7vX9uR1c6thw4Z6+umnNXPmTA0ZMkSFChVSrVq11KhRI3Xu3NllPY4fPy5J+tvf/qa//e1vWT6nu/2kQoUKucoXHh6uzZs3O68rtGnTJpUoUUK1a9dWeHi4Fi9e7LyukLsCxJF5/vz5WY5gcjh37pyzFMrtPpzder7//vsaMmSIpkyZoilTpuj+++9XWFiYWrdu7fYC0VkJCwvT0qVLndcViouL00MPPSR/f3+Fh4crLi5OSUlJqly5suLj41W8ePFMvxR7+zPq2O89vTNVdp+5s2fP5vh5YmNjNWTIkGxHAnhyXMyOt4/BDvfff3+W0xMSElx+Ed67d68GDRrk3L89yZDbz2JWcnvM84bcvu/+/v53NHopp8drx3uW1Xt7zz336O6779aFCxd07tw5t3+U8FT58uU9erwjY1b7hc1mU4UKFXT+/HmdPHnSZ6WQu1Fcjj9YOApQ6X/H+MTExCwvWO2Qk+8wt3vPspqem32xY8eO+uSTTxQdHa3nn39eNptNa9as0e+//662bdt6ZX8A4B2UQgDy3K0XJZ06darGjRunUaNGqX79+i5fQmbMmKGYmBjZ7Xa9/vrrql27tu655x75+fnp8OHDevzxxz16bcfogFsvuOpOTk45OH78uPMOJG+++aYeffRRlS1b1vnLdvfu3bV161YZhuFRzqwULVrUZTTJrcVAeHi4czRJVqfSOHjjr7S5ldWIMG/K6q5Iw4cPV7du3bRq1SrFxsbql19+0Y4dOzRt2jSNHz/euV84lm/atGm2F+x090W2SJEiucocHh6uf/3rX4qLi9OTTz7pHAVWsGBB53u8adMmBQUFKSEhQdWqVZO/v79zecd+VrNmTbcXnL2Z43SgO9mHs1vPhg0bauXKlVqzZo3WrVunuLg4LVmyREuWLFFkZKQmTJiQ422ydOlS553A9u3bpx49ejjnSTdGCF29elVnzpzRI4884jJ6x9ef0ex44zN36dIlvfLKKzp37pxefPFFtWnTRhUqVFDRokVls9n02muvKSYmxmvr4+1jsKcMw9Arr7yi48ePq3v37urRo4cqVqyo4sWLy2az6aOPPtLkyZOzXN/cfhZ9wZM7t93J+36n28Cbx2tPn+t22ygv3l9f/Hy6VU6PDY7tcfPF7bPi7ULUIbf7YqlSpdSqVSvFxMQoNjZWjRo1cp46ltMbWwDwDUohAD737LPPKjY2VuvXr9enn36qqKgo57yVK1dKkj766KNMJc3Ro0c9fq2SJUuqSJEiKlCggKKiou74y9/atWt17do19evXT3379s00PzcZbycsLMw5muTmkSSSXEaT3HzqUV4pX768EhMTdfTo0RzdtcebHKVGViMEsru9fdWqVVW1alUNGDBAqampmjNnjsaOHav33nvPWQo5/jrepUuX2xaI3hISEiI/Pz/FxcU5R4E5io+bR4LVrVvX7Sgwx1+b69Wrp3feeSdHr5mX+3CJEiXUrl0757VXtm3bpr/+9a9asWKF1q5dm6MRQzcXPzVq1JBhGM5pjjurbdq0SVevXnV5fF6un2N0wpEjRzxe9k5t3rxZZ8+eVWRkpF5++eVM8719zPH2Mdjh+PHjbkc6JCcnS7pxfRdJOnTokA4dOqTAwECNHDky0+Pz4hibHU+PeTcfpxyjaxyyO0bdytfve2443jPHe3irCxcu6Pz58ypatKjL3Rj9/PxydRzPi4w3z8vtNZjykuPnUsmSJXN1179bObZHVqPw3G2nO9kXe/TooZiYGM2fP19VqlTR+vXrVaVKFTVo0CCXawAgL3ChaQD5wnHB0mXLlrl8OTl//rwk98PXv/32W7fP5fgSnp6enmleoUKFFB4erosXLzqvDXEnsssXHx+v33//Pct8jvPvPeUoeTZu3KgtW7bo4Ycfdo6McPxCvGrVKrcjSbzNcR2j//znP3n2GlkpWbKkChUqpOPHj2falteuXXO5OHF2ihQpov79+6tMmTI6ffq0Tp06Jel/139x/FLsC46RYMePH9eiRYskuZZ64eHh2rlzp9auXev8980aNGigggULas2aNS6nHGQnN/twbgUHBzuvG5HVhYFvVblyZZUvX17btm3TunXrZLPZnNukSJEizusKZVWC5sVn1LHfL1y40KPRHt6Q3fokJSVleYF8Pz+/XB1zcnMMzgl3yx48eFAJCQkqVqyYs3A5d+5clq9/7tw5/fzzz7l6/dwehz095jlOP3J33aUNGzbk+HVz+777Uu3atVW0aFHt3r3b7fouW7ZM0o0Lrt88MqZMmTI6e/as29Odcvv+ZqVChQqqUKGCTp8+7fY7wI8//qhz587pgQce8MqpY9l9H8mNcuXKqWrVqjpw4IAOHz58x8/nuDaeu8/j9evX9f3332eafif74sMPP6zq1avrhx9+0NSpU5WRkaHOnTvnNj6APEIpBCBf1KpVSy1bttT169c1depU53THhRZvvVvSd999p6VLl7p9rpv/wuzOwIEDVaBAAQ0fPtzlzkUOly5dUnR0tHPkQXYc+ZYtW+ZyvZKTJ09qxIgRbpcpWbKk/Pz8dPTo0Vx9UXSMJvnuu+9cRpJI/xtNsmDBgkx3psoLffv2VZEiRbRgwQItX77cZZ5hGNqwYUOeXSOocOHCCg4O1tmzZzV37lzn9OvXr+uDDz5we/e0H374Qdu2bcs0fdeuXTp16pSKFSvmvGNXq1at9NBDD+nrr7/WpEmTMq2HYRjasmWLtmzZ4tX1cryf8+fP19133+1ysfPw8HDnhTlvfqxD2bJl1alTJx0/flyvvfaa28IjKSlJK1ascP47N/vw7SQnJ2vRokW6cuWKy/TU1FTnZ86Ta4GEhYUpLS1NS5YsyXTh9PDwcP36669au3atihcvnuni8HnxGW3VqpXzgt3jxo3LVMDt378/z0ZuONZn5cqVLtfzOH/+vN56660sy8D77rtPp06dcv5C5+nreXIMzok5c+a4/PJ45coVjR49WoZhqFOnTs7T+x544AEVKFBAGzdudCkaUlNTNWLECI+uxXQzx88JT3+x9vSY5zgGT5482WVfiomJ0TfffJPj183t++5LxYoVU6dOnZSRkaFRo0a5fN4OHz6szz77TJLUu3dvl+Uc28gx32HKlCleP75KN+58J0lRUVEu2zIlJUVjx46VpEx3Ccyt3O5n2XnhhReUkZGhl19+WQkJCZnmnzlz5rbXlHN4/PHHde+99youLs75c0W6sS9PnDjR7UihO90Xu3XrpmvXrmnu3Lny8/PLdC1JAPmP08cA5JuXXnpJq1at0sKFC/XCCy+oTJkyevbZZ7Vu3TqNHz9e3333nR588EElJiZq165d6tevn7788stMz9O4cWMVKVJEM2fO1P79+3XffffJZrOpf//+qlq1qh5++GG9++67+vvf/64+ffrIbrerSpUqzlEnCQkJSktLU6tWrdzewelmERERql69unbt2qVWrVopNDTU+YtvjRo1FBIS4nKLeOlGmdGkSROtWbNG7du3V61ateTn56fQ0FCXW8JmpWjRogoKCtIvv/wiKXMx4DiFTMrbU8ck6cEHH1RUVJTeeOMNvfrqq5o0aZICAgJ04cIF7d+/XydOnFB8fHye3aL5xRdfVP/+/fWPf/xD3377rUqXLq3du3frypUr6tChg8uXXOnG9XhmzZqlsmXLqlatWipevLh+++03bdmyxfkl25G1UKFCmjRpkvr3768JEyZo7ty5CggIUKlSpXT27FklJCTo1KlTGj58uPOvrd4QHh6uzz77TKmpqWrYsKHL9XEc73VqaqqqVq3q9lpHb731lo4fP64VK1Zo3bp1qlGjhipUqKDLly/r4MGDSkpKUosWLZynxOVmH76dc+fOafjw4Ro1apQCAwNVtmxZXblyRVu3btXp06cVGBioVq1aebRNli1bptTUVLf7u2ObhIeHq1Ah168yefEZLVSokCZOnOg8Bn399dcKCQmRYRhKSkrSvn37NGnSpDy5GHFQUJAaN26sDRs2KDIy0uX0upIlS6pFixZubxEfERGh2bNnq0OHDgoJCVGRIkX04IMP6tlnn8329XJzDM6JJ554Ql27dlX9+vV19913a/PmzUpJSVH16tX117/+1fk4f39/dSIulfYAACAASURBVO7cWfPnz1f79u3VoEEDFSlSRFu2bFF6ero6duzoHFXniYoVKyogIEC7du1S586dVb16dRUoUEARERFq0aJFlst5eszr2bOn/v3vf2vFihVq3bq1AgIClJSUpP3796tPnz6aMWNGjvLm9n33tSFDhmjbtm3asGGDWrZsqbCwMF25ckUbN25UamqqevfunemOYQMGDNCKFSs0c+ZMxcXFqXLlytq7d69+/fVXPfXUU5o3b55XMz799NPauHGjfvrpJ7Vq1UoNGjSQYRiKjY3VpUuX1LJlSz311FNeea2IiAgtXrxYr732mho3buz8o8OYMWNy/Zzt2rXTgQMH9Pnnn6tjx46qWbOmKlWqJMMwdPToUe3du1fFihXL0S3eS5QooTFjxujll1/WsGHD9NVXX6lSpUras2ePkpKS1LVr10wF053ui08++aTGjx+vK1euKCIiIk9HMwPIHUYKAcg3NWrU0GOPPabU1FRNnz5d0o2/IM6bN08NGjTQsWPHtGbNGvn5+WnixInq2bOn2+cpW7as/vWvf6lu3brasmWLFi5cqOjoaJdb5/bo0UMLFy5Uhw4dnLdVXb9+vS5fvqx27dpp8uTJzi9v2SlcuLDmzp2rHj16qHDhwlqzZo0OHjyoXr16afr06c6h47caM2aM2rdvr7NnzyomJkbR0dEut9a+HceXsFtHktw8T8r6ItPe1KZNG0VHR+uJJ57QhQsX9P3332v37t0qX768hg0bpmLFiuXZazdq1EifffaZgoKCtHv3bsXHx6tu3bqKjo52e9eUjh07ql+/frrvvvu0Y8cOff/99zp+/LgeeeQRzZgxQ88884zL46tUqaIlS5bolVdeUbly5bRt2zatXLlShw8fVs2aNfXuu+/qiSee8Oo6OUaCSZkLP8dIMHfzHIoWLaopU6bogw8+UJ06dXTo0CGtWLFCu3btUqlSpfTSSy/p9ddfdz4+t/twdipVqqRhw4YpPDxcycnJWrlypbZs2aIKFSpo+PDhmjNnjkdF4c3reut6O64r5G7enazf7T6jdrtdS5cuVb9+/VS8eHGtXbtWGzdulHTjl9y6devmeP089a9//UsDBw5UqVKl9NNPP2n37t1q3bq1/vOf/+iee+5xu8yQIUPUq1cvpaen69tvv1V0dLTzNMTs5OYYnBNvv/22hgwZouTkZOcvkD179tTcuXMzHXvfe+89DRs2TBUrVlRsbKy2bNmihg0bauHChXd0Md2JEyeqZcuWOnr0qJYsWaLo6OgcnYblyTGvdOnSmjNnjpo3b66UlBStW7dOd999t7788kuPb6eem/fd10qUKKE5c+bopZdeUsmSJbV69Wpt3rxZgYGBGj9+vN5+++1My1SvXl0zZ85UeHi4EhMTtWHDBlWuXFn/+c9/FBQU5PWMBQsW1Geffaa33npLlSpV0vr167VhwwY9+OCDevfddzVhwgSv3YihVatWGj58uMqVK6c1a9YoOjpa0dHRd/y8r776qubMmaNWrVopJSVFq1at0qZNm5Senq4ePXpkGnWVnZYtW2rWrFmqX7++9u/frx9//FFlypTR7NmzFRIS4naZO9kXb/7ekpPiCoDv2Qxf3H4DAAAAlhMREaHjx49r7969+R0FQD44ceKEWrRooXLlymnVqlX5crc3ANljpBAAAAAAwOu++OILpaenq2fPnhRCwB8U1xQCAAAAAHjFoUOHNG3aNB07dkwbN25UuXLl1L179/yOBSALlEIAAAAAAK9ISUlRdHS0ihYtqrCwML399tsqXrx4fscCkAWuKQQAAAAAAGBBXFMIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsKN9Lofj4eA0cOFBNmjRRQECAfvjhh9sus2nTJnXo0EGBgYF67LHHtGjRIh8kBQAAAAAA+PPI91Lo8uXLCggI0IgRI3L0+KNHj+r5559X/fr1tXTpUvXt21dvv/221q1bl8dJAQAAAAAA/jwK5XeAZs2aqVmzZjl+/L///W9VrFhRw4YNkyRVq1ZNW7Zs0YwZM9S0adO8igkAAAAAAPCnku8jhTy1bds2NWzY0GVakyZNtG3btnxKBAAAAAAAYD6mK4V+//13lS5d2mVa6dKldfHiRV29ejWfUgEAAAAAAJhLvp8+ll8Mw5DNZsvvGB5r99rS/I7g4uvx7W/7mD9aZoncvmTGzJI5c5sxs2TO3DnJLJkz9x8ts2TO3GbMLJkzN59H3zJjbjNmlsyZ24yZpZwfR8zoj7a9/8z7yB8td073a9OVQqVLl9bvv//uMu33339XiRIlVLRo0Rw/z+nTl1SgwJ2XQgULFtA999yl8+evKD09446fz2zOnLmU3xFyhdy+Y8bMkjlzmzGzZM7cZswskduXzJhZMmduM2aWyO1LZswsmTO3GTNLvstt9d8dJfaRPyLTlULBwcH66aefXKb9/PPPCg4O9uh5MjIMZWQYXsuVnp6h69et98E26zqT23fMmFkyZ24zZpbMmduMmSVy+5IZM0vmzG3GzBK5fcmMmSVz5jZjZsn3ua36u6PEPvJHlO/XFLp06ZISEhKUkJAgSTp27JgSEhKUnJwsSRo/fryGDh3qfHz37t119OhRjR07VgcPHtTcuXP17bff6umnn86P+AAAAAAAAKaU7yOFdu3apT59+jj/HRUVJUnq0KGD3n//faWkpOjEiRPO+ZUqVdLkyZMVFRWlWbNmqVy5cho9ejS3owcAAAAAAPBAvpdC9evX1969e7Oc//7777tdZsmSJXkZCwAAAAAA4E8t308fAwAAAAAAgO9RCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAUVyu8A+aXf+6vzO0ImXw6LyO8IAAAAAIBb8Psj/qwYKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABZEKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQZRCAAAAAAAAFkQpBAAAAAAAYEGUQgAAAAAAABb0hyiF5s6dq4iICAUFBalLly7asWNHto+fMWOGIiMjVadOHTVr1kz/+Mc/lJqa6qO0AAAAAAAA5pfvpdDy5csVFRWlF198UYsXL1aNGjXUv39/nTp1yu3jv/76a40fP16DBw/W8uXLNWbMGC1fvlwfffSRj5MDAAAAAACYV76XQtOnT1fXrl3VqVMnPfTQQxo5cqSKFi2qhQsXun381q1bFRoaqnbt2qlixYpq0qSJ2rZte9vRRQAAAAAAAPifQvn54mlpadq9e7eef/5557QCBQqoUaNG2rp1q9tlQkJCtGzZMu3YsUN16tTR0aNHtXbtWrVv395XsfNMoUL53tF5zIyZJXL7khkzS+bMbcbMkjlzmzGzRG5fMmNmyZy5zZhZIrcvmTGzZM7cZswskduXzJhZMm/unMjXUujMmTNKT0+Xv7+/y3R/f38dOnTI7TLt2rXTmTNn9NRTT8kwDF2/fl3du3fXwIEDfRE5T5UsWTy/I3jMjJklcvuSGTNL5sxtxsySOXObMbNEbl8yY2bJnLnNmFkity+ZMbNkztxmzCyR25fMmFkyb+6cyNdSKDc2bdqkyZMna8SIEapTp46OHDmiMWPGaNKkSXrxxRfzO94dOXPmUn5H8JgZM0vk9iUzZpbMmduMmSVz5jZjZoncvmTGzJI5c5sxs0RuXzJjZsmcuc2YWSK3L5kxs2Te3DmRr6VQyZIlVbBgwUwXlT516pRKly7tdplPPvlETzzxhLp06SJJCggI0OXLl/Xuu+9q0KBBKlDAvMO6rl/PyO8IHjNjZoncvmTGzJI5c5sxs2TO3GbMLJHbl8yYWTJnbjNmlsjtS2bMLJkztxkzS+T2JTNmlsybOyfytUEpXLiwateurdjYWOe0jIwMxcbGKiQkxO0yV69ezVT8FCxYUJJkGEbehQUAAAAAAPgTyffTx5555hm98cYbCgwMVJ06dTRz5kxduXJFHTt2lCQNHTpUZcuW1WuvvSZJat68uaZPn65atWo5Tx/75JNP1Lx5c2c5BAAAAAAAgOzleynUunVrnT59WhMmTFBKSopq1qypqVOnOk8fO3HihMvIoEGDBslms+njjz/WyZMnVapUKTVv3lyvvvpqfq0CAAAAAACA6eR7KSRJvXr1Uq9evdzOmz17tsu/CxUqpMGDB2vw4MG+iAYAAAAAAPCnZN6rMgMAAAAAACDXKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCC/hCl0Ny5cxUREaGgoCB16dJFO3bsyPbx58+f18iRI9WkSRMFBgYqMjJSa9eu9VFaAAAAAAAA8yuU3wGWL1+uqKgojRw5UnXr1tXMmTPVv39/fffdd/L398/0+LS0ND3zzDPy9/fXJ598orJlyyo5OVn33HNPPqQHAAAAAAAwp3wvhaZPn66uXbuqU6dOkqSRI0fqxx9/1MKFC/Xcc89levzChQt17tw5/fvf/5afn58kqWLFij7NDAAAAAAAYHb5evpYWlqadu/erUaNGjmnFShQQI0aNdLWrVvdLrN69WoFBwdr1KhRatSokdq2bavPP/9c6enpvooNAAAAAABgevk6UujMmTNKT0/PdJqYv7+/Dh065HaZo0ePauPGjWrXrp2++OILHTlyRCNHjtT169c1ePBgX8TOM4UK/SEu8eQRM2aWyO1LZswsmTO3GTNL5sxtxswSuX3JjJklc+Y2Y2aJ3L5kxsySOXObMbNEbl8yY2bJvLlzIt9PH/OUYRjy9/fX3//+dxUsWFCBgYE6efKkpk2bZvpSqGTJ4vkdwWNmzCyR25fMmFkyZ24zZpbMmduMmSVy+5IZM0vmzG3GzBK5fcmMmSVz5jZjZoncvmTGzJJ5c+dEvpZCJUuWVMGCBXXq1CmX6adOnVLp0qXdLlOmTBkVKlRIBQsWdE6rWrWqUlJSlJaWpsKFC+dp5rx05syl/I7gMTNmlsjtS2bMLJkztxkzS+bMbcbMErl9yYyZJXPmNmNmidy+ZMbMkjlzmzGzRG5fMmNmyby5cyJfS6HChQurdu3aio2NVcuWLSVJGRkZio2NVa9evdwuExoaqpiYGGVkZKhAgRtDuBITE1WmTBlTF0KSdP16Rn5H8JgZM0vk9iUzZpbMmduMmSVz5jZjZoncvmTGzJI5c5sxs0RuXzJjZsmcuc2YWSK3L5kxs2Te3DmR7yfGPfPMM5o/f74WL16sgwcP6r333tOVK1fUsWNHSdLQoUM1fvx45+N79Oihs2fPasyYMTp8+LB+/PFHTZ48WT179syvVQAAAAAAADCdfL+mUOvWrXX69GlNmDBBKSkpqlmzpqZOneo8fezEiRPOEUGSVL58eU2bNk1RUVF64oknVLZsWfXp00cDBgzIr1UAAAAAAAAwnXwvhSSpV69eWZ4uNnv27EzTQkJCNH/+/LyOBQAAAAAA8KeV76ePAQAAAAAAwPcohQAAAAAAACyIUggAAAAAAMCCclUKXbt2TV999ZXefPNN9evXT4mJiZKk5cuX6+DBg97MBwAAAAAAgDzgcSl09OhRPf744xo3bpyOHDmi2NhYXbp0SZIUHx+vqVOnej0kAAAAAAAAvMvjUmj06NEqVaqUfvjhB82YMUOGYTjnhYWFKT4+3qsBAQAAAAAA4H0el0JxcXEaNGiQSpUqJZvN5jKvTJkySklJ8Vo4AAAAAAAA5A2PS6GCBQu6jA662e+//65ixYrdcSgAAAAAAADkLY9LobCwME2fPl3Xrl1zTrPZbDIMQ/Pnz1fDhg29GhAAAAAAAADeV8jTBf72t7+pR48eatOmjSIiImSz2TR37lzt379fSUlJWrBgQV7kBAAAAAAAgBd5PFKoWrVqWrhwoUJCQhQTE6OCBQvqxx9/VOXKlbVgwQJVrlw5L3ICAAAAAADAizweKSRJlSpV0gcffODtLAAAAAAAAPARj0cK9enTRwcPHnQ77/Dhw+rTp88dhwIAAAAAAEDeytUt6S9duuR23sWLF7V58+Y7DgUAAAAAAIC85XEplJ2tW7eqVKlS3nxKAAAAAAAA5IEcXVNo8uTJmjx5sqQbt5/v27evbDaby2PS0tKUnp6up556yvspAQAAAAAA4FU5KoVCQkLUr18/GYahSZMmqU2bNipXrpzLY/z8/FStWjU1b948T4ICAAAAAADAe3JUCoWHhys8PFzSjZFCXbp0UdmyZfM0GAAAAAAAAPKOx7ekHzx4cF7kAAAAAAAAgA95XApJUlJSkhYtWqTExESlpqZmmv/555/fcTAAAAAAAADkHY9LoR07dqh3796qUKGCEhMTFRAQoAsXLuj48eMqV66cKleunBc5AQAAAAAA4EUe35J+3Lhx+stf/qKYmBgZhqExY8Zo1apVmjdvnmw2mwYMGJAXOQEAAAAAAOBFHpdCe/fuVZs2bVSgwI1FHaePhYaGavDgwRo/frx3EwIAAAAAAMDrPC6FbDab/Pz8ZLPZ5O/vr+TkZOe8cuXKKTEx0Zv5AAAAAAAAkAc8LoWqVaumo0ePSpKCg4P15Zdfat++fTp06JC++OILVapUyeshAQAAAAAA4F0eX2i6a9euOn78uCRpyJAh6tevn9q3by9JuuuuuzRhwgTvJgQAAAAAAIDXeVwKPfnkk87/r1atmpYvX65t27bp6tWrCg4Olr+/v1cDAgAAAAAAwPs8On0sNTVVAwcOVHx8vHNa8eLF1bhxY7Vo0YJCCAAAAAAAwCQ8KoWKFCmi+Ph4paen51UeAAAAAAAA+IDHF5pu3LixNmzYkBdZAAAAAAAA4CMeX1OoU6dOevfdd3Xp0iU1a9ZM/v7+stlsLo+pXbu21wICAAAAAADA+zwuhZ5//nlJ0rx58zRv3jyXQsgwDNlsNiUkJHgvIQAAAAAAALzO41Jo1qxZeZEDAAAAAAAAPuRxKRQeHp4XOQAAAAAAAOBDHl9oGgAAAAAAAOZHKQQAAAAAAGBBlEIAAAAAAAAWRCkEAAAAAABgQR6VQqmpqZo+fbr27duXV3kAAAAAAADgAx6VQkWKFNHHH3+ss2fP5lUeAAAAAAAA+IDHp4/VrFlTBw4cyIssAAAAAAAA8BGPS6E333xTM2fO1HfffacrV67kRSYAAAAAAADksUKeLtC3b19du3ZNr776qiSpaNGistlszvk2m01btmzxXkIAAAAAAAB4ncelUL9+/VxKIAAAAAAAAJiPx6XQSy+9lBc5AAAAAAAA4EMeX1MIAAAAAAAA5ufxSCFJSkpK0qJFi5SYmKjU1NRM8z///PM7DgYAAAAAAIC843EptGPHDvXu3VsVKlRQYmKiAgICdOHCBR0/flzlypVT5cqV8yInAAAAAAAAvMjj08fGjRunv/zlL4qJiZFhGBozZoxWrVqlefPmyWazacCAAXmREwAAAAAAAF7kcSm0d+9etWnTRgUK3FjUcfpYaGioBg8erPHjx3s3IQAAAAAAALzO41LIZrPJz89PNptN/v7+Sk5Ods4rV66cEhMTvZkPAAAAAAAAecDjUqhatWo6evSoJCk4OFhffvml9u3bp0OHDumLL75QpUqVvB4SAAAAAAAA3uXxhaa7du3qHB00ZMgQ9evXT+3bt5ck3XXXXZowYYJ3EwIAAAAAAMDrPC6FnnzySef/V6tWTcuXL9e2bdt09epVBQcHy9/f36sBAQAAAAAA4H0el0K3Kl68uBo3buyNLAAAAAAAAPARj68pJEmnT5/Whx9+qL59+yoyMlL79++XJM2cOVPbtm3zakAAAAAAAAB4n8el0O7duxUZGanly5erXLlyOnLkiNLS0iRJJ0+e1IwZM7ydEQAAAAAAAF7mcSkUFRWl4OBgrVixQmPGjJFhGM55devW1fbt270aEAAAAAAAAN7ncSm0c+dO9e7dW35+frLZbC7zSpUqpVOnTnktHAAAAAAAAPKGx6XQXXfdpYsXL7qdl5ycrHvvvfeOQwEAAAAAACBveVwKNWnSRJ999pnOnDnjnGaz2XT16lXNmjVLzZo182pAAAAAAAAAeJ/Ht6R//fXX1aNHD0VGRqp+/fqy2Wz6+OOPdeDAAdlsNr3yyit5kRMAAAAAAABe5PFIobJly2rJkiXq1auXUlJSVLlyZZ09e1bt2rXTwoUL5e/vnxc5AQAAAAAA4EU5Gik0bdo0Pfz/7d17VFV1wsbxh4tIeUVMpcurJgkKKIiOYSrGmHfiFcQpQ/NSOWqWMyaOZpZW4yUtw0s308bUHAWMEHVmrGQsHVemjmW3CadSB0URxzsG+P7B4ryeDuA5Cefs3f5+1mqt2Pt3Dg8/N/A7D3vv07mzwsLC5Ovrq4YNG+qxxx7TY489Vtv5AAAAAAAAUAucKoUWLFggSapbt67Cw8MVHR2t6OhoRUVFqUGDBrUaEAAAAAAAADXPqVLoH//4h/bt26e9e/dq7969euutt/Taa6/J29tbbdq0UXR0tDp16qTo6GjdcssttZ0ZAAAAAAAA18mpUqhRo0bq1auXevXqJUkqKSnRwYMHtXfvXu3bt0/btm3Tn//8Z0nl9xzavn17beUFAAAAAABADXD53cckydfXVx07dlTHjh01YMAAffrpp3rvvfeUm5ur48eP13RGAAAAAAAA1DCXSqErV67o66+/1qeffmq7nCw/P1833XSTIiMjlZqaqqioqNrKCgAAAAAAgBriVCm0ZMkS7du3T/v371dxcbFCQkIUFRWlyZMnKyoqSjfffHNt5wQAAAAAAEANcroUuuGGG5SYmKgRI0aoZcuWtZ0LAAAAAAAAtcipUujJJ5/Uvn379P7772vt2rUKCgpSVFSU7b927drJ29u7trMCAAAAAACghjhVCg0fPlzDhw+XJOXn59vedSwzM1Nz5syRn5+fIiIiFBUVpU6dOik2NrZWQwMAAAAAAOD6uPzuY0FBQRo4cKAGDhwoSbpw4YI+/fRTrVmzRm+88YYk6YsvvqjZlAAAAAAAAKhRRdQM9QAAIABJREFUP+st6c+ePWt797G9e/fqs88+08WLF+Xt7a3g4OCazggAAAAAAIAa5lQp9MMPP9gKoH379ikvL09lZWXy9/dXRESERowYoejoaEVFRalBgwa1nRkAAAAAAADXyalSqE+fPpKkJk2aqFOnTho8eLCio6MVFhYmX9+fdbIRAAAAAAAAPMipRuf5559Xp06d1Lp169rOAwAAAAAAADdwqhRKSkqq7RwAAAAAAABwI29PBwAAAAAAAID7GaYUWrNmjeLi4hQREaHk5GQdOHDAqcfl5OQoJCRE48ePr+WEAAAAAAAAvxyGKIU2b96sOXPmaMKECdq4caNCQ0M1ZswYFRYWVvu4I0eOaN68eercubObkgIAAAAAAPwyGKIUWrlypYYOHaqkpCQFBwdr1qxZ8vf3V0ZGRpWPKS0t1RNPPKGJEyfqtttuc2NaAAAAAAAA8/N4KXT58mUdPHhQ3bp1s23z9vZWt27dtG/fvioft3TpUgUGBio5OdkdMQEAAAAAAH5RnHr3sdpUVFSk0tJSBQYG2m0PDAzUoUOHKn3Mnj17lJ6ernfffdcdEd3G19fjHZ3LzJhZIrc7mTGzZM7cZswsmTO3GTNL5HYnM2aWzJnbjJklcruTGTNL5sxtxswSud3JjJkl8+Z2hsdLIVedO3dOqampevbZZ9WkSRNPx6lRAQH1PB3BZWbMLJHbncyYWTJnbjNmlsyZ24yZJXK7kxkzS+bMbcbMErndyYyZJXPmNmNmidzuZMbMknlzO8PjpVBAQIB8fHwcbipdWFiopk2bOow/fPiwjh49qnHjxtm2lZWVSZLat2+vrVu36n/+539qN3QtKSo67+kILjNjZonc7mTGzJI5c5sxs2TO3GbMLJHbncyYWTJnbjNmlsjtTmbMLJkztxkzS+R2JzNmlsyb2xkeL4X8/PwUFhamXbt2qXfv3pLKS55du3YpJSXFYfztt9+u7Oxsu22LFi3S+fPn9eSTT6pFixZuyV0bSkrKPB3BZWbMLJHbncyYWTJnbjNmlsyZ24yZJXK7kxkzS+bMbcbMErndyYyZJXPmNmNmidzuZMbMknlzO8PjpZAkjRo1SlOnTlV4eLg6dOigP/3pT7p48aISExMlSampqWrevLkmT56sunXrqm3btnaPb9iwoSQ5bAcAAAAAAEDlDFEKDRgwQKdOnVJaWppOnDihdu3aafny5bbLx/Lz8+Xt/cu9sRMAAAAAAIC7GaIUkqSUlJRKLxeTpLfffrvax86dO7c2IgEAAAAAAPxicfoNAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWJBhSqE1a9YoLi5OERERSk5O1oEDB6ocu379eg0bNkxdunRRly5dNHLkyGrHAwAAAAAAwJ4hSqHNmzdrzpw5mjBhgjZu3KjQ0FCNGTNGhYWFlY7fvXu3Bg4cqFWrVmndunUKCgrS6NGjdfz4cTcnBwAAAAAAMCdDlEIrV67U0KFDlZSUpODgYM2aNUv+/v7KyMiodPzChQv1wAMPqF27dmrTpo2ee+45lZWVadeuXW5ODgAAAAAAYE6+ng5w+fJlHTx4UGPHjrVt8/b2Vrdu3bRv3z6nnuPixYsqKSlRo0aNaiumW/j6GqKjc4kZM0vkdiczZpbMmduMmSVz5jZjZonc7mTGzJI5c5sxs0RudzJjZsmcuc2YWSK3O5kxs2Te3M7weClUVFSk0tJSBQYG2m0PDAzUoUOHnHqOBQsWqFmzZurWrVttRHSbgIB6no7gMjNmlsjtTmbMLJkztxkzS+bMbcbMErndyYyZJXPmNmNmidzuZMbMkjlzmzGzRG53MmNmyby5neHxUuh6vf7669q8ebNWrVqlunXrejrOdSkqOu/pCC4zY2aJ3O5kxsySOXObMbNkztxmzCyR253MmFkyZ24zZpbI7U5mzCyZM7cZM0vkdiczZpbMm9sZHi+FAgIC5OPj43BT6cLCQjVt2rTax7755pt6/fXXtXLlSoWGhtZmTLcoKSnzdASXmTGzRG53MmNmyZy5zZhZMmduM2aWyO1OZswsmTO3GTNL5HYnM2aWzJnbjJklcruTGTNL5s3tDI9fGOfn56ewsDC7m0RX3DQ6Kiqqyse98cYbWrZsmZYvX66IiAh3RAUAAAAAAPjF8PiZQpI0atQoTZ06VeHh4erQoYP+9Kc/6eLFi0pMTJQkpaamqnnz5po8ebKk8kvG0tLStHDhQt1yyy06ceKEJOnGG29UvXq/3Gv9AAAAAAAAaoohSqEBAwbo1KlTSktL04kTJ9SuXTstX77cdvlYfn6+vL3//6SmdevW6ccff9Rjjz1m9zyPPvqoJk6c6NbsAAAAAAAAZmSIUkiSUlJSlJKSUum+t99+2+7jDz74wB2RAAAAAAAAfrE8fk8hAAAAAAAAuB+lEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWBClEAAAAAAAgAVRCgEAAAAAAFgQpRAAAAAAAIAFUQoBAAAAAABYEKUQAAAAAACABVEKAQAAAAAAWJBhSqE1a9YoLi5OERERSk5O1oEDB6odv2XLFvXr108RERGKj49Xbm6um5ICAAAAAACYnyFKoc2bN2vOnDmaMGGCNm7cqNDQUI0ZM0aFhYWVjt+7d68mT56sIUOG6N1339Wvf/1rTZgwQd98842bkwMAAAAAAJiTIUqhlStXaujQoUpKSlJwcLBmzZolf39/ZWRkVDp+1apV6tGjhx566CG1adNGkyZNUvv27bV69Wo3JwcAAAAAADAnj5dCly9f1sGDB9WtWzfbNm9vb3Xr1k379u2r9DH79+9XTEyM3bbu3btr//79tZoVAAAAAADgl8LX0wGKiopUWlqqwMBAu+2BgYE6dOhQpY85efKkmjZt6jD+5MmTtZbTHXx9Pd7RucyMmSVyu5MZM0vmzG3GzJI5c5sxs0RudzJjZsmcuc2YWSK3O5kxs2TO3GbMLJHbncyYWTJvbmd4Xbly5YonAxw/flw9e/bUunXrFBUVZds+f/58ffLJJ9qwYYPDY8LDwzV37lwNGjTItm3NmjVaunSpdu7c6ZbcAAAAAAAAZubxuisgIEA+Pj4ON5UuLCx0OBuoQtOmTR3OCqpuPAAAAAAAAOx5vBTy8/NTWFiYdu3aZdtWVlamXbt22Z05dLXIyEj94x//sNu2c+dORUZG1mpWAAAAAACAXwqPl0KSNGrUKK1fv14bN25UXl6ennnmGV28eFGJiYmSpNTUVC1cuNA2fsSIEdqxY4dWrFihvLw8LV68WJ9//rlSUlI89SUAAAAAAACYisdvNC1JAwYM0KlTp5SWlqYTJ06oXbt2Wr58ue1ysPz8fHl7/39/1alTJy1YsECLFi3Siy++qFatWmnp0qVq27atp74EAAAAAAAAU/H4jaYBAAAAAADgfoa4fAwAAAAAAADuRSkEAAAAAABgQZRCAAAAAAAAFkQpJOnAgQO677771LFjR40fP95uX05OjhISEjRo0CANGjRIK1asqPa5rly5ori4OD344IN2248cOaKQkBCNGzfObntaWppCQkK0bdu2n53/ueeeU1xcnEJCQvTll19ec3xaWpratWuno0eP2m0fPny4wsPDVVhYaNt2+PBhhYaGOszL9SouLtb48ePVt29f3XvvvRo1apS+//77ah+TkZGhkJAQ7dmzx277H/7wB4WEhOiLL76wbTt37pyioqKUkJBQo7lHjx6t+Ph4JSQkaNiwYXafszJGmOurVczhtY43I8y1JMXFxalv375KSEhQQkKCNm/eXO14I8z35cuXNXv2bPXp00fx8fF64oknDJ+5qKjINscJCQnq27ev2rdvr9OnT1f5GCMcI7m5uRo8eLDtZ/TGjRurHW+EzJL097//XYmJiYqPj9fQoUP11VdfGTZ3db8fJWnZsmXq3bu3evfurZdeeqna56rINn36dLvtu3fvVkhIiJ577jm77VOnTnX695orua/1NRk1tyvrkeHDhysuLs72/Xz1v01ISIjD8VFxjL311lsuZ76as+uRzMxMRUdHKyEhQQMHDtRDDz2k//znP5Lc+/3oylpk9+7d6tChgxISEhQfH6/777/f9r27ePFihYSE6G9/+5ttfMV6sHPnzjWauYKz6xGjzPXVrrUWMdpcO7sWMdpcO7seMUpuV9YiRjtGnF2PGCm3s2sRo2SuqfXI1d/PAwYM0Jo1ayTVzmv1mlqLuCMzpZCkZs2aafr06Zo2bZrDvhYtWmj58uXatGmT3nnnHb3zzjvavXt3lc+1a9cuNWzYUF9//bUOHz5st69Bgwb67rvvdPLkSUlSWVmZcnJyrvtd0/r27au1a9fqlltuuebYsrIybdy4Ub/61a+UmZnpsL9t27bKysqyfZyenq6wsLDryleV3/zmN9q6davee+89/frXv9aMGTOqHZ+enq6YmBilp6c77AsLC1NGRobt4y1btuj222+v8cyLFi1Sdna2srKyNGrUKP3hD3+ocqyR5loq/8GxYcMGRUZGXnOsEea6wqJFi5SVlaWsrCwNGDCgynFGme8FCxbIy8tLf/nLX5Sdna2pU6caPnNAQIBtjrOysjR06FD17NlTjRs3rvIxnj5Grly5oilTpmjOnDnKysrSq6++qpkzZ+rcuXOGzSxJ//3vfzVlyhTNmzdP2dnZSk1NvWZx6Mnc1f1+/OSTT5STk6P33ntPmzdv1o4dO7R9+/Yqn2vLli0KCwvT3/72N50/f95uX6tWrfThhx/q8uXLkspfdOzdu1fNmzev8dzV7TNyblfXI9OnT1dWVpbWr1+v7OxsffDBB7Z9Pj4++vzzz20fZ2RkKDw8/Gdlvpor65GuXbsqKytLOTk5atWqlebMmWPb587fM66sRVq3bq2srCxlZ2erT58+dkXhTzPv2rVLAQEBtZJZcm09YpS5lpxfixhpriXn1yJGmmtX1iNGyO3qWsQox4ir6xEj5HZ1LWKEzDW5Hqn4fn7jjTf04osv2kqumn6tXpNrkdrOTCmk8oVWhw4d5Ofn57AvOjpaN910k6TySb/99tsd/qJ/tfT0dCUnJ2vQoEF23yAV7r33Xr377ruSpJ07d6pdu3bVvvByRpcuXdSiRQunxn788ccKDAzU1KlTlZmZqbKyMrv9gwcPtrXbZWVl2rJli+Lj468rX2Xq1q2r2NhYeXl5SZI6duxY7bweOnRIR44c0bx587Rt2zaHH7R9+vSxW5hnZGQoKSmpxnM3bNjQ9v9nz5615a+MUea64vlnzJihGTNmVHqcX80oc+0qI8z3hQsXlJ6ert/97ne2Y6Pi54dRM1cmPT1dQ4YMqXK/UY4RLy8vnT17VlL5i/HGjRtXeXwbJfMPP/ygxo0b64477pAkde7cWf/5z3908OBBQ+au7vfj5s2blZCQoBtvvFF+fn5KSkrSpk2bqnyu9PR0Pfzww+rcubPDX9r9/f0VExOj999/X1L5WTF9+vSRr69vjeeubp+Rc7u6HqnQqFEjRURE6N///rdtW1JSkm2N8u9//1slJSW2Y/J6uLIeuVqPHj3s8rnr+9HVtUh1maOjo/XDDz/oxIkTtZq5givrkat5aq4l19YiV/P0XP9cnpxrV9cjV/Nk7qtday1yNU8fI66sR67mqdyurkWMkLkm1yMVbrnlFrVu3VrfffedbVtNvlavybVIbWemFHLBt99+q/3796tbt26V7j99+rR27Nih+Ph4DRkyRBs3bqz0RV7FP5onfomlp6crKSlJ7du3V+PGjbVz5067/UFBQbrpppv0z3/+Ux999JHCw8PtFh61ZdWqVYqLi6tyf3p6uhISEtS8eXPdeeedysnJsdvv7++vu+66S9u2bVNeXp4kqU2bNrWSNTU1VbGxsXr55Zc1f/78ajMbZa5XrlypTp06OfWXYCPNtVQ+3/Hx8Zo+fbpOnTpVbW5Pz3fFL9lXX31ViYmJGjZsmHbt2mXozD+1d+9enTlzRr169ao2t6ePES8vL7300kt69NFHdffdd2vYsGGaN29elb9cjZBZKj+z5PTp09q7d68k6f3339f58+erfCFqlNyVyc/P180332z7+NZbb1V+fn6lY7/99lvl5+ere/fuGjJkSKV/NElMTLRtz8zMNMSLPKPmvtZ65GrHjh3Tp59+aneW4T333KPc3FwVFxcrIyNDiYmJtRm3WqWlpdq6datdPk8d19dai1wtJyfH4czNe++9Vxs3btSZM2f02WefqUePHrUR08bZ9UgFT8+1K2uRqxllrp1Zi1Tw9Fy7uh4xSu4KzqxFrubJY8TV9YgRcru6FjFC5uq4sh652tdff61Dhw4pNDTUts3Tr9WvpbYyUwo56dixYxo/fryeeeaZKv8Klp2drZ49e6phw4YKDQ1VYGCgduzYYTemRYsWat68uT788EMdPHhQd911lzviSyq/Vvfjjz/WoEGDJJX/pbCyyxEqtle8YK1tr776qn744QdNnjy50v0lJSXKysqyLVqdyV2bC9z58+crNzdXkyZN0oIFCyodY6S5/uabb/TXv/7V4XrTyhhtrlevXq3s7GxlZmYqICCgylOfjTLfpaWlOnr0qIKDg5WZmakZM2Zo0qRJtlM6jZj5pypKiKrOdDDKMVJSUqJXXnlFS5Ys0Ycffqi33npLqamplS7WjZJZKj/D4+WXX9aLL76oxMREffzxxwoODpaPj4+hc1+v9PR0/e///q98fHwUGxurI0eO2F5cVOjUqZPy8/O1Y8cOeXt71+plFc4yYm5n1iOS9Mc//lEJCQmaMGGCxo8frzvvvNO2z9/fX927d9eWLVu0detW288hd9q9e7cSEhJsx+xPf767+7i+1lpEKj+rquJ+J4cOHdLcuXPt9lcszLOzs9W/f3+nz975uZxZj0jGmGtX1iKSseba2bWIZIy5llxbjxgpd4VrrUUk4xwjrqxHjJLblbWIUTLXpEmTJikhIUFPP/20/vjHP6pVq1a2fZ58rV6d2s78885vtpjjx49r5MiRGjdunPr371/luPT0dJ08edL2V6bz588rIyNDsbGxduOSkpI0bdo03XffffL2dl8vl5WVpdLSUtuN4UpLS3X69GkVFRXZXfvZu3dvLViwQH5+foqJibE1j7XhzTff1F//+le99dZbuuGGGyods337dp05c0YPPfSQpPJrdwsKCvTNN9/YXS8ZGRmpgoIC5eXlKScnx6lTIK/H4MGD9fTTTzvMn2Ssud6zZ4+OHj2qvn37SpJOnDihb7/9VgUFBRo2bJjdWKPNdUXrX6dOHT344IO2r+GnjDLfQUFB8vb2tl3i1b59e91666365ptv1LRpU0Nmvtr58+e1ZcuWSouHCkY5Rr788ksVFBSoS5cukqQOHTqoefPm+vLLLx1+GRolc4U777zT9gL98uXLuuuuuxQcHOwwzmi5fyooKMh2M1Kp/F4hQUFBDuN+/PFHZWVlydfX13Y698WLF5Wenu7wwiMhIUFTpkyp9oW5uxgxt7PrEan8nkK9e/eucn9SUpLGjh2rHj16qH79+jUd9Zq6du2qZcuWVbnfnce1M2sR6f/vq1GV5s2b6+abb9aSJUu0bt262ohaqerWI5Ix5tqVtYhkrLl2di0iGWOuJdfWI0bKLTm3FpGMc4y4sh4xUm5n1yKScTJXxdn1SIVFixapXbt2Ve731Gv16tR2ZkqhaygoKNDIkSP18MMPa/DgwVWO+/zzz3Xq1CnbXwol6cyZM4qNjXVoinv37q0jR47U6js7VCYjI0Mvv/yyevbsads2adIkvffee3bvlla3bl1NmzZN/v7+tfqNsHLlSuXk5GjlypXVXhKTnp6u6dOn6/7777dte+GFF2zbr/bkk0+qqKioVha4Z86c0cWLF203EN22bZsaN25c6TWbRprrYcOG2S24hg8frgcffLDSFwtGmWup/Hr4kpIS27GRk5Oj9u3bVzrWKPPdpEkTxcTE6KOPPlJsbKwOHz6sI0eOVHqatVEyX23z5s0KDQ2t9rRwoxwjQUFBtgVqmzZt9P333+vw4cNq3bq1YTNXKCgoULNmzSRJS5cu1Z133qmWLVsaPvdP9evXT7Nnz1ZKSop8fX2VkZGhiRMnOoz74IMPdNttt2n9+vW2bXl5eRo+fLh+//vf242tOBuuuhu5uovRcju7HnFWx44dNW7cOMP8FbQy7jiunV2LOOvxxx/XF198oZYtW+rIkSM1kNCRK+sRZ9X2XLuyFnGWO+balbWIs9xxXLuyHnGWu37POLMWcZY7jhFX1iPOckduZ9ciznJH5qo4ux5xlqdeq1+P681MKaTyG3mOHDlSly5d0qVLl9SzZ0+NHTtWDzzwgNLS0pSfn69Vq1Zp1apVkqQRI0Y4XMaRnp6ugQMH2r1oa9iwoe666y5lZWXpnnvusW338/PTI488UmP5Z86cqe3bt+vkyZMaM2aM6tWrZ/fWgFL5294VFhY63H8gPj5eixYtsnsRKpXfVK42HTt2THPnztVtt92mESNGSCqflw0bNtiNO378uHbt2mX3LggVuUeOHOlwp/yYmJhay3z27Fk9/vjjKi4ulpeXl5o0aaLXXnvN4RRJo821s4w015JUWFioiRMnqrS0VFL59cHz5s1zGGe0+Z41a5amT59ue9eP2bNnO7wTkdEyV8jIyFBycnKV+410jDRt2lTPPvusJk2aJC8vL125ckVPPfWU3TXlRstcIS0tTXv27FFpaakiIyP1/PPPO4wxSu7qfj927dpV/fv3t/0lesCAAbr77rsdniM9Pd3hBult2rSxnercqFEj2/bAwMAa+f1YXe7q9hk5t7PrEVf89GfN9XJmPeKK2v5+dHYt4oqIiAhFRETUVMRKObsecYU7fvbVNHfMtbNrEVe4a66dWY+4wl25r7UWcYU7jhFn1yOucEduZ9YirqjtzDWxHnFWTb1Wr4m1iLsye125cuXKz340AAAAAAAATMkYF8kBAAAAAADArSiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAACAxyxevFhRUVEu7zOq7Oxs9enTR2GwjqHdAAAIvUlEQVRhYUpISKh0zJEjR7R48WIdP37cbvvu3bsVEhKizz77zB1RbcaPH6/hw4e79XMCAABjoBQCAACoAefPn9f06dMVHR2tVatWaf78+ZWOO3r0qJYsWaKCggI3JwQAALDn6+kAAAAARnDp0iX5+/v/7McfPXpUly9f1r333qvo6OgaTAYAAFA7OFMIAACYxunTpzVt2jR17dpVHTp00H333adPPvnEbkxcXJxmz55tt23btm0KCQnRkSNHJJVfwhUSEqLMzEzNmDFDXbt2VXJycpWft6ysTMuWLVNcXJzCw8PVr18/rVu3zrZ/8eLFio+PlySNHDlSISEhWrx4scPz7N69WyNGjJAkDRkyRCEhIQoJCbEbc+bMGU2ePFlRUVG6++679cYbbzg8z759+zRixAhFRkYqOjpakydPVmFhYXVTJ0nKy8tTSkqKIiIi1Lt3b23cuLHSMb/73e8UGxurjh07asCAAVqxYoXKyspsYxITEzV58mSHx77wwgvq3r27SktLr5kFAAB4HmcKAQAAjyspKXHYdnUJIUmlpaV6+OGHdfjwYT3xxBNq2rSp3n77bY0aNUrr1q1TeHi4y5/3xRdfVGxsrBYuXOjw+a42f/58rVq1SuPGjVNUVJS2b9+up59+WiUlJUpJSVFycrJuu+02TZ06VTNnzlRYWJhatGjh8DxhYWGaOXOmZs+erTlz5uj22293GPP0008rISFBS5cu1bZt27RgwQKFhISoZ8+eksoLoeHDhys2NlYvvfSSLl68qEWLFmn8+PH685//XOXXUFxcrNGjR+uGG26wXdqWlpamc+fOqVWrVrZxBQUFat26teLj41WvXj19+eWXWrx4sS5cuKBHH31UkpScnKy5c+fq7NmzatCggaTyf5+srCwNHjxYPj4+1558AADgcZRCAADAoy5cuKCwsLBK99144422/9++fbsOHDig5cuXq0ePHpKk7t27q0+fPnrttdcqPTPnWkJDQ/X8889XO+bUqVNavXq1xowZo4kTJ9o+b1FRkZYuXar7779fLVq0sJ3xExwcrMjIyEqfq379+goODpYk3XHHHYqIiHAY06dPH9vniYmJ0fbt2/WXv/zFVgotXLhQ4eHhWrJkiby8vCRJbdu21aBBg5Sbm6vY2NhKP3dmZqYKCgq0ZcsWWwnUvn179evXz64UiomJUUxMjCTpypUrio6O1qVLl7R69WpbKRQfH6958+YpOztbw4YNkyTl5ubqxIkTSkpKqnY+AQCAcVAKAQAAj/L399fq1asdtq9fv16bNm2yfbxnzx7Vr1/fVghJUp06dXTPPffYjXNFr169rjnmwIED+vHHH9WvXz+77f3799emTZv03XffqU2bNj/r81eme/futv/38vJSmzZtdOzYMUnSxYsXtXfvXqWmptpdotWqVSsFBQXps88+q7IUOnDggO644w67Aqhly5YKDQ21G1dcXKzXXntN2dnZys/P148//mjbd/78edWrV0/169dX//79lZGRYSuFMjMz1blzZ7vnBwAAxkYpBAAAPMrb27vSM2a2b99u9/GZM2cUGBjoMK5p06b673//+7M+d2XP91MVz920aVOHzyuV3+eoJlVcjlWhTp06Onv2rKTyOSgtLdWcOXM0Z84ch8fm5+dX+bwFBQWVfr2BgYEqLi62ffzCCy9ow4YNmjBhgsLDw9WgQQO9//77euWVV1RcXKx69epJkoYOHar77rtPX331lZo1a6bt27c73MsJAAAYG6UQAAAwhUaNGlV6M+WTJ0+qUaNGto/9/Pzszm6RVGVpVHH5VXUaN24sSSosLFTz5s3tPu/V+92hQYMG8vLy0tixY9W7d2+H/QEBAVU+tlmzZjp48KDD9sLCQtWvX9/28datW/Wb3/xGjzzyiG1bbm6uw+OioqJ0xx13KCMjQzfffLP8/PwczqYCAADGxruPAQAAU4iOjta5c+f00Ucf2baVlJRo27Ztdm8B36JFC+Xl5dk99uOPP/7ZnzciIkJ16tTR1q1b7bZv2bJFgYGBLl8uVadOHUmyOzvHWTfeeKMiIyN16NAhRUREOPx36623Vvt1/Otf/9L3339v2/b999/rq6++shtXXFxsyyiV30A6Jyen0udMTk5Wdna20tPTNWDAALt7QAEAAOPjTCEAAGAKvXr1UocOHTRlyhRNnjzZ9u5jBQUFSktLs43r27evnnnmGS1ZskRRUVHKzc3V/v37f/bnbdKkiVJSUvTmm2/Kz89PkZGRys3N1aZNm/TUU0+5/E5brVq1ko+PjzIyMuTr6ysfH59KL5+rSmpqqh588EFNmjRJAwcOVMOGDXXs2DHt3LlTiYmJ6tq1a6WPS0xM1CuvvKKxY8fq8ccfl1T+7mM/vSyuW7du2rBhg4KDgxUQEKC1a9fq8uXLlT5nQkKCFixYoKKiomvesBsAABgPZwoBAABT8PHx0euvv65evXrphRde0MSJE3X+/HmtWLHC7u3ok5OTNXr0aL3zzjt6/PHHdenSJf3+97+/rs+dmpqq8ePHKyMjQ7/97W/197//XbNmzVJKSorLz9WkSRPNnDlTn3zyiR544AENGTLEpcd36tRJa9eu1YULFzRt2jQ98sgjWrZsmfz9/dWyZcsqH+fv768VK1YoMDBQU6ZM0YIFC/TQQw85FFJPPfWUunTpomeffVZPPvmk2rZtq9/+9reVPmfjxo31q1/9qtp3XAMAAMbldeXKlSueDgEAAADzOXfunHr06KGJEydq9OjRno4DAABcxOVjAAAAcMm5c+eUl5entWvXysvLS4mJiZ6OBAAAfgZKIQAAALjk4MGDGjFihIKCgjRv3jy3vgMbAACoOVw+BgAAAAAAYEHcaBoAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgiiFAAAAAAAALIhSCAAAAAAAwIIohQAAAAAAACyIUggAAAAAAMCCKIUAAAAAAAAsiFIIAAAAAADAgv4PQ2rLabbXdDYAAAAASUVORK5CYII=\n"},"metadata":{}}]},{"cell_type":"markdown","source":["As we can see, though the user sometimes takes his watch off, he still wears it 80% of the time in the worst case.\n","\n","# 5. Data Analysis\n","\n","Data isn't much without some analysis, so we're going to do some in this section.\n","\n","DISCLAIMER: the analyses below may not be 100% biologically or scientifically grounded; the code is here to assist in your process, if you are interested in asking these kinds of questions.\n","\n","## 5.1: Heart rate vs. sleep period length\n","\n","Maybe the heart rate is correlated with how long a particular sleep period was. Let's see if this hypothesis is true."],"metadata":{"id":"KxBCTeZ7Gu7C"}},{"cell_type":"code","source":["#@title Set date range and timezone\n","start = \"2020-01-01\" #@param {type:\"date\"}\n","end = \"2022-05-22\" #@param {type:\"date\"}\n","timezone = \"US/Pacific\" #@param {type:\"string\"}\n","params_all = {\n"," 'start': f'{start}T00:00:00.000Z',\n"," 'end': f'{end}T00:00:00.000Z'\n","}"],"metadata":{"id":"zRpWAQGCQEq4","cellView":"form"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["First we get the length of each sleep in hours."],"metadata":{"id":"w2CMZKfCQvix"}},{"cell_type":"code","source":["sleeps_df['Length (hours)'] = (sleeps_df.enddate - sleeps_df.startdate) / 3600"],"metadata":{"id":"HFkRjV-VQGBK"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["Next we get the median heart rate for each sleep."],"metadata":{"id":"KLRbqHa6RwVI"}},{"cell_type":"code","source":["measurement_timestamps = hr_df.datetime.apply(lambda x: x.timestamp())\n","\n","all_heart_rates = []\n","median_heart_rates = []\n","\n","for sleep_start, sleep_end in zip(sleeps_df.startdate, sleeps_df.enddate):\n"," idxes = np.where(np.logical_and(measurement_timestamps > sleep_start, measurement_timestamps < sleep_end))[0]\n","\n"," heart_rates = np.array(hr_df.iloc[idxes].heart_rate)\n","\n"," all_heart_rates.append(heart_rates)\n"," median_heart_rates.append(np.median(heart_rates))\n","\n","sleeps_df['Median heart rate'] = median_heart_rates"],"metadata":{"id":"z4RmI5SHRIV2","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1663815677643,"user_tz":240,"elapsed":161,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"fe996e41-66cf-498d-ccd1-29cabbd99705"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py:3441: RuntimeWarning: Mean of empty slice.\n"," out=out, **kwargs)\n","/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars\n"," ret = ret.dtype.type(ret / rcount)\n"]}]},{"cell_type":"markdown","source":["Let's make a quick plot to get some intuition. Here we just use [seaborn](https://seaborn.pydata.org/), as it's very quick to get beautiful plots out with minimal effort."],"metadata":{"id":"fdgqfEL9R0ES"}},{"cell_type":"code","source":["with plt.style.context('seaborn'):\n"," p = sns.jointplot(x='Length (hours)', y='Median heart rate', data=sleeps_df, kind='reg')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":602},"id":"e1aGy9iBRmJR","executionInfo":{"status":"ok","timestamp":1663815679739,"user_tz":240,"elapsed":2098,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"667f5539-9d4c-475d-d61b-1a10c4b8fac6"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAlQAAAJJCAYAAABs0KlsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3hc1Z038O+9d3pVdzfuVTIuAcfEhBCb0GLApryULHUJBBw2S3iyL3k32c0+bIAUnmWxA8EkbOh4Y+xgeoxpCRAIxZbBvcjd6tPbLe8fUzRjWbKkGd07mvl+HsSM7ty5OkfySL8553d+R9A0TQMRERERDZhodAOIiIiIhjoGVERERER5YkBFRERElCcGVERERER5YkBFRERElCcGVERERER5YkBFRERElCcGVERERER5YkBFRERElCeT0Q0oZpqmob09BFUtnWLyoiigqsqZV78+++wTPPviuxg5dmKBWzdQAqxWE2IxGYCxP6vD+3fjqou+jjlz5uV1nUL8nIpRKfaLfRo6SrFfoiigutpldDMIDKh6JQgCRFEomRcekHzxFaJfI8dOxLhJ9QVs2cCJogC73YJIJF4yP6tC/ZyKTSn2i30aOkqxX6IoGN0ESuGUHxEREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5clkdAOK2ccffwy/PwJFUY1uSsFIkgiPx55Xv7Zv3wZFcRa4ZUREREMXA6pePPbcBtQOPwWaphndlIIRBAFWqxmxWGLA/dr88WcYNWFGgVtGREQ0dDGg6sXoUyZh5NipUNXSCahEUYDdbkEkEh9wvw4f2F3gVhEREQ1tzKEiIiIiyhMDKiIiIqI8MaAiIiIiyhMDKiIiIqI8MaAiIiIiyhMDKiIiIqI8MaAiIiIiyhMDKiIiIqI8sbAnEekmHo/j44+/LKktnQqxnVPazJkNsFgsBWoZEemJARUVnKpqkBUVqqpB0bTkrZq8zT6WOZ4u2K5pyK7dnr0zjgYN0JJb5wgCIAoCBFGAKACSKMJmi0FOKACS54hC8g+d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lYh0wVMcV/D0ZGRFRTSuIBZP5njJqgaTxYTW9hDCERnRuJyankzmfkXjyWlKWdGQkFUkZAUJRU3dT30oKuTUbSKhYqgtYtRS/0veasc/UkT697OmwcOAioiozJkkES67mNzmB4DJJKKy0omOjhDkHqYR+0PTNChqMvhSU/fV1Idygtuu+ypUVcOOnTuwaXcbho04JTfQgZb5PHOjaZmQJzsO0jQNgiDAbJYQTyjQVK3b+ennaKkvoGWuoSWP9/ZY1rVO+LmW6rOWnMpVVS15TEPqeOpzNfW4pkFL3T9RHh0VHwZUREQ0qARBgEkSBlzuIdphxt6DCoZVOfJqh3iCFZlDgZYKsBRVg6p0BZ2KquHwwT1GN49SGFARERUBRZaxffs2o5sBAJAkER6PHX5/BIqS/whVvrZv3wZFOXkOWakSBAGSIEAS0e2vtt9i/M+HkhhQEREVgWNHmrBjqw9HI26jm5Isamo1IxZLQCuCEu6bP/4MoybMMLoZRL1iQEVEVCTqRo7FuEn1Jz9xkBXb1NjhA7uNbgLRSXG9JREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeWIeqFwebdhVNYbtCKUTBvtajh2C2+bBv15YCt25giqkI4eH9u7HdHsj7OsVWqbpQdu7cjoNN7UXxsyqUQv37K6bXVTG9poDCfW+KrV+FcIRbzxQNQSuVf1VEREREBuGUHxEREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5YkBFREREVGeGFARERER5akoAqpjx47hrrvuwvz58zFr1iwsWbIEjY2NmcffeOMN3HjjjZg/fz6mTp2KrVu39um6r776Ks477zw0NDRgyZIleOeddwarC0RERFTGDA+ofD4frrrqKpjNZqxatQovv/wy/uVf/gVerzdzTjgcxty5c3HXXXf1+bqffvopfvjDH+Kyyy7DunXrsGjRItx+++3YsWPHYHSDiIiIypjhmyP/6le/wqeffopnnnnmpOcePHgQixYtwrp16zB9+vRez/3BD36ASCSC3/72t5ljV1xxBaZNm4b/+I//yLvdRERERGmGj1Bt3LgR9fX1uOOOO7BgwQJccsklWL16dd7X/fzzz7FgwYKcYwsXLsTn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KYDFoIGRSVXCYkJFRESkEGaDBiY9D1VOREyoiIiIFMSkV8NsYFKVaJhQERERKYxRp4aFSVVCYUJFRESkQAadGhaDRu4wKEpMqIiIiBTKoFMhxagBT/9TPiZURERECqbXqpBiYlKldEyoiIiIFE6nUSHVpGVSpWBMqIiIiBKAViMh1cykSqmYUBERESUIrVqC1ayFwKxKcZhQERERJRCNWoKNSZXiMKEiIiJKMGqVBJtZB5FZlWIwoSIiIkpAapWItBSd3GHQWYLf7/fLHQQRERFRIuMMFREREVEbMaEiIiIiaiMmVERERERtxISKiIiIqI2YUBERERG1ERMqIiIiojZiQkVERETURkyoiIiIiNqICRURERFRGzGhAvD666+jf//++N///d9mP27dunWYPHky8vLyMH36dGzevDlOEcYumjHl5+ejf//+Ef/l5eXFMcqWvfLKKxfEOHny5GY/R+k/p1jHlAg/p6DTp0/jiSeewOjRozFkyBBMnz4dBQUFzX7Od999hxkzZiA3NxeTJk1Cfn5+nKKNTqxj+u677y74efXv3x9lZWVxjLp5EyZMuGiMzz77bJOfo/TnVaxjSoTnldfrxV/+8hdMmDABQ4YMwcSJE7F48WK0dMCJ0p9TyUoldwBy2717N/7973+jf//+zX7czp078fjjj+Oxxx7D+PHjsXr1asybNw/5+fno169fnKKNTrRjAgCTyYT169eH/i0o8KDNnJwcLFmyJPRvSZKa/NhE+TnFMiYgMX5ONTU1uOOOOzB69Gi88cYbsFqtKCoqQkpKSpOfU1JSgoceegi33347XnrpJWzduhW//e1vkZ6ejquvvjqO0V9ca8YUtH79ephMptC/09LSOjLUmHz44Yfwer2hfx88eBD33ntvk4l9IjyvYh0ToPzn1RtvvIH33nsPCxYsQN++fbFnzx785je/gdlsxt13333Rz1H6cyqZdeqEym6341e/+hWee+45vPbaa81+7DvvvIOrr74aDzzwAADg0UcfxZYtW/Duu+/i97//fTzCjUosYwICLyDp6f+/vbuPaep64wD+tchEJ0UFBBWMgLEIhVIIAxyKgErmNkWZ8V3QZepwOkGcc1EXHRtTwMGA8GJE0BEZzITJiNNtmmkkMq2vqDB0U0FehPKuUwqe3x+E+7O0FdqKtPB8EhLvvef0Pg8nRx7OPS3m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\n"},"metadata":{}}]},{"cell_type":"markdown","source":["As we can see from the scatterplot above, it looks like there might be a correlation there. Let's compute $R^2$ just to see exactly how correlated.\n","\n","We'll follow [this documentation](https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.stats.linregress.html) and perform a linear regression to obtain the coefficient of determination."],"metadata":{"id":"iTUONdMRSqf3"}},{"cell_type":"code","source":["from scipy import stats\n","\n","# eliminate any nan's\n","filtered_sleeps = sleeps_df[~np.isnan(sleeps_df['Median heart rate'])]\n","\n","slope, intercept, r_value, p_value, std_err = stats.linregress(filtered_sleeps['Length (hours)'],\n"," filtered_sleeps['Median heart rate'])\n","\n","print(f'Slope: {slope:.3g}')\n","print(f'Coefficient of determination: {r_value**2:.3g}')\n","print(f'p-value: {p_value:.3g}')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"H5dJPADyRZ5h","executionInfo":{"status":"ok","timestamp":1663815679739,"user_tz":240,"elapsed":4,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"bbd7e33b-28f4-42d1-dba1-9ed1b7c68a4c"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Slope: -0.645\n","Coefficient of determination: 0.849\n","p-value: 5.72e-08\n"]}]},{"cell_type":"markdown","source":["We also see that the p-value, which is determined by scipy to be the two-sided p-value for a hypothesis test whose null hypothesis is that the slope is zero, is significant ($<$0.05).\n","\n","So given this evidence from this particular data, maybe length of a sleep period is correlated with your heart rate.\n","\n","## 5.2: Outlier Detection\n","\n","However, let us suppose that there is an outlier here. We'll manually inject one, as one is currently not really present in the data, just to demo that we can deal with outliers here."],"metadata":{"id":"Vjbyo5j_S10f"}},{"cell_type":"code","source":["import copy\n","outlier = copy.deepcopy(sleeps_df.iloc[0])\n","outlier['Length (hours)'] = 8\n","outlier['Median heart rate'] = 120\n","\n","filtered_sleeps = filtered_sleeps.append(outlier, ignore_index=True)"],"metadata":{"id":"CE42wTDwd2f3"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["Now that we know that there is at least one outlier in this dataset, let's implement a system based on a normal distribution to automatically detect and remove outliers like this, based on the method described [here](https://medium.com/analytics-vidhya/outlier-detection-with-multivariate-normal-distribution-in-python-480033ba3a8a)."],"metadata":{"id":"UlxXVE3rdWLZ"}},{"cell_type":"code","source":["from scipy.stats import multivariate_normal\n","\n","# calculate the covariance matrix\n","data = np.stack((filtered_sleeps['Length (hours)'], filtered_sleeps['Median heart rate']), axis=0)\n","covariance_matrix = np.cov(data)\n","\n","# calculating the mean\n","mean_values = [np.mean(filtered_sleeps['Length (hours)']),np.mean(filtered_sleeps['Median heart rate'])]\n","\n","# multivariate normal distribution\n","model = multivariate_normal(cov=covariance_matrix,mean=mean_values)\n","data = np.stack((filtered_sleeps['Length (hours)'], filtered_sleeps['Median heart rate']),axis=1)\n","\n","# finding the outliers\n","# any point with a probability lower than the threshold value is considered an outlier and removed \n","threshold = 1.0e-05\n","outlier = model.pdf(data).reshape(-1) < threshold\n","\n","new_data = copy.deepcopy(data)\n","\n","for i, boolean in enumerate(outlier):\n"," if boolean:\n"," print(data[i], \" is an outlier\")\n"," print(np.where(np.logical_and(data[:,0] == data[i,0], data[:,1] == data[i,1]))[0].item(0))\n"," # delete outliers\n"," new_data = np.delete(new_data, np.where(np.logical_and(data[:,0] == data[i,0], data[:,1] == data[i,1]))[0].item(0),axis=0)\n","\n","# plot new graph with outliers removed\n","# new_data[:,0] correspond to the new lengths, and new_data[:,1] correspond to the new values\n","p = sns.jointplot(x=new_data[:,0], y=new_data[:,1], kind='reg')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":637},"id":"EduLuWUBbyGN","executionInfo":{"status":"ok","timestamp":1663815681680,"user_tz":240,"elapsed":1944,"user":{"displayName":"Rodrigo J Castellon","userId":"11221204973290737308"}},"outputId":"7cdfc4b0-c93b-498a-d6ae-549d1be1db87"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["[ 8. 120.] is an outlier\n","18\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAlIAAAJICAYAAACqkgqOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZzcVZ3v/9epvar3dHf2hIQkhBAJ0HEclas4iAqoqCOKQGZwvNfHgLiiXHTUcRgU5Ye7IvnNzPWOMwQFRkRAYFwRdzSBgCEhIQnpLJ30vtVe9T33j1q6k3TS3ZWupavez8ejH9X9rW/X9yTpTr/7nM/3c4y1FhERERGZPle5ByAiIiIyWylIiYiIiBRIQUpERESkQApSIiIiIgVSkBIREREpkIKUiIiISIEUpEREREQKpCAlIiIiUiAFKREREZECeco9gCJT2/aT6Ozs5Mw1a4hGIuUeSkULhkLs2L6dpUuXlnsoIiKm3AOQo1V7kJKT6O3tJRqJcPVNtzNv6YpyD6ciHenczabbbqS3t1dBSkREjqMgJcxbuoLFq9aWexgiIiKzjmqkRERERAqkICUiIiJSIAUpERERkQIpSImIiIgUSEFKREREpEAKUiIiIiIFUpASERERKZCClIiIiEiBFKREREREClTVnc07Ozvp7e0t9zAq1vbt28s9BBERkVmtqoOUNuSdmtHR0XIPQUREZFaq6iClDXlPbvuTv+TR73yNWCxW7qGIiIjMSlUdpEAb8p7Mkc7d5R6CiIjIrKZicxEREZECKUiJiIiIFEhBSkRERKRAClIiIiIiBVKQEhERESmQgpSIiIhIgRSkRERERAqkICUiIiJSIAUpERERkQIpSImIiIgUSEFKREREpEAKUiIiIiIFUpASERERKZCClIiIiEiBFKRERERECqQgJSIiIlIgBSkRERGRAilIiYiIiBTIU+4ByKlzHEs87RBPpomnnOxbmmTakkw7pLKP+fcdh2Ta0scS5l5xC0/HWtn5p/2kHYtjbfYR0o7FWjvxRc1EhwwuA26XGXszBlf2fY/L4DJjz3ndLnxuF16PyTy6Xfg8rrHjboPXk3nf73FhzAQXFRERKSMFqQpjrSWRcogk00QSaaKJNJFEKvOYzH2cJpZKE086JFIOibRT4NXqCS47jyEHhoZiM/rnKIaAx4Xf6ybgdRHwugl4xr3vdRPwZN4P+tyEfG5CPg9ul8KXiIgUj4JUCaXSDqPxVP5tJJZ9P/sYyYYm5wSTQJPxug1+jxu/JzOz4/O48GRnfrzZGR6P24U3e+zAzq38/qG7efXb38PpZ67NzxblZpVcJvN2IpajB2ot+Rmt/FtuhsvhqI/TjiWRdkimMjNliXRmlixx1McOyVTmcwBiKYdYymEoOvW/E7/HRZ3Pkw1WmXAV9Gfer/N5qPd7qA94CGjGS0RECqAgNYMSKYfhWJKh6Njb+LAUTaan/Fo+t2vczIqboDcbArIf+7OzL36PC7/Hjc/jmvbsS2rnEOHnHqf9iqtY0V4/3T9uyaQch3jSIZZME0tlljCjycyMXCyVJpZ/Lk0s4RBJZmbwHEt2mTNBf+Tk13C7DPV+Dw3ZYFXvz7zFIwbfvBUMxtI4jsWlGS4RERlHQWoarLWEE2mGIuPCUiyZ/3gqQcnjMvkf1Ef90A548jMnQa8bj1v3AeR4XC48fhd1/ql/uVpriSUdIoncTF/6uPfDiXQ+4KYdm/83PZqXBe/+Gu95sBvvjx5lXmOARc1BlswJsbglyOKWEEtagiyeE2J+Y6BmlxI7Ozvp7e0t9zAqWltbG0uXLi33MCqavo4m19HRUe4hyDEUpCaQchyGIkn6IwkGIkkGwgkGIgkGwslJ65ECHheNQS/NQS+NQS+NAe9YcAp4VDRdIsYYgr5MvVTrJOemHIdwPJ1fYs3NII7Ek/QPjdDTN4C3oZVk2nJgIMqBgSh/2Nt/3Ot4XIaFzUEWtwRZ0pIJWrnAtXROiPYGf1X+23d2dnLmmjVEI5NM+9W4YCjEju3bFaZOQF9HU3PCG4CkbGo6SCXTDn2jCfrCcfrDmdDUH04wHE1yoi9VAzQEPDSFvDQFs28Bb+bjgBe/113KP4LMAI/LRVPQRVPQe9xzB3Zt48u3XMMf/vgnFq08i67BKAcHo+zvj3BgIMr+gczjwYEoKcfS2R+hsz8C9B33WiGfm9Na61jWGjrqcXlbHXMb/LN22bC3t5doJMLVN93OvKUryj2cinSkczebbruR3t5eBakT0NfR5I507i73EGQCNRGkHMcyGE3SNxqnNxucekcTEyzjjPG5XbTUeZkT8tFc52NOyEdLKBOYPC4tu9Uaj8uwqDnIouYgL53g+bRjOTIcy4Sro0JWhP39UbqGokQSabZ3DbO9a/i4zw94XZw2p47TWkMsa8s8Lm+t47S2OhY0BmZFyJq3dAWLV60t9zBkltPXkcw2VR2kWi/9CD/r8jByYDfpE9wKF/K5aa330Rry01LnpSXkY06dj5DPXZXLMFIc7uyy3sLmIC9bPue45+OpNAcGouzrC/NibyTz2Bfhxb4wBwaixJIOzx8Z4fkjI8d9rs/jYumcEMtaQyxvq+P09npOzz621fv0dSoiUkZVHaTqz34tg0kAi8dlaK330Vbvp7Uu+1jvI+Sr6r8CqRB+j5sV7fUT3h2ZTDscHIjyYl+Yfdlwta8vwou9YfYPREikHF7oHuWF7tHjPrch4OH09npWtNVxensdy9vqs491BLTMLCJSdFWdIgZ/dRcXv+0KVq9aSVPQq9/cpSJ53S6WtdWxrK3uuOdSaYeuoRgv9oV5sTfM7p4we3rD7OkZ5eBglJFYiq37B9m6f/CozzMGFjYFOb29jhXtY+Hq9Pb6WbNUKCIyG1R1kBr67fdYdPU7aQ75yj0UkYJ43C6WzAmxZE6IV61qP+q5WDLNvr4Ie3pG2dMbZnfPKHt6MiFrOJbiYLYw/le7jr6dPOh1syw7g7Uit1SYDVoNgeML7kVE5MSqOkiJVLOA183q+Q2snt9w1HFrLX3hRD5UZWawwuzpHaWzL0I0eeKi9/YGf77+6vT8cmEdS+aE8Kq3mYjIcRSkRKqMMYa2ej9t9f7jCt+TaYf9/ZF8sMqErcz7vaMJekbi9IzEj+uT5XEZls7JFbtnarFy76uvjYjUMgUpkRridbuyS3n1wLyjnhuKJtmbrb/am5/FCrO3d5RY0snMbPWG+dmOo18z4DHMv+ar/KHXzQF3H82hzN2vzSEvfo8K3kWkuilIiQgATUEv5y5p5twlzUcddxzL4eFYJlz1htmbncHa2xtmf3+EWMrin7+SAxE4cMxMVsjnpiXbg605+9gS8tEY9NbsdjoiUl0UpETkpFzjemSdv7LtqOcSKYfHfv1H3vXeD3Hh//wENjSHgUiCwUhy3L6GmaL38YyBxoA30+Q2t0NAyEtz0EdjwKO9JkVk1lCQEpGC+TwuFjd6ib7wB1Y3OixeNbZcGE+mGYgmGczuUzkYSeQ/TqZPtEl0Rr3fc0zAGgtc6o8lIpVEQUpEisLvdTPf62Z+Y+Co49ZawvF0fuZqKJpkMJrIB6tk2uY3jz52JgvA78nsi9icDVm5gNUQ8FLv92jJUERKSkFKRErKGEN9wEN9wMOSY3bTsdYSTaYzoSqSZDAbrnJvkUSaeMqheyRO90j8+NcG6vweGgIeGgPesceghwa/h8agV20cRGRGKUiJSMUwxhDyeQj5PCxoCh73fCLlHBWscm/D0SQj8RRpZ2w2q2soNuE1Al5XPmQ1BLw0BjzU+z3U+cceNaslIlOlICUis4bP46K9wU97g/+456y1RBJpRmIphmPJ4x+jKRJph1jSIZaceEYrJ+h1Z0OV+6iQNf79gNelbadEREFKRKqDMYa6bNCZ3xSY8Jx4Ms1wLMXIMUFrNJ4iHE8RjqdJZ5cXo8k0PcfvE53nMpnAFfJ5CPrchLJvQZ+bkNcz9r7PTVo9S0WqloKUiNQMv9dNu9c94YwWjNVohePpfLga/ziaDVvRZBrHQjiRJpxIT+HKPpZ86Hu875Fu5v321zSFfDQHvTSPK5ZvHncsc9xHU9CLz6OaLpFKpiAlIpI1vkbrRGELIO1YIokU0USaSDLTLyuaSBNJpMa9nyaSzJzjWHAF6jk8mubw6NC0xhT0uvMF9HV+N3W+3PvHLzfW+zNF/CGfm6DXTSD/5iLodePPvu9za1lSZKYoSImITJPbZWgIZFouTMZay97nn2PjzR/k3+++j3mLlzOY7ac1HE1m38/eoRhJHHWnorXklxl7R09c0zVdJrssGfC6CXhcBLIhy+c2eN0uPNnHzJvB43bhdeWec+HLHcs+73W7cLsMLmNwGTKPrnHvG7Ifjz9mcLnG3t+3P0rojFdyMGJI9IyCAYPBQPZ98uHPZP8MJvvEhB+PPz97jOyxXIbMnXPUNRj3vDnxx7k/iwKpKEiJiBSRMQafG1J9B1jT5qPjrHmTfxKZrXlydVyjRy0tphiNHfPxBEuRsWQ6W1ifJpYcW44EsJZ85/lK0v62f+D3vUBvV7mHMmXjg6PbmGygJP9xLlC6jznH4zZ4XK7s4zHvZ4OrO3uON/s4lFBoq0QKUiIiFcjlMpmGo6HJZ72mwlpLMm2JpTLBKpZwxt5POkSTaVJph2TaIZm2JNMOqbQl6TgkUw4px5LIHcuekzs/kbY4jsWxFseSfcy+nz9+7MfjznNgeGSEzVu2sGjFWXgDISwWmwt+2fFn/hyZj7Hkz7Hj/ow2e86EH48/f9znj7/G2HNTk/tz5FNqUc3M14LMLAUpEZEaYIzB5zH4PJk+WpVmy5YtrP/Yx7n6jvtZvGpJuYcDHB/ebDZhjQ+BaWcsIKZtLlCSPT52LJ0NjI61pJxMCM08WlKOk30cd9zJBNZ09pyk45BITLylkpSXgpSISIls37693EOoWJX4dzO+xip7pGxjATiwa1tZry8TU5ASESmy4f4eADZs2FDmkVS+0dGTNO8SqUAKUiIiRRYdHQbgjX//SVavW1/m0VSm7U/+kke/8zVisYm39hGpVApSIiIl0rrwNBavWlvuYVSkI527yz0EkYKoZa6IiIhIgRSkRERERAqkICUiIiJSIAUpERERkQIpSImIiIgUSEFKREREpEAKUiIiIiIFUpASERERKZCClIiIiEiBqrazuTEmBJltB9Qxd2J7t20BYM/W35OODJV5NJWp//ABAB555JGK3FS1EuzduxfQ99rJ6Httcvo7mlz/4QOY6/+6A9hhrY2UezySYay15R5DURhjOoDN5R6HiIjIDFtvrd1S7kFIRjUHqRBwZrnHISIiMsM0I1VBqjZIiYiIiBSbis1FRERECqQgJSIiIlIgBSkRERGRAilIiYiIiBRIQUpERESkQApSIiIiIgVSkBIREREp0LSDlMm41hjzjDEmaozpNsY8aIypzz7vNcZ82hjzY2PMsDHGGmNecyqDNMa0GGP+3RgzYIwZMsbcY4yZeyqvKSIiInKqCpmRuhW4E9gBfBD4PJAEgtnn64B/BlYCz87AGAF+ALwduB34LPBa4FFjjHuGXl9ERERk2qa1abEx5kzgRuBWa+0nxz31lXHvjwBLrbX7jTGXA688lQEaY14HXAC821r7neyx54CHyYSre0/l9UVEREQKNd0ZqSvJzD59HiC3nDeetTZtrd0/A2PLeTMQB+4Zd+xRoA+4bAavIyIiIjIt0w1Sf0lmue4yY0w3MGKM2W+MuXLmh5Z3NrDTWhvLHbDWOtlxnF3E64qIiIic1HSD1CKgHdhIpl7pCmAPsMkY0zHDY8uZDxwBMMb81Biz1RjjA7qzz03IGBMyxnQYY0JFGpeIiMisoJ+JxTOtGikgBCwDrrfWfgvAGPMIcIhM7VQxZqb8QCL7/jKgBfCSWe4LnOTzzgQ2L/uf32DNpx/DsQ7JtOWG153B+y9cVYRhioiIFJ0p8PPOBDYDGDO1l1h07bfxNM3l8F3/m/jB5056bjAUYsf27SxdurTA4VWkKf1FTTdI5QLN/bkD1tpRY8xvgXXTfK2pigO+7PvnAm5rbdgY4wdiJ/60ozk28zeyqFlhXEREatMl13yINS+7YErn/qrbQ3cMLv3grSyvd0543pHO3Wy67UZ6e3urLUhNyXSDVA+ZVNtzzPF+YP2MjOh4h4F5kAlt447PzT43Kcc6pNKWppCXN69bUIQhioiIVL458xezeNXaKZ27wOmm+8AQpr6dxavaijyy2Wu6NVK5ub1ja5PaySzvFcOzwBnGmPwynjHGRabQfNI+VSnrkEhZ3C7D9a9ZgcejZu4iIiKTaQllFoMGIolJzqxt000Vj2Ufr8odMMa0AucDfyp0EMaYHcaYHSd4+mEydVJXjDt2CdAKPDTZa1snMxN108Wree+rVxQ6RBERkZrSUpcJUv0KUic13aW9B8kUq92a3aKlE3gv4Aa+kDvJGPN+oBnIzR/+jTHmfwCD1tpvTvC6q09yzZ8AvwK+YYxZSKaP1ceBp4HvTzbgD1+0mg9fcZFmokRERKahJeQFYDiaJO1kVnbkeNMKUtZaxxhzCfBF4D1ktoN5CniDtXbXuFM/Bpw27uP3ZB/3ARMFqZNd0xpj3gp8FbiJzCzaY8AHrbWpyT7/wjVzFaJERESmqd7vwes2JNOWoWiSOXW+yT+pBk13RgprbQ9wzSTnLJvma5405lpr+4G/nc5rioiISOGMMcyp83FkOE5fOK4gdQKaqhEREZEJ5cJTf1h1UieiICUiIiITUpCanIKUiIiITEhBanIKUiIiIjKh1jo/AAORJI5jyzyayqQgJSIiIhNqCHjwuAxpxzIUS5Z7OBVJQUpEREQm5DJmrDGnlvcmpCAlIiIiJ6Q6qZNTkBIREZETUpA6OQUpEREROaFWBamTUpASERGRExo/I2Wt7tw7loKUiIiInFBTwIvbGFKOZTg26Ra3Nafqg1T/aFwJWkREpEAul6G5zgtoeW8iVR+kIsk0XUMx0mokJiIiUpBcnVTvaLzMI6k8VR+kAGLJNIcGoyRSTrmHIiIiMuu01Wc6nPeNakbqWDURpACSaYeuoSjRRLrcQxEREZlVckFKM1LHq5kgBZB2LIeHY4yozb2IiMiUtdVnlvYGIglSjlZ3xqupIAVgraVnJK6CORERkSmq93vwe1w4FgbCmowYr+aCVM5gJMGR4Zju6BMREZmEMUbLeydQs0EKIBxPcXg4hqM7+kRERE4qt7ynIHW0mg5SANFEmq5htUcQERE5mbEZKZXGjFfzQQognkzTNRQllVYBnYiIyES0tDcxBamsRMqhayhGUmFKRETkOK3Zpb1IIk04rq1ichSkxkmmHboGY8RT6jUlIiIyntftojmU2SpGs1JjFKSOkXIcDg/FiCUVpkRERMZTh/PjKUhNIO1YuoZiRBKauhQREcnRnXvHU5A6AWstR4bjjGodWEREBNCdexNRkDoJay3dwzEGI/qCERERyQWp/nBCbYOyFKSmoD+coGckri7oIiJS0xoDHnxuF2lrNcmQpSA1RSOxJEeG4+qCLiIiNcsYk2+D0KM6KUBBaloiiRSH1LhTRERqmOqkjqYgNU2JlMPBwajaI4iISE3SnXtHU5AqQK49wnAsWe6hiIiIlJR6SR1NQapA1lp6R+L0jqoIXUREakcuSI3GU0S1OqMgdaqGo0kOD8d0G6iIiNQEn8dFUzCzVUyflvcUpGZCNJHm0GBUe/SJiEhNyNVJ9YwoSClIzZDchsfaEVtERKpdq+7cy1OQmkGOtRwZjjEQ1heWiIhUL925N0ZBqggGIgm6h2MqQhcRkarUnrtzL5yg1n/UKUgVyWg8RdeQitBFRKT6NAW9eFyGtGMZrfGKFgWpIoolM0XoiZQ6oYuISPUwxuTbIAwlTZlHU14KUkWWTDt0DakTuoiIVJdcndRQorajRG3/6Usk1wk9kqjx+U8REakampHKUJAqEWstR4bjao8gIiJVIR+kEgpSUiLWWrpH4owqTImIyCyXW9qLpA3GFyrzaMqn6oPUpj/sI5munGJvay3dw9rwWEREZje/101DwAOAb+7yMo+mfKo+SD2xs5cb7t1acfsB9Y7EGYooTImIyOyVW97ztp9W5pGUT9UHKYBth4a59q4tbDs0VO6hHKUvHGcwoi7oIiIyO+WW93ztmpGqen3hBB+5ZysPbT1U7qEcpT+coF9byoiIyCzUWqcZqaoPUle9bCluV+aOgpRj+cpPd/GlH++sqCaZg5FExS09ioiITGZsRmoZTo3uFVP1QeqC1e18+R3n0BLy5o/96NkuPnLv0/SMVE54GYom6R6JlXsYIiIiU9YS8uHC4vKH6AnXZuPpqg9SAGcvbmLjhvWctaAhf2x71wjX3rWZZw4MlnFkRxuNpTiizY5FRGSWcLkMjd7Mz6x9Q7XZ2qcmghRAe4OfL7/zXN60bkH+2EAkyUfve4YHnjpYMeElHE9xeDiGo82ORURkFmj0ZX5evThYm3ei10yQAvB5XNzwujO44XWr8GTrptKO5es/f4Hb/7ty6qaiiTRdwzHSClMiIlLhmrIzUp2akaodb1q3kK9ccQ6tdb78sce2HeZD33ua7uHKqFOKJ9McGoxWVDNRERGRYzXll/Y0IzUlJuNaY8wzxpioMabbGPOgMaZ+3Dktxph/N8YMGGOGjDH3GGPmFjJAY8y7jTF2grfHC3m9nLULm9i4oYOXLGzMH3v+yAjX3rWFrfsro24qmXY4NBgllqzNAj4REal8Tdmlva7RNNFE7f28KmRG6lbgTmAH8EHg80ASCI475wfA24Hbgc8CrwUeNca4T2GsHwH+Ztzb56bySZ29kRPektla7+dL7zyHy85ZmD82GE3y0fu2cv+WAxVRN5V2LIeHYkQStTllKiIilS3ghnR4EMfCru6Rcg+n5DzTOdkYcyZwI3CrtfaT4576yrhzXgdcALzbWvud7LHngIfJhKt7CxzrA9baF6f7SXf+8gV+0V/PVS9bwnlLW4573ut28eGLVrF6Xj1f/dkukmmLY+Gbv9jN80dGueGiVfi9p5L/Tp1jM2GqrcFPY8A7+SeIiIiUUKLnRYJ157Lj8AjrFjeXezglNd0ZqSvJzD59HmD8ct44bwbiwD3jjj0K9AGXFTDGHGOMaTTGmOl8kt/rZk/PKF/+yU6e6hw44XmXnL2Ar15xbr65GMBPnjvCB7/3NIcrpG6qdyTOgLqgi4hIhUn2vAjAjq7am5GabpD6S+BZ4DJjTDcwYozZb4y5ctw5ZwM7rbX59GGtdbKfd/YpjHUrMAQMGWPuNMaEpvJJPreLtnofkUSau5/cf9LOq2sWNLJxw3rOXtSUP7are5Tr7tpy0hBWSgORBL3qgi4iIhUk0b0XgB2Hh8s8ktKb1tIesAioBzYCtwD7gOuBTcaY5621W4D5wAEAY8xPgXbgL4Bu4KwCxhgG/gV4gsxs2KXAtcBy4OKpvIDB0BDwsr8vzAtHwpwxf6KJtIw5dT6+9I513PnLPfzgqYNApuv4jf/1DH9/wQou71jENCfFZtxwNIljLe31/rKPRUREZo99u7bjDjVNfuI09B3al5+R+vOBATZv3lwVP5s6OjqmdN50g1QIWAZcb639FoAx5hHgEJnaqSsBP5Bbf1oGtABeMst9gWleD2vtfcB94w7da4zpBT5qjHm1tfaJqbyOz20YsZah2ORLYx63iw9cuJIz5tXz5Z/szNdN3fn4bnYeHuGjrz+DQJnrpkZjKRwH5jUqTImIyNT8+v5v8+v7vz3jr2s8PqyTZjgOL7vgIpxwZdz9fiqmesPZdINULoXcP+5Co8aY3wLrsofiQK7Q6FzAba0NG2P8wEwVG90JfJRMUfuUglQibfEaQ1PAN/nJWW9YO5/lbXX84w+30Z3dl+9nO7rZ1xfh5recxYKm4CSvUFyRRIquIcv8xgAul8KUiIic3CvfdCXL105tpmU6gvWN/C7mYjQFV978f5kXLP9d76fiSOfuKZ873SDVA5yZfRyvH1ifff8wMA8yIWvcOXOzz82EQ9nH42/Dm4DFMhJLcnp7PSvn1U3rQmfMa2Djhg7++eHneHr/EAAv9GTqpj71xjW8dNmcab3eTIslM13Q5zcGcCtMiYjISSxf28H6157KfV8ntueZQ4z2hHG3LGTxktq5c2+6xebPZR/nH3O8nbFw8yxwhjEmv4xnjHGRKTR/tpBBTmBJ9vHYQHecRNqhdzRByOfmqpctwVXAMlhzyMftl5/D5esX5Y8Nx1J8/P5n+d4f95e931Q8maZrKKotZUREpGzmZHcL6a+xu8unG6Qeyz5elTtgjGkFzgf+lD30MJk6qSvGfd4lQCvw0EQvaozZYYzZcYLn2iY4/MHs408mG3A8meb09npueN0ZE/aRmiq3y/C+16zkHy49E58n89fmWPiXJ/Zwy8PbiZa5+3gilemCntKWMiIiUgZzQrUZpKa7tPcgsBm4NbvlSyfwXsANfCF7zk+AXwHfMMYsJHOn3ceBp4Hvn+B1V5/kmr8yxmwBngKiwOuAtwD/aa3900k+D4DrLljJxX91dkEzURO5aM08TpsT4h8f3MaR4Uzd1OM7e+jsj3DzW9ayqLl8dVOZLWVizG8K5MOeiIhIKWhGagqy/aAuAe4G3kNmC5gw8AZr7a7sORZ4K/AAcBPwj8DPgUustYXsc/IA0JF9na8Aa4BPAH83lU9e2haasRCVs2peAxuvXk/H0rE14D29Yd63aQt/fLF/Rq81XSknMzOlLWVERKSUWrJBKpqsrT33pj1tYa3tsdZeY61ttdYGrLWvsNY+fsw5/dbav7XWNltrG62177TWnrDQ3FprrLUTph1r7SestWuyr+Oz1q621n7BWlvWf6WmkJfb3r6Od750cf7YSCzFx7//LHf/obOsdVO5LWWGIrW5E7eIiJSe1+2iIZBZ6KqlWSmt/5wCt8tw7QUr+NQb1+DPLqVZ4N9+vZebH36u7LNCfeE4vaPxshfDi4hIbajF5T0FqRlw4Zlz+eZV57Ggaazf6BM7e7n+7qc4MBAp48gyXdAPD8d0R5+IiBRdPkhFFKRkmla013Pn1R38xbKxOwP39UW4bu4Spd4AACAASURBVNMWfr+nr4wjg2gizaHBKImU7ugTEZHiqcU79xSkZlBj0Mutbzubq162JH8sHE/zyR/8mf/83b6TbphcbJk7+lSELiIixaOlPTllbpfhf73qdP7pzWcR8I7VTf3f377IZx7cRjheviCjInQRESmmXJAajaeIp2rjzj0FqSJ59Rnt3HFVx1F9pX7zQh/X3/0Unf3lrZvqC8fpGVERuoiIzKyA103I5wZgoEZ+aVeQKqLlbXXceXUHf7l8bD++zv4I12/awm9e6C3jyGAklilCd1SELiIiM6g56AWomdUPBakiqw94+NzbXsKGly/NHwsn0nz6h9v499++WNa6qWgizcHBKEltKyMiIjOkKZQNUlEFKZkhLmN4z/nLufmytQS97vzx//jdPj71wJ8ZLWPdVK4IPVbmvQJFRKQ6NAczdVKD0dooOFeQKqFXrWrjW1efx+KWsbqp3+/p532btvBiX7hs40o7lq6hmO7oExGRU9akpT0pptNa6/jW1R284vTW/LEDA1Gu3/QUT+zqKdu4bO6OvhqZihURkeJozi7tDdbIzxMFqTKo93u45a1rueYVp+WPRZNp/unB5/g/v95b1i7kfaPxmur/ISIiMys3IxVJpGuiEXTVB6nGgBdjJtwPuaxcxnDNK5dxy1vWUucbq5va9IdOPvnAnxmJlS/JD0YSdA/H1B5BRESmLeB1E8juP1sLqxzVH6SCXhY0BfC6K/OPev7KNu64uoOlc0L5Y0/u7ee6TVvY21u+uqnReErtEUREpCC1dOdeZaaLGRbwulncEqQxO91YaZbOCXHHVedx/sqxuqlDgzGuv3sLv9xZvrqpXHuElNojiIjINNTSnXs1EaQAjDG01fuZ3xTA46q8P3ad38PNl63lPecvI7cQGUs63PzQc/zrr/aUrW4q0x4hVjOt/kVE5NTV0p17lZcoiizk87CoJUid31PuoRzHZQwbXn4an3vbS6jzj9VNfffJ/Xzi/mcZLtMUacpx6BqMEU0oTImIyOQag5mfsSNl7JNYKjUXpCCzsfC8xgBtDX5cFViI/vLTW7nz6g6WtY7VTf1p3wDXbdrC7u7RsozJsZbDw7GyFsGLiMjsUJ+drBiNKUhVtcaAl0UtQfzjuo1XisUtIb551Xm8elVb/ljXUIz3f/cpfr6juyxjstbSMxJnMFL9a94iIlK4hkBmaW9EQar6ed0uFjUHaQn5Kq5NQsjn4TNvPov/9T+W5+um4imHz/5oOxt/ubtsdVP94QQ9I/GyXFtERCpfQyAzI5VIO1VfY1vzQSqnpc5XkW0SjDFc9ZdL+fxfn52fKgW4908HuOn7z5StkG8kluTwkNojiIjI8bxuV76XVLXPSlVWaiizXJuEpgpsk/Cy5XO4c0MHp7fV5Y9t6Rzk2k2b2XVkpCxjiiRSdA3HytqJXUREKlN9oDbqpBSkjmGMobXez8LmYMXNTi1qDvKNq87jr1a3548dGY7zge89zU+3HynLmOLJNIcGozWxDYCIiExdrdRJVVZSqCCVOjsV9Lr51BvX8PevPh1XtnAqkXK49ZEd3PGLF8oyO5RMO3QNRYklq3sdXEREpq7Bn2uBUN13eytInUSlzk4ZY7jiL5Zw29vX0RgYq5v6/paD3PhfW8tyV13asXQNxRhWewQREYF8v8ZIlfcgrJx0UMFys1OVdmff+tNa2LhhPSvb6/PHnt4/xLV3bWFnGeqmrLX0jsTpHY1rw2MRkRoX8mVaCylICZCZBWqp87GwOVBRfafmNwX4+pXn8toz5+aPdY/E+cB3n+K/tx0uy5iGo0m6hlSELiJSy8aClGqkZBy/x83CpgBz6ipndirgdfMPl57Jda9Zka+bSqYttz32PF//2a6ybDocS6Y5OKC6KRGRWhXyaWlPTsAYQ3MoMzvl81TGX6ExhnesX8ztl687qkD+gacP8dH7nqE/XPq6qZTj0DUUY7QG9loSEZGjjV/aq+Zyj8pIAbOU3+OuuK7o5y1tYeOGDlbNHaubevbgENfetZntXcMlH4+1lu7hWFmCnIiIlE8wG6TSjiVRhpWRUlGQOkW52qlFzUECFVI7Na8xwNffdS6vP2te/ljvaIIP3/M0jzzbVZYxDUYSHBlWJ3QRkVrhdbvwujOTDNW8vKcgNUN8HhcLm4O0NfhxVcDslN/r5qaLV/P+v1p5VN3UF3+8k6/8dCfJMvx2EI6nODQULcu1RUSk9GqhTkpBaoY1Brwsbgnm+2eUkzGGv+5YxJfecQ4tobG6qYe2dnHDvVvpGy39xsOJlMOhQRWhi4jUgoA3EzOq+f98Baki8LhdzGsMMK8xgMdV/r/ic5Y0s3HDelbPb8gf23ZomGvv2sK2Q0MlH0+ueaeK0EVEqpvfkyl5qeZtxMr/U76K1fk9LG4J5vcbKqf2Bj9fu+JcLnnJ/PyxvnCCj9yzlYe2Hir5eHJF6AMqQhcRqVr+7J3tcQUpKZTLZWhvqIxtZnweFx97/Rl86LWrcGcLp1KO5Ss/3cUXf/x8WX5jGIgk6B6JVfWtsSIitSrXIkgzUnLKctvMNJe5VYIxhrecu5AvH1M39cizh/nIvU/TM1L6uqnRWEqd0EVEqtDYjJRqpGQGGGOYU1cZjTzPXtzExg3rOWvBWN3U9q4Rrr1rM88eKH3dVCyZ5tBgtKp/axERqTW5Gikt7cmMyjXybA75yjqO9gY/X37nubzx7AX5YwORJDfct5UfPn2w5MttybRD15Du6BMRqRZa2pOiGZudCpb1zj6fx8VHX38GN7xuFZ5s3VTasXztZy9w+3/vLPkXv+7oExGpHio2l6ILeN0saglSX+a+U29at5CvXHEOrXVjs2SPbTvMh+55mu7hWEnHkrujbzCiO/pERGaz3E1W1dyIWUGqArhdhrmNAdoa/GUtRF+7sImNGzp4ycLG/LHnD49w3aYtbD0wWPLx9IcT9IzEdUefiMgs5R630lGtFKQqSGPAy8LmQFnbJLTW+/nSO8/hsnMW5o8NRJJ87L5nuH/LgZKHmpFYksPao09EZFZSkJKSyxWil3Opz+t28eGLVvGx15+R33Ay7Vi++YvdfOGx54mXuBg8mkhzcFB79ImIzDbjexZWKwWpCuSqkKW+S89ewFevOJe2+rG6qZ88d4QPfu9pDpe4biqZzuzRF63ijS9FRKqNZqSkrCphqW/NgkY2bljP2Yua8sd2dY9y3V1beKpzoKRjSTuWw8MxhmPJkl5XREQK4zYKUlJmlbDUN6fOx5fesY63nbcof2womuTG/3qG+zaXtm7KWkvvSJze0dJ3YBcRkenJt9Wp4puGFKRmgdxSX2t9+Zb6PG4XH7hwJTddvDpfN+VYuPPx3dz6yI6SN9EcjiY5PKQidBGRSqalPakoTUEvC5rKu9T3hrXz+fq7zmNugz9/7Gc7uvngd5+mayha0rFEEikVoYuIVDBXNkhV8y+9ClKzTMDrZmFzkJCvfEt9q+c3cOeGDs5dMlY39UJPpm5q877S1k2pCF1EpIJl81MZ75sqOgWpWcjtMsxvCtBSxr36WkI+br/8HC5fP1Y3NRxLcdP3n+F7f9xf0rqpXBH6UFRF6CIilcRSvTNROQpSs1hLnY8FTeXbq8/tMrzvNSv5h0vPzO+n5Fj4lyf2cMvD24mWsG7KWkvfaFyd0EVEKkjuf2ND9U5JKUjNckGfm8UtQeoD5Vvqu2jNPL7+rnOZ1zhWN/X4zh4+cPdTHBwsbd3USCxJ11CsqgsbRURmjbEkVbWmHaRMxrXGmGeMMVFjTLcx5kFjTP24c1qMMf9ujBkwxgwZY+4xxswtdJAz/XrVxuUyzG0IML8pkL9DotRWzWtg49Xr6VjanD+2pzfMdXdt4cm9/SUdSyyZ5uBAtOR3EoqIyNFqIEcVNCN1K3AnsAP4IPB5IAkEx53zA+DtwO3AZ4HXAo8aY9wFjrPg1/v59m5Sqdq4qyvk87C4JVS2nlNNIS+3vX0dV7x0cf7YaDzFJ+5/lrv/0HnSJbdINMkN92zl6n/7PTfcs5XIKdY7pRyHrqEYI2reWVSplMMPthzkmz/fxQ+2HKyZ7zURkZxp/cQ1xpwJ3Ajcaq395LinvjLunNcBFwDvttZ+J3vsOeBhMmHo3mle85Re76s/fZ67dru4/jUreO+rV0zn0rOSO9tzKhRP0TcaL/kSl9tl+PsLVrBqXgO3//fzxFMOFvi3X+9l55ER/vfFq4+74/Dd336SzoGxJcCuoThv+tZvWdoS5N/f87KCx2KtpWckTjzl0FrnK+t2O9XoX5/YzR2P72YkmsQh81vZzQ9vq5nvNRGZXO4X6Gr+73e6M1JXkpl9+jzA+OW8cd4MxIF7xh17FOgDLitgjKf0esZlGIokue2x5/nXJ3YXcPnZqd7vYVEZ2yRceOZcvnnVeSxoCuSPPbGrl+vvfooDA5H8sWND1HidA1He/e0nT3ksw1HVTc20f31iN7c99jxDkSQul8HnNrhq9HtNRE5MxebH+0vgWeAyY0w3MGKM2W+MuXLcOWcDO621+V1trbVO9vPOLmCMp/R6HuPC5zGkHcsdj++uqaUHj9vF/KYA7Q3+stROrWiv586rO3jpaS35Y/v6Ily3aQu/39NHJJo8YYjK6RyInvIyH6huaialUg53PL6btGPxeQwelwuXceFx1e73mohMLJXORCmPu3qD1HSnKxYB9cBG4BZgH3A9sMkY87y1dgswHzgAYIz5KdAO/AXQDZxVwBhP+fVcxoXH7TASTfLQM128rWPR5J9URRoCXoJeN/3hBKPxVEmv3Rj08vm/Pptv/2Yv331yPwDheJpP/uDPzGsMTPLZGZ968Dm+fMU5pzyWXN3UnDofTUHvKb9erXromS5Gokk8boPLHP27WK1/r4lUuv7DBziwa1vJrtcXN4AX0qmSXvdUHemc+qz6dINUCFgGXG+t/RaAMeYR4BCZ2qkrAT+QyJ6/DGgBvGSW56b2k/NoM/J6LgNp4OBgZNJzq5HH7WJuY4C6eIq+0QQpp3SzBW6X4b2vOp0z5jVw22M7iCUzdVOHh2OTfi7AkZGZa6GQ6zcVT6VpL+PehbPZwcEIDuA5wV9drX+viVSyR7/zNR79ztdKdr3A0nXMu/JWBg938uVbry/ZdWfCXV/42JTOm26QygWa+3MHrLWjxpjfAuuyh+JAruX2uYDbWhs2xviBqf3kPNqMvJ5jM7dfLmoOFTCE6lHn9xD0uhmMJhmKJkvavPKCM9pZOifEp3/4Zw4NTv1LYV5DcPKTpmk0liKRcpjXWN69C2ejRc0hXGS+pyZaMdb3mkjluuWWW7j00ktLdr0/HYpx668HOGv1Sh7evLlk1y2l6QapHuDM7ON4/cD67PuHgXmQCVnjzpmbfW66Tvn1HOuQSluaQl7evG5BAUOoLi6XYU6dj8aAh4FIktF4qmSBanlbHXde3cHnHtkx5f5Sn72skBXhySVSmX365jYECPoK7cxRe968bgE3P7wtU2hunKOW9/S9JlLZli9fTkdHR8mud8hzCBigtamhpNctpen+Kv5c9nH+McfbySzvQaYI/AxjTH7ZzRjjIlMY/mwBYzyl10tZh0TK4nYZrn/NCjwezT7keNwu2hv8LGoOljRINAS8fO6tL2HDy5dOeu7SliChItYz5fbpG1a/qSnzeDLtRNwuQyJlSTlOJkA5+l4TkaPlNpSv5l9Wp/s/3WPZx6tyB4wxrcD5wJ+yhx4mU9d0xbjPuwRoBR6a6EWNMTuMMTtOcM1pv9541sn8dnzTxavV2+YEfB4XC5qCNJdwE2S3y/Ce85dz82VrT3hT7Kn2kZoqay29I3F6R7VP31S999UruOni1TSFvDiOJZm2OPpeE5Fj5O6UDnqrN0hNd2nvQWAzcGt2i5ZO4L2AG/hC9pyfAL8CvmGMWUim79THgaeB75/gdVef5JqFvF7ehy9azYevuEi/HU/BnDofAa+LnpHSNfJ81ao2vv3ul/KpB/7MwXF1U4uaA/zTW9aWZAw5w9EkybTD3IbybbUzm7z31Sv4u1cu56Fnujg4GGFRc4g3r1ug7zURyYskqj9ITet/vGz/pkuAu4H3kNmyJQy8wVq7K3uOBd4KPADcBPwj8HPgEmvttO+9P9XXu3DNXP3HPg0hX6aRp7+EX/SntdZx54b1vOL01vyxg4Mxrt/0FL/a1VuycUBmGlr9pqbO43Hxto5FvP/CVbytY5G+10TkKEPZPoCNVdxyZtptr621PcA1k5zTD/ztNF7zpL/+T/f15NR43C4WNgXoDyfy3wTFVu/3cMtb1/Ifv9vHf/xuHwDRZJrPPLiNDS9fyjWvWFayWaJ8v6mQj6ZQ9X7zi4gU22D2Z0g19+7Tr48yIWMMrfV+5jYGcJWo15LLGN79ymXc8pa11I0rTLzr95186oE/l3QDYmstfeE43cMxHG0tIyJSkKFI5v/tlir+pVRBSk6q3u9hYXMQXwmXbM5f2cYdV3ewdM5YH6I/7O3nfZueYm9vuGTjABiNpzg4GCWh7U5ERKZtIJJpP1nKm5lKTUFKJuXzuFjUHCzpGvfSOSHuuOo8zl85vm4qyvV3b+Hx549tY1ZcyXSm31S4xNvriIjMdoPZGalqLpNQkJIpMcbQVu9nflMAj6s0XzZ1fg83X7aWvzt/Wb5FQizp8M8PP8e/PLGnZHcWAjjWcmQ4Rn84MfnJIiICjBWbt2hGSiQj5POwqCVInX/a9ykUxGUMf/Py0/jc215CnX+sbup7f9zPx+9/luESFcPnDEYSdA1FSxriRERmq/zSnorNRca4XYZ5jQHaG/wlK0R/+emt3Hl1B6e1jtVNbd43wHWbtrC7e/Qknznzci0Sch17RUTkePFUOt9HqllLeyLHawh4S1qIvrglUzf16lVt+WNdQzHe/92n+PmO7pKMISfTIiGqpT4RkRPoHc38/+h1GxoDClIiE8oVopeqR0jI5+Ezbz6L//U/lufrpuIph8/+aDsbf7m75Etug5EEhwajpNK6q09EZLwjw5ndKuY2BHBV8W4RClJyynI9p0pViG6M4aq/XMrn//psGgJjtVr3/ukAN33/mXzfklKJJdMc1F19IiJH6c4FqUZ/mUdSXApSMmNyhej1gdIUor9s+Ry+dXUHp7fV5Y9t6Rzk2k2b2XVkpCRjyEk7mbv6eka08bGICMCR4TgA8xsDZR5JcSlIyYxyuwxzGwIlm51a1BzkG1edx1+tbs8fOzIc5wPfe5qfbj9S9OsfaySW5MBAlHhKhegiUtsOZ2ek5ilIiUxfyOdhcYlmp4JeN5964xr+/tWnk1uGT6Qcbn1kB3f84oWS1y9lGnjGSr7EKCJSSY5oaU/k1Liys1NtDX5MkdskGGO44i+WcNvb19E4Lrx9f8tB/vf3n2EwUtq763J79XUNqRBdRGpTd3Zpb16DZqRETkljwMuCpgBed/G/3Naf1sLGDetZ2V6fP/b0/iGuvWsLO0tcNwXZnlMqRBeRGnRES3siMyfgdbOwOUjIV/ylvvlNAb5+5blctGZu/lj3SJwPfPcpfrztcNGvfywVootIrbHWcnAwCsCCZgUpkRnhdhnmNwVorSv+Ul/A6+YTl5zJ+16zIl83lUxbvvDY83zj56WvmwIVootI7egPJ/JdzRc1B8s8muJSkJKSawqVZqnPGMPl6xdz++XrjmoY+oOnDvLR+54pS1dyFaKLSC3YP5CZjZrfGCDgdU9y9uymICVlEfC6WdRcms2Pz1vawsYNHayaO1Y39ezBIa69azPbu4aLfv1jqRBdRKpdZ38EgCVzqns2ChSkpIxc2c2PW+uLv9Q3rzHA1991Lq8/a17+WO9ogg/f8zSPPNtV1GufSK4QPZJQIbqIVJf9uSDVEprkzNlPQUrKrinoZWFz8Zf6/F43N128mg9cuBJ3tnAqmbZ88cc7+cpPd5Isw+xQ2rEcHorRN6pCdBGpHgcGcjNSClIiJeH3ZJb66ou81GeM4W3nLeKL71hHS2isbuqhrV3ccO9W+kbjRb3+iQxFkxwcVCG6iFSH/f2ZGikFKZEScrkMcxtL08DznMXNbNywntXzG/LHth0a5tq7trDt0FBRr30iiVSmEL3UzUNFRGZavkaqRTVSIiXXGPCyqDlY9KW+9gY/X7viXC5eOz9/rC+c4CP3bOWhrYeKeu0TsdbSH05waDBalqVGEZFTlUg5+R5Sp7XWTXL27KcgJRXJ53GxuCVIQ8A7+cmneJ0b33AGH3rtqnzdVMqxfOWnu/jSj3eSSJUnzMSSaQ4ORBmJqU2CiMwunf1h0o6lzudmXpXvswcKUlLBjDG0N/iZ2xjAVcSlPmMMbzl3IV9+xzlH1U396Nkubrj3aXpGylM35VhLz0icXhWii8gs8kJ3GIAVc+uLXqZRCRSkpOLV+z0sagniL3JTt7MXN7Fxw3rOWjBWN/Vc1wjXbdrCnw+Wp24KYDia5NBQTD2nRGRW2N0zCsCKcXueVjMFKZkVvG4XC5sCR3UoL4b2Bj9ffue5vPHsBflj/eEEH7l3Kz98+lDZZobiyUzPqWhCd/WJSGUbC1LVXx8FClIyixhjaK33M78pkK9nKgafx8VHX38GN7xuFZ7sddKO5Ws/28UXy1g3lXYsXUNR9ZwSkYq2uye7tKcZKZHKFPJ5WNgcxOcp7pfvm9Yt5CtXnENrnS9/7NE/H+ZD95SvbgoyPae0+bGIVCJrLXu6szNScxWkRCqW1+0qSQPPtQub2Lihg7ULG/PHnj88wrV3bWbrgcGiXvtkcpsfq+eUiFSSnpE4I/EULgOntVZ/M05QkJJZzJhMA8/WuuLeXtta7+fL7zyHt5yzMH9sIJLkY/c9w/1bDpRtmS3Xc+qgek6JSIV4IVsftXROCL+nuDcIVQoFKZn1mkJeFjQFi1o35XW7+NBFq7jx9WfgdY/VTX3zF7v5wmPPE0+Wb5ktnkxzYCDKUFQ9p0SkvHZ319Yde6AgJVUi6HOzuCVEyFfcpb5Lzl7AV684l7b6sbqpnzx3hA9+72kOD8eKeu2TsdbSNxqnayiqNgkiUjY7j9RWfRQoSEkVcbsM85uKv1ffmgWNbNywnnWLm/LHdnWPct1dW3iqc6Bo152KaCIzOzUaT5V1HCJSm3J7lZ61oHGSM6uHgpRUndxefcW8q29OnY8vXr6Ot523KH9sKJrkxv96hvs2l69uCjId0buHY3QPx3ActUkQkdJIO5btXSMAR92gU+0UpKQq+TzFv6vP43bxgQtXctPFq/N1U46FOx/fza2P7CBWxropgNF4ioOD0bKPQ0Rqw97eMNFkmoDXxemqkRKZ/XJ39c0Z1weqGN6wdj5ff9d5zG0Yu3vwZzu6+eB3n6ZrKFrUa08m0yYhSn84oSaeIlJUuWW9NQsai3rzT6VRkJKq1xzyMa/IGx+vnt/Axg0dnLtkrG7qhZ5M3dTmfeWtmwIYjGTaJKiJp4gUy3OHhoHaWtYDBSmpEXV+DwuaA3jdxfuSbw75uP3yc7h8/Vjd1HAsxU3ff4bv/XF/2WeEEqlME8+hiNokiMjM25YPUk2TnFldFKSkZvg9bhY2B/F7i9ckzu0yvO81K/mHS8/MF7s7Fv7liT189kfbiZa5XslaS184ziE18RSRGWStzS/taUZKpIq5XYaFTYGiby1z0Zp5fONd5zKvcaxu6hfP9/CBu5/i4GB566YAYsk0BweijMQ0OyUip+7QUIyBSBK3y3DGvIZyD6ekFKSk5uSK0FtCxS1CXzWvgY1Xr6djaXP+2J7eMNfdtYUn9/YX9dpT4VhLz0icI8Mx0mqTICKnYNvBzGzUqrn1BIo461+JFKSkZrXUFb8IvSnk5ba3r+OdL12cPzYaT/GJ+5/l7j90lr1uCiAcT3FwQG0SRKRwufqos2psWQ8UpKTG1fk9LGwOFrUI3e0yXHvBCj71xjX4s3VTFvi3X+/l5oeeI5IofxfylOPQNRRjWEt9IlKAXJB6SY0VmoOClEi+eWex9+m78My5fPPK81jQFMgfe2JXL9ff/RQHBiJFvfZUWGvpHYnTMxKviJkyEZk9nqvRQnNQkBIBwJXdp6/YdVMr5tZz59UdvPS0lvyxfX0Rrtu0hd/v6SvqtadqJJbk0FBMmx+LyJQMhBMcGsps2q6lPZEa11LnY0FTsKhdeRuDXj7/12dz5cuW5I+F42k++YM/85+/24dTAbNB8WSaQ4Mx1U2JyKRyy3qntYZoCHjLPJrSU5ASOUbQ52ZRCfpNvfdVp/OPbzqLgHesbur//vZFPvPgNsLxyqmbGq2AsYhI5arV/lE5ClIiE/C4XSxsCtAYLO5vV69Z3c4dV3WwsHmsbuo3L/Rx/d1P0dlfGXVT3cMxBsKJcg9FRCrUn2u0o3mOgpTICRhjaKv3M7fILRKWt9Vx59UdvGz5nPyxzv4I12/awm9e6C3adadjIJJQvykRmVBuRqoW66NAQUpkUvUlaJHQEPDyube+hA0vX5o/Fk6k+fQPt/Gd375YEXVTuX5TldCuQUQqQzieYm9vGKjN1gegICUyJbkWCcXcWsbtMrzn/OXcfNlaguPqs77zu318+oFtFVGrlHIcDg/F6B1ViwQRgR2Hh7EW5jb4aW/wT/4JVUhBSmSKXK7M1jKt9X5MEZf6XrWqjW9dfR6LW4L5Y7/b08f7Nm1hX1+4aNedjuFokgMDUeIp3dUnUsu25eujanNZDxSkRKatKehlYXOgqEt9p7XW8a2rO3jF6a35YwcGorxv01P8aldl1E0l0w6HBjOF6JqdEqlN2w7WdqE5TDNIGWPebYyxE7w9fsx5lxtjnjLGxIwxPcaYbxtjWk/wsjNyTZFS8nsyLRLqirjUV+/3cMtb13LNK07LH4sm03zmwW18+zd7K6Lw21rLQCTBwUHNTonUom1dtd36AKDQnwIfAcb/Wnwk944x5q+A+4DfAB8FFmfPX2uMeYW1s8ZYawAAIABJREFUttB2ySe8pkg5uFyGeY0BhqJJ+os0K+MyhmteuYyVc+v5wqM7CCcyYeWu33ey88gon7z0zIpogJdIZWanWkJemovcHV5EKkMi5fD84RGgtmekCg1SD1hrXzzBc58CDgIXWmsTAMaYXcD/Ad4IPFSEa4qUTVPQi9/jons4TsopzrYq569s446rO/jHH27L95d6cm8/123awi1veQnL2+qKct3psNbSH04QTqRpr/fj86hyQKSa7eoeIZm2NAQ8LJkTnPwTqlSh/9MZY0yjmbji9mzgiVyIynog+3hpgdeb7JoiZRXwulnUEiRQxG7oS+eEuOOq8zh/5dgq+aHBGNffvYXHn+8p2nWnK7O9TJShaLLcQxGRIhpfaF7LP5oLDVJbgSFgyBhzpzEmNO65ABA75vxo9nFNgdeb7JoiZed2GRY0BWgqYjf0Or+Hmy9by9+dv4zcf1uxpMM/P/wc//qrPRVRNwXgWEvfaJzD2vxYpGo9V+MdzXOmu7QXBv4FeAJIkplhuhZYDlycPWc3cM4xn/fy7GN7AWOcyjVFKoIxhtZ6P36vm56R4vRachnD37z8NFbNredzj2wnHM/UTX33yf3sOjLKp964puhb20xVJJHiwECaljpfUQOmiEzN3r172bJly4TPtbW1sXTp0gmfm0it77GXY071P3pjzBfJFJVfYK19whjzfuAbwM3AfwBLyAShuUCftXblqQ35+Gue4JwOYPPmzZvp6Og41UuKTFs8lebIUPHqpgAODET49A+3sa9vbF++BU0B/vmytayYW1+06xbC73XTVu/D7yne8qdIDShoDS33M/Fk5wRDIXZs3z6lMOU4lrP/6b8JJ9L894dfzer5DYUMq9JN6e96Ju7dvpNsqCEza/T/A38BfCb7ZoGvAh3AnBO8xqleU6Ti+D2ZuqkjwzFiyeK0Bljckqmb+v8ee54nsv2luoZivP+7T3HjG1Zz4Zlzi3LdQmRqp2I0Bb20hLw1XVMhUi6XXPMh1rzsguOOH+nczabbbqS3t3dKQWpff4RwIo3f42JFe/lvdimnmQhSh7KPLQDW2iRwjTHmH4DTgX3W2k5jzF5g+wxc77hrilSqXN1UXzjBcJGKr0M+D59581l898n9/J9f78UC8ZTDZ3+0nZ1HRnjvq07H7aqM0GKtZTCSIBxP0d7gL2pxvogcb878xf+vvTuPj7uu9z3++s4+WSZpm6ZJWgrdKaW0BBfEBVxARFlUEIR6rufee7ytCIroRbgqehCXC6KI2B491yv3tCCLgoDiYVEWd226UbrQUpZ0S5fsyUyW+d4/ZkkKSTszmeU3M+/n45HHwC+//H7f33yT5pPv9/P9fJkxb9GEr5OY1juxoRpPDosTF4NsPP1x8dcjlg1Za3dba5+LB1GzgROAv2XhfuPeU8SJjDHUVfmZUpW7faiMMVz+1pl86yOLj9gP8L5/tPKlX2x03Aq6WFX0fg50R4g6JEFeRFL3fKKi+fTyTjSH9Cub141x+Or46xPxc8b60/dfgWHgnnGuu9UYszXTe4oUg5qgl4aaAK4cTmm9ZdZkVi5rZvaoulJrX+1gxeoWdrT15Oy+meoOx/bs6xso/IbMIpI6JZqPSHdq7zljTAuwjlhJg7OBC4H/sNb+I37O8caYu4CHgR7gw8D7gW9aa7eNc90FE7ynSFGo8HlorDU5TUKfXhvkjstP5db/3Mbv4/Wl9nWFueqedXzhnPm8d+G0nNw3U0PRKPs6w1QFPNRV+nE5ZBpSRMZmrVXpg1HSDaQeAi4CzidWL2oXcD1wy6hzOomVLLgeqAK2EytX8OMM25jKPUWKht/jpqk2wL6uMANDuQmmgl43X/7gQuZPq+Ynz71E1Mbypm7+zVa27e/mf7xrjmPyphJ6wkOEB6LUVfuo8OVuD0MRmZj9XREO9Q7gdhlOLM3VemlJ618ra+31xIKYo53TTpoVzK214/6Lnso9RYqNx+2iqSbIgZ4IvZHcTGsZY7j0zccxt76Kmx59ga5w7D4PrN3NjrZevvqhhY7bFy8xOlVb4WNypbPaJiIxiWm9OVMrtWCE7CSbi0gGEpse57pQ5WnHT2LlsmbmTh2pK7X+tQ6Wr25h+/7unN47Ux19AxzojhS6GSIyhs2a1juCAimRApuS4xV9AI01QX7w8aW8d1RdqbbuCFfds47HN+/L6b0z1R0eZF9nOCfV4UUkc0o0P5ICKREHyMeKvoDXzQ3nnciKs+aQSI8aHLZ8+7fbuON3Oxy5J17fwBB7O8OO2UNQRDQi9XoKpEQcosLnoak2iDeHxe2MMVxy2gz+98WnHDGl+OC63Vx7/0YO9w7k7N6ZCg8Os7u9n66ws2phiZSjjr4BWtv7AThJI1KAAikRR/F5XEyvDRL05TaBs3lmLG9q3qj9+Dbt7mT56rVs2duV03tnYiga5WB3hNcO96nmlEgBJcoeHDc5qI3I4xRIiTiMy2VorMn9P1INoQA/uGwp55w0UlfqYM8An7t3Pb/ZtDen987U4HBsVd+ejn4iQ7nZv1BExvdC/A+tkxo1GpWgQErEoaZU+Zla7c/p5r5+r5vrzl3AZ94994i8qVsf3873ntzOoAPzpiA23benI8yhnoiS0UXySIU430iBlIiDVQe8NNYE8Lhymzf1kebpfPeSJdSOGgV7ZMNePn/fBg71OLMMgbWWzn5tMSOST4kRqYUakUpSICXicAFvrBK6P8eF75YcV8uqZc0sGFWpePOeLpavbkkud3aixHRfW5dW94nkUmRoOLlnpxLNRyiQEikCsUroAaoCud06pT4U4PZLl3LuoobksUO9A1xz7wYe3bgnp/eeqJ7IELvb++kfUO6USC7saOthKGqpCXppqgkUujmOoUBKpEgYY6ivDlCX47wpn8fFF98/n8++d15yP76hqOW2J17ku49vz9n+gNkwFI2yt7NfuVMiOZDIj1rYWJ3Tf4OKjQIpkSITCnhpqg3kvN7UhUubuO2SJUyqGMmb+vWmvVxz33rHb9+SyJ0KD2p0SiRbRlbsKdF8NAVSIkXI73EzvTZIpT+3U32LZ9SwatlpnNQ4kje1ZW83y1evZVOrc/OmIJY7taejn7Zu5U6JZMOWvSMjUjJCgZRIkcrXpsdTq/3c9rGlfHBxY/JYe98gn79/A79av9vxU2g94SFeO9xHZ78qo4tkylqbnNpTovmRFEiJFLkpVX4mV/pyeg+fx8W158zn82fPwxPPmxqOWm5/age3/Kez86YAotZyqCfCno5+x9bGEnGyPZ1husJDeN2GefUakRpNgZRICait8DGlyp/z+3zolCa+d+kSpowK3H67eR+fvXc9bV3hnN9/orRvn0hmEqNRc6ZW4fModBhN74ZIiagJeqkPBXK+mmZRUw2rljVz8qjh/W37ulmxpoUNrR05vXc2RK3lYHeE/ao7JZIyTeuNT4GUSAmp8ntoCAVw5TiYmlLl57sfW8IFS5qSx9r7BvnC/Rv5ZYvz86YAeiNDtLb30RtRVXSRY9m6T3vsjUeBlEiJCfrcNNUGc1oeAcDrdvG5983jC+fMx+seyZv64e938J3fbiNSBKUHhqOW/V1hDnRHiGp0SmRc2/Z3AzB/mvKjXk+BlEgJ8nlcNNUGCfpyu60MwHmLG/n+pUupqxrJm3r8hf1c/fP17C+CvCmA7vAguztUd0pkLJGhYV451AcokBqLAimREuV2GRpCAaoDuS2PALENTFctO43F00cK9b3Y1sPy1S2se7U95/fPhkTdqcO9A0UxNSmSLy8d6GU4aqkOeJgWyv2ilmKjQEqkhBljmFrtz8uKvsmVPr57ySl8+NTpyWOd/YN88YGN3L+2tWiCk46+AXZ39BMZ0uiUCMD2UdN62hrmjRRIiZSBmqCXhprcJ6F73C6ues9crjt3QTJvKmph5dM7+eZvthbN1NnAUJQ9HWE6+1QmQeTF/T0AzJ9WVeCWOJMCKZEyUeHz5CUJHeD9ixq44+OnUl89MhL21NY2rr5nPXs7+3N+/2yw1nKoV0U8RRIjUirEOTYFUiJlJJGEHvDmPgl9/rRqVi1rZulxI3lTOw70sGJ1C2tfKY68KRgp4tmtIp5Spl5sS4xIKZAaiwIpkTKTSELPx4q+2gof//ujp/DR5pG8qa7wENf9YiP3/v21osmbilrLARXxlDIUHhzmlUO9gKb2xqNASqQMueLBVIXPk/N7edwurnz3XK7/wInJrSWiFv7t2Zf4xq+30F8keVMwUsSzb0BFPKU87DzQQ9TG8iynVmvF3lgUSImUKWMM00J+Kv25D6YAzj5pGj+4bOkRy6d/v+0AV929jt0dxZE3BbEinvs6VcRTysOOtpFEc63YG5sCKZEyZoyhvtpPVSA/wdT8adWsuuI0mmfWJo+9dLCXT69p4e8vH85LG7JFRTylHLx0IDatN2eqpvXGo0BKpMzFgqkAddX+nJdHAKip8PKdj57Cx940I3msOzzEl36xibv/+mrR5E2BinhK6dt1MBZInVBXWeCWOJcCKREBIBTwMn1SEH8eVvS5XYblZ87hyx9ciD+eN2WBf//DLr7+6Av0DxTXKE+iiOfAkMokSGl5OZ5oPkuB1LgUSIlIktftYnptkEkVvmOfnAXvObGeH378VBprAsljz24/yJV3t9Da3peXNmTLwFCU3R39KuIpJcNay64DCqSORYGUiLzBpEofjTXBvEz1zamvYuUVzbzp+EnJYy8f6mPFmhb+8tKhnN8/mxJFPPd29jOkIp5S5A71DtAdGcIYmDm5otDNcSwFUiIypqDPnbdK6KGgl299ZDEff8txyWO9kWH+14PPs/ovrxAtsvyj/oFhWlXEU4pcIj+qqSY/RXyLlQIpERlXohJ6Pop3ul2Gf3nnbL76oZMIeEfypn76x5f52sMvFF3tpkQRzzYV8ZQilQikZk/VtN7RKJASkaNKVEIPBb15ud9ZC6Zy5+XNNNWO5E39YcdBPr1mHa8eLq68KYCeyBC72/uLLhAUSa7Ym6JA6mgUSInIMRljqKvyU1ftz0tRvll1lay8opm3zJqcPPbq4T6uXNPCH3cczPn9s20oGmVfZ5iDPRGVSZCioUTz1CiQEpGUhQJeGmsCuF25D6aqA15uvuhkrnjrzOSx3oFhvvKrzdz1p5eLLm8KoKt/kNb2fiJDxVXeQcqTSh+kRoGUiKQl4I0loSf2zcslt8vw394xi69fsIjgqGTXu/78Cl95aDM9keKbLosV8QzT0TdQ6KaIjMtay2vxqfSZU7Ri72gUSIlI2rxuF001wbxsegzwznl13HnFqcyYFEwe+/NLh/j0mpbkX83FxFrL4d4B9nSoTII4U0ffIL3xwrjTa4PHOLu8KZASkYy4XIaGmgA1eUpCP2FKJT+6opnTZ4/kTbW293PlmnU892Lx5U0BhAdjZRKKcWRNSltiI/G6Kr9KHxyDAikRmZApeUxCr/J7+MZFJ/NPbzs+eax/cJgbH97MT/+4qyjLDEStpa0rTFt3mGgRtl9KU2t7LJCaPkmjUceiQEpEJiwU8NIQyk8SussYPnnGCdx04SIqRtW3Wv2XV/nyQ8/TEy7O0Z2e8BC7O/oJDyoRXQovsUXTDAVSx6RASkSyIuhz01iTn0roAG+fW8ePrmg+YuuKv+46zIo1Lcn6N8VmcDjK3s4w7b1KRJfCSkztzVB+1DEpkBKRrElUQs9XTsXMyRXcefmpvH3ulOSx3R39XHl3C89sP5CXNmSbtZb2vlgi+qAS0aVAdmtqL2UKpEQkq9wuQ2NNgKpAflb0Vfo9fP2CRfzz208gMbEYHozy9Ude4CfPvVSUeVMQS0TfrUR0KZBEjpSm9o5NgZSIZJ0xhvrqAJMqfHm5n8sYPnH68dz84ZOp9I+Mht3zt9e4/peb6Oovzs2DlYguhZKY2pteqxpSx6JASkRyZlKlj2mhAK48rOgDOH32FFZe0czxowoI/uOVdlasaWHngZ68tCEXlIgu+dQdHqQz/seHpvaOTYGUiORUpd9DY20gb0noMybF8qbeNa8ueWxvZ5ir7l7H77e25aUNuRCriN7PoZ6IRqckp/Z1hgEIBTxU+fMzRV/MFEiJSM75PbFtZYK+/CShV/g83Hj+Sfz3d8wayZsainLTr7ew6pmdRZs3BdAZ36+vb0C5U5Ibbd0RAOpDgQK3pDgokBKRvHC7DA2hANWB/FRCN8Zw+Vtn8q2PLD7ir+r7/tHKl36xMTl1UYyGolH2dYbZ3xXWFjOSdQcSgVS1v8AtKQ4KpEQkb4wxTK325y0JHeAtsyazclkzs0ftYL/21Q6Wr17Li/u789aOXOiNDNHa3k9nX/EGheI8bd2xqT0FUqlRICUieTep0kddHv+Rnl4b5I7LT+Ws+VOTx/Z3Rbj65+t5asv+vLUjF6LWcqg3Qmt7n5LRJSvaumIjUlMVSKVEgZSIFEQo4KWhJpCXPfoAgl43X/nQQj71rtkkdrKJDEW5+Tdb+dHTO4o6bwpgYCiWjH5QyegyQckcqWrlSKUirUDKGPNJY4wd4+Pp1513sTFmnTEmbIw5YIz5qTFmyjiXTeW+k4wxPzPGtBtjOo0x9xpj6jO9nog4Q4XPQ2NNfvbog9jU4mVvPo7vfPQUQqMKhj6wdjdffGAjHX3FvzVLVzwZXYU8JVPJqb2QRqRSkemI1DXAJ0Z93Jz4hDHm3cD9QC9wLfDvwOXAb4wxmd7vQeCjwC3AN4D3Ao8ZY/KzBEhExhSNWja1dvLM9gNsau3MaCQk4HUzvTaIz5O/AfLTjp/EymXNzJ1alTy2/rUOlq9uYXuR501BLBm9rSvM3k5tMyPpSySba2ovNZkWiHjIWvvyOJ/7MrAbeI+1dgDAGPMi8H+ADwKPpHMjY8zZwJnAJ621d8WPvQA8Siy4ui+TBxCRifnTjoOsfGYnO9t6GBy2eN2GOfVVrDhzDmfMrTv2BUbxuF001QQ50BOhN08jKY01QX7w8aV89/HtPBWvL9XWHcub+vz75nHOooa8tCOX+geGaW3vpzbopbbCm7dpVClubVq1l5ZM/wQ0xpiQGfuncjHwbCKIinso/npeBvc6H4gA94469hhwCLggg+uJyAT9acdBbnhwE1v2dlHp91Bf7afS72HL3m5ueHATf9pxMO1rulyGaaEAtXlc0RfwurnhvBNZcdacZN7UwFCUb/92Gz/83Y6SKC2Q2AS5tb2f/gElo8vRRYYs3eHYHzNTlSOVkkwDqQ1AJ9BpjFlpjBm9GU8ACL/u/P7468IM7rUY2G6tTV7TWhsFNsU/JyJ5FI1aVj6zk57IEA2hAAGvG5fLEPC6aQj56YkMs/KZnRknPE+Or+jL1+iJMYZLTpvBLRefQk1wpMbVL9ft5gsPbORwb/HnTUGsMvrezn7ausNFn1gvudMZiQXbPo/riDxCGV+6gVQv8GNgBXAp8Etgefw1YSew5HVfd3r8dSrpawD2AxhjnjTGbDDG+IC2+OdEJI827+liZ1sPkyp8bwh2jDHUVnjZ2dbD5j1dGd8jFPAyLeTP2x59AKfOnMSqZc3Mqx/Jm9rY2sny1WvZsjfzZ3GanvAQre19dIVVe6ocHd7XSuuLm9/wsf/VnQB0D8SC7EmaCk5ZWuGmtfZ+YonkCfcZYw4C1xpj3mWtfZZYLtQdxpivAf8POA5YBXQAmUy4+oHEn4QnAJMAL7HpPo07iuTZ4b4BBoctvnH2zvO7XXRGLYcnuAKuwuehsdawvzPCUDQ/U2zTQgF+cNlSvvfkizz+Qqy+1MGeAT5373o+9955fGBxY17akWvDUcvB7gjd4SHqqnz4PVq3Uy4eu+t2Hrvr9jE/F6yowB2oBg5SG8zfFHuxy8a43Upiq/POBJ4F/g14M3Bj/MMC3weagckZXD8CJHp0KeC21vYaY/y8cQpRRHJscoUPr9swMBwl4HrjL+DIcBSvyzA5C7lOsT36AuztDOdt9Znf6+a6cxcwf1o1P3p6B1ELg8OWWx7fzrb9PVz57jl524A51yKDw+zpCBMKeJhU4cOVpzIUUjg33XQT5503drpyXV0dGztiYUFNRX62cioF2Qik9sRfJwFYaweB/2KMuQGYDbxirX3VGLML2JLB9fcB0+LX7hl1vD7+ORHJo0VNIebUV7FlbzcNIdcRw//WWjr6BlnYWM2iplBW7udxu5heG2R/dzhvydLGGD7SPJ05Uyv5+iMv0BHfl+/hDXt46UAPN55/ElOqSmNFk7WWzv5BeiPDTKnyUelXXkwpmzVrFs3NzeN+/tk9rwBQG1Qglaps/Fl1XPz1wOiD1trd1trn4kHUbGLTcn/L4PqbgPnGmOQ0Xrwe1eL450Qkj1wuw4oz51Dld7OvK0L/4DDRqKV/cJh9XRGq/G5WnDknq6MbrjxveJyw5LhaVi1rZkFDdfLY83u6WL66hc17OvPallwbikbZ36WNkMtdYjPvWo1IpSzdyuZjFYe5Ov76RPycsf71/FdgGLhnnOtuNcZsHee2jxLLk7p01LEPAFNIsyaViGTHGXPr+OaHF7OwsZq+yBBtPRH6IkMsbKzmmx9enHYdqVQkNjyeXJnf3I36UIDbL13KuaPqSh3qHeCaezfw6MY9R/nK4jR6I2Rrtbqv3CSq++dzY/Fil+4Y7nPGmBZgHbGSBmcDFwL/Ya39R/yc440xdwEPAz3Ah4H3A9+01m4b57oLjnLPJ4DniCWwNwGDwJeA9cAv0my/iGTJGXPrOH32FDbv6eJw3wCTK3wsagrlPM+mtsKHx+3iQHckb7/ofR4XX3z/fBY0VPHD3+9kOGoZilpue+JFtu3r4ar3zM1rZfZcS2yE3B0ZpK7KT8CrZPRy0dEXG5FSjlTq0g2kHgIuIlYkMwDsAq4ntnVLQiexMgnXA1XAdmIlEn6cSQOttdYYcxGxhPXriI2i/Ra42lqrzaRECsjlMiyeUZP3+1b5PXhchrau/K3oM8Zw4dLpzK6r4muPbKY9/gvn15v2sutgDzeev6jkttRIbIRcHfAyudKXtz0RpXAS+YBatZe6tP6EstZeb61daK0NWWt91toF1tpvW2uHR53Tbq09z1pbZ60NWGtPsdb+mz3Kn47WWmOtHfcn1Fp72Fr7T9ba2vi9P2atVaK5SBkLeGMr+vI9ErR4Rg2rlp3GSY0jeVMv7O1mxZoWnt9dWnlTCd3hQVrb++hW7amS19mnHKl0lc5YtIiUncQeffleaTa12s9tH1vKB0fVlTrcO8A1923gV+v3lGRu0XDUcqA7oo2QS1xHfyxHqkar9lKmQEpEiloh9uiDWN7UtefM5/Nnz8MTn/Iajlpuf+pFbn18OwNDpRlsJDZC7ugbKMmAsdz1xreIqVIZjJQpkBKRkjC50leQ2k4fOqWJ7126hCmjVhM+9vw+Pnvveg50R/Lennyw1nK4d4DdHf1EhrQRcinpG4ilHlf4tMAgVQqkRKRk1AS91IcCed8jbFFTDauWNR9RhHTbvm6Wr17LhtaOvLYln2LJ6OHkknkpfr3xorcVGpFKmQIpESkpVX4PDaFAXjc8BphS5ee2jy3h/CUjeVPtfYN84f6N/LJld8lOg40enSrV6cxyMTQcTfZhpUakUqZASkRKTtDnprE2gMeV33/ivG4X17xvPl84Zz5e90je1A9/v4Pv/HYbkcHSnQaLDA6zu6M/uepLik/fqO/PoAKplCmQEpGSlNjwuBAbDJ+3uJHvX7qUuqqRvKnHX9jP1T9fz/6u0t1r3cYLee7p0Mq+YtQXTzT3uAy+EtmYOx/0TolIyfK4XTTVBvEXoDL3wsYQq5adxuLpIwVLX2zrYfnqFta92p739uRTeHCY3e39yX3bpDj0jko0z3eeYTFTICUiJc3tMjTVBKjw5T95dnKlj+9ecgoXLW1KHuvsH+SLD2zk/rWtJZs3BfFtZnpidae0CXJx6E8kmhfgZ6WYKZASkZJnjKGhJkBVIP+/IDxuF1e/dx7XnbsgmTcVtbDy6Z188zdbCZdw3hSM1J1SVXTn643ER6T8yo9KhwIpESkb9dWFCaYA3r+ogR9cdir1o/bje2prG1ffs569nf0FaVO+RG2sKvq+zrBGpxysLzkipUAqHQqkRKSs1FcHqA4UZvuLBQ3VrFrWzNLjRvKmdhzoYcXqFta+Utp5UxAr9tiq3CnHisRLH/g9CqTSoUBKRMrO1Gp/wYKp2goft1y8hItPm5481hUe4rpfbOTnf3+tpPOmYCR3qrW9r+SnNYtNYqVlYgpaUqNASkTK0tRqP6ECbczqdhk+fdZcbjjvRHye2D/DUQs/fvYlbnp0C/1lEGDEqqL309at6T6nGAmkFBqkQ++WiJStuio/ddX+gi31ft/Cadxx2VKmhUbypp7efoCr7l7H7o7SzptK6AkPaRNkhxgajr3/qiGVHr1bIlLWQgEvjTX5r4KeMG9aNauuOI3mmbXJYy8d7GXF6hb+tutwQdqUb9H4NjOt7f3JlWOSfwMakcqI3i0RKXsBb6wKeiEKdwLUVHj5zkdP4WNvmpE81hMZ4vpfbuLuv75aNiM1g8NR9neF2dvZT2So9Kc3nSYxtedRjlRaFEiJiBCvgl4ToKpAu967XYblZ87hyx9ciD+eN2WBf//DLr7+yAv0DZTPSE3/QKwy+oHuCMPR8gginSARSGlqLz16t0RE4owx1IcC1BQoCR3gPSfW88PLT6WxJpA89uyLB7ny7nW0tvcVrF2F0B0e5LXDfXT2DZbNqFwhDcZzpDS1lx69WyIirzOlys+USv+xT8yROVOrWHlFM286flLy2CuH+lixpoW/vHSoYO0qhGh8I+TW9v6yGpUrhOSqPY+m9tKhQEpEZAw1FV6mFnBFXyjo5VsfWczH33Jc8lhvZJj/9eDz/MdfXiFaZiM0g8NR9nWG2dcZZmBI5RJyIZkjVaCFF8VK75aIyDiqA14aQgFcBQqm3C6oM0SKAAAgAElEQVTDv7xzNl/90EkEvCN5U//3jy9z48Oby3KFW9/AELs7+jnUEyGq/KmsSpTz8rg0IpUOBVIiIkcR9LlpqAngLuAvl7MWTOXOy5tpqh3Jm/rjjkNcefc6Xj1cXnlTANZaOvsHea29jy5thpw1FgWmmVAgJSJyDLHyCMGCJuHOqqtk5RXNvGXW5OSxVw/3ceWaFv6442DB2lVIw1HLwe7YdjP9AyqXkC0FGoAtWgqkRERS4HW7aKoNFqzWFMSmGm++6GSueOvM5LHegWG+8qvN3PWnl8subyphYCjK3s5+2rrCKpcwEXrrMqJASkQkRW6XoTEUIOgrXDDldhn+2ztm8bULTiI4Kqi768+v8JWHNtNThnlTCT2RoVi5hH5N901EoRZYFCsFUiIiaXC5DA2hABW+whTuTHjXvKncecWpzJgUTB7780uH+PSaFl451FvAlhVW1FoO9UTY3aHq6OnSgFRmFEiJiKTJGMO0kJ/KAlVBTzhhSiU/uqKZ02eP5E21tvfz6TXreO7F8sybSogMxqqja3Vf6hJFTzUelR4FUiIiGYgFUwGqAoUNpqr8Hr5x0cn809uOTx7rHxzmxoc383/+sKvsc4Y6+we1GXK6FEmlRYGUiMgE1FcHqA4UbksZAJcxfPKME7jpwkVUjMrfWvPXV/nyQ8/TEy7vIGIoGtsMeV9nmKFhFfMcT5muVZgwBVIiIhM0tdpf0P35Et4+t44fXd7MzMkVyWN/3XWYFWta2HWwfPOmEvoGhmht71ftqWMwGpJKiwIpEZEsmFLlZ1KFr9DNYOaUCu68/FTePndK8tjujn6uvLuFp7cdKGDLnCFqY7Wn9nb2J7dEkZjEYj1tEJ0eBVIiIlkyqdJX0M2OEyr9Hr5+wSL++e0nJMcWwoNR/vXRF/jJcy+Vfd4UQP9ALBldo1Mj3PE99vT9kR4FUiIiWVRT4aWugJsdJ7iM4ROnH8/NHz6ZSv9I3tQ9f3uN63+5iS7VWkqOTil3Kiaxx96QAqm0KJASEcmyUMBLY4H350s4ffYUVl7RzPFTRvKm/vFKOyvWtLDzQE8BW+YciY2Qy7mYKZD8ftWIVHoUSImI5EDA62Z6bRCfp/D/zM6YVMGPLm/mXfPqksf2doa56u51/G5rWwFb5hzDUUtbV7ist5nRiFRmCv8TLiJSojxuF9NrgwWvNQUQ9Lm58fyT+O/vmDWSNzUU5Ru/3sKqZ3aWbfDwej2RIXa399M3UH6jU253YkRK05zpUCAlIpJDxhjqqwNMriz8ij5jDJe/dSbf+shiqkZVZb/vH6186RcbtUdd3FA0yr7OMAe6y6squkakMqNASkQkD2orfEypKvyKPoC3zJrMymXNzK6rTB5b+2oHy1ev5cX93QVsmbN0hwfZ3dFPeLA89uzTqr3MKJASEcmTmqCX+lCg4Cv6AKbXBrnj8lM5a/7U5LH9XRGu+vl6ntyyv4Atc5bB4Sh7OmJ79pV6faXkiNRwaT9ntimQEhHJoyq/h2mhwpdHAAh63XzlQwv51Ltmk1hgODAU5Zu/2cqdv9+hkYlROvtjo1ORodIdnXInp/aUI5UOBVIiInlW4fPQWBPA5YBgyhjDZW8+ju989BRCo5Lif9Gymy8+sIGOvoECts5ZBoai7OkIl+x74lH5g4wokBIRKYCA101jrTNqTQGcdvwkVi5rZu7UquSx9a91snx1C9uVN5VkreVw7wC7O/oZGCqtkRuPOxYSKNk8PQqkREQKxO9x01QbxOt2xj/FjTVBfvDxpbz3xPrksbbuCFfds47HN+8rYMucJzI4zO6O/pJa6agcqcw446dXRKRMed0uGmsCjgmmAl43N5x3IivOmpPMmxoctnz7t9u443c7tJXKKNZaDvXENkAuhffFHy8eW8p5YLngjJ9cEZEy5nG7aKoN4ve6j31yHhhjuOS0Gdxy8SnUBL3J4w+u280XHtjI4d7SzBHKVP/AMK3t/XQX+QbIfm8ikCr+oDCfFEiJiDiA22VoqgkcUSiz0E6dGcubmlc/kje1sbWT5avXsmVvVwFb5jxRaznQHWF/EW8xE/DEAvnIoAKpdCiQEhFxCGMM9aEAtRWFr4Ke0BAK8IPLlnLOSdOSxw72DPC5e9fz2Ka9BWyZM/VGhmht76O3CDdAToxIhTW1lxYFUiIiDjO50sfUamfUmgLwe91cd+4CPvPuuUfkTd3y+Ha+/+SLDJZAflA2DUct+7vCtHWHi2qLGb9GpDKiQEpExIGqA14aQs6oNQWx0bKPNE/nu5csoXZU3tTDG/Zw7X0blDc1hp7wEK3t/fQPFMcIj5LNM6NASkTEoYK+WK0pj8s5/1QvOa6WVcuaWdBQnTz2/J4u/sfqtbywR3lTrzcUjbK3szi2mAnEFzuENSKVFuf8dIqIyBv4PbFgyinlEQDqQwFuv3Qp5y5qSB47FM+benSj8qbG0tk/SGu7szdAHj0i5fSgz0mc85MpIiJj8sbLI/g8zvkn2+dx8cX3z+ez7507ao82y21PbOe2J7aXXNXvbEhsgHywJ+LI3KlEjlTUqrp5OtL6qTTGfNIYY8f4ePp1573TGPN7Y0y7MeagMeZxY8xbM2lgqvcUESllsfIIweT0ixMYY7hw6XRuu2QJkypG8qYe3biXz9+3noM9kQK2zrm64hsgO21lX2LVHuDokTOnybRgyTXAwVH/vz/xH8aYpcCTwAbgy4AXWAE8ZYx5k7V2a7bvKSJSDlwuQ2NNgP1dEfoGnPNLePGMGlYtO42vPbKZLXtj+/K9sLeb5atb+Nr5J3Hy9JoCt9B5Boej7O8K4/e6mVLpc0SA7B814hkZilJ9lHNlRKaB1EPW2pfH+dw/AxZ4n7W2C8AY8xiwFbgY+EYO7ikiUhaMMUwL+TnQDT0OGtGYWu3nex9byh2/28Gv4/WlDvcOcM19G/jMu+dywZJGx5RzcJLI4DB7Ovqp8HmYVOlNTq8VgjEGn8fFwFBU1c3TkOmEuzHGhMzYPxXTgHAiiIpry/A+qd5TRKRsJAp3Vge8xz45j3weF9eeM5/Pnz0vuQHucNRy+1Mvcuvjyps6mr6BIXa399PWFS5oXa5AfFRKU3upyzSQ2gB0Ap3GmJXGmIpRn3sGqDHG3GqMmW2MORG4AzgA/GwCbT3aPUVEys7Uar+jqqAnfOiUJr536RKmVI607bHn9/HZe9dzoFt5U0fTE4nVnjrYEynIVjOJ/R5VlDN16U7t9QI/Bp4FBoHzgOXALODc+Dk/AZYAnwOujR/bBrzNWtuaQRtTuaeISFmaXOnD6zYc7Blw1JL1RU01rFrWzNceeYHN8fpS2/Z1s3z1Wr56/kksmVFb4BY6l7WWrv5BesJDhIJeaoNeXK7sTMbs2rWLlpaWcT9vorHp4o2bXyC8L3tBel1dHTNnzsza9ZzETPQHzxhzK7GA6Uxr7bPxY58HmoFHgCBwHTAcP+fQhG44zj3HOKcZWLt27Vqam5sneksREUcLDw47csPcweEod/5+Jw9v2JM85nYZPn3WHC5a2qS8qRS4XYbaoI9Q0EOm6S2J34nHOq/xv/0IX91M9t19PZHXNmVyqzEFKyrYumVLsQVTKb3X2Qik5gA7gK9aa28yxlxPbMRonrV2IH7OcfFzvmutvWFCNxzjnuOco0BKRMrKwFBsJZgT9777zaa93P7UiwwOj/zOOeekaVzzvnnJ6SQ5Oo/LxcwpFRMKpD7wXz7LwrecOe55T+310DHo4u1TB2kIZico3//qTtZ854sU4e/jlN7rTFftjZb4M2NS/PVTwLOJIArAWvuaMWYLcEYW7jfWPUVEyp7PEyvcub8r7Lhk4fMWNzKrrpIbH97MwZ7Yr4fHX9jProO9/OuFi5gWChS4hc43FJ14gDy5YQYz5i0a9/PBztfo6AxT2zCTGfVVE75fOchGmdzj4q8H4q/TgbH+vHADlVm431j3FBERYtNAjTUBqgLZ+Ds5uxY2hli17DQWTw8lj73Y1sPy1S2se7W9gC2TBE+ySr3zRjWdKt3K5nVjHL46/vpE/HUX8B5jTDKUjU/FnQiMOeFqjNlqjBmzUGeK9xQRkThjDPXVASZXOm9F3+RKH7desoSLljYlj3X2D/LFBzbywNpWRyXMlyNPfE9HbRGTunT/ZHnOGNMCrAP6gbOBC4H/sNb+I37OrcRW2f3BGPNTIAB8htiKu9vGue6CCd5TRERep7bCh9ftoq074qgAxet2cfV757GgoZrbntjO4LAlauFHT+9k+/5uPn/2fEdU+i5H3sSI1LBzvl+cLt1A6iHgIuB8YgHSLuB64JbECdbanxhjDgL/E7iJ2JTen4GLrbXPZ9DGY95TRETGVun30OgyjlzR9/5FDcyqq+Srv9pMW7y+1JNb2nj5YB//euEiGmqUN5VvbncikNLUXqrSmtqz1l5vrV1orQ1Za33W2gXW2m9ba4dfd96D1tq3WWtrrLVV1tqzrbV/O8p1jbV2zOz4VO8pIiJjC3jdNNUG8bqzkRabXfOnVbNqWTNLjxvZj2/HgR6Wr17L2leUN5VvXlfse2TQYUG3kznvp0pERLLO646t6HNiqYHaCh+3XLyEi0+bnjzWFR7iul9s5N6/v+aoaclS59GIVNoUSImIlAm3y9BUE6DC57wVfbEinXO54bwT8cX3e4ta+LdnX+Ibv95Cv8PKOZSqZLK5cqRSpkBKRKSMGGNoqAk4co8+gPctnMYdly1lWsifPPb7bQe46u517OnoL2DLykMi2XxQ5Q9SpkBKRKQMTa70MbXa78gtWuZNq2bVFafRPHNkP76XDvayYk0Lf3/5cAFbVvo0IpU+BVIiImWqOuClsSaAx+W8XwU1FV6+89FT+NibZiSPdYeH+NIvNnH3X19V3lSOJHOklGyeMuf99IiISN7EVvQFknlJTuJ2GZafOYcvf3Ah/nj7LPDvf9jF1x95gb6BocI2sAQlV+0p2TxlzvvJERGRvPK4XUyvDVLpd14SOsB7Tqznhx8/lcZRdaWeffEgV969jtb2vgK2rPSMrNrTiFSqFEiJiAjGGKaFnJuEPqe+ipVXNPOm40f2qn/lUB8r1rTwl5cOFbBlpUV77aVPgZSIiCQ5OQk9FPTyrY8s5rI3H5c81hsZ5n89+Dyr//IKUeVNTZhXyeZpUyAlIiJHSCShu13OC6bcLsOn3jWbr37oJALekbypn/7xZW58eDO9EeVNTcTIiJQCqVQpkBIRkTdw8rYyAGctmMqdlzfTVDuSN/XHHYe48u51vHpYeVOZSpQ/ULJ56pz5EyIiIgXnjSehB33O21YGYFZdJSuvaOYtsyYnj716uI8r17Twxx0HC9iy4qXyB+lTICUiIuNyuQwNoQDVAW+hmzKm6oCXmy86mWWnz0we6x0Y5iu/2sxdf3pZeVNpSpQ/GI5avXcpUiAlIiJHZYxharWfKZX+Y59cAG6X4b++fRZfv2ARwVGbMt/151f4ykOb6VHeVMoSI1KghPNUKZASEZGU1FR4mRYK4HLgij6Ad86r484rTmXGpGDy2J9fOsSn17TwyqHeAraseHhGLTBQCYTUKJASEZGUVfo9NNY6c1sZgBOmVPKjK5o5ffZI3lRrez+fXrOO515U3tSxGGNGVu5pRColzvxJEBERx/J7nLutDECV38M3LjqZf3rb8clj/YPD3PjwZv7PH3YxrETqo0pM72nlXmqc+VMgIiKO5nG7aKoJEvA6c0Wfyxg+ecYJ3HThIipHrTpc89dX+fJDz9MTVt7UeBKjjVq5lxoFUiIikhGXy9BYE6DC58w9+gDePreOO69oZubkiuSxv+46zIo1Lew6qLypsXi1315aFEiJiEjGYnv0+aly6IbHADMnV3Dn5afy9rlTksd2d/Rz5d0tPLP9QAFb5kyJopxKNk+NAikREZkQYwz1oQChoDNrTUEsSf7rFyzin99+Aol1aeHBKF9/5AV+8txLypsaJZFsPqgRqZQokBIRkayoq/JTW+ErdDPG5TKGT5x+PDd/+GQq/SN5U/f87TVueHATXf2DBWydc4xUN9eIVCoUSImISNZMrvQxudK5wRTA6bOnsPKKZo6fMpI39feX21mxpoWdB3oK2DJncMfrhGmULjUKpEREJKtqK3zUVTuzCnrCjEmxvKl3zatLHtvbGeaqu9fxu61tBWxZ4bldCqTSoUBKRESyLhTwUh8KYBxaBR2gwufhxvNP4r+/Y9ZI3tRQlG/8egurntlZtoGEAqn0KJASEZGcqPJ7mBbyOzqYMsZw+Vtn8q2PLD5i5eF9/2jlS7/YSGcZ5k0pkEqPAikREcmZCp+HBgfvz5fwllmTWbmsmdl1lclja1/tYMXqFna0lVfelAKp9CiQEhGRnAr63DTUBJK/oJ1qem2QOy4/lbPmT00e29cV5qp71vHUlv0FbFl+eUwsNBi2CqRSoUBKRERyLuCNBVNO3ew4Ieh185UPLeRT75pNIu6LDEW5+TdbWfl0eeRNaUQqPc7+jhYRkZLh97hprA3gdTv7V48xhsvefBzf/shiQoGRvKn717byxQc20tE3UMDW5Z4CqfQ4+7tZRERKitftorHG+cEUwJtOiOVNzZk6kje1/rUOlq9uYfv+7gK2LLcUSKXH+d/JIiJSUjxuF021QXwe5/8KaqwJcsfHT+W9J9Ynj7V1R7j65+t5/IXSzJtSIJUe538Xi4hIyXG7DE01QQJe97FPLrCA180N553IirPmJPOmBoaifPuxrfzwdzsYGi6trVQUSKVHgZSIiBSEy2VorAlQ4fMc++QCM8ZwyWkzuOXiU6gZtTnzL9ft5gsPbORwb+nkTSW3iNGqvZQokBIRkYIxxjAt5D+iGKaTnTpzEquWNTOvvip5bGNrJytWt7B1X1cBW5Y9iRGpIY1IpUSBlIiIFJQxhvpQgOqA99gnO8C0UIAfXLaUc06aljx2oCfCZ3++nsee31fAlmWHpvbSo0BKREQcYWq1/4hpMyfze91cd+4CPvPuucm8qcFhyy3/uY3bn3yRwSLOm0o8j2b2UqNASkREHGNKlZ9JFb5CNyMlxhg+0jyd716yhNpRAeCvNuzh2vs2FG3eVGJvxKgiqZQokBIREUeZVOmjrtpf6GakbMlxtaxa1syChurksef3dPE/Vq/lhT3FlzdlNCKVFgVSIiLiOKGAl2mhQHJ0xOnqQwFuv3Qp5y5qSB471DPA5+5dz6Mb9xawZelLBlIokkqFAikREXGkSr+HhlAAV5EEUz6Piy++fz6ffe/cI1a+3fbEdm57YjsDQ8WRN+Ui1naNSKVGgZSIiDhW0Bfbn8/pmx0nGGO4cOl0brtkCZMqRvKmHt24l8/ft56DPZECti41ibhVOVKpKY7vTBERKVvFstnxaItn1LBq2WksbBzJm3phbzfLV7fw/O7OArbs2BLTqYqjUlM835UiIlK2vPH9+fxFsKVMwtRqP9/72FLOWzySN3W4d4Br7tvAr9bvwTo0UlH5g/QokBIRkaIQ25+vOLaUSfB5XHzhnAV8/ux5eEYVurz9qRe55T+dmTdl4jlSUSWbp0SBlIiIFI3kljKB4gmmAD50ShPfu3QJUypHamT9dvM+Pnvvetq6wgVs2Rsl0tE0IpUaBVIiIlJUjDHUVweoLZLCnQmLmmpYtayZRU2h5LFt+7pZsaaFDa0dBWzZkZIjUoqkUqJASkREitLkSh9TqoqncCfEKrff9rElXLCkKXmsvW+QL9y/kQfX7XZE3pQKcqZHgZSIiBStmmBxFe6EWOL85943jy+cMx+veyRv6o7f7eB//+c2IoPDBW6hpEOBlIiIFLVKv4fGmuIp3Jlw3uJGvn/pUuqqRqYo/3Pzfj5773r2OyxvSsanQEpERIpewFtchTsTFjaGWLXsNBZPr0ke276/h+WrW1j3antB2pSY0SuyuLRgius7TkREZBx+j5umIivcCbFcr+9ecgofPnV68lhn/yBffGAjD6xtzX/eVPx2iqNSU1zfbSIiIkfhiRfuDBRR4U6Itfuq98zlunMXJPOmohZ+9PROvvXYVsJ5zJtKbFZcTHlnhaRASkRESorbZWisCVDpL65aUwDvX9TADy47lfrqkdWIT25p4+p71rOvMz95U1qtl560AiljzCeNMXaMj6dfd947jTG/N8a0G2MOGmMeN8a8NdNGGmMmGWN+Fr9epzHmXmNMfabXExGR0hYr3BmgOuA99skOs6ChmlXLmll63Eje1I4DPSxfvTav7dB4VGoyHZG6BvjEqI+bE58wxiwFngQqgS8D3wCOB54yxpyY4f0eBD4K3BK/3nuBx4wxxTV2KyLiANGoZVNrJ89sP8Cm1k6i0dIdgpha7WdSkRXuBKit8HHLxUu4+LSRvKmu8BAnfOnX/zfX906OSCmSSkmm454PWWtfHudz/0wsVe191touAGPMY8BW4GJigVDKjDFnA2cCn7TW3hU/9gLwKLHg6r5MHkBEpBz9acdBVj6zk51tPQwOW7xuw5z6KlacOYcz5tYVunk5ManSh9ttONgdKXRT0uJ2GT591lx27u9hXWtn4vAnif2ezTnFUanJdETKGGNCZuxMtGlAOBFExbVleB+A84EIcO+oY48Bh4ALJnBdEZGy8qcdB7nhwU1s2dtFpd9DfbWfSr+HLXu7ueHBTfxpx8FCNzFnQgEvDTXFVbgT4HuPbxsdRAHkfJfjZLK5QqmUZBpIbQA6gU5jzEpjTMWozz0D1BhjbjXGzI5P590BHAB+lsG9FgPbrbXJLDtrbRTYFP+ciIgcQzRqWfnMTnoiQzSEAgS8blwuQ8DrpiHkpycyzMpndpb0NF+FL1a40+0qjgBhcDDKb57fl/f7amovPelO7fUCPwaeBQaB84DlwCzg3Pg5PwGWAJ8Dro0f2wa8zVrbmkEbG4BWAGPMk8BU4M3ERrlOyuB6IiJlZ/OeLna29TCpwveGURljDLUVXna29bB5TxeLZ9SMc5XiF/C6aawJsr8rzOBwzgd3JuTnf3+N4SzHtYf3tdL64uajnnMgbAAvQwPhY56biv2v7pzwNZwsrUDKWns/cP+oQ/cZYw4C1xpj3mWtfdZaO2SM2Q78HHgECALXAb8yxpxprT2UZhv9wED8v08AJgFeYtN9gTSvJSJSlg73DTA4bPGNU6zS73bRGbUc7hsY8/OlxOdx0VgTYF9XmIEh5wZTuzv7sn7Nx+66ncfuuv2o5wSOX8K0y27m4O5XuO0bV2XlvsGKCurqSjMHLxtFNlYSG3k6E3jWGHM9sVGqedbaAQBjzFPAjvh5N6R5/QiQWHKxFHBba3uNMX5AmxGJiKRgcoUPr9swMBwl4HrjgufIcBSvyzC5CFe4ZcLjdtFUE2R/d5j+AWduEjy9puLYJ6Vp9erVLFy48Kjn9A5Eae0awuepY9ZnslNyoa6ujpkzZ2blWk6TjUBqT/x1Uvz1U8CziSAKwFr7mjFmC3BGBtffRyyBHWttz6jj9fHPiYjIMSxqCjGnvoote7tpCLmOmN6z1tLRN8jCxmoWNYUK2Mr8crkMDaEAB7oj9ESGCt2cN7jszcfx//7yclan9xYuXEhzc3P2LihZqWx+XPz1QPx1OjBWfSc3sdpS6doEzDfGJKfxjDEuYonmmzK4nohI2XG5DCvOnEOV382+rgj9g8NEo5b+wWH2dUWo8rtZceYcXEWSiJ0txhjqQwFqgs4r3On1ujjv5IZCN0OOId3K5mNNcF4df30i/roLeI8xpmrU180BTmScwMcYs9UYs3Wc2z5KLE/q0lHHPgBMIZaDJSIiKThjbh3f/PBiFjZW0xcZoq0nQl9kiIWN1Xzzw4tLto5UKqZU+ZlS6T/2iXl2zTkLOH9xA+6R+FZbuzlMulN7zxljWoB1QD9wNnAh8B/W2n/Ez7mV2Mq+PxhjfkosIfwzxFb53TbOdRcc5Z5PAM8BdxhjmuLX+RKwHvhFmu0XESlrZ8yt4/TZU9i8p4vDfQNMrvCxqClUdiNRY6mp8OJywcGeAayDNpy75pwFfObd8/j531/j//755Z8Vuj1ypHQDqYeAi4gVyQwQG326ntjWLQBYa38SX8n3P4GbiE3p/Rm42Fr7fLoNtNZaY8xFwPeJrf5zAb8FrrbWOm9SW0TE4VwuU9IlDiaiOuDF43KxvytM1EHBlNfr4hNnHM+NFy7KS1VzSV265Q+uJxY4Heu8B4ntj5fqdY/6p5C19jDwT6leT0REJFNBn5uGmgD7u8IMl3CBUskOzbWKiIi8TsDrpqk2iHeculsiCfoOERERGYPX7aKpNojfO9ZCdJEYBVIiIiLjcLsMjaEAFb5slF2UUqRASkRE5ChcLsO0kJ+qgIIpeSMFUiIiIsdgjKG+OkBtmWyhI6lTICUiIpKiyZU+plQ5r3CnFI4CKRERkTTUBL3UhwJH7Fco5UuBlIiISJqq/B4aQgFcCqbKngIpERGRDAR9bhprA3hc+lVaztT7IiIiGfJ7YsGUCneWL/W8iIjIBCQKd/o8+pVajtTrIiIiE+R2GZpqggRUBb3sKJASERHJApfL0FijKujlRoGUiIhIlhijKujlRoGUiIhIFiWqoIeC3kI3RfJAgZSIiEgO1FX5taVMGVAgJSIikiOTK31MrlQwVcoUSImIiORQbYX25ytlCqRERERyrCboZWq1X/vzlSAFUiIiInlQHfBSr2Cq5CiQEhERyZNKbXZcchRIiYiI5FHQ56ahJoDbpWCqFCiQEhERybOAV8FUqVAgJSIiUgB+j5um2iBet34VFzP1noiISIF43S4aawIKpoqYek5ERKSAPG4XTbVBfB79Si5G6jUREZECc7sMTTVBAl53oZsiaVIgJSIi4gAul6GxJkDQp2CqmCiQEhERcQhjDA2hAJV+T6GbIilSICUiIuIgxhimhQJUBRRMFQMFUiIiIg5UXx0gFPQWuhlyDAqkREREHKquyk9tha/QzbbxiS0AAAefSURBVJCjUCAlIiLiYJMrfUyp9Be6GTKOUp6ADQBs2bKl0O0QERGZsJ7IEHPq39oMbLXW9hW6PRJjrLWFbkNOGGMuB9YUuh0iIiJZdpq1tiWdLzDGNANrM/laObpSDqSmAO8HXgbChW2NiIhI1qQ9ImWMqQBOzORr5ehKNpASERERyTUlm4uIiIhkSIGUiIiISIYUSImIiIhkqGgDKWPMrcYYa4z5YYZfP8kY8zNjTLsxptMYc68xpj7b7czERJ7NGPPJ+Ne+/uPpHDQ1r21xSp9l87mc1F+j2mSMMcuNMRuNMf3GmDZjzMPGmKoMruWIPhvVnqw8m9P6zRjz8jjtscaYJzK4nmP6LZvP5sB+e6cx5vfx9/mgMeZxY8xbJ3A9x/RbOSnKOlLGmNnApyZ4mQeB04BvAYPAdcBjxpi3WGuHJ3jtjGXp2QCuAQ6O+v/9WbhmprLVFqf1WTbfYyf11zeBLwH3A3cAVcA7gCDQk+a1nNZn2Xw2cE6/fY7Ys4x2AnATkHYghbP6LdvPBg7oN2PMUuBJYAPwZcALrACeMsa8yVq7NYPLOqnfyoe1tug+gAeA2wEL/DCDrz87/rX/ZdSxD8aPfazIn+2T8a89wQH9lLW2OKnPsvxcjumveHtOBIaAm0upz3LwbI7qt3Ha+FUgChxXzP2W5WdzTL/F/50PA6FRxxbE2/flDK7n+H4r1Y+im9ozxryDWH2omydwmfOBCHDvqGOPAYeACyZw3QnJ0rONupwJGWNMFq41UdloixP7LJvvsVP66+PE/pL9FkAm03mjOK3PsvlsCU7pt7EsA/5grX0tza9zWr+NJdNnS3BCv00DwtbarlHH2iZwvWLot5JUVIFU/Jv+NuB71tqJfMMtBrZba5OFOq21UWBT/HN5l8VnS9gAdAKdxpiVJlaMrVCy0RbH9RnZfY+d0l9vJfaeXmCMaQO6jTGvGWM+nsG1nNZn2Xy2BKf02xHieTbzgLsz+HKn9dsRJvhsCU7ot2eAGhPLiZ1tjDmR2HTzAeBnGVzP0f1WyootR+oKYDZw6wSv0wC0AhhjngSmAm8m9tfASRO8dqay9Wy9wI+BZ4n99X0esByYBZw7wWsXsi1O6rNsPpeT+gtgOrF8lFXEclBeAa4E1hhjttn0tpZwUp9Bdp/Naf32ep8g1q77M/hap/Xb603k2ZzUbz8BlhDLAbs2fmwb8DZrbWsG13N6v5WuQs8tpvpBLBn0VeDaUccyzSN6Cfh1/L93EBv6rAT+H9BZzM82zvVvjV/vXQ7ox4za4rQ+y+V7XMj+AnbG7/3pUceqgC7gnmLus2w+m9P67XXt8BIb1Xg0w693VL9l89mc1m/A54HVwKXE8re2AM8DU0qp30r9o5im9q4FDHBnFq4VAXzx/14KzLbW9gJ+CrMvXzafbSwr469n5uj66ci0LU7rs9fL5ntcyP4aiL/+MnHAWtsD/Ak4Jc1rOa3PsvlsY3HKz9kHgDoyn/pyWr+NNtFnG0tB+s0Ycz3wWeC/Wmvvtdb+DDiH2LTltUf72nE4ud9KWlEEUsaYGmLLOP8NqDPGzDDGzIh/ujL+/940LrmPWKIf1toea21n/Hh9/HN5k4NnG8ue+OukCV4nGzJti2P6bBzZfI8L2V8HXveacJjYe50Op/VZNp9tLE75OfsEsSmsX2X49U7rt9Em+mxjKVS/fQp41lqbCPCxseT5LcAZGVzPyf1W0ooikCL2DV5FLK/htVEfEBsOfY3YXHOqNgHzjTGBxAFjjItYQt6mLLQ3Hdl+trEcF399/S+QQsi0LU7qs7Fk8z0uZH+9EH9teN3xqYz8wkmV0/osm882loL/nMX/MPsQ8HB8NCITTuu3RBuy8WxjKVS/TQfcYxx3E5uSS5cj+60cFEsgtZ/Y0s7XfwD8Ov7fL47+AmPMVmPMeAXNHiU23HnpqGMfAKYAj2Sv2SnJ6rMZY+rGOHx1/DXT4nUZSbctxdJn2XwuJ/VX3G/jr5cnDhhjpgBvB/7x+pOLpc/isvZsDuy3hEuAAMeY+iqyfkuY8LM5rN92Ae8ZXYbDGDOHWL2zMQOfIu23kmfiiWlFyRhjgTuttZ8Z53NYa99QJyReauAZYvPIiQqwXyI2+vNma+1QLtudigk82xagBVgH9BMr0nYh8B/W2n/KaaMn2JZi6bMsP5dj+iveHhfwN2KjoN8ntgjiX4gVCjzZWvv6oL4o+izenmw+m6P6bVS7ngEWAY3W2sGjnFc0/TaqXdl4Nsf0mzHmX4itINwA/JRYkPgZYjlgb7HWPj/G1xRdv5WFQme7T+SDo6xsi3/OHuVrJxNbzdBBbNXOfUBDoZ9pos9G7AdoS/yZBogtp/0S4C7AM6TVlmLps2w+l5P6a1SbpgJ3EVv1Ewb+DJxVzH2W7WdzaL8dT6za96oUzi22fsvKszmt34APx78HO4ltUfQEsSCqJPqtXD6KekRKREREpJCKJUdKRERExHEUSImIiIhkSIGUiIiISIYUSImIiIhkSIGUiIiISIYUSImIiIhkSIGUiIiISIYUSImIiIhkSIGUiIiISIYUSImIiIhkSIGUiIiISIYUSImIiIhkSIGUiIiISIb+P51lroNS1akeAAAAAElFTkSuQmCC\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["As we can see, our outlier detection system found the outlier and excluded it from our dataset, as needed."],"metadata":{"id":"yjlxMrbrfAgE"}}]}