diff --git a/LinFormer_AutoML_on_AE_sysmon_dataset_(Excel_implant_C2).ipynb b/LinFormer_AutoML_on_AE_sysmon_dataset_(Excel_implant_C2).ipynb new file mode 100644 index 0000000..023a117 --- /dev/null +++ b/LinFormer_AutoML_on_AE_sysmon_dataset_(Excel_implant_C2).ipynb @@ -0,0 +1,5505 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "machine_shape": "hm", + "gpuType": "T4" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "13c7730f61b24661bca4b4406f488fbb": { + "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_82838b6e6693488682c97ce82ed723bf", + "IPY_MODEL_41b566d613234e03876a7c6a68431d7b", + "IPY_MODEL_dd83f610ca584acbba3738f2c137b2b9" + ], + "layout": "IPY_MODEL_ad4f22541b284758b868c95e5e8ceff0" + } + }, + "82838b6e6693488682c97ce82ed723bf": { + "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_13d9c546446a482ab6634e2c69c70685", + "placeholder": "​", + "style": "IPY_MODEL_10c31ef1ded9471cae583be49e7092e5", + "value": "100%" + } + }, + "41b566d613234e03876a7c6a68431d7b": { + "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_c1ad9d79f8464e71bd79ae848c103a58", + "max": 8039037, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0de9cbe7986c49fb99ae4f3abdba42d9", + "value": 8039037 + } + }, + "dd83f610ca584acbba3738f2c137b2b9": { + "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_6b12aceb2e4c46eeb708d0877a9ca639", + "placeholder": "​", + "style": "IPY_MODEL_b6edc45065c7488a8b8be5e1349b27ba", + "value": " 8.04M/8.04M [00:00<00:00, 9.88MiB/s]" + } + }, + "ad4f22541b284758b868c95e5e8ceff0": { + "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 + } + }, + "13d9c546446a482ab6634e2c69c70685": { + "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 + } + }, + "10c31ef1ded9471cae583be49e7092e5": { + "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": "" + } + }, + "c1ad9d79f8464e71bd79ae848c103a58": { + "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 + } + }, + "0de9cbe7986c49fb99ae4f3abdba42d9": { + "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": "" + } + }, + "6b12aceb2e4c46eeb708d0877a9ca639": { + "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 + } + }, + "b6edc45065c7488a8b8be5e1349b27ba": { + "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": "" + } + }, + "6d9d173f139a43e3a6b0b1deb2fb557b": { + "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_34569214f37b44e0802ddd403a4fa1a9", + "IPY_MODEL_2bdfcb2139bb4ae4b670c1fb49db6911", + "IPY_MODEL_b27ff271d01a49e38a32cd3ddcebe77a" + ], + "layout": "IPY_MODEL_92e050af8c674152b4d279fdda960458" + } + }, + "34569214f37b44e0802ddd403a4fa1a9": { + "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_6f00da7475754dad8d5d5ce800ae673d", + "placeholder": "​", + "style": "IPY_MODEL_1a9b0c9e9cb941fbb57529d10d054084", + "value": "100%" + } + }, + "2bdfcb2139bb4ae4b670c1fb49db6911": { + "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_545d68c2b8b742da9dd7983a3321ebf1", + "max": 1716416, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8956f45722f841dab504335dcc1921bc", + "value": 1716416 + } + }, + "b27ff271d01a49e38a32cd3ddcebe77a": { + "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_1785191337814317989989f0800e1424", + "placeholder": "​", + "style": "IPY_MODEL_d25bea1e539c4d328f05ded6af8b8154", + "value": " 1.72M/1.72M [00:00<00:00, 9.13MiB/s]" + } + }, + "92e050af8c674152b4d279fdda960458": { + "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 + } + }, + "6f00da7475754dad8d5d5ce800ae673d": { + "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 + } + }, + "1a9b0c9e9cb941fbb57529d10d054084": { + "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": "" + } + }, + "545d68c2b8b742da9dd7983a3321ebf1": { + "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 + } + }, + "8956f45722f841dab504335dcc1921bc": { + "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": "" + } + }, + "1785191337814317989989f0800e1424": { + "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 + } + }, + "d25bea1e539c4d328f05ded6af8b8154": { + "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": "" + } + }, + "bcf5338c159d4d53bc3e39e717885292": { + "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_7276e9b8b79d41ab991296d44521e2ee", + "IPY_MODEL_f2ab86c6413649a595edf4b8feeb6a66", + "IPY_MODEL_decc923894ab4ef4b35fa627b1b2dfb4" + ], + "layout": "IPY_MODEL_9875e07950114beca6741a51962c1f30" + } + }, + "7276e9b8b79d41ab991296d44521e2ee": { + "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_90db1bae92c94a49ab8bc9c12073e552", + "placeholder": "​", + "style": "IPY_MODEL_92a42873a8ef4c00ad24ef47a62b4093", + "value": "Optimization Progress: 100%" + } + }, + "f2ab86c6413649a595edf4b8feeb6a66": { + "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": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1826f0b9003a4f8bb1c074f526560c86", + "max": 120, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_549831432f244f5080c74eb842bae875", + "value": 120 + } + }, + "decc923894ab4ef4b35fa627b1b2dfb4": { + "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_20be31d5be524d76bc2dbb3baad4edf3", + "placeholder": "​", + "style": "IPY_MODEL_fc71d71e57774cb1a0df69e82d3e7c2d", + "value": " 120/120 [02:00<00:00,  1.16pipeline/s]" + } + }, + "9875e07950114beca6741a51962c1f30": { + "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": "hidden", + "width": null + } + }, + "90db1bae92c94a49ab8bc9c12073e552": { + "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 + } + }, + "92a42873a8ef4c00ad24ef47a62b4093": { + "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": "" + } + }, + "1826f0b9003a4f8bb1c074f526560c86": { + "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 + } + }, + "549831432f244f5080c74eb842bae875": { + "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": "" + } + }, + "20be31d5be524d76bc2dbb3baad4edf3": { + "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 + } + }, + "fc71d71e57774cb1a0df69e82d3e7c2d": { + "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": "" + } + }, + "8a807c2780cf4a65ad92dfa1ead0e439": { + "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_021bf8d789b74e3d899a99eeb82a0036", + "IPY_MODEL_f7aeed7c0692419591ca57bffee51739", + "IPY_MODEL_d7f2da7e3beb42dfaf31dc69eb7a597e" + ], + "layout": "IPY_MODEL_c7b913c695fc448c8fc7b31f7098f636" + } + }, + "021bf8d789b74e3d899a99eeb82a0036": { + "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_a59325353a1d4902b03f5a37c0293934", + "placeholder": "​", + "style": "IPY_MODEL_6cd3d0fc462c4b14bbe6be92b8e6103e", + "value": "100%" + } + }, + "f7aeed7c0692419591ca57bffee51739": { + "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_0cfdc6a2fa49499e9f0ce350b88dfbc4", + "max": 3288938, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a9c70dae97424ca290a75e10d24baf52", + "value": 3288938 + } + }, + "d7f2da7e3beb42dfaf31dc69eb7a597e": { + "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_f0fc3fee01b04ffc922096ee18b6cb0f", + "placeholder": "​", + "style": "IPY_MODEL_9142d6e9793648a9909e5ce3dabf415b", + "value": " 3.29M/3.29M [00:00<00:00, 9.24MiB/s]" + } + }, + "c7b913c695fc448c8fc7b31f7098f636": { + "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 + } + }, + "a59325353a1d4902b03f5a37c0293934": { + "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 + } + }, + "6cd3d0fc462c4b14bbe6be92b8e6103e": { + "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": "" + } + }, + "0cfdc6a2fa49499e9f0ce350b88dfbc4": { + "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 + } + }, + "a9c70dae97424ca290a75e10d24baf52": { + "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": "" + } + }, + "f0fc3fee01b04ffc922096ee18b6cb0f": { + "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 + } + }, + "9142d6e9793648a9909e5ce3dabf415b": { + "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": "" + } + }, + "2380e728c4b94d4a82d99c5df53bcfb8": { + "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_60e0fda3b0b64788b12de0492e48a8eb", + "IPY_MODEL_b4aab6b20b704970a6d88b4203aafe33", + "IPY_MODEL_94853d6fcd9e485ab00941270501bdc2" + ], + "layout": "IPY_MODEL_85171f4f5f6f4cf798c8f0afc85c0f45" + } + }, + "60e0fda3b0b64788b12de0492e48a8eb": { + "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_188af8de0a894c4b862c04ae22f6e2ab", + "placeholder": "​", + "style": "IPY_MODEL_cca3270cffa747b0819b1a50fff1ef02", + "value": "Optimization Progress: 100%" + } + }, + "b4aab6b20b704970a6d88b4203aafe33": { + "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": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2f02cde9cf5f45fc8ce05a545baad40c", + "max": 20, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_aa35eac1e7964054bf8ab8903cd3e182", + "value": 20 + } + }, + "94853d6fcd9e485ab00941270501bdc2": { + "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_bf41ac8c2a6f47e6b6956e4389485e3e", + "placeholder": "​", + "style": "IPY_MODEL_6f7d22c33bbd434e83d5764c7ebed942", + "value": " 120/120 [01:48<00:00,  1.01s/pipeline]" + } + }, + "85171f4f5f6f4cf798c8f0afc85c0f45": { + "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": "hidden", + "width": null + } + }, + "188af8de0a894c4b862c04ae22f6e2ab": { + "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 + } + }, + "cca3270cffa747b0819b1a50fff1ef02": { + "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": "" + } + }, + "2f02cde9cf5f45fc8ce05a545baad40c": { + "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 + } + }, + "aa35eac1e7964054bf8ab8903cd3e182": { + "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": "" + } + }, + "bf41ac8c2a6f47e6b6956e4389485e3e": { + "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 + } + }, + "6f7d22c33bbd434e83d5764c7ebed942": { + "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": "" + } + }, + "612cffdae98544d480553f9a40e6bd01": { + "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_9eb0c8bff0b6480caac00ebc3381b0d7", + "IPY_MODEL_ef6da18b47a04feeabf4d5e1d0437f0b", + "IPY_MODEL_a992cbe30d1c47b09724593a260a690c" + ], + "layout": "IPY_MODEL_ee97630f2ff341bfb51cedf7c99bf39c" + } + }, + "9eb0c8bff0b6480caac00ebc3381b0d7": { + "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_c89e1c3487e040caa253aad97f240fe7", + "placeholder": "​", + "style": "IPY_MODEL_31666166fb934ef4b8d568f609db9fb3", + "value": "Optimization Progress: 100%" + } + }, + "ef6da18b47a04feeabf4d5e1d0437f0b": { + "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": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2ee32d42a6124f9fa35a04115268427d", + "max": 20, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_d78b5fb09a4d4aacb52940e2a12de183", + "value": 20 + } + }, + "a992cbe30d1c47b09724593a260a690c": { + "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_d8a982183d3f45d2b77dddd74f4ff9e7", + "placeholder": "​", + "style": "IPY_MODEL_f679dcba359e460ebe3d763e086922c7", + "value": " 120/120 [01:46<00:00,  1.14pipeline/s]" + } + }, + "ee97630f2ff341bfb51cedf7c99bf39c": { + "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": "hidden", + "width": null + } + }, + "c89e1c3487e040caa253aad97f240fe7": { + "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 + } + }, + "31666166fb934ef4b8d568f609db9fb3": { + "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": "" + } + }, + "2ee32d42a6124f9fa35a04115268427d": { + "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 + } + }, + "d78b5fb09a4d4aacb52940e2a12de183": { + "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": "" + } + }, + "d8a982183d3f45d2b77dddd74f4ff9e7": { + "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 + } + }, + "f679dcba359e460ebe3d763e086922c7": { + "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": "" + } + }, + "e329ae9f00ae426caba593bf82062720": { + "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_6b18e9941ad8489a856d8951086dc0ec", + "IPY_MODEL_bd1ef0b1216f44e981e06617353af203", + "IPY_MODEL_cb16a7ccc2d048699ec81bd9cc08782b" + ], + "layout": "IPY_MODEL_2057161353254330b31e15c030f5c77e" + } + }, + "6b18e9941ad8489a856d8951086dc0ec": { + "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_2768fc55816a4ddabd3389b3e6c9a0df", + "placeholder": "​", + "style": "IPY_MODEL_12c31e7d69934b1bb13b7e4de18f9aee", + "value": "Optimization Progress: 100%" + } + }, + "bd1ef0b1216f44e981e06617353af203": { + "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": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d3f693b6862747fbab9f786e7ef0a9cf", + "max": 40, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f3a099a3356044e7a641d590c6381041", + "value": 40 + } + }, + "cb16a7ccc2d048699ec81bd9cc08782b": { + "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_aab64f46dfdf4948bec48ef02618cf75", + "placeholder": "​", + "style": "IPY_MODEL_b83434e8778040d4975f5fab89a976ec", + "value": " 40/40 [00:09<00:00,  5.26pipeline/s]" + } + }, + "2057161353254330b31e15c030f5c77e": { + "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": "hidden", + "width": null + } + }, + "2768fc55816a4ddabd3389b3e6c9a0df": { + "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 + } + }, + "12c31e7d69934b1bb13b7e4de18f9aee": { + "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": "" + } + }, + "d3f693b6862747fbab9f786e7ef0a9cf": { + "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 + } + }, + "f3a099a3356044e7a641d590c6381041": { + "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": "" + } + }, + "aab64f46dfdf4948bec48ef02618cf75": { + "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 + } + }, + "b83434e8778040d4975f5fab89a976ec": { + "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": "" + } + }, + "3ae62907413b4d969f53c4a3092fb46d": { + "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_5af08e85e25040b19544493df13617d5", + "IPY_MODEL_439b9e942cec4fe699f3e561082585b5", + "IPY_MODEL_b4b43f188f454890a04bc1869680c46d" + ], + "layout": "IPY_MODEL_4de8382a838648b6bf2d639b5ae65c7b" + } + }, + "5af08e85e25040b19544493df13617d5": { + "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_32aa5ea1c8354c0eb3538819a48e81ea", + "placeholder": "​", + "style": "IPY_MODEL_ed0c20dcb4764e629766a2e31d019edf", + "value": "Optimization Progress: 100%" + } + }, + "439b9e942cec4fe699f3e561082585b5": { + "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": "", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_90db1881f3254f71adf5d809c0d83bae", + "max": 40, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_87b95caad65649a9b85bdc015c665838", + "value": 40 + } + }, + "b4b43f188f454890a04bc1869680c46d": { + "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_8151a7980fc346debb0caf1c20af5429", + "placeholder": "​", + "style": "IPY_MODEL_2f6c4ac937de426ab94fdde3fc4fc95a", + "value": " 40/40 [00:04<00:00,  7.79pipeline/s]" + } + }, + "4de8382a838648b6bf2d639b5ae65c7b": { + "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": "hidden", + "width": null + } + }, + "32aa5ea1c8354c0eb3538819a48e81ea": { + "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 + } + }, + "ed0c20dcb4764e629766a2e31d019edf": { + "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": "" + } + }, + "90db1881f3254f71adf5d809c0d83bae": { + "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 + } + }, + "87b95caad65649a9b85bdc015c665838": { + "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": "" + } + }, + "8151a7980fc346debb0caf1c20af5429": { + "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 + } + }, + "2f6c4ac937de426ab94fdde3fc4fc95a": { + "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": [ + "# AutoML with TPOT using Adversary Emulation (C2) as datagen - Supervised and Deep Learning with Genetic Programming" + ], + "metadata": { + "id": "YJeseKzwjOVm" + } + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "id": "wUrhwXsDkETs" + } + }, + { + "cell_type": "markdown", + "source": [ + "# Installations\n", + "\n", + "The installation is mostly automated.\n", + "\n", + "A file in the same directory named \"thesis_ro\" will be required, which should contain your GitHub read-only token.\n", + "\n", + "The file has one line:\n", + "\n", + "\n", + "`echo \"GITHUB_PERSONAL_ACCESS_TOKEN=\"ghp_...\" > thesis_ro`" + ], + "metadata": { + "id": "Fv4KCLz9j4Zc" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "ayxWRSxzgwh_" + }, + "outputs": [], + "source": [ + "import sys\n", + "import os\n", + "import subprocess\n", + "\n", + "IN_COLAB = 'google.colab' in sys.modules\n", + "\n", + "if not IN_COLAB:\n", + " pass\n", + "\n", + "else:\n", + " subprocess.run('''\n", + " source <(curl -s https://raw.githubusercontent.com/norandom/log2ml/main/dependencies/install.sh)\n", + " ''',\n", + " shell=True, check=True, executable='/bin/bash')\n", + "\n" + ] + }, + { + "cell_type": "code", + "source": [ + "from dotenv import load_dotenv\n", + "import os\n", + "\n", + "load_dotenv(\"thesis_ro\", verbose=True) # take environment variables from the file\n", + "token = os.getenv('GITHUB_PERSONAL_ACCESS_TOKEN')\n", + "if len(token) > 0:\n", + " print(\"ok\")\n", + "else:\n", + " print(\"no token\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vyKWa35bkFcG", + "outputId": "61b4bff8-193b-40f0-fb90-d1d1a8c2010c" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "ok\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Data download: captured Sysmon logs from the AE lab\n", + "\n", + "These samples contain Sysmon log activity of Dropper Malware (C2 Dropper, MS Excel VBA, Covenant).\n", + "\n", + "No AE campaigns, just the Dropper itself.\n", + "\n", + "We are looking at 1000 documents, some malicious and some not. Which ones are malicious? How does the VBA Excel malware behave? How not? Can ML help to find out?" + ], + "metadata": { + "id": "oYVNy4rNojZc" + } + }, + { + "cell_type": "code", + "source": [ + "from github import Github\n", + "import requests\n", + "from tqdm.notebook import tqdm\n", + "\n", + "\n", + "def get_specific_file_from_tagged_release(token, repo_name, tag_name, filename):\n", + " g = Github(token)\n", + " repo = g.get_repo(repo_name)\n", + " releases = repo.get_releases()\n", + "\n", + " for release in releases:\n", + " if release.tag_name == tag_name:\n", + " for asset in release.get_assets():\n", + " if asset.name == filename:\n", + " return asset.url\n", + " print(\"File not found. Try get_specific_file_from_latest_release() instead.\")\n", + " return None\n", + "\n", + "def get_specific_file_from_latest_release(token, repo_name, filename):\n", + " g = Github(token)\n", + " repo = g.get_repo(repo_name)\n", + " release = repo.get_latest_release()\n", + "\n", + " for asset in release.get_assets():\n", + " if asset.name == filename:\n", + " return asset.url # Use asset.url which points to API URL needing headers\n", + "\n", + "def download_file(url, token, save_path):\n", + " headers = {'Authorization': f'token {token}', 'Accept': 'application/octet-stream'}\n", + " # First request to handle GitHub's redirection and authentication properly\n", + " with requests.get(url, headers=headers, stream=True) as initial_response:\n", + " initial_response.raise_for_status() # Ensure the initial request is successful\n", + " # Follow redirection if necessary, maintaining headers\n", + " if initial_response.history:\n", + " url = initial_response.url # Updated URL after redirection\n", + "\n", + " # Now, proceed with downloading the file\n", + " with requests.get(url, headers=headers, stream=True) as response:\n", + " response.raise_for_status()\n", + " total_size_in_bytes = int(response.headers.get('content-length', 0))\n", + " block_size = 1024\n", + "\n", + " progress_bar = tqdm(total=total_size_in_bytes, unit='iB', unit_scale=True)\n", + " with open(save_path, 'wb') as file:\n", + " for data in response.iter_content(block_size):\n", + " progress_bar.update(len(data))\n", + " file.write(data)\n", + " progress_bar.close()\n", + "\n", + " if total_size_in_bytes != 0 and progress_bar.n != total_size_in_bytes:\n", + " print(\"ERROR, something went wrong\")\n", + " else:\n", + " print(f\"File downloaded successfully and saved as {save_path}\")\n", + "\n", + "# Your GitHub token\n", + "github_token = token\n", + "\n", + "# Repository name\n", + "repository_name = \"norandom/log2ml\"\n", + "\n", + "# File name to search for\n", + "file_name = \"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024.csv\"\n", + "\n", + "# Get the download URL of the specific file\n", + "# download_url = get_specific_file_from_latest_release(github_token, repository_name, file_name)\n", + "download_url = get_specific_file_from_tagged_release(github_token, repository_name, \"lab\", file_name)\n", + "print(download_url)\n", + "\n", + "if download_url:\n", + " local_file_path = file_name\n", + " download_file(download_url, github_token, local_file_path)\n", + "else:\n", + " print(\"File not found.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85, + "referenced_widgets": [ + "13c7730f61b24661bca4b4406f488fbb", + "82838b6e6693488682c97ce82ed723bf", + "41b566d613234e03876a7c6a68431d7b", + "dd83f610ca584acbba3738f2c137b2b9", + "ad4f22541b284758b868c95e5e8ceff0", + "13d9c546446a482ab6634e2c69c70685", + "10c31ef1ded9471cae583be49e7092e5", + "c1ad9d79f8464e71bd79ae848c103a58", + "0de9cbe7986c49fb99ae4f3abdba42d9", + "6b12aceb2e4c46eeb708d0877a9ca639", + "b6edc45065c7488a8b8be5e1349b27ba" + ] + }, + "id": "5EEoa3gUmFpn", + "outputId": "83f18cff-926c-467d-dc4e-089e69342895" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "https://api.github.com/repos/norandom/log2ml/releases/assets/182477524\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " 0%| | 0.00/8.04M [00:00 1:\n", + " processed_lines.append(f\"User: {parts[1]}\")\n", + " elif keyword in ['SourceHostname', 'DestinationHostname']:\n", + " parts = line.split(':', 1)\n", + " if len(parts) > 1:\n", + " hostname = parts[1].strip().split('.')[0]\n", + " processed_lines.append(f\"{keyword}: {hostname}\")\n", + " elif keyword == 'QueryName':\n", + " parts = line.split(':', 1)\n", + " if len(parts) > 1:\n", + " domain = parts[1].strip().split('.')\n", + " if len(domain) > 0:\n", + " processed_lines.append(f\"QueryName: {domain[0]}\")\n", + " else:\n", + " processed_lines.append(line)\n", + " processed = True\n", + " break\n", + " if not processed:\n", + " processed_lines.append(line)\n", + "\n", + " return '\\n'.join(processed_lines)\n", + "\n", + " return batch.map_elements(modify_message, return_dtype=pl.Utf8)\n", + "\n", + "# Keywords to filter or process\n", + "keywords_to_filter = [\"UtcTime\", \"SourceProcessGUID\", \"ProcessGuid\", \"TargetProcessGUID\", \"TargetObject\", \"FileVersion\", \"Hashes\", \"LogonGuid\", \"LogonId\", \"CreationUtcTime\", \"User\", \"ParentProcessGuid\", \"SourceHostname\", \"DestinationHostname\", \"QueryName\"]\n", + "\n", + "# Apply the transformation to the 'message' column using map_batches\n", + "df_f = df.with_columns(\n", + " pl.col(\"message\").map_batches(lambda batch: remove_keyword_lines(batch, keywords_to_filter), return_dtype=pl.Utf8).alias(\"filtered_message\")\n", + ")\n", + "\n", + "# Show the DataFrame to confirm it's loaded correctly\n", + "print(df_f)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "_CJUqGQUqFew", + "outputId": "8f117d78-c99e-4c42-83ac-796ba6a2389a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (13_455, 8)\n", + "┌────────────┬────────────┬────────────┬───────────┬───────────┬───────────┬───────────┬───────────┐\n", + "│ @timestamp ┆ host.hostn ┆ host.ip ┆ log.level ┆ winlog.ev ┆ winlog.ta ┆ message ┆ filtered_ │\n", + "│ --- ┆ ame ┆ --- ┆ --- ┆ ent_id ┆ sk ┆ --- ┆ message │\n", + "│ str ┆ --- ┆ str ┆ str ┆ --- ┆ --- ┆ str ┆ --- │\n", + "│ ┆ str ┆ ┆ ┆ i64 ┆ str ┆ ┆ str │\n", + "╞════════════╪════════════╪════════════╪═══════════╪═══════════╪═══════════╪═══════════╪═══════════╡\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 3 ┆ Network ┆ Network ┆ Network │\n", + "│ T15:08:24. ┆ ┆ :35de:6006 ┆ on ┆ ┆ connectio ┆ connectio ┆ connectio │\n", + "│ 277Z ┆ ┆ :d4cf ┆ ┆ ┆ n ┆ n ┆ n │\n", + "│ ┆ ┆ ┆ ┆ ┆ detected ┆ detected: ┆ detected: │\n", + "│ ┆ ┆ ┆ ┆ ┆ (rul… ┆ Rul… ┆ Rul… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 3 ┆ Network ┆ Network ┆ Network │\n", + "│ T15:08:24. ┆ ┆ :35de:6006 ┆ on ┆ ┆ connectio ┆ connectio ┆ connectio │\n", + "│ 488Z ┆ ┆ :d4cf ┆ ┆ ┆ n ┆ n ┆ n │\n", + "│ ┆ ┆ ┆ ┆ ┆ detected ┆ detected: ┆ detected: │\n", + "│ ┆ ┆ ┆ ┆ ┆ (rul… ┆ Rul… ┆ Rul… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 10 ┆ Process ┆ Process ┆ Process │\n", + "│ T15:08:25. ┆ ┆ :35de:6006 ┆ on ┆ ┆ accessed ┆ accessed: ┆ accessed: │\n", + "│ 005Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessA… ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ Ut… ┆ Ut… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 10 ┆ Process ┆ Process ┆ Process │\n", + "│ T15:08:25. ┆ ┆ :35de:6006 ┆ on ┆ ┆ accessed ┆ accessed: ┆ accessed: │\n", + "│ 005Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessA… ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ Ut… ┆ Ut… │\n", + "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 10 ┆ Process ┆ Process ┆ Process │\n", + "│ T23:35:53. ┆ ┆ :35de:6006 ┆ on ┆ ┆ accessed ┆ accessed: ┆ accessed: │\n", + "│ 054Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessA… ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ Ut… ┆ Ut… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 10 ┆ Process ┆ Process ┆ Process │\n", + "│ T23:35:54. ┆ ┆ :35de:6006 ┆ on ┆ ┆ accessed ┆ accessed: ┆ accessed: │\n", + "│ 133Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessA… ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ Ut… ┆ Ut… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 10 ┆ Process ┆ Process ┆ Process │\n", + "│ T23:35:54. ┆ ┆ :35de:6006 ┆ on ┆ ┆ accessed ┆ accessed: ┆ accessed: │\n", + "│ 133Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessA… ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ Ut… ┆ Ut… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informati ┆ 1 ┆ Process ┆ Process ┆ Process │\n", + "│ T23:41:55. ┆ ┆ :35de:6006 ┆ on ┆ ┆ Create ┆ Create: ┆ Create: │\n", + "│ 301Z ┆ ┆ :d4cf ┆ ┆ ┆ (rule: ┆ RuleName: ┆ RuleName: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ProcessCr ┆ - ┆ - │\n", + "│ ┆ ┆ ┆ ┆ ┆ e… ┆ UtcT… ┆ UtcT… │\n", + "└────────────┴────────────┴────────────┴───────────┴───────────┴───────────┴───────────┴───────────┘\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import re\n", + "\n", + "# Extract relevant information using regular expressions\n", + "def extract_info(text):\n", + " image = re.search(r\"Image: (.*?\\.exe)\", text, re.IGNORECASE)\n", + " target_filename = re.search(r\"TargetFilename: (.*?\\.exe)\", text, re.IGNORECASE)\n", + " parent_image = re.search(r\"ParentImage: (.*?\\.exe)\", text, re.IGNORECASE)\n", + "\n", + " return {\n", + " \"image\": image.group(1) if image else \"\",\n", + " \"target_filename\": target_filename.group(1) if target_filename else \"\",\n", + " \"parent_image\": parent_image.group(1).split(\"\\\\\")[-1] if parent_image else \"\",\n", + " \"text\": text\n", + " }\n", + "\n", + "# Apply extraction to the Polars DataFrame using map_elements\n", + "df_f = df_f.with_columns(\n", + " pl.col(\"filtered_message\").map_elements(lambda x: extract_info(x), return_dtype=pl.Object).alias(\"extracted_info\")\n", + ")\n", + "\n", + "# Extract fields from the extracted_info column using map_elements with return_dtype\n", + "df_f = df_f.with_columns(\n", + " pl.col(\"extracted_info\").map_elements(lambda x: x['image'], return_dtype=pl.Utf8).alias(\"image\"),\n", + " pl.col(\"extracted_info\").map_elements(lambda x: x['target_filename'], return_dtype=pl.Utf8).alias(\"target_filename\"),\n", + " pl.col(\"extracted_info\").map_elements(lambda x: x['parent_image'], return_dtype=pl.Utf8).alias(\"parent_image\"),\n", + " pl.col(\"extracted_info\").map_elements(lambda x: x['text'], return_dtype=pl.Utf8).alias(\"text\")\n", + ").drop(\"extracted_info\")\n", + "\n", + "print(df_f.head())\n", + "\n", + "# Print the unique values in the parent_image column\n", + "print(df_f[\"parent_image\"].value_counts())\n", + "print(df_f[\"target_filename\"].value_counts())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "WBy3Rqj_orz_", + "outputId": "aa6e5749-f0ac-4505-a9ea-f7a1488362f5" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (5, 12)\n", + "┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐\n", + "│ @timestam ┆ host.host ┆ host.ip ┆ log.level ┆ … ┆ image ┆ target_fi ┆ parent_im ┆ text │\n", + "│ p ┆ name ┆ --- ┆ --- ┆ ┆ --- ┆ lename ┆ age ┆ --- │\n", + "│ --- ┆ --- ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ str │\n", + "│ str ┆ str ┆ ┆ ┆ ┆ ┆ str ┆ str ┆ │\n", + "╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡\n", + "│ 2024-07-2 ┆ win10 ┆ fe80::c1a ┆ informati ┆ … ┆ C:\\Window ┆ ┆ ┆ Network │\n", + "│ 8T15:08:2 ┆ ┆ f:35de:60 ┆ on ┆ ┆ s\\System3 ┆ ┆ ┆ connecti │\n", + "│ 4.277Z ┆ ┆ 06:d4cf ┆ ┆ ┆ 2\\svchost ┆ ┆ ┆ on detec │\n", + "│ ┆ ┆ ┆ ┆ ┆ .exe ┆ ┆ ┆ ted: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Rul… │\n", + "│ 2024-07-2 ┆ win10 ┆ fe80::c1a ┆ informati ┆ … ┆ C:\\Window ┆ ┆ ┆ Network │\n", + "│ 8T15:08:2 ┆ ┆ f:35de:60 ┆ on ┆ ┆ s\\System3 ┆ ┆ ┆ connecti │\n", + "│ 4.488Z ┆ ┆ 06:d4cf ┆ ┆ ┆ 2\\svchost ┆ ┆ ┆ on detec │\n", + "│ ┆ ┆ ┆ ┆ ┆ .exe ┆ ┆ ┆ ted: │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Rul… │\n", + "│ 2024-07-2 ┆ win10 ┆ fe80::c1a ┆ informati ┆ … ┆ C:\\Window ┆ ┆ ┆ Process │\n", + "│ 8T15:08:2 ┆ ┆ f:35de:60 ┆ on ┆ ┆ s\\system3 ┆ ┆ ┆ accessed │\n", + "│ 5.005Z ┆ ┆ 06:d4cf ┆ ┆ ┆ 2\\svchost ┆ ┆ ┆ : │\n", + "│ ┆ ┆ ┆ ┆ ┆ .exe ┆ ┆ ┆ RuleName │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ : - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Ut… │\n", + "│ 2024-07-2 ┆ win10 ┆ fe80::c1a ┆ informati ┆ … ┆ C:\\Window ┆ ┆ ┆ Process │\n", + "│ 8T15:08:2 ┆ ┆ f:35de:60 ┆ on ┆ ┆ s\\system3 ┆ ┆ ┆ accessed │\n", + "│ 5.005Z ┆ ┆ 06:d4cf ┆ ┆ ┆ 2\\svchost ┆ ┆ ┆ : │\n", + "│ ┆ ┆ ┆ ┆ ┆ .exe ┆ ┆ ┆ RuleName │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ : - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Ut… │\n", + "│ 2024-07-2 ┆ win10 ┆ fe80::c1a ┆ informati ┆ … ┆ C:\\Window ┆ ┆ ┆ Process │\n", + "│ 8T15:08:2 ┆ ┆ f:35de:60 ┆ on ┆ ┆ s\\system3 ┆ ┆ ┆ accessed │\n", + "│ 5.030Z ┆ ┆ 06:d4cf ┆ ┆ ┆ 2\\svchost ┆ ┆ ┆ : │\n", + "│ ┆ ┆ ┆ ┆ ┆ .exe ┆ ┆ ┆ RuleName │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ : - │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ Ut… │\n", + "└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘\n", + "shape: (41, 2)\n", + "┌───────────────────────────────────┬───────┐\n", + "│ parent_image ┆ count │\n", + "│ --- ┆ --- │\n", + "│ str ┆ u32 │\n", + "╞═══════════════════════════════════╪═══════╡\n", + "│ msiexec.exe ┆ 2 │\n", + "│ CompatTelRunner.exe ┆ 2 │\n", + "│ msedge.exe ┆ 127 │\n", + "│ AvEmUpdate.exe ┆ 6 │\n", + "│ … ┆ … │\n", + "│ MicrosoftEdge_X64_127.0.2651.74_… ┆ 1 │\n", + "│ ┆ 11637 │\n", + "│ runonce.exe ┆ 1 │\n", + "│ PLUGScheduler.exe ┆ 2 │\n", + "└───────────────────────────────────┴───────┘\n", + "shape: (91, 2)\n", + "┌───────────────────────────────────┬───────┐\n", + "│ target_filename ┆ count │\n", + "│ --- ┆ --- │\n", + "│ str ┆ u32 │\n", + "╞═══════════════════════════════════╪═══════╡\n", + "│ C:\\Users\\student\\AppData\\Local\\M… ┆ 2 │\n", + "│ C:\\ProgramData\\Microsoft\\ClickTo… ┆ 1 │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ 1 │\n", + "│ C:\\Program Files\\WindowsApps\\Mic… ┆ 1 │\n", + "│ … ┆ … │\n", + "│ C:\\Program Files (x86)\\Microsoft… ┆ 1 │\n", + "│ C:\\Users\\student\\AppData\\Local\\M… ┆ 1 │\n", + "│ C:\\Program Files\\WindowsApps\\Mic… ┆ 1 │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ 1 │\n", + "└───────────────────────────────────┴───────┘\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "def is_temp_folder(path):\n", + " if not path:\n", + " return False\n", + "\n", + " # Convert path to lowercase for case-insensitive comparison\n", + " lower_path = path.lower()\n", + "\n", + " # Check if the path contains \"\\temp\\\" or ends with \"\\temp\"\n", + " if \"\\temp\\\\\" in lower_path or lower_path.endswith(\"\\\\temp\"):\n", + " return True\n", + "\n", + " # Check for specific temp folder patterns\n", + " temp_patterns = [\n", + " r\"c:\\windows\\temp\",\n", + " r\"c:\\users\\*\\appdata\\local\\temp\",\n", + " r\"c:\\users\\*\\appdata\\locallow\\temp\",\n", + " r\"c:\\users\\*\\appdata\\roaming\\temp\",\n", + " r\"c:\\temp\",\n", + " r\"c:\\windows\\softwaredistriβution\\download\",\n", + " ]\n", + "\n", + " for pattern in temp_patterns:\n", + " if pattern.startswith(r\"c:\\users\\*\"):\n", + " # Replace the wildcard with the actual username\n", + " user_pattern = pattern.replace(\"*\", path.split(\"\\\\\")[2])\n", + " if lower_path.startswith(user_pattern):\n", + " return True\n", + " elif lower_path.startswith(pattern):\n", + " return True\n", + "\n", + " return False\n", + "\n", + "def get_filename(path):\n", + " return path.split(\"\\\\\")[-1] if path else \"\"\n", + "\n", + "# Add new columns to the DataFrame in a single operation\n", + "df_f = df_f.with_columns([\n", + " pl.col(\"target_filename\").map_elements(lambda x: \"Yes\" if is_temp_folder(x) else \"No\").alias(\"temp_folder\"),\n", + " pl.col(\"target_filename\").map_elements(get_filename).alias(\"filename\")\n", + "])\n", + "\n", + "# Print the first few rows where temp_folder is \"Yes\"\n", + "print(df_f.filter(pl.col(\"temp_folder\") == \"Yes\").select([\"target_filename\", \"temp_folder\", \"filename\"]).head(10))\n", + "\n", + "# Print value counts for temp_folder column\n", + "print(df_f[\"temp_folder\"].value_counts())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "b0wLxKfzsg1e", + "outputId": "10bc2daa-ad91-4e8e-e2d8-2b941e670935" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (10, 3)\n", + "┌───────────────────────────────────┬─────────────┬────────────────────────┐\n", + "│ target_filename ┆ temp_folder ┆ filename │\n", + "│ --- ┆ --- ┆ --- │\n", + "│ str ┆ str ┆ str │\n", + "╞═══════════════════════════════════╪═════════════╪════════════════════════╡\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ file.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ cli-32.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ cli-64.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ cli-arm64.exe │\n", + "│ … ┆ … ┆ … │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ gui-64.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ gui-arm64.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ gui.exe │\n", + "│ C:\\Users\\student\\AppData\\Local\\T… ┆ Yes ┆ wininst-10.0-amd64.exe │\n", + "└───────────────────────────────────┴─────────────┴────────────────────────┘\n", + "shape: (2, 2)\n", + "┌─────────────┬───────┐\n", + "│ temp_folder ┆ count │\n", + "│ --- ┆ --- │\n", + "│ str ┆ u32 │\n", + "╞═════════════╪═══════╡\n", + "│ No ┆ 13289 │\n", + "│ Yes ┆ 166 │\n", + "└─────────────┴───────┘\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "count = df_f.filter((pl.col(\"temp_folder\") == \"Yes\") & pl.col(\"filename\").str.contains(\"file.exe\")).height\n", + "print(count)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uj7NV2wGPHi2", + "outputId": "44158419-7cda-4720-d26c-104caec20093" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "114\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Store the data as CSV and JSON" + ], + "metadata": { + "id": "BGPg1RDmxMVE" + } + }, + { + "cell_type": "code", + "source": [ + "df_f.write_csv(\"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024_filtered.csv\", include_header=True)" + ], + "metadata": { + "id": "ngGJUIsXu5fL" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import json\n", + "\n", + "# Convert DataFrame to JSON, line by line\n", + "json_lines = [json.dumps(record) for record in df.to_dicts()]\n", + "\n", + "# Append each line to an existing JSON file\n", + "with open(\"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024_filtered.json\", 'a') as file:\n", + " for line in json_lines:\n", + " file.write(line + '\\n') # Append each line and add a newline" + ], + "metadata": { + "id": "lRQS5xLTvpZv" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Labeling based on Python" + ], + "metadata": { + "id": "GgFNrU80xQsF" + } + }, + { + "cell_type": "code", + "source": [ + "def define_label(row):\n", + " conditions = {\n", + " (\"EXCEL.EXE\" in row['image'] and \".exe\" in row['target_filename'] and row['temp_folder'] == \"Yes\"): \"bad\",\n", + " (row['parent_image'] == \"EXCEL.EXE\" and row['temp_folder'] == \"Yes\" and row['image'].lower().endswith('.exe')): \"bad\",\n", + " # Add more conditions here if needed\n", + " }\n", + " return conditions.get(True, \"good\")\n", + "\n", + "# Apply the label to the DataFrame\n", + "df_f = df_f.with_columns(pl.struct(df_f.columns).map_elements(define_label).alias(\"label\"))\n", + "\n", + "# Print the first few rows where the label is \"bad\"\n", + "print(df_f.filter(pl.col(\"label\") == \"bad\").select([\"image\", \"parent_image\", \"target_filename\", \"temp_folder\", \"label\"]).head(10))\n", + "\n", + "# Print value counts for the label column\n", + "print(df_f[\"label\"].value_counts())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "X5ptzPnfxP9M", + "outputId": "4ac38968-70f5-4b1a-f956-65118365efdd" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (10, 5)\n", + "┌──────────────────────────────┬──────────────┬──────────────────────────────┬─────────────┬───────┐\n", + "│ image ┆ parent_image ┆ target_filename ┆ temp_folder ┆ label │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ str ┆ str ┆ str ┆ str ┆ str │\n", + "╞══════════════════════════════╪══════════════╪══════════════════════════════╪═════════════╪═══════╡\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ … ┆ … ┆ … ┆ … ┆ … │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "│ C:\\Program Files\\Microsoft ┆ ┆ C:\\Users\\student\\AppData\\Loc ┆ Yes ┆ bad │\n", + "│ Offic… ┆ ┆ al\\T… ┆ ┆ │\n", + "└──────────────────────────────┴──────────────┴──────────────────────────────┴─────────────┴───────┘\n", + "shape: (2, 2)\n", + "┌───────┬───────┐\n", + "│ label ┆ count │\n", + "│ --- ┆ --- │\n", + "│ str ┆ u32 │\n", + "╞═══════╪═══════╡\n", + "│ good ┆ 13341 │\n", + "│ bad ┆ 114 │\n", + "└───────┴───────┘\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Filter the DataFrame for rows where label is \"bad\" and select specified columns\n", + "bad_df = df_f.filter(pl.col(\"label\") == \"bad\").select([\n", + " \"image\", \"parent_image\", \"filename\", \"temp_folder\", \"label\"\n", + "])\n", + "\n", + "# Write the filtered DataFrame to a CSV file\n", + "bad_df.write_csv(\"bad.csv\")\n", + "\n", + "# Print the first 10 rows of the bad DataFrame\n", + "print(bad_df.head(10))\n", + "\n", + "# Print the total count of \"bad\" rows\n", + "total_bad_count = bad_df.shape[0]\n", + "print(f\"\\nTotal number of 'bad' rows: {total_bad_count}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dRH3AReO_i5D", + "outputId": "f3bfd34d-eb82-4d8e-f73d-d0305d003da6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (10, 5)\n", + "┌───────────────────────────────────┬──────────────┬──────────┬─────────────┬───────┐\n", + "│ image ┆ parent_image ┆ filename ┆ temp_folder ┆ label │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", + "│ str ┆ str ┆ str ┆ str ┆ str │\n", + "╞═══════════════════════════════════╪══════════════╪══════════╪═════════════╪═══════╡\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ … ┆ … ┆ … ┆ … ┆ … │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "│ C:\\Program Files\\Microsoft Offic… ┆ ┆ file.exe ┆ Yes ┆ bad │\n", + "└───────────────────────────────────┴──────────────┴──────────┴─────────────┴───────┘\n", + "\n", + "Total number of 'bad' rows: 114\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Vectorization with Linformer" + ], + "metadata": { + "id": "9-1dkT2mQHvJ" + } + }, + { + "cell_type": "code", + "source": [ + "import torch\n", + "torch.cuda.empty_cache()" + ], + "metadata": { + "id": "_Vgi0rjn_RIn" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Linformer parameter 1:1 from the researchers\n", + "# then the input_size is determined based on the max no. of tokens\n", + "# the positional embedding flag is on by default\n", + "\n", + "from linformer_pytorch import LinformerLM\n", + "import torch\n", + "\n", + "linformer_model = LinformerLM(\n", + " num_tokens=30000, # Number of tokens in the LM\n", + " input_size=700, # Dimension 1 of the input\n", + " channels=64, # Dimension 2 of the input\n", + " dim_d=None, # Overwrites the inner dim of the attention heads. If None, sticks with the recommended channels // nhead, as in the \"Attention is all you need\" paper\n", + " dim_k=128, # The second dimension of the P_bar matrix from the paper\n", + " dim_ff=128, # Dimension in the feed forward network\n", + " dropout_ff=0.15, # Dropout for feed forward network\n", + " nhead=4, # Number of attention heads\n", + " depth=2, # How many times to run the model\n", + " dropout=0.1, # How much dropout to apply to P_bar after softmax\n", + " activation=\"gelu\", # What activation to use. Currently, only gelu and relu supported, and only on ff network.\n", + " checkpoint_level=\"C0\", # What checkpoint level to use. For more information, see below.\n", + " parameter_sharing=\"layerwise\", # What level of parameter sharing to use. For more information, see below.\n", + " k_reduce_by_layer=0, # Going down `depth`, how much to reduce `dim_k` by, for the `E` and `F` matrices. Will have a minimum value of 1.\n", + " full_attention=False, # Use full attention instead, for O(n^2) time and space complexity. Included here just for comparison\n", + " include_ff=True, # Whether or not to include the Feed Forward layer\n", + " w_o_intermediate_dim=None, # If not None, have 2 w_o matrices, such that instead of `dim*nead,channels`, you have `dim*nhead,w_o_int`, and `w_o_int,channels`\n", + " emb_dim=128, # If you want the embedding dimension to be different than the channels for the Linformer\n", + " causal=False, # If you want this to be a causal Linformer, where the upper right of the P_bar matrix is masked out.\n", + " method=\"learnable\", # The method of how to perform the projection. Supported methods are 'convolution', 'learnable', and 'no_params'\n", + " ff_intermediate=None, # See the section below for more information\n", + " ).cuda()" + ], + "metadata": { + "id": "SsW6vlQNQhAy" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Vectorize text column in the DataFrame" + ], + "metadata": { + "id": "h4cuBLWrSNVs" + } + }, + { + "cell_type": "code", + "source": [ + "print(df_f.columns)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4SguqPPKSdpJ", + "outputId": "9e9a39cb-10b8-44fb-bc22-65deafe45989" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "['@timestamp', 'host.hostname', 'host.ip', 'log.level', 'winlog.event_id', 'winlog.task', 'message', 'filtered_message', 'image', 'target_filename', 'parent_image', 'text', 'temp_folder', 'filename', 'label']\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "from tokenizers import Tokenizer\n", + "import torch\n", + "import numpy as np\n", + "import polars as pl\n", + "\n", + "# Load the custom tokenizer\n", + "tokenizer = Tokenizer.from_file(\"log_tokenizer.json\")\n", + "\n", + "# Define the device (assuming you're using PyTorch and want to specify CPU or GPU)\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "def vectorize_text(text):\n", + " MAX_LENGTH = 700 # Define the maximum length of tokens for the model\n", + "\n", + " # Tokenize using the custom tokenizer\n", + " encoded = tokenizer.encode(text)\n", + "\n", + " # Get token IDs\n", + " input_ids = encoded.ids\n", + "\n", + " # Ensure the input_ids length is exactly MAX_LENGTH\n", + " input_ids = input_ids[:MAX_LENGTH] if len(input_ids) > MAX_LENGTH else input_ids + [0] * (MAX_LENGTH - len(input_ids))\n", + "\n", + " # Convert to PyTorch tensor and move to the appropriate device\n", + " input_ids = torch.tensor([input_ids], dtype=torch.long).to(device)\n", + "\n", + " # Get the model outputs, ensuring the input tensor is the correct size\n", + " outputs = linformer_model(input_ids) # Now passing the tensor directly\n", + "\n", + " # Assuming outputs is the tensor of interest\n", + " vector = outputs.mean(dim=1).detach() # Detach the tensor from the GPU\n", + " return vector.cpu().numpy() # Move tensor back to CPU and convert to numpy\n", + "\n", + "# Assuming `better_columns_df` is a Polars DataFrame with a column \"filtered_message\"\n", + "df_f = df_f.with_columns(\n", + " pl.col(\"filtered_message\").map_elements(lambda x: vectorize_text(x).flatten(), return_dtype=pl.Object).alias(\"message_vector\")\n", + ")\n", + "\n", + "print(df_f)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "EyvdFj83SQKI", + "outputId": "2482d1f0-3f47-41e4-df13-5f73325e5e80" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "shape: (13_455, 16)\n", + "┌────────────┬────────────┬────────────┬────────────┬───┬───────────┬──────────┬───────┬───────────┐\n", + "│ @timestamp ┆ host.hostn ┆ host.ip ┆ log.level ┆ … ┆ temp_fold ┆ filename ┆ label ┆ message_v │\n", + "│ --- ┆ ame ┆ --- ┆ --- ┆ ┆ er ┆ --- ┆ --- ┆ ector │\n", + "│ str ┆ --- ┆ str ┆ str ┆ ┆ --- ┆ str ┆ str ┆ --- │\n", + "│ ┆ str ┆ ┆ ┆ ┆ str ┆ ┆ ┆ object │\n", + "╞════════════╪════════════╪════════════╪════════════╪═══╪═══════════╪══════════╪═══════╪═══════════╡\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.45116 │\n", + "│ T15:08:24. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 934 0.01 │\n", + "│ 277Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 940297 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.4095… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.45242 │\n", + "│ T15:08:24. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 962 0.02 │\n", + "│ 488Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 170923 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.3832… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.37145 │\n", + "│ T15:08:25. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 707 0.04 │\n", + "│ 005Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 775189 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.2652… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.34181 │\n", + "│ T15:08:25. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 97 0.04 │\n", + "│ 005Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 779522 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.2722… │\n", + "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.35288 │\n", + "│ T23:35:53. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 972 0.03 │\n", + "│ 054Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 555745 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.2832… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.37340 │\n", + "│ T23:35:54. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 525 0.03 │\n", + "│ 133Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 428246 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.2805… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.36035 │\n", + "│ T23:35:54. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 54 0.03 │\n", + "│ 133Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 481918 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.2802… │\n", + "│ 2024-07-28 ┆ win10 ┆ fe80::c1af ┆ informatio ┆ … ┆ No ┆ ┆ good ┆ [-0.41050 │\n", + "│ T23:41:55. ┆ ┆ :35de:6006 ┆ n ┆ ┆ ┆ ┆ ┆ 297 0.01 │\n", + "│ 301Z ┆ ┆ :d4cf ┆ ┆ ┆ ┆ ┆ ┆ 828452 │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ -0.3112… │\n", + "└────────────┴────────────┴────────────┴────────────┴───┴───────────┴──────────┴───────┴───────────┘\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import polars as pl\n", + "import pyarrow as pa\n", + "import pyarrow.parquet as pq\n", + "import numpy as np\n", + "\n", + "# Print the column names and data types\n", + "print(\"Column names and data types:\")\n", + "for col in df_f.columns:\n", + " print(f\"{col}: {df_f[col].dtype}\")\n", + "\n", + "# Create PyArrow arrays for each column\n", + "pa_arrays = []\n", + "pa_field_names = []\n", + "\n", + "for col_name in df_f.columns:\n", + " col_data = df_f[col_name].to_list()\n", + "\n", + " if df_f[col_name].dtype == pl.Object:\n", + " # For Object dtype, we'll create a list of float64 arrays\n", + " try:\n", + " pa_array = pa.list_(pa.float64()).from_pandas(col_data)\n", + " except:\n", + " # If conversion fails, store as string\n", + " pa_array = pa.array([str(x) for x in col_data])\n", + " else:\n", + " pa_array = pa.array(col_data)\n", + "\n", + " pa_arrays.append(pa_array)\n", + " pa_field_names.append(col_name)\n", + "\n", + "# Create PyArrow table\n", + "pa_table = pa.Table.from_arrays(pa_arrays, names=pa_field_names)\n", + "\n", + "# Write the PyArrow table to Parquet\n", + "pq.write_table(pa_table, \"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024_filtered_vectors.parquet\")\n", + "\n", + "print(\"Parquet file written successfully.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RWRNV5iCTPHB", + "outputId": "ce896f59-95ef-4794-efb1-a50357ff6292" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Column names and data types:\n", + "@timestamp: Datetime(time_unit='us', time_zone='UTC')\n", + "host.hostname: Utf8\n", + "host.ip: Utf8\n", + "log.level: Utf8\n", + "winlog.event_id: Int64\n", + "winlog.task: Utf8\n", + "message: Utf8\n", + "filtered_message: Utf8\n", + "image: Utf8\n", + "target_filename: Utf8\n", + "parent_image: Utf8\n", + "text: Utf8\n", + "temp_folder: Utf8\n", + "filename: Utf8\n", + "label: Utf8\n", + "message_vector_list: Object\n", + "Parquet file written successfully.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pyarrow.parquet as pq\n", + "import numpy as np\n", + "import pandas as pd\n", + "import re\n", + "\n", + "# Read the Parquet file\n", + "table = pq.read_table(\"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024_filtered_vectors.parquet\")\n", + "print(\"Parquet file read successfully\")\n", + "\n", + "# Convert to pandas DataFrame\n", + "df = table.to_pandas()\n", + "print(\"Converted to pandas DataFrame successfully\")\n", + "\n", + "# Function to convert string representation of array to numpy array\n", + "def string_to_array(s):\n", + " # Remove square brackets\n", + " s = s.strip('[]')\n", + " # Split by whitespace, handling the '...' case\n", + " nums = re.split(r'\\s+', s)\n", + " # Convert to float, ignoring '...' and empty strings\n", + " return np.array([float(num) for num in nums if num not in ['...', '']])\n", + "\n", + "# Convert message_vector_list to numpy arrays\n", + "try:\n", + " df['message_vector'] = df['message_vector_list'].apply(string_to_array)\n", + " print(\"Converted message_vector_list to numpy arrays successfully\")\n", + "except Exception as e:\n", + " print(f\"Error converting message_vector_list to numpy arrays: {e}\")\n", + " # Print a few examples of the problematic data\n", + " print(df['message_vector_list'].head())\n", + " raise\n", + "\n", + "# Drop the original message_vector_list column if you don't need it\n", + "df = df.drop(columns=['message_vector_list'])\n", + "\n", + "print(\"Final DataFrame columns:\")\n", + "print(df.columns)\n", + "\n", + "# Print the shape of the first few message vectors to verify\n", + "print(\"Shape of first few message vectors:\")\n", + "print(df['message_vector'].head().apply(lambda x: x.shape))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6eQyNWIAW-ts", + "outputId": "7aa26ca7-cbe6-4ee2-982f-e219a01dda18" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Parquet file read successfully\n", + "Converted to pandas DataFrame successfully\n", + "Converted message_vector_list to numpy arrays successfully\n", + "Final DataFrame columns:\n", + "Index(['@timestamp', 'host.hostname', 'host.ip', 'log.level',\n", + " 'winlog.event_id', 'winlog.task', 'message', 'filtered_message',\n", + " 'image', 'target_filename', 'parent_image', 'text', 'temp_folder',\n", + " 'filename', 'label', 'message_vector'],\n", + " dtype='object')\n", + "Shape of first few message vectors:\n", + "0 (6,)\n", + "1 (6,)\n", + "2 (6,)\n", + "3 (6,)\n", + "4 (6,)\n", + "Name: message_vector, dtype: object\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# AutoML with TPOT (Supervised Learning)" + ], + "metadata": { + "id": "ZqGIRBU6aE3U" + } + }, + { + "cell_type": "code", + "source": [ + "print(\"Polars Df\")\n", + "print(df_f.head())\n", + "print(df_f.schema)\n", + "print()\n", + "print(\"Pandas Df\")\n", + "print(df.info())\n", + "print(df.dtypes)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 236 + }, + "id": "9JjYJzacaD-T", + "outputId": "3f5a9112-2530-4f39-bd8b-8e11d0edb51d" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Polars Df\n" + ] + }, + { + "output_type": "error", + "ename": "NameError", + "evalue": "name 'df_f' is not defined", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Polars Df\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mschema\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Pandas Df\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'df_f' is not defined" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from tpot import TPOTClassifier\n", + "from sklearn.metrics import f1_score\n", + "import numpy as np\n", + "import pandas as pd\n", + "from collections import defaultdict\n", + "import time\n", + "import re\n", + "from tabulate import tabulate\n", + "\n", + "\n", + "# Assuming df is already loaded and contains 'message_vector' and 'label' columns\n", + "\n", + "# Encode labels\n", + "le = LabelEncoder()\n", + "df['label_encoded'] = le.fit_transform(df['label'])\n", + "\n", + "# Split data\n", + "X = np.array(df['message_vector'].tolist())\n", + "y = df['label_encoded'].values\n", + "\n", + "# Initialize results storage\n", + "results = defaultdict(list)\n", + "\n", + "# Number of runs\n", + "n_runs = 1\n", + "\n", + "# Function to extract number of features selected\n", + "def get_n_features(pipeline_str):\n", + " match = re.search(r'SelectPercentile\\(score_func=f_classif, percentile=(\\d+)\\)', pipeline_str)\n", + " if match:\n", + " percentile = int(match.group(1))\n", + " return int(X.shape[1] * percentile / 100)\n", + " return X.shape[1] # If no feature selection, return all features\n", + "\n", + "# Initialize best_tpot and best_f1\n", + "best_tpot = None\n", + "best_f1 = 0\n", + "\n", + "for run in range(n_runs):\n", + " print(f\"\\nStarting run {run + 1}/{n_runs}\")\n", + " start_time = time.time()\n", + "\n", + " # Split data for this run\n", + " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42 + run)\n", + "\n", + " # TPOT classifier with f1 score as the metric\n", + " tpot = TPOTClassifier(\n", + " scoring='f1_weighted', # Use weighted F1 score for multi-class problems\n", + " verbosity=2,\n", + " generations=5,\n", + " population_size=20,\n", + " random_state=42 + run\n", + " )\n", + "\n", + " # Fit\n", + " tpot.fit(X_train, y_train)\n", + "\n", + " # Predict and calculate F1 score\n", + " y_pred = tpot.predict(X_test)\n", + " f1 = f1_score(y_test, y_pred, average='weighted')\n", + "\n", + " # Update best_tpot if this run has better f1 score\n", + " if f1 > best_f1:\n", + " best_f1 = f1\n", + " best_tpot = tpot\n", + "\n", + " # Get pipeline string and extract number of features\n", + " pipeline_str = str(tpot.fitted_pipeline_)\n", + " n_features = get_n_features(pipeline_str)\n", + "\n", + " # Store results\n", + " results['run'].append(run + 1)\n", + " results['f1_score'].append(f1)\n", + " results['best_pipeline'].append(pipeline_str)\n", + " results['n_features'].append(n_features)\n", + " results['runtime'].append(time.time() - start_time)\n", + " results['pipelines_tested'].append(tpot.evaluated_individuals_)\n", + "\n", + " print(f\"Run {run + 1} completed. F1 Score: {f1:.4f}, Features selected: {n_features}, Pipelines tested: {len(tpot.evaluated_individuals_)}\")\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 289, + "referenced_widgets": [ + "bcf5338c159d4d53bc3e39e717885292", + "7276e9b8b79d41ab991296d44521e2ee", + "f2ab86c6413649a595edf4b8feeb6a66", + "decc923894ab4ef4b35fa627b1b2dfb4", + "9875e07950114beca6741a51962c1f30", + "90db1bae92c94a49ab8bc9c12073e552", + "92a42873a8ef4c00ad24ef47a62b4093", + "1826f0b9003a4f8bb1c074f526560c86", + "549831432f244f5080c74eb842bae875", + "20be31d5be524d76bc2dbb3baad4edf3", + "fc71d71e57774cb1a0df69e82d3e7c2d" + ] + }, + "id": "usxaQgkSbEND", + "outputId": "1f3cbeaa-d197-4877-b4d1-3f0f7d035f27" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Starting run 1/1\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Optimization Progress: 0%| | 0/120 [00:00" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAb+CAYAAACv+ei6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADxK0lEQVR4nOzdeZxO9f//8ec1Y3Yz1rGPMYay7/GRPctky5IoypCtIqT40GLLkor4IFEflGhDlAqTNZGsLbZkiY9tKAwmY8y8f3/4zfV1mcWM5m0u5nG/3eZ2c97nfc55n+u8rrl5ztkcxhgjAAAAAABghUdWDwAAAAAAgLsZwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAOD2rl69qiFDhigkJEQeHh5q27ZtVg/pjpeYmKgKFSpo7NixWT2UO8bQoUNVq1atrB4GAOAORPAGgNvM4XCk62ft2rU6fPiwS5unp6eKFy+udu3aaefOncnWfenSJb366quqVKmS/P39lStXLtWrV08ffPCBjDHOft26dUvXGLp165bqfowcOdKlr7+/v8qVK6eXX35ZMTExmfqZzZ49W2+88YY6dOig999/X88991ymrj87+uijj3T06FH169fP2TZ37txUa2Ho0KHOfitXrlSPHj1UoUIFeXp6qkSJEhna9sWLFzVixAhVqFBBAQEBypcvn6pUqaIBAwbo+PHjmbWLmW7gwIH66aef9MUXX2R42Zo1a8rhcGjGjBkWRpb1bvxd5eHhobx586p58+batGlTVg8PALJcjqweAABkN/PmzXOZ/uCDDxQVFZWsvWzZsvr7778lSY899phatGihhIQE7dmzRzNmzNA333yjH374QVWqVJEknTp1So0bN9aePXv06KOPql+/frp8+bIWLVqkyMhIff3115o/f748PT3Vp08fNWnSxLmtQ4cOafjw4erdu7fq1avnbA8PD7/p/syYMUM5c+bUxYsXtXLlSo0dO1arV6/W999/L4fDcasfk4vVq1eraNGieuuttzJlfZDeeOMNPfroo8qVK1eyeaNHj1ZYWJhLW4UKFZz/XrBggT755BNVq1ZNRYoUydB24+PjVb9+fe3du1eRkZF69tlndfHiRe3atUsLFixQu3btMrzO26VQoUJq06aN3nzzTT300EPpXm7//v3asmWLSpQoofnz5+vpp5+2OMqsdf3vqt9++01vv/22GjVqpC1btqhixYpZPTwAyDoGAJCl+vbta1L7dXzo0CEjybzxxhsu7V988YWRZHr37u1si4iIMB4eHmbp0qXJ1vPCCy8YSea1115LcTtbtmwxksycOXPSPe4RI0YYSeb06dMu7e3btzeSzMaNG9O9rpQkJiaa2NhYY4wxjRo1MuXLl/9H67teQkKC+fvvvzNtfXea7du3G0nm22+/dWmfM2eOkWS2bNmS5vLHjh0zV65cMcYY07JlSxMaGprubX/66adGkpk/f36yeX///bc5f/58utf1T128eDHDyyxcuNA4HA5z4MCBdC8zfPhwU6BAAbNo0SLjcDjMoUOHMrzd1NzKPtiQ2u+qb775xkgyTz/9dBaNDADcA5eaA8Ad6IEHHpB07Uy1JP3www9asWKFunXrluKZuPHjx6t06dKaMGGC8yz67RpbYmKiJk+erPLly8vX11cFCxZUnz59dPbsWZflSpQooVatWmnFihWqUaOG/Pz8NHPmTDkcDq1Zs0a7du1yuQxfunZp/fPPP6+QkBD5+Pjo3nvv1ZtvvulyWb107fL+fv36af78+Spfvrx8fHy0fPly56XVGzZsUP/+/RUcHKzcuXOrT58+unLlis6dO6euXbsqT548ypMnj4YMGZJs3W+++abuv/9+5cuXT35+fqpevboWLlyY7HNJGsOSJUtUoUIF+fj4qHz58lq+fHmyvseOHVOPHj1UpEgR+fj4KCwsTE8//bSuXLni7HPu3DkNHDjQue+lSpXShAkTlJiYeNNjtGTJEnl7e6t+/fo37ZuSIkWKyMvL65aWPXDggCSpTp06yeb5+voqKCjIpW3v3r3q2LGjgoOD5efnp3vvvVcvvfSSS58dO3aoefPmCgoKUs6cOdW4cWP98MMPLn2SjvW6dev0zDPPqECBAipWrJhz/jfffKN69eopICBAgYGBatmypXbt2pVsjElXiixdujTd+7xgwQJ16NBBrVq1Uq5cubRgwYIU+23evFktWrRQnjx5FBAQoEqVKmnKlCnO+d26dVPOnDl14MABtWjRQoGBgerSpYuk9H8XoqKiVLduXeXOnVs5c+bUvffeqxdffNGlz9SpU1W+fHn5+/srT548qlGjRqpjvpmkK2iSjrv0f7ep3CjpGB0+fNjZlvR7YcOGDapZs6Z8fX1VsmRJffDBBy7LxsfHa9SoUSpdurR8fX2VL18+1a1bV1FRUbc0bgDIbFxqDgB3oKT/xObLl0+S9OWXX0qSunbtmmL/HDlyqHPnzho1apS+//57l8vMbY+tT58+mjt3rrp3767+/fvr0KFDmjZtmnbs2KHvv//eJcDt27dPjz32mPr06aNevXqpWLFimjdvnsaOHauLFy9q/Pjxkq5dhm+M0UMPPaQ1a9aoR48eqlKlilasWKHBgwfr2LFjyS5LX716tT799FP169dP+fPnV4kSJZz3yT/77LMqVKiQRo0apR9++EGzZs1S7ty5tXHjRhUvXlzjxo3T119/rTfeeEMVKlRw+ZynTJmihx56SF26dNGVK1f08ccf65FHHtGyZcvUsmVLlzFs2LBBixcv1jPPPKPAwED95z//0cMPP6wjR444P6/jx4+rZs2aOnfunHr37q0yZcro2LFjWrhwoWJjY+Xt7a3Y2Fg1aNBAx44dU58+fVS8eHFt3LhRw4YN04kTJzR58uQ0j9HGjRtVoUKFVMPz+fPndebMGZe2/Pnzp7nO9AoNDZV07RaLl19+Oc3bEX7++WfVq1dPXl5e6t27t0qUKKEDBw7oyy+/dD4UbteuXapXr56CgoI0ZMgQeXl5aebMmWrYsKHWrVuX7GFozzzzjIKDgzV8+HBdunRJ0rXbPyIjIxUREaEJEyYoNjZWM2bMUN26dbVjxw6Xe9hz5cql8PBwff/99+l61sDmzZv1+++/a86cOfL29lb79u01f/78ZGE3KipKrVq1UuHChTVgwAAVKlRIe/bs0bJlyzRgwABnv6tXryoiIkJ169bVm2++KX9//3R/F3bt2qVWrVqpUqVKGj16tHx8fPT777/r+++/d67/3XffVf/+/dWhQwcNGDBAly9f1s8//6zNmzerc+fON93fGyWF6Dx58mR42SS///67OnTooB49eigyMlKzZ89Wt27dVL16dZUvX17StTA/fvx49ezZUzVr1lRMTIy2bt2q7du3q2nTpre8bQDINFl6vh0AkK5LzUeNGmVOnz5tTp48adauXWuqVq1qJJlFixYZY4xp27atkWTOnj2b6nYWL15sJJn//Oc/yeb9k0vN9+3bZ06fPm0OHTpkZs6caXx8fEzBggXNpUuXzHfffZfiZcXLly9P1h4aGmokmeXLlyfbVoMGDZJdar5kyRIjyYwZM8alvUOHDsbhcJjff//d2SbJeHh4mF27drn0Tbq0OiIiwiQmJjrba9eubRwOh3nqqaecbVevXjXFihUzDRo0cFlH0uXwSa5cuWIqVKhgHnjgAZd2Scbb29tlXD/99JORZKZOneps69q1q/Hw8Ejxcu+kMb766qsmICDA/Pbbby7zhw4dajw9Pc2RI0eSLXu9YsWKmYcffjhZe9LnkdJPajJ6qXlsbKy59957jSQTGhpqunXrZv773/+aU6dOJetbv359ExgYaP744w+X9uuPVdu2bY23t7fLpd/Hjx83gYGBpn79+sn2rW7duubq1avO9gsXLpjcuXObXr16uWzj5MmTJleuXMnajTGmWbNmpmzZsuna3379+pmQkBDnmFeuXGkkmR07djj7XL161YSFhZnQ0NBk3+Hr9zUyMtJIMkOHDnXpk97vwltvvZXi7SHXa9OmzS3d1pHS76rvvvvO3HfffUaS+eyzz5x9k3533CjpGF1/KX7S74X169c726Kjo42Pj495/vnnnW2VK1c2LVu2zPC4AeB24VJzALgDjBgxQsHBwSpUqJAaNmyoAwcOaMKECWrfvr0k6cKFC5KkwMDAVNeRNC+znzh+7733Kjg4WGFhYerTp49KlSqlr776Sv7+/vrss8+UK1cuNW3aVGfOnHH+VK9eXTlz5tSaNWtc1hUWFqaIiIh0bffrr7+Wp6en+vfv79L+/PPPyxijb775xqW9QYMGKleuXIrr6tGjh8uZ11q1askYox49ejjbPD09VaNGDR08eNBlWT8/P+e/z549q/Pnz6tevXravn17su00adLE5YF1lSpVUlBQkHOdiYmJWrJkiVq3bq0aNWokWz5pjJ999pnq1aunPHnyuHyuTZo0UUJCgtavX5/ifib5888/0zwDOX36dEVFRbn8ZBY/Pz9t3rxZgwcPlnTt8uIePXqocOHCevbZZxUXFydJOn36tNavX68nn3xSxYsXd1lH0ueQkJCglStXqm3btipZsqRzfuHChdW5c2dt2LAhWb336tVLnp6ezumoqCidO3dOjz32mMtn6enpqVq1aiWrUUnOz/1mrl69qk8++USdOnVyjvmBBx5QgQIFNH/+fGe/HTt26NChQxo4cKBy586d4r5e78aHs6X3u5C07qVLl6Z6S0Lu3Ln1v//9T1u2bLnp/qXk+t9V9erV0549ezRx4kR16NDhltYnSeXKlXN56GNwcLDuvfdel+9i7ty5tWvXLu3fv/+WtwMANnGpOQDcAXr37q1HHnlEHh4eyp07t/M+5SRJofrChQvJ/uOeJD3h/FYsWrRIQUFB8vLyUrFixVyC5f79+3X+/HkVKFAgxWWjo6Ndpm98knZa/vjjDxUpUiTZ/pQtW9Y5P73rvjHYJT3pOyQkJFn7jfemL1u2TGPGjNHOnTudoVFKOTDduB3pWohLWufp06cVExPj8gTxlOzfv18///yzgoODU5x/4+eaEnPDvb/Xq1mzZorBP7PkypVLr7/+ul5//XX98ccfWrVqld58801NmzZNuXLl0pgxY5yhKq3P4vTp04qNjdW9996bbF7ZsmWVmJioo0ePOi9HlpLXQVJQS3o2wY1uvOdcuvbZpeeJ/StXrtTp06dVs2ZN/f777872Ro0a6aOPPtKECRPk4eHhvD3jZsddunbbyPX3pkvp/y506tRJ7733nnr27KmhQ4eqcePGat++vTp06CAPj2vnYv7973/r22+/Vc2aNVWqVCk1a9ZMnTt3TvGe/JQk/a66fPmyVq9erf/85z9KSEhI17Kpudn3Rrr2JP42bdronnvuUYUKFfTggw/qiSeeUKVKlf7RtgEgsxC8AeAOULp06TTvyy5btqyWLFmin3/+OdUHZv3888+SlOpZ31tVv379VO//TUxMTHZ273o3Bsfrzx5ntrTWff0Z0Ju1Xx9Yv/vuOz300EOqX7++3n77bRUuXFheXl6aM2dOig+jSm07aYXglCQmJqpp06YaMmRIivPvueeeNJfPly9fsj8gZJXQ0FA9+eSTateunUqWLKn58+drzJgx1rZ3Yx0knfmdN2+eChUqlKx/jhzJ/6t09uzZdN3znlT3HTt2THH+unXr1KhRo5uu53o+Pj7OkJxRfn5+Wr9+vdasWaOvvvpKy5cv1yeffKIHHnhAK1eulKenp8qWLat9+/Zp2bJlWr58uRYtWqS3335bw4cP16hRo266jet/V7Vq1Uqenp4aOnSoGjVq5PxjTmp/tEgtoKfne1O/fn0dOHBAS5cu1cqVK/Xee+/prbfe0jvvvKOePXvedNwAYBvBGwDuAq1atdL48eP1wQcfpBi8ExIStGDBAuXJkyfdZ64yQ3h4uL799lvVqVMn00N1aGiovv32W124cMHlTN/evXud821btGiRfH19tWLFCpcrEObMmXNL6wsODlZQUJB+/fXXNPuFh4fr4sWLt/yQvDJlyjifOu8u8uTJo/DwcOe+J106ntZnERwcLH9/f+3bty/ZvL1798rDwyPZVQs3SrpCo0CBAun+PA8dOqTKlSun2efSpUtaunSpOnXqlOJl1v3799f8+fPVqFEj5xh+/fXXWzqmGfkueHh4qHHjxmrcuLEmTZqkcePG6aWXXtKaNWuc2w4ICFCnTp3UqVMnXblyRe3bt9fYsWM1bNgw+fr6ZmhsL730kt599129/PLLzif4J93mcO7cOZcrdG68SiWj8ubNq+7du6t79+66ePGi6tevr5EjRxK8AbgF7vEGgLvA/fffryZNmmjOnDlatmxZsvkvvfSSfvvtNw0ZMsTqWeUbdezYUQkJCXr11VeTzbt69arOnTt3y+tu0aKFEhISNG3aNJf2t956Sw6HQ82bN7/ldaeXp6enHA6Hy5m6w4cPa8mSJbe0Pg8PD7Vt21Zffvmltm7dmmx+0hm+jh07atOmTVqxYkWyPufOndPVq1fT3E7t2rX166+/ulwaf7v89NNPKd4f/ccff2j37t3Oy8aDg4NVv359zZ49W0eOHHHpm/Q5eHp6qlmzZlq6dKnLK6hOnTqlBQsWqG7duileKn69iIgIBQUFady4cYqPj082//Tp0y7T58+f14EDB3T//fenud7PP/9cly5dUt++fdWhQ4dkP61atdKiRYsUFxenatWqKSwsTJMnT072nUjP1RDp/S789ddfyZatUqWKJDlr4c8//3SZ7+3trXLlyskYk+LnczNJr+dbsWKF8y0CSX9ouP5ZBJcuXdL777+f4fUnuXHcOXPmVKlSpbKkxgEgJZzxBoC7xAcffKDGjRurTZs26ty5s+rVq6e4uDgtXrxYa9euVadOnZwPtLpdGjRooD59+mj8+PHauXOnmjVrJi8vL+3fv1+fffaZpkyZcssPXWrdurUaNWqkl156SYcPH1blypW1cuVKLV26VAMHDnS519yWli1batKkSXrwwQfVuXNnRUdHa/r06SpVqpTz0v6MGjdunFauXKkGDRqod+/eKlu2rE6cOKHPPvtMGzZsUO7cuTV48GB98cUXatWqlfO1SpcuXdIvv/yihQsX6vDhw2leCt2mTRu9+uqrWrdunZo1a5bhMf7888/64osvJF171dP58+edl4dXrlxZrVu3TnXZqKgojRgxQg899JD+9a9/KWfOnDp48KBmz56tuLg4jRw50tn3P//5j+rWratq1aqpd+/eCgsL0+HDh/XVV185Q9yYMWOc76Z+5plnlCNHDs2cOVNxcXF6/fXXb7ovQUFBmjFjhp544glVq1ZNjz76qIKDg3XkyBF99dVXqlOnjkug/fbbb2WMUZs2bdJc7/z585UvX75UA/pDDz2kd999V1999ZXat2+vGTNmqHXr1qpSpYq6d++uwoULa+/evdq1a1eKf2C5Xnq/C6NHj9b69evVsmVLhYaGKjo6Wm+//baKFSumunXrSpKaNWumQoUKqU6dOipYsKD27NmjadOmqWXLlrf8fIgBAwZo8uTJeu211/Txxx+rWbNmKl68uHr06KHBgwfL09NTs2fPdn7ut6JcuXJq2LChqlevrrx582rr1q1auHCh+vXrd0vrA4BMlyXPUgcAOKXndWJvvPFGutZ14cIFM3LkSFO+fHnj5+dnAgMDTZ06dczcuXNdXkt0o3/yOrG0Xk2UZNasWaZ69erOMVWsWNEMGTLEHD9+3NknNDQ01dcBpfQ6MWOu7e9zzz1nihQpYry8vEzp0qXNG2+8kWxfJZm+ffsmWz7p9UU3vrortX2LjIw0AQEBLm3//e9/TenSpY2Pj48pU6aMmTNnToqvS0ptDKGhoSYyMtKl7Y8//jBdu3Y1wcHBxsfHx5QsWdL07dvXxMXFuez7sGHDTKlSpYy3t7fJnz+/uf/++82bb75prly5kmw7N6pUqZLp0aNHuj6PG6X12rEb9+VGBw8eNMOHDzf/+te/TIECBUyOHDlMcHCwadmypVm9enWy/r/++qtp166dyZ07t/H19TX33nuveeWVV1z6bN++3URERJicOXMaf39/06hRI7Nx48YM7duaNWtMRESEyZUrl/H19TXh4eGmW7duZuvWrS79OnXqZOrWrZvmPp46dcrkyJHDPPHEE6n2iY2NNf7+/qZdu3bOtg0bNpimTZuawMBAExAQYCpVquTyqrmU6i9Jer4Lq1atMm3atDFFihQx3t7epkiRIuaxxx5zeS3dzJkzTf369U2+fPmMj4+PCQ8PN4MHDzbnz59Pc59v9ruqW7duxtPT0/lqs23btplatWoZb29vU7x4cTNp0qRUXyeW0u+FBg0auLzab8yYMaZmzZomd+7cxs/Pz5QpU8aMHTs2Xd8FALgdHMZk8IkuAADgjjdv3jz17dtXR44cSfVJ+HB18uRJhYWF6eOPP77pGW8AAK7HPd4AAGRDXbp0UfHixTV9+vSsHsodY/LkyapYsSKhGwCQYZzxBgAAAADAIs54AwAAAABgEcEbAAAAAACLsjR4r1+/Xq1bt1aRIkXkcDjS9d7TtWvXqlq1avLx8VGpUqU0d+7cVPu+9tprcjgcGjhwYKaNGQAAAACAjMjS4H3p0iVVrlw53Q92OXTokFq2bKlGjRpp586dGjhwoHr27Jni+y23bNmimTNnqlKlSpk9bAAAAAAA0i1HVm68efPmat68ebr7v/POOwoLC9PEiRMlSWXLltWGDRv01ltvKSIiwtnv4sWL6tKli959912NGTMmw+NKTEzU8ePHFRgYKIfDkeHlAQAAAAB3N2OMLly4oCJFisjDI+1z2lkavDNq06ZNatKkiUtbREREskvJ+/btq5YtW6pJkya3FLyPHz+ukJCQfzJUAAAAAEA2cPToURUrVizNPndU8D558qQKFizo0lawYEHFxMTo77//lp+fnz7++GNt375dW7ZsSfd64+LiFBcX55xOesPaoUOHFBgYmDmDh9uKj4/XmjVr1KhRI3l5eWX1cABJ1CXcDzUJd0Rdwt1Qk9nLhQsXFBYWlq7MeEcF75s5evSoBgwYoKioKPn6+qZ7ufHjx2vUqFHJ2jdt2iR/f//MHCLclL+/vzZv3pzVwwBcUJdwN9Qk3BF1CXdDTWYfsbGxkpSu25PvqOBdqFAhnTp1yqXt1KlTCgoKkp+fn7Zt26bo6GhVq1bNOT8hIUHr16/XtGnTFBcXJ09Pz2TrHTZsmAYNGuScjomJUUhIiJo1a6agoCB7OwS3EB8fr6ioKDVt2pS/TMJtUJdwN9Qk3BF1CXdDTWYvMTEx6e57RwXv2rVr6+uvv3Zpi4qKUu3atSVJjRs31i+//OIyv3v37ipTpoz+/e9/pxi6JcnHx0c+Pj7J2r28vPjCZCMcb7gj6hLuhpqEO6Iu4W6oyewhI8c4S4P3xYsX9fvvvzunDx06pJ07dypv3rwqXry4hg0bpmPHjumDDz6QJD311FOaNm2ahgwZoieffFKrV6/Wp59+qq+++kqSFBgYqAoVKrhsIyAgQPny5UvWDgAAAADA7ZCl7/HeunWrqlatqqpVq0qSBg0apKpVq2r48OGSpBMnTujIkSPO/mFhYfrqq68UFRWlypUra+LEiXrvvfdcXiUGAAAAAIA7ydIz3g0bNnQ+QTwlc+fOTXGZHTt2pHsba9euvYWRAQAAAACQObL0jDcAAAAAAHc7gjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEVZGrzXr1+v1q1bq0iRInI4HFqyZMlNl1m7dq2qVasmHx8flSpVSnPnznWZP378eN13330KDAxUgQIF1LZtW+3bt8/ODgAAAAAAcBNZGrwvXbqkypUra/r06enqf+jQIbVs2VKNGjXSzp07NXDgQPXs2VMrVqxw9lm3bp369u2rH374QVFRUYqPj1ezZs106dIlW7sBAAAAAECqcmTlxps3b67mzZunu/8777yjsLAwTZw4UZJUtmxZbdiwQW+99ZYiIiIkScuXL3dZZu7cuSpQoIC2bdum+vXrZ97gAQAAAABIhzvqHu9NmzapSZMmLm0RERHatGlTqsucP39ekpQ3b16rYwMAAAAAICVZesY7o06ePKmCBQu6tBUsWFAxMTH6+++/5efn5zIvMTFRAwcOVJ06dVShQoVU1xsXF6e4uDjndExMjCQpPj5e8fHxmbgHcEdJx5hjDXdCXcLdUJNwR9Ql3A01mb1k5DjfUcE7o/r27atff/1VGzZsSLPf+PHjNWrUqGTtK1eulL+/v63hwc1ERUVl9RCAZKhLuBtqEu6IuoS7oSazh9jY2HT3vaOCd6FChXTq1CmXtlOnTikoKCjZ2e5+/fpp2bJlWr9+vYoVK5bmeocNG6ZBgwY5p2NiYhQSEqJmzZopKCgo83YAbik+Pl5RUVFq2rSpvLy8sno4gCTqEu6HmoQ7oi7hbqjJ7CXpSun0uKOCd+3atfX111+7tEVFRal27drOaWOMnn32WX3++edau3atwsLCbrpeHx8f+fj4JGv38vLiC5ONcLzhjqhLuBtqEu6IuoS7oSazh4wc4yx9uNrFixe1c+dO7dy5U9K114Xt3LlTR44ckXTtTHTXrl2d/Z966ikdPHhQQ4YM0d69e/X222/r008/1XPPPefs07dvX3344YdasGCBAgMDdfLkSZ08eVJ///33bd03AAAAAACkLA7eW7duVdWqVVW1alVJ0qBBg1S1alUNHz5cknTixAlnCJeksLAwffXVV4qKilLlypU1ceJEvffee85XiUnSjBkzdP78eTVs2FCFCxd2/nzyySe3d+cAAAAAAFAWX2resGFDGWNSnT937twUl9mxY0eqy6S1PgAAAAAAbrc76j3eAAAAAADcaQjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWZWnwXr9+vVq3bq0iRYrI4XBoyZIlN11m7dq1qlatmnx8fFSqVCnNnTs3WZ/p06erRIkS8vX1Va1atfTjjz9m/uABAAAAAEiHLA3ely5dUuXKlTV9+vR09T906JBatmypRo0aaefOnRo4cKB69uypFStWOPt88sknGjRokEaMGKHt27ercuXKioiIUHR0tK3dAAAAAAAgVTmycuPNmzdX8+bN093/nXfeUVhYmCZOnChJKlu2rDZs2KC33npLERERkqRJkyapV69e6t69u3OZr776SrNnz9bQoUMzfycAAAAAAEjDHXWP96ZNm9SkSROXtoiICG3atEmSdOXKFW3bts2lj4eHh5o0aeLsAwAAAADA7ZSlZ7wz6uTJkypYsKBLW8GCBRUTE6O///5bZ8+eVUJCQop99u7dm+p64+LiFBcX55yOiYmRJMXHxys+Pj4T9wDuKOkYc6zhTqhLuBtqEu6IuoS7oSazl4wc5zsqeNsyfvx4jRo1Kln7ypUr5e/vnwUjQlaIiorK6iEAyVCXcDfUJNwRdQl3Q01mD7Gxsenue0cF70KFCunUqVMubadOnVJQUJD8/Pzk6ekpT0/PFPsUKlQo1fUOGzZMgwYNck7HxMQoJCREzZo1U1BQUObuBNxOfHy8oqKi1LRpU3l5eWX1cABJ1CXcDzUJd0Rdwt1Qk9lL0pXS6XFHBe/atWvr66+/dmmLiopS7dq1JUne3t6qXr26Vq1apbZt20qSEhMTtWrVKvXr1y/V9fr4+MjHxydZu5eXF1+YbITjDXdEXcLdUJNwR9Ql3A01mT1k5Bhn6cPVLl68qJ07d2rnzp2Srr0ubOfOnTpy5Iika2eiu3bt6uz/1FNP6eDBgxoyZIj27t2rt99+W59++qmee+45Z59Bgwbp3Xff1fvvv689e/bo6aef1qVLl5xPOQcAAAAA4HbK0jPeW7duVaNGjZzTSZd7R0ZGau7cuTpx4oQzhEtSWFiYvvrqKz333HOaMmWKihUrpvfee8/5KjFJ6tSpk06fPq3hw4fr5MmTqlKlipYvX57sgWsAAAAAANwOWRq8GzZsKGNMqvPnzp2b4jI7duxIc739+vVL89JyAAAAAABulzvqPd4AAAAAANxpCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACy6peB99epVffvtt5o5c6YuXLggSTp+/LguXryYqYMDAAAAAOBOlyOjC/zxxx968MEHdeTIEcXFxalp06YKDAzUhAkTFBcXp3feecfGOAEAAAAAuCNl+Iz3gAEDVKNGDZ09e1Z+fn7O9nbt2mnVqlWZOjgAAAAAAO50GT7j/d1332njxo3y9vZ2aS9RooSOHTuWaQMDAAAAAOBukOEz3omJiUpISEjW/r///U+BgYGZMigAAAAAAO4WGQ7ezZo10+TJk53TDodDFy9e1IgRI9SiRYvMHBsAAAAAAHe8DF9q/uabb+rBBx9UuXLldPnyZXXu3Fn79+9X/vz59dFHH9kYIwAAAAAAd6wMB++QkBD99NNP+uSTT/TTTz/p4sWL6tGjh7p06eLysDUAAAAAAJDB4B0fH68yZcpo2bJl6tKli7p06WJrXAAAAAAA3BUydI+3l5eXLl++bGssAAAAAADcdTL8cLW+fftqwoQJunr1qo3xAAAAAABwV8nwPd5btmzRqlWrtHLlSlWsWFEBAQEu8xcvXpxpgwMAAAAA4E6X4eCdO3duPfzwwzbGAgAAAADAXSfDwXvOnDk2xgEAAAAAwF0pw8E7yenTp7Vv3z5J0r333qvg4OBMGxQAAAAAAHeLDD9c7dKlS3ryySdVuHBh1a9fX/Xr11eRIkXUo0cPxcbG2hgjAAAAAAB3rAwH70GDBmndunX68ssvde7cOZ07d05Lly7VunXr9Pzzz9sYIwAAAAAAd6wMX2q+aNEiLVy4UA0bNnS2tWjRQn5+furYsaNmzJiRmeMDAAAAAOCOluEz3rGxsSpYsGCy9gIFCnCpOQAAAAAAN8hw8K5du7ZGjBihy5cvO9v+/vtvjRo1SrVr187UwQEAAAAAcKfL8KXmU6ZMUUREhIoVK6bKlStLkn766Sf5+vpqxYoVmT5AAAAAAADuZBkO3hUqVND+/fs1f/587d27V5L02GOPqUuXLvLz88v0AQIAAAAAcCe7pfd4+/v7q1evXpk9FgAAAAAA7joZvsd7/Pjxmj17drL22bNna8KECZkyKAAAAAAA7hYZDt4zZ85UmTJlkrWXL19e77zzTqYMCgAAuI+EBGndOofWry+qdescSkjI6hEBAHBnyXDwPnnypAoXLpysPTg4WCdOnMiUQQEAAPeweLFUooTUtGkOTZpUQ02b5lCJEtfaAQBA+mQ4eIeEhOj7779P1v7999+rSJEimTIoAACQ9RYvljp0kP73P9f2Y8eutRO+AQBInww/XK1Xr14aOHCg4uPj9cADD0iSVq1apSFDhuj555/P9AECAIDbLyFBGjBAMib5PGMkh0MaOFBq00by9LztwwMA4I6S4eA9ePBg/fnnn3rmmWd05coVSZKvr6/+/e9/a9iwYZk+QAAAcPt9913yM93XM0Y6evRav4YNb9uwAAC4I2U4eDscDk2YMEGvvPKK9uzZIz8/P5UuXVo+Pj42xgcAALJAeh/bwuNdAAC4uQzf450kZ86cuu+++xQYGKgDBw4oMTExM8cFAACyUArPUf1H/QAAyM7SHbxnz56tSZMmubT17t1bJUuWVMWKFVWhQgUdPXo00wcIAABuv3r1pGLFrt3LnRKHQwoJudYPAACkLd3Be9asWcqTJ49zevny5ZozZ44++OADbdmyRblz59aoUaOsDBIAANxenp7SlCnX/n1j+E6anjyZB6sBAJAe6Q7e+/fvV40aNZzTS5cuVZs2bdSlSxdVq1ZN48aN06pVq6wMEgAA3H7t20sLF0pFi7q2Fyt2rb19+6wZFwAAd5p0B++///5bQUFBzumNGzeqfv36zumSJUvq5MmTmTs6AACQpdq3lw4flqKirmrQoK2KirqqQ4cI3QAAZES6g3doaKi2bdsmSTpz5ox27dqlOnXqOOefPHlSuXLlyvwRAgCALOXpKTVoYFS//jE1aGC4vBwAgAxK9+vEIiMj1bdvX+3atUurV69WmTJlVL16def8jRs3qkKFClYGCQAAAADAnSrdwXvIkCGKjY3V4sWLVahQIX322Wcu87///ns99thjmT5AAAAAAADuZOkO3h4eHho9erRGjx6d4vwbgzgAAAAAAMjAPd4AAAAAACDjCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwKNOC99GjR/Xkk09m1uoAAAAAALgrZFrw/uuvv/T+++9n1uoAAAAAALgrpPs93l988UWa8w8ePPiPBwMAAAAAwN0m3cG7bdu2cjgcMsak2sfhcGTKoAAAAAAAuFuk+1LzwoULa/HixUpMTEzxZ/v27TbHCQAAAADAHSndwbt69eratm1bqvNvdjYcAAAAAIDsKN2Xmg8ePFiXLl1KdX6pUqW0Zs2aTBkUAAAAAAB3i3QH73r16qU5PyAgQA0aNPjHAwIAAAAA4G6S7kvNDx48yKXkAAAAAABkULqDd+nSpXX69GnndKdOnXTq1Kl/PIDp06erRIkS8vX1Va1atfTjjz+m2jc+Pl6jR49WeHi4fH19VblyZS1fvtylT0JCgl555RWFhYXJz89P4eHhevXVV/mjAQAAAAAgS6Q7eN8YXL/++us07/lOj08++USDBg3SiBEjtH37dlWuXFkRERGKjo5Osf/LL7+smTNnaurUqdq9e7eeeuoptWvXTjt27HD2mTBhgmbMmKFp06Zpz549mjBhgl5//XVNnTr1H40VAAAAAIBbke7gbcOkSZPUq1cvde/eXeXKldM777wjf39/zZ49O8X+8+bN04svvqgWLVqoZMmSevrpp9WiRQtNnDjR2Wfjxo1q06aNWrZsqRIlSqhDhw5q1qxZmmfSAQAAAACwJd0PV3M4HHI4HMnabtWVK1e0bds2DRs2zNnm4eGhJk2aaNOmTSkuExcXJ19fX5c2Pz8/bdiwwTl9//33a9asWfrtt990zz336KefftKGDRs0adKkVMcSFxenuLg453RMTIyka5e2x8fH39L+4c6RdIw51nAn1CXcDTUJd0Rdwt1Qk9lLRo5zuoO3MUbdunWTj4+PJOny5ct66qmnFBAQ4NJv8eLF6VrfmTNnlJCQoIIFC7q0FyxYUHv37k1xmYiICE2aNEn169dXeHi4Vq1apcWLFyshIcHZZ+jQoYqJiVGZMmXk6emphIQEjR07Vl26dEl1LOPHj9eoUaOSta9cuVL+/v7p2h/c+aKiorJ6CEAy1CXcDTUJd0Rdwt1Qk9lDbGxsuvumO3hHRka6TD/++OPpH1EmmTJlinr16qUyZcrI4XAoPDxc3bt3d7k0/dNPP9X8+fO1YMEClS9fXjt37tTAgQNVpEiRZPuQZNiwYRo0aJBzOiYmRiEhIWrWrJmCgoKs7xeyVnx8vKKiotS0aVN5eXll9XAASdQl3A81CXdEXcLdUJPZS9KV0umR7uA9Z86cWxpMavLnzy9PT89kT0Y/deqUChUqlOIywcHBWrJkiS5fvqw///xTRYoU0dChQ1WyZElnn8GDB2vo0KF69NFHJUkVK1bUH3/8ofHjx6cavH18fJxn8q/n5eXFFyYb4XjDHVGXcDfUJNwRdQl3Q01mDxk5xln2cDVvb29Vr15dq1atcrYlJiZq1apVql27dprL+vr6qmjRorp69aoWLVqkNm3aOOfFxsbKw8N1tzw9PZWYmJi5OwAAAAAAQDqk+4y3DYMGDVJkZKRq1KihmjVravLkybp06ZK6d+8uSeratauKFi2q8ePHS5I2b96sY8eOqUqVKjp27JhGjhypxMREDRkyxLnO1q1ba+zYsSpevLjKly+vHTt2aNKkSXryySezZB8BAAAAANlblgbvTp066fTp0xo+fLhOnjypKlWqaPny5c4Hrh05csTl7PXly5f18ssv6+DBg8qZM6datGihefPmKXfu3M4+U6dO1SuvvKJnnnlG0dHRKlKkiPr06aPhw4ff7t0DAAAAACBrg7ck9evXT/369Utx3tq1a12mGzRooN27d6e5vsDAQE2ePFmTJ0/OpBECAAAAAHDrsuwebwAAAAAAsgOCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARVkevKdPn64SJUrI19dXtWrV0o8//phq3/j4eI0ePVrh4eHy9fVV5cqVtXz58mT9jh07pscff1z58uWTn5+fKlasqK1bt9rcDQAAAAAAUpSlwfuTTz7RoEGDNGLECG3fvl2VK1dWRESEoqOjU+z/8ssva+bMmZo6dap2796tp556Su3atdOOHTucfc6ePas6derIy8tL33zzjXbv3q2JEycqT548t2u3AAAAAABwytLgPWnSJPXq1Uvdu3dXuXLl9M4778jf31+zZ89Osf+8efP04osvqkWLFipZsqSefvpptWjRQhMnTnT2mTBhgkJCQjRnzhzVrFlTYWFhatasmcLDw2/XbgEAAAAA4JQjqzZ85coVbdu2TcOGDXO2eXh4qEmTJtq0aVOKy8TFxcnX19elzc/PTxs2bHBOf/HFF4qIiNAjjzyidevWqWjRonrmmWfUq1evVMcSFxenuLg453RMTIyka5e2x8fH39L+4c6RdIw51nAn1CXcDTUJd0Rdwt1Qk9lLRo5zlgXvM2fOKCEhQQULFnRpL1iwoPbu3ZviMhEREZo0aZLq16+v8PBwrVq1SosXL1ZCQoKzz8GDBzVjxgwNGjRIL774orZs2aL+/fvL29tbkZGRKa53/PjxGjVqVLL2lStXyt/f/x/sJe4kUVFRWT0EIBnqEu6GmoQ7oi7hbqjJ7CE2NjbdfR3GGGNxLKk6fvy4ihYtqo0bN6p27drO9iFDhmjdunXavHlzsmVOnz6tXr166csvv5TD4VB4eLiaNGmi2bNn6++//5YkeXt7q0aNGtq4caNzuf79+2vLli1pnkm/8Yx3SEiIzpw5o6CgoMzaZbip+Ph4RUVFqWnTpvLy8srq4QCSqEu4H2oS7oi6hLuhJrOXmJgY5c+fX+fPn79pbsyyM9758+eXp6enTp065dJ+6tQpFSpUKMVlgoODtWTJEl2+fFl//vmnihQpoqFDh6pkyZLOPoULF1a5cuVclitbtqwWLVqU6lh8fHzk4+OTrN3Ly4svTDbC8YY7oi7hbqhJuCPqEu6GmsweMnKMs+zhat7e3qpevbpWrVrlbEtMTNSqVatczoCnxNfXV0WLFtXVq1e1aNEitWnTxjmvTp062rdvn0v/3377TaGhoZm7AwAAAAAApEOWnfGWpEGDBikyMlI1atRQzZo1NXnyZF26dEndu3eXJHXt2lVFixbV+PHjJUmbN2/WsWPHVKVKFR07dkwjR45UYmKihgwZ4lznc889p/vvv1/jxo1Tx44d9eOPP2rWrFmaNWtWluwjAAAAACB7y9Lg3alTJ50+fVrDhw/XyZMnVaVKFS1fvtz5wLUjR47Iw+P/TspfvnxZL7/8sg4ePKicOXOqRYsWmjdvnnLnzu3sc9999+nzzz/XsGHDNHr0aIWFhWny5Mnq0qXL7d49AAAAAACyNnhLUr9+/dSvX78U561du9ZlukGDBtq9e/dN19mqVSu1atUqM4YHAAAAAMA/kmX3eAMAAAAAkB0QvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALHKL4D19+nSVKFFCvr6+qlWrln788cdU+8bHx2v06NEKDw+Xr6+vKleurOXLl6fa/7XXXpPD4dDAgQMtjBwAAAAAgLRlefD+5JNPNGjQII0YMULbt29X5cqVFRERoejo6BT7v/zyy5o5c6amTp2q3bt366mnnlK7du20Y8eOZH23bNmimTNnqlKlSrZ3AwAAAACAFGV58J40aZJ69eql7t27q1y5cnrnnXfk7++v2bNnp9h/3rx5evHFF9WiRQuVLFlSTz/9tFq0aKGJEye69Lt48aK6dOmid999V3ny5LkduwIAAAAAQDI5snLjV65c0bZt2zRs2DBnm4eHh5o0aaJNmzaluExcXJx8fX1d2vz8/LRhwwaXtr59+6ply5Zq0qSJxowZk+Y44uLiFBcX55yOiYmRdO2y9vj4+AztE+48SceYYw13Ql3C3VCTcEfUJdwNNZm9ZOQ4Z2nwPnPmjBISElSwYEGX9oIFC2rv3r0pLhMREaFJkyapfv36Cg8P16pVq7R48WIlJCQ4+3z88cfavn27tmzZkq5xjB8/XqNGjUrWvnLlSvn7+2dgj3Ani4qKyuohAMlQl3A31CTcEXUJd0NNZg+xsbHp7pulwftWTJkyRb169VKZMmXkcDgUHh6u7t27Oy9NP3r0qAYMGKCoqKhkZ8ZTM2zYMA0aNMg5HRMTo5CQEDVr1kxBQUFW9gPuIz4+XlFRUWratKm8vLyyejiAJOoS7oeahDuiLuFuqMnsJelK6fTI0uCdP39+eXp66tSpUy7tp06dUqFChVJcJjg4WEuWLNHly5f1559/qkiRIho6dKhKliwpSdq2bZuio6NVrVo15zIJCQlav369pk2bpri4OHl6erqs08fHRz4+Psm25eXlxRcmG+F4wx1Rl3A31CTcEXUJd0NNZg8ZOcZZ+nA1b29vVa9eXatWrXK2JSYmatWqVapdu3aay/r6+qpo0aK6evWqFi1apDZt2kiSGjdurF9++UU7d+50/tSoUUNdunTRzp07k4VuAAAAAABsyvJLzQcNGqTIyEjVqFFDNWvW1OTJk3Xp0iV1795dktS1a1cVLVpU48ePlyRt3rxZx44dU5UqVXTs2DGNHDlSiYmJGjJkiCQpMDBQFSpUcNlGQECA8uXLl6wdAAAAAADbsjx4d+rUSadPn9bw4cN18uRJValSRcuXL3c+cO3IkSPy8Pi/E/OXL1/Wyy+/rIMHDypnzpxq0aKF5s2bp9y5c2fRHgAAAAAAkLosD96S1K9fP/Xr1y/FeWvXrnWZbtCggXbv3p2h9d+4DgAAAAAAbpcsvccbAAAAAIC7HcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFObJ6AO7IGCNJiomJyeKR4HaIj49XbGysYmJi5OXlldXDASRRl3A/1CTcEXUJd0NNZi9JeTEpP6aF4J2CCxcuSJJCQkKyeCQAAAAAAHd24cIF5cqVK80+DpOeeJ7NJCYm6vjx4woMDJTD4cjq4cCymJgYhYSE6OjRowoKCsrq4QCSqEu4H2oS7oi6hLuhJrMXY4wuXLigIkWKyMMj7bu4OeOdAg8PDxUrViyrh4HbLCgoiF+QcDvUJdwNNQl3RF3C3VCT2cfNznQn4eFqAAAAAABYRPAGAAAAAMAigjeyPR8fH40YMUI+Pj5ZPRTAibqEu6Em4Y6oS7gbahKp4eFqAAAAAABYxBlvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3rgrTZ8+XSVKlJCvr69q1aqlH3/8MdW+8fHxGj16tMLDw+Xr66vKlStr+fLlyfodO3ZMjz/+uPLlyyc/Pz9VrFhRW7dutbkbuItkdk0mJCTolVdeUVhYmPz8/BQeHq5XX31VPLYD6bF+/Xq1bt1aRYoUkcPh0JIlS266zNq1a1WtWjX5+PioVKlSmjt3brI+Galz4EY26nL8+PG67777FBgYqAIFCqht27bat2+fnR3AXcfW78okr732mhwOhwYOHJhpY4b7InjjrvPJJ59o0KBBGjFihLZv367KlSsrIiJC0dHRKfZ/+eWXNXPmTE2dOlW7d+/WU089pXbt2mnHjh3OPmfPnlWdOnXk5eWlb775Rrt379bEiROVJ0+e27VbuIPZqMkJEyZoxowZmjZtmvbs2aMJEybo9ddf19SpU2/XbuEOdunSJVWuXFnTp09PV/9Dhw6pZcuWatSokXbu3KmBAweqZ8+eWrFihbNPRuscuJGNuly3bp369u2rH374QVFRUYqPj1ezZs106dIlW7uBu4iNmkyyZcsWzZw5U5UqVcrsYcNdGeAuU7NmTdO3b1/ndEJCgilSpIgZP358iv0LFy5spk2b5tLWvn1706VLF+f0v//9b1O3bl07A8Zdz0ZNtmzZ0jz55JNp9gHSQ5L5/PPP0+wzZMgQU758eZe2Tp06mYiICOd0RuscSEtm1eWNoqOjjSSzbt26zBgmspHMrMkLFy6Y0qVLm6ioKNOgQQMzYMCATB4t3BFnvHFXuXLlirZt26YmTZo42zw8PNSkSRNt2rQpxWXi4uLk6+vr0ubn56cNGzY4p7/44gvVqFFDjzzyiAoUKKCqVavq3XfftbMTuKvYqsn7779fq1at0m+//SZJ+umnn7RhwwY1b97cwl4gu9u0aZNLDUtSRESEs4Zvpc6Bf+pmdZmS8+fPS5Ly5s1rdWzIntJbk3379lXLli2T9cXdjeCNu8qZM2eUkJCgggULurQXLFhQJ0+eTHGZiIgITZo0Sfv371diYqKioqK0ePFinThxwtnn4MGDmjFjhkqXLq0VK1bo6aefVv/+/fX+++9b3R/c+WzV5NChQ/Xoo4+qTJky8vLyUtWqVTVw4EB16dLF6v4gezp58mSKNRwTE6O///77luoc+KduVpc3SkxM1MCBA1WnTh1VqFDhdg0T2Uh6avLjjz/W9u3bNX78+KwYIrIQwRvZ3pQpU1S6dGmVKVNG3t7e6tevn7p37y4Pj//7eiQmJqpatWoaN26cqlatqt69e6tXr1565513snDkuFulpyY//fRTzZ8/XwsWLND27dv1/vvv68033+SPQQCQir59++rXX3/Vxx9/nNVDQTZ19OhRDRgwQPPnz092ZRvufgRv3FXy588vT09PnTp1yqX91KlTKlSoUIrLBAcHa8mSJbp06ZL++OMP7d27Vzlz5lTJkiWdfQoXLqxy5cq5LFe2bFkdOXIk83cCdxVbNTl48GDnWe+KFSvqiSee0HPPPcdf0GFFoUKFUqzhoKAg+fn53VKdA//Uzeryev369dOyZcu0Zs0aFStW7HYOE9nIzWpy27Ztio6OVrVq1ZQjRw7lyJFD69at03/+8x/lyJFDCQkJWTRy3A4Eb9xVvL29Vb16da1atcrZlpiYqFWrVql27dppLuvr66uiRYvq6tWrWrRokdq0aeOcV6dOnWSvH/ntt98UGhqauTuAu46tmoyNjXU5Ay5Jnp6eSkxMzNwdACTVrl3bpYYlKSoqylnD/6TOgVt1s7qUJGOM+vXrp88//1yrV69WWFjY7R4mspGb1WTjxo31yy+/aOfOnc6fGjVqqEuXLtq5c6c8PT2zYti4XbL66W5AZvv444+Nj4+PmTt3rtm9e7fp3bu3yZ07tzl58qQxxpgnnnjCDB061Nn/hx9+MIsWLTIHDhww69evNw888IAJCwszZ8+edfb58ccfTY4cOczYsWPN/v37zfz5842/v7/58MMPb/fu4Q5koyYjIyNN0aJFzbJly8yhQ4fM4sWLTf78+c2QIUNu9+7hDnThwgWzY8cOs2PHDiPJTJo0yezYscP88ccfxhhjhg4dap544gln/4MHDxp/f38zePBgs2fPHjN9+nTj6elpli9f7uxzszoHbsZGXT799NMmV65cZu3atebEiRPOn9jY2Nu+f7jz2KjJG/FU8+yD4I270tSpU03x4sWNt7e3qVmzpvnhhx+c8xo0aGAiIyOd02vXrjVly5Y1Pj4+Jl++fOaJJ54wx44dS7bOL7/80lSoUMH4+PiYMmXKmFmzZt2OXcFdIrNrMiYmxgwYMMAUL17c+Pr6mpIlS5qXXnrJxMXF3a5dwh1szZo1RlKyn6Q6jIyMNA0aNEi2TJUqVYy3t7cpWbKkmTNnTrL1plXnwM3YqMuU1icpxfoFbmTrd+X1CN7Zh8MYY27f+XUAAAAAALIX7vEGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AADZVLdu3eRwOORwOOTl5aWwsDANGTJEly9fzuqhAQBwV8mR1QMAAABZ58EHH9ScOXMUHx+vbdu2KTIyUg6HQxMmTMjqoQEAcNfgjDcAANmYj4+PChUqpJCQELVt21ZNmjRRVFSUJKlEiRKaPHmyS/8qVapo5MiRzmmHw6H33ntP7dq1k7+/v0qXLq0vvvjiNu4BAADuj+ANAAAkSb/++qs2btwob2/vDC03atQodezYUT///LNatGihLl266K+//rI0SgAA7jwEbwAAsrFly5YpZ86c8vX1VcWKFRUdHa3BgwdnaB3dunXTY489plKlSmncuHG6ePGifvzxR0sjBgDgzsM93gAAZGONGjXSjBkzdOnSJb311lvKkSOHHn744Qyto1KlSs5/BwQEKCgoSNHR0Zk9VAAA7lic8QYAIBsLCAhQqVKlVLlyZc2ePVubN2/Wf//7X0mSh4eHjDEu/ePj45Otw8vLy2Xa4XAoMTHR3qABALjDELwBAICka0H7xRdf1Msvv6y///5bwcHBOnHihHN+TEyMDh06lIUjBADgzkTwBgAATo888og8PT01ffp0PfDAA5o3b56+++47/fLLL4qMjJSnp2dWDxEAgDsO93gDAACnHDlyqF+/fnr99de1f/9+HTp0SK1atVKuXLn06quvcsYbAIBb4DA33rwFAAAAAAAyDZeaAwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAkMzatWvlcDi0cOHCrB5Kupw6dUodOnRQvnz55HA4NHny5KweEtIwcuRIORyOrB7GLSlRooS6deuW1cMAANxhCN4AkEXmzp0rh8MhX19fHTt2LNn8hg0bqkKFClkwsjvPc889pxUrVmjYsGGaN2+eHnzwwVT7OhyOFH8KFSpkZWyxsbEaOXKk1q5da2X9t8Phw4fVvXt3hYeHy9fXV4UKFVL9+vU1YsSIrB5air7++muNHDkyq4chSTp37px8fX3lcDi0Z8+erB6OFUm/y5J+cuTIoaJFi6pbt24p/m4DgOwoR1YPAACyu7i4OL322muaOnVqVg/ljrV69Wq1adNGL7zwQrr6N23aVF27dnVp8/PzszE0xcbGatSoUZKu/THlTvP777/rvvvuk5+fn5588kmVKFFCJ06c0Pbt2zVhwgTnvrmTr7/+WtOnT3eL8P3ZZ585/7Azf/58jRkzJquHZM3o0aMVFhamy5cv64cfftDcuXO1YcMG/frrr/L19c3q4QFAliJ4A0AWq1Klit59910NGzZMRYoUyerh3FaXLl1SQEDAP15PdHS0cufOne7+99xzjx5//PF/vN2sdPXqVSUmJsrb29vqdt566y1dvHhRO3fuVGhoqMu86Ohoq9u+G3z44Ydq0aKFQkNDtWDBgkwL3sYYXb582dofjG5F8+bNVaNGDUlSz549lT9/fk2YMEFffPGFOnbsmMWjA4CsxaXmAJDFXnzxRSUkJOi1115Ls9/hw4flcDg0d+7cZPMcDofL2b2ke2h/++03Pf7448qVK5eCg4P1yiuvyBijo0ePqk2bNgoKClKhQoU0ceLEFLeZkJCgF198UYUKFVJAQIAeeughHT16NFm/zZs368EHH1SuXLnk7++vBg0a6Pvvv3fpkzSm3bt3q3PnzsqTJ4/q1q2b5j4fPHhQjzzyiPLmzSt/f3/961//0ldffeWcn3SJqzFG06dPd17q+k8dO3ZMTz75pAoWLCgfHx+VL19es2fPdulz5coVDR8+XNWrV1euXLkUEBCgevXqac2aNc4+hw8fVnBwsCRp1KhRzvElHauGDRumeBa8W7duKlGihMt6HA6H3nzzTU2ePFnh4eHy8fHR7t27JUl79+5Vhw4dlDdvXvn6+qpGjRr64osvXNYZHx+vUaNGqXTp0vL19VW+fPlUt25dRUVFpflZHDhwQMWKFUsWuiWpQIECydq++eYb1atXTwEBAQoMDFTLli21a9euNLeR5MMPP1T16tXl5+envHnz6tFHH0213lq0aKE8efIoICBAlSpV0pQpUyRd++ymT58uyfW2giSJiYmaPHmyypcvL19fXxUsWFB9+vTR2bNnXbZhjNGYMWNUrFgx+fv7q1GjRunejyRHjhzRd999p0cffVSPPvqoDh06pI0bN6a67zVr1pS/v7/y5Mmj+vXra+XKlc75JUqUUKtWrbRixQrVqFFDfn5+mjlzpqSbf0+STJ06VeXLl3duo0aNGlqwYIFz/oULFzRw4ECVKFFCPj4+KlCggJo2bart27dnaL+T1KtXT9K1GkpyKzU/a9YsZ83fd9992rJli8uyJ0+eVPfu3VWsWDH5+PiocOHCatOmjQ4fPnxL4wYAGzjjDQBZLCwsTF27dtW7776roUOHZupZ706dOqls2bJ67bXX9NVXX2nMmDHKmzevZs6cqQceeEATJkzQ/Pnz9cILL+i+++5T/fr1XZYfO3asHA6H/v3vfys6OlqTJ09WkyZNtHPnTueZttWrV6t58+aqXr26RowYIQ8PD82ZM0cPPPCAvvvuO9WsWdNlnY888ohKly6tcePGyRiT6thPnTql+++/X7Gxserfv7/y5cun999/Xw899JAWLlyodu3aqX79+po3b56eeOKJFC8fT83ly5d15swZl7bAwED5+Pjo1KlT+te//iWHw6F+/fopODhY33zzjXr06KGYmBgNHDhQkhQTE6P33ntPjz32mHr16qULFy7ov//9ryIiIvTjjz+qSpUqCg4O1owZM/T000+rXbt2at++vSSpUqVK6RrnjebMmaPLly+rd+/e8vHxUd68ebVr1y7VqVNHRYsW1dChQxUQEKBPP/1Ubdu21aJFi9SuXTtJ1/7wMX78ePXs2VM1a9ZUTEyMtm7dqu3bt6tp06apbjM0NFTffvutVq9erQceeCDN8c2bN0+RkZGKiIjQhAkTFBsbqxkzZqhu3brasWOHS7C60dixY/XKK6+oY8eO6tmzp06fPq2pU6eqfv362rFjh/OKhqioKLVq1UqFCxfWgAEDVKhQIe3Zs0fLli3TgAED1KdPHx0/flxRUVGaN29esu306dNHc+fOVffu3dW/f38dOnRI06ZN044dO/T999/Ly8tLkjR8+HCNGTNGLVq0UIsWLbR9+3Y1a9ZMV65cuclR+j8fffSRAgIC1KpVK/n5+Sk8PFzz58/X/fff79Jv1KhRGjlypO6//36NHj1a3t7e2rx5s1avXq1mzZo5++3bt0+PPfaY+vTpo169eunee+9N1/dEkt599131799fHTp00IABA3T58mX9/PPP2rx5szp37ixJeuqpp7Rw4UL169dP5cqV059//qkNGzZoz549qlatWrr3O0lS8M2TJ0+Gl02yYMECXbhwQX369JHD4dDrr7+u9u3b6+DBg85j9fDDD2vXrl169tlnVaJECUVHRysqKkpHjhxJs+YA4LYyAIAsMWfOHCPJbNmyxRw4cMDkyJHD9O/f3zm/QYMGpnz58s7pQ4cOGUlmzpw5ydYlyYwYMcI5PWLECCPJ9O7d29l29epVU6xYMeNwOMxrr73mbD979qzx8/MzkZGRzrY1a9YYSaZo0aImJibG2f7pp58aSWbKlCnGGGMSExNN6dKlTUREhElMTHT2i42NNWFhYaZp06bJxvTYY4+l6/MZOHCgkWS+++47Z9uFCxdMWFiYKVGihElISHDZ/759+6ZrvZJS/En6XHv06GEKFy5szpw547Lco48+anLlymViY2ONMdc+z7i4OJc+Z8+eNQULFjRPPvmks+306dPJjk+SBg0amAYNGiRrj4yMNKGhoc7ppGMfFBRkoqOjXfo2btzYVKxY0Vy+fNnZlpiYaO6//35TunRpZ1vlypVNy5Yt0/xsUvLrr78aPz8/I8lUqVLFDBgwwCxZssRcunTJpd+FCxdM7ty5Ta9evVzaT548aXLlyuXSnlQLSQ4fPmw8PT3N2LFjXZb95ZdfTI4cOZztV69eNWFhYSY0NNScPXvWpe/19de3b1+T0n9xvvvuOyPJzJ8/36V9+fLlLu3R0dHG29vbtGzZ0mW9L774opHk8l1JS8WKFU2XLl1cls+fP7+Jj493tu3fv994eHiYdu3audT0jfsUGhpqJJnly5e79Env96RNmzYuv09SkitXrnR/j66X9Lvs22+/NadPnzZHjx41CxcuNMHBwcbHx8ccPXrU2TejNZ8vXz7z119/OduXLl1qJJkvv/zSGHPtOyfJvPHGGxkeNwDcTlxqDgBuoGTJknriiSc0a9YsnThxItPW27NnT+e/PT09VaNGDRlj1KNHD2d77ty5de+99+rgwYPJlu/atasCAwOd0x06dFDhwoX19ddfS5J27typ/fv3q3Pnzvrzzz915swZnTlzRpcuXVLjxo21fv16JSYmuqzzqaeeStfYv/76a9WsWdPlcvScOXOqd+/eOnz4sPMy61vRpk0bRUVFufxERETIGKNFixapdevWMsY49+fMmTOKiIjQ+fPnnZfdenp6Ou+vTkxM1F9//aWrV6+qRo0at3xp7s08/PDDzkvXJemvv/7S6tWr1bFjR124cME51j///FMRERHav3+/86nSuXPn1q5du7R///4MbbN8+fLauXOnHn/8cR0+fFhTpkxR27ZtVbBgQb377rvOflFRUTp37pwee+wxl8/N09NTtWrVcrkE/0aLFy9WYmKiOnbs6LJsoUKFVLp0aeeyO3bs0KFDhzRw4MBk9/Sn5xaDzz77TLly5VLTpk1dtlO9enXlzJnTuZ1vv/1WV65c0bPPPuuy3qSrHdLj559/1i+//KLHHnvM2Zb02axYscLZtmTJEiUmJmr48OHy8HD9b9mN+xQWFqaIiAiXtvR+T3Lnzq3//e9/yS7Tvl7u3Lm1efNmHT9+PN37eb0mTZooODhYISEh6tChgwICAvTFF1+oWLFit7Q+6dpVO9efMU+6fD3p95Wfn5+8vb21du3aZLcLAIA74VJzAHATL7/8subNm6fXXnvNeb/qP1W8eHGX6Vy5csnX11f58+dP1v7nn38mW7506dIu0w6HQ6VKlXJeQpoU4iIjI1Mdw/nz513+4xwWFpausf/xxx+qVatWsvayZcs659/q69aKFSumJk2aJGuPjo7WuXPnNGvWLM2aNSvFZa9/oNj777+viRMnau/evYqPj3e2p3cfM+rG9f7+++8yxuiVV17RK6+8kup4ixYtqtGjR6tNmza65557VKFCBT344IN64okn0nXZ+z333KN58+YpISFBu3fv1rJly/T666+rd+/eCgsLU5MmTZy1kNrl6EFBQamuf//+/TLGJKu3JEmXFCfdK3yrx33//v06f/58ivemS/93bP/44w9Jyes/ODg43ZdNf/jhhwoICFDJkiX1+++/S5J8fX1VokQJzZ8/Xy1btpR0bZ88PDxUrly5m64zpbpK7/fk3//+t7799lvVrFlTpUqVUrNmzdS5c2fVqVPHuczrr7+uyMhIhYSEqHr16mrRooW6du2qkiVLpmufp0+frnvuuUfnz5/X7NmztX79evn4+KRr2dTc+Dss6fNPCtk+Pj6aMGGCnn/+eRUsWFD/+te/1KpVK3Xt2tXaKwIB4FYQvAHATZQsWVKPP/64Zs2apaFDhyabn9oZvYSEhFTX6enpma42SWneb52apLPZb7zxhqpUqZJin5w5c7pMu9NTmG+UtD+PP/54qn9MSAqqH374obp166a2bdtq8ODBKlCggDw9PTV+/HiXh0mlJenBcDdK7Zje+NkljfeFF15IdiY0SalSpSRJ9evX14EDB7R06VKtXLlS7733nt566y298847LldGpMXT01MVK1ZUxYoVVbt2bTVq1Ejz589XkyZNnGOZN29eioEnR47U/8uRmJgoh8Ohb775JsX6vLGGblViYqIKFCig+fPnpzj/+qsJ/gljjD766CNdunQpxUAdHR2tixcvZni//sl3p2zZstq3b5+WLVum5cuXa9GiRXr77bc1fPhw5yvhOnbsqHr16unzzz/XypUr9cYbb2jChAlavHixmjdvftNt1KxZ0/lU87Zt26pu3brq3Lmz9u3b59zXjNZ8en5fDRw4UK1bt9aSJUu0YsUKvfLKKxo/frxWr16tqlWr3nTcAHA7ELwBwI28/PLL+vDDDzVhwoRk85LO9Jw7d86lPensnA03XpZsjNHvv//uDJ/h4eGSrp3NTOkM8j8RGhqqffv2JWvfu3evc35mCw4OVmBgoBISEm66PwsXLlTJkiW1ePFilz+KjBgxwqVfWpdA58mTJ8VL/NN7TJPORHp5eaXr88+bN6+6d++u7t276+LFi6pfv75GjhyZ7uB9vaSAlXRrRFItFChQIMO1EB4eLmOMwsLCdM8996TZT5J+/fXXNLeR2mceHh6ub7/9VnXq1EkzxCbV1v79+13O9p4+fTpdlzOvW7dO//vf/zR69GjnmeckZ8+eVe/evbVkyRI9/vjjCg8PV2Jionbv3p3qH6/SkpHvSUBAgDp16qROnTrpypUrat++vcaOHathw4Y537NduHBhPfPMM3rmmWcUHR2tatWqaezYsekK3tdL+iNUo0aNNG3aNOcfE/9pzacmPDxczz//vJ5//nnt379fVapU0cSJE/Xhhx/+o/UCQGbhHm8AcCPh4eF6/PHHNXPmTJ08edJlXlBQkPLnz6/169e7tL/99tvWxvPBBx/owoULzumFCxfqxIkTzv+EV69eXeHh4XrzzTd18eLFZMufPn36lrfdokUL/fjjj9q0aZOz7dKlS5o1a5ZKlCiRrktzM8rT01MPP/ywFi1apF9//TXZ/Ov3J+lM3PVn3jZv3uwyXkny9/eXlPwPJtK14713716X9f7000/JXsWWmgIFCqhhw4aaOXNmis8GuH69N95KkDNnTpUqVUpxcXFpbuO7775zuYw+SdJ9/vfee68kKSIiQkFBQRo3blyK/dOqhfbt28vT01OjRo1KdjbUGOMce7Vq1RQWFqbJkycn+zyvXy7p3fA39unYsaMSEhL06quvJhvD1atXnf2bNGkiLy8vTZ061WW9kydPTnUfrpd0mfngwYPVoUMHl59evXqpdOnSzrPubdu2lYeHh0aPHp3seQjpuQolvd+TG4+/t7e3ypUrJ2OM4uPjlZCQoPPnz7v0KVCggIoUKXLTGklNw4YNVbNmTU2ePFmXL1+W9M9r/kaxsbHOdScJDw9XYGDgLY8bAGzgjDcAuJmXXnpJ8+bN0759+1S+fHmXeT179tRrr72mnj17qkaNGlq/fr1+++03a2PJmzev6tatq+7du+vUqVOaPHmySpUqpV69ekmSPDw89N5776l58+YqX768unfvrqJFi+rYsWNas2aNgoKC9OWXX97StocOHaqPPvpIzZs3V//+/ZU3b169//77OnTokBYtWpTsQVSZ5bXXXtOaNWtUq1Yt9erVS+XKldNff/2l7du369tvv9Vff/0lSWrVqpUWL16sdu3aqWXLljp06JDeeecdlStXzuWPEH5+fipXrpw++eQT3XPPPcqbN68qVKigChUq6Mknn9SkSZMUERGhHj16KDo6Wu+8847Kly+vmJiYdI13+vTpqlu3ripWrKhevXqpZMmSOnXqlDZt2qT//e9/+umnnyRJ5cqVU8OGDVW9enXlzZtXW7dudb46Ki0TJkzQtm3b1L59e+eVDtu3b9cHH3ygvHnzOh84FhQUpBkzZuiJJ55QtWrV9Oijjyo4OFhHjhzRV199pTp16mjatGkpbiM8PFxjxozRsGHDdPjwYbVt21aBgYE6dOiQPv/8c/Xu3VsvvPCCPDw8NGPGDLVu3VpVqlRR9+7dVbhwYe3du1e7du1yPrSsevXqkqT+/fsrIiJCnp6eevTRR9WgQQP16dNH48eP186dO9WsWTN5eXlp//79+uyzzzRlyhR16NBBwcHBeuGFFzR+/Hi1atVKLVq00I4dO/TNN98kez7CjeLi4rRo0SI1bdrUeRb5Rg899JCmTJmi6OholSpVSi+99JJeffVV1atXT+3bt5ePj4+2bNmiIkWKaPz48WluL73fk2bNmqlQoUKqU6eOChYsqD179mjatGlq2bKlAgMDde7cORUrVkwdOnRQ5cqVlTNnTn377bfasmWLJk6cmOYY0jJ48GA98sgjmjt3rp566qlMqfnr/fbbb2rcuLE6duyocuXKKUeOHPr888916tQpPfroo7c8bgDIdLf5KeoAgP/v+teJ3SgyMtJISvb6n9jYWNOjRw+TK1cuExgYaDp27Giio6NTfZ3Y6dOnk603ICAg2fZufHVZ0uvEPvroIzNs2DBToEAB4+fnZ1q2bGn++OOPZMvv2LHDtG/f3uTLl8/4+PiY0NBQ07FjR7Nq1aqbjiktBw4cMB06dDC5c+c2vr6+pmbNmmbZsmXJ+imDrxO7Wd9Tp06Zvn37mpCQEOPl5WUKFSpkGjdubGbNmuXsk5iYaMaNG2dCQ0ONj4+PqVq1qlm2bFmy1yIZY8zGjRtN9erVjbe3d7Jj9eGHH5qSJUsab29vU6VKFbNixYpUX62U2iuTDhw4YLp27WoKFSpkvLy8TNGiRU2rVq3MwoULnX3GjBljatasaXLnzm38/PxMmTJlzNixY82VK1fS/Cy+//5707dvX1OhQgWTK1cu4+XlZYoXL266detmDhw4kKz/mjVrTEREhMmVK5fx9fU14eHhplu3bmbr1q3OPje+TizJokWLTN26dU1AQIAJCAgwZcqUMX379jX79u1z6bdhwwbTtGlTExgYaAICAkylSpXM1KlTnfOvXr1qnn32WRMcHGwcDkeybc2aNctUr17d+Pn5mcDAQFOxYkUzZMgQc/z4cWefhIQEM2rUKFO4cGHj5+dnGjZsaH799VcTGhqa5uvEFi1aZCSZ//73v6n2Wbt2rctr+YwxZvbs2aZq1arGx8fH5MmTxzRo0MBERUU554eGhqb6Orj0fE9mzpxp6tev7/yOhoeHm8GDB5vz588bY4yJi4szgwcPNpUrV3Z+rpUrVzZvv/12qvuRJK3fZQkJCSY8PNyEh4ebq1evGmP+ec1f/x06c+aM6du3rylTpowJCAgwuXLlMrVq1TKffvrpTccNALeTw5hbeJoOAAAAAABIF+7xBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgUY6sHoA7SkxM1PHjxxUYGCiHw5HVwwEAAAAAuBljjC5cuKAiRYrIwyPtc9oE7xQcP35cISEhWT0MAAAAAICbO3r0qIoVK5ZmH4J3CgIDAyVd+wCDgoKyeDSwLT4+XitXrlSzZs3k5eWV1cMBJFGXcD/UJNwRdQl3Q01mLzExMQoJCXHmx7QQvFOQdHl5UFAQwTsbiI+Pl7+/v4KCgvgFCbdBXcLdUJNwR9Ql3A01mT2l5/ZkHq4GAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALDI7YP3sWPH9Pjjjytfvnzy8/NTxYoVtXXr1lT7b9iwQXXq1HH2L1OmjN56663bOGIAAAAAAP5PjqweQFrOnj2rOnXqqFGjRvrmm28UHBys/fv3K0+ePKkuExAQoH79+qlSpUoKCAjQhg0b1KdPHwUEBKh37963cfQAAAAAALh58J4wYYJCQkI0Z84cZ1tYWFiay1StWlVVq1Z1TpcoUUKLFy/Wd999R/AGAAAAANx2bn2p+RdffKEaNWrokUceUYECBVS1alW9++67GVrHjh07tHHjRjVo0MDSKAEAAAAASJ1bn/E+ePCgZsyYoUGDBunFF1/Uli1b1L9/f3l7eysyMjLNZYsVK6bTp0/r6tWrGjlypHr27Jlq37i4OMXFxTmnY2JiJEnx8fGKj4/PnJ2B20o6xhxruBPqEu6GmoQ7oi7hbqjJ7CUjx9lhjDEWx/KPeHt7q0aNGtq4caOzrX///tqyZYs2bdqU5rKHDh3SxYsX9cMPP2jo0KGaNm2aHnvssRT7jhw5UqNGjUrWvmDBAvn7+/+znQAAAAAA3HViY2PVuXNnnT9/XkFBQWn2devgHRoaqqZNm+q9995zts2YMUNjxozRsWPH0r2eMWPGaN68edq3b1+K81M64x0SEqIzZ87c9APEnS8+Pl5RUVFq2rSpvLy8sno4gCTqEu6HmoQ7oi7hbqjJ7CUmJkb58+dPV/B260vN69Spkyws//bbbwoNDc3QehITE12C9Y18fHzk4+OTrN3Ly4svTDbC8YY7oi7hbqhJuCPqEu6GmsweMnKM3Tp4P/fcc7r//vs1btw4dezYUT/++KNmzZqlWbNmOfsMGzZMx44d0wcffCBJmj59uooXL64yZcpIktavX68333xT/fv3z5J9AAAAAABkb24dvO+77z59/vnnGjZsmEaPHq2wsDBNnjxZXbp0cfY5ceKEjhw54pxOTEzUsGHDdOjQIeXIkUPh4eGaMGGC+vTpkxW7AAAAAADI5tw6eEtSq1at1KpVq1Tnz50712X62Wef1bPPPmt5VAAAAAAApI9bv8cbAAAAAIA7HcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWOT2wfvYsWN6/PHHlS9fPvn5+alixYraunVrqv0XL16spk2bKjg4WEFBQapdu7ZWrFhxG0cMAAAAAMD/cevgffbsWdWpU0deXl765ptvtHv3bk2cOFF58uRJdZn169eradOm+vrrr7Vt2zY1atRIrVu31o4dO27jyAEAAAAAuCZHVg8gLRMmTFBISIjmzJnjbAsLC0tzmcmTJ7tMjxs3TkuXLtWXX36pqlWr2hgmAAAAAACpcusz3l988YVq1KihRx55RAUKFFDVqlX17rvvZmgdiYmJunDhgvLmzWtplAAAAAAApM6tz3gfPHhQM2bM0KBBg/Tiiy9qy5Yt6t+/v7y9vRUZGZmudbz55pu6ePGiOnbsmGqfuLg4xcXFOadjYmIkSfHx8YqPj/9nOwG3l3SMOdZwJ9Ql3A01CXdEXcLdUJPZS0aOs8MYYyyO5R/x9vZWjRo1tHHjRmdb//79tWXLFm3atOmmyy9YsEC9evXS0qVL1aRJk1T7jRw5UqNGjUpxeX9//1sbPAAAAADgrhUbG6vOnTvr/PnzCgoKSrOvW5/xLly4sMqVK+fSVrZsWS1atOimy3788cfq2bOnPvvsszRDtyQNGzZMgwYNck7HxMQoJCREzZo1u+kHiDtffHy8oqKi1LRpU3l5eWX1cABJ1CXcDzUJd0Rdwt1Qk9lL0pXS6eHWwbtOnTrat2+fS9tvv/2m0NDQNJf76KOP9OSTT+rjjz9Wy5Ytb7odHx8f+fj4JGv38vLiC5ONcLzhjqhLuBtqEu6IuoS7oSazh4wcY7d+uNpzzz2nH374QePGjdPvv/+uBQsWaNasWerbt6+zz7Bhw9S1a1fn9IIFC9S1a1dNnDhRtWrV0smTJ3Xy5EmdP38+K3YBAAAAAJDNuXXwvu+++/T555/ro48+UoUKFfTqq69q8uTJ6tKli7PPiRMndOTIEef0rFmzdPXqVfXt21eFCxd2/gwYMCArdgEAAAAAkM259aXmktSqVSu1atUq1flz5851mV67dq3dAQEAAAAAkAFufcYbAAAAAIA7HcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAAsIjgDQAAAACARQRvAAAAAAAsIngDAAAAAGARwRsAAAAAAIsI3gAAAAAAWETwBgAAAADAIoI3AAAAAAAWEbwBAAAAALCI4A0AAAAAgEUEbwAAAAAALCJ4AwAAAABgEcEbAAAAAACLCN4AAAAAAFhE8AYAAAAAwCKCNwAAAAAAFhG8AQAAAACwiOANAAAAAIBFBG8AAAAAACwieAMAAAAAYBHBGwAAAAAAiwjeAAAAAABYRPAGAAAAAMAigjcAAAAAABYRvAEAAAAA+H/s3XmYV2X9P/7nAMOwKCKIIYqAgDsCavZRSXFBxSWVzF3RXMtSIRcoF7CM9KOGqWmaiaZmpuhHLZdxJcslUyyXVBTDRMMdAcUR3r8//DFfxwEEZg68Bx6P65rr4tznvO/7PnNeMxfPOVuBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIAClX3wfv3113PwwQenY8eOad26dfr06ZMnnnhigdu/8cYbOfDAA7PuuuumWbNmOfHEE5feZAEAAOALyjp4v/fee9l6661TWVmZO++8M88991zOP//8rLrqqgv8zOzZs9OpU6ecdtpp6du371KcLQAAANTXYllPYGHOOeecdO3aNVdddVVtW48ePRb6me7du+fCCy9MkvzmN78pdH4AAADwZcr6jPdtt92WzTffPN/61rey+uqrp3///rniiiuW9bQAAABgkZX1Ge9XXnkll156aYYPH54f/vCH+dvf/pbjjz8+LVu2zNChQxttnNmzZ2f27Nm1y9OnT0+S1NTUpKamptHGoTzNO8aONeVEXVJu1CTlSF1SbtTkimVxjnNFqVQqFTiXBmnZsmU233zz/PWvf61tO/744/O3v/0tjzzyyJd+fuDAgenXr1/Gjh270O1GjRqV0aNH12u//vrr06ZNm8WeNwAAAMu3WbNm5cADD8wHH3yQdu3aLXTbsj7jvcYaa2TDDTes07bBBhvk5ptvbtRxRo4cmeHDh9cuT58+PV27ds1OO+30pd9Amr6amppUV1dn0KBBqaysXNbTgSTqkvKjJilH6pJyoyZXLPOulF4UZR28t95667zwwgt12l588cV069atUcepqqpKVVVVvfbKyko/MCsQx5typC4pN2qScqQuKTdqcsWwOMe4rIP3sGHDstVWW+WnP/1p9t133zz++OO5/PLLc/nll9duM3LkyLz++uu55ppratsmTpyYJJkxY0beeuutTJw4MS1btqx39hwAAACKVtbB+6tf/WpuueWWjBw5MmeddVZ69OiRsWPH5qCDDqrd5o033siUKVPqfK5///61//773/+e66+/Pt26dcurr766tKYOAAAASco8eCfJ7rvvnt13332B68eNG1evrYyfFwcAAMAKpqzf4w0AAABNneANAAAABRK8AQAAoEBLLXi///77S2soAAAAKBuFBO9zzjknv//972uX991333Ts2DFrrrlmnn766SKGBAAAgLJUSPC+7LLL0rVr1yRJdXV1qqurc+edd2bw4ME5+eSTixgSAAAAylIhrxN78803a4P3HXfckX333Tc77bRTunfvnq997WtFDAkAAABlqZAz3quuumpee+21JMldd92VHXfcMcln79eeM2dOEUMCAABAWSrkjPeQIUNy4IEHpnfv3nnnnXcyePDgJMlTTz2VXr16FTEkAAAAlKVCgvfPf/7zdO/ePa+99lrOPffcrLTSSkmSN954I9/97neLGBIAAADKUiHBu7KyMieddFK99mHDhhUxHAAAAJStwt7j/dvf/jYDBgxIly5d8u9//ztJMnbs2Pzf//1fUUMCAABA2SkkeF966aUZPnx4Bg8enPfff7/2gWrt27fP2LFjixgSAAAAylIhwfuiiy7KFVdckR/96Edp3rx5bfvmm2+ef/7zn0UMCQAAAGWpkOA9efLk9O/fv157VVVVZs6cWcSQAAAAUJYKCd49evTIxIkT67Xfdddd2WCDDYoYEgAAAMpSIU81Hz58eI477rh8/PHHKZVKefzxx/O73/0uY8aMya9//esihgQAAICyVEjwPvLII9O6deucdtppmTVrVg488MB06dIlF154Yfbff/8ihgQAAICy1OjB+9NPP83111+fnXfeOQcddFBmzZqVGTNmZPXVV2/soQAAAKDsNfo93i1atMixxx6bjz/+OEnSpk0boRsAAIAVViEPV9tiiy3y1FNPFdE1AAAANCmF3OP93e9+Nz/4wQ/yn//8J5tttlnatm1bZ/0mm2xSxLAAAABQdgoJ3vMeoHb88cfXtlVUVKRUKqWioiJz5swpYlgAAAAoO4UE78mTJxfRLQAAADQ5hQTvbt26FdEtAAAANDmFBO9rrrlmoesPPfTQIoYFAACAslNI8D7hhBPqLNfU1GTWrFlp2bJl2rRpI3gDAACwwijkdWLvvfdena8ZM2bkhRdeyIABA/K73/2uiCEBAACgLBUSvOend+/e+dnPflbvbDgAAAAsz5Za8E6SFi1aZOrUqUtzSAAAAFimCrnH+7bbbquzXCqV8sYbb+Tiiy/O1ltvXcSQAAAAUJYKCd577bVXneWKiop06tQp22+/fc4///wihgQAAICyVEjwnjt3bhHdAgAAQJNTyD3eZ511VmbNmlWv/aOPPspZZ51VxJAAAABQlgoJ3qNHj86MGTPqtc+aNSujR48uYkgAAAAoS4UE71KplIqKinrtTz/9dDp06FDEkAAAAFCWGvUe71VXXTUVFRWpqKjIuuuuWyd8z5kzJzNmzMixxx7bmEMCAABAWWvU4D127NiUSqV8+9vfzujRo7PKKqvUrmvZsmW6d++eLbfcsjGHBAAAgLLWqMF76NChSZIePXpkq622SmVlZWN2DwAAAE1OIa8T23bbbWv//fHHH+eTTz6ps75du3ZFDAsAAABlp5CHq82aNSvf+973svrqq6dt27ZZddVV63wBAADAiqKQ4H3yySfn/vvvz6WXXpqqqqr8+te/zujRo9OlS5dcc801RQwJAAAAZamQS81vv/32XHPNNRk4cGAOP/zwfP3rX0+vXr3SrVu3XHfddTnooIOKGBYAAADKTiFnvN99992ss846ST67n/vdd99NkgwYMCATJkwoYkgAAAAoS4UE73XWWSeTJ09Okqy//vq58cYbk3x2Jrx9+/ZFDAkAAABlqZDgffjhh+fpp59OkowYMSKXXHJJWrVqlWHDhuXkk08uYkgAAAAoS4Xc4z1s2LDaf++4447517/+lb///e/p1atXNtlkkyKGBAAAgLJUSPD+vI8//jjdunVLt27dih4KAAAAyk4hl5rPmTMnP/7xj7PmmmtmpZVWyiuvvJIkOf3003PllVcWMSQAAACUpUKC99lnn51x48bl3HPPTcuWLWvbN9544/z6178uYkgAAAAoS4UE72uuuSaXX355DjrooDRv3ry2vW/fvvnXv/5VxJAAAABQlgoJ3q+//np69epVr33u3LmpqakpYkgAAAAoS4UE7w033DB//vOf67XfdNNN6d+/fxFDAgAAQFkq5KnmZ5xxRoYOHZrXX389c+fOzfjx4/PCCy/kmmuuyR133FHEkAAAAFCWCjnjveeee+b222/Pvffem7Zt2+aMM87I888/n9tvvz2DBg0qYkgAAAAoS416xvuVV15Jjx49UlFRka9//euprq5uzO4BAACgyWnUM969e/fOW2+9Vbu833775b///W9jDgEAAABNSqMG71KpVGf5T3/6U2bOnNmYQwAAAECTUsg93gAAAMBnGjV4V1RUpKKiol4bAAAArKga9eFqpVIphx12WKqqqpIkH3/8cY499ti0bdu2znbjx49vzGEBAACgbDVq8B46dGid5YMPPrgxuwcAAIAmp1GD91VXXdWY3QEAAECT5+FqAAAAUCDBGwAAAAokeAMAAECBBG8AAAAoUKMF70033TTvvfdekuSss87KrFmzGqXf119/PQcffHA6duyY1q1bp0+fPnniiScW+pkHH3wwm266aaqqqtKrV6+MGzeuUeYCACukOXNS8dBDWXPChFQ89FAyZ86ynhEANCmNFryff/75zJw5M0kyevTozJgxo8F9vvfee9l6661TWVmZO++8M88991zOP//8rLrqqgv8zOTJk7Pbbrtlu+22y8SJE3PiiSfmyCOPzN13393g+QDACmf8+KR797QYNCibX3BBWgwalHTv/lk7ALBIGu11Yv369cvhhx+eAQMGpFQq5bzzzstKK600323POOOMRerznHPOSdeuXeu8pqxHjx4L/cxll12WHj165Pzzz0+SbLDBBnn44Yfz85//PDvvvPMi7g0AkPHjk332SUqluu2vv/5Z+003JUOGLJu5AUAT0mhnvMeNG5eOHTvmjjvuSEVFRe68887ccsst9b5uvfXWRe7ztttuy+abb55vfetbWX311dO/f/9cccUVC/3MI488kh133LFO284775xHHnlkSXYLAFZMc+YkJ5xQP3Qn/6/txBNddg4Ai6DRznivt956ueGGG5IkzZo1y3333ZfVV1+9QX2+8sorufTSSzN8+PD88Ic/zN/+9rccf/zxadmyZYYOHTrfz7z55pv5yle+UqftK1/5SqZPn56PPvoorVu3rveZ2bNnZ/bs2bXL06dPT5LU1NSkpqamQftA+Zt3jB1ryom6ZFmreOihtPjPfxa8QamUvPZaPn3ggZS23XbpTQw+x+9Kyo2aXLEsznFutOD9eXPnzm20fjbffPP89Kc/TZL0798/zzzzTC677LIFBu8lMWbMmIwePbpe+z333JM2bdo02jiUt+rq6mU9BahHXbKsrDlhQjZfhO0m3nlnXv//n/ECy4rflZQbNbliWJwHihcSvJPk5ZdfztixY/P8888nSTbccMOccMIJ6dmz5yL3scYaa2TDDTes07bBBhvk5ptvXuBnOnfunP/+97912v773/+mXbt28z3bnSQjR47M8OHDa5enT5+erl27Zqeddkq7du0Web40TTU1Namurs6gQYNSWVm5rKcDSdQly15F27bJBRd86Xb9Bg9OX2e8WUb8rqTcqMkVy7wrpRdFIcH77rvvzje+8Y3069cvW2+9dZLkL3/5SzbaaKPcfvvtGTRo0CL1s/XWW+eFF16o0/biiy+mW7duC/zMlltumT/96U912qqrq7Plllsu8DNVVVWpqqqq115ZWekHZgXieFOO1CXLzHbbJWut9dmD1OZ3n3dFRbLWWmmx3XZJ8+ZLf37wOX5XUm7U5IphcY5xoz1c7fNGjBiRYcOG5bHHHssFF1yQCy64II899lhOPPHEnHrqqYvcz7Bhw/Loo4/mpz/9aSZNmpTrr78+l19+eY477rjabUaOHJlDDz20dvnYY4/NK6+8klNOOSX/+te/8stf/jI33nhjhg0b1qj7CADLtebNkwsv/OzfFRV1181bHjtW6AaARVBI8H7++edzxBFH1Gv/9re/neeee26R+/nqV7+aW265Jb/73e+y8cYb58c//nHGjh2bgw46qHabN954I1OmTKld7tGjR/74xz+muro6ffv2zfnnn59f//rXXiUGAItryJDPXhm25pp129day6vEAGAxFHKpeadOnTJx4sT07t27TvvEiRMX+0nnu+++e3bfffcFrh83bly9toEDB+app55arHEAgPkYMiTZc898+sADmXjnnek3eLDLywFgMRUSvI866qgcffTReeWVV7LVVlsl+ewe73POOafOQ8wAgCagefOUtt02r8+c+dmD1IRuAFgshQTv008/PSuvvHLOP//8jBw5MknSpUuXjBo1Kscff3wRQwIAAEBZKiR4V1RUZNiwYRk2bFg+/PDDJMnKK69cxFAAAABQ1gp7j/c8AjcAAAArskKeag4AAAB8RvAGAACAAgneAAAAUKBGD941NTXZYYcd8tJLLzV21wAAANDkNHrwrqyszD/+8Y/G7hYAAACapEIuNT/44INz5ZVXFtE1AAAANCmFvE7s008/zW9+85vce++92WyzzdK2bds66y+44IIihgUAAICyU0jwfuaZZ7LpppsmSV588cU66yoqKooYEgAAAMpSIcH7gQceKKJbAAAAaHIKfZ3YpEmTcvfdd+ejjz5KkpRKpSKHAwAAgLJTSPB+5513ssMOO2TdddfNrrvumjfeeCNJcsQRR+QHP/hBEUMCAABAWSokeA8bNiyVlZWZMmVK2rRpU9u+33775a677ipiSAAAAChLhdzjfc899+Tuu+/OWmutVae9d+/e+fe//13EkAAAAFCWCjnjPXPmzDpnuud59913U1VVVcSQAAAAUJYKCd5f//rXc80119QuV1RUZO7cuTn33HOz3XbbFTEkAAAAlKVCLjU/99xzs8MOO+SJJ57IJ598klNOOSXPPvts3n333fzlL38pYkgAAAAoS4Wc8d54443z4osvZsCAAdlzzz0zc+bMDBkyJE899VR69uxZxJAAAABQlgo5450kq6yySn70ox8V1T0AAAA0CYUF7/feey9XXnllnn/++STJhhtumMMPPzwdOnQoakgAAAAoO4Vcaj5hwoR07949v/jFL/Lee+/lvffeyy9+8Yv06NEjEyZMKGJIAAAAKEuFnPE+7rjjst9+++XSSy9N8+bNkyRz5szJd7/73Rx33HH55z//WcSwAAAAUHYKOeM9adKk/OAHP6gN3UnSvHnzDB8+PJMmTSpiSAAAAChLhQTvTTfdtPbe7s97/vnn07dv3yKGBAAAgLLUaJea/+Mf/6j99/HHH58TTjghkyZNyv/8z/8kSR599NFccskl+dnPftZYQwIAAEDZa7Tg3a9fv1RUVKRUKtW2nXLKKfW2O/DAA7Pffvs11rAAAABQ1hoteE+ePLmxugIAAIDlRqMF727dujVWVwAAALDcKOR1YkkyderUPPzww5k2bVrmzp1bZ93xxx9f1LAAAABQVgoJ3uPGjcsxxxyTli1bpmPHjqmoqKhdV1FRIXgDAACwwigkeJ9++uk544wzMnLkyDRrVsgbywAAAKBJKCQVz5o1K/vvv7/QDQAAwAqvkGR8xBFH5A9/+EMRXQMAAECTUsil5mPGjMnuu++eu+66K3369EllZWWd9RdccEERwwIAAEDZKSx433333VlvvfWSpN7D1QAAAGBFUUjwPv/88/Ob3/wmhx12WBHdAwAAQJNRyD3eVVVV2XrrrYvoGgAAAJqUQoL3CSeckIsuuqiIrgEAAKBJKeRS88cffzz3339/7rjjjmy00Ub1Hq42fvz4IoYFAACAslNI8G7fvn2GDBlSRNcAAADQpBQSvK+66qoiugUAAIAmp5B7vAEAAIDPFHLGu0ePHgt9X/crr7xSxLAAAABQdgoJ3ieeeGKd5Zqamjz11FO56667cvLJJxcxJAAAAJSlQoL3CSecMN/2Sy65JE888UQRQwIAAEBZWqr3eA8ePDg333zz0hwSAAAAlqmlGrxvuummdOjQYWkOCQAAAMtUIZea9+/fv87D1UqlUt5888289dZb+eUvf1nEkAAAAFCWCgnee+21V53lZs2apVOnThk4cGDWX3/9IoYEAACAslRI8D7zzDOL6BYAAACanKV6jzcAAACsaBr1jHezZs3q3Ns9PxUVFfn0008bc1gAAAAoW40avG+55ZYFrnvkkUfyi1/8InPnzm3MIQEAAKCsNWrw3nPPPeu1vfDCCxkxYkRuv/32HHTQQTnrrLMac0gAAAAoa4Xd4z116tQcddRR6dOnTz799NNMnDgxV199dbp161bUkAAAAFB2Gj14f/DBBzn11FPTq1evPPvss7nvvvty++23Z+ONN27soQAAAKDsNeql5ueee27OOeecdO7cOb/73e/me+k5AAAArEgaNXiPGDEirVu3Tq9evXL11Vfn6quvnu9248ePb8xhAQAAoGw1avA+9NBDv/R1YgAAALAiadTgPW7cuMbsDgAAAJq8wp5qDgAAAAjeAAAAUCjBGwAAAAokeAMAAECByjp4jxo1KhUVFXW+1l9//QVuX1NTk7POOis9e/ZMq1at0rdv39x1111LccYAAABQV6M+1bwIG220Ue69997a5RYtFjzl0047Lddee22uuOKKrL/++rn77ruz9957569//Wv69++/NKYLAAAAdZR98G7RokU6d+68SNv+9re/zY9+9KPsuuuuSZLvfOc7uffee3P++efn2muvLXKaAAAAMF9lH7xfeumldOnSJa1atcqWW26ZMWPGZO21157vtrNnz06rVq3qtLVu3ToPP/zwQseYPXt2Zs+eXbs8ffr0JJ9dul5TU9PAPaDczTvGjjXlRF1SbtQk5UhdUm7U5IplcY5zRalUKhU4lwa58847M2PGjKy33np54403Mnr06Lz++ut55plnsvLKK9fb/sADD8zTTz+dW2+9NT179sx9992XPffcM3PmzKkTrL9o1KhRGT16dL3266+/Pm3atGnUfQIAAKDpmzVrVg488MB88MEHadeu3UK3Levg/UXvv/9+unXrlgsuuCBHHHFEvfVvvfVWjjrqqNx+++2pqKhIz549s+OOO+Y3v/lNPvroowX2O78z3l27ds3bb7/9pd9Amr6amppUV1dn0KBBqaysXNbTgSTqkvKjJilH6pJyoyZXLNOnT89qq622SMG77C81/7z27dtn3XXXzaRJk+a7vlOnTrn11lvz8ccf55133kmXLl0yYsSIrLPOOgvtt6qqKlVVVfXaKysr/cCsQBxvypG6pNyoScqRuqTcqMkVw+Ic47J+ndgXzZgxIy+//HLWWGONhW7XqlWrrLnmmvn0009z8803Z88991xKMwQAAIC6yjp4n3TSSXnooYfy6quv5q9//Wv23nvvNG/ePAcccECS5NBDD83IkSNrt3/ssccyfvz4vPLKK/nzn/+cXXbZJXPnzs0pp5yyrHYBAACAFVxZX2r+n//8JwcccEDeeeeddOrUKQMGDMijjz6aTp06JUmmTJmSZs3+398OPv7445x22ml55ZVXstJKK2XXXXfNb3/727Rv334Z7QEAAAArurIO3jfccMNC1z/44IN1lrfddts899xzBc4IAAAAFk9ZX2oOAAAATZ3gDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQGUdvEeNGpWKioo6X+uvv/5CPzN27Nist956ad26dbp27Zphw4bl448/XkozBgAAgLpaLOsJfJmNNtoo9957b+1yixYLnvL111+fESNG5De/+U222mqrvPjiiznssMNSUVGRCy64YGlMFwAAAOoo++DdokWLdO7ceZG2/etf/5qtt946Bx54YJKke/fuOeCAA/LYY48VOUUAAABYoLIP3i+99FK6dOmSVq1aZcstt8yYMWOy9tprz3fbrbbaKtdee20ef/zxbLHFFnnllVfypz/9KYcccshCx5g9e3Zmz55duzx9+vQkSU1NTWpqahpvZyhL846xY005UZeUGzVJOVKXlBs1uWJZnONcUSqVSgXOpUHuvPPOzJgxI+utt17eeOONjB49Oq+//nqeeeaZrLzyyvP9zC9+8YucdNJJKZVK+fTTT3Psscfm0ksvXeg4o0aNyujRo+u1X3/99WnTpk2j7AsAAADLj1mzZuXAAw/MBx98kHbt2i1027IO3l/0/vvvp1u3brngggtyxBFH1Fv/4IMPZv/9989PfvKTfO1rX8ukSZNywgkn5Kijjsrpp5++wH7nd8a7a9euefvtt7/0G0jTV1NTk+rq6gwaNCiVlZXLejqQRF1SftQk5UhdUm7U5Ipl+vTpWW211RYpeJf9peaf1759+6y77rqZNGnSfNeffvrpOeSQQ3LkkUcmSfr06ZOZM2fm6KOPzo9+9KM0azb/h7hXVVWlqqqqXntlZaUfmBWI4005UpeUGzVJOVKXlBs1uWJYnGNc1q8T+6IZM2bk5ZdfzhprrDHf9bNmzaoXrps3b54kaUIn9gEAAFiOlHXwPumkk/LQQw/l1VdfzV//+tfsvffead68eQ444IAkyaGHHpqRI0fWbr/HHnvk0ksvzQ033JDJkyenuro6p59+evbYY4/aAA4AAABLU1lfav6f//wnBxxwQN5555106tQpAwYMyKOPPppOnTolSaZMmVLnDPdpp52WioqKnHbaaXn99dfTqVOn7LHHHjn77LOX1S4AAACwgivr4H3DDTcsdP2DDz5YZ7lFixY588wzc+aZZxY4KwAAAFh0ZX2pOQAAADR1gjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAKVffAeNWpUKioq6nytv/76C9x+4MCB9bavqKjIbrvtthRnDQAAAJ9psawnsCg22mij3HvvvbXLLVoseNrjx4/PJ598Urv8zjvvpG/fvvnWt75V6BwBAABgfppE8G7RokU6d+68SNt26NChzvINN9yQNm3aCN4AAAAsE00ieL/00kvp0qVLWrVqlS233DJjxozJ2muvvUifvfLKK7P//vunbdu2C9xm9uzZmT17du3y9OnTkyQ1NTWpqalp2OQpe/OOsWNNOVGXlBs1STlSl5QbNbliWZzjXFEqlUoFzqXB7rzzzsyYMSPrrbde3njjjYwePTqvv/56nnnmmay88soL/ezjjz+er33ta3nssceyxRZbLHC7UaNGZfTo0fXar7/++rRp06bB+wAAAMDyZdasWTnwwAPzwQcfpF27dgvdtuyD9xe9//776datWy644IIcccQRC932mGOOySOPPJJ//OMfC91ufme8u3btmrfffvtLv4E0fTU1Namurs6gQYNSWVm5rKcDSdQl5UdNUo7UJeVGTa5Ypk+fntVWW22RgneTuNT889q3b5911103kyZNWuh2M2fOzA033JCzzjrrS/usqqpKVVVVvfbKyko/MCsQx5typC4pN2qScqQuKTdqcsWwOMe47F8n9kUzZszIyy+/nDXWWGOh2/3hD3/I7Nmzc/DBBy+lmQEAAEB9ZR+8TzrppDz00EN59dVX89e//jV77713mjdvngMOOCBJcuihh2bkyJH1PnfllVdmr732SseOHZf2lAEAAKBW2V9q/p///CcHHHBA3nnnnXTq1CkDBgzIo48+mk6dOiVJpkyZkmbN6v794IUXXsjDDz+ce+65Z1lMGQAAAGqVffC+4YYbFrr+wQcfrNe23nrrpYk9Mw4AAIDlVNlfag4AAABNmeANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgVos6wmUo1KplCSZPn36Mp4JS0NNTU1mzZqV6dOnp7KycllPB5KoS8qPmqQcqUvKjZpcsczLi/Py48II3vPx4YcfJkm6du26jGcCAABAOfvwww+zyiqrLHSbitKixPMVzNy5czN16tSsvPLKqaioWNbToWDTp09P165d89prr6Vdu3bLejqQRF1SftQk5UhdUm7U5IqlVCrlww8/TJcuXdKs2cLv4nbGez6aNWuWtdZaa1lPg6WsXbt2fkFSdtQl5UZNUo7UJeVGTa44vuxM9zwergYAAAAFErwBAACgQII3K7yqqqqceeaZqaqqWtZTgVrqknKjJilH6pJyoyZZEA9XAwAAgAI54w0AAAAFErwBAACgQII3AAAAFEjwZrl0ySWXpHv37mnVqlW+9rWv5fHHH1/gtjU1NTnrrLPSs2fPtGrVKn379s1dd91Vb7vXX389Bx98cDp27JjWrVunT58+eeKJJ4rcDZYjjV2Tc+bMyemnn54ePXqkdevW6dmzZ3784x/HYztYFBMmTMgee+yRLl26pKKiIrfeeuuXfubBBx/MpptumqqqqvTq1Svjxo2rt83i1Dl8URF1OWbMmHz1q1/NyiuvnNVXXz177bVXXnjhhWJ2gOVOUb8r5/nZz36WioqKnHjiiY02Z8qX4M1y5/e//32GDx+eM888M08++WT69u2bnXfeOdOmTZvv9qeddlp+9atf5aKLLspzzz2XY489NnvvvXeeeuqp2m3ee++9bL311qmsrMydd96Z5557Lueff35WXXXVpbVbNGFF1OQ555yTSy+9NBdffHGef/75nHPOOTn33HNz0UUXLa3dogmbOXNm+vbtm0suuWSRtp88eXJ22223bLfddpk4cWJOPPHEHHnkkbn77rtrt1ncOocvKqIuH3rooRx33HF59NFHU11dnZqamuy0006ZOXNmUbvBcqSImpznb3/7W371q19lk002aexpU65KsJzZYostSscdd1zt8pw5c0pdunQpjRkzZr7br7HGGqWLL764TtuQIUNKBx10UO3yqaeeWhowYEAxE2a5V0RN7rbbbqVvf/vbC90GFkWS0i233LLQbU455ZTSRhttVKdtv/32K+288861y4tb57AwjVWXXzRt2rRSktJDDz3UGNNkBdKYNfnhhx+WevfuXaquri5tu+22pRNOOKGRZ0s5csab5conn3ySv//979lxxx1r25o1a5Ydd9wxjzzyyHw/M3v27LRq1apOW+vWrfPwww/XLt92223ZfPPN861vfSurr756+vfvnyuuuKKYnWC5UlRNbrXVVrnvvvvy4osvJkmefvrpPPzwwxk8eHABe8GK7pFHHqlTw0my884719bwktQ5NNSX1eX8fPDBB0mSDh06FDo3VkyLWpPHHXdcdtttt3rbsnwTvFmuvP3225kzZ06+8pWv1Gn/yle+kjfffHO+n9l5551zwQUX5KWXXsrcuXNTXV2d8ePH54033qjd5pVXXsmll16a3r175+677853vvOdHH/88bn66qsL3R+avqJqcsSIEdl///2z/vrrp7KyMv3798+JJ56Ygw46qND9YcX05ptvzreGp0+fno8++miJ6hwa6svq8ovmzp2bE088MVtvvXU23njjpTVNViCLUpM33HBDnnzyyYwZM2ZZTJFlSPBmhXfhhRemd+/eWX/99dOyZct873vfy+GHH55mzf7fj8fcuXOz6aab5qc//Wn69++fo48+OkcddVQuu+yyZThzlleLUpM33nhjrrvuulx//fV58sknc/XVV+e8887zxyCABTjuuOPyzDPP5IYbbljWU2EF9dprr+WEE07IddddV+/KNpZ/gjfLldVWWy3NmzfPf//73zrt//3vf9O5c+f5fqZTp0659dZbM3PmzPz73//Ov/71r6y00kpZZ511ardZY401suGGG9b53AYbbJApU6Y0/k6wXCmqJk8++eTas959+vTJIYcckmHDhvkLOoXo3LnzfGu4Xbt2ad269RLVOTTUl9Xl533ve9/LHXfckQceeCBrrbXW0pwmK5Avq8m///3vmTZtWjbddNO0aNEiLVq0yEMPPZRf/OIXadGiRebMmbOMZs7SIHizXGnZsmU222yz3HfffbVtc+fOzX333Zctt9xyoZ9t1apV1lxzzXz66ae5+eabs+eee9au23rrreu9fuTFF19Mt27dGncHWO4UVZOzZs2qcwY8SZo3b565c+c27g5Aki233LJODSdJdXV1bQ03pM5hSX1ZXSZJqVTK9773vdxyyy25//7706NHj6U9TVYgX1aTO+ywQ/75z39m4sSJtV+bb755DjrooEycODHNmzdfFtNmaVnWT3eDxnbDDTeUqqqqSuPGjSs999xzpaOPPrrUvn370ptvvlkqlUqlQw45pDRixIja7R999NHSzTffXHr55ZdLEyZMKG2//falHj16lN57773abR5//PFSixYtSmeffXbppZdeKl133XWlNm3alK699tqlvXs0QUXU5NChQ0trrrlm6Y477ihNnjy5NH78+NJqq61WOuWUU5b27tEEffjhh6Wnnnqq9NRTT5WSlC644ILSU089Vfr3v/9dKpVKpREjRpQOOeSQ2u1feeWVUps2bUonn3xy6fnnny9dcsklpebNm5fuuuuu2m2+rM7hyxRRl9/5zndKq6yySunBBx8svfHGG7Vfs2bNWur7R9NTRE1+kaearzgEb5ZLF110UWnttdcutWzZsrTFFluUHn300dp12267bWno0KG1yw8++GBpgw02KFVVVZU6duxYOuSQQ0qvv/56vT5vv/320sYbb1yqqqoqrb/++qXLL798aewKy4nGrsnp06eXTjjhhNLaa69datWqVWmdddYp/ehHPyrNnj17ae0STdgDDzxQSlLva14dDh06tLTtttvW+0y/fv1KLVu2LK2zzjqlq666ql6/C6tz+DJF1OX8+ksy3/qFLyrqd+XnCd4rjopSqVRaeufXAQAAYMXiHm8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AK6jDDjssFRUVqaioSGVlZXr06JFTTjklH3/88bKeGgAsV1os6wkAAMvOLrvskquuuio1NTX5+9//nqFDh6aioiLnnHPOsp4aACw3nPEGgBVYVVVVOnfunK5du2avvfbKjjvumOrq6iRJ9+7dM3bs2Drb9+vXL6NGjapdrqioyK9//evsvffeadOmTXr37p3bbrttKe4BAJQ/wRsASJI888wz+etf/5qWLVsu1udGjx6dfffdN//4xz+y66675qCDDsq7775b0CwBoOkRvAFgBXbHHXdkpZVWSqtWrdKnT59MmzYtJ5988mL1cdhhh+WAAw5Ir1698tOf/jQzZszI448/XtCMAaDpcY83AKzAtttuu1x66aWZOXNmfv7zn6dFixb55je/uVh9bLLJJrX/btu2bdq1a5dp06Y19lQBoMlyxhsAVmBt27ZNr1690rdv3/zmN7/JY489liuvvDJJ0qxZs5RKpTrb19TU1OujsrKyznJFRUXmzp1b3KQBoIkRvAGAJJ8F7R/+8Ic57bTT8tFHH6VTp0554403atdPnz49kydPXoYzBICmSfAGAGp961vfSvPmzXPJJZdk++23z29/+9v8+c9/zj//+c8MHTo0zZs3X9ZTBIAmxz3eAECtFi1a5Hvf+17OPffcvPTSS5k8eXJ23333rLLKKvnxj3/sjDcALIGK0hdv3gIAAAAajUvNAQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAi+3BBx9MRUVFbrrppmU9lUXy3//+N/vss086duyYioqKjB07tkH9zdv/Bx98sFHmtyDdu3fPYYcdttTHXZF98XsOAI1B8AYoU+PGjUtFRUVatWqV119/vd76gQMHZuONN14GM2t6hg0blrvvvjsjR47Mb3/72+yyyy4L3LaioqL2q1mzZunSpUt22mknYXchRo0aVef7tqCvgQMHNsp4f/rTnzJq1KhG6auh3n///bRq1SoVFRV5/vnnl/V0CjHvd9G8rxYtWmTNNdfMYYcdNt/fTQDU12JZTwCAhZs9e3Z+9rOf5aKLLlrWU2my7r///uy555456aSTFmn7QYMG5dBDD02pVMrkyZPzy1/+Mttvv33++Mc/ZvDgwdlmm23y0UcfpWXLlgXPvK5lNe6XGTJkSHr16lW7PGPGjHznO9/J3nvvnSFDhtS2f+UrX2mU8f70pz/lkksuKYvw/Yc//CEVFRXp3LlzrrvuuvzkJz9Z1lMqzFlnnZUePXrk448/zqOPPppx48bl4YcfzjPPPJNWrVot6+kBlDXBG6DM9evXL1dccUVGjhyZLl26LOvpLFUzZ85M27ZtG9zPtGnT0r59+0Xeft11183BBx9cu7z33ntnk002ydixYzN48OA0a9ZsmQSNZTXul9lkk02yySab1C6//fbb+c53vpNNNtmkzvdxeXTttddm1113Tbdu3XL99dc3WvAulUr5+OOP07p160bprzEMHjw4m2++eZLkyCOPzGqrrZZzzjknt912W/bdd99lPDuA8uZSc4Ay98Mf/jBz5szJz372s4Vu9+qrr6aioiLjxo2rt66ioqLO2cF5lwa/+OKLOfjgg7PKKqukU6dOOf3001MqlfLaa69lzz33TLt27dK5c+ecf/758x1zzpw5+eEPf5jOnTunbdu2+cY3vpHXXnut3naPPfZYdtlll6yyyipp06ZNtt122/zlL3+ps828OT333HM58MADs+qqq2bAgAEL3edXXnkl3/rWt9KhQ4e0adMm//M//5M//vGPtevnXSJbKpVyySWX1F4qu7j69OmT1VZbLZMnT04y/3ut5136//e//z1bbbVVWrdunR49euSyyy6r19/s2bNz5plnplevXqmqqkrXrl1zyimnZPbs2Qudx8LGfe6557LddtulTZs2WXPNNXPuuecu8bjV1dUZMGBA2rdvn5VWWinrrbdefvjDHy7Gd2z+/vWvf2WfffZJhw4d0qpVq2y++ea57bbb6mxTU1OT0aNHp3fv3mnVqlU6duyYAQMGpLq6Okly2GGH5ZJLLklS97aAeebOnZuxY8dmo402SqtWrfKVr3wlxxxzTN57770645RKpfzkJz/JWmutlTZt2mS77bbLs88+u1j7M2XKlPz5z3/O/vvvn/333z+TJ0/OX//61/lue+2112aLLbZImzZtsuqqq2abbbbJPffcU7u+e/fu2X333XP33Xdn8803T+vWrfOrX/0qyZfX+TwXXXRRNtpoo9oxNt9881x//fW16z/88MOceOKJ6d69e6qqqrL66qtn0KBBefLJJxdrv+f5+te/niR5+eWXa9sGDhw431sKDjvssHTv3r12ed7vq/POOy+XX355evbsmaqqqnz1q1/N3/72tzqfffPNN3P44YdnrbXWSlVVVdZYY43sueeeefXVV5do3gDLgjPeAGWuR48eOfTQQ3PFFVdkxIgRjXrWe7/99ssGG2yQn/3sZ/njH/+Yn/zkJ+nQoUN+9atfZfvtt88555yT6667LieddFK++tWvZptttqnz+bPPPjsVFRU59dRTM23atIwdOzY77rhjJk6cWHum7v7778/gwYOz2Wab5cwzz0yzZs1y1VVXZfvtt8+f//znbLHFFnX6/Na3vpXevXvnpz/9aUql0gLn/t///jdbbbVVZs2aleOPPz4dO3bM1VdfnW984xu56aabsvfee2ebbbbJb3/72xxyyCG1l48viffeey/vvfdencupF7Tdrrvumn333TcHHHBAbrzxxnznO99Jy5Yt8+1vfzvJZ8HwG9/4Rh5++OEcffTR2WCDDfLPf/4zP//5z/Piiy/m1ltvXaL57bLLLhkyZEj23Xff3HTTTTn11FPTp0+fDB48eLHGffbZZ7P77rtnk002yVlnnZWqqqpMmjSp3h9KFtezzz6brbfeOmuuuWZGjBiRtm3b5sYbb8xee+2Vm2++OXvvvXeSz/4AM2bMmBx55JHZYostMn369DzxxBN58sknM2jQoBxzzDGZOnVqqqur89vf/rbeOMccc0zGjRuXww8/PMcff3wmT56ciy++OE899VT+8pe/pLKyMklyxhln5Cc/+Ul23XXX7LrrrnnyySez00475ZNPPlnkffrd736Xtm3bZvfdd0/r1q3Ts2fPXHfdddlqq63qbDd69OiMGjUqW221Vc4666y0bNkyjz32WO6///7stNNOtdu98MILOeCAA3LMMcfkqKOOynrrrbdIdZ4kV1xxRY4//vjss88+OeGEE/Lxxx/nH//4Rx577LEceOCBSZJjjz02N910U773ve9lww03zDvvvJOHH344zz//fDbddNPFO6BJbfBdddVVF/uz81x//fX58MMPc8wxx6SioiLnnntuhgwZkldeeaX2WH3zm9/Ms88+m+9///vp3r17pk2blurq6kyZMqVOmAcoayUAytJVV11VSlL629/+Vnr55ZdLLVq0KB1//PG167fddtvSRhttVLs8efLkUpLSVVddVa+vJKUzzzyzdvnMM88sJSkdffTRtW2ffvppaa211ipVVFSUfvazn9W2v/fee6XWrVuXhg4dWtv2wAMPlJKU1lxzzdL06dNr22+88cZSktKFF15YKpVKpblz55Z69+5d2nnnnUtz586t3W7WrFmlHj16lAYNGlRvTgcccMAifX9OPPHEUpLSn//859q2Dz/8sNSjR49S9+7dS3PmzKmz/8cdd9wi9ZukdMQRR5Teeuut0rRp00qPPfZYaYcddiglKZ1//vl19v+BBx6o/dy2225bZ5tSqVSaPXt2qV+/fqXVV1+99Mknn5RKpVLpt7/9balZs2Z15l0qlUqXXXZZKUnpL3/5S21bt27d5vt9n9+411xzTZ1xO3fuXPrmN79Z27ao4/785z8vJSm99dZbi/T9mp+33nqrXs3tsMMOpT59+pQ+/vjj2ra5c+eWttpqq1Lv3r1r2/r27VvabbfdFtr/cccdV5rff2H+/Oc/l5KUrrvuujrtd911V532adOmlVq2bFnabbfd6tTlD3/4w1KSOt/zhenTp0/poIMOqvP51VZbrVRTU1Pb9tJLL5WaNWtW2nvvvevUZKlUqjN2t27dSklKd911V51tFrXO99xzzzq/D+ZnlVVWWeSfg8+b97vo3nvvLb311lul1157rXTTTTeVOnXqVKqqqiq99tprtdtuu+22pW233bZeH0OHDi1169atdnne76uOHTuW3n333dr2//u//yslKd1+++2lUumz3z9JSv/7v/+72PMGKCcuNQdoAtZZZ50ccsghufzyy/PGG280Wr9HHnlk7b+bN2+ezTffPKVSKUcccURte/v27bPeeuvllVdeqff5Qw89NCuvvHLt8j777JM11lgjf/rTn5IkEydOzEsvvZQDDzww77zzTt5+++28/fbbmTlzZnbYYYdMmDAhc+fOrdPnscceu0hz/9Of/pQtttiizuXoK620Uo4++ui8+uqree655xbtmzAfV155ZTp16pTVV189X/va1/KXv/wlw4cPz4knnrjQz7Vo0SLHHHNM7XLLli1zzDHHZNq0afn73/+e5LOHcW2wwQZZf/31a78fb7/9drbffvskyQMPPLDY811ppZXq3EvdsmXLbLHFFnWO2aKOO+9e+P/7v/+rd2yW1Lvvvpv7778/++67bz788MPasd95553svPPOeemll2qfjt2+ffs8++yzeemllxZ7nD/84Q9ZZZVVMmjQoDr7uNlmm2WllVaq3cd77703n3zySb7//e/XuUz9y47v5/3jH//IP//5zxxwwAG1bQcccEDefvvt3H333bVtt956a+bOnZszzjgjzZrV/W/XF2976NGjR3beeec6bYta5+3bt89//vOfepdpf1779u3z2GOPZerUqYu8n5+34447plOnTunatWv22WeftG3bNrfddlvWWmutJeov+eyqm8+fMZ93+fq82m3dunVatmyZBx98sN7tAgBNieAN0EScdtpp+fTTT7/0Xu/Fsfbaa9dZXmWVVdKqVausttpq9drn95/e3r1711muqKhIr169ai9BnReehg4dmk6dOtX5+vWvf53Zs2fngw8+qNNHjx49Fmnu//73v7PeeuvVa99ggw1q1y+pPffcM9XV1bn33nvz2GOP5e233875559fLzh9UZcuXeo9DG7ddddNkjrfk2effbbe92PedtOmTVvs+a611lr1Qtyqq65a55gt6rj77bdftt566xx55JH5yle+kv333z833nhjg0L4pEmTUiqVcvrpp9cb/8wzz6wz/llnnZX3338/6667bvr06ZOTTz45//jHPxZpnJdeeikffPBBVl999XrjzJgxo3aMebXxxfrt1KnTIl82fe2116Zt27ZZZ511MmnSpEyaNCmtWrVK9+7dc91119Vu9/LLL6dZs2bZcMMNv7TP+dX+otb5qaeempVWWilbbLFFevfuneOOO67e7QHnnntunnnmmXTt2jVbbLFFRo0aNd8/qC3IJZdckurq6tx0003Zdddd8/bbb6eqqmqRPz8/X/wdNO/7P692q6qqcs455+TOO+/MV77ylWyzzTY599xz8+abbzZoXIClzT3eAE3EOuusk4MPPjiXX355RowYUW/9gh4aNmfOnAX22bx580VqS7LQ+60XZF5Y+9///d/069dvvtustNJKdZbL4SnOa621VnbcccdC+p47d2769OmTCy64YL7ru3btuth9LsoxW9RxW7dunQkTJuSBBx7IH//4x9x11135/e9/n+233z733HPPAsdamHl1cNJJJ9U7ozvPvPvnt9lmm7z88sv5v//7v9xzzz359a9/nZ///Oe57LLL6lyhsaBxVl999TrB9/M6deq02HOfn1KplN/97neZOXPmfAP1tGnTMmPGjHq1/WUaUvsbbLBBXnjhhdxxxx256667cvPNN+eXv/xlzjjjjIwePTpJsu++++brX/96brnlltxzzz353//935xzzjkZP3587bMAFmaLLbaofar5XnvtlQEDBuTAAw/MCy+8ULuv8x5m+EUL+j20KLV74oknZo899sitt96au+++O6effnrGjBmT+++/P/379//SeQOUA8EboAk57bTTcu211+acc86pt27emaL333+/TntDzvx+mS9eDlwqlTJp0qTaV0v17NkzSdKuXbtGD7LdunXLCy+8UK/9X//6V+36pW3q1Kn1XoH24osvJkntQ6B69uyZp59+OjvssMMSPWF9SS3OuM2aNcsOO+yQHXbYIRdccEF++tOf5kc/+lEeeOCBJTqO66yzTpKksrJykT7foUOHHH744Tn88MMzY8aMbLPNNhk1alRt8F7Q/Hv27Jl77703W2+99UJD7LzaeOmll2rnliRvvfXWIl3O/NBDD+U///lPzjrrrNozz/O89957Ofroo3Prrbfm4IMPTs+ePTN37tw899xzC/zj08IsTp23bds2++23X/bbb7988sknGTJkSM4+++yMHDmy9jV0a6yxRr773e/mu9/9bqZNm5ZNN900Z5999iIF789r3rx5xowZk+222y4XX3xx7R8DV1111fmeRW/o76GePXvmBz/4QX7wgx/kpZdeSr9+/XL++efn2muvbVC/AEuLS80BmpCePXvm4IMPzq9+9at6l1q2a9cuq622WiZMmFCn/Ze//GVh87nmmmvy4Ycf1i7fdNNNeeONN2r/E7/ZZpulZ8+eOe+88zJjxox6n3/rrbeWeOxdd901jz/+eB555JHatpkzZ+byyy9P9+7dF+nS3sb26aef1r4CKkk++eST/OpXv0qnTp2y2WabJfnsrOPrr7+eK664ot7nP/roo8ycObOQuS3quO+++2699fMC45e97mxBVl999QwcODC/+tWv5vuMgs/XwTvvvFNn3UorrZRevXrVGXveHza++EemfffdN3PmzMmPf/zjemN8+umntdvvuOOOqayszEUXXVTnzOrYsWMXaX/mXWZ+8sknZ5999qnzddRRR6V37961Z9332muvNGvWLGeddVa9y/UX5SqSRa3zL37fWrZsmQ033DClUik1NTWZM2dOvds6Vl999XTp0mWJj+vAgQOzxRZbZOzYsfn444+TfPY76l//+ledY/r0008v8VPxZ82aVdv3PD179szKK6+8xPMGWBac8QZoYn70ox/lt7/9bV544YVstNFGddYdeeSR+dnPfpYjjzwym2++eSZMmFB7xrUIHTp0yIABA3L44Yfnv//9b8aOHZtevXrlqKOOSvLZmdNf//rXGTx4cDbaaKMcfvjhWXPNNfP666/ngQceSLt27XL77bcv0dgjRozI7373uwwePDjHH398OnTokKuvvjqTJ0/OzTff/KX3YxehS5cuOeecc/Lqq69m3XXXze9///tMnDgxl19+ee2rkQ455JDceOONOfbYY/PAAw9k6623zpw5c/Kvf/0rN954Y+17nBvboo571llnZcKECdltt93SrVu3TJs2Lb/85S+z1lprfel71RfmkksuyYABA9KnT58cddRRWWeddfLf//43jzzySP7zn//k6aefTpJsuOGGGThwYDbbbLN06NAhTzzxRO0rsOaZ90eM448/PjvvvHOaN2+e/fffP9tuu22OOeaYjBkzJhMnTsxOO+2UysrKvPTSS/nDH/6QCy+8MPvss086deqUk046KWPGjMnuu++eXXfdNU899VTuvPPOes83+KLZs2fn5ptvzqBBg2rPIn/RN77xjVx44YWZNm1aevXqlR/96Ef58Y9/nK9//esZMmRIqqqq8re//S1dunTJmDFjFjreotb5TjvtlM6dO2frrbfOV77ylTz//PO5+OKLs9tuu2XllVfO+++/n7XWWiv77LNP+vbtm5VWWin33ntv/va3v+X8889f5OP4RSeffHK+9a1vZdy4cTn22GPz7W9/OxdccEF23nnnHHHEEZk2bVouu+yybLTRRpk+ffpi9//iiy9mhx12yL777psNN9wwLVq0yC233JL//ve/2X///Zd43gBL3TJ6mjoAX+LzrxP7oqFDh5aS1Ht90KxZs0pHHHFEaZVVVimtvPLKpX333bc0bdq0Bb5O7IuvjBo6dGipbdu29cb74qvL5r3W6ne/+11p5MiRpdVXX73UunXr0m677Vb697//Xe/zTz31VGnIkCGljh07lqqqqkrdunUr7bvvvqX77rvvS+e0MC+//HJpn332KbVv377UqlWr0hZbbFG644476m2XxXyd2Jdtu6DXem200UalJ554orTllluWWrVqVerWrVvp4osvrvf5Tz75pHTOOeeUNtpoo1JVVVVp1VVXLW222Wal0aNHlz744IPa7Rb1dWLze43UF1/ftKjj3nfffaU999yz1KVLl1LLli1LXbp0KR1wwAGlF198caHfk8+b3+vESqXPjtehhx5a6ty5c6mysrK05pprlnbffffSTTfdVLvNT37yk9IWW2xRat++fal169al9ddfv3T22WfXvo6tVPrs1Xff//73S506dSpVVFTUe7XY5ZdfXtpss81KrVu3Lq288sqlPn36lE455ZTS1KlTa7eZM2dOafTo0aU11lij1Lp169LAgQNLzzzzTL3v+RfdfPPNpSSlK6+8coHbPPjgg3Veq1cqlUq/+c1vSv3796/9vm+77bal6urq2vXdunVb4GvUFqXOf/WrX5W22Wab2p+xnj17lk4++eTa4zp79uzSySefXOrbt29p5ZVXLrVt27bUt2/f0i9/+csF7sc8C/tdNGfOnFLPnj1LPXv2LH366aelUqlUuvbaa0vrrLNOqWXLlqV+/fqV7r777gW+Tmx+rwn7fO28/fbbpeOOO660/vrrl9q2bVtaZZVVSl/72tdKN95445fOG6CcVJRKS/C0HACgjoEDB+btt9/OM888s6ynAgCUGfd4AwAAQIEEbwAAACiQ4A0AAAAFco83AAAAFMgZbwAAACiQ4A0AAAAFarGsJ1CO5s6dm6lTp2bllVdORUXFsp4OAAAAZaZUKuXDDz9Mly5d0qzZws9pC97zMXXq1HTt2nVZTwMAAIAy99prr2WttdZa6DaC93ysvPLKST77BrZr124Zz4ai1dTU5J577slOO+2UysrKZT0dSKIuKT9qknKkLik3anLFMn369HTt2rU2Py6M4D0f8y4vb9euneC9AqipqUmbNm3Srl07vyApG+qScqMmKUfqknKjJldMi3J7soerAQAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAAChQ2QXvCRMmZI899kiXLl1SUVGRW2+9tXZdTU1NTj311PTp0ydt27ZNly5dcuihh2bq1Km127z66qs54ogj0qNHj7Ru3To9e/bMmWeemU8++WQZ7A0AAAArurIL3jNnzkzfvn1zySWX1Fs3a9asPPnkkzn99NPz5JNPZvz48XnhhRfyjW98o3abf/3rX5k7d25+9atf5dlnn83Pf/7zXHbZZfnhD3+4NHcDAAAAkiQtlvUEvmjw4MEZPHjwfNetssoqqa6urtN28cUXZ4sttsiUKVOy9tprZ5dddskuu+xSu36dddbJCy+8kEsvvTTnnXdeoXMHAACALyq7M96L64MPPkhFRUXat2+/0G06dOiw9CYFAAAA/7+yO+O9OD7++OOceuqpOeCAA9KuXbv5bjNp0qRcdNFFCz3bPXv27MyePbt2efr06Uk+u6e8pqamcSdN2Zl3jB1ryom6pNyoScqRuqTcqMkVy+Ic54pSqVQqcC4NUlFRkVtuuSV77bVXvXU1NTX55je/mf/85z958MEH5xu8X3/99Wy77bYZOHBgfv3rXy9wnFGjRmX06NH12q+//vq0adOmQfsAAADA8mfWrFk58MAD88EHHyzwRPA8TTJ419TUZN99980rr7yS+++/Px07dqz32alTp2bgwIH5n//5n4wbNy7Nmi34qvr5nfHu2rVr3n777S/9BtL01dTUpLq6OoMGDUplZeWyng4kUZeUHzVJOVKXlBs1uWKZPn16VltttUUK3k3uUvN5ofull17KAw88MN/Q/frrr2e77bbLZpttlquuumqhoTtJqqqqUlVVVa+9srLSD8wKxPGmHKlLyo2apBypS8qNmlwxLM4xLrvgPWPGjEyaNKl2efLkyZk4cWI6dOiQNdZYI/vss0+efPLJ3HHHHZkzZ07efPPNJEmHDh3SsmXLvP766xk4cGC6deuW8847L2+99VZtX507d17q+wMAAMCKreyC9xNPPJHtttuudnn48OFJkqFDh2bUqFG57bbbkiT9+vWr87kHHnggAwcOTHV1dSZNmpRJkyZlrbXWqrNNGV9VDwAAwHKq7IL3wIEDFxqQvyw8H3bYYTnssMMaeVYAAACwZJr8e7wBAACgnAneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKFDZBe8JEyZkjz32SJcuXVJRUZFbb721dl1NTU1OPfXU9OnTJ23btk2XLl1y6KGHZurUqXX6ePfdd3PQQQelXbt2ad++fY444ojMmDFjKe8JAAAAlGHwnjlzZvr27ZtLLrmk3rpZs2blySefzOmnn54nn3wy48ePzwsvvJBvfOMbdbY76KCD8uyzz6a6ujp33HFHJkyYkKOPPnpp7QIAAADUarGsJ/BFgwcPzuDBg+e7bpVVVkl1dXWdtosvvjhbbLFFpkyZkrXXXjvPP/987rrrrvztb3/L5ptvniS56KKLsuuuu+a8885Lly5dCt8HAAAAmKfszngvrg8++CAVFRVp3759kuSRRx5J+/bta0N3kuy4445p1qxZHnvssWU0SwAAAFZUZXfGe3F8/PHHOfXUU3PAAQekXbt2SZI333wzq6++ep3tWrRokQ4dOuTNN9+cbz+zZ8/O7Nmza5enT5+e5LN7ymtqagqaPeVi3jF2rCkn6pJyoyYpR+qScqMmVyyLc5ybbPCuqanJvvvum1KplEsvvbRBfY0ZMyajR4+u137PPfekTZs2DeqbpuOLtzFAOVCXlBs1STlSl5QbNblimDVr1iJv2ySD97zQ/e9//zv3339/7dnuJOncuXOmTZtWZ/tPP/007777bjp37jzf/kaOHJnhw4fXLk+fPj1du3bNTjvtVKdvlk81NTWprq7OoEGDUllZuaynA0nUJeVHTVKO1CXlRk2uWOZdKb0omlzwnhe6X3rppTzwwAPp2LFjnfVbbrll3n///fz973/PZpttliS5//77M3fu3Hzta1+bb59VVVWpqqqq115ZWekHZgXieFOO1CXlRk1SjtQl5UZNrhgW5xiXXfCeMWNGJk2aVLs8efLkTJw4MR06dMgaa6yRffbZJ08++WTuuOOOzJkzp/a+7Q4dOqRly5bZYIMNsssuu+Soo47KZZddlpqamnzve9/L/vvv74nmAAAALHVlF7yfeOKJbLfddrXL8y4BHzp0aEaNGpXbbrstSdKvX786n3vggQcycODAJMl1112X733ve9lhhx3SrFmzfPOb38wvfvGLpTJ/AAAA+LyyC94DBw5MqVRa4PqFrZunQ4cOuf766xtzWgAAALBEmvx7vAEAAKCcCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAokOANAAAABRK8AQAAoECCNwAAABRI8AYAAIACCd4AAABQIMEbAAAACiR4AwAAQIEEbwAAACiQ4A0AAAAFErwBAACgQII3AAAAFEjwBgAAgAIJ3gAAAFAgwRsAAAAKJHgDAABAgQRvAAAAKJDgDQAAAAUSvAEAAKBAgjcAAAAUSPAGAACAAgneAAAAUCDBGwAAAAokeAMAAECBBG8AAAAoUIOD91133ZWHH364dvmSSy5Jv379cuCBB+a9995raPcAAADQpDU4eJ988smZPn16kuSf//xnfvCDH2TXXXfN5MmTM3z48AZPEAAAAJqyFg3tYPLkydlwww2TJDfffHN23333/PSnP82TTz6ZXXfdtcETBAAAgKaswWe8W7ZsmVmzZiVJ7r333uy0005Jkg4dOtSeCQcAAIAVVYPPeA8YMCDDhw/P1ltvnccffzy///3vkyQvvvhi1lprrQZPEAAAAJqyBp/xvvjii9OiRYvcdNNNufTSS7PmmmsmSe68887ssssuDZ4gAAAANGUNPuO99tpr54477qjX/vOf/7yhXQMAAECT1yjv8X755Zdz2mmn5YADDsi0adOSfHbG+9lnn22M7gEAAKDJanDwfuihh9KnT5889thjGT9+fGbMmJEkefrpp3PmmWc2eIIAAADQlDU4eI8YMSI/+clPUl1dnZYtW9a2b7/99nn00Ucb2j0AAAA0aQ0O3v/85z+z995712tfffXV8/bbbze0ewAAAGjSGhy827dvnzfeeKNe+1NPPVX7hHMAAABYUTU4eO+///459dRT8+abb6aioiJz587NX/7yl5x00kk59NBDG2OOAAAA0GQ1OHj/9Kc/zfrrr5+uXbtmxowZ2XDDDbPNNttkq622ymmnndYYcwQAAIAmq8Hv8W7ZsmWuuOKKnH766XnmmWcyY8aM9O/fP717926M+QEAAECT1uDgPc/aa6+dtddeu7G6AwAAgOVCg4P3nDlzMm7cuNx3332ZNm1a5s6dW2f9/fff39AhAAAAoMlqcPA+4YQTMm7cuOy2227ZeOONU1FR0RjzAgAAgOVCg4P3DTfckBtvvDG77rprY8wHAAAAlisNfqp5y5Yt06tXr8aYCwAAACx3Ghy8f/CDH+TCCy9MqVRqjPkAAADAcqXBl5o//PDDeeCBB3LnnXdmo402SmVlZZ3148ePb+gQAAAA0GQ1OHi3b98+e++9d2PMBQAAAJY7DQ7eV111VWPMAwAAAJZLDb7HuzFNmDAhe+yxR7p06ZKKiorceuutddaPHz8+O+20Uzp27JiKiopMnDixXh9vvvlmDjnkkHTu3Dlt27bNpptumptvvnnp7AAAAAB8wRKd8d50001z3333ZdVVV03//v0X+u7uJ598cpH7nTlzZvr27Ztvf/vbGTJkyHzXDxgwIPvuu2+OOuqo+fZx6KGH5v33389tt92W1VZbLddff3323XffPPHEE+nfv/8izwUAAAAawxIF7z333DNVVVVJkr322qvRJjN48OAMHjx4gesPOeSQJMmrr766wG3++te/5tJLL80WW2yRJDnttNPy85//PH//+98FbwAAAJa6JQreZ5555nz/XQ622mqr/P73v89uu+2W9u3b58Ybb8zHH3+cgQMHLuupAQAAsAJq8MPVys2NN96Y/fbbLx07dkyLFi3Spk2b3HLLLenVq9cCPzN79uzMnj27dnn69OlJkpqamtTU1BQ+Z5atecfYsaacqEvKjZqkHKlLyo2aXLEsznFeouC96qqrLvS+7s979913l2SIJXb66afn/fffz7333pvVVlstt956a/bdd9/8+c9/Tp8+feb7mTFjxmT06NH12u+55560adOm6ClTJqqrq5f1FKAedUm5UZOUI3VJuVGTK4ZZs2Yt8rYVpVKptLgDXH311Yu87dChQxe3+yRJRUVFbrnllvneQ/7qq6+mR48eeeqpp9KvX7/a9pdffjm9evXKM888k4022qi2fccdd0yvXr1y2WWXzXes+Z3x7tq1a95+++20a9duieZP01FTU5Pq6uoMGjQolZWVy3o6kERdUn7UJOVIXVJu1OSKZfr06VlttdXywQcffGluXKIz3ksapos27y8OzZrVfUta8+bNM3fu3AV+rqqqqvZhcZ9XWVnpB2YF4nhTjtQl5UZNUo7UJeVGTa4YFucYN8o93i+//HKuuuqqvPzyy7nwwguz+uqr584778zaa69d58zzl5kxY0YmTZpUuzx58uRMnDgxHTp0yNprr5133303U6ZMydSpU5MkL7zwQpKkc+fO6dy5c9Zff/306tUrxxxzTM4777x07Ngxt956a6qrq3PHHXc0xq4CAADAYmn25Zss3EMPPZQ+ffrksccey/jx4zNjxowkydNPP73YTzyf967tea/9Gj58ePr3758zzjgjSXLbbbelf//+2W233ZIk+++/f/r37197CXllZWX+9Kc/pVOnTtljjz2yySab5JprrsnVV1+dXXfdtaG7CgAAAIutwWe8R4wYkZ/85CcZPnx4Vl555dr27bffPhdffPFi9TVw4MAs7Jbzww47LIcddthC++jdu3duvvnmxRoXAAAAitLgM97//Oc/s/fee9drX3311fP22283tHsAAABo0hocvNu3b5833nijXvtTTz2VNddcs6HdAwAAQJPW4OC9//7759RTT82bb76ZioqKzJ07N3/5y19y0kkn5dBDD22MOQIAAECT1eDg/dOf/jTrr79+unbtmhkzZmTDDTfMNttsk6222iqnnXZaY8wRAAAAmqwGP1ytZcuWueKKK3L66afnmWeeyYwZM9K/f//07t27MeYHAAAATVqjvMc7SdZee+107do1SVJRUdFY3QIAAECT1uBLzZPkyiuvzMYbb5xWrVqlVatW2XjjjfPrX/+6MboGAACAJq3BZ7zPOOOMXHDBBfn+97+fLbfcMknyyCOPZNiwYZkyZUrOOuusBk8SAAAAmqoGB+9LL700V1xxRQ444IDatm984xvZZJNN8v3vf1/wBgAAYIXW4EvNa2pqsvnmm9dr32yzzfLpp582tHsAAABo0hocvA855JBceuml9dovv/zyHHTQQQ3tHgAAAJq0Rnmq+ZVXXpl77rkn//M//5MkeeyxxzJlypQceuihGT58eO12F1xwQWMMBwAAAE1Gg4P3M888k0033TRJ8vLLLydJVltttay22mp55plnarfzijEAAABWRA0O3g888EBjzAMAAACWS43yHm8AAABg/pbojPeQIUMybty4tGvXLkOGDFnotuPHj1+iiQEAAMDyYImC9yqrrFJ7z3a7du3cvw0AAAALsETB+6qrrqr997hx4xprLgAAALDcWeJ7vOfOnZtzzjknW2+9db761a9mxIgR+eijjxpzbgAAANDkLXHwPvvss/PDH/4wK620UtZcc81ceOGFOe644xpzbgAAANDkLXHwvuaaa/LLX/4yd999d2699dbcfvvtue666zJ37tzGnB8AAAA0aUscvKdMmZJdd921dnnHHXdMRUVFpk6d2igTAwAAgOXBEgfvTz/9NK1atarTVllZmZqamgZPCgAAAJYXS/RU8yQplUo57LDDUlVVVdv28ccf59hjj03btm1r27zHGwAAgBXZEgfvoUOH1ms7+OCDGzQZAAAAWN4scfD+/Lu8AQAAgPlb4nu8AQAAgC8neAMAAECBBG8AAAAokOANACzUnLlz8tC/H8qE9ybkoX8/lDlz5yzrKQFAk7JEwXvTTTfNe++9lyQ566yzMmvWrEadFABQHsY/Pz7dL+yeQdcNygX/viCDrhuU7hd2z/jnvS4UABbVEgXv559/PjNnzkySjB49OjNmzGjUSQEAy97458dnnxv3yX+m/6dO++vTX88+N+4jfAPAIlqi14n169cvhx9+eAYMGJBSqZTzzjsvK6200ny3PeOMMxo0QQBg6Zszd05OuOuElFKqt66UUipSkRPvOjF7rrdnmjdrvgxmCABNxxIF73HjxuXMM8/MHXfckYqKitx5551p0aJ+VxUVFYI3ADRBf57y53pnuj+vlFJem/5a/jzlzxnYfeDSmxgANEFLFLzXW2+93HDDDUmSZs2a5b777svqq6/eqBMDAJadNz58o1G3A4AV2RIF78+bO3duY8wDACgja6y8RqNuBwArsgYH7yR5+eWXM3bs2Dz//PNJkg033DAnnHBCevbs2RjdAwBL2dfX/nrWardWXp/++nzv865IRdZqt1a+vvbXl8HsAKBpafB7vO++++5suOGGefzxx7PJJptkk002yWOPPZaNNtoo1dXVjTFHAGApa96seS7c5cIkn4Xsz5u3PHaXsR6sBgCLoMFnvEeMGJFhw4blZz/7Wb32U089NYMGDWroEADAMjBkgyG5ad+bcsJdJ9R50Npa7dbK2F3GZsgGQ5bh7ACg6Whw8H7++edz44031mv/9re/nbFjxza0ewBgGRqywZDsud6eeeCVB3Lnw3dm8IDB2W6d7ZzpBoDF0OBLzTt16pSJEyfWa584caInnQPAcqB5s+bZttu22WbVbbJtt22FbgBYTA0+433UUUfl6KOPziuvvJKtttoqSfKXv/wl55xzToYPH97gCQIAAEBT1uDgffrpp2fllVfO+eefn5EjRyZJunTpklGjRuX4449v8AQBAACgKWtw8K6oqMiwYcMybNiwfPjhh0mSlVdeucETAwAAgOVBo7zHex6BGwAAAOpq8MPVAAAAgAUTvAEAAKBAgjcAAAAUqEHBu6amJjvssENeeumlxpoPAAAALFcaFLwrKyvzj3/8o7HmAgAAAMudBl9qfvDBB+fKK69sjLkAAADAcqfBrxP79NNP85vf/Cb33ntvNttss7Rt27bO+gsuuKChQwAAAECT1eDg/cwzz2TTTTdNkrz44ot11lVUVDS0ewAAAGjSGhy8H3jggcaYBwAAACyXGu11YpMmTcrdd9+djz76KElSKpUaq2sAAABoshocvN95553ssMMOWXfddbPrrrvmjTfeSJIcccQR+cEPftDgCQIAAEBT1uDgPWzYsFRWVmbKlClp06ZNbft+++2Xu+66q6HdAwAAQJPW4Hu877nnntx9991Za6216rT37t07//73vxvaPQAAADRpDT7jPXPmzDpnuud59913U1VV1dDuAQAAoElrcPD++te/nmuuuaZ2uaKiInPnzs25556b7bbbrqHdAwAAQJPW4EvNzz333Oywww554okn8sknn+SUU07Js88+m3fffTd/+ctfGmOOAAAA0GQ1+Iz3xhtvnBdffDEDBgzInnvumZkzZ2bIkCF56qmn0rNnz8aYIwAAADRZDT7jnSSrrLJKfvSjHzVGVwAAALBcaZTg/d577+XKK6/M888/nyTZcMMNc/jhh6dDhw6N0T0AAAA0WQ2+1HzChAnp3r17fvGLX+S9997Le++9l1/84hfp0aNHJkyY0BhzBAAAgCarwWe8jzvuuOy333659NJL07x58yTJnDlz8t3vfjfHHXdc/vnPfzZ4kgAAANBUNfiM96RJk/KDH/ygNnQnSfPmzTN8+PBMmjSpod0DAABAk9bg4L3pppvW3tv9ec8//3z69u3b0O4BAACgSVuiS83/8Y9/1P77+OOPzwknnJBJkyblf/7nf5Ikjz76aC655JL87Gc/a5xZAgAAQBO1RGe8+/Xrl/79+6dfv3454IAD8tprr+WUU07JNttsk2222SannHJK/v3vf+fAAw9crH4nTJiQPfbYI126dElFRUVuvfXWOuvHjx+fnXbaKR07dkxFRUUmTpw4334eeeSRbL/99mnbtm3atWuXbbbZJh999NGS7CoAAAA0yBKd8Z48eXJjzyNJMnPmzPTt2zff/va3M2TIkPmuHzBgQPbdd98cddRR8+3jkUceyS677JKRI0fmoosuSosWLfL000+nWbMGX1UPAAAAi22Jgne3bt0aex5JksGDB2fw4MELXH/IIYckSV599dUFbjNs2LAcf/zxGTFiRG3beuut12hzBAAAgMXR4NeJJcnUqVPz8MMPZ9q0aZk7d26ddccff3xjDLFIpk2blsceeywHHXRQttpqq7z88stZf/31c/bZZ2fAgAEL/Nzs2bMze/bs2uXp06cnSWpqalJTU1P4vFm25h1jx5pyoi4pN2qScqQuKTdqcsWyOMe5wcF73LhxOeaYY9KyZcvae6/nqaioWKrB+5VXXkmSjBo1Kuedd1769euXa665JjvssEOeeeaZ9O7de76fGzNmTEaPHl2v/Z577kmbNm0KnTPlo7q6ellPAepRl5QbNUk5UpeUGzW5Ypg1a9Yib9vg4H366afnjDPOyMiRI5f5fdTzzrYfc8wxOfzww5Mk/fv3z3333Zff/OY3GTNmzHw/N3LkyAwfPrx2efr06enatWt22mmntGvXrviJs0zV1NSkuro6gwYNSmVl5bKeDiRRl5QfNUk5UpeUGzW5Ypl3pfSiaHDwnjVrVvbff/9lHrqTZI011kiSbLjhhnXaN9hgg0yZMmWBn6uqqkpVVVW99srKSj8wKxDHm3KkLik3apJypC4pN2pyxbA4x7jBafmII47IH/7wh4Z20yi6d++eLl265IUXXqjT/uKLLxb2QDgAAABYmAaf8R4zZkx233333HXXXenTp0+91H/BBRcscl8zZszIpEmTapcnT56ciRMnpkOHDll77bXz7rvvZsqUKZk6dWqS1Abszp07p3PnzqmoqMjJJ5+cM888M3379k2/fv1y9dVX51//+lduuummhu4qAAAALLZGCd5333137Su7vvhwtcXxxBNPZLvttqtdnnff9dCh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xRfHRRddFPfee28bTk5ntTWZfPrpp2Pu3Lnx5JNPxrJly+Kxxx6L2267zQ+DAP7C+PHj46OPPop58+a19Sh0UV9//XVMnDgx5s6du9FvttH5Kd50KjvvvHOUlpbGd9991+z8d999F7169drkNbvssks8//zzsXbt2vjyyy/jk08+iW233Tb69+9fXLP77rvHfvvt1+y6fffdN7766quW3wSdSq5MTp48ufjUe/DgwTF27Ni4/PLL/QSdLHr16rXJDPfo0SO6dev2j3IO/9aWcvm/JkyYEPPnz4/XXnst9txzz9Ycky5kS5lcunRp1NXVxbBhw6KsrCzKyspi0aJFcc8990RZWVmsX7++jSanNSjedCoVFRVx8MEHx4IFC4rnmpqaYsGCBXHEEUds9tqqqqrYY4894o8//ohnnnkmTjnllOJrw4cP3+jPj3z22Wex9957t+wG6HRyZXLdunXNnoBHRJSWlkZTU1PLbgAi4ogjjmiW4YiImpqaYob/Tc7hn9pSLiMiUkoxYcKEeO655+LVV1+Nfv36tfaYdCFbyuR//vOf+PDDD2PFihXFr0MOOSTGjBkTK1asiNLS0rYYm9bS1p/uBi1t3rx5qbKyMj366KNp5cqV6eKLL07bb799WrNmTUoppbFjx6apU6cW1y9evDg988wz6fPPP0+vv/56OvbYY1O/fv3Sjz/+WFyzZMmSVFZWlm666aa0atWqNHfu3NS9e/f0xBNPtPb26IByZLK6ujrtscceaf78+am2tjY9++yzaeedd05Tpkxp7e3RATU0NKTly5en5cuXp4hId9xxR1q+fHn68ssvU0opTZ06NY0dO7a4/osvvkjdu3dPkydPTh9//HGaPXt2Ki0tTS+//HJxzZZyDluSI5eXXnpp6tmzZ1q4cGFavXp18WvdunWtvj86nhyZ3JBPNe86FG86pZkzZ6a99torVVRUpMMOOywtXry4+NqIESNSdXV18XjhwoVp3333TZWVlWmnnXZKY8eOTd98881G93zxxRfTAQcckCorK9OgQYPS/fff3xpboZNo6UzW19eniRMnpr322itVVVWl/v37p6uvvjr99ttvrbUlOrDXXnstRcRGX3/msLq6Oo0YMWKjaw466KBUUVGR+vfvnx555JGN7ru5nMOW5Mjlpu4XEZvML2wo1/fK/6V4dx2FlFJqvefrAAAA0LV4jzcAAABkpHgDAABARoo3AAAAZKR4AwAAQEaKNwAAAGSkeAMAAEBGijcAAABkpHgDAABARoo3AAAAZKR4A0AXNW7cuCgUClEoFKK8vDz69esXU6ZMiV9//bWtRwOATqWsrQcAANrO8ccfH4888kg0NjbG0qVLo7q6OgqFQsyYMaOtRwOATsMTbwDowiorK6NXr17Rp0+fOPXUU2PkyJFRU1MTERF9+/aNu+66q9n6gw46KK677rricaFQiAcffDBOO+206N69ewwcODBeeOGFVtwBALR/ijcAEBERH330Ubz11ltRUVHxt667/vrr46yzzooPPvggTjzxxBgzZkz88MMPmaYEgI5H8QaALmz+/Pmx7bbbRlVVVQwePDjq6upi8uTJf+se48aNi3PPPTcGDBgQN998c/z888+xZMmSTBMDQMfjPd4A0IUdc8wxMWfOnFi7dm3ceeedUVZWFmecccbfuseBBx5Y/Pc222wTPXr0iLq6upYeFQA6LE+8AaAL22abbWLAgAExZMiQePjhh+Odd96Jhx56KCIiSkpKIqXUbH1jY+NG9ygvL292XCgUoqmpKd/QANDBKN4AQET8X9G+6qqr4pprrolffvkldtlll1i9enXx9fr6+qitrW3DCQGgY1K8AYCiM888M0pLS2P27Nlx7LHHxuOPPx5vvPFGfPjhh1FdXR2lpaVtPSIAdDje4w0AFJWVlcWECRPi1ltvjVWrVkVtbW2cdNJJ0bNnz7jxxhs98QaAf6CQNnzzFgAAANBi/Ko5AAAAZKR4AwAAQEaKNwAAAGSkeAMAAEBGijcAAABkpHgDAABARoo3AAAAZKR4AwAAQEaKNwAAAGSkeAMAAEBGijcAAABkpHgDAABARv8FsLmILsPryWYAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "from collections import defaultdict\n", + "import re\n", + "from tabulate import tabulate\n", + "\n", + "# Assuming results_df is your DataFrame with all the run results\n", + "\n", + "def simplify_pipeline(pipeline_str):\n", + " # Extract the main classifier name\n", + " classifier = re.search(r\"(\\w+)\\(\", pipeline_str).group(1)\n", + " return classifier.lower()\n", + "\n", + "# Initialize a dictionary to store all pipeline statistics\n", + "all_pipeline_stats = defaultdict(int)\n", + "\n", + "# Iterate through all runs and all evaluated pipelines\n", + "for _, row in results_df.iterrows():\n", + " for pipeline_str in row['pipelines_tested']:\n", + " simple_pipeline = simplify_pipeline(pipeline_str)\n", + " all_pipeline_stats[simple_pipeline] += 1\n", + "\n", + "# Prepare the summary table\n", + "summary_table = [[pipeline, count] for pipeline, count in all_pipeline_stats.items()]\n", + "\n", + "# Sort by count\n", + "summary_table.sort(key=lambda x: -x[1])\n", + "\n", + "# Print the summary table\n", + "print(\"\\nTop 10 Pipelines Across All Runs and Evaluations:\")\n", + "print(tabulate(summary_table[:10], headers=['Pipeline', 'Count'], tablefmt='grid'))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9qalTrUsqpVD", + "outputId": "ab89ae33-96cb-41ad-83ab-2d0f7d21a7fe" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Top 10 Pipelines Across All Runs and Evaluations:\n", + "+------------------------+---------+\n", + "| Pipeline | Count |\n", + "+========================+=========+\n", + "| xgbclassifier | 44 |\n", + "+------------------------+---------+\n", + "| extratreesclassifier | 20 |\n", + "+------------------------+---------+\n", + "| bernoullinb | 13 |\n", + "+------------------------+---------+\n", + "| decisiontreeclassifier | 12 |\n", + "+------------------------+---------+\n", + "| gaussiannb | 7 |\n", + "+------------------------+---------+\n", + "| kneighborsclassifier | 7 |\n", + "+------------------------+---------+\n", + "| randomforestclassifier | 6 |\n", + "+------------------------+---------+\n", + "| mlpclassifier | 3 |\n", + "+------------------------+---------+\n", + "| sgdclassifier | 3 |\n", + "+------------------------+---------+\n", + "| multinomialnb | 1 |\n", + "+------------------------+---------+\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# File name to search for\n", + "file_name = \"lab_logs_blindtest_activity_sysmon_1000samples_july_28_2024_filtered_vectors.parquet\"\n", + "\n", + "# Get the download URL of the specific file\n", + "# download_url = get_specific_file_from_latest_release(github_token, repository_name, file_name)\n", + "download_url = get_specific_file_from_tagged_release(github_token, repository_name, \"lab\", file_name)\n", + "print(download_url)\n", + "\n", + "if download_url:\n", + " local_file_path = file_name\n", + " download_file(download_url, github_token, local_file_path)\n", + "else:\n", + " print(\"File not found.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85, + "referenced_widgets": [ + "8a807c2780cf4a65ad92dfa1ead0e439", + "021bf8d789b74e3d899a99eeb82a0036", + "f7aeed7c0692419591ca57bffee51739", + "d7f2da7e3beb42dfaf31dc69eb7a597e", + "c7b913c695fc448c8fc7b31f7098f636", + "a59325353a1d4902b03f5a37c0293934", + "6cd3d0fc462c4b14bbe6be92b8e6103e", + "0cfdc6a2fa49499e9f0ce350b88dfbc4", + "a9c70dae97424ca290a75e10d24baf52", + "f0fc3fee01b04ffc922096ee18b6cb0f", + "9142d6e9793648a9909e5ce3dabf415b" + ] + }, + "id": "SGH18PwBSdeE", + "outputId": "6bb659aa-bdf4-49fc-ad4a-c9f8968ce3c5" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "https://api.github.com/repos/norandom/log2ml/releases/assets/182698628\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " 0%| | 0.00/3.29M [00:00 0]\n", + "\n", + "# Sort by count\n", + "summary_table.sort(key=lambda x: -x[1])\n", + "\n", + "# Print the summary table\n", + "print(\"\\nEstimated Algorithms Used Across All Runs:\")\n", + "print(tabulate(summary_table, headers=['Algorithm', 'Estimated Count'], tablefmt='grid'))\n", + "\n", + "# Calculate and print additional statistics\n", + "total_runs = len(results_df)\n", + "successful_runs = results_df['f1_score'].notna().sum()\n", + "average_f1 = results_df['f1_score'].mean()\n", + "average_features = results_df['n_features'].mean() if 'n_features' in results_df.columns else None\n", + "average_runtime = results_df['runtime'].mean()\n", + "\n", + "print(f\"\\nTotal Runs: {total_runs}\")\n", + "print(f\"Successful Runs: {successful_runs}\")\n", + "print(f\"Average F1 Score: {average_f1:.4f}\")\n", + "if average_features is not None:\n", + " print(f\"Average Number of Features: {average_features:.2f}\")\n", + "print(f\"Average Runtime: {average_runtime:.2f} seconds\")\n", + "print(f\"Total Pipelines Tested: {total_pipelines}\")\n", + "\n", + "# Print full best pipelines for each run\n", + "print(\"\\nBest Pipelines for Each Run:\")\n", + "for index, row in results_df.iterrows():\n", + " print(f\"\\nRun {index + 1}:\")\n", + " print(f\"F1 Score: {row['f1_score']:.4f}\")\n", + " print(f\"Pipeline: {row['best_pipeline']}\")\n", + " print(f\"Pipelines tested in this run: {row['pipelines_tested']}\")\n", + "\n", + "# Optional: Add visualization\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Visualize F1 scores across runs\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(results_df['run'], results_df['f1_score'], marker='o')\n", + "plt.title('F1 Score Across Runs')\n", + "plt.xlabel('Run')\n", + "plt.ylabel('F1 Score')\n", + "plt.grid(True)\n", + "plt.savefig('f1_scores_across_runs.png')\n", + "plt.close()\n", + "\n", + "# Visualize pipeline counts\n", + "algorithms, counts = zip(*summary_table)\n", + "plt.figure(figsize=(12, 6))\n", + "plt.bar(algorithms, counts)\n", + "plt.title('Estimated Algorithm Usage')\n", + "plt.xlabel('Algorithm')\n", + "plt.ylabel('Estimated Count')\n", + "plt.xticks(rotation=45, ha='right')\n", + "plt.tight_layout()\n", + "plt.savefig('estimated_algorithm_usage.png')\n", + "plt.close()\n", + "\n", + "print(\"\\nVisualization plots saved as 'f1_scores_across_runs.png' and 'estimated_algorithm_usage.png'\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5m0mtcVZduol", + "outputId": "1d8b8679-4cbc-4574-dc35-6e7ab8b3d1cd" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Estimated Algorithms Used Across All Runs:\n", + "+----------------------+-------------------+\n", + "| Algorithm | Estimated Count |\n", + "+======================+===================+\n", + "| MLPClassifier | 45 |\n", + "+----------------------+-------------------+\n", + "| KNeighborsClassifier | 45 |\n", + "+----------------------+-------------------+\n", + "| XGBClassifier | 45 |\n", + "+----------------------+-------------------+\n", + "| LinearSVC | 45 |\n", + "+----------------------+-------------------+\n", + "| SGDClassifier | 45 |\n", + "+----------------------+-------------------+\n", + "| Other | 6 |\n", + "+----------------------+-------------------+\n", + "\n", + "Total Runs: 2\n", + "Successful Runs: 2\n", + "Average F1 Score: 0.9872\n", + "Average Number of Features: 5.00\n", + "Average Runtime: 109.13 seconds\n", + "Total Pipelines Tested: 229\n", + "\n", + "Best Pipelines for Each Run:\n", + "\n", + "Run 1:\n", + "F1 Score: 0.9872\n", + "Pipeline: Pipeline(steps=[('gaussiannb', GaussianNB())])\n", + "Pipelines tested in this run: 115\n", + "\n", + "Run 2:\n", + "F1 Score: 0.9872\n", + "Pipeline: Pipeline(steps=[('extratreesclassifier',\n", + " ExtraTreesClassifier(criterion='entropy',\n", + " max_features=0.8500000000000001,\n", + " min_samples_leaf=20, min_samples_split=19,\n", + " random_state=43))])\n", + "Pipelines tested in this run: 114\n", + "\n", + "Visualization plots saved as 'f1_scores_across_runs.png' and 'estimated_algorithm_usage.png'\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "# Assuming results_df is your DataFrame with the results\n", + "\n", + "fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 18))\n", + "\n", + "ax1.plot(results_df['run'], results_df['f1_score'], 'bo-')\n", + "ax1.set_title('TPOT-NN Performance (F1 Score) Across Runs')\n", + "ax1.set_xlabel('Run')\n", + "ax1.set_ylabel('F1 Score')\n", + "ax1.grid(True)\n", + "\n", + "ax2.plot(results_df['run'], results_df['n_features'], 'ro-')\n", + "ax2.set_title('Number of Features Selected Across Runs')\n", + "ax2.set_xlabel('Run')\n", + "ax2.set_ylabel('Number of Features')\n", + "ax2.grid(True)\n", + "\n", + "ax3.plot(results_df['run'], results_df['pipelines_tested'], 'go-')\n", + "ax3.set_title('Number of Pipelines Tested Across Runs')\n", + "ax3.set_xlabel('Run')\n", + "ax3.set_ylabel('Number of Pipelines')\n", + "ax3.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig('tpot_nn_performance_features_pipelines.png')\n", + "plt.show()\n", + "\n", + "# Print summary statistics\n", + "print(\"\\nSummary Statistics:\")\n", + "print(results_df.describe())\n", + "\n", + "# Optional: If you want to see the correlation between different metrics\n", + "correlation_matrix = results_df[['f1_score', 'n_features', 'pipelines_tested', 'runtime']].corr()\n", + "print(\"\\nCorrelation Matrix:\")\n", + "print(correlation_matrix)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "3lBpziEae4sf", + "outputId": "08837957-1ab6-4acb-ab65-b0f0fca2b56c" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAb+CAYAAABEzlO5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeZxOdf/H8fc1Y8xmZmxjlxlDhOyRZMsyGWRJ9htjKUUllShhtAwVcZdC3SjRhlTKMrZQkrU7a9YWMZYwGMaY+f7+8JvrdpnF0HzNNeb1fDzm8ej6nu8553Ou+czkPedc5ziMMUYAAAAAACDLeWR3AQAAAAAA3KoI3QAAAAAAWELoBgAAAADAEkI3AAAAAACWELoBAAAAALCE0A0AAAAAgCWEbgAAAAAALCF0AwAAAABgCaEbAAAAAABLCN0AgFxn8eLFql69unx8fORwOHTq1KnsLinHe+2111SxYkUlJydndyk5wo4dO5QnTx5t27Ytu0sBAFhG6AaALOJwODL1tWrVKh08eNBlzNPTU7fddpvat2+vrVu3ptr2uXPn9NJLL6lq1ary8/NTUFCQGjRooA8//FDGGOe83r17Z6qG3r17p3kMM2fOlMPhkI+Pjw4dOpRqeePGjVWlShWXsZCQEDkcDj3++OOp5q9atUoOh0Nz587N8L273vfjnzhx4oQ6deokX19fTZ48WbNmzZK/v3+W7iO3iYuL07hx4/Tcc8/Jw+N//7RIr/+KFSvmnHP48GENGzZMTZo0UUBAgPNn5Hp8/fXXatSokYoUKSI/Pz+VLVtWnTp10uLFi7PqELNcpUqV1KpVK40cOfK6133nnXfkcDhUt25dC5W5h8aNG7v0jK+vr6pWraqJEyfyhx0AOU6e7C4AAG4Vs2bNcnn94YcfKiYmJtX4HXfcofPnz0uSunbtqoiICCUlJWnnzp169913tWjRIv3444+qXr26JCk2NlZNmzbVzp071aVLFw0aNEgXLlzQvHnz1KtXL3377beaPXu2PD099cgjj6hZs2bOfR04cEAjR47Uww8/rAYNGjjHw8LCMjyWhIQEjR07Vm+99Vamj/+9997T8OHDVaJEiUyvc7XMvB//1IYNG3TmzBm99NJLLu8Vbtz06dN16dIlde3aNdWy5s2bq2fPni5jvr6+zv/evXu3xo0bp/Lly+vOO+/UunXrrmvfb7zxhp599lk1atRIw4cPl5+fn/bu3atly5bpk08+0f33339jB3UTDBgwQBEREdq3b981fyavNHv2bIWEhOinn37S3r17Va5cOYtVZp9SpUopOjpaknT8+HHNmTNHTz31lI4dO6ZXXnklm6sDgOtgAABWDBw40KT3a/bAgQNGknn99dddxr/66isjyTz88MPOsfDwcOPh4WG+/PLLVNt55plnjCQzduzYNPezYcMGI8nMmDEjUzXPmDHDSDLVq1c33t7e5tChQy7LGzVqZCpXruwyVqZMGVO5cmWTJ08e8/jjj7ssW7lypZFkPv/88wz3ez3vx406e/asMcaYDz74wEgyGzZs+MfbvHrbuVXVqlVNjx49Uo1LMgMHDsxw3bi4OHPixAljjDGff/65kWRWrlyZqf0mJiaawMBA07x58zSXx8bGZmo7WSEpKcmcP3/+uta5ePGiKVCggHnxxRczvc7+/fuNJDN//nwTHBxsRo8efb2lpuv8+fMmKSkpy7b3T6T1u+b8+fOmTJkyJiAgwFy6dCmbKgOA68fl5QDgRu677z5Jl89QS9KPP/6oJUuWqHfv3nrggQdSzY+Ojlb58uU1btw459nzrPD8888rKSlJY8eOzdT8kJAQ9ezZU++9957++uuvLKvj6vdDktavX6/7779fQUFB8vPzU6NGjfT999+7rDd69Gg5HA7t2LFD3bp1U4ECBXTvvfeqcePG6tWrlyTprrvuSnWp/eeff65atWrJ19dXhQsXVo8ePVJdZt+7d2/ly5dP+/btU0REhAICAtS9e3dJly+nHjRokD7//HNVqlRJvr6+qlevnn755RdJ0tSpU1WuXDn5+PiocePGOnjwoMu216xZo4ceeki33XabvL29Vbp0aT311FOpvrcpNRw6dEjt2rVTvnz5FBwcrGeeeUZJSUkuc5OTkzVp0iTdeeed8vHxUXBwsO6//35t3LjRZd5HH33kPPaCBQuqS5cu+uOPP675PTpw4ID++9//3vBVAwEBASpYsOANrXv8+HHFxcWpfv36aS4vUqSIy+sLFy5o9OjRuv322+Xj46PixYurQ4cO2rdvn3POuXPn9PTTT6t06dLy9vZWhQoV9MYbb7h8jEP63/d69uzZqly5sry9vZ2Xsx86dEh9+vRR0aJF5e3trcqVK2v69Omp6vPy8lLjxo315ZdfZvqYZ8+erQIFCqhVq1bq2LGjZs+enea8U6dO6amnnlJISIi8vb1VqlQp9ezZU8ePH5f0v49+fPLJJxoxYoRKliwpPz8/xcXFScrcz8KRI0cUGRmpUqVKydvbW8WLF1fbtm1d+nrjxo0KDw9X4cKF5evrq9DQUPXp0yfTx3slHx8f3XXXXTpz5oyOHj0q6X8fTZk5c2aq+Q6HQ6NHj3a+Tvm9sHfvXvXu3Vv58+dXUFCQIiMjFR8f77JuTEyM7r33XuXPn1/58uVThQoV9Pzzz99Q3QDA5eUA4EZS/vFfqFAhSZc/qyop1eW5KfLkyaNu3bopKipK33//fZZdLh0aGuoM0cOGDcvUJeMvvPCCPvzwQ40dO1b//ve/s6SOq9+PFStWqGXLlqpVq5ZGjRolDw8PzZgxQ/fdd5/WrFmjOnXquKz/0EMPqXz58nr11VdljFH58uVVoUIFTZs2TWPGjFFoaKjzst6ZM2cqMjJSd911l6KjoxUbG6tJkybp+++/15YtW5Q/f37ndi9duqTw8HDde++9euONN+Tn5+dctmbNGn311VcaOHCgpMt/GGndurWGDh2qd955R4899phOnjyp1157TX369NGKFSuc637++eeKj4/Xo48+qkKFCumnn37SW2+9pT///FOff/65y7ElJSUpPDxcdevW1RtvvKFly5Zp/PjxCgsL06OPPuqc17dvX82cOVMtW7ZUv379dOnSJa1Zs0Y//vijateuLUl65ZVX9OKLL6pTp07q16+fjh07prfeeksNGzZMdexX++GHHyRJNWvWTHP5hQsXnEEvRUBAgLy9vdPdZmYVKVJEvr6++vrrr/X4449nGN6TkpLUunVrLV++XF26dNGTTz6pM2fOKCYmRtu2bVNYWJiMMXrggQe0cuVK9e3bV9WrV9eSJUv07LPP6tChQ3rzzTddtrlixQp99tlnGjRokAoXLqyQkBDFxsbq7rvvdoby4OBgLVq0SH379lVcXJwGDx7sso1atWrpyy+/VFxcnAIDA695zLNnz1aHDh2UN29ede3aVe+++642bNigu+66yznn7NmzatCggXbu3Kk+ffqoZs2aOn78uL766iv9+eefKly4sHPuSy+9pLx58+qZZ55RQkKC8ubNm+mfhQcffFDbt2/X448/rpCQEB09elQxMTH6/fffna9btGih4OBgDRs2TPnz59fBgwc1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TIwSExPVokULnTt3Lt11fvjhB3Xt2lV9+/bVli1b1K5dO7Vr107btm27iZXfGO5efotwOBz64osv1K5du3TnPPfcc/rmm29cGrNLly46deqUFi9efBOqRG6QmV5MS+XKldW5c2eNHDnSTmHIla6nH7t06aLy5cvL09NTCxYs0NatW63Xh9wlM/24ePFidenSRfv371fBggVvXnHIdTLTj2+88Ybeffdd7du3zzn21ltvady4cfrzzz9vQpXILY4dO6YiRYrou+++U8OGDdOc07lzZ507d04LFy50jt19992qXr26pkyZcrNKvSGc6c5F1q1bp2bNmrmMhYeHa926ddlUEXBZcnKyzpw5wz8wkW1mzJih/fv3a9SoUdldCnK5r776SrVr19Zrr72mkiVL6vbbb9czzzyj8+fPZ3dpyIXq1aunP/74Q99++62MMYqNjdXcuXMVERGR3aXhFnP69GlJyvDfgjk5y+TJ7gJw8xw5ckRFixZ1GStatKji4uJ0/vx5+fr6ZlNlyO3eeOMNnT17Vp06dcruUpAL7dmzR8OGDdOaNWuUJw//W0T22r9/v9auXSsfHx998cUXOn78uB577DGdOHFCM2bMyO7ykMvUr19fs2fPVufOnXXhwgVdunRJbdq0ue6P7wAZSU5O1uDBg1W/fn1VqVIl3XnpZZkjR47YLvEf40w3gGw1Z84cRUVF6bPPPlORIkWyuxzkMklJSerWrZuioqJ0++23Z3c5gJKTk+VwODR79mzVqVNHERERmjBhgj744APOduOm27Fjh5588kmNHDlSmzZt0uLFi3Xw4EENGDAgu0vDLWTgwIHatm2bPvnkk+wuxRr+pJ+LFCtWTLGxsS5jsbGxCgwM5Cw3ssUnn3yifv366fPPP091uRBwM5w5c0YbN27Uli1bNGjQIEmXQ48xRnny5NHSpUt13333ZXOVyE2KFy+ukiVLKigoyDl2xx13yBijP//8U+XLl8/G6pDbREdHq379+nr22WclSVWrVpW/v78aNGigl19+WcWLF8/mCpHTDRo0SAsXLtTq1atVqlSpDOeml2WKFStms8QswZnuXKRevXpavny5y1hMTIzq1auXTRUhN/v4448VGRmpjz/+WK1atcrucpBLBQYG6pdfftHWrVudXwMGDFCFChW0detW1a1bN7tLRC5Tv359/fXXXzp79qxz7Ndff5WHh8c1/0EKZLX4+Hh5eLjGBU9PT0kS92LGP2GM0aBBg/TFF19oxYoVCg0NveY6OTnLcKY7Bzt79qz27t3rfH3gwAFt3bpVBQsW1G233abhw4fr0KFD+vDDDyVJAwYM0Ntvv62hQ4eqT58+WrFihT777DN988032XUIuEVcby/OmTNHvXr10qRJk1S3bl3nZ3F8fX1dzu4AN+J6+tHDwyPV58eKFCkiHx+fDD9XBmTW9f5+7Natm1566SVFRkYqKipKx48f17PPPqs+ffpwVRr+sevtxzZt2qh///569913FR4ersOHD2vw4MGqU6eOSpQokV2HgVvAwIEDNWfOHH355ZcKCAhw/lswKCjI+buuZ8+eKlmypKKjoyVJTz75pBo1aqTx48erVatW+uSTT7Rx40ZNmzYt244j0wxyrJUrVxpJqb569epljDGmV69eplGjRqnWqV69usmbN68pW7asmTFjxk2vG7ee6+3FRo0aZTgf+Cdu5HfjlUaNGmWqVat2U2rFre9G+nHnzp2mWbNmxtfX15QqVcoMGTLExMfH3/ziccu5kX7897//bSpVqmR8fX1N8eLFTffu3c2ff/5584vHLSWtPpTkkk0aNWqU6t+Gn332mbn99ttN3rx5TeXKlc0333xzcwu/QTynGwAAAAAAS/hMNwAAAAAAlhC6AQAAAACwhNANAAAAAIAlhG4AAAAAACwhdAMAAAAAYAmhGwAAAAAASwjdAAAAAABYQugGAAAAAMASQjcAAAAAAJYQugEAgFPv3r3lcDjkcDjk5eWl0NBQDR06VBcuXMju0gAAyJHyZHcBAADAvdx///2aMWOGEhMTtWnTJvXq1UsOh0Pjxo3L7tIAAMhxONMNAABceHt7q1ixYipdurTatWunZs2aKSYmRpIUEhKiiRMnusyvXr26Ro8e7XztcDj0/vvvq3379vLz81P58uX11Vdf3cQjAADAfRC6AQBAurZt26YffvhBefPmva71oqKi1KlTJ/33v/9VRESEunfvrr///ttSlQAAuC9CNwAAcLFw4ULly5dPPj4+uvPOO3X06FE9++yz17WN3r17q2vXripXrpxeffVVnT17Vj/99JOligEAcF98phsAALho0qSJ3n33XZ07d05vvvmm8uTJowcffPC6tlG1alXnf/v7+yswMFBHjx7N6lIBAHB7nOkGAAAu/P39Va5cOVWrVk3Tp0/X+vXr9Z///EeS5OHhIWOMy/zExMRU2/Dy8nJ57XA4lJycbK9oAADcFKEbAACky8PDQ88//7xGjBih8+fPKzg4WIcPH3Yuj4uL04EDB7KxQgAA3BuhGwAAZOihhx6Sp6enJk+erPvuu0+zZs3SmjVr9Msvv6hXr17y9PTM7hIBAHBbfKYbAABkKE+ePBo0aJBee+017dmzRwcOHFDr1q0VFBSkl156iTPdAABkwGGu/mAWAAAAAADIElxeDgAAAACAJYRuAAAAAAAsIXQDAAAAAGAJoRsAAAAAAEsI3QAAAAAAWELoBgAAAADAEkI3AAAAAACWELoBAAAAALCE0A0AAAAAgCWEbgAAAAAALCF0AwAAAABgCaEbAAAAAABLCN0AAAAAAFhC6AYAAAAAwBJCNwAAAAAAlhC6AQAAAACwhNANAAAAAIAlhG4AQKasWrVKDodDc+fOze5SMiU2NlYdO3ZUoUKF5HA4NHHixOwuCRkYPXq0HA5HdpdxQ0JCQtS7d+/sLgMA4KYI3QDgRmbOnCmHwyEfHx8dOnQo1fLGjRurSpUq2VBZzvPUU09pyZIlGj58uGbNmqX7778/3bkOhyPNr2LFilmpLT4+XqNHj9aqVausbP9mOHjwoCIjIxUWFiYfHx8VK1ZMDRs21KhRo7K7tDR9++23Gj16dHaXIUk6deqUfHx85HA4tHPnzuwux4qU32UpX3ny5FHJkiXVu3fvNH+3AcCtLE92FwAASC0hIUFjx47VW2+9ld2l5FgrVqxQ27Zt9cwzz2RqfvPmzdWzZ0+XMV9fXxulKT4+XlFRUZIu/yElp9m7d6/uuusu+fr6qk+fPgoJCdHhw4e1efNmjRs3znls7uTbb7/V5MmT3SJ4f/75584/6syePVsvv/xydpdkzZgxYxQaGqoLFy7oxx9/1MyZM7V27Vpt27ZNPj4+2V0eANwUhG4AcEPVq1fXe++9p+HDh6tEiRLZXc5Nde7cOfn7+//j7Rw9elT58+fP9Pzbb79dPXr0+Mf7zU6XLl1ScnKy8ubNa3U/b775ps6ePautW7eqTJkyLsuOHj1qdd+3go8++kgREREqU6aM5syZk2Wh2xijCxcuWPtj0Y1o2bKlateuLUnq16+fChcurHHjxumrr75Sp06dsrk6ALg5uLwcANzQ888/r6SkJI0dOzbDeQcPHpTD4dDMmTNTLXM4HC5n9VI+M/vrr7+qR48eCgoKUnBwsF588UUZY/THH3+obdu2CgwMVLFixTR+/Pg095mUlKTnn39exYoVk7+/vx544AH98ccfqeatX79e999/v4KCguTn56dGjRrp+++/d5mTUtOOHTvUrVs3FShQQPfee2+Gx7x//3499NBDKliwoPz8/HT33Xfrm2++cS5PuazVGKPJkyc7L2/9pw4dOqQ+ffqoaNGi8vb2VuXKlTV9+nSXORcvXtTIkSNVq1YtBQUFyd/fXw0aNNDKlSudcw4ePKjg4GBJUlRUlLO+lO9V48aN0zz73bt3b4WEhLhsx+Fw6I033tDEiRMVFhYmb29v7dixQ5K0a9cudezYUQULFpSPj49q166tr776ymWbiYmJioqKUvny5eXj46NChQrp3nvvVUxMTIbvxb59+1SqVKlUgVuSihQpkmps0aJFatCggfz9/RUQEKBWrVpp+/btGe4jxUcffaRatWrJ19dXBQsWVJcuXdLtt4iICBUoUED+/v6qWrWqJk2aJOnyezd58mRJrh8lSJGcnKyJEyeqcuXK8vHxUdGiRfXII4/o5MmTLvswxujll19WqVKl5OfnpyZNmmT6OFL8/vvvWrNmjbp06aIuXbrowIED+uGHH9I99jp16sjPz08FChRQw4YNtXTpUufykJAQtW7dWkuWLFHt2rXl6+urqVOnSrr2z0mKt956S5UrV3buo3bt2pozZ45z+ZkzZzR48GCFhITI29tbRYoUUfPmzbV58+brOu4UDRo0kHS5h1LcSM9PmzbN2fN33XWXNmzY4LLukSNHFBkZqVKlSsnb21vFixdX27ZtdfDgwRuqGwD+Cc50A4AbCg0NVc+ePfXee+9p2LBhWXq2u3Pnzrrjjjs0duxYffPNN3r55ZdVsGBBTZ06Vffdd5/GjRun2bNn65lnntFdd92lhg0buqz/yiuvyOFw6LnnntPRo0c1ceJENWvWTFu3bnWeYVuxYoVatmypWrVqadSoUfLw8NCMGTN03333ac2aNapTp47LNh966CGVL19er776qowx6dYeGxure+65R/Hx8XriiSdUqFAhffDBB3rggQc0d+5ctW/fXg0bNtSsWbP0r3/9K81LxtNz4cIFHT9+3GUsICBA3t7eio2N1d133y2Hw6FBgwYpODhYixYtUt++fRUXF6fBgwdLkuLi4vT++++ra9eu6t+/v86cOaP//Oc/Cg8P108//aTq1asrODhY7777rh599FG1b99eHTp0kCRVrVo1U3VebcaMGbpw4YIefvhheXt7q2DBgtq+fbvq16+vkiVLatiwYfL399dnn32mdu3aad68eWrfvr2ky3/0iI6OVr9+/VSnTh3FxcVp48aN2rx5s5o3b57uPsuUKaNly5ZpxYoVuu+++zKsb9asWerVq5fCw8M1btw4xcfH691339W9996rLVu2uISqq73yyit68cUX1alTJ/Xr10/Hjh3TW2+9pYYNG2rLli3OKxliYmLUunVrFS9eXE8++aSKFSumnTt3auHChXryySf1yCOP6K+//lJMTIxmzZqVaj+PPPKIZs6cqcjISD3xxBM6cOCA3n77bW3ZskXff/+9vLy8JEkjR47Uyy+/rIiICEVERGjz5s1q0aKFLl68eI3v0v98/PHH8vf3V+vWreXr66uwsDDNnj1b99xzj8u8qKgojR49Wvfcc4/GjBmjvHnzav369VqxYoVatGjhnLd792517dpVjzzyiPr3768KFSpk6udEkt577z098cQT6tixo5588klduHBB//3vf7V+/Xp169ZNkjRgwADNnTtXgwYNUqVKlXTixAmtXbtWO3fuVM2aNTN93ClSQm+BAgWue90Uc+bM0ZkzZ/TII4/I4XDotddeU4cOHbR//37n9+rBBx/U9u3b9fjjjyskJERHjx5VTEyMfv/99wx7DgCsMAAAtzFjxgwjyWzYsMHs27fP5MmTxzzxxBPO5Y0aNTKVK1d2vj5w4ICRZGbMmJFqW5LMqFGjnK9HjRplJJmHH37YOXbp0iVTqlQp43A4zNixY53jJ0+eNL6+vqZXr17OsZUrVxpJpmTJkiYuLs45/tlnnxlJZtKkScYYY5KTk0358uVNeHi4SU5Ods6Lj483oaGhpnnz5qlq6tq1a6ben8GDBxtJZs2aNc6xM2fOmNDQUBMSEmKSkpJcjn/gwIGZ2q6kNL9S3te+ffua4sWLm+PHj7us16VLFxMUFGTi4+ONMZffz4SEBJc5J0+eNEWLFjV9+vRxjh07dizV9ydFo0aNTKNGjVKN9+rVy5QpU8b5OuV7HxgYaI4ePeoyt2nTpubOO+80Fy5ccI4lJyebe+65x5QvX945Vq1aNdOqVasM35u0bNu2zfj6+hpJpnr16ubJJ580CxYsMOfOnXOZd+bMGZM/f37Tv39/l/EjR46YoKAgl/GUXkhx8OBB4+npaV555RWXdX/55ReTJ08e5/ilS5dMaGioKVOmjDl58qTL3Cv7b+DAgSatf/asWbPGSDKzZ892GV+8eLHL+NGjR03evHlNq1atXLb7/PPPG0kuPysZufPOO0337t1d1i9cuLBJTEx0ju3Zs8d4eHiY9u3bu/T01cdUpkwZI8ksXrzYZU5mf07atm3r8vskLUFBQZn+ObpSyu+yZcuWmWPHjpk//vjDzJ071wQHBxtvb2/zxx9/OOdeb88XKlTI/P33387xL7/80kgyX3/9tTHm8s+cJPP6669fd90AYAOXlwOAmypbtqz+9a9/adq0aTp8+HCWbbdfv37O//b09FTt2rVljFHfvn2d4/nz51eFChW0f//+VOv37NlTAQEBztcdO3ZU8eLF9e2330qStm7dqj179qhbt246ceKEjh8/ruPHj+vcuXNq2rSpVq9ereTkZJdtDhgwIFO1f/vtt6pTp47LJej58uXTww8/rIMHDzovrb4Rbdu2VUxMjMtXeHi4jDGaN2+e2rRpI2OM83iOHz+u8PBwnT592nmpraenp/Pz1MnJyfr777916dIl1a5d+4Yvx72WBx980Hm5uiT9/fffWrFihTp16qQzZ844az1x4oTCw8O1Z88e592j8+fPr+3bt2vPnj3Xtc/KlStr69at6tGjhw4ePKhJkyapXbt2Klq0qN577z3nvJiYGJ06dUpdu3Z1ed88PT1Vt25dl8vurzZ//nwlJyerU6dOLusWK1ZM5cuXd667ZcsWHThwQIMHD071Gf7MfKzg888/V1BQkJo3b+6yn1q1ailfvnzO/SxbtkwXL17U448/7rLdlKscMuO///2vfvnlF3Xt2tU5lvLeLFmyxDm2YMECJScna+TIkfLwcP2n2tXHFBoaqvDwcJexzP6c5M+fX3/++WeqS7OvlD9/fq1fv15//fVXpo/zSs2aNVNwcLBKly6tjh07yt/fX1999ZVKlSp1Q9uTLl+tc+WZ8pRL1lN+X/n6+ipv3rxatWpVqo8IAEB24PJyAHBjI0aM0KxZszR27Fjn51P/qdtuu83ldVBQkHx8fFS4cOFU4ydOnEi1fvny5V1eOxwOlStXznnZaEqA69WrV7o1nD592uUfzaGhoZmq/bffflPdunVTjd9xxx3O5Tf6SLVSpUqpWbNmqcaPHj2qU6dOadq0aZo2bVqa615587APPvhA48eP165du5SYmOgcz+wxXq+rt7t3714ZY/Tiiy/qxRdfTLfekiVLasyYMWrbtq1uv/12ValSRffff7/+9a9/ZepS99tvv12zZs1SUlKSduzYoYULF+q1117Tww8/rNDQUDVr1szZC+ldgh4YGJju9vfs2SNjTKp+S5FyGXHKZ4Nv9Pu+Z88enT59Os3Pokv/+97+9ttvklL3f3BwcKYvlf7oo4/k7++vsmXLau/evZIkHx8fhYSEaPbs2WrVqpWky8fk4eGhSpUqXXObafVVZn9OnnvuOS1btkx16tRRuXLl1KJFC3Xr1k3169d3rvPaa6+pV69eKl26tGrVqqWIiAj17NlTZcuWzdQxT548WbfffrtOnz6t6dOna/Xq1fL29s7Uuum5+ndYyvufErC9vb01btw4Pf300ypatKjuvvtutW7dWj179rT2GEAAyAihGwDcWNmyZdWjRw9NmzZNw4YNS7U8vTN5SUlJ6W7T09MzU2OSMvx8dXpSzmK//vrrql69eppz8uXL5/Lane62fLWU4+nRo0e6f0hICakfffSRevfurXbt2unZZ59VkSJF5OnpqejoaJcbR2Uk5SZwV0vve3r1e5dS7zPPPJPqDGiKcuXKSZIaNmyoffv26csvv9TSpUv1/vvv680339SUKVNcrojIiKenp+68807deeedqlevnpo0aaLZs2erWbNmzlpmzZqVZtjJkyf9f4YkJyfL4XBo0aJFafbn1T10o5KTk1WkSBHNnj07zeVXXkXwTxhj9PHHH+vcuXNphumjR4/q7Nmz131c/+Rn54477tDu3bu1cOFCLV68WPPmzdM777yjkSNHOh/71qlTJzVo0EBffPGFli5dqtdff13jxo3T/Pnz1bJly2vuo06dOs67l7dr10733nuvunXrpt27dzuP9Xp7PjO/rwYPHqw2bdpowYIFWrJkiV588UVFR0drxYoVqlGjxjXrBoCsROgGADc3YsQIffTRRxo3blyqZSlneE6dOuUynnJWzoarL0U2xmjv3r3O4BkWFibp8lnMtM4c/xNlypTR7t27U43v2rXLuTyrBQcHKyAgQElJSdc8nrlz56ps2bKaP3++yx9E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ABBjTDvTnT9/fp0/f17lypVTvXr19PjxYzVs2FDHjh1Tjhw5zCoLAAAAAIAYY9qZbklKmjSpvvjiCzNLAAAAAADAZkwN3Q8ePNDcuXN15swZSVLevHnVrl07pUiRwsyyAAAAAACIEaZdXr57925lzZpV3333nR48eKAHDx7ou+++U7Zs2bR7926zygIAAAAAIMaYdqa7W7duatKkiaZPny5HR0dJUlhYmD755BN169ZNJ06cMKs0AAAAAABihGlnui9cuKBPP/3UGrglydHRUX379tWFCxfMKgsAAAAAgBhjWuguWrSotZf7386cOaNChQqZUBEAAAAAADErVi8v//33363/7tmzp3r16qULFy7ovffekyT99ttvmjp1qsaOHRubZQEAAAAAYBOxGroLFy4si8UiwzCsY5999lmk7Zo3b64mTZrEZmkAAAAAAMS4WA3dly9fjs3DAQAAAABgqlgN3VmyZInNwwEAAAAAYCrTHhkmSTdv3tTevXt19+5dhYeHR1jXs2dPk6oCAAAAACBmmBa658+fry5dusjFxUUpU6aUxWKxrrNYLIRuAAAAAECcZ1ro/vLLLzVkyBANGjRIDg6mPbkMAAAAAACbMS3tBgcHq2nTpgRuAAAAAEC8ZVri7dChg1asWGHW4QEAAAAAsDnTLi8fM2aMPvjgA23evFkFChSQs7NzhPUTJ040qTIAAAAAAGKGqaF7y5YtypUrlyRFupEaAAAAAABxnWmhe8KECfr+++/Vtm1bs0oAAAAAAMCmTOvpdnV1VdmyZc06PAAAAAAANmda6O7Vq5cmT55s1uEBAAAAALA50y4vP3jwoLZv364NGzYoX758kW6ktnr1apMqAwAAAAAgZpgWupMlS6aGDRuadXgAAAAAAGzOtNA9b948sw4NAAAAAECsMK2nGwAAAACA+M60M93ZsmV77fO4L126FIvVAAAAAAAQ80wL3b17946wHBoaqmPHjmnz5s3q37+/OUUBAAAAABCDTAvdvXr1eun41KlTdfjw4ViuBgAAAACAmGd3Pd2+vr5atWqV2WUAAAAAAPDO7C50r1y5UilSpDC7DAAAAAAA3plpl5cXKVIkwo3UDMPQ7du3de/ePU2bNs2ssgAAAAAAiDGmhe769etHWHZwcFDq1KlVqVIl5c6d25yiAAAAAACIQaaF7qFDh5p1aAAAAAAA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\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Summary Statistics:\n", + " run f1_score n_features runtime pipelines_tested\n", + "count 2.000000 2.000000 2.0 2.000000 2.000000\n", + "mean 1.500000 0.987198 5.0 109.132951 114.500000\n", + "std 0.707107 0.000000 0.0 1.063263 0.707107\n", + "min 1.000000 0.987198 5.0 108.381110 114.000000\n", + "25% 1.250000 0.987198 5.0 108.757030 114.250000\n", + "50% 1.500000 0.987198 5.0 109.132951 114.500000\n", + "75% 1.750000 0.987198 5.0 109.508871 114.750000\n", + "max 2.000000 0.987198 5.0 109.884791 115.000000\n", + "\n", + "Correlation Matrix:\n", + " f1_score n_features pipelines_tested runtime\n", + "f1_score NaN NaN NaN NaN\n", + "n_features NaN NaN NaN NaN\n", + "pipelines_tested NaN NaN 1.0 1.0\n", + "runtime NaN NaN 1.0 1.0\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Different Algorithm set" + ], + "metadata": { + "id": "QJQXi06FdUDN" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.preprocessing import QuantileTransformer, LabelEncoder\n", + "from sklearn.model_selection import train_test_split\n", + "from tpot import TPOTClassifier\n", + "from sklearn.metrics import f1_score\n", + "from collections import defaultdict\n", + "import time\n", + "import re\n", + "from tabulate import tabulate\n", + "\n", + "\n", + "\n", + "# Encode labels\n", + "le = LabelEncoder()\n", + "y_encoded = le.fit_transform(y)\n", + "\n", + "# Function to perform PCA\n", + "def perform_pca(X, transformer, n_components=0.95):\n", + " X_transformed = transformer.fit_transform(X)\n", + " pca = PCA(n_components=n_components)\n", + " X_pca = pca.fit_transform(X_transformed)\n", + " n_components_selected = X_pca.shape[1]\n", + " return X_pca, n_components_selected\n", + "\n", + "# Perform PCA with QuantileTransformer\n", + "transformer = QuantileTransformer(n_quantiles=1000, output_distribution='normal', random_state=42)\n", + "X_pca, n_components = perform_pca(X, transformer)\n", + "\n", + "print(f\"Number of components selected to explain 95% of variance: {n_components}\")\n", + "\n", + "# Initialize results storage\n", + "results = defaultdict(list)\n", + "\n", + "# Number of runs\n", + "n_runs = 2\n", + "\n", + "# Function to extract number of features selected\n", + "def get_n_features(pipeline_str):\n", + " match = re.search(r'SelectPercentile\\(score_func=f_classif, percentile=(\\d+)\\)', pipeline_str)\n", + " if match:\n", + " percentile = int(match.group(1))\n", + " return int(X_pca.shape[1] * percentile / 100)\n", + " return X_pca.shape[1] # If no feature selection, return all features\n", + "\n", + "for run in range(n_runs):\n", + " print(f\"\\nStarting run {run + 1}/{n_runs}\")\n", + " start_time = time.time()\n", + "\n", + " # Stratified split\n", + " X_train, X_test, y_train, y_test = train_test_split(X_pca, y_encoded, test_size=0.2, random_state=42 + run, stratify=y_encoded)\n", + "\n", + " # TPOT classifier with reduced complexity and CPU usage\n", + " tpot = TPOTClassifier(\n", + " config_dict='TPOT light', # Use a lighter configuration\n", + " scoring='f1_weighted',\n", + " verbosity=2,\n", + " generations=3,\n", + " population_size=10,\n", + " n_jobs=-1,\n", + " random_state=42 + run\n", + " )\n", + "\n", + " try:\n", + " # Fit\n", + " tpot.fit(X_train, y_train)\n", + "\n", + " # Predict and calculate F1 score\n", + " y_pred = tpot.predict(X_test)\n", + " f1 = f1_score(y_test, y_pred, average='weighted')\n", + "\n", + " # Get pipeline string and extract number of features\n", + " pipeline_str = str(tpot.fitted_pipeline_)\n", + " n_features = get_n_features(pipeline_str)\n", + "\n", + " # Store results\n", + " results['run'].append(run + 1)\n", + " results['f1_score'].append(f1)\n", + " results['best_pipeline'].append(pipeline_str)\n", + " results['n_features'].append(n_features)\n", + " results['runtime'].append(time.time() - start_time)\n", + " results['pipelines_tested'].append(len(tpot.evaluated_individuals_))\n", + "\n", + " print(f\"Run {run + 1} completed. F1 Score: {f1:.4f}, Features selected: {n_features}, Pipelines tested: {len(tpot.evaluated_individuals_)}\")\n", + "\n", + " except Exception as e:\n", + " print(f\"Error in run {run + 1}: {str(e)}\")\n", + " results['run'].append(run + 1)\n", + " results['f1_score'].append(None)\n", + " results['best_pipeline'].append(None)\n", + " results['n_features'].append(None)\n", + " results['runtime'].append(time.time() - start_time)\n", + " results['pipelines_tested'].append(None)\n", + "\n", + "# Print results table\n", + "print(\"\\nResults Summary:\")\n", + "print(tabulate(results, headers='keys', tablefmt='grid'))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 669, + "referenced_widgets": [ + "e329ae9f00ae426caba593bf82062720", + "6b18e9941ad8489a856d8951086dc0ec", + "bd1ef0b1216f44e981e06617353af203", + "cb16a7ccc2d048699ec81bd9cc08782b", + "2057161353254330b31e15c030f5c77e", + "2768fc55816a4ddabd3389b3e6c9a0df", + "12c31e7d69934b1bb13b7e4de18f9aee", + "d3f693b6862747fbab9f786e7ef0a9cf", + "f3a099a3356044e7a641d590c6381041", + "aab64f46dfdf4948bec48ef02618cf75", + "b83434e8778040d4975f5fab89a976ec", + "3ae62907413b4d969f53c4a3092fb46d", + "5af08e85e25040b19544493df13617d5", + "439b9e942cec4fe699f3e561082585b5", + "b4b43f188f454890a04bc1869680c46d", + "4de8382a838648b6bf2d639b5ae65c7b", + "32aa5ea1c8354c0eb3538819a48e81ea", + "ed0c20dcb4764e629766a2e31d019edf", + "90db1881f3254f71adf5d809c0d83bae", + "87b95caad65649a9b85bdc015c665838", + "8151a7980fc346debb0caf1c20af5429", + "2f6c4ac937de426ab94fdde3fc4fc95a" + ] + }, + "id": "pDB9efndcv9g", + "outputId": "922183ba-2287-40a7-8d73-32a476c0557f" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Number of components selected to explain 95% of variance: 5\n", + "\n", + "Starting run 1/2\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Optimization Progress: 0%| | 0/40 [00:00 0]\n", + "\n", + "# Sort by count\n", + "summary_table.sort(key=lambda x: -x[1])\n", + "\n", + "# Print the summary table\n", + "print(\"\\nEstimated Algorithms Used Across All Runs:\")\n", + "print(tabulate(summary_table, headers=['Algorithm', 'Estimated Count'], tablefmt='grid'))\n", + "\n", + "# Calculate and print additional statistics\n", + "total_runs = len(results_df)\n", + "successful_runs = results_df['f1_score'].notna().sum()\n", + "average_f1 = results_df['f1_score'].mean()\n", + "average_features = results_df['n_features'].mean()\n", + "average_runtime = results_df['runtime'].mean()\n", + "\n", + "print(f\"\\nTotal Runs: {total_runs}\")\n", + "print(f\"Successful Runs: {successful_runs}\")\n", + "print(f\"Average F1 Score: {average_f1:.4f}\")\n", + "print(f\"Average Number of Features: {average_features:.2f}\")\n", + "print(f\"Average Runtime: {average_runtime:.2f} seconds\")\n", + "print(f\"Total Pipelines Tested: {total_pipelines}\")\n", + "\n", + "# Print full best pipelines for each run\n", + "print(\"\\nBest Pipelines for Each Run:\")\n", + "for index, row in results_df.iterrows():\n", + " print(f\"\\nRun {index + 1}:\")\n", + " print(f\"F1 Score: {row['f1_score']:.4f}\")\n", + " print(f\"Pipeline: {row['best_pipeline']}\")\n", + " print(f\"Pipelines tested in this run: {row['pipelines_tested']}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "VgKt6AU28-6f", + "outputId": "ab7671a3-1229-42f5-807a-eec12327733a" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Estimated Algorithms Used Across All Runs:\n", + "+----------------------------+-------------------+\n", + "| Algorithm | Estimated Count |\n", + "+============================+===================+\n", + "| LogisticRegression | 38 |\n", + "+----------------------------+-------------------+\n", + "| KNeighborsClassifier | 38 |\n", + "+----------------------------+-------------------+\n", + "| DecisionTreeClassifier | 38 |\n", + "+----------------------------+-------------------+\n", + "| RandomForestClassifier | 38 |\n", + "+----------------------------+-------------------+\n", + "| GradientBoostingClassifier | 38 |\n", + "+----------------------------+-------------------+\n", + "| MLPClassifier | 38 |\n", + "+----------------------------+-------------------+\n", + "| Other | 3 |\n", + "+----------------------------+-------------------+\n", + "\n", + "Total Runs: 2\n", + "Successful Runs: 2\n", + "Average F1 Score: 0.9872\n", + "Average Number of Features: 5.00\n", + "Average Runtime: 109.13 seconds\n", + "Total Pipelines Tested: 229\n", + "\n", + "Best Pipelines for Each Run:\n", + "\n", + "Run 1:\n", + "F1 Score: 0.9872\n", + "Pipeline: Pipeline(steps=[('gaussiannb', GaussianNB())])\n", + "Pipelines tested in this run: 115\n", + "\n", + "Run 2:\n", + "F1 Score: 0.9872\n", + "Pipeline: Pipeline(steps=[('extratreesclassifier',\n", + " ExtraTreesClassifier(criterion='entropy',\n", + " max_features=0.8500000000000001,\n", + " min_samples_leaf=20, min_samples_split=19,\n", + " random_state=43))])\n", + "Pipelines tested in this run: 114\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "# Assuming results_df is your DataFrame with the results\n", + "\n", + "fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 18))\n", + "\n", + "ax1.plot(results_df['run'], results_df['f1_score'], 'bo-')\n", + "ax1.set_title('TPOT-NN Performance (F1 Score) Across Runs')\n", + "ax1.set_xlabel('Run')\n", + "ax1.set_ylabel('F1 Score')\n", + "ax1.grid(True)\n", + "\n", + "ax2.plot(results_df['run'], results_df['n_features'], 'ro-')\n", + "ax2.set_title('Number of Features Selected Across Runs')\n", + "ax2.set_xlabel('Run')\n", + "ax2.set_ylabel('Number of Features')\n", + "ax2.grid(True)\n", + "\n", + "ax3.plot(results_df['run'], results_df['pipelines_tested'], 'go-')\n", + "ax3.set_title('Number of Pipelines Tested Across Runs')\n", + "ax3.set_xlabel('Run')\n", + "ax3.set_ylabel('Number of Pipelines')\n", + "ax3.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig('tpot_nn_performance_features_pipelines.png')\n", + "plt.show()\n", + "\n", + "# Print summary statistics\n", + "print(\"\\nSummary Statistics:\")\n", + "print(results_df.describe())\n", + "\n", + "# Optional: If you want to see the correlation between different metrics\n", + "correlation_matrix = results_df[['f1_score', 'n_features', 'pipelines_tested', 'runtime']].corr()\n", + "print(\"\\nCorrelation Matrix:\")\n", + "print(correlation_matrix)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "SYRHdR4_YKXA", + "outputId": "a25b02c4-ae41-4ef9-c701-a77d227b7ab9" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAb+CAYAAABEzlO5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeZxOdf/H8fc1Y8xmZmxjlxlDhOyRZMsyGWRJ9htjKUUllShhtAwVcZdC3SjRhlTKMrZQkrU7a9YWMZYwGMaY+f7+8JvrdpnF0HzNNeb1fDzm8ej6nu8553Ou+czkPedc5ziMMUYAAAAAACDLeWR3AQAAAAAA3KoI3QAAAAAAWELoBgAAAADAEkI3AAAAAACWELoBAAAAALCE0A0AAAAAgCWEbgAAAAAALCF0AwAAAABgCaEbAAAAAABLCN0AgFxn8eLFql69unx8fORwOHTq1KnsLinHe+2111SxYkUlJydndyk5wo4dO5QnTx5t27Ytu0sBAFhG6AaALOJwODL1tWrVKh08eNBlzNPTU7fddpvat2+vrVu3ptr2uXPn9NJLL6lq1ary8/NTUFCQGjRooA8//FDGGOe83r17Z6qG3r17p3kMM2fOlMPhkI+Pjw4dOpRqeePGjVWlShWXsZCQEDkcDj3++OOp5q9atUoOh0Nz587N8L273vfjnzhx4oQ6deokX19fTZ48WbNmzZK/v3+W7iO3iYuL07hx4/Tcc8/Jw+N//7RIr/+KFSvmnHP48GENGzZMTZo0UUBAgPNn5Hp8/fXXatSokYoUKSI/Pz+VLVtWnTp10uLFi7PqELNcpUqV1KpVK40cOfK6133nnXfkcDhUt25dC5W5h8aNG7v0jK+vr6pWraqJEyfyhx0AOU6e7C4AAG4Vs2bNcnn94YcfKiYmJtX4HXfcofPnz0uSunbtqoiICCUlJWnnzp169913tWjRIv3444+qXr26JCk2NlZNmzbVzp071aVLFw0aNEgXLlzQvHnz1KtXL3377beaPXu2PD099cgjj6hZs2bOfR04cEAjR47Uww8/rAYNGjjHw8LCMjyWhIQEjR07Vm+99Vamj/+9997T8OHDVaJEiUyvc7XMvB//1IYNG3TmzBm99NJLLu8Vbtz06dN16dIlde3aNdWy5s2bq2fPni5jvr6+zv/evXu3xo0bp/Lly+vOO+/UunXrrmvfb7zxhp599lk1atRIw4cPl5+fn/bu3atly5bpk08+0f33339jB3UTDBgwQBEREdq3b981fyavNHv2bIWEhOinn37S3r17Va5cOYtVZp9SpUopOjpaknT8+HHNmTNHTz31lI4dO6ZXXnklm6sDgOtgAABWDBw40KT3a/bAgQNGknn99dddxr/66isjyTz88MPOsfDwcOPh4WG+/PLLVNt55plnjCQzduzYNPezYcMGI8nMmDEjUzXPmDHDSDLVq1c33t7e5tChQy7LGzVqZCpXruwyVqZMGVO5cmWTJ08e8/jjj7ssW7lypZFkPv/88wz3ez3vx406e/asMcaYDz74wEgyGzZs+MfbvHrbuVXVqlVNjx49Uo1LMgMHDsxw3bi4OHPixAljjDGff/65kWRWrlyZqf0mJiaawMBA07x58zSXx8bGZmo7WSEpKcmcP3/+uta5ePGiKVCggHnxxRczvc7+/fuNJDN//nwTHBxsRo8efb2lpuv8+fMmKSkpy7b3T6T1u+b8+fOmTJkyJiAgwFy6dCmbKgOA68fl5QDgRu677z5Jl89QS9KPP/6oJUuWqHfv3nrggQdSzY+Ojlb58uU1btw459nzrPD8888rKSlJY8eOzdT8kJAQ9ezZU++9957++uuvLKvj6vdDktavX6/7779fQUFB8vPzU6NGjfT999+7rDd69Gg5HA7t2LFD3bp1U4ECBXTvvfeqcePG6tWrlyTprrvuSnWp/eeff65atWrJ19dXhQsXVo8ePVJdZt+7d2/ly5dP+/btU0REhAICAtS9e3dJly+nHjRokD7//HNVqlRJvr6+qlevnn755RdJ0tSpU1WuXDn5+PiocePGOnjwoMu216xZo4ceeki33XabvL29Vbp0aT311FOpvrcpNRw6dEjt2rVTvnz5FBwcrGeeeUZJSUkuc5OTkzVp0iTdeeed8vHxUXBwsO6//35t3LjRZd5HH33kPPaCBQuqS5cu+uOPP675PTpw4ID++9//3vBVAwEBASpYsOANrXv8+HHFxcWpfv36aS4vUqSIy+sLFy5o9OjRuv322+Xj46PixYurQ4cO2rdvn3POuXPn9PTTT6t06dLy9vZWhQoV9MYbb7h8jEP63/d69uzZqly5sry9vZ2Xsx86dEh9+vRR0aJF5e3trcqVK2v69Omp6vPy8lLjxo315ZdfZvqYZ8+erQIFCqhVq1bq2LGjZs+enea8U6dO6amnnlJISIi8vb1VqlQp9ezZU8ePH5f0v49+fPLJJxoxYoRKliwpPz8/xcXFScrcz8KRI0cUGRmpUqVKydvbW8WLF1fbtm1d+nrjxo0KDw9X4cKF5evrq9DQUPXp0yfTx3slHx8f3XXXXTpz5oyOHj0q6X8fTZk5c2aq+Q6HQ6NHj3a+Tvm9sHfvXvXu3Vv58+dXUFCQIiMjFR8f77JuTEyM7r33XuXPn1/58uVThQoV9Pzzz99Q3QDA5eUA4EZS/vFfqFAhSZc/qyop1eW5KfLkyaNu3bopKipK33//fZZdLh0aGuoM0cOGDcvUJeMvvPCCPvzwQ40dO1b//ve/s6SOq9+PFStWqGXLlqpVq5ZGjRolDw8PzZgxQ/fdd5/WrFmjOnXquKz/0EMPqXz58nr11VdljFH58uVVoUIFTZs2TWPGjFFoaKjzst6ZM2cqMjJSd911l6KjoxUbG6tJkybp+++/15YtW5Q/f37ndi9duqTw8HDde++9euONN+Tn5+dctmbNGn311VcaOHCgpMt/GGndurWGDh2qd955R4899phOnjyp1157TX369NGKFSuc637++eeKj4/Xo48+qkKFCumnn37SW2+9pT///FOff/65y7ElJSUpPDxcdevW1RtvvKFly5Zp/PjxCgsL06OPPuqc17dvX82cOVMtW7ZUv379dOnSJa1Zs0Y//vijateuLUl65ZVX9OKLL6pTp07q16+fjh07prfeeksNGzZMdexX++GHHyRJNWvWTHP5hQsXnEEvRUBAgLy9vdPdZmYVKVJEvr6++vrrr/X4449nGN6TkpLUunVrLV++XF26dNGTTz6pM2fOKCYmRtu2bVNYWJiMMXrggQe0cuVK9e3bV9WrV9eSJUv07LPP6tChQ3rzzTddtrlixQp99tlnGjRokAoXLqyQkBDFxsbq7rvvdoby4OBgLVq0SH379lVcXJwGDx7sso1atWrpyy+/VFxcnAIDA695zLNnz1aHDh2UN29ede3aVe+++642bNigu+66yznn7NmzatCggXbu3Kk+ffqoZs2aOn78uL766iv9+eefKly4sHPuSy+9pLx58+qZZ55RQkKC8ubNm+mfhQcffFDbt2/X448/rpCQEB09elQxMTH6/fffna9btGih4OBgDRs2TPnz59fBgwc1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TIwSExPVokULnTt3Lt11fvjhB3Xt2lV9+/bVli1b1K5dO7Vr107btm27iZXfGO5efotwOBz64osv1K5du3TnPPfcc/rmm29cGrNLly46deqUFi9efBOqRG6QmV5MS+XKldW5c2eNHDnSTmHIla6nH7t06aLy5cvL09NTCxYs0NatW63Xh9wlM/24ePFidenSRfv371fBggVvXnHIdTLTj2+88Ybeffdd7du3zzn21ltvady4cfrzzz9vQpXILY4dO6YiRYrou+++U8OGDdOc07lzZ507d04LFy50jt19992qXr26pkyZcrNKvSGc6c5F1q1bp2bNmrmMhYeHa926ddlUEXBZcnKyzpw5wz8wkW1mzJih/fv3a9SoUdldCnK5r776SrVr19Zrr72mkiVL6vbbb9czzzyj8+fPZ3dpyIXq1aunP/74Q99++62MMYqNjdXcuXMVERGR3aXhFnP69GlJyvDfgjk5y+TJ7gJw8xw5ckRFixZ1GStatKji4uJ0/vx5+fr6ZlNlyO3eeOMNnT17Vp06dcruUpAL7dmzR8OGDdOaNWuUJw//W0T22r9/v9auXSsfHx998cUXOn78uB577DGdOHFCM2bMyO7ykMvUr19fs2fPVufOnXXhwgVdunRJbdq0ue6P7wAZSU5O1uDBg1W/fn1VqVIl3XnpZZkjR47YLvEf40w3gGw1Z84cRUVF6bPPPlORIkWyuxzkMklJSerWrZuioqJ0++23Z3c5gJKTk+VwODR79mzVqVNHERERmjBhgj744APOduOm27Fjh5588kmNHDlSmzZt0uLFi3Xw4EENGDAgu0vDLWTgwIHatm2bPvnkk+wuxRr+pJ+LFCtWTLGxsS5jsbGxCgwM5Cw3ssUnn3yifv366fPPP091uRBwM5w5c0YbN27Uli1bNGjQIEmXQ48xRnny5NHSpUt13333ZXOVyE2KFy+ukiVLKigoyDl2xx13yBijP//8U+XLl8/G6pDbREdHq379+nr22WclSVWrVpW/v78aNGigl19+WcWLF8/mCpHTDRo0SAsXLtTq1atVqlSpDOeml2WKFStms8QswZnuXKRevXpavny5y1hMTIzq1auXTRUhN/v4448VGRmpjz/+WK1atcrucpBLBQYG6pdfftHWrVudXwMGDFCFChW0detW1a1bN7tLRC5Tv359/fXXXzp79qxz7Ndff5WHh8c1/0EKZLX4+Hh5eLjGBU9PT0kS92LGP2GM0aBBg/TFF19oxYoVCg0NveY6OTnLcKY7Bzt79qz27t3rfH3gwAFt3bpVBQsW1G233abhw4fr0KFD+vDDDyVJAwYM0Ntvv62hQ4eqT58+WrFihT777DN988032XUIuEVcby/OmTNHvXr10qRJk1S3bl3nZ3F8fX1dzu4AN+J6+tHDwyPV58eKFCkiHx+fDD9XBmTW9f5+7Natm1566SVFRkYqKipKx48f17PPPqs+ffpwVRr+sevtxzZt2qh///569913FR4ersOHD2vw4MGqU6eOSpQokV2HgVvAwIEDNWfOHH355ZcKCAhw/lswKCjI+buuZ8+eKlmypKKjoyVJTz75pBo1aqTx48erVatW+uSTT7Rx40ZNmzYt244j0wxyrJUrVxpJqb569epljDGmV69eplGjRqnWqV69usmbN68pW7asmTFjxk2vG7ee6+3FRo0aZTgf+Cdu5HfjlUaNGmWqVat2U2rFre9G+nHnzp2mWbNmxtfX15QqVcoMGTLExMfH3/ziccu5kX7897//bSpVqmR8fX1N8eLFTffu3c2ff/5584vHLSWtPpTkkk0aNWqU6t+Gn332mbn99ttN3rx5TeXKlc0333xzcwu/QTynGwAAAAAAS/hMNwAAAAAAlhC6AQAAAACwhNANAAAAAIAlhG4AAAAAACwhdAMAAAAAYAmhGwAAAAAASwjdAAAAAABYQugGAAAAAMASQjcAAAAAAJYQugEAgFPv3r3lcDjkcDjk5eWl0NBQDR06VBcuXMju0gAAyJHyZHcBAADAvdx///2aMWOGEhMTtWnTJvXq1UsOh0Pjxo3L7tIAAMhxONMNAABceHt7q1ixYipdurTatWunZs2aKSYmRpIUEhKiiRMnusyvXr26Ro8e7XztcDj0/vvvq3379vLz81P58uX11Vdf3cQjAADAfRC6AQBAurZt26YffvhBefPmva71oqKi1KlTJ/33v/9VRESEunfvrr///ttSlQAAuC9CNwAAcLFw4ULly5dPPj4+uvPOO3X06FE9++yz17WN3r17q2vXripXrpxeffVVnT17Vj/99JOligEAcF98phsAALho0qSJ3n33XZ07d05vvvmm8uTJowcffPC6tlG1alXnf/v7+yswMFBHjx7N6lIBAHB7nOkGAAAu/P39Va5cOVWrVk3Tp0/X+vXr9Z///EeS5OHhIWOMy/zExMRU2/Dy8nJ57XA4lJycbK9oAADcFKEbAACky8PDQ88//7xGjBih8+fPKzg4WIcPH3Yuj4uL04EDB7KxQgAA3BuhGwAAZOihhx6Sp6enJk+erPvuu0+zZs3SmjVr9Msvv6hXr17y9PTM7hIBAHBbfKYbAABkKE+ePBo0aJBee+017dmzRwcOHFDr1q0VFBSkl156iTPdAABkwGGu/mAWAAAAAADIElxeDgAAAACAJYRuAAAAAAAsIXQDAAAAAGAJoRsAAAAAAEsI3QAAAAAAWELoBgAAAADAEkI3AAAAAACWELoBAAAAALCE0A0AAAAAgCWEbgAAAAAALCF0AwAAAABgCaEbAAAAAABLCN0AAAAAAFhC6AYAAAAAwBJCNwAAAAAAlhC6AQAAAACwhNANAAAAAIAlhG4AQKasWrVKDodDc+fOze5SMiU2NlYdO3ZUoUKF5HA4NHHixOwuCRkYPXq0HA5HdpdxQ0JCQtS7d+/sLgMA4KYI3QDgRmbOnCmHwyEfHx8dOnQo1fLGjRurSpUq2VBZzvPUU09pyZIlGj58uGbNmqX7778/3bkOhyPNr2LFilmpLT4+XqNHj9aqVausbP9mOHjwoCIjIxUWFiYfHx8VK1ZMDRs21KhRo7K7tDR9++23Gj16dHaXIUk6deqUfHx85HA4tHPnzuwux4qU32UpX3ny5FHJkiXVu3fvNH+3AcCtLE92FwAASC0hIUFjx47VW2+9ld2l5FgrVqxQ27Zt9cwzz2RqfvPmzdWzZ0+XMV9fXxulKT4+XlFRUZIu/yElp9m7d6/uuusu+fr6qk+fPgoJCdHhw4e1efNmjRs3znls7uTbb7/V5MmT3SJ4f/75584/6syePVsvv/xydpdkzZgxYxQaGqoLFy7oxx9/1MyZM7V27Vpt27ZNPj4+2V0eANwUhG4AcEPVq1fXe++9p+HDh6tEiRLZXc5Nde7cOfn7+//j7Rw9elT58+fP9Pzbb79dPXr0+Mf7zU6XLl1ScnKy8ubNa3U/b775ps6ePautW7eqTJkyLsuOHj1qdd+3go8++kgREREqU6aM5syZk2Wh2xijCxcuWPtj0Y1o2bKlateuLUnq16+fChcurHHjxumrr75Sp06dsrk6ALg5uLwcANzQ888/r6SkJI0dOzbDeQcPHpTD4dDMmTNTLXM4HC5n9VI+M/vrr7+qR48eCgoKUnBwsF588UUZY/THH3+obdu2CgwMVLFixTR+/Pg095mUlKTnn39exYoVk7+/vx544AH98ccfqeatX79e999/v4KCguTn56dGjRrp+++/d5mTUtOOHTvUrVs3FShQQPfee2+Gx7x//3499NBDKliwoPz8/HT33Xfrm2++cS5PuazVGKPJkyc7L2/9pw4dOqQ+ffqoaNGi8vb2VuXKlTV9+nSXORcvXtTIkSNVq1YtBQUFyd/fXw0aNNDKlSudcw4ePKjg4GBJUlRUlLO+lO9V48aN0zz73bt3b4WEhLhsx+Fw6I033tDEiRMVFhYmb29v7dixQ5K0a9cudezYUQULFpSPj49q166tr776ymWbiYmJioqKUvny5eXj46NChQrp3nvvVUxMTIbvxb59+1SqVKlUgVuSihQpkmps0aJFatCggfz9/RUQEKBWrVpp+/btGe4jxUcffaRatWrJ19dXBQsWVJcuXdLtt4iICBUoUED+/v6qWrWqJk2aJOnyezd58mRJrh8lSJGcnKyJEyeqcuXK8vHxUdGiRfXII4/o5MmTLvswxujll19WqVKl5OfnpyZNmmT6OFL8/vvvWrNmjbp06aIuXbrowIED+uGHH9I99jp16sjPz08FChRQw4YNtXTpUufykJAQtW7dWkuWLFHt2rXl6+urqVOnSrr2z0mKt956S5UrV3buo3bt2pozZ45z+ZkzZzR48GCFhITI29tbRYoUUfPmzbV58+brOu4UDRo0kHS5h1LcSM9PmzbN2fN33XWXNmzY4LLukSNHFBkZqVKlSsnb21vFixdX27ZtdfDgwRuqGwD+Cc50A4AbCg0NVc+ePfXee+9p2LBhWXq2u3Pnzrrjjjs0duxYffPNN3r55ZdVsGBBTZ06Vffdd5/GjRun2bNn65lnntFdd92lhg0buqz/yiuvyOFw6LnnntPRo0c1ceJENWvWTFu3bnWeYVuxYoVatmypWrVqadSoUfLw8NCMGTN03333ac2aNapTp47LNh966CGVL19er776qowx6dYeGxure+65R/Hx8XriiSdUqFAhffDBB3rggQc0d+5ctW/fXg0bNtSsWbP0r3/9K81LxtNz4cIFHT9+3GUsICBA3t7eio2N1d133y2Hw6FBgwYpODhYixYtUt++fRUXF6fBgwdLkuLi4vT++++ra9eu6t+/v86cOaP//Oc/Cg8P108//aTq1asrODhY7777rh599FG1b99eHTp0kCRVrVo1U3VebcaMGbpw4YIefvhheXt7q2DBgtq+fbvq16+vkiVLatiwYfL399dnn32mdu3aad68eWrfvr2ky3/0iI6OVr9+/VSnTh3FxcVp48aN2rx5s5o3b57uPsuUKaNly5ZpxYoVuu+++zKsb9asWerVq5fCw8M1btw4xcfH691339W9996rLVu2uISqq73yyit68cUX1alTJ/Xr10/Hjh3TW2+9pYYNG2rLli3OKxliYmLUunVrFS9eXE8++aSKFSumnTt3auHChXryySf1yCOP6K+//lJMTIxmzZqVaj+PPPKIZs6cqcjISD3xxBM6cOCA3n77bW3ZskXff/+9vLy8JEkjR47Uyy+/rIiICEVERGjz5s1q0aKFLl68eI3v0v98/PHH8vf3V+vWreXr66uwsDDNnj1b99xzj8u8qKgojR49Wvfcc4/GjBmjvHnzav369VqxYoVatGjhnLd792517dpVjzzyiPr3768KFSpk6udEkt577z098cQT6tixo5588klduHBB//3vf7V+/Xp169ZNkjRgwADNnTtXgwYNUqVKlXTixAmtXbtWO3fuVM2aNTN93ClSQm+BAgWue90Uc+bM0ZkzZ/TII4/I4XDotddeU4cOHbR//37n9+rBBx/U9u3b9fjjjyskJERHjx5VTEyMfv/99wx7DgCsMAAAtzFjxgwjyWzYsMHs27fP5MmTxzzxxBPO5Y0aNTKVK1d2vj5w4ICRZGbMmJFqW5LMqFGjnK9HjRplJJmHH37YOXbp0iVTqlQp43A4zNixY53jJ0+eNL6+vqZXr17OsZUrVxpJpmTJkiYuLs45/tlnnxlJZtKkScYYY5KTk0358uVNeHi4SU5Ods6Lj483oaGhpnnz5qlq6tq1a6ben8GDBxtJZs2aNc6xM2fOmNDQUBMSEmKSkpJcjn/gwIGZ2q6kNL9S3te+ffua4sWLm+PHj7us16VLFxMUFGTi4+ONMZffz4SEBJc5J0+eNEWLFjV9+vRxjh07dizV9ydFo0aNTKNGjVKN9+rVy5QpU8b5OuV7HxgYaI4ePeoyt2nTpubOO+80Fy5ccI4lJyebe+65x5QvX945Vq1aNdOqVasM35u0bNu2zfj6+hpJpnr16ubJJ580CxYsMOfOnXOZd+bMGZM/f37Tv39/l/EjR46YoKAgl/GUXkhx8OBB4+npaV555RWXdX/55ReTJ08e5/ilS5dMaGioKVOmjDl58qTL3Cv7b+DAgSatf/asWbPGSDKzZ892GV+8eLHL+NGjR03evHlNq1atXLb7/PPPG0kuPysZufPOO0337t1d1i9cuLBJTEx0ju3Zs8d4eHiY9u3bu/T01cdUpkwZI8ksXrzYZU5mf07atm3r8vskLUFBQZn+ObpSyu+yZcuWmWPHjpk//vjDzJ071wQHBxtvb2/zxx9/OOdeb88XKlTI/P33387xL7/80kgyX3/9tTHm8s+cJPP6669fd90AYAOXlwOAmypbtqz+9a9/adq0aTp8+HCWbbdfv37O//b09FTt2rVljFHfvn2d4/nz51eFChW0f//+VOv37NlTAQEBztcdO3ZU8eLF9e2330qStm7dqj179qhbt246ceKEjh8/ruPHj+vcuXNq2rSpVq9ereTkZJdtDhgwIFO1f/vtt6pTp47LJej58uXTww8/rIMHDzovrb4Rbdu2VUxMjMtXeHi4jDGaN2+e2rRpI2OM83iOHz+u8PBwnT592nmpraenp/Pz1MnJyfr777916dIl1a5d+4Yvx72WBx980Hm5uiT9/fffWrFihTp16qQzZ844az1x4oTCw8O1Z88e592j8+fPr+3bt2vPnj3Xtc/KlStr69at6tGjhw4ePKhJkyapXbt2Klq0qN577z3nvJiYGJ06dUpdu3Z1ed88PT1Vt25dl8vurzZ//nwlJyerU6dOLusWK1ZM5cuXd667ZcsWHThwQIMHD071Gf7MfKzg888/V1BQkJo3b+6yn1q1ailfvnzO/SxbtkwXL17U448/7rLdlKscMuO///2vfvnlF3Xt2tU5lvLeLFmyxDm2YMECJScna+TIkfLwcP2n2tXHFBoaqvDwcJexzP6c5M+fX3/++WeqS7OvlD9/fq1fv15//fVXpo/zSs2aNVNwcLBKly6tjh07yt/fX1999ZVKlSp1Q9uTLl+tc+WZ8pRL1lN+X/n6+ipv3rxatWpVqo8IAEB24PJyAHBjI0aM0KxZszR27Fjn51P/qdtuu83ldVBQkHx8fFS4cOFU4ydOnEi1fvny5V1eOxwOlStXznnZaEqA69WrV7o1nD592uUfzaGhoZmq/bffflPdunVTjd9xxx3O5Tf6SLVSpUqpWbNmqcaPHj2qU6dOadq0aZo2bVqa615587APPvhA48eP165du5SYmOgcz+wxXq+rt7t3714ZY/Tiiy/qxRdfTLfekiVLasyYMWrbtq1uv/12ValSRffff7/+9a9/ZepS99tvv12zZs1SUlKSduzYoYULF+q1117Tww8/rNDQUDVr1szZC+ldgh4YGJju9vfs2SNjTKp+S5FyGXHKZ4Nv9Pu+Z88enT59Os3Pokv/+97+9ttvklL3f3BwcKYvlf7oo4/k7++vsmXLau/evZIkHx8fhYSEaPbs2WrVqpWky8fk4eGhSpUqXXObafVVZn9OnnvuOS1btkx16tRRuXLl1KJFC3Xr1k3169d3rvPaa6+pV69eKl26tGrVqqWIiAj17NlTZcuWzdQxT548WbfffrtOnz6t6dOna/Xq1fL29s7Uuum5+ndYyvufErC9vb01btw4Pf300ypatKjuvvtutW7dWj179rT2GEAAyAihGwDcWNmyZdWjRw9NmzZNw4YNS7U8vTN5SUlJ6W7T09MzU2OSMvx8dXpSzmK//vrrql69eppz8uXL5/Lane62fLWU4+nRo0e6f0hICakfffSRevfurXbt2unZZ59VkSJF5OnpqejoaJcbR2Uk5SZwV0vve3r1e5dS7zPPPJPqDGiKcuXKSZIaNmyoffv26csvv9TSpUv1/vvv680339SUKVNcrojIiKenp+68807deeedqlevnpo0aaLZs2erWbNmzlpmzZqVZtjJkyf9f4YkJyfL4XBo0aJFafbn1T10o5KTk1WkSBHNnj07zeVXXkXwTxhj9PHHH+vcuXNphumjR4/q7Nmz131c/+Rn54477tDu3bu1cOFCLV68WPPmzdM777yjkSNHOh/71qlTJzVo0EBffPGFli5dqtdff13jxo3T/Pnz1bJly2vuo06dOs67l7dr10733nuvunXrpt27dzuP9Xp7PjO/rwYPHqw2bdpowYIFWrJkiV588UVFR0drxYoVqlGjxjXrBoCsROgGADc3YsQIffTRRxo3blyqZSlneE6dOuUynnJWzoarL0U2xmjv3r3O4BkWFibp8lnMtM4c/xNlypTR7t27U43v2rXLuTyrBQcHKyAgQElJSdc8nrlz56ps2bKaP3++yx9E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ABBjTDvTnT9/fp0/f17lypVTvXr19PjxYzVs2FDHjh1Tjhw5zCoLAAAAAIAYY9qZbklKmjSpvvjiCzNLAAAAAADAZkwN3Q8ePNDcuXN15swZSVLevHnVrl07pUiRwsyyAAAAAACIEaZdXr57925lzZpV3333nR48eKAHDx7ou+++U7Zs2bR7926zygIAAAAAIMaYdqa7W7duatKkiaZPny5HR0dJUlhYmD755BN169ZNJ06cMKs0AAAAAABihGlnui9cuKBPP/3UGrglydHRUX379tWFCxfMKgsAAAAAgBhjWuguWrSotZf7386cOaNChQqZUBEAAAAAADErVi8v//33363/7tmzp3r16qULFy7ovffekyT99ttvmjp1qsaOHRubZQEAAAAAYBOxGroLFy4si8UiwzCsY5999lmk7Zo3b64mTZrEZmkAAAAAAMS4WA3dly9fjs3DAQAAAABgqlgN3VmyZInNwwEAAAAAYCrTHhkmSTdv3tTevXt19+5dhYeHR1jXs2dPk6oCAAAAACBmmBa658+fry5dusjFxUUpU6aUxWKxrrNYLIRuAAAAAECcZ1ro/vLLLzVkyBANGjRIDg6mPbkMAAAAAACbMS3tBgcHq2nTpgRuAAAAAEC8ZVri7dChg1asWGHW4QEAAAAAsDnTLi8fM2aMPvjgA23evFkFChSQs7NzhPUTJ040qTIAAAAAAGKGqaF7y5YtypUrlyRFupEaAAAAAABxnWmhe8KECfr+++/Vtm1bs0oAAAAAAMCmTOvpdnV1VdmyZc06PAAAAAAANmda6O7Vq5cmT55s1uEBAAAAALA50y4vP3jwoLZv364NGzYoX758kW6ktnr1apMqAwAAAAAgZpgWupMlS6aGDRuadXgAAAAAAGzOtNA9b948sw4NAAAAAECsMK2nGwAAAACA+M60M93ZsmV77fO4L126FIvVAAAAAAAQ80wL3b17946wHBoaqmPHjmnz5s3q37+/OUUBAAAAABCDTAvdvXr1eun41KlTdfjw4ViuBgAAAACAmGd3Pd2+vr5atWqV2WUAAAAAAPDO7C50r1y5UilSpDC7DAAAAAAA3plpl5cXKVIkwo3UDMPQ7du3de/ePU2bNs2ssgAAAAAAiDGmhe769etHWHZwcFDq1KlVqVIl5c6d25yiAAAAAACIQaaF7qFDh5p1aAAAAAAA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\n" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "Summary Statistics:\n", + " run f1_score n_features runtime pipelines_tested\n", + "count 2.000000 2.000000 2.0 2.000000 2.000000\n", + "mean 1.500000 0.987198 5.0 109.132951 114.500000\n", + "std 0.707107 0.000000 0.0 1.063263 0.707107\n", + "min 1.000000 0.987198 5.0 108.381110 114.000000\n", + "25% 1.250000 0.987198 5.0 108.757030 114.250000\n", + "50% 1.500000 0.987198 5.0 109.132951 114.500000\n", + "75% 1.750000 0.987198 5.0 109.508871 114.750000\n", + "max 2.000000 0.987198 5.0 109.884791 115.000000\n", + "\n", + "Correlation Matrix:\n", + " f1_score n_features pipelines_tested runtime\n", + "f1_score NaN NaN NaN NaN\n", + "n_features NaN NaN NaN NaN\n", + "pipelines_tested NaN NaN 1.0 1.0\n", + "runtime NaN NaN 1.0 1.0\n" + ] + } + ] + } + ] +} \ No newline at end of file