diff --git a/tasks/data_augmentation/notebooks/zero_shot_classification/GoogleColabFineTuneEmbeddingModel.ipynb b/tasks/data_augmentation/notebooks/zero_shot_classification/GoogleColabFineTuneEmbeddingModel.ipynb
index 78064ba0..1b1126d8 100644
--- a/tasks/data_augmentation/notebooks/zero_shot_classification/GoogleColabFineTuneEmbeddingModel.ipynb
+++ b/tasks/data_augmentation/notebooks/zero_shot_classification/GoogleColabFineTuneEmbeddingModel.ipynb
@@ -40,7 +40,7 @@
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
- "a9572d31730d42019365958670ce4adf": {
+ "fca6dd1f1a0d4bdd8afe04f5f899e7f8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -52,15 +52,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_1d22e5a4c66a4cd7b86d8d20b94029e1",
+ "layout": "IPY_MODEL_c203042fd0204268a649a05daa0513bf",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_a113e119d5764b328db3bf511900be0b",
- "IPY_MODEL_09532df629af458f83b8636fdbf45c24"
+ "IPY_MODEL_acf9c2fff09d46a3a62203b2980e0539",
+ "IPY_MODEL_f04ce12c094a432cba7a2b2dc8fea813"
]
}
},
- "1d22e5a4c66a4cd7b86d8d20b94029e1": {
+ "c203042fd0204268a649a05daa0513bf": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -111,50 +111,50 @@
"left": null
}
},
- "a113e119d5764b328db3bf511900be0b": {
+ "acf9c2fff09d46a3a62203b2980e0539": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_a6940fb831214948a58799d4372fe07b",
+ "style": "IPY_MODEL_77a376e6fd524e839e4017ba6d7d52a9",
"_dom_classes": [],
"description": "Epoch: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 2,
+ "max": 10,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 2,
+ "value": 10,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_139e93e910084878a93e61908eac369f"
+ "layout": "IPY_MODEL_8f2b826e76b44d9da1fc36c607f0fe02"
}
},
- "09532df629af458f83b8636fdbf45c24": {
+ "f04ce12c094a432cba7a2b2dc8fea813": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_209cb947261342e1977c340b0fefae36",
+ "style": "IPY_MODEL_44dc88d26359459ea810213cd9c4e87c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 2/2 [00:47<00:00, 23.58s/it]",
+ "value": " 10/10 [45:52<00:00, 275.27s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_de62abfdeff34006800c442e0c866d8e"
+ "layout": "IPY_MODEL_53ede21cf7164a89a809bf2ac953f959"
}
},
- "a6940fb831214948a58799d4372fe07b": {
+ "77a376e6fd524e839e4017ba6d7d52a9": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -169,7 +169,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "139e93e910084878a93e61908eac369f": {
+ "8f2b826e76b44d9da1fc36c607f0fe02": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -220,7 +220,7 @@
"left": null
}
},
- "209cb947261342e1977c340b0fefae36": {
+ "44dc88d26359459ea810213cd9c4e87c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -234,7 +234,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "de62abfdeff34006800c442e0c866d8e": {
+ "53ede21cf7164a89a809bf2ac953f959": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -285,7 +285,7 @@
"left": null
}
},
- "b2d70e845f134eb89b10253d04bc2984": {
+ "c12c140a024f46c7a1cfad318f8056fc": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -297,15 +297,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_2cf17c25a8f049e4bd8a32a67700fe29",
+ "layout": "IPY_MODEL_10c77230e1b64e69af1ffc44a045ddd2",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_af5cf0176d8a41d3b538b213864842e0",
- "IPY_MODEL_d15f83390ec748d19f03adb5456239a1"
+ "IPY_MODEL_8f2f04f100a94ab8acbc84c13e5859dd",
+ "IPY_MODEL_3fa00df1702a446ab57d973aba921d3c"
]
}
},
- "2cf17c25a8f049e4bd8a32a67700fe29": {
+ "10c77230e1b64e69af1ffc44a045ddd2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -356,50 +356,50 @@
"left": null
}
},
- "af5cf0176d8a41d3b538b213864842e0": {
+ "8f2f04f100a94ab8acbc84c13e5859dd": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_77854a49bb1e469abdc99910270ec8f2",
+ "style": "IPY_MODEL_779a149fd09b4c6ba2123ef11b083813",
"_dom_classes": [],
"description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 31,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 31,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_b6255bd351a340f29555c4c8235da2d9"
+ "layout": "IPY_MODEL_19aa17e755464ca5b0c03d0b3873f559"
}
},
- "d15f83390ec748d19f03adb5456239a1": {
+ "3fa00df1702a446ab57d973aba921d3c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_de36b12c8c044b84b7f2cc616b4a01fb",
+ "style": "IPY_MODEL_b4e762317b52408ca6a1fb46575efe06",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 31/31 [00:47<00:00, 1.52s/it]",
+ "value": " 28/28 [45:52<00:00, 98.31s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_4072e74bcd754c3aaaf88354929b6a91"
+ "layout": "IPY_MODEL_ebf1d875a69f4d67b6d61f6815cc0655"
}
},
- "77854a49bb1e469abdc99910270ec8f2": {
+ "779a149fd09b4c6ba2123ef11b083813": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -414,7 +414,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "b6255bd351a340f29555c4c8235da2d9": {
+ "19aa17e755464ca5b0c03d0b3873f559": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -465,7 +465,7 @@
"left": null
}
},
- "de36b12c8c044b84b7f2cc616b4a01fb": {
+ "b4e762317b52408ca6a1fb46575efe06": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -479,7 +479,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "4072e74bcd754c3aaaf88354929b6a91": {
+ "ebf1d875a69f4d67b6d61f6815cc0655": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -530,7 +530,7 @@
"left": null
}
},
- "fbc309a67eba4a4fbe5a08d71e906948": {
+ "0043df9db81b47aead59cec69e05da8b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -542,15 +542,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_66a78180061140ad8aa38ac0852f1341",
+ "layout": "IPY_MODEL_f72994f47aaf4f6798d6b463cf2d8d86",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_e4d68489cba7485f9f09c0e62a768cf2",
- "IPY_MODEL_c4a4997f4b624cf6857827f8773ad942"
+ "IPY_MODEL_0197d0350b424e1bae2a8a53dd7c26df",
+ "IPY_MODEL_984ab80a4bbe42748daea5171c0db82f"
]
}
},
- "66a78180061140ad8aa38ac0852f1341": {
+ "f72994f47aaf4f6798d6b463cf2d8d86": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -601,50 +601,50 @@
"left": null
}
},
- "e4d68489cba7485f9f09c0e62a768cf2": {
+ "0197d0350b424e1bae2a8a53dd7c26df": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_d7349571e12944df9938b0071fd12032",
+ "style": "IPY_MODEL_a37d28bdc9bd4e128391c5ddb1f38852",
"_dom_classes": [],
"description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 31,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 31,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_9fa1111e63944ed2ae340d523180c27e"
+ "layout": "IPY_MODEL_f96091f965d94857a16c15024ec732b5"
}
},
- "c4a4997f4b624cf6857827f8773ad942": {
+ "984ab80a4bbe42748daea5171c0db82f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_cbf9123b9b6a4a8884dee393ee689eb5",
+ "style": "IPY_MODEL_9f20f391063548b4a8987fa3c4f7d97a",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 31/31 [00:33<00:00, 1.07s/it]",
+ "value": " 28/28 [01:16<00:00, 2.74s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_3e57696b2eb542b99657acd746690551"
+ "layout": "IPY_MODEL_3069cde1cbad49dfa0c34bea3ed71d08"
}
},
- "d7349571e12944df9938b0071fd12032": {
+ "a37d28bdc9bd4e128391c5ddb1f38852": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -659,7 +659,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "9fa1111e63944ed2ae340d523180c27e": {
+ "f96091f965d94857a16c15024ec732b5": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -710,7 +710,7 @@
"left": null
}
},
- "cbf9123b9b6a4a8884dee393ee689eb5": {
+ "9f20f391063548b4a8987fa3c4f7d97a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -724,7 +724,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "3e57696b2eb542b99657acd746690551": {
+ "3069cde1cbad49dfa0c34bea3ed71d08": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -775,7 +775,7 @@
"left": null
}
},
- "adb37a347dc741bb8b467711d7f29b52": {
+ "dd29ef6f6df44d44af78d04004c62f01": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -787,15 +787,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_7e2833fd892541e5b031bf8a23e7dfa9",
+ "layout": "IPY_MODEL_6fe5ac05d47b41ceb544a5179d1ef5d4",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_ce9d2045aa784a87bb1d999bb8016727",
- "IPY_MODEL_01ff82ff97fa4909bdfc9029403b9bdd"
+ "IPY_MODEL_1b9ccce5f3894cdc9158c653d41957ca",
+ "IPY_MODEL_d8afbc8b25444d1483330af2b18a94d0"
]
}
},
- "7e2833fd892541e5b031bf8a23e7dfa9": {
+ "6fe5ac05d47b41ceb544a5179d1ef5d4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -846,50 +846,50 @@
"left": null
}
},
- "ce9d2045aa784a87bb1d999bb8016727": {
+ "1b9ccce5f3894cdc9158c653d41957ca": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_38e47280bebe4135818796d938aa3084",
+ "style": "IPY_MODEL_92a14ea822d0458583320ed461bd1a17",
"_dom_classes": [],
- "description": "Epoch: 100%",
+ "description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 2,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 2,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_165a0b004d4b496e8bbe1ea0c1b98306"
+ "layout": "IPY_MODEL_d071db82958845a5947daa9eaa2ddf91"
}
},
- "01ff82ff97fa4909bdfc9029403b9bdd": {
+ "d8afbc8b25444d1483330af2b18a94d0": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_a27d3dcd9ebe417e9bc497c2cd07b681",
+ "style": "IPY_MODEL_0c9c7bc3e1dc495799a4a37c990f4241",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 2/2 [00:35<00:00, 17.77s/it]",
+ "value": " 28/28 [01:01<00:00, 2.20s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_e61766c2f5d2431a845f686866798bd3"
+ "layout": "IPY_MODEL_94c3ab21e78c405da85788eb4106db50"
}
},
- "38e47280bebe4135818796d938aa3084": {
+ "92a14ea822d0458583320ed461bd1a17": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -904,7 +904,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "165a0b004d4b496e8bbe1ea0c1b98306": {
+ "d071db82958845a5947daa9eaa2ddf91": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -955,7 +955,7 @@
"left": null
}
},
- "a27d3dcd9ebe417e9bc497c2cd07b681": {
+ "0c9c7bc3e1dc495799a4a37c990f4241": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -969,7 +969,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "e61766c2f5d2431a845f686866798bd3": {
+ "94c3ab21e78c405da85788eb4106db50": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1020,7 +1020,7 @@
"left": null
}
},
- "ef07a5d5bdde47ed84f7c9a43e19a45f": {
+ "3304541393f84fefa400de83e8636a5c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -1032,15 +1032,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_24433c5adfbc4cea8028a5b29f98a166",
+ "layout": "IPY_MODEL_0538e8932a854ef987ce8e43ec13a719",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_c9c7884e24fa44419dbc69ebfef4032d",
- "IPY_MODEL_c6f4fdced03d45d7a1c3a2a5c790f42c"
+ "IPY_MODEL_cf3e517756074c739d2d8f0368dee1ea",
+ "IPY_MODEL_0e2231e802f34971a1af2cbc0022f3eb"
]
}
},
- "24433c5adfbc4cea8028a5b29f98a166": {
+ "0538e8932a854ef987ce8e43ec13a719": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1091,50 +1091,50 @@
"left": null
}
},
- "c9c7884e24fa44419dbc69ebfef4032d": {
+ "cf3e517756074c739d2d8f0368dee1ea": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_e722fdf2798b4b5b82c93c2638dd5477",
+ "style": "IPY_MODEL_b50304c81a714aeaa58d5c8e20dee56b",
"_dom_classes": [],
"description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 31,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 31,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_c005c5550e5c45e28fc731772a2bf7af"
+ "layout": "IPY_MODEL_5d12b9d1dfdb48b7809111a676185d15"
}
},
- "c6f4fdced03d45d7a1c3a2a5c790f42c": {
+ "0e2231e802f34971a1af2cbc0022f3eb": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_14d03e8e23854fb4a3ac8063218e0ae2",
+ "style": "IPY_MODEL_d4c81c9a13a74df2a0cc7c237469b68b",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 31/31 [00:35<00:00, 1.15s/it]",
+ "value": " 28/28 [00:46<00:00, 1.67s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_82620c7c240c44d2a6dfa95497289bc8"
+ "layout": "IPY_MODEL_81b6e33bbd5547e99b8dab541374f4e7"
}
},
- "e722fdf2798b4b5b82c93c2638dd5477": {
+ "b50304c81a714aeaa58d5c8e20dee56b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -1149,7 +1149,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "c005c5550e5c45e28fc731772a2bf7af": {
+ "5d12b9d1dfdb48b7809111a676185d15": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1200,7 +1200,7 @@
"left": null
}
},
- "14d03e8e23854fb4a3ac8063218e0ae2": {
+ "d4c81c9a13a74df2a0cc7c237469b68b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -1214,7 +1214,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "82620c7c240c44d2a6dfa95497289bc8": {
+ "81b6e33bbd5547e99b8dab541374f4e7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1265,7 +1265,7 @@
"left": null
}
},
- "4825d1567c3140438331446e01180251": {
+ "f03fc44e573e4c799f1045c504d36b2f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -1277,15 +1277,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_6a2c5e52ef23492ab50526314f433398",
+ "layout": "IPY_MODEL_a7b74586b70244eba0782addd7a6e4d4",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_82b52d9049de4898bde77e6e3fc3ec1c",
- "IPY_MODEL_475b1d01f8934aaa8767e66831dfb7a8"
+ "IPY_MODEL_1f80711802bd4fd8b50d101d6df878b6",
+ "IPY_MODEL_2d9c3e251af84a14b34df6160666b7ee"
]
}
},
- "6a2c5e52ef23492ab50526314f433398": {
+ "a7b74586b70244eba0782addd7a6e4d4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1336,50 +1336,50 @@
"left": null
}
},
- "82b52d9049de4898bde77e6e3fc3ec1c": {
+ "1f80711802bd4fd8b50d101d6df878b6": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_31cd013fa0244dccbe0dd37ea2ef1fd4",
+ "style": "IPY_MODEL_75af76007b0b482698644fdd0ed8d571",
"_dom_classes": [],
"description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 31,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 31,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_27928bcd9585415cb274a4dfb3f648bd"
+ "layout": "IPY_MODEL_9ac5ff1a27824774a09ca05be8cc4857"
}
},
- "475b1d01f8934aaa8767e66831dfb7a8": {
+ "2d9c3e251af84a14b34df6160666b7ee": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_149a4a47dd9f476380c37a730e8c63da",
+ "style": "IPY_MODEL_71c8d30a19814201908f88a77ce6f46a",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 31/31 [00:21<00:00, 1.45it/s]",
+ "value": " 28/28 [00:08<00:00, 3.43it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_f85fc31fa00e4412b2690c7c73b2056a"
+ "layout": "IPY_MODEL_dd47cc0013c6480fa831d049940850a6"
}
},
- "31cd013fa0244dccbe0dd37ea2ef1fd4": {
+ "75af76007b0b482698644fdd0ed8d571": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -1394,7 +1394,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "27928bcd9585415cb274a4dfb3f648bd": {
+ "9ac5ff1a27824774a09ca05be8cc4857": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1445,7 +1445,7 @@
"left": null
}
},
- "149a4a47dd9f476380c37a730e8c63da": {
+ "71c8d30a19814201908f88a77ce6f46a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -1459,7 +1459,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "f85fc31fa00e4412b2690c7c73b2056a": {
+ "dd47cc0013c6480fa831d049940850a6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1510,7 +1510,7 @@
"left": null
}
},
- "78c898811bfc4875b98c89dc71e5514f": {
+ "1d385b01f10e44489b63814336181bde": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -1522,15 +1522,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_5474a24ffa694b70ac3cba68dea838cf",
+ "layout": "IPY_MODEL_4701fb0c920d43c189eb3f36091821b7",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_19b14291422b49e2aa9f0c136245d5c8",
- "IPY_MODEL_14ed3217e4824e428ac97418121ca8d5"
+ "IPY_MODEL_46ef86cff22a4e88964ad11f33c943ec",
+ "IPY_MODEL_6cc96dac09a6452a9ed253fb25c474b7"
]
}
},
- "5474a24ffa694b70ac3cba68dea838cf": {
+ "4701fb0c920d43c189eb3f36091821b7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1581,50 +1581,50 @@
"left": null
}
},
- "19b14291422b49e2aa9f0c136245d5c8": {
+ "46ef86cff22a4e88964ad11f33c943ec": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_acfaaf9ef97a4532b15926f33d19b68c",
+ "style": "IPY_MODEL_86876f890d9443dbb2f28ed6020526dd",
"_dom_classes": [],
- "description": "Epoch: 50%",
+ "description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
- "bar_style": "danger",
- "max": 2,
+ "bar_style": "success",
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 1,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_918ed4e7c93e485dbd9be1bd64bd85e9"
+ "layout": "IPY_MODEL_e473824c3f2146948bb1b8b4a0e5e5da"
}
},
- "14ed3217e4824e428ac97418121ca8d5": {
+ "6cc96dac09a6452a9ed253fb25c474b7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_a412f89ae07348fa8d77fcf3a3f6399d",
+ "style": "IPY_MODEL_7bda8650be2440588bedf1b2d577b38c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 1/2 [00:19<00:14, 14.01s/it]",
+ "value": " 28/28 [00:31<00:00, 1.11s/it]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_8fa11a5367dd41028a6a05e8e1a01ce7"
+ "layout": "IPY_MODEL_78ec3b4e9914430f9359f26b08105e04"
}
},
- "acfaaf9ef97a4532b15926f33d19b68c": {
+ "86876f890d9443dbb2f28ed6020526dd": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -1639,7 +1639,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "918ed4e7c93e485dbd9be1bd64bd85e9": {
+ "e473824c3f2146948bb1b8b4a0e5e5da": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1690,7 +1690,7 @@
"left": null
}
},
- "a412f89ae07348fa8d77fcf3a3f6399d": {
+ "7bda8650be2440588bedf1b2d577b38c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -1704,7 +1704,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "8fa11a5367dd41028a6a05e8e1a01ce7": {
+ "78ec3b4e9914430f9359f26b08105e04": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1755,7 +1755,7 @@
"left": null
}
},
- "093d49b6236b487fb757c25768b4df64": {
+ "492cbe734d6149c2837528e1655d662e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -1767,15 +1767,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_cb97b2a14caa44dc877492232ea3d407",
+ "layout": "IPY_MODEL_97c90c47ac574ff8b9d9c00fe349da80",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_03bcf18d3b084de9b44367b5d4f3a6bd",
- "IPY_MODEL_780d0eed80f54dfea4b410390c01653e"
+ "IPY_MODEL_6d31911b685c4108a8d5e0b525613911",
+ "IPY_MODEL_29ab38f03b9c4c86b18ed5608d040e49"
]
}
},
- "cb97b2a14caa44dc877492232ea3d407": {
+ "97c90c47ac574ff8b9d9c00fe349da80": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1826,50 +1826,50 @@
"left": null
}
},
- "03bcf18d3b084de9b44367b5d4f3a6bd": {
+ "6d31911b685c4108a8d5e0b525613911": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_1290453a849f492d8debf450f36f7b48",
+ "style": "IPY_MODEL_c69b83d1ec9347f3b2b5375ca533738a",
"_dom_classes": [],
"description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
- "max": 31,
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 31,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_fc790c2f7ae14782b1c81b4edc928b6c"
+ "layout": "IPY_MODEL_d40ea82e5d4f4b149b95796005062856"
}
},
- "780d0eed80f54dfea4b410390c01653e": {
+ "29ab38f03b9c4c86b18ed5608d040e49": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_7dbe8c145df74e90841bca8ccae12314",
+ "style": "IPY_MODEL_75a15fb3c013479cb5c3a45df0b2936f",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 31/31 [00:13<00:00, 2.32it/s]",
+ "value": " 28/28 [00:23<00:00, 1.22it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_cac6523ba185434abd3d987d2c2129d7"
+ "layout": "IPY_MODEL_9151a55f3f6d4db2928f2b3b279f3c0b"
}
},
- "1290453a849f492d8debf450f36f7b48": {
+ "c69b83d1ec9347f3b2b5375ca533738a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -1884,7 +1884,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "fc790c2f7ae14782b1c81b4edc928b6c": {
+ "d40ea82e5d4f4b149b95796005062856": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -1935,7 +1935,7 @@
"left": null
}
},
- "7dbe8c145df74e90841bca8ccae12314": {
+ "75a15fb3c013479cb5c3a45df0b2936f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -1949,7 +1949,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "cac6523ba185434abd3d987d2c2129d7": {
+ "9151a55f3f6d4db2928f2b3b279f3c0b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -2000,7 +2000,7 @@
"left": null
}
},
- "6cd99c4adf3245579255ff38466395f6": {
+ "1e304bf241274d818ab4522828ae169c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
@@ -2012,15 +2012,15 @@
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
- "layout": "IPY_MODEL_dd3ce1ba54174fef8ccee98d2e44ed4c",
+ "layout": "IPY_MODEL_f65aac581b9f413589669b922fbc46a8",
"_model_module": "@jupyter-widgets/controls",
"children": [
- "IPY_MODEL_9d909b528159413d9d80665daa753521",
- "IPY_MODEL_46fa1a6f0f524a7995ac548deebb123c"
+ "IPY_MODEL_16336b96d0a64703bd03d5f0e48657b8",
+ "IPY_MODEL_68841718d5724076a06b0dd7c0a9df69"
]
}
},
- "dd3ce1ba54174fef8ccee98d2e44ed4c": {
+ "f65aac581b9f413589669b922fbc46a8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -2071,50 +2071,50 @@
"left": null
}
},
- "9d909b528159413d9d80665daa753521": {
+ "16336b96d0a64703bd03d5f0e48657b8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
- "style": "IPY_MODEL_cacb560792f9488696b9421753a3fc59",
+ "style": "IPY_MODEL_9eab9ea38b41459da2284fdd5aa39bbb",
"_dom_classes": [],
- "description": "Iteration: 39%",
+ "description": "Iteration: 100%",
"_model_name": "FloatProgressModel",
- "bar_style": "danger",
- "max": 31,
+ "bar_style": "success",
+ "max": 28,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": 12,
+ "value": 28,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_afecaf3d6c554044bebb5638fe507d69"
+ "layout": "IPY_MODEL_65e5465691384020984635b1f6f098c2"
}
},
- "46fa1a6f0f524a7995ac548deebb123c": {
+ "68841718d5724076a06b0dd7c0a9df69": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
- "style": "IPY_MODEL_09b43f809d18440ca7214b6e0ba12c64",
+ "style": "IPY_MODEL_618525790f53419f886281120454efeb",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
- "value": " 12/31 [00:05<00:09, 2.10it/s]",
+ "value": " 28/28 [00:14<00:00, 1.88it/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
- "layout": "IPY_MODEL_2b345d11ae804fc6b03dd5edc9f48352"
+ "layout": "IPY_MODEL_c499b23942f9456180edc5e99ab98ca7"
}
},
- "cacb560792f9488696b9421753a3fc59": {
+ "9eab9ea38b41459da2284fdd5aa39bbb": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
@@ -2129,7 +2129,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "afecaf3d6c554044bebb5638fe507d69": {
+ "65e5465691384020984635b1f6f098c2": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -2180,7 +2180,7 @@
"left": null
}
},
- "09b43f809d18440ca7214b6e0ba12c64": {
+ "618525790f53419f886281120454efeb": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
@@ -2194,7 +2194,7 @@
"_model_module": "@jupyter-widgets/controls"
}
},
- "2b345d11ae804fc6b03dd5edc9f48352": {
+ "c499b23942f9456180edc5e99ab98ca7": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
@@ -2244,198 +2244,689 @@
"display": null,
"left": null
}
- }
- }
- }
- },
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "bk0XWLfMvDXU"
- },
- "source": [
- "# Note\n",
- "This notebook can be run on google colab for improved performance. The code changes necessary for running on this system are commented over the code."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "edvxyOpnvDXj"
- },
- "source": [
- "## Data preprocessing"
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "-_KSLzO7733B"
- },
- "source": [
- ""
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "Ml7Gd4VgxW1d"
- },
- "source": [
- "! pip install \\\n",
- " scprep\\\n",
- " spacy==2.3.2 \\\n",
- " sentence_transformers==0.4.0 \\\n",
- " phate==1.0.4 && \\\n",
- " python -m spacy download es_core_news_lg"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "iH3dg-EV3JMY"
- },
- "source": [
- "WARNING! Once you installed the packages in the previous cell you must restart your runtime and then import the library and load the model"
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
},
- "id": "i1eWkGLcx_yi",
- "outputId": "5138a213-1cfa-4205-da4f-277862d0c9fc"
- },
- "source": [
- "import spacy\n",
- "if spacy.prefer_gpu():\n",
- " print(\"Using the GPU\")\n",
- "else:\n",
- " print(\"Using the CPU\")\n",
- "es_nlp = spacy.load('es_core_news_lg')"
- ],
- "execution_count": 1,
- "outputs": [
- {
- "output_type": "stream",
- "text": [
- "Using the GPU\n"
- ],
- "name": "stdout"
- }
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "EFkH4jX4MMZX"
- },
- "source": [
- "For development work, in case you want to update the files in your GitHub branch by rerunning the clone, you first have to empty the folder."
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "TVeFAuzRLxy8"
- },
- "source": [
- "!rm -rf policy-data-analyzer/"
- ],
- "execution_count": 2,
- "outputs": []
- },
- {
- "cell_type": "code",
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
+ "2e98274dfc4a4535b4cf395c274f9c7c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_889c0e01503d4707abfbd344f18a33dc",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_59d2db0846b44fffb8eb8df09256a12b",
+ "IPY_MODEL_398870e396004bd6b3df8fe40aa25818"
+ ]
+ }
},
- "id": "ykyZ81KN7tfr",
- "outputId": "858589f4-d910-40a4-ef0f-3e03b79f0109"
- },
- "source": [
- "# Define branch to clone\n",
- "! branch_name='#50_dfq_sbert_fine_tuning' && \\\n",
- " git clone --branch $branch_name https://github.com/wri-dssg/policy-data-analyzer.git"
- ],
- "execution_count": 3,
- "outputs": [
- {
- "output_type": "stream",
- "text": [
- "Cloning into 'policy-data-analyzer'...\n",
- "remote: Enumerating objects: 174, done.\u001b[K\n",
- "remote: Counting objects: 100% (174/174), done.\u001b[K\n",
- "remote: Compressing objects: 100% (123/123), done.\u001b[K\n",
- "remote: Total 3093 (delta 94), reused 129 (delta 51), pack-reused 2919\u001b[K\n",
- "Receiving objects: 100% (3093/3093), 134.22 MiB | 18.57 MiB/s, done.\n",
- "Resolving deltas: 100% (1641/1641), done.\n",
- "Checking out files: 100% (843/843), done.\n"
- ],
- "name": "stdout"
- }
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
+ "889c0e01503d4707abfbd344f18a33dc": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
},
- "id": "R4UNMkgIvDXl",
- "outputId": "2c8114ea-3d98-474c-ad9e-db1af65f2150"
- },
- "source": [
- "import pandas as pd\n",
- "import sys\n",
- "import os\n",
- "import csv\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sentence_transformers import SentencesDataset, SentenceTransformer, InputExample, losses\n",
- "from sentence_transformers.evaluation import LabelAccuracyEvaluator\n",
- "from torch import nn, Tensor\n",
- "from typing import Iterable, Dict\n",
- "from torch.utils.data import DataLoader\n",
- "import math\n",
- "import time\n",
- "import cupy as cp\n",
- "\n",
- "# os.chdir(\"policy-data-analyzer\") #If you run this cell more than once, comment out this line because you are ready in this folder and you will get an error\n",
- "from tasks.data_loader.src.utils import *\n",
- "from tasks.data_augmentation.src.zero_shot_classification.latent_embeddings_classifier import *\n",
- "from tasks.evaluate_model.src.model_evaluator import *\n",
- "from tasks.data_visualization.src.plotting import *\n",
- "\n",
- "from google.colab import drive\n",
- "drive.mount('/content/drive')"
- ],
- "execution_count": 4,
- "outputs": [
- {
- "output_type": "stream",
- "text": [
- "Mounted at /content/drive\n"
- ],
- "name": "stdout"
- }
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "P4l8oGqlvDXs"
- },
- "source": [
- "## Fine-tuning the embedding model on the labeled data"
- ]
+ "59d2db0846b44fffb8eb8df09256a12b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_c455db89759e43b49717b7c0e8cdf749",
+ "_dom_classes": [],
+ "description": "Iteration: 100%",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 28,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 28,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_14665e3c4ae64f5cba8465a75de16df1"
+ }
+ },
+ "398870e396004bd6b3df8fe40aa25818": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_d78e8d908d3a43eda18d7b4c26cddaaa",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 28/28 [44:27<00:00, 95.26s/it]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_9b03ee6a937a40d99a9a112001e38ef3"
+ }
+ },
+ "c455db89759e43b49717b7c0e8cdf749": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "initial",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "14665e3c4ae64f5cba8465a75de16df1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "d78e8d908d3a43eda18d7b4c26cddaaa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "9b03ee6a937a40d99a9a112001e38ef3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "def1dc1c9ea242ad9e29ff55d4a79326": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_d8f685293e2d4a868eb4258d2e535659",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_c391454a40c342eca3479026162b4da0",
+ "IPY_MODEL_645384434f4747a4b24d5b37fce6fa00"
+ ]
+ }
+ },
+ "d8f685293e2d4a868eb4258d2e535659": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "c391454a40c342eca3479026162b4da0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_cc3f54299a05492a86384f062595280e",
+ "_dom_classes": [],
+ "description": "Iteration: 100%",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 28,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 28,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_6b334406ed0f49cd8096471a97b134b3"
+ }
+ },
+ "645384434f4747a4b24d5b37fce6fa00": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_370fa1fe3aa74ee2a94be109f96f48d0",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 28/28 [00:19<00:00, 1.45it/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_f0847f77abc543c0ad4986a1abfaab91"
+ }
+ },
+ "cc3f54299a05492a86384f062595280e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "initial",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "6b334406ed0f49cd8096471a97b134b3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "370fa1fe3aa74ee2a94be109f96f48d0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "f0847f77abc543c0ad4986a1abfaab91": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ }
+ }
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "bk0XWLfMvDXU"
+ },
+ "source": [
+ "# Note\n",
+ "This notebook can be run on google colab for improved performance. The code changes necessary for running on this system are commented over the code."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "edvxyOpnvDXj"
+ },
+ "source": [
+ "## Data preprocessing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "-_KSLzO7733B"
+ },
+ "source": [
+ ""
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Ml7Gd4VgxW1d"
+ },
+ "source": [
+ "! pip install \\\n",
+ " scprep\\\n",
+ " spacy==2.3.2 \\\n",
+ " sentence_transformers==0.4.0 \\\n",
+ " phate==1.0.4 && \\\n",
+ " python -m spacy download es_core_news_lg"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "iH3dg-EV3JMY"
+ },
+ "source": [
+ "WARNING! Once you installed the packages in the previous cell you must restart your runtime and then import the library and load the model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "i1eWkGLcx_yi",
+ "outputId": "5138a213-1cfa-4205-da4f-277862d0c9fc"
+ },
+ "source": [
+ "import spacy\n",
+ "if spacy.prefer_gpu():\n",
+ " print(\"Using the GPU\")\n",
+ "else:\n",
+ " print(\"Using the CPU\")\n",
+ "es_nlp = spacy.load('es_core_news_lg')"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Using the GPU\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "EFkH4jX4MMZX"
+ },
+ "source": [
+ "For development work, in case you want to update the files in your GitHub branch by rerunning the clone, you first have to empty the folder."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "TVeFAuzRLxy8"
+ },
+ "source": [
+ "!rm -rf policy-data-analyzer/"
+ ],
+ "execution_count": 2,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ykyZ81KN7tfr",
+ "outputId": "858589f4-d910-40a4-ef0f-3e03b79f0109"
+ },
+ "source": [
+ "# Define branch to clone\n",
+ "! branch_name='#50_dfq_sbert_fine_tuning' && \\\n",
+ " git clone --branch $branch_name https://github.com/wri-dssg/policy-data-analyzer.git"
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Cloning into 'policy-data-analyzer'...\n",
+ "remote: Enumerating objects: 174, done.\u001b[K\n",
+ "remote: Counting objects: 100% (174/174), done.\u001b[K\n",
+ "remote: Compressing objects: 100% (123/123), done.\u001b[K\n",
+ "remote: Total 3093 (delta 94), reused 129 (delta 51), pack-reused 2919\u001b[K\n",
+ "Receiving objects: 100% (3093/3093), 134.22 MiB | 18.57 MiB/s, done.\n",
+ "Resolving deltas: 100% (1641/1641), done.\n",
+ "Checking out files: 100% (843/843), done.\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "R4UNMkgIvDXl",
+ "outputId": "56eef288-660b-43b8-aa08-f7af7992903e"
+ },
+ "source": [
+ "import pandas as pd\n",
+ "import sys\n",
+ "import os\n",
+ "import csv\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sentence_transformers import SentencesDataset, SentenceTransformer, InputExample, losses\n",
+ "from sentence_transformers.evaluation import LabelAccuracyEvaluator\n",
+ "from torch import nn, Tensor\n",
+ "from typing import Iterable, Dict\n",
+ "from torch.utils.data import DataLoader\n",
+ "import math\n",
+ "import time\n",
+ "import cupy as cp\n",
+ "import json\n",
+ "\n",
+ "# os.chdir(\"policy-data-analyzer\") #If you run this cell more than once, comment out this line because you are ready in this folder and you will get an error\n",
+ "from tasks.data_loader.src.utils import *\n",
+ "from tasks.data_augmentation.src.zero_shot_classification.latent_embeddings_classifier import *\n",
+ "from tasks.evaluate_model.src.model_evaluator import *\n",
+ "from tasks.data_visualization.src.plotting import *\n",
+ "\n",
+ "from google.colab import drive\n",
+ "drive.mount('/content/drive')"
+ ],
+ "execution_count": 111,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "P4l8oGqlvDXs"
+ },
+ "source": [
+ "## Fine-tuning the embedding model on the labeled data"
+ ]
},
{
"cell_type": "markdown",
@@ -2514,9 +3005,202 @@
" loss = loss_fct(output, labels.view(-1))\n",
" return loss\n",
" else:\n",
- " return features, output"
+ " return features, output\n",
+ "\n",
+ "def grid_search_fine_tune_sbert(train_params, train_sents, train_labels, test_sents, test_labels, label_names):\n",
+ " output_path = train_params[\"output_path\"]\n",
+ " experiment = train_params[\"experiment\"]\n",
+ " all_test_perc = train_params[\"all_test_perc\"]\n",
+ " model_names = train_params[\"model_names\"]\n",
+ " start_epochs = train_params[\"start_epochs\"]\n",
+ " max_num_epochs = train_params[\"max_num_epochs\"]\n",
+ " epochs_increment = train_params[\"epochs_increment\"]\n",
+ " numeric_labels = labels2numeric(test_labels, label_names)\n",
+ "\n",
+ " print(\"Grid Search Fine tuning parameters:\\n\", json.dumps(train_params, sort_keys=True, indent=4))\n",
+ "\n",
+ " # Output setup - we will update the json as the fine tuning process goes so every result is stored immediately\n",
+ " with open(f\"{output_path}/{experiment}_FineTuningResults.json\", \"w\") as fw:\n",
+ " json.dump({}, fw)\n",
+ "\n",
+ " for test_perc in all_test_perc:\n",
+ " with open(f\"{output_path}/{experiment}_FineTuningResults.json\", \"r\") as fr:\n",
+ " output = json.load(fr)\n",
+ "\n",
+ " output[f\"test_perc={test_perc}\"] = {}\n",
+ " X_train, X_test, y_train, y_test = train_test_split(train_sents, train_labels, test_size=test_perc,\n",
+ " stratify=train_labels, random_state=69420)\n",
+ "\n",
+ " # Load data samples into batches\n",
+ " train_batch_size = 16\n",
+ " label2int = dict(zip(label_names, range(len(label_names))))\n",
+ " train_samples = []\n",
+ " for sent, label in zip(X_train, y_train):\n",
+ " label_id = label2int[label]\n",
+ " train_samples.append(InputExample(texts=[sent], label=label_id))\n",
+ "\n",
+ " # Configure the dev set evaluator - still need to test whether this works\n",
+ " dev_samples = []\n",
+ " for sent, label in zip(X_test, y_test):\n",
+ " label_id = label2int[label]\n",
+ " dev_samples.append(InputExample(texts=[sent], label=label_id))\n",
+ "\n",
+ " for model_name in model_names:\n",
+ " # Setup\n",
+ " output[f\"test_perc={test_perc}\"][model_name] = []\n",
+ "\n",
+ " # Train set config\n",
+ " model = SentenceTransformer(model_name)\n",
+ " train_dataset = SentencesDataset(train_samples, model=model)\n",
+ " train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size)\n",
+ "\n",
+ " # Define the way the loss is computed\n",
+ " classifier = SoftmaxClassifier(model=model,\n",
+ " sentence_embedding_dimension=model.get_sentence_embedding_dimension(),\n",
+ " num_labels=len(label2int))\n",
+ "\n",
+ " # Dev set config\n",
+ " dev_dataset = SentencesDataset(dev_samples, model=model)\n",
+ " dev_dataloader = DataLoader(dev_dataset, shuffle=True, batch_size=train_batch_size)\n",
+ " dev_evaluator = LabelAccuracyEvaluator(dataloader=dev_dataloader, softmax_model=classifier, name='lae-dev')\n",
+ "\n",
+ " for num_epochs in range(start_epochs, max_num_epochs + 2, epochs_increment):\n",
+ " print(\"Num epochs:\", num_epochs)\n",
+ "\n",
+ " warmup_steps = math.ceil(\n",
+ " len(train_dataset) * num_epochs / train_batch_size * 0.1) # 10% of train data for warm-up\n",
+ " model_deets = f\"model={model_name}_test-perc={test_perc}_n-epoch={num_epochs}\"\n",
+ "\n",
+ " # Train the model\n",
+ " start = time.time()\n",
+ " if num_epochs == start_epochs:\n",
+ " model.fit(train_objectives=[(train_dataloader, classifier)],\n",
+ " evaluator=dev_evaluator,\n",
+ " epochs=start_epochs,\n",
+ " evaluation_steps=1000,\n",
+ " warmup_steps=warmup_steps,\n",
+ " )\n",
+ " else:\n",
+ " model.fit(train_objectives=[(train_dataloader, classifier)],\n",
+ " evaluator=dev_evaluator,\n",
+ " epochs=epochs_increment, # We always tune on an extra epoch to see the performance gain\n",
+ " evaluation_steps=1000,\n",
+ " warmup_steps=warmup_steps,\n",
+ " )\n",
+ "\n",
+ " end = time.time()\n",
+ " hours, rem = divmod(end - start, 3600)\n",
+ " minutes, seconds = divmod(rem, 60)\n",
+ " print(\"Time taken for fine-tuning:\", \"{:0>2}:{:0>2}:{:05.2f}\".format(int(hours), int(minutes), seconds))\n",
+ "\n",
+ " ### Classify sentences\n",
+ " # Projection matrix Z low-dim projection\n",
+ " print(\"Classifying sentences...\")\n",
+ " proj_matrix = cp.asnumpy(calc_proj_matrix(test_sents, 50, es_nlp, model, 0.01))\n",
+ " all_sent_embs = encode_all_sents(test_sents, model, proj_matrix)\n",
+ " all_label_embs = encode_labels(label_names, model, proj_matrix)\n",
+ " visualize_embeddings_2D(np.vstack(all_sent_embs), test_labels, tsne_perplexity=50,\n",
+ " store_name=f\"{output_path}/{model_deets}\")\n",
+ " model_preds, model_scores = calc_all_cos_similarity(all_sent_embs, all_label_embs, label_names)\n",
+ "\n",
+ " ### Evaluate the model\n",
+ " numeric_preds = labels2numeric(model_preds, label_names)\n",
+ " evaluator = ModelEvaluator(label_names, y_true=numeric_labels, y_pred=numeric_preds)\n",
+ "\n",
+ " output[f\"test_perc={test_perc}\"][model_name].append(\n",
+ " {\"num_epochs\": num_epochs, \"avg_f1\": evaluator.avg_f1.tolist()})\n",
+ " with open(f\"{output_path}/{experiment}_FineTuningResults.json\", \"w\") as fw:\n",
+ " json.dump(output, fw)\n",
+ "\n",
+ " evaluator.plot_confusion_matrix(color_map='Blues', exp_name=f\"{output_path}/{model_deets}\")\n",
+ " print(\"Macro/Weighted Avg F1-score:\", evaluator.avg_f1.tolist())\n",
+ "\n",
+ "def fine_tune_sbert(train_params, train_sents, train_labels, test_sents, test_labels, label_names):\n",
+ " output_path = train_params[\"output_path\"]\n",
+ " experiment = train_params[\"experiment\"]\n",
+ " test_perc = train_params[\"test_perc\"]\n",
+ " model_name = train_params[\"model_names\"]\n",
+ " num_epochs = train_params[\"num_epochs\"]\n",
+ " numeric_labels = labels2numeric(test_labels, label_names)\n",
+ "\n",
+ " print(\"Fine tuning parameters:\\n\", json.dumps(train_params, sort_keys=True, indent=4))\n",
+ "\n",
+ " output = {f\"test_perc={test_perc}\": {}}\n",
+ " X_train, X_test, y_train, y_test = train_test_split(train_sents, train_labels, test_size=test_perc,\n",
+ " stratify=train_labels, random_state=69420)\n",
+ " # Load data samples into batches\n",
+ " train_batch_size = 16\n",
+ " label2int = dict(zip(label_names, range(len(label_names))))\n",
+ " train_samples = []\n",
+ " for sent, label in zip(X_train, y_train):\n",
+ " label_id = label2int[label]\n",
+ " train_samples.append(InputExample(texts=[sent], label=label_id))\n",
+ "\n",
+ " # Configure the dev set evaluator - still need to test whether this works\n",
+ " dev_samples = []\n",
+ " for sent, label in zip(X_test, y_test):\n",
+ " label_id = label2int[label]\n",
+ " dev_samples.append(InputExample(texts=[sent], label=label_id))\n",
+ "\n",
+ " # Setup\n",
+ " output[f\"test_perc={test_perc}\"][model_name] = []\n",
+ "\n",
+ " # Train set config\n",
+ " model = SentenceTransformer(model_name)\n",
+ " train_dataset = SentencesDataset(train_samples, model=model)\n",
+ " train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size)\n",
+ "\n",
+ " # Define the way the loss is computed\n",
+ " classifier = SoftmaxClassifier(model=model,\n",
+ " sentence_embedding_dimension=model.get_sentence_embedding_dimension(),\n",
+ " num_labels=len(label2int))\n",
+ "\n",
+ " # Dev set config\n",
+ " dev_dataset = SentencesDataset(dev_samples, model=model)\n",
+ " dev_dataloader = DataLoader(dev_dataset, shuffle=True, batch_size=train_batch_size)\n",
+ " dev_evaluator = LabelAccuracyEvaluator(dataloader=dev_dataloader, softmax_model=classifier, name='lae-dev')\n",
+ " warmup_steps = math.ceil(\n",
+ " len(train_dataset) * num_epochs / train_batch_size * 0.1) # 10% of train data for warm-up\n",
+ " model_deets = f\"model={model_name}_test-perc={test_perc}_n-epoch={num_epochs}\"\n",
+ "\n",
+ " # Train the model\n",
+ " start = time.time()\n",
+ " model.fit(train_objectives=[(train_dataloader, classifier)],\n",
+ " evaluator=dev_evaluator,\n",
+ " epochs=num_epochs,\n",
+ " evaluation_steps=1000,\n",
+ " warmup_steps=warmup_steps,\n",
+ " output_path=output_path\n",
+ " )\n",
+ "\n",
+ " end = time.time()\n",
+ " hours, rem = divmod(end - start, 3600)\n",
+ " minutes, seconds = divmod(rem, 60)\n",
+ " print(\"Time taken for fine-tuning:\", \"{:0>2}:{:0>2}:{:05.2f}\".format(int(hours), int(minutes), seconds))\n",
+ "\n",
+ " ### Classify sentences\n",
+ " # Projection matrix Z low-dim projection\n",
+ " print(\"Classifying sentences...\")\n",
+ " proj_matrix = cp.asnumpy(calc_proj_matrix(test_sents, 50, es_nlp, model, 0.01))\n",
+ " all_sent_embs = encode_all_sents(test_sents, model, proj_matrix)\n",
+ " all_label_embs = encode_labels(label_names, model, proj_matrix)\n",
+ " visualize_embeddings_2D(np.vstack(all_sent_embs), test_labels, tsne_perplexity=50,\n",
+ " store_name=f\"{output_path}/{model_deets}\")\n",
+ " model_preds, model_scores = calc_all_cos_similarity(all_sent_embs, all_label_embs, label_names)\n",
+ "\n",
+ " ### Evaluate the model\n",
+ " numeric_preds = labels2numeric(model_preds, label_names)\n",
+ " evaluator = ModelEvaluator(label_names, y_true=numeric_labels, y_pred=numeric_preds)\n",
+ "\n",
+ " output[f\"test_perc={test_perc}\"][model_name].append(\n",
+ " {\"num_epochs\": num_epochs, \"avg_f1\": evaluator.avg_f1.tolist()})\n",
+ " with open(f\"{output_path}/{experiment}_FineTuningResults.json\", \"w\") as fw:\n",
+ " json.dump(output, fw)\n",
+ "\n",
+ " evaluator.plot_confusion_matrix(color_map='Blues', exp_name=f\"{output_path}/{model_deets}\")\n",
+ " print(\"Macro/Weighted Avg F1-score:\", evaluator.avg_f1.tolist())"
],
- "execution_count": 5,
+ "execution_count": 134,
"outputs": []
},
{
@@ -2609,6 +3293,30 @@
"* model_names . You put in the list the names of the models to be used."
]
},
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "E1r1ktjdeYQF"
+ },
+ "source": [
+ "def load_dataset(data_path, rater, set_of_labels_string):\n",
+ " \"\"\"\n",
+ " Return the train data, train labels, test data, and test labels \n",
+ " \"\"\"\n",
+ " dataset = []\n",
+ "\n",
+ " for dataset_type in [\"train\", \"test\"]:\n",
+ " for file_type in [\"sentences\", \"labels\"]:\n",
+ " filename = dataset_type + \"_\" + rater + \"_\" + set_of_labels_string + \"_\" + file_type + \".csv\"\n",
+ " file = data_path + \"/\" + filename\n",
+ " data = pd.read_csv(file, index_col=False, header=None)\n",
+ " dataset.append(data[0].tolist()) # The data is always the entire first column\n",
+ " \n",
+ " return dataset[0], dataset[1], dataset[2], dataset[3]"
+ ],
+ "execution_count": 114,
+ "outputs": []
+ },
{
"cell_type": "code",
"metadata": {
@@ -2617,22 +3325,22 @@
"source": [
"rater = \"Rater3\" # TODO: Change accordingly to what is the dataset you want to analyze\n",
"set_of_labels = All_but_unknown\n",
- "set_of_labels_string = \"single_All_but_unknown\"\n",
- "experiment = \"EXP-TEST-NEW-DATA\"\n",
+ "set_of_labels_string = \"combined_All_but_unknown\"\n",
+ "experiment = \"EXP-TEST-NEW-DATA2\" \n",
"\n",
"# This first one is the one used by David and Daniel\n",
- "base_path = \"/content/drive/MyDrive/WRI-LatinAmerica-Talent/\"\n",
+ "base_path = \"/content/drive/MyDrive/WRI-LatinAmerica-Talent\"\n",
"\n",
"# This one is the one used by Jordi\n",
"# base_path = \"/content/drive/MyDrive/Official Folder of WRI Latin America Project/WRI-LatinAmerica-Talent\"\n",
"\n",
- "data_path = f\"{base_path}/Cristina_Policy_Files/Tagged_sentence_lists/datasets/Raters/\"\n",
- "results_save_path = f\"{base_path}/Modeling/FineTuningexperiments/{experiment}\"\n",
+ "data_path = f\"{base_path}/Cristina_Policy_Files/Tagged_sentence_lists/datasets/Raters\"\n",
+ "results_save_path = f\"{base_path}/Modeling/FineTuningExperiments/{experiment}\"\n",
"\n",
"if not os.path.exists(results_save_path):\n",
" os.makedirs(results_save_path)"
],
- "execution_count": 32,
+ "execution_count": 140,
"outputs": []
},
{
@@ -2641,339 +3349,665 @@
"colab": {
"base_uri": "https://localhost:8080/"
},
- "id": "HEemnroODor0",
- "outputId": "708d36ba-f271-4fb6-baaf-35ce65ee4bef"
+ "id": "r-eUXWHQi6TH",
+ "outputId": "172fc07b-8e18-448a-c3c9-c1b29e0c52ae"
},
"source": [
- "print(os.listdir(f\"{base_path}/Modeling/FineTuningExperiments/\"))"
+ "train_sents, train_labels, test_sents, test_labels = load_dataset(data_path, rater, set_of_labels_string)\n",
+ "label_names = unique_labels(train_labels)\n",
+ "label_names"
],
- "execution_count": 30,
+ "execution_count": 115,
"outputs": [
{
- "output_type": "stream",
- "text": [
- "['Exp1', 'EXP_DAVID_TSNE', 'EXP10', 'EXP11', 'EXP12', 'EXP13', 'EXP14', 'EXP15', 'Summary_diagrams', 'EXP20', 'EXP21', 'EXP22', 'EXPTEST1', 'EXPTEST2', 'EXPTEST0', 'EXPTEST3', 'EXPTEST4', 'EXPTEST5', 'EXP-TEST-NEW-DATA']\n"
- ],
- "name": "stdout"
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "['Technical assistance',\n",
+ " 'Supplies',\n",
+ " 'Credit',\n",
+ " 'Direct payment',\n",
+ " 'Fine',\n",
+ " 'Tax deduction']"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 115
}
]
},
{
"cell_type": "code",
"metadata": {
- "id": "E1r1ktjdeYQF"
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "mT8lrfE1jiF0",
+ "outputId": "80736eaf-0b0d-4c09-92f0-8067f58f7ae0"
},
"source": [
- "def load_dataset(data_path, rater, set_of_labels_string):\n",
- " \"\"\"\n",
- " Return the train data, train labels, test data, and test labels \n",
- " \"\"\"\n",
- " dataset = []\n",
- "\n",
- " for dataset_type in [\"train\", \"test\"]:\n",
- " for file_type in [\"sentences\", \"labels\"]:\n",
- " filename = dataset_type + \"_\" + rater + \"_\" + set_of_labels_string + \"_\" + file_type + \".csv\"\n",
- " file = data_path + filename\n",
- " data = pd.read_csv(file, index_col=False, header=None)\n",
- " dataset.append(data[0].tolist()) # The data is always the entire first column\n",
- " \n",
- " return dataset[0], dataset[1], dataset[2], dataset[3]"
+ "(train_sents[2], train_labels[2]), (test_sents[2], test_labels[2])"
+ ],
+ "execution_count": 116,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(('Cada familia sólo tendrá derecho a un Subsidio Bono Leña, no pudiendo causar este beneficio más de una persona por grupo familiar',\n",
+ " 'Direct payment'),\n",
+ " ('- El pago del Subsidio se efectuará a la persona beneficiaria o al integrante de la familia beneficiaria que corresponda, de acuerdo a la información que contenga la Ficha de Protección Social o el instrumento de caracterización socioeconómica vigente\"',\n",
+ " 'Direct payment'))"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 116
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "VbnqVcEzuWq5"
+ },
+ "source": [
+ "### Grid Search Fine Tuning"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "l9ycZoZ5yU0d"
+ },
+ "source": [
+ "# Configure the grid search fine tuning \n",
+ "grid_search_params = {\n",
+ " \"all_test_perc\": [0.15, 0.2, 0.25, 0.3],\n",
+ " \"model_names\": ['stsb-xlm-r-multilingual', 'paraphrase-xlm-r-multilingual-v1'], #, 'quora-distilbert-multilingual''distiluse-base-multilingual-sed-v2',\n",
+ " \"output_path\": results_save_path,\n",
+ " \"experiment\": experiment,\n",
+ " # If you want to train for a set number of epochs instead of a range, set all these numbers to be equal\n",
+ " \"start_epochs\": 4, \n",
+ " \"epochs_increment\": 2,\n",
+ " \"max_num_epochs\": 12\n",
+ "}"
+ ],
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "jWmPbwmhP_cZ"
+ },
+ "source": [
+ "# To run a grid search over hyperparameters for fine tuning SBERT without storing the model, run:\n",
+ "grid_search_fine_tune_sbert(grid_search_params, train_sents, train_labels, test_sents, test_labels, label_names)"
],
- "execution_count": 46,
+ "execution_count": null,
"outputs": []
},
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "m22EUP0uuaP0"
+ },
+ "source": [
+ "### Fine tuning with set parameters"
+ ]
+ },
{
"cell_type": "code",
"metadata": {
- "id": "r-eUXWHQi6TH"
+ "id": "Rf23hSr5RdYt"
},
"source": [
- "train_sents, train_labels, test_sents, test_labels = load_dataset(data_path, rater, set_of_labels_string)"
+ "# Configure the fine tuning for one set of parameters\n",
+ "fine_tuning_params = {\n",
+ " \"test_perc\": 0.25,\n",
+ " \"model_names\": 'paraphrase-xlm-r-multilingual-v1',\n",
+ " \"output_path\": results_save_path,\n",
+ " \"experiment\": experiment\",\n",
+ " \"num_epochs\": 10\n",
+ "}"
],
- "execution_count": 43,
+ "execution_count": 141,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
- "base_uri": "https://localhost:8080/"
+ "base_uri": "https://localhost:8080/",
+ "height": 1000,
+ "referenced_widgets": [
+ "fca6dd1f1a0d4bdd8afe04f5f899e7f8",
+ "c203042fd0204268a649a05daa0513bf",
+ "acf9c2fff09d46a3a62203b2980e0539",
+ "f04ce12c094a432cba7a2b2dc8fea813",
+ "77a376e6fd524e839e4017ba6d7d52a9",
+ "8f2b826e76b44d9da1fc36c607f0fe02",
+ "44dc88d26359459ea810213cd9c4e87c",
+ "53ede21cf7164a89a809bf2ac953f959",
+ "c12c140a024f46c7a1cfad318f8056fc",
+ "10c77230e1b64e69af1ffc44a045ddd2",
+ "8f2f04f100a94ab8acbc84c13e5859dd",
+ "3fa00df1702a446ab57d973aba921d3c",
+ "779a149fd09b4c6ba2123ef11b083813",
+ "19aa17e755464ca5b0c03d0b3873f559",
+ "b4e762317b52408ca6a1fb46575efe06",
+ "ebf1d875a69f4d67b6d61f6815cc0655",
+ "0043df9db81b47aead59cec69e05da8b",
+ "f72994f47aaf4f6798d6b463cf2d8d86",
+ "0197d0350b424e1bae2a8a53dd7c26df",
+ "984ab80a4bbe42748daea5171c0db82f",
+ "a37d28bdc9bd4e128391c5ddb1f38852",
+ "f96091f965d94857a16c15024ec732b5",
+ "9f20f391063548b4a8987fa3c4f7d97a",
+ "3069cde1cbad49dfa0c34bea3ed71d08",
+ "dd29ef6f6df44d44af78d04004c62f01",
+ "6fe5ac05d47b41ceb544a5179d1ef5d4",
+ "1b9ccce5f3894cdc9158c653d41957ca",
+ "d8afbc8b25444d1483330af2b18a94d0",
+ "92a14ea822d0458583320ed461bd1a17",
+ "d071db82958845a5947daa9eaa2ddf91",
+ "0c9c7bc3e1dc495799a4a37c990f4241",
+ "94c3ab21e78c405da85788eb4106db50",
+ "3304541393f84fefa400de83e8636a5c",
+ "0538e8932a854ef987ce8e43ec13a719",
+ "cf3e517756074c739d2d8f0368dee1ea",
+ "0e2231e802f34971a1af2cbc0022f3eb",
+ "b50304c81a714aeaa58d5c8e20dee56b",
+ "5d12b9d1dfdb48b7809111a676185d15",
+ "d4c81c9a13a74df2a0cc7c237469b68b",
+ "81b6e33bbd5547e99b8dab541374f4e7",
+ "f03fc44e573e4c799f1045c504d36b2f",
+ "a7b74586b70244eba0782addd7a6e4d4",
+ "1f80711802bd4fd8b50d101d6df878b6",
+ "2d9c3e251af84a14b34df6160666b7ee",
+ "75af76007b0b482698644fdd0ed8d571",
+ "9ac5ff1a27824774a09ca05be8cc4857",
+ "71c8d30a19814201908f88a77ce6f46a",
+ "dd47cc0013c6480fa831d049940850a6",
+ "1d385b01f10e44489b63814336181bde",
+ "4701fb0c920d43c189eb3f36091821b7",
+ "46ef86cff22a4e88964ad11f33c943ec",
+ "6cc96dac09a6452a9ed253fb25c474b7",
+ "86876f890d9443dbb2f28ed6020526dd",
+ "e473824c3f2146948bb1b8b4a0e5e5da",
+ "7bda8650be2440588bedf1b2d577b38c",
+ "78ec3b4e9914430f9359f26b08105e04",
+ "492cbe734d6149c2837528e1655d662e",
+ "97c90c47ac574ff8b9d9c00fe349da80",
+ "6d31911b685c4108a8d5e0b525613911",
+ "29ab38f03b9c4c86b18ed5608d040e49",
+ "c69b83d1ec9347f3b2b5375ca533738a",
+ "d40ea82e5d4f4b149b95796005062856",
+ "75a15fb3c013479cb5c3a45df0b2936f",
+ "9151a55f3f6d4db2928f2b3b279f3c0b",
+ "1e304bf241274d818ab4522828ae169c",
+ "f65aac581b9f413589669b922fbc46a8",
+ "16336b96d0a64703bd03d5f0e48657b8",
+ "68841718d5724076a06b0dd7c0a9df69",
+ "9eab9ea38b41459da2284fdd5aa39bbb",
+ "65e5465691384020984635b1f6f098c2",
+ "618525790f53419f886281120454efeb",
+ "c499b23942f9456180edc5e99ab98ca7",
+ "2e98274dfc4a4535b4cf395c274f9c7c",
+ "889c0e01503d4707abfbd344f18a33dc",
+ "59d2db0846b44fffb8eb8df09256a12b",
+ "398870e396004bd6b3df8fe40aa25818",
+ "c455db89759e43b49717b7c0e8cdf749",
+ "14665e3c4ae64f5cba8465a75de16df1",
+ "d78e8d908d3a43eda18d7b4c26cddaaa",
+ "9b03ee6a937a40d99a9a112001e38ef3",
+ "def1dc1c9ea242ad9e29ff55d4a79326",
+ "d8f685293e2d4a868eb4258d2e535659",
+ "c391454a40c342eca3479026162b4da0",
+ "645384434f4747a4b24d5b37fce6fa00",
+ "cc3f54299a05492a86384f062595280e",
+ "6b334406ed0f49cd8096471a97b134b3",
+ "370fa1fe3aa74ee2a94be109f96f48d0",
+ "f0847f77abc543c0ad4986a1abfaab91"
+ ]
+ },
+ "id": "fVnPsq3FQLpw",
+ "outputId": "9b2cd796-a9eb-446f-f0da-ef0655c2387b"
+ },
+ "source": [
+ "# If you already know which configuration you want to fine tune SBERT on, and want to store the model, run:\n",
+ "fine_tune_sbert(fine_tuning_params, train_sents, train_labels, test_sents, test_labels, label_names)"
+ ],
+ "execution_count": 142,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Fine tuning parameters:\n",
+ " {\n",
+ " \"experiment\": \"EXP-TEST-NEW-DATA2\",\n",
+ " \"model_names\": \"paraphrase-xlm-r-multilingual-v1\",\n",
+ " \"num_epochs\": 10,\n",
+ " \"output_path\": \"/content/drive/MyDrive/WRI-LatinAmerica-Talent/Modeling/FineTuningExperiments/EXP-TEST-NEW-DATA2\",\n",
+ " \"test_perc\": 0.25\n",
+ "}\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "fca6dd1f1a0d4bdd8afe04f5f899e7f8",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Epoch', max=10.0, style=ProgressStyle(description_width='…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "c12c140a024f46c7a1cfad318f8056fc",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 16.49it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 15.65it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 14.08it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 14.74it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "0043df9db81b47aead59cec69e05da8b",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 16.35it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 15.63it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 16.17it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 80%|████████ | 8/10 [00:00<00:00, 15.79it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 15.76it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "dd29ef6f6df44d44af78d04004c62f01",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 19.28it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 17.21it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 16.28it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 17.12it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "3304541393f84fefa400de83e8636a5c",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 15.24it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 15.11it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 70%|███████ | 7/10 [00:00<00:00, 16.31it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 17.10it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "f03fc44e573e4c799f1045c504d36b2f",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 16.76it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 16.66it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 15.59it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 80%|████████ | 8/10 [00:00<00:00, 15.11it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 14.73it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "1d385b01f10e44489b63814336181bde",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 16.47it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
},
- "id": "mT8lrfE1jiF0",
- "outputId": "8fe86643-8e08-4b04-edb1-5d764d3a9917"
- },
- "source": [
- "(train_sents[2], train_labels[2]), (test_sents[2], test_labels[2])"
- ],
- "execution_count": 48,
- "outputs": [
{
- "output_type": "execute_result",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 16.36it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 14.67it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 16.24it/s]\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
"data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "492cbe734d6149c2837528e1655d662e",
+ "version_minor": 0,
+ "version_major": 2
+ },
"text/plain": [
- "(('- La infracción a las disposiciones de la presente resolución será sancionada de conformidad con el procedimiento y las penas contempladas en los títulos IX y X de la ley Nº 18,892 y sus modificaciones',\n",
- " 'Fine'),\n",
- " ('- El cuarto pago podrá alcanzar hasta un 25% del valor de servicio, y se pagará una vez que las obras se encuentren terminadas, contra informe final aprobado por el SERVIU y recepción DOM, cuando corresponda',\n",
- " 'Direct payment'))"
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
]
},
"metadata": {
"tags": []
- },
- "execution_count": 48
- }
- ]
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "1AsS8vYWbOJI"
- },
- "source": [
- "import json"
- ],
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "fHMZzTpHbOP0"
- },
- "source": [
- "output_path = f\"{base_path}/Modeling/FineTuningExperiments/{experiment}/\"\n",
- "# output_path = f\"/content/drive/MyDrive/Official Folder of WRI Latin America Project/WRI-LatinAmerica-Talent/Modeling/FineTuningExperiments/{experiment}/\""
- ],
- "execution_count": 49,
- "outputs": []
- },
- {
- "cell_type": "code",
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 1000,
- "referenced_widgets": [
- "a9572d31730d42019365958670ce4adf",
- "1d22e5a4c66a4cd7b86d8d20b94029e1",
- "a113e119d5764b328db3bf511900be0b",
- "09532df629af458f83b8636fdbf45c24",
- "a6940fb831214948a58799d4372fe07b",
- "139e93e910084878a93e61908eac369f",
- "209cb947261342e1977c340b0fefae36",
- "de62abfdeff34006800c442e0c866d8e",
- "b2d70e845f134eb89b10253d04bc2984",
- "2cf17c25a8f049e4bd8a32a67700fe29",
- "af5cf0176d8a41d3b538b213864842e0",
- "d15f83390ec748d19f03adb5456239a1",
- "77854a49bb1e469abdc99910270ec8f2",
- "b6255bd351a340f29555c4c8235da2d9",
- "de36b12c8c044b84b7f2cc616b4a01fb",
- "4072e74bcd754c3aaaf88354929b6a91",
- "fbc309a67eba4a4fbe5a08d71e906948",
- "66a78180061140ad8aa38ac0852f1341",
- "e4d68489cba7485f9f09c0e62a768cf2",
- "c4a4997f4b624cf6857827f8773ad942",
- "d7349571e12944df9938b0071fd12032",
- "9fa1111e63944ed2ae340d523180c27e",
- "cbf9123b9b6a4a8884dee393ee689eb5",
- "3e57696b2eb542b99657acd746690551",
- "adb37a347dc741bb8b467711d7f29b52",
- "7e2833fd892541e5b031bf8a23e7dfa9",
- "ce9d2045aa784a87bb1d999bb8016727",
- "01ff82ff97fa4909bdfc9029403b9bdd",
- "38e47280bebe4135818796d938aa3084",
- "165a0b004d4b496e8bbe1ea0c1b98306",
- "a27d3dcd9ebe417e9bc497c2cd07b681",
- "e61766c2f5d2431a845f686866798bd3",
- "ef07a5d5bdde47ed84f7c9a43e19a45f",
- "24433c5adfbc4cea8028a5b29f98a166",
- "c9c7884e24fa44419dbc69ebfef4032d",
- "c6f4fdced03d45d7a1c3a2a5c790f42c",
- "e722fdf2798b4b5b82c93c2638dd5477",
- "c005c5550e5c45e28fc731772a2bf7af",
- "14d03e8e23854fb4a3ac8063218e0ae2",
- "82620c7c240c44d2a6dfa95497289bc8",
- "4825d1567c3140438331446e01180251",
- "6a2c5e52ef23492ab50526314f433398",
- "82b52d9049de4898bde77e6e3fc3ec1c",
- "475b1d01f8934aaa8767e66831dfb7a8",
- "31cd013fa0244dccbe0dd37ea2ef1fd4",
- "27928bcd9585415cb274a4dfb3f648bd",
- "149a4a47dd9f476380c37a730e8c63da",
- "f85fc31fa00e4412b2690c7c73b2056a",
- "78c898811bfc4875b98c89dc71e5514f",
- "5474a24ffa694b70ac3cba68dea838cf",
- "19b14291422b49e2aa9f0c136245d5c8",
- "14ed3217e4824e428ac97418121ca8d5",
- "acfaaf9ef97a4532b15926f33d19b68c",
- "918ed4e7c93e485dbd9be1bd64bd85e9",
- "a412f89ae07348fa8d77fcf3a3f6399d",
- "8fa11a5367dd41028a6a05e8e1a01ce7",
- "093d49b6236b487fb757c25768b4df64",
- "cb97b2a14caa44dc877492232ea3d407",
- "03bcf18d3b084de9b44367b5d4f3a6bd",
- "780d0eed80f54dfea4b410390c01653e",
- "1290453a849f492d8debf450f36f7b48",
- "fc790c2f7ae14782b1c81b4edc928b6c",
- "7dbe8c145df74e90841bca8ccae12314",
- "cac6523ba185434abd3d987d2c2129d7",
- "6cd99c4adf3245579255ff38466395f6",
- "dd3ce1ba54174fef8ccee98d2e44ed4c",
- "9d909b528159413d9d80665daa753521",
- "46fa1a6f0f524a7995ac548deebb123c",
- "cacb560792f9488696b9421753a3fc59",
- "afecaf3d6c554044bebb5638fe507d69",
- "09b43f809d18440ca7214b6e0ba12c64",
- "2b345d11ae804fc6b03dd5edc9f48352"
- ]
+ }
},
- "id": "l9ycZoZ5yU0d",
- "outputId": "7c0dfe9a-4775-4d81-8e8d-0682aae49cbf"
- },
- "source": [
- "# Configure the training\n",
- "all_test_perc = [0.15, 0.2, 0.25, 0.3]\n",
- "model_names = ['stsb-xlm-r-multilingual', 'paraphrase-xlm-r-multilingual-v1']#, 'quora-distilbert-multilingual''distiluse-base-multilingual-sed-v2', \n",
- "\n",
- "# If you want to train for a set number of epochs instead of a range, set all these numbers to be equal\n",
- "start_epochs = 4\n",
- "epochs_increment = 2\n",
- "max_num_epochs = 12\n",
- "\n",
- "# Output setup - we will update the json as the fine tuning process goes so every result is stored immediately\n",
- "with open(f\"{output_path}{experiment}_FineTuningResults.json\", \"w\") as fw:\n",
- " json.dump({}, fw)\n",
- "\n",
- "for test_perc in all_test_perc:\n",
- " with open(f\"{output_path}{experiment}_FineTuningResults.json\", \"r\") as fr:\n",
- " output = json.load(fr)\n",
- "\n",
- " output[f\"test_perc={test_perc}\"] = {}\n",
- " X_train, X_test, y_train, y_test = train_test_split(train_sents, train_labels, test_size=test_perc, stratify=train_labels, random_state=69420)\n",
- "\n",
- " # Load data samples into batches\n",
- " train_batch_size = 16\n",
- " label2int = dict(zip(label_names, range(len(label_names))))\n",
- " train_samples = []\n",
- " for sent, label in zip(X_train, y_train):\n",
- " label_id = label2int[label]\n",
- " train_samples.append(InputExample(texts=[sent], label=label_id))\n",
- "\n",
- " # Configure the dev set evaluator - still need to test whether this works\n",
- " dev_samples = []\n",
- " for sent, label in zip(X_test, y_test):\n",
- " label_id = label2int[label]\n",
- " dev_samples.append(InputExample(texts=[sent], label=label_id))\n",
- " \n",
- " for model_name in model_names:\n",
- " # Setup\n",
- " model_preds = []\n",
- " model_scores = []\n",
- " output[f\"test_perc={test_perc}\"][model_name] = []\n",
- " \n",
- " # Train set config\n",
- " model = SentenceTransformer(model_name)\n",
- " train_dataset = SentencesDataset(train_samples, model=model)\n",
- " train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size)\n",
- " \n",
- " # Define the way the loss is computed\n",
- " classifier = SoftmaxClassifier(model=model, sentence_embedding_dimension=model.get_sentence_embedding_dimension(), num_labels=len(label2int))\n",
- " \n",
- " # Dev set config\n",
- " dev_dataset = SentencesDataset(dev_samples, model=model)\n",
- " dev_dataloader = DataLoader(dev_dataset, shuffle=True, batch_size=train_batch_size)\n",
- " dev_evaluator = LabelAccuracyEvaluator(dataloader=dev_dataloader, softmax_model=classifier, name='lae-dev')\n",
- " \n",
- " for num_epochs in range(start_epochs, max_num_epochs + 2, epochs_increment):\n",
- " print(\"Num epochs:\", num_epochs)\n",
- " \n",
- " warmup_steps = math.ceil(len(train_dataset) * num_epochs / train_batch_size * 0.1) # 10% of train data for warm-up\n",
- " model_deets = f\"model={model_name}_test-perc={test_perc}_n-epoch={num_epochs}\"\n",
- "\n",
- " # Train the model\n",
- " start = time.time()\n",
- " if num_epochs == start_epochs:\n",
- " model.fit(train_objectives=[(train_dataloader, classifier)],\n",
- " evaluator=dev_evaluator,\n",
- " epochs=start_epochs, \n",
- " evaluation_steps=1000,\n",
- " warmup_steps=warmup_steps,\n",
- " )\n",
- " else:\n",
- " model.fit(train_objectives=[(train_dataloader, classifier)],\n",
- " evaluator=dev_evaluator,\n",
- " epochs=epochs_increment, # We always tune on an extra epoch to see the performance gain\n",
- " evaluation_steps=1000,\n",
- " warmup_steps=warmup_steps,\n",
- " )\n",
- " \n",
- " end = time.time()\n",
- " hours, rem = divmod(end-start, 3600)\n",
- " minutes, seconds = divmod(rem, 60)\n",
- " print(\"Time taken for fine-tuning:\", \"{:0>2}:{:0>2}:{:05.2f}\".format(int(hours),int(minutes),seconds))\n",
- " \n",
- " ### Classify sentences\n",
- " # Projection matrix Z low-dim projection\n",
- " print(\"Classifying sentences...\")\n",
- " proj_matrix = cp.asnumpy(calc_proj_matrix(test_sents, 50, es_nlp, model, 0.01))\n",
- " all_sent_embs = encode_train_sents(test_sents, model, proj_matrix)\n",
- " all_label_embs = encode_labels(label_names, model, proj_matrix)\n",
- " visualize_embeddings_2D(np.vstack(all_sent_embs), test_labels, tsne_perplexity=50, store_name=f\"{results_save_path}/{model_deets}\")\n",
- " model_preds, model_scores = calc_all_cos_similarity(all_sent_embs, all_label_embs, label_names)\n",
- " \n",
- " ### Evaluate the model\n",
- " numeric_preds = labels2numeric(model_preds, label_names)\n",
- " evaluator = ModelEvaluator(label_names, y_true=numeric_labels, y_pred=numeric_preds)\n",
- " \n",
- " output[f\"test_perc={test_perc}\"][model_name].append({\"num_epochs\": num_epochs, \"avg_f1\": evaluator.avg_f1.tolist()})\n",
- " with open(f\"{output_path}{experiment}_FineTuningResults.json\", \"w\") as fw:\n",
- " json.dump(output, fw)\n",
- "\n",
- " evaluator.plot_confusion_matrix(color_map='Blues', exp_name=f\"{results_save_path}/{model_deets}\")"
- ],
- "execution_count": null,
- "outputs": [
{
"output_type": "stream",
"text": [
- "100%|██████████| 1.01G/1.01G [00:53<00:00, 18.8MB/s]\n"
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 18.25it/s]\u001b[A\u001b[A"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
- "Num epochs: 4\n"
+ "\n"
],
"name": "stdout"
},
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 18.06it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 16.85it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 80%|████████ | 8/10 [00:00<00:00, 15.23it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 15.80it/s]\n"
+ ],
+ "name": "stderr"
+ },
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "a9572d31730d42019365958670ce4adf",
+ "model_id": "1e304bf241274d818ab4522828ae169c",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
- "HBox(children=(FloatProgress(value=0.0, description='Epoch', max=2.0, style=ProgressStyle(description_width='i…"
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
]
},
"metadata": {
"tags": []
}
},
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 10%|█ | 1/10 [00:00<00:00, 9.68it/s]\u001b[A\u001b[A"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Evaluating: 30%|███ | 3/10 [00:00<00:00, 11.07it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 50%|█████ | 5/10 [00:00<00:00, 11.96it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 70%|███████ | 7/10 [00:00<00:00, 12.84it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 15.20it/s]\n"
+ ],
+ "name": "stderr"
+ },
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "b2d70e845f134eb89b10253d04bc2984",
+ "model_id": "2e98274dfc4a4535b4cf395c274f9c7c",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
- "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=31.0, style=ProgressStyle(description_wid…"
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
]
},
"metadata": {
@@ -2984,7 +4018,10 @@
"output_type": "stream",
"text": [
"\n",
- "Evaluating: 0%| | 0/6 [00:00, ?it/s]\u001b[A"
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 13.59it/s]\u001b[A\u001b[A"
],
"name": "stderr"
},
@@ -2999,9 +4036,12 @@
"output_type": "stream",
"text": [
"\n",
- "Evaluating: 33%|███▎ | 2/6 [00:00<00:00, 9.65it/s]\u001b[A\n",
- "Evaluating: 67%|██████▋ | 4/6 [00:00<00:00, 9.83it/s]\u001b[A\n",
- "Evaluating: 100%|██████████| 6/6 [00:00<00:00, 10.89it/s]\n"
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 13.74it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 14.59it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 15.79it/s]\n"
],
"name": "stderr"
},
@@ -3009,12 +4049,12 @@
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "fbc309a67eba4a4fbe5a08d71e906948",
+ "model_id": "def1dc1c9ea242ad9e29ff55d4a79326",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
- "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=31.0, style=ProgressStyle(description_wid…"
+ "HBox(children=(FloatProgress(value=0.0, description='Iteration', max=28.0, style=ProgressStyle(description_wid…"
]
},
"metadata": {
@@ -3025,7 +4065,10 @@
"output_type": "stream",
"text": [
"\n",
- "Evaluating: 0%| | 0/6 [00:00, ?it/s]\u001b[A\n"
+ "\n",
+ "Evaluating: 0%| | 0/10 [00:00, ?it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 20%|██ | 2/10 [00:00<00:00, 12.57it/s]\u001b[A\u001b[A"
],
"name": "stderr"
},
@@ -3039,9 +4082,15 @@
{
"output_type": "stream",
"text": [
- "Evaluating: 33%|███▎ | 2/6 [00:00<00:00, 10.53it/s]\u001b[A\n",
- "Evaluating: 50%|█████ | 3/6 [00:00<00:00, 10.15it/s]\u001b[A\n",
- "Evaluating: 100%|██████████| 6/6 [00:00<00:00, 11.43it/s]\n"
+ "\n",
+ "\n",
+ "Evaluating: 40%|████ | 4/10 [00:00<00:00, 13.16it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 60%|██████ | 6/10 [00:00<00:00, 14.15it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 80%|████████ | 8/10 [00:00<00:00, 14.64it/s]\u001b[A\u001b[A\n",
+ "\n",
+ "Evaluating: 100%|██████████| 10/10 [00:00<00:00, 15.39it/s]\n"
],
"name": "stderr"
},
@@ -3049,7 +4098,7 @@
"output_type": "stream",
"text": [
"\n",
- "Time taken for fine-tuning: 00:00:27.82\n",
+ "Time taken for fine-tuning: 00:01:40.95\n",
"Classifying sentences...\n"
],
"name": "stdout"
@@ -3057,228 +4106,565 @@
{
"output_type": "stream",
"text": [
- "100%|██████████| 145/145 [00:03<00:00, 36.83it/s]\n"
+ "\n",
+ " 0%| | 0/150 [00:00, ?it/s]\u001b[A\n",
+ " 2%|▏ | 3/150 [00:00<00:05, 25.23it/s]\u001b[A\n",
+ " 4%|▍ | 6/150 [00:00<00:06, 23.95it/s]\u001b[A\n",
+ " 5%|▌ | 8/150 [00:00<00:07, 20.06it/s]\u001b[A\n",
+ " 7%|▋ | 10/150 [00:00<00:07, 19.62it/s]\u001b[A\n",
+ " 9%|▊ | 13/150 [00:00<00:06, 20.12it/s]\u001b[A\n",
+ " 11%|█ | 16/150 [00:00<00:06, 20.28it/s]\u001b[A\n",
+ " 12%|█▏ | 18/150 [00:00<00:07, 18.54it/s]\u001b[A\n",
+ " 13%|█▎ | 20/150 [00:01<00:07, 18.38it/s]\u001b[A\n",
+ " 15%|█▍ | 22/150 [00:01<00:07, 18.19it/s]\u001b[A\n",
+ " 16%|█▌ | 24/150 [00:01<00:07, 17.69it/s]\u001b[A\n",
+ " 17%|█▋ | 26/150 [00:01<00:07, 17.61it/s]\u001b[A\n",
+ " 19%|█▊ | 28/150 [00:01<00:07, 16.60it/s]\u001b[A\n",
+ " 20%|██ | 30/150 [00:01<00:07, 16.71it/s]\u001b[A\n",
+ " 21%|██▏ | 32/150 [00:01<00:06, 17.08it/s]\u001b[A\n",
+ " 23%|██▎ | 35/150 [00:01<00:06, 18.55it/s]\u001b[A\n",
+ " 25%|██▍ | 37/150 [00:01<00:06, 18.73it/s]\u001b[A\n",
+ " 27%|██▋ | 40/150 [00:02<00:05, 20.00it/s]\u001b[A\n",
+ " 29%|██▊ | 43/150 [00:02<00:05, 20.83it/s]\u001b[A\n",
+ " 31%|███ | 46/150 [00:02<00:04, 21.63it/s]\u001b[A\n",
+ " 33%|███▎ | 49/150 [00:02<00:04, 22.31it/s]\u001b[A\n",
+ " 35%|███▍ | 52/150 [00:02<00:04, 20.78it/s]\u001b[A\n",
+ " 37%|███▋ | 55/150 [00:02<00:04, 20.82it/s]\u001b[A\n",
+ " 39%|███▊ | 58/150 [00:02<00:04, 21.45it/s]\u001b[A\n",
+ " 41%|████ | 61/150 [00:03<00:04, 21.42it/s]\u001b[A\n",
+ " 43%|████▎ | 64/150 [00:03<00:03, 21.63it/s]\u001b[A\n",
+ " 45%|████▍ | 67/150 [00:03<00:03, 22.23it/s]\u001b[A\n",
+ " 47%|████▋ | 70/150 [00:03<00:03, 22.68it/s]\u001b[A\n",
+ " 49%|████▊ | 73/150 [00:03<00:03, 22.14it/s]\u001b[A\n",
+ " 51%|█████ | 76/150 [00:03<00:03, 21.69it/s]\u001b[A\n",
+ " 53%|█████▎ | 79/150 [00:03<00:03, 21.53it/s]\u001b[A\n",
+ " 55%|█████▍ | 82/150 [00:04<00:03, 21.83it/s]\u001b[A\n",
+ " 57%|█████▋ | 85/150 [00:04<00:02, 22.03it/s]\u001b[A\n",
+ " 59%|█████▊ | 88/150 [00:04<00:02, 22.64it/s]\u001b[A\n",
+ " 61%|██████ | 91/150 [00:04<00:02, 22.90it/s]\u001b[A\n",
+ " 63%|██████▎ | 94/150 [00:04<00:02, 22.16it/s]\u001b[A\n",
+ " 65%|██████▍ | 97/150 [00:04<00:02, 21.14it/s]\u001b[A\n",
+ " 67%|██████▋ | 100/150 [00:04<00:02, 20.80it/s]\u001b[A\n",
+ " 69%|██████▊ | 103/150 [00:04<00:02, 21.48it/s]\u001b[A\n",
+ " 71%|███████ | 106/150 [00:05<00:02, 21.92it/s]\u001b[A\n",
+ " 73%|███████▎ | 109/150 [00:05<00:01, 22.37it/s]\u001b[A\n",
+ " 75%|███████▍ | 112/150 [00:05<00:01, 22.65it/s]\u001b[A\n",
+ " 77%|███████▋ | 115/150 [00:05<00:01, 22.83it/s]\u001b[A\n",
+ " 79%|███████▊ | 118/150 [00:05<00:01, 20.79it/s]\u001b[A\n",
+ " 81%|████████ | 121/150 [00:05<00:01, 19.75it/s]\u001b[A\n",
+ " 83%|████████▎ | 124/150 [00:06<00:01, 19.13it/s]\u001b[A\n",
+ " 84%|████████▍ | 126/150 [00:06<00:01, 18.47it/s]\u001b[A\n",
+ " 85%|████████▌ | 128/150 [00:06<00:01, 18.34it/s]\u001b[A\n",
+ " 87%|████████▋ | 130/150 [00:06<00:01, 17.68it/s]\u001b[A\n",
+ " 88%|████████▊ | 132/150 [00:06<00:01, 17.51it/s]\u001b[A\n",
+ " 89%|████████▉ | 134/150 [00:06<00:00, 17.49it/s]\u001b[A\n",
+ " 91%|█████████ | 136/150 [00:06<00:00, 17.16it/s]\u001b[A\n",
+ " 92%|█████████▏| 138/150 [00:06<00:00, 17.77it/s]\u001b[A\n",
+ " 94%|█████████▍| 141/150 [00:06<00:00, 18.68it/s]\u001b[A\n",
+ " 96%|█████████▌| 144/150 [00:07<00:00, 19.90it/s]\u001b[A\n",
+ " 98%|█████████▊| 147/150 [00:07<00:00, 20.76it/s]\u001b[A\n",
+ "100%|██████████| 150/150 [00:07<00:00, 20.39it/s]\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
- "[t-SNE] Computing 144 nearest neighbors...\n",
- "[t-SNE] Indexed 145 samples in 0.002s...\n",
- "[t-SNE] Computed neighbors for 145 samples in 0.007s...\n",
- "[t-SNE] Computed conditional probabilities for sample 145 / 145\n",
- "[t-SNE] Mean sigma: 12.461691\n",
- "[t-SNE] KL divergence after 250 iterations with early exaggeration: 53.715881\n",
- "[t-SNE] KL divergence after 1000 iterations: 0.221217\n"
+ "[t-SNE] Computing 149 nearest neighbors...\n",
+ "[t-SNE] Indexed 150 samples in 0.000s...\n",
+ "[t-SNE] Computed neighbors for 150 samples in 0.016s...\n",
+ "[t-SNE] Computed conditional probabilities for sample 150 / 150\n",
+ "[t-SNE] Mean sigma: 20.614611\n",
+ "[t-SNE] KL divergence after 250 iterations with early exaggeration: 54.593678\n",
+ "[t-SNE] KL divergence after 950 iterations: 0.092751\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
- "100%|██████████| 145/145 [00:00<00:00, 2211.96it/s]\n"
+ "\n",
+ "100%|██████████| 150/150 [00:00<00:00, 9216.63it/s]\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
- "Stored confusion matrix: /content/drive/MyDrive/Official Folder of WRI Latin America Project/WRI-LatinAmerica-Talent/Modeling/FineTuningExperiments/EXPTEST/model=stsb-xlm-r-multilingual_test-perc=0.15_n-epoch=4_cm.png\n"
+ "Stored confusion matrix: /content/drive/MyDrive/WRI-LatinAmerica-Talent/Modeling/FineTuningExperiments/EXP-TEST-NEW-DATA2/model=paraphrase-xlm-r-multilingual-v1_test-perc=0.25_n-epoch=10_cm.png\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABBcAAAESCAYAAACmST0lAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3xN5x/A8c8dudmJyBSxR4xYtfcepUqN8rOVolq0VaNW1apRqrSqFG2N0ppVGqsoWmoT1F5BIpG9c8fvj1M3rgQhO77v1yuv3POc85z7vRE5537v83wflclkMiGEEEIIIYQQQgjxgtQ5HYAQQgghhBBCCCHyNkkuCCGEEEIIIYQQIkMkuSCEEEIIIYQQQogMkeSCEEIIIYQQQgghMkSSC0IIIYQQQgghhMgQSS4IIYQQQgghhBAiQyS5IMRT+Pr60rJlS9q0aUPr1q3p3Lkzf//9t3m/yWRixYoVvPbaa7Ru3ZoWLVowefJkoqOjLc5z6dIlatSowTfffJOl8a5atYr58+e/cP+ff/7Z/Lhv376cO3cuM8ISQgghLK4xjwsLC2PkyJG0bt2a1q1b065dO4vjmzVrRr9+/Sz6BAYG0qxZM/NjX19f2rRpk+orODg4S17P3Llz+emnn164/6Ovr02bNoSGhmZGWEIIkWNUJpPJlNNBCJFb+fr6sn//fry8vAA4fvw477zzDv7+/hQsWJA5c+bwzz//8NVXX+Hp6UlcXBzTp0/n+vXrrF69GpVKBcCsWbPw9vZm7dq1bNu2LSdf0hMZDAZq167NsWPHcjoUIYQQ+cyzrjEffPAB3t7ejBw5ErVazY0bN+jWrRuLFy+mWrVq5iTCuHHjaNGiBaAkFPr06cMff/xBYGAgrVq14vz589n2mjIiJCSEnj17snPnzpwORQghMo2MXBDiOVSvXp2iRYty8uRJIiIiWLlyJTNnzsTT0xMAOzs7Jk2axMCBA3mYtzMYDOzevZtOnTrh5eXF6dOn0zx3s2bNWLp0KZ06daJOnTrmEQiBgYE0aNCAGTNm0KtXLwCOHDnCG2+8QZs2bejatStnz54FYOHChYwfPx6AoKAghgwZYv4UaP/+/ebn2rx5s7l91KhRJCUl0b9/f6Kjo2nTpg23b9+mWbNm5pvA33//nddee402bdrQp08fbt26ZX6+KVOm8O6779K8eXO6dOnC/fv3M/vHLoQQIo97/BrzuEuXLlG5cmXUauXWtHjx4mzdupXKlSubj/noo4+YM2cOSUlJGY7H19eXH3/8kQ4dOlC3bl3zCIQjR47QvXt3RowYwciRI4EnXwPHjh3LokWLALhy5Qq9evWidevWtG/f3nxdBliyZAnNmzendevWfPbZZ5hMJrp3787du3dp06YNSUlJ+Pr6EhQUBMCPP/5I27ZtadOmDe+88w5hYWHm51uwYAH9+/enadOm9O/fn/j4+Az/LIQQIrNIckGI56TX69HpdJw+fRovLy9KlSplsd/a2ppmzZqZb5AOHDhAlSpVsLe3p3379mzevPmJ5z516hS//PIL27ZtY82aNfz7778AREREUL58eVatWkVsbCwjRoxgwoQJ+Pv7M3DgQD766COMRqPFucaMGUO5cuXYsWMHS5YsYfTo0YSHhxMYGMisWbP48ccf8ff3Jz4+nh9//JEZM2ag0Wjw9/enSJEi5vPcvXuXiRMn8vXXX+Pv70+TJk2YNGmSeb+/vz/jxo1j9+7duLq6smHDhgz/jIUQQuQvT7rGPNSoUSMmT57Mt99+y/nz5zEajXh4eKDRaMzHVK5cmcqVK7Ny5cpMienmzZts2bKF1atXM2PGDMLDwwE4f/483bt3Z+7cuc+8BgIYjUbeffddOnTowI4dO5g8eTJDhw5Fr9dz7Ngx1q9fz5YtW9i6dSvHjx/H39+fGTNmUKhQIfz9/dHpdOZznTp1imXLlrFy5Ur8/f3x9vZm7ty55v3+/v588cUX7Nq1i7CwMHbt2pUpPwshhMgMklwQ4jns37+f0NBQXnnlFSIiInB1dX1mn02bNvH6668D0LJlS/bu3fvET106duyIRqPB1dWV6tWrc+LECQCSk5Np2bIlAGfOnMHLy4vq1asD0Lp1a8LDw7lz5475PHFxcRw5csQ8P7VYsWJUr16d/fv3c+jQIapVq4anpycqlYq5c+emmsf6qEOHDlG7dm2KFSsGQNeuXTly5Ah6vR6AGjVqULhwYVQqFeXLl+fevXvP/JkIIYQQjxo1ahQffPABBw8e5M0336RBgwZ8/fXXqRLnH330EStWrODBgwepzmEwGFLVW/jggw+e+JydO3cGoGTJkpQoUYIzZ84AYGNjQ926dYFnXwMBrl27xoMHD+jSpQugjHIsWLAgJ0+e5M8//6Rx48Y4ODig0+lYuXIlrVq1emJM+/bto3Xr1ub7i65du3Lo0CHz/saNG1OgQAG0Wi1ly5aVa64QIlfR5nQAQuR2vXv3RqPRYDKZKFy4MEuXLsXe3h4XF5dnFomKjIxk3759FjcGCQkJ7Nu3L82bC2dnZ4vHUVFRAGg0GhwcHACl6JWTk5NFP0dHR4sbrejoaPOwy4fi4uKoU6cOcXFxFv2tra2f+hrCw8Mtjnd0dMRkMpk/4XF0dDTv02g0GAyGp55PCCHEyy04OJi+ffsCymiE2bNno1arefPNN3nzzTeJi4tj3759TJ06FVdXV4trmaenJ927d2f+/PkMHjzY4rwPR0akV1rXXBsbG4v2Z10DAaKiokhISODVV181t8XExBAREUF4eDgeHh7mdltb26fGFBYWZnG8k5OTxfVdrrlCiNxMkgtCPMPKlSvNBR0fVbVqVR48eMC5c+eoWLGiuT05OZmvvvqKIUOGsG3bNjp06MCUKVPM+3ft2sWmTZvSTC48erMSERFhcYPzkKurKxEREeZtk8lEZGSkxSgKV1dXNBoNGzZswN7e3qL/unXrOHnypHk7JiaGhISEJ75+V1dXi+MjIyNRq9W4uLg8sY8QQgjxJJ6enhZJgNjYWP755x+aNm0KKPWL2rZty5kzZ7h06VKq/gMGDKBdu3Y0btw4Q3GEh4dTuHBh4OnX3GddAz08PLC3t08zsXH27FmLa/ujj9Pi5uZmcY2PiIjAzc0t/S9KCCFykEyLEOIFOTk5MXDgQMaMGcPNmzcBiI+PZ9KkSZw/fx5bW1s2bdpkrmr9UIMGDfjnn3/SvMHYvn07RqOR0NBQTpw4QY0aNVIdU7lyZUJDQ803O9u2bcPLywsfHx/zMVqtlsaNG7N27VpzXB9//DH37t2jcePGnDhxgsDAQEwmE5988gnr16/HysoKo9FITEyMxfPVr1+fY8eOmQtwrV27lvr166PVSm5SCCFE+jzpGgOgUqn4+OOP2bhxo7ktNDSUQ4cOUbNmzVTH29ra8v777zNnzpwMxfRw9aarV69y8+ZNqlSpkuqY9FwDCxcujJeXlzm5EBYWxocffkhcXBzNmjXjjz/+IDIyEr1ez7vvvsvBgwfRarXExcVZTK8AaNKkCbt27TLfI6xduzbDSRQhhMgu8u5AiAwYNmwYzs7OvPPOOxgMBtRqNc2bN2fy5MlcvXqVa9euUadOHYs+tra21KpVi23btplXf3ioTJkydOnShTt37tC7d2/KlClDYGCgxTF2dnbMnz+fqVOnEhcXR8GCBZk3b5552cuHJk+ezCeffMIvv/wCwOuvv06hQoUAmDJlCn379kWj0VCpUiX69++PlZUV1atXp2nTpnz77bfm83h5eTFt2jSGDh1KcnIyPj4+TJ06NdN+hkIIIfI/d3d3i2vMK6+8Yt5nZ2fH999/z9y5c1m8eDGgJCN69uxpMdXgUe3bt2fVqlWEhoaa2x7WXHjcyJEjzXWLHlWwYEE6dOhAcHAwEyZMSHPkQnqugSqVinnz5jF58mTmz5+PWq2mf//+2NnZUbVqVQYMGEDHjh3R6XQ0bNiQ1157jdjYWJydnalfvz6bNm0yn6ty5coMGjSInj17YjQaKV++PJMnT376D1cIIXIJlenhenlCiBzVrFkzZs+eneZohfRauHAhQUFBTJ8+PRMjE0IIIfIXX19f9u/fn+a0x/QaO3YsRYsWZejQoZkYmRBC5F0yLUKIfCQqKuqZxaKEEEIIkXFyzRVCCEuSXBAin1iwYAHbt2+nXbt2OR2KEEIIka+NGzeOCxcu0Lx585wORQghcg2ZFiGEEEIIIYQQQogMkZELQgghhBBCCCGEyJA8sVpEQkICAQEBuLu7o9FocjocIYQQuYzBYCAkJAQ/Pz9sbGxyOpw8Q66vQgghnkaur+J55InkQkBAAD179szpMIQQQuRyq1evztCKKy8bub4KIYRID7m+ivTIE8kFd3d3QPmlzsiSQUIIIfKnoKAgevbsab5eiPSR66sQQoinkeureB55IrnwcKiml5cXPj4+ORyNEEKI3EqG9j8fub4KIYRID7m+ivTI1uRCfHw8Y8eO5cGDByQmJjJ06FDKlSvH6NGjMRgMuLu7M2fOHHQ6XXaGJYQQQgghhBBCiAzI1tUi9u7di5+fH6tWrWL+/PnMnDmTBQsW0KNHD9asWUOxYsVYv359doYkhBBCCCGEECKPmDlzJr1796ZNmzY0btyY3r17895776W7/9ixY9m7d2+6jl2yZAknT558rviaNWtGbGzsc/V5mj///JM1a9Y8cb+/v3+mPVdGZevIhbZt25of37t3D09PT44cOcKnn34KQNOmTVm+fDk9evTIzrCEEEIIIYQQQuQBY8eOBWDjxo1cvnyZMWPGZNlzDRo0KMvOnV6NGjV66v4lS5bQpk2bbIrm6XKk5kL37t0JCgpi8eLF9O/f3zwNwtXVlZCQkJwISYhsYTSYiLlvQK1V4eAuc9eEEEKILBETDPoEcPQGjVVORyPES23NLhi/FG7fhyIeMP1t6NEyc5/DYDAwceJEbt++jV6vZ/jw4dStW5fz58/z6aefolKpqFatmjkRceTIEVatWsW9e/f4/PPPcXJyYuzYsRQpUoSLFy9Svnx5pk+fztixY2ndujUNGjRg7Nix3LlzB2tra2bPno29vT0jR44kLi6OhIQEJk6cSOXKldOM79dff2XVqlWo1WrKlCnD1KlTuXv3LqNGjUKtVmMwGJgzZw4qlSpV25EjR7h8+TIffvgho0aNIiQkhKSkJIYNG8alS5e4ePEi7733HvPnz2fMmDEEBwcTFxfHsGHDaNq0Kb1796ZevXocPnyY8PBwFi9ejLe3N9OmTePMmTNoNBo+/fRTypYtyxdffMGxY8cwGAz06tWL11577bn+HXIkubB27VouXLjAqFGjMJlM5vZHHwuR30QH6TnxUwwnV8Wgs1fRaGQByra0RWeXrbOThBBCiPwrOREubYPtIyA2GKr2hYZjwbVUyjFxoRB8HvTx4F4OChRL2Rd1B4LPgiEZPCpCwZLZ/xqEyEfW7ILBcyAuUdm+FaxsQ+YmGLZu3Yq7uzszZswgLCyMvn37snXrVqZNm8ann35qrvN3584dAFQqFcuWLWPt2rVs2rSJvn37cu7cOb744gtcXV1p1KgRUVFR5vNv3rwZNzc35s6dy7Zt29izZw9169ala9eutGjRgr///pulS5eycOHCNOOLj4/nu+++w8nJiZ49e3Lx4kX++usv6tWrx7vvvsu5c+cICQnh5MmTqdoeunTpEuHh4axevZqoqCj279/PwIEDWbp0KV999RUPHjygQYMGvPHGG9y+fZsRI0bQtGlTABwcHPjhhx/4/PPP2blzJ2XLliUoKIiff/6Zo0ePsn37dqKiorhz5w6rV68mKSmJN954gxYtWmBjY5Puf4dsTS4EBATg6upKoUKFKF++PAaDAXt7exISErCxsSE4OBgPD4/sDEmIbHNhexxHl0UDoE804T8+DAcPN4rXtc3hyIQQQoh84t5xWNs5Zfv4d6BSQ+s5YOMEkbdhyyC4/N8cZQcv6PM7FKoKDy7DT50gOEDZZ+8OfXdBoSrZ/zqEyCfGL01JLDwUl6i0Z2Zy4eTJkxw/fpwTJ04AkJiYSFJSEtevX6dcuXIAzJ4923x89erVAfD09OT06dMAFC1a1LzkpoeHB9HR0ebjz507R926dQFo164dANHR0SxatIhly5aRlJSEnZ3dE+NzdnZm6NChAFy9epWIiAjq16/Pe++9R3R0NK1bt6ZatWrY2dmlart27RoAJUuWJDY2llGjRtGyZUtzHA85OTlx9uxZ1q1bh1qtJiIiwryvRo0agLI6VEREBOfOneOVV14BoGbNmtSsWZMlS5Zw+vRpevfuDYDRaCQkJIQiRYqk818hmws6Hjt2jOXLlwMQGhpKXFwc9erVY8eOHQDs3LmThg0bZmdIQmSLhCgjZ9anLuwSeCwxjaOFEEII8UKCzqRuO7sW7p9XHt88mJJYAIgJgoNzQJ8El3emJBYAYkPgn0VgNGRtzELkY7fvP1/7i7KysmLIkCGsXLmSlStXsnPnTnQ6HWp12m93H11a8+Ho+ceX23x0VL1Go8FoNFrs/+GHH/D09OSnn35i8uTJT4wtKSmJKVOm8MUXX7Bq1SqqVFESlmXLlmXLli3UqFGDefPmsXnz5jTbHrK1teXnn3+mW7du7N+/n/Hjx1s8z2+//UZkZCRr1qzhq6++eurrTev16HQ6unTpYv4Z/v7778+VWIBsTi50796dsLAwevTowaBBg5g0aRLDhg1j8+bN9OjRg4iICDp27JidIQmRLbTW4FIs9UAhR68cmZkkhBBC5B/JCRB6EcJvgEOh1Pudi0B8mPI45ILy3aUENBgFjcdDcjwkxUDw6dR9A4+AXj4IEOJFFXnCoPQntb+oKlWqsGfPHgAePHjAvHnzAChVqpR5ZMK4ceO4evXqC52/UqVKHD58GFBWQFy8eDHh4eEULVoUgN27d5OcnJxm39jYWDQaDe7u7ty7d4+AgACSk5PZtm0bly9fpkWLFowYMYKAgIA02x46d+4cW7dupUaNGkyePNn8Wh4mQcLDw/Hx8UGtVrNr1y6SkpKe+nqOHDkCYK5LUblyZfbu3YvRaCQxMZGpU6c+988pW9/Z2NjYMHfu3FTtK1asyM4whMh2Wms1dQY5cfufRPSJyh8AZx8NRWpa53BkQgghRB4Wdg32TIKza8DKHppNhmr94eR/95ZqDVQfoBR1DDoLbr5QuhV4+CmjEpLjoWIXSAiHUq3g2FLL81fuAbonD3UWQjzd9Lctay4A2Fkr7Znp1Vdf5fDhw3Tv3h2DwWBemnL8+PHmUQVVq1alVKlSTznLk7Vt25a//vqLXr16odVqmTVrFsHBwYwZMwZ/f3969uzJb7/9xoYNG1L1dXFxoX79+nTu3Jly5coxcOBAPvvsM2bMmMGUKVOws7NDo9EwYcIEEhIS+OSTTyzaHiZHfHx8mDdvHuvWrUOj0TBgwAAAypcvT5cuXZg/fz7vvPMOp06donPnznh5eaUawfBQzZo12bNnj3mVxk8++QRfX19q165Nt27dMJlML7SCo8qUB6ooBgYG0rx5c/bs2YOPj09Oh5OtTCYTEYF6kuNMOBXSYuMkxf/yspCLSYRcSUarU+FRXkcBHxm5IERmeJmvExkhPzeRp5lMsGscHJhp2f7mWqV+giFJGTqYEAVF6sC6rlCuA5RqCVvfsezTZCLUGQ6HF8CBWWDUQ7W+0OQTcCmGEC+rzLhOZMdqESJ3kHc2uVhygpHzW+PYNzuC5HgTXn5WtJlWELfSupwOTbwgd18d7r7y7yeEEEJkWFwonFmduv3Gn+DgAZiUegnFG8OaDsrjW4fA3jN1n9OroO4IaDIJqvZWjnUpoSQnhBAZ0qOlJBNeFpJcyMXuX0hm16fh5u2ggGT+/CKS9p+7YmUrIxiEEEII8RLTOYBnJWUFiEfZucL+6cpykgAdligjEQASIsDOJfW5vKoq5zMaIOouXNwKti5Qti0Uqpa1r0MIIfIJeYeai4Xf0qdqu/ZnArFh+a9qcUKUkYjbySTG5L/XJoQQQogsYGWrTGfQOaS0eb8CbuWgWj+wslNqLbiXTxmBoE9UCkB6VEzpY+0EjT5Wjrm+F5Y3gUNzYfcE+K4R3DuVna9KCCHyLBm5kIvZu6bO/biW1mLtkL9yQndPJbJ7Wjj3/03Gu6qO5uNc8KwgUweEECKzzJ49m+PHj6PX6xk8eDCtWrXK6ZCEyBxF6sCQo3D/nDJS4c5R2NALnItBh6XgWga8qkGXNbCpHyRGw8nvlX2hF5S6DE5FwKcmJMfBn9Msz58UA9d2Q6GqOfHqhBAiT5HkQi7mWUFH+XZ2XNgWB4DWRkWL8S7YOmue0TP3SYw2EHnHgMZahUsRLWqtCoCIQD0bh4aSEKWss3r3VBJb3g+lx2pPHNzz3usUQojc5vDhw1y+fJl169YRHh7OG2+8IckFkb+4lwOVGhZVVVZ/AIi4Af4fwpBjoNVCxU7gVQVCzsP1ffDrIIh7oBzbd6fy3WhQkg+PS4zNjlchhBB5niQXcjG7ghqajStAla72JEQbcSluhWsJq5wO67mF3VBqR9w+mohaC3XfcaJadwdsnDVE3tabEwsPRd01EHlHL8kFIYTIBDVr1qRy5coAODk5ER8fj8FgQKORv7EiHwm/kZJYeCgmGCJvgfN/Fe5dS4GTjzKdIuwyGI1QdzgUa6jst3aE+h/Bhj4p51CpobRUohNCiPSQ5EIuZ+uswadG3r0BNCSbOP5jNLePKovbGvVwaGEUXn46StS3xTqNpTXVWrB2UGV3qEIIkS9pNBrs7OwAWL9+PY0aNZLEgsh/7N1BpVKWp7QpAJW6KW12HpbHWVlDqRZQopmyrX7sPsT3NeiyGv7+QikM2WA0FK6ZPa9BCJFugYGBtG/fHj8/P3Obo6Mj5cqVY/jw4TkY2ctNkgsiSyVEGri8Jz5V+/1/kylR35aCJbTU6O/AsRUx5n0NhjvjUizvjdAQQojcbPfu3axfv57ly5fndChCZD738tByprKkZOX/weGvIDYYou5A4wlQsKTl8Wq1MtLhxhG4sgMc3KFUK/D0gyo9oEJHiAmBKzvh3AYo0RSKN/pviUshRG5QokQJVq5cmdNhiEdIckFkKZ2DGi8/Hdf2J1i0uxRVfvV0dmrqDHSiZANbooMNOBfW4F5Oh8ZKRi4IIURmOXDgAIsXL+a7777D0dExp8MRIvNZ2UDtd8GrMvz4qjJ6oUovUGng6BJoMQ00j932XtkJazqmbNsWhIEHwKMCJETBuq5KgUiAfxZBwzHQbCpo5QMQIZ7L6dWwa/x/05SKQsvpUKVnpj/NkSNHWL16NQsWLKBly5a0aNGCEydO4OjoyJIlS4iLi2PcuHFERkZiMBiYMGEC5cqVy/Q4Xmb5a9kBketY2aipN9QJG+eUX7USDa0pVDllNQgbZw1Fa9tQ8XV7fKrbYG2fOb+WJpOJiDt6wm4ko08ypb+fXo/+6jX0N25iMpmIioULNyHwfqaEJYQQ2So6OprZs2fz7bffUqBAgZwOR4iso7OHyNvKCIN67yuFGy9tAxUQft3y2IQI2DPRsi0+DG79pTy+H5CSWHjo0FwIv5pV0QuRP51eDVsGQeRNwKR83zJIac9Ct2/fpkOHDqxbt46oqCguXrzIDz/8QMOGDfnhhx+YPHkys2bNytIYXkYyckFkOa+K1vRa60HYdT1WtipcS1th55K1830TIg0EbI7l0FdR6BNN+HW0o85gZ5wLP/1X3nDnDrFffE38gm9QWVsTtOkv3t9agv2nVLg5w1cfQIf6oJOVMoUQecT27dsJDw/n/fffN7fNmjULb2/vHIxKiCxi5wplXoVdH6e0HZiljEZwK5PSZkiGxKjU/ePDIDFG2f84ox6MabQ/r4ibyrKXTkXA2iHj5xMiN9s1Xvl9f1RynNKewdEL169fp3fv3ubtevXqmR87ODiYRyV4eXkRHR3NyZMnCQsL49dffwUgPj711G2RMZJcENmiQBErChTJvmGEd04nsW9OpHn77MY4nLy11B3i/NR+iZt+I37uAgCSWrZl9OZC7D+rTNEIjYT/fQqHF0MNGUElhMgjunXrRrdu3XI6DCEy7OoduHgL7G2hYglwS+uS7lMHzq5L3X70W6j0P9D8dy9i7w71R8G291KOUWvBZISzP0HpNuBYCKLvpeyv2AVcSr34C0iOh4Bf4Pf3IT4cSreCtl8qS2kKkV9F3nq+9ufweM2FI0eOcOHCBYBUhYtNJhNWVlZMnDiRatWqZfi5RdpkWoTIlwKPJqRqO781LtWyl48yJSQQ//0q83Z4vVfZddbW8hgTXArMvDiFEEII8WzH/oXag6H9WGg2AvrNeMJ0RUNy6uKNAC4llfoLj6r0JrRdAJ6VoEQTaD0Hji6GHaMAI/Txhxpvg0dFaD4FWs0Gnd2Lv4h7J2BjXyWxAErNhz8+geTU9yxC5BvORZ+vPQtVqVKF3bt3A3DlyhVWrFiR7THkd5JcEPmC8bGcgUvx1KMk3MtZobV9SqFInQ6ralXMm7Z3r1EkjaLQHjJlWQghhMg28QkweTmER6e0/X4Yjlx47MC7J2BxdbB2Ugo6PqT9r9jj48tO2rsrb3AK/jcawX+kMmUhMUp5w+9VGdp/A4P+hiYToWCJ5ws8/KYyr3zPJ3Dpd2X1iced3wAxQc93XiHykpbTweqxpJyVndKezXr16sWtW7fo0aMHEyZMoEaNGtkeQ34n0yJEnnY/HH4/Aiu2gV9JGNAOqpWFIjWtcSujJfSyHgCdg4pa/R3RPmUVCpVaje3QgSRs2IIpPBynld/w1aKedF5eCr1BOebNplCldHa8MiGEEEIARMbCsYup26/ffWRDnwh/fgZxD5Tv9UcqNRJs3aBEYyhUNe2Tu5VRlqJMfmTudYXOUOC/T1XVGrB+gRVWYoJhQy+4eTClrckkcCsLoZdS2lx9X+z8QuQVD+sqZPJqET4+PmzcuNGirXbt2tSuXRtQpkg8tGDBAvPjhQsXZuh5xdNJckHkWSYTLNsGE5Yq2wfOwJrdcPBrqFDcis7fuHP/UjKGeD0FC0Rhf9mf5IQiaCv7oXpCRUaralUpeHgv+rMBoLWiZTVr/qkDlwOhoCgNubgAACAASURBVBNULvWEOZ5CCCGEyBKuzjDodfjnnJ5/LmqJjFHaKxWNg2QVWNlCYjQE/qPsSIyGPyYriYHGE5+cWACl0GPfXbBrLNw/D5V7QN0RyjkzIuisZWIB4OAsaDMPfntX2dbo4LWFShFKIfKzKj2zZOlJkftIckHkWYEhMHOVZVtkDJy5ChWKg6OXFnubGGLGTyF+0RKiAFQqnNaswLZ7lyeeV1u2NNqyKcMTqiCjFYQQQoicYhV6hkkey9Aa/uFak76svNEeKys1tS6OhBB7aDYZHAopBRf/mpfS0WgAn5rPfoJi9aHXdkiKBnsP0GTC7bE+Lo22RPCpDf12KUthuvmCh1/GnyufMBrhSiAEhUEhNyhdGFRPmc0qhMh9JLkg8iwVoEljRUvNI1Mq9ecuEL9oSUqDyUT0O+9jVacm2uLFsjxGIYQQQmTAg6vwfQu0sUq9gpK3DzO++hmIDUb770a4jjLtoUovqDUEQs7DZX9lVYhG45U38+lh46h8ZRb3CmDrklK8EaB8B2VlCJ195j1PPmE0wob90P8ziE9UVgRZOQFery8JBiHyEinoKPIsHw/4pJ9lm5uz5SgDY0hoqn6miAhMkWmsbS2EEEKI3OX+WYi1LISoPbkUrYdvSsOVXcp31zLQ7Wd49zS8exYaj8+5KQeupaHvTij/hjLHvMEoaP25JBae4NJt6DtDSSwAxMbD1O/h6AU4dBZup7UyiBAi15GRCyJP69UainjAz3uhXFHo3BjKFknZrylVEqysIDnZ3KatWhlNEZ8ciFYIIYQQz+Xx5SNBqaVgemSZqCJ1Ux5bOyqrPOQGhWvAmz8pNSBsC6ZerUKY3Q2FxKSU7RrloGk1aDQMkvXgWRA2TIO6FXMuRiHEs0lyQeRprk7QqbHylRZtxfIU2LyWqLffw3j3Htqa1XFashB1QRcMehMarYy1E0IIIXItz0pQoDhE3Ehpqz4QLmxWHhetB6Vb5URk6aO1Vr7EUxVyA2tdSoLh9fowaVnK/uAwGDAT9i8EgxEu3QKtBsoVUwpuP5Ssh9BIcLYHO5vsfQ1CCEkuiHxOpVZj3bY1BY/9iTEiEnUhL+ISHTi3NppzW+Pw8tNRuZM97r5prx4hhBBCiBzkUhz6/A7//gr3TkL5jlComjLdQK1Rahs4eOR0lCKDPF3g07fgk+VKgiEpOfUxF2/B1Tsw+HMIuKa0Na8OS0ZB8UJw8TbMXQubD0B1X5g6QBkBIfKfwMBA2rdvj5+fHyaTCY1Gw5AhQ6hbty4hISEsXLiQKVOmvPD59+zZQ8OGDdE9YXW53CC3xijJBfFS0BQqhKZQIQzJJo4ujuDEKmUdq3unk7j4exw9VntQoIhVDkcphBBCiFTcyylfj3IrmzOxiCwRFQeLt8DIbsp2mSKpjynprSwN/jCxALDnOOw+Bl2bwZA58OdppX3nP/DPeTiyRFl1IqvoTXouxl3jekIgrlYFKGdbGhcrp2d3FBlWokQJVq5cCcCtW7cYMmQI8+bNo1y5chlKLAB8//331KlTJ9e9cX9Ubo1RkgvipRJ1V8+ptTEWbXFhRkIuJUtyQQghhBAiB3i6QJVSMEN5r0j9SvBhN5j/i7KShLMDLB0NE79L3fdQANSskJJYeCgiRpk+kZXJhT3hf/H2lXEYMADwP7f2TCjyHgUkwWBhY+gOZgYu5m5SMN46T8b6DKGTW+tMO3/RokUZMmQIa9asYdCgQQwfPpyNGzfSqlUrGjVqhKurK506dWL8+PEkJyej0WiYNm0a3t7ebN68mZUrV6JWq+nfvz9JSUmcOnWKt99+m++//9785n3jxo0cOHCAmJgYgoKC6NevH507d+bXX39l1apVqNVqypQpw9SpU+natStz586laNGiBAUFMXToUHr16sXRo0cJDw/n8uXLfPDBB/z2229cvXqVzz//nCpVqrB69Wq2bt2KWq2mRYsWvPXWWyxcuJDo6GiuX7/OrVu3GDduHOHh4WnGmBtIZRnxUlGpQJXGb71aI7UXhBBCCCFygq01THsb6vkp2y1qQFwCTOwLUwcqxRxLFoI3GqXu26Qq2FqBLo3PiOxtsy7me0khjLk5y5xYAPgpdCvn469k3ZPmQRtDdzD6xkzuJAVhwsSdpCBG35jJxtAdmfo8fn5+XLli+bPX6/U0atSId955hy+//JK33nqLH374gb59+7Jo0SJiYmJYtGgRq1evZtmyZWzdupWOHTvi7u7O0qVLU71pv3LlCt988w0//PAD8+fPx2g0Eh8fz3fffcfatWu5du0aFy9epEOHDmzfvh1Qpi+0a9cOgBs3bvDNN98wePBgvv32W77++msGDRrEb7/9xu3bt/H39+enn35i9erV7Ny5k7t37wIQFBTE0qVLGT9+POvWrXtqjDlNkgvipeJUWEutAU6PtWlwLyujFoQQQohMZ9DndAQij6hQHH6bBWd/gOBwZZrEjn9ABQyeA/WGgskEH/dK6fO/FtCsOpQqDJP7WZ6vbV2oWDzr4o02xBCSHJaq/UFyeNY9aR40M3Ax8cYEi7Z4YwIzAxdn6vPExsai0aReXaZyZWX1mJMnT7Jw4UJ69+7Nt99+S0REBNeuXaNkyZLY2Njg5OTEN99889TnqFmzJlqtloIFC+Ls7Ex4eDjOzs7mkQlXr14lIiKCdu3asXPnTgD27dvHa6+9BigJEJVKhbu7O76+vmg0Gtzc3IiJieHs2bPcvHmTPn360KdPH2JjY7lz5w4Ar7zyCgBeXl5ER0dn2s8sK8i0CPFSUWtUVO3ugGspK67sjcPDV0epJrY4ect/BSGEECLTRNxSVnQ4+xMUbQDV+oKnX05HJXKxS7fh7DVlGoS7szISYfDr0P+zlGNGfwOLP4KjSwAVlPUBBztl3+COUM1XqclQohDUKg9uBbIuXi8rN6rb+3E8NsDcpkZNCRtZ7vxRd5OCn6v9RQUEBFC+fPlU7VZWVubvX375JR4eHhZ9jEZjqj5P8uixJpMJk8nElClT2LJlC+7u7gwePBgAFxcXvLy8OHPmDEajEU9PTwC02pT3G48+NplMWFlZ0aRJk1T1Ig4fPmxxbG6XI5HOnj2b48ePo9frGTx4MJUqVWL06NEYDAbc3d2ZM2dOrhviIfIPe1cN5drYUa6NXU6HIoQQQuQ/+kTY+ymcWK5s3z4MAWth4EEoUCxnYxO50qkr0PIDCItStr3d4NcZ8NMfqY9dvAX+XJgy5cFkgptBkGxQpki0qpk9MTtpHZlVYgyjr8/kROw5XLUuzCo+Gl/bUtkTQB7hrfPkTlJQmu2Z5datW3z//fesWLHiicmCKlWqsHv3bnr06MHff/9NaGgozZs35/r168TGxqLVahkyZAjLly9HpVJhMBhSnePUqVMYDAYiIyPNIyU0Gg3u7u7cu3ePgIAAkpOVpU46dOjAlClT6NatW7peQ8WKFfn888+Jj4/HxsaG6dOn89FHHz3x+CfFmNOyPblw+PBhLl++zLp16wgPD+eNN96gbt269OjRg1dffZV58+axfv16evTokd2hCSGEEEKIjAq7Cie/t2yLDIT753NHckGfBJG3QGOVO+IRLPstJbEAcDcUQiLBKY3PgYp4pNRXCI+G77fDJysgIQneaqtMmyjmlT1xl7crzSrfLwhKCsVRY4e3dea9Yc4vxvoMYfSNmRZTI2zVNoz1GZKh816/fp3evXuTlJSEwWBg0qRJeHt7ExgYmObx7733HuPGjWPbtm2oVCo+++wz7OzsGD58OP379wegX79+qFQqatWqRY8ePfjxxx8pWLCg+RyFCxdmxIgR3Lx5k/fffx8XFxfq169P586dKVeuHAMHDuSzzz5j8+bNNG3alIkTJ9K6dfoKV3p7e9OnTx969uyJRqOhRYsW2NjYPPH4J8WY01Qmk8mUnU9oMBhITEzEzs4Og8FAvXr1sLe3x9/fH51Ox8mTJ1m+fDkLFy409wkMDKR58+bs2bMHHx8ZaiSEEMKSXCdejPzcRJYI+Re+qgTGx+ot9PGHMplXIf6FRNyCPz+D40vByg6aT4NqfcAmC8fPi6fSG6DJMPj7nGX7F8MgKhYWbIAHkUqbzgq2zIBWtZTt7X9D+7GW/aa/DWN7ITJJZlwnsnq1iOywceNGLl++zJgxY9J1/OHDh9m0aROzZs3K4shyl2wfuaDRaLCzU9KQ69evp1GjRhw8eNA8DcLV1ZWQkJDsDksIIYTIty5dusTQoUPp168fvXrJXbfIYi6loM4w+OuLlDb38uBRMedieujUSjj6XyG5xGjYPgJcS0PZtjkb10tMq4F+r6ZOLpQuDMO/hHc6KlMf9AZlREIN35Rj9p1Kfb4fdyjFHCvL7IRco5Nb6zyXTMiIBQsWcPDgQYsPy18WObZaxO7du1m/fj2TJk2yaM/mgRRCCCFEvhYXF8fUqVOpW7duTociXhZaK2gwCrqsAr83oc3n0GMTOGfO6JhYQzzX4m8RnBT6fB0TIuDUD6nbr+/PlLjEi2tbF8b0AGsd2Nkoow9KesNH3eH8ddi4X5kCUbkkFHRO6Vc2jV+p0oXhgwVwWlaEFJmoU6dO6R61MHz4cH7++WdzIceXSY4UdDxw4ACLFy/mu+++w9HRETs7OxISErCxsSE4ONiiiqcQWSk+URly5+YMaaxeI4QQeZ5Op2Pp0qUsXbo0p0MRLxPHQlClp/KViS7FX2fKrYXsjfwbLyt3ZhT7iGYF6mGlTsctrdYOPCvBg8uW7a6lMzVG8fy83WDqQBjYHtRqKOYJKpWSaChbBIwmpdaCb1HLfk2qKUtYnr+hbDvZQ7NXYOTXsP8UVJF/WiGyVbaPXIiOjmb27Nl8++23FCigzG+rV68eO3bsAGDnzp00bNgwu8MSL6Fj/0K3T+CVAfD+QmUJJCGEyG+0Wu1Ti0IJkVfEGuL59NYC9kb+DUBQcggDr3zMhfh0fkSt1UHDsWDtmNLmXh5KNM2CaMXz0miU0QrFvZTEwoWb8FcABIcryYfHEwsApX1g03SYMQgm9IVhnWHKf4NTEpKyN34hRA6MXNi+fTvh4eG8//775raZM2cyYcIE1q1bh7e3Nx07dszusMRL5sodaPORMsQOYNEmuBwIv0wBR1mhUgghhMh1gpNC2Bd52KLNiJFrCbepbF8ufSfxqQmDj0BwAGhtwKsKFEjjXavIUaevQPP3U+7TnB1gzxdQrWzqY0v7QCE36D8jpU2rUZalFEJkr2xPLnTr1i3N9T5XrFiR3aGIl9jFWykXrId2HYXr96QAkBBCCJEbOWjs8bJyJyjZsvC3i9bp+U7kXl75ErnWz38oIxgaVYHD5yE4DH7wTzu5ANC+HqyeBF9tAHcX+OBNqO6b9rFCiKyTYwUdhchJdtap26x1YKPL/liEEEII8WweOldmFP8I9SO3r20KNKaiXZkcjEpkhbJFleTC1bvQtSkMfQPO33zy8S6O0L057J4Pv3yqJCWkllb+d+PGDQYNGkSXLl3o1KkTU6dOJSnp+efD1K5dG4Dp06dz+/ZtYmJiOHjwYGaH+1LIkYKOQuS0iiWhRQ3YfSylbWJfKOWdczEBnLkCAdfBxhqqlYYSORyPECLvCwgIYNasWdy5cwetVsuOHTtYuHChue6REHlJM+d6bK+4nKsJtyiodaaCXRncrFxyOiyRiS4HwsivUkaYBlxTEgwjujy7b7Iezt0Gg0GZLlHwOQe1iLzDYDAwbNgwJk6cSK1atTCZTEybNo2vv/6aDz744IXOOX78eACOHDnCoUOHaNCgQWaG/FKQ5IJ4KXkUgO/GwOFzSv2FV8pArQpKljsh2kD4DT2GJBMuxbTYu2XPf5O/zkLLD1MKEJUqDL/NUqokP8uDKPjjOKzYrvTr96rlcECjEW7fV+YgFnbPmviFELmTn58fK1euzOkwhMgUVmotlex9qWQvY97zq/PXU09d3bAfxvV+er/A+zB6Mazbo2zX84NlY9N3HyWyVvzqdcSMn4zxViDqoj44TJ+Mbc/U0+Sfx6FDhyhZsiS1atUCQKVSMWrUKO7evcv//vc/7Ozs6NWrF46OjsybNw+tVkuhQoWYOnUqarWakSNHEhQURKVKlczn7N27NxMnTmTKlCnExMRQvHjxNKfziyeT5IJ4aRXxUL4eFR2sZ//nEfz7ezwABUtqeX2eG26lrbI0lvhEmLbSsrLx1Ttw4LTlRTE0OQydSoeT1sHcZjTCT7tgxIKU4370h4OLoFJJuBsK32yGeeuUaR/T3ob/tYACKacQQoh8wWgycjvxHsmmZHx0hbDRpDEH7jkZbt4iafdekg79ja5xQ6yaN0HrUzgTohVCpMUqjXcn1lZg/4xFb/44kZJYAGWliVU7YcqAzI1PPJ/41euIGvQexCn31sabt5VtyFCC4dq1a5Qvb1k7xcbGBp1Ox4ULF9i7dy8uLi507NiR77//ngIFCjB79mz8/f1xdnZGr9ezbt06Tp8+nSoBP2DAAC5fviyJhRcgNRfECzEZjTkdQpa4czLJnFgACLum59S6GIwGU5Y+b0IiXAlM3X7rvvL9ftIDvr23hjYB/XjjwhB2hh8gwZjI3VD4aTd8tsqyX0w8nPxvGe/NB2DGf4mLiBh47ws4dDZLX44QQmS7SH00S4LW0iygJ03O9uCD69O4mXAnQ+c0hIUTNXgEUQPfJWHFKqL6DSZmzESMMTGZFLUQ4nGVSkH5YpZt43tDiUJP7/fn6dRtv/0FcQmZF5t4fjHjJ5sTC2Zx8Up7BqhUKgwGQ5r7ihQpgouLC6Ghody8eZNhw4bRu3dvjhw5QnBwMFeuXKFatWoAVKlSRZZrzkQyckE8l/AbAVz7YxXB5w9SsklPitRpj72bT06HlWmCziWmartxKIGkWBM2Tqose14XJxjQDsYtsWxvVEX5vi3sD6bcXgjAveQQ+l8ezYZyizj2ZzUCrinrQT9OBTyIBINRGUpoaw2/7IUzV+H3w9Cu7pPjSdYrK2rce6BMo/At8vIURtJfvYb+dACYTGgrV0RbpnROhySESIfjMQFM/e/vJMCvYbspZu3NGJ8hqNL6I5kOhn8vkbRjl0Vb4pqfMYwcjvoVWedOiKxQxAM2zYA9x+DcdWhRExpUAvUzPhKt56dMD31U61rK/Y/IOcZbaXx69pT29CpZsiSrV6+2aEtKSiIuLg4rK2XEsZWVFR4eHqlGJnz33XeoH/mFMubTD01zgiQXRLpFB99k18RXiQtV/hjcP3eIsOunqTXkS7RW+eMvdyE/a8DyE6kSDWzQ2WddYuGhHi0hLAoWbgQnO5g1BGqXhwh9FMvv/5Lq+L+iTvLb/mqcvwEDX7McveBkr9Rc+O43y4TF+D4QmwBlnpIPStbD6l0weA7oDcrwxB8nQNcmaScx8hP9ufOEt3wd470gAFRubrjs3opVlUrP6CmEyGknYgJStW16sJNBXv+joNWLFa806ZOf0K5/ofMJIdKnjM/T71XS0rw6vFobfj+ibPuVhL5t8v+9S26nLuqD8ebtNNszon79+syePZs//viDZs2aYTQamTNnDhEREeZjnJ2dAbhy5QqlS5dm5cqV1KxZkxIlSrBt2zYATpw4kWqFCbVajV7+zr8QmRYh0i3iZoA5sfDQZf+lxAZdz6GIMl/hajoqvG5n3nb3taJqdwfUmqy/MhXxgBmD4MJKOLkM+r4KDnagU+nwsHJLdbyrtgDFPCEkQpkCMWUAtKmtLNe0Zz7ExsP4pZZ9Pl8L/dtCq1pPjuPS7ZTEAijJhgEzlerN+V3C+i3mxAKAKTSU+B9WP6WHEMJw5y4Jm7cS++UiEnfvxRgZmSNxFLdOfaPqZ1cWe40tpsREjKGhzz2lT+tbFk2lipZtDeuhLV0qQ7EKITJfMS9YOREOfg37FsDOuVCu2LP7iazlMH0y2NlaNtrZKu0ZoFarWbZsGT///DOdOnWiR48eODo6Mnz4cIvjpk+fzscff0yPHj04fvw4JUuWpFGjRiQkJNCrVy+2b9+Op6enRZ8KFSrw+++/s2zZsgzF+DKSkQsi3VSqNHJRKjXKAPz8wcFDS4vxLrzS09G8WoRdweybD6DRKBfHR9lpbPiw8Fv879/3MaC843fTulDP+RUqvAEb/gT/I7DnOLSqCe93VVaM+GUvmB4rFZGYBDV8U89lfFRQWEpi4aG4BLgfnv8rLuvPpP7kU3/iFCaT6YWHVQuRnxlDQ4kaPJykbf7mNofZ07AbORzVs8YwP36uiAiS/zpC0r6DaMqUQte04XO9ia/lWIVqdhU4GXceAEeNPSO8+6M+eZ7I6XNIPn4S6zc7YTd4ANrSJdN1To2nBwV+/pH4FatI2rkH69fbYdOrG+qCsvShELmRiyPU9cvpKMSjHhZtzOzVIgA8PDxYvHhxqvaNGzeaH9eoUYNffkk9AnjRokXmxxMmTACwmD5x8ODBDMf3MpLkgki3AsUq4uhdmui7V8xt5V8fhoNX+m7S8gqdvRqvirqcDgOA6Di4EQSeNlXZXP5bTsWex0FjxysOfpS2LQbl4a9v4Ow10GmhWhko6a30tbcFB1uluONDHi7g7QZ6vZLISOv9so+7sqrEoytXODso/fI7m65vkLhxi0Wbbd+eklgQ4gn0AectEgsAMROnYt3hNbRln12vxBASiv7UGYzR0RgvXyVm7CTzPo1fBVy2b0JTJH0rMxS18WZZ2VlciLtCgjGRsrYlKHpXT1jLlpjCwwGI//xLDJeu4LxmOWp7+3SdV1vOF4eZUzB98jFqO7tndxBCCGHBtme3TEkmiNxPkgsi3RKjwyjT6i3iwu4Sfe8qnhUaULReRzRWWbtM48vq8m14f6EyKsFGp+WT/hUZ1L4iBRwtj/MroXw9ztkePn0LvvgZAkOgZnmY1BciY6D1R+DlCu92hDoVLYsklfGB1ZOg3wwluVHAQdl+mLTIz6yaN8Z+6kRiZ3wORiP2H41A92rLnA5LiFzLGBObujExEVN8fOr2xxjCI4j5aBwJP67B7qMRxH/zneX+gPPoz5xNd3IBwFPnhqcuJROacP53c2LhoaRft2G4fgO1X8XHuz+RSqVCJYkFIYQQ4qkkuSDSxZCcxLn1c7i2bw02BTywd/Ph9NppOHgWo0DRCjkdXr5jMMBXG5XEAiijCD7+FqqWfnq9hEf5lVCWnOzYSKmgfOYqzFoDVUpDrfIwew1s2AcHvlISDw+p1dCxIRz/DoLDoZDrs5d/yi807u7YjxuFTa/uYDSiKVYU1cuyTIYQL0DrWwaVszOmR+osWDVpiKbEsyc6G86eI+HHNQCodDpMCanXi0uzTa/HFBuL+r9CXU+jenyeL4C1NSpd/ihCLIQQQuQmUtBRpEtyfDT3//0bgISI+zy4cgJDYjwRt87ncGT5U2gkrN+Xuv3k5fSfw8EWGleFhpXg640wcxUcPKM83nsCujdXijWmtS40KHUb6vlBYTcIDoOkR4qmJyTB3pMwdC6MXQxHL6Su75BXqdRqtMWLoS1ZQhILQjyDtkxpCuzYglXzpqhcXLB5qw9Oi79E7eT0zL7GR0YUJO7ei3WnDhb7VU5OaB8bXZB8+ixRg4YRVrsp0ZOmor967enx+VVA26CeRZv9hNFoSqUx3EsIIYQQGSIjF0S6WDu4UKx+Z85t+Nyi3c23TobOGx8ejNGQjJ1r4Tw5rz05Qak8bmWTuXk6Jzt4pSxsP2zZ/jxTEw4FQMsP4ONeygiGRx39V1lZAsDqKe+fz16DOT/B7mPKEk+je0ClkrDvJLQbnXLcgg3w50KoUS798b2M9DduYYqIQOPjjdrtJShiIV4Kuto1KLBlLabISNTu7qjSOVVOW6Y0WFtDYiL6f45h1aAujssWYQwJReXogK5ubbS+ZczH62/cJKJ1B4zB9wGImzoL/emAp9ZP0Hh6UGDVdyQd/Bv9xcvo6tRAW7e2JA6FEEKILCDJBZEuKrUa31cHEX79DHdP7ESl0eLXZTQe5eu+0PmS42O49fdmjq8Yiz4+hgqdRlKm9QDsXfPGxP7kBCM3/07k6IooTEao+ZYjxerYoLPLnCSDrQ180h/+CoCIGKWt6StKfYT0SEyC2auVVR+elLNRqcDOBhpWSXt/cBi8OUlZmhJgzS5lhMLeBTDrsdUZE5OUdaUluZA2U3IyiVu2ETVoGKbwcDS+ZXFetQyrGtVyOjQhMoXa3h7SWSDxIU15Xwps20D00A8wBN5BW6kicdNmY7h6DZWbG5rl36CtUsm86oThwkVzYuGhpF+3Ybh6HXXlJ5eH1xQrim2xos+Mx2QwoL90GWPwfTQ+hdGUKpknk95CCCFETpHkgkg3p8JlaDp+PdFB11Bb6XAqVBq19sWKOYZc+JsDc3qbt0+tnITO3pkKHYY/pVfuEXg8kc3DQs3bW4Y/oNM3bpRsmMb83hdUoxwc/hb+vQn2NuBXUlntASAmDh5EgZuzsirE45INcOe/8AKuQcPKcOBMyv7GVZVVIfYtgGpl037+y4EpiYVH2+6GWq4k8VBiGm1CoT//L5Hd+oBRGeliuHiJyL5vU/DPHahdXXM4OiGylikpieTDR0k69DeaUiXRVqqAVflyqFQqrJs3werQbgz3Q4ho2wnjzVtKn9BQIrv0xPXkIbQVlKIwKus0VvHRaiETigqbkpNJWPMzUYOGQVISKgcHnNf+gHW71hk+txBCiKyxevVqtmzZgk6nIyEhgQ8//JB69er9n737jo6q6ho4/Ltzp6b3DgkJJRBCL9IRFF9FxIYgggURe0NFBAtFwe5LebEAItJEsFFU/BQUVASld0ilhJCE9DKZ+v0xMmGYAOmTcp61spazc8tODDP37nvOPlff8Qp27NjBihUrmDt3Lo8++igffvhhDWXbNIjiglApKjdP/KIv86i7EtL2/J9T7Nj3H9HyuvtRu199rq6rHfzauUP6/jVFNVpcANvKDa0iHGO7j8OLH9qKAMuUVQAAIABJREFUBQM7wexHbEtQXsxDB0/cDhPega+3wlN32po2Hj8FQ7rDTb2u3qRRd5l+Z5IEz4+Cu14riykUcFP1Zsg0auakZHthwR47fBTzmTRRXBAaJUtuLobNv1Hy6TIU4aGoB1+LJSMT/WcrkJtH4Db5OTSDBwKgCPDHlJJqLyzYGQyYklLsxQU5ri3K3j2xnDqDwt8P08HDuD33NMqW1V8O2XT0OPkPPmbrpgtYCwvJGzsev92/o4y6enNKQRAEoW6dPn2aL7/8krVr16JSqUhJSeHll1+udnHhYqKwUHmiuNCIWUxG8k4dQ1+QhUdwFO4BzTAW56PSeVR5xEFNcQ9yHqLqGRqDooF08NZ4Ok9/0HrX/vDZ0xkw/CXb6AGA//sHjk6BPz+EsIum8Futtt4I08fB4o3wyy6YNQFmPgjaCv6K2zSHh4bBwvVlsfE3Q+tmtoLH12/A3LW2pSqfutO2AoVQPkVwkFNMCgxE4ePrgmwEofbpv1lPwbhHAZDbxoLZgn7xUgDMx09g+OMv/Hb8iireNtdL4eeL5OWFNT/f4TjyRf925OBgPN+dRenabzElp+D1zBOoBvatcI+HK7GcSbMXFi6w5uRgST8HorggCIIL5aebSPlDT/JWPRHdNUT31+LbvGEtA394QxG/z8kjP92MV4hM36e9aXdz5abSXaqwsJDS0lKMRiMqlYqoqCiWL1/O2LFjeeWVV2jdujXLly8nJyeHHj16sHDhQtRqNWlpadxwww08+uijjB07lvbt23Pw4EFKS0v54IMPHM7Rs2dPduzYQUJCAjNmzECSJNzd3XnzzTfR6XS88MILZGZmYjAYePLJJ+nfv3+1fqbGQBQXGilDcQFH1s1j34ppWExGPMNb0eXe19m9dCrB8QOIG/40vi3iXZZfaMfB6PzDKDmfBoCs0hB/12SUqoZRXGh/qzsHvy3CYrK9Vigh/naPWj9vYlpZYeGCUxm2+MXFhX+OwoCnwNvdNqKguNQ24qCihQWwjX6YPg5uvAYOp0C7KLimnS0OMLwvDO0FEiB6o12Zsn073CY9S/Hb/35oKZV4LZyH3DziyjsKQgNkyTpP0Yw3UYQEox15B8pePcm/b4LjRiUlmA4cshcXlNEt8Px4Lvn3jLOP8nGfNgW5XVkjF+ORo+QOvRPrv6tMGL5Zj+dHc1A+/GC1c1aEh9mmWJhM9pjk64siJLjaxxYEQagqQ4mFrR/kcXRjMQAnfinh6PdqbpsXgJv/lS++8s+aKMmx4B4g4xHkugu1wxuK+GlaDia99d+8zPw0zfY+Xp0CQ2xsLB06dGDw4MEMGDCA/v37M2TIkMtuf/DgQX755ReUSiU33ngjo0aNAsDX15dly5axbNkyli5dyuDBg532nTlzJjNmzCAqKooVK1awYsUK+vfvT05ODitWrCA/P5/ffvutyj9LYyKKC43U+eN/s2fpVPvrgjMnOLJuHl6hMSRsWkz6vs3c+O423P3DXZKfT/O23PjWr5xP3I3ZoMevRUd8a2C6RV0J7aDm7s+DSNpmW4O9RT8toe3LmQ9cwzzdnGOSZFtd4mI//W1bOjIzF5b+aIudyoBrO9uaOFZUsJ+tiDC8b/nfV4qiQoUovLxwf3kSmltvxpKRiRzdAmU70f1SaLzkTh3Q3X4L5lOnkaxWJA8PrKWlDttIl1Q7tbffgnL3H5iTU1AEBaFo3dJhFQjT7n32wsIFRa++gWb4zcjVLAIoY1vjtXiBredCaamt58LyRWJKhCAItSIrwcj5RCNKnURQGxWeweXfkuWmmuyFhQvO7jdwPsl42eKC1Wol+Xc9P07NpjjbgkewzNC3/GjWrRIXgDXo9zl59sLCBSa9ld/n5FV79MLbb79NYmIi27ZtY9GiRaxatQrrZdZG79ixI+7/fqa0atWKU6dsjcV69bI1p+/UqRNbt24td9/9+/fzyiuvAGAwGIiPjyc6OpqioiJeeOEFrr/+eoYOHVqtn6WxEMWFRir/bIJTLOPwH8TfNZkzuzZRmJ5M/qljLisugK1BpFd4q6tvWA9JConQDhpCO9TtSIs2zWHiXfD+l2WxF+6GNs0ct7tkev9lY0LdUXh6ou7V09VpCEKtUwT44/7oeIpefR3jjr9RBAXh9thDFM18s2ybFlEoOzsWlCW1GmV8HNaCQorffA/z6TPonngYzbAbkQMDbfO9LmE1m8Fa/Tc3SaVCe89IlN27YM3IRBEehrJlTLWPKwiCcKkze0pZ81Cm/YY7pL2aYe/54x3ufFt2uRvlK73t5aSYWD/xPMYS276F58yse/Y8Y1cH4xVW97d++enmSsUrymq1YjAYiImJISYmhrFjx3LjjTcSHFxWbDZdNBrNctGF8MW/1wv/bbVaL7tCkE6n4/PPP3f6/pdffsnu3bv55ptv2LJlC7Nnz67Wz9QYiOJCI6Xzc17S0S+6I/mnj9lfy2rXVDCFqnPXwuQxcENPOHkOmgdDl9bO0x2G9IDXP7ctRXnBpNGVG7UgCELjMWvWLPbt24ckSUyZMoUOHTrU6vnMp05j3PE3AJaMDAxb/8DjvdlYzqYjt4xGPbA/yhZRTvuZ9uwlZ9BNYDQCUPDgY1jnvov7k4+g6tTBNgKisNC+vfvLk5BDr9KdtoIkWUbVNhbailFFgiDUDkOxhT/mOz7JTz9oIG1fabnFBZ/mSmKu1ZK4RW+PBbRS4hd9+Vu4/LMme2HhgpIcCwXnzC4pLniFyOSfdS4keIVUb/jr2rVr+fvvv3nrrbeQJImCggIsFgtqtZrMzExat27N7t27adXK9iDz8OHDlJSUoFAoSEhIICoqCoB//vmHDh06sHfvXmJiyi8qx8bGsnXrVgYMGMDGjRvx8/PDy8uLhIQEhg8fTseOHbnnnnuq9fM0FqK40EgFte1Fqxse5MSmxQCoPXxped39/L3oeQAieg7Du5nowNcQ+XvDdd2uvE33WNg8Bz5ZB9kF8Mgt0L9T3eQnVJ3JamJ34SHWZ/+CjMzNfoPo7NEOWRLzT4Sq27lzJ6mpqaxevZrExESmTJnC6tWra/Wc1uISh9fG37Zh3L4D/6N7ULa4/FQD487d9sLCBcVvf2Dr3dC+Hb5bfqBk0WeYjh1H99ADqIcMqpX8BUFouiwW29Lb2fnQLAginHsyV5mxxML5RKNTvPBc+U/xNe4y177oS0S3Yk78XELkNVra3uSGR+Dlb+Hc/GQkhePoBqVGQufj3Iy8LvR92tuh5wKAUivR92nvah339ttvJykpiREjRuDm5obJZOLll18GYMaMGURGRtK8eVkD+ZiYGKZMmUJKSgqjRo3Cy8u2Ol1aWhoPPvggBQUFzJs3j5SUFKdzTZ06lVdeeYWFCxei0Wh47733kCSJ999/n9WrVyPLMg8+WP3+P42BKC40Ulovf7o88CZR/UZQkpuBZ3AL9HmZxN0+Eb/oTgTH9UXjKTrVN1YKBfSJt31Zrba+DEL990/BAUYcfQILtiuCT8+t4au2/6O7Z8PpRyLUP9u3b+e6664DbBdXeXl5FBYW4uFRe01ole2di9fau25HDnceZWC1WrGcOv3vRs5TzSR3dySl7XJF1a0zqm6dsVosSArXXCgLgtB4lRpg1S/wxAdQUgohfrBmBvSuoR7obr4ybYe58c+SQod4UNvL9+3yiVDS/T4vuo31RFJc/YLOL1rFwBe82fJWHgCSAq571RffSNfc9l3oq1DTq0XIssyLL75Y7vcGDhzo8HrHjh34+Pg4rQYBcNddd9G6dWv76+DgYHr27GnfD2yfnStXrnTad/HixVVNv9ESxYVGwGQspehcCpJCxiO4BYp/W/frvAMI73qDw7aRfW5zRYqCC4nCQsPxecY39sICgBkza7N+EMUFoVqysrKIi4uzv/bz8yMzM7PGiwtWsxlzSipYQdWjG17LF1M48SUsmZlobr8F91dfQlI7XkCbM7PQL15K0etvY7Va8f78EyQ/P6zZ2fZtPGa+gsKvrBhuzs7GfOAQluwclK1ikNu1FYUGQRCuymCEoydtDa7DAqBdJGguuac/lALj3ypr8ZKeDfe+AX8ssDW5ri5JIdFppAfF5y0c2VCM2kNiwEQfQuKv3hS8IoUFAKVaosMID8K7aCnMMOEVqsQvWlXh/WtDu5vdq11MEBoGUVxo4AozTrF/9Ruc+HERkiwTP+JFYoc9ic4n0NWpCYJQSXqLvpxYaTlbCkLVXa5BWHVYMjIonv8JRW9/ABYLuicfwX3ik/jt+R1rsR45IgxJ69z0xfjLrxS+9Jr9df59D+O15nPMB49gTktHc/N/UF3T3f59c2Ymhc9ORr/i32kdajU+G9eiuU5MjxAE4fIsFli9GR58C8xm2wjP+c/AAzeBWlW2XWq6c+/Y5LO2IkNNFBcAfCJUDHnNl14PeyGrJbxCa/52TKVVEBKnhrjaX8msIejZs6d9NMLFli1b5oJsGjdRXKgnMo4YOP5zMflnzLS50Y2Irmo0HlefZ536x1cc//5jAKwWM/tWzsQ3Kp6ofiNqO2VBEGrYfcF3sCl3m0NsRIBY2kionqCgILKysuyvMzIyCAys2QK0YfNWh9UgSt6fZ1tytXVLFD7eWEODKe+ZWcnKLx1eW4uKKH5/Pn7/t77c85j27C8rLAAYDBQ88gyq7ZtRBAbUxI8iCEIjdOI0PPKurbAAtmLDU3Ns00fbR5dtF17O20ioPwRc1B7AlJKK9Xw2irBQ5NCQKuWj1CjwjRQjroTGR/xV1wNZJ4ysHpfBXx8XcHhDMd88nkXCFucnmJcyG/QkbVnuFD+18/vaSFMQhFrW06Mjy1q/zwCvngzy7sXKNv+lm2cNTfQUmqw+ffqwadMmAA4dOkRQUFCNT4nQf/2dU6x01RqKZr1Ldo8BFM16F0t+vtM2yvg451jHy//NWzIynWLmxCQsec7HFgRBuCAzF/QGx5jJDOdyHGNx0TBrQtmUUjctfPoShAfapn7pv1lHdpe+ZHfrR3aPARj+2F43P4AgNBBi5EI9cPZgKaUFjmOw/pyfR4u+Wtx8Lz96QaHSENCmB+dP7HKI+8U0zWUBrGYz5uQUsFqRoyKRVKqr7iMI9YlW1jLIpxf9vbqDBEpJvEUL1delSxfi4uIYNWoUkiTx2muvXX2nSlJ16kDpmm8cYnJMC6xaDV7jxmI+dZrSr9eh7NkdVds29m20I++g5JMlWP8dWSH5+aEbM+qy55FbOi8Tpr7hOhShweVsLQiCYBMeCL6ekFNQFnPT2laDuJi7Fp6607akd2YORIVCqwjb98xHj5M38j77ijaW02fIG3kffjt/RQ5zXgJeEJoil1y5Hj9+nMcee4z777+fMWPGcPbsWSZNmoTZbCYwMJB33nkHtbrpzBGylrP6jNkEF/V1K5ckSbS58WFSt61Fn2d7muMV0YaIbjfWfJL1nCUjg+J5H5fN9318Au4vPIMcLt7shYZHqRBFBaFmPf/887V6fM2twyj++FMsJ08BIAUGorymB9a8PPLvfci+nap/b7w+mY+yja0zt6pDe/z+/BnTvgNYrVZUHeNRtm512fOoOsXjtWwRBU8+jzU3F2Wvnni8OwuFu2gUJgjC5bUIhdXTYcxMyMixLev92UtlhYOL6TTQuZy3IXPqSaelci1n0jCfPiuKC4Lwrzq/gi0uLmbmzJn06tXLHps7dy6jR4/mxhtv5P3332ft2rWMHj26rlNzmeA4NUqt5LD+6zUTPHHzv3rPBb/ojtz0wV/kph5EISvxjYrHPbBZbaZbLxk2b6Xo9bfsr0vmLEDZtg1uD4s1ZwVBEGqbsl0svr/9iHn/IaxGA6akFCSFRNHrbztsZ9z6J6a9B+zFBQBlq5YoW7Us2+bAAUy792PJzUPd9xqUXToj/TtGWdJq0Y0ZhapvL6yFhcjNIlB4V2+tdEEQmobBXWHnJ5B+HoJ8IbKS7RIUwUFOMcnLC0VADXV6vIyMowaOfF9EdrKJtkPdibxGg87n6vcIjdmbb77JoUOHyMzMpKSkhObNm+Pt7c38+fOrddzbb7+duXPnEhFRTtXpEk899RT33HNPuY0iL+eXX36hX79+5OXlMW/ePGbMmFGddOulOu+5oFarWbhwIUFBZf9Ad+zYweDBgwG49tpr2b69ac1fCm6rZuSngcQNdyOim5qhb/nR5ga3Cu/vFRpN82tuIaL7TU2ysACg/3qdc+zzVVjN5QwLEQRBEGqcMioSzS03ob3jVjTX9kfy9sZaVOS0nSUnB+O+A+Uew/DXTvQr12LY/BvWgkIKp7+J8a+d5Z5L1T5OFBYEQaiUZkHQvW3lCwtgK6J6vHnRzaAs47lwPsroFjWX4CXOJxv5clwmf39aSOIWPRueP8/h9c7vq03N5MmTWbZsGRMmTOCmm25i2bJl1S4s1IXPPvsMo9FIYGBgoywsgAtGLiiVSpRKx9OWlJTYp0H4+/uTmencsKmxC+2gISRejdUCCtl169A2VKouHSld87VDTNmzG5LctCu7glAZlsJCTHv2YU5KQREWirJLJ2T/2n0iIzROqm5dICQY1bUDMG75zR6X3N1RBAaQe8NwfP/agjIq0v498+kz5I97FPORY/aY2zOPo1/7LaprethHLwiCIJTHZLRi0lvQetbOtZ+k06F78hHUgwdiTj+HHNkc5UU9ZGpDxhED+nzHedJ/fphP6yFueAY3nCmUiZtXsHvpVIoyT+Ie2Jwu971BzKB7avQchYWFPPfccxQXF6PX63nllVdo3rw5Y8eO5YsvvsBsNjN69GhWrlyJl5eXfb/XX3+dPXv20KJFC4z/Tns5d+4cU6dOxWg0Issyr7/+OmFhYSxcuJCNGzcSFhZGYWEhAPPmzcPX15cxY8Zw/PhxZs6cybJly/j2229ZtmwZCoWCBx54AIPBwN69e3nooYd44403eO655/j666/ZsWMHH3zwAUqlkuDgYGbPns2GDRvYtWsX2dnZJCcn8+CDDzJiRMNYCbDe/VXWxvrbDYUkSUjiXrhKNMNvts33TUkFQBEUhO7+MS7OShAaDqvZTMmipRQ++6I9pntkPB5vzUBx0YewIFSUKiIcz3dep+i9uRi+/wm5TSvcX3ia4gWLsJzLwHTkmENxwbTvgENhAaD4kyV4zJ5mWzdOFIsFQbiM9IOl/P1ZAZnHjLQb5k7bm3V4h9V8Y2+FmxuKbl2o7ZbhWXlwOgPMvmrcAxUUZV5UYGhgt0qJm1fw59wJmEuLASjKSOXPuRMAarTAkJmZyYgRI7juuuvYvn07CxcuZN68eTzwwAN88sknlJaW8vDDDzsUFhISEti9ezdr167l3LlzXH/99QDMmTOHcePG0bt3b3777TcWLFjApEmTWLVqFT/88ANGo9G+bXkKCwtZsGAB69atw2Aw8OKLL/Lhhx8yd+5cFi5cSE5O2TIlr732GkuWLCE0NJQZM2awfv16JEni+PHjfPHFF6SkpDBx4kRRXKgMNzc39Ho9Wq2Wc+fOOUyZEISKULZtg++WHzAfOIjVYkUZ365Wh6kJQmNjPpFI4eRXHWIlHy1Ce99o1Nf0cFFWQkOn6toZ95mvoBl2E5as8+Q/+QLW9HQApxV9rKWlzgfQ61G2jRWj0ARBuKzsZCNfjs/EUGi76/59bh75aSYGTfVFqWp4I572noD7ZsHBJPD2UDH7/mC8v8okL8kEQK9HvBrUqIXdS6faCwsXmEuL2b10ao0WFwICAliwYAGLFy/GYDDg5mabYn7bbbcxfvx4FAoFkydPdtgnISGBjh07olAoCA0NpVkz2/TyPXv2kJyczIcffojZbMbPz4/U1FRatmyJRqNBo9EQF+e8lPIFSUlJREdHo9Vq0Wq1fPjhh+Vul5ubiyRJhIaGAtCzZ0/+/vtv2rVrR6dOnZBlmZCQEAoKCsrdvz6qF3+ZvXv3ZtOmTQwfPpyffvqJfv36uToloQFSRjVHGdXc1WnUuaLzZrISjJhKLPi2UOEXKZbgbIqsFgumo8dsUxoCA1G2a4PC07PC+1sKCqCcmztrbl5Npik0QcrmzdAvWkrxm++VxXp2R9m+neN27dvZ+jTklf3NaceMRNmlY53lKghCw5OVYLQXFi448E0R3R7wbHDXRLkFMOEdW2EBIK8QHl+i5IfJ/uR+nUv7W92J7KV1bZKVVJR5slLxqlq6dCnBwcG88847HDhwgLfftjUUNplMlJSUYLFYMBqNqC4qbFutVhSKshaEFotthIhKpWLOnDkOD7z379/vsO2F0fYXT9kzmWwFIIVCYT/WlUiS5DBq32g02o93aRuBhqLOsz548CBvvfUWZ86cQalUsmnTJt59910mT57M6tWrCQsL49Zbb63rtFxCn3+e/LQTyLIKz4g2qHUerk5JaGAK0k1sei2blD9sN4VqD4kRCwMJjde4ODOhrhk2/UzubXfbCwRuL07E/aXnKtzwThkVidy2jcOwdMnLC7llTK3kKzQdkkqF28QnUPXoiuG331HFx6EaNAA5JNhhO2XrVvj+vIGid+dg2rsf7T13oRt7N7K/v4syFwShIZDLGZ2gVEvIDbCHWdp52HXR7LDBHS0MaG1B4ycz4pOGObLbPbA5RRmp5cZrUk5ODm3a2Hpg/Pzzz/b+CUuWLOGmm25Cr9ezZMkSJkyYYN+nRYsWLF26FKvVSlpaGmfOnAGgY8eO/Pzzz4wePZrt27eTlZVFv379SExMxGAwYDAYOHjwIAAeHh72foG7du0CIDo6muTkZIqKilAqlTzyyCN8+umnSJKE+aJm897e3kiSRFpaGmFhYezcuZOuXbs6bNPQ1HlxoX379ixbtswpvmTJkrpOxaXyTh/n9/fvJ/OIbWWMFgNH023cW7gHXn3pE0G44OwBg72wAGAotPL7vDyGzwlAravzxWAEFzGfSSP/wcccRh4Uv/U+mmE3ou7T6wp7llEEBuD9xVIKnnsJ489bUHbuiOe891C2jK6ttIUmRA4MRL7tFrS33XLF7VTdOuO9bCHW4mKxEoQgCBUS2EaFf4yS84kme6zPE154hTe86VS+nhAWABk5sGicAXlrHhlLSjm1Q83ZSd4N8uFRl/vecOi5ACBr3Ohy3xs1ep7hw4fz4osv8uOPP3LPPfewYcMG5s+fz6+//soXX3yBxWJhxIgRDB06lPDwcABiY2Np3bo1I0eOJCoqitjYWACeeOIJpkyZwsaNG5EkidmzZ+Pj48Ott97KqFGjiIiIID4+HoDrr7+ehx9+mP3799OtWzfANuX/qaee4oEHHgDg/vvvR5IkevTowejRo5k9e7Y975kzZ/Lcc8+hVCpp1qwZQ4cOZd0651XwGgrJ2gA6KJ4+fZrBgwfzyy+/VGjd0frOarWye+lUDqye7RDv98IyYgaJJoQVlVcI6dng4wHBTbSh/T9L8/n1Hcdh6zofBfd9E4JHYMP7UBWqxnjwMNnxzn0RvNcsR3tn5UaCWQoLsWRmofDxQeHrU1Mp1rrG9jlRV8TvTRAamaIMsFjBM/jq2zYiOSeNnNxZSk6qkWbdtYR3UqP1apjXQT/8Bd9vNtNpRwY5FxVMtN4KxqwOwieibqd61MTnRF2sFiHUDw1zMkcVWK1Wskw5uCm0uMtuLs3FpC/i1I71TvFzB7fVi+KCOT0da3EJcngYkqZ+Vkj3nIDH3oOdRyAqFD55AQZ1gaa2UllAK+cPmFZDdLj5ilELTYkcGoIc1xbzoSNlQUlCjo6q9LEUHh4oPMQULUEQhAZFnwuHvoLN08BqhgEvQ/xIcGsa04p8m6vwbd6w+itczg09IEYysW6lySGuz7OQk2qq8+JCTYgZdI8oJjQRTeIO5FTpWd46/TFDDt7LmGPP8lf+HpcueanUuhPeZYhTPLBtxYYv1xarwYD+6+/I7tKX8606kvfAo5gSEl2aU3kyc2HMTFthASDlLNwyGY7VbF+YBiEkXs2A571RamxVlcjeGrrd64lC2cSqLE2cwt8P788+Ro6xTWGQPD3x+nyhvWGeJTsH07HjWLKyKnxMS1ERxl17KP3pF0wn6t/7gCAIgnCRpF/h2/GQfxoKzsKGxyHhJ1dnJVSBQgF+ARKKch4Ba9ybxK2b0IA1+pELRouJD8+uYGnGVwBkGM9z97Gn2dBuMXHurVySkyRJtPrPeM7s+oncVFszkIgeQwntOMgl+Vxg3LOPvDvHwL+Fl9JVXyKpVXh9Mg9JrXZpbhc7eQ6OXtIXRm+AxDMQG1n+Po2V1lOm272etLxWh6nUine4ErX44GmSVN264PvHz1hOn0Hy9bEvxWr8exf5E57EtHc/cquWeC36H+r+fa54LEteHkXvzKH4DVunZcnDA+/1X6IZ2L/Wfw5BKE+OMY/9xUdJ1p+mmSaEju5tCVA10flwglCeA6ucY7sWQfuRtrtVoUHxba6i9+Ne/D4n3x6Lu9UNv5hGf+smNHCN/i803ZjJisxvHWIGq5HjJckuKy4A+DRryw2zfybvzHEUshLviFg0nr4uywfAfPS4vbBwgX7FatynT0UZWX+WePR2B3cdFJU4xv2baO8vSSHh28CWWhJqhxwchBxc1k3anHaW3NtHYzlt635sPpFA7rAR+O3+HWXM5Rs1mvYftBcWAKyFhRQ8+DjK7ZuRgwJr7wcQhHKUWgx8nL6KeWeX2mN3Bwzjtcin8ZTdXZiZINQjvuW8p/vGiMJCAyWrJDqN8iCsg4bc0yY8gmRC4tRoPRtmHwmh6Wj07zhqSYW37OUUd5Ndv0aszjeYkPb9CGrby+WFBQDJzzkHOSoShXv9uniLCYc5TznGnroT2kW5JB1BqLfMqSfthYULrPn5mJNSrrxfWrpzLCkZa3Z2TaYnCBWSrD/F/846rjK1Kms9CSUp1Tqu+VwGpRt/pPiTTynd/BuWvLyr7yQI9VX7u0B70VMWtTt0e8h1+QjVpvWUad5TS4c7PIjup8PNTxQWhPqv0Y9cCFbSZenzAAAgAElEQVQHMK350zyZNM0ei9VFE+fW2nVJ1VOqLp1QDeiH8bdttoAs4znvPRQB9asZkCTBqMEQ1wKS0iDUDzq0BK/6VQMR6hHj3v2UfL4S04FD6O67B/WQwU3iCbzk4w1qNRgMDnFFOYXEi8lRziOV5I7xKIIa5hrbQsNWZC7BgqWceHE5W1eMOSeHwuenoF/+hT3mMXs6bs8/jaRs9JdGQmMU1hnG/wFpu2wNHcO6QUi8q7MSBKGJaRKfoDf6DmBt7P/YV3SEIFUAXT3aE6EJcXVa9Y4cHob3ysWY9uzHkpuHsm0blB3r5weTTgM92tq+BOFKTMeOkzP4ZvtTd+PPW3CfNQ33yc8hNfLlRZStWuLx3iwKn3zeHnN7+UXktm2uuJ+qQ3s8F3xAwbOTobQURbMIvBfOv2pRQhBqQ6Q2nFbaKE7oU+yxIJU/LbTNqnxM85FjDoUFgMLX3kA9/GZUV/n3IQj1VnCc7UsQBMFFmkRxQSdr6eXVhV5eXVydSr0nh4Uhh4W5Og1BqDGmfQedhvMXv/EOujGjkJtVbb3mhkJSKtE9MBZV1y6YU1KRI8JQdmiPwu3Ky/FKOh26CeNQXzsAS24ucmRz5FBRkBVcI0Dly0ctX+eDM5/yW/4Ounl04MWICYRX4yGBNa/AOWgwYC0qqkamgiAIgtC0NYnigiAITVh5gxOaUIMrhbs76l49oFePSu0nyTLKWDF9TKgfYt1imBv9KtnmPLxlT9xkXbWOJ7eOQfLxwZqba48pO3dE2SKqeokKgiDUAEOxheJsM1pPGa1307lmERo+8dcqCEKjpuwYjxQQ4BBzf+XFRj9qoSZYioowbP2d4o8Wo/92PeZLmkNWlykhEf33mzBs/R3zedEs8oKtW7eybt068i5pMLhmzZoqHW/nzp306tWLLVu21ER6LqORNYSqg6pdWABQxkTj8+O3qPr3AZ0OzR234rVsEQp/sbylIAiulXHMwLdPZrH4pnS+ejyD07tLXZ2SIFTYVUcubN26ldzcXAYMGIC3d1kX2jVr1jBixIhaTU4QBKG6lK1b4fvLBvSrv8J08DC60XehGjzA1Wk1CPovv6Zg3KP216qB/fFe9SlySPWnSBh2/kPuDbfanxyrb7sFr/nvIYeFVvvYDdnUqVMpLCzEz8+P//3vf0ybNo1evXoBsH79+kp/7p48eZIlS5bQpYuYFngpdc9u+GxYizU3D0VgAJLW9atICYLQdJjPZ2P8dSv61V+hbNsGzZ23YYyIZeOk84R20NDrUQ0luRZO79Kj9ZYIiFG7OmVBuKorFhdq+iJHEATBFVQd2qPq0N7VaTQo5pOnKJz4kkPM+OtWTPsOVru4YCkqovClaQ5D0g3frMN432jk4TdX69gNXXJyMitXrgQgIyODRx99lIkTJ9KnTx+sVmuljxcYGMj8+fOZOnVqTafaKCg8PcHT09VpCILQBOk/X0nhxMkAlALFCxZh2rAb/2gV+WkmDn5T1gPGUGSlz+MqZFXjbkQtNHxXLC7U9EWOIAiC0DBYS/QON//2eEE5jfAqe+y8PEy79jjFzSdPVfvYDZ3ZbCYjI4OgoCCCgoL45JNPeOihh8jOzq7S6iY6XfWnEAiCIAg1y3z6DEXTZjnErFlZqIqzCYoN5Pd5+Q7f++ezAuKGueEvRi8I9dwVey5cuMgB7Bc57733HuvXr2/0S7gJgiA0ZVKAP5pbLxlFoNGgjK3+Mn2KgADUw4c6xZVtY6t97Ibu2WefZezYsRT9u2qBv78/n3/+OTt27GDv3r1X3HfNmjXcddddDl/btm2ri7QFQRCEyrACFotT2L0wAfcg2SluMYGpVDzYFeq/KxYXqnORIwiCIDRMxv0HyRt5H8r49mhG3oHk4YGyexd8f/oOOa5ttY8vqdV4vPQcyt7X2AIaDR5vzkDVXfQFuOaaa9i0aRPu7u72mIeHB6+//jo7d+684r4jRozgyy+/dPjq169fbacsCIIgVJIiIgy3Kc87xCRvb1QtowjvosHNz/EWLayzGu8IscifUP9d8a/0wkXOxS5c5Lz88su1mpggCIJQ98yZmeSNvBfz0eMYf9mCslMHdI89hPbB+5BkBebjJ5CjIpE0mmqdRxnbBp+Na7EkpyK5uSG3jEaSnZ/WCPDMM8/w3//+F61oOCgIgtAoSJKE24P3IoeHUfLp5yjj2qF78F5UbWPxA+74KJA/P8zj7H4DMQO1dLvPC62X+IwU6r9Kl8DERY4gCELjZU5OxXz0uP21ae9+THv3I7duRcGTz0FpKdqxd+M+bQrKqMhqnUv28UHu7FPdlBu98+fPV3nfX3/9lcWLF5OUlMShQ4dYtmwZn376aQ1mJwiCIFSFIigI3b2j0Y4ZhaRwHKkQ3E7Nze/4Yyi0oPWWRSNHocGodHGhOhc5giAIQv0meXqCWg0Gg0PcciYNha8Pluwc9EtXILeMwePlSS7Ksmm56aabqrzvwIEDGThwYM0lIwhClZSYS0gzZKJTaAjTBLs6HaEeubSwcIFKq0ClveIMdkGodyr9F3vhIsdsNtd4MsLVmawm9Ga9q9MQBKGRUraKweON1xxi2nH3oggPQzPiNjzfnYXbpGfRL/8CczmrSQg1Z8+ePWzcuJG7777b3lxZEISGJ0l/kscSX6P/gZEMOXQvX2X9iN5c6uq0BEEQalyFRy6cOHGC3NxcWrZsyZ9//sns2bNZv359beYmXGJv4WEWp3/JCX0K9wQNZ4hPP4LVAa5OSxCERkRSKtE9PA5V966Yk1NQhIViOnkKS+pJMJkp3fADqt49cZ/xCgp3d6wWC9bz2UieHkj/TpcznUjAdOwECi8v5PZtkf38XPxTNTxvvfUWZ8+e5eTJkwwdOpTVq1eTl5cn+h0JQgNjsBiZc2YpP+XaVm7JMeXzVNJ0mrcNo7tnBxdnJwiCULMqVFx49dVXSUpKIikpiQ4dOnDw4EHGjx9f27kJFzlanMiIo09QbCkBYHLK22SEZzMxbJxYFrQeMFgMHCo+wYmSFHyUXsS7tSFUE+TqtAShShSenqgH9IUBfTGdSKT0h58wrPsec1IyAIYf/w/dEw+DVoNx868ogoPAbEHzn+uwWizkXjcMa0EBgG20w9x3kUPEMODKOHjwIMuWLWPs2LEAPPnkk4wePdrFWQmCUFmZxvOsz/7ZKZ5QkiqKC4IgNDoVmhaRkJDA8uXLiYmJ4aOPPmLNmjUkJibWdm7CRY4WJ9oLCxd8eHY5Zw1iqGx9sDl3O8MOP8Szya/zwIlJPJb4Kumlma5OSxCqzWo0ovD2thcWLij5aDHmnf9QMmcBRVOmYT50hIKpMzBu32EvLACUrvkG0649dZ12g2cymTAajfbicXZ2NqWlYhi1IDQ07rIb0drmTnF/lWhmKwhC41Oh4oLZbKawsBCwXeCEhoZy9OjRWk1McCQrnJef0SrUKCTR6KUqSi0GCkxFNXKsTEM2L6e+hxWrPbazcB8Hi49fYS9BaBjkFpFIvuVcBFsscNGoKf3qtah79cCa49yHwXwmrTZTbJTGjRvHyJEjOX78OOPHj+fOO+/kkUcecXVagiBUko/Si+mRT6OWVPZYf6/udHCLdWFWgiAItaNC0yLGjBnDDz/8wJgxYxg2bBhKpZLevXvXdm7CRdq7tSZYFcA5Y5Y99mLEI4SoA12YVcNjtVr5p/AAc9OWcqo0jXuDbmeo37XV6l1RYtFzzui8ikqeuaCcrQWhYVHodKiv7Y8iIhzL6TP2uGbE7ZT+9EvZhlYrWCy2KRKXkFu3qotUG5Xrr7+ePn36kJCQgFqtJioqSiwBLQgNVG/Prnwf9yknSlLxkt1p59aKILW/q9MqV44xl9OGc3jK7kRqwsXUW0EQKqVCxYVhw4ZhMBhQq9UMGjSIoqIifHzEcK661ELbjC9i57I5dzvJ+lNc79OXHmKuXqUdLD7OXUefwGA1AvDKyfcpMBfxdPj9VT5msNqf4X7X8032JntMRqaVNqqa2QpC/aDq0B6fH75Bv3wVxj92oBl5O+aTZyhdvbZsm8EDUbRphapjPMr+fTFt/R20WjzeeA1V104uzL5h2rZtG6tXr6agoACrtWxU1Oeff+7CrARBqApJkmjr1pK2bi1dncoVHSo6wVOJ0zmqT8RNoWNG5LPc5jcEraxxdWqCIDQQFSouLF26lO3bt/PRRx+hUqmYPHkyvXv35t57763t/ISLtNa1oLWuhavTaNAOF5+wFxYu+CR9FSMDh1Z5FIhGoeG5iAdRKmS+Ob+JZupQZkROpJ17/b6IEITKULVvh+rNmVgtFiSFAuOBQ1izMjFs2Ybbs09gLSikaNLLSN7eeLzxKvK8d5G0WuSW0Zddw1u4vFmzZjFlyhRCQkJcnYogCC5WYtajUihRShVe5K3S8k2FvJz6Hkf1tp5qxZYSnk+eRRtdNF084mrsPGdK0zlekoJSkmmji663Izjqo6LzJpRqCY2n81RpQagvKvQu9cMPP7By5Ur76w8//JC7775bFBeEBkejcK6+u8tu1f7AbqFtxttRk3kufDzuCh1+olGT0EhdKBSo4uPwXPBfzMdOYDp2HMOuPVgysyDtLHm3j8Znyw9oBvZzcbYNV7NmzejXT/z+BKEpSzdk8mPOVlZmrqO1NorxISPp5NGuVs6VZcxmZ+E+h9iogGEklaSSpE8lRhtJnFsr1Ap1lc9xpDiRe49NJM1oa0be0S2WD1vOJFIbUa3cG7uCdBOHvitizxeFuAfK9H/ah2Y9NMgqMWVFqH8qdEdlMpnIz8+3T4XIzKz5LvizZs1i3759SJLElClT6NBBDPkXal4HtzaEqAJJN5b9DU+JeJQAlW+1j61WqGimCa32cQShIbAUFFDy8acUTp0OBgNybBs8Zk+n8IWpYLVS+u16kCTUvXogqat+MdpUtWjRgqeffpquXbsiy2VPqe655x4XZiUIjcfpDNh9AnLyITYSOrcCterq+9UVi9XCsoxv+G/aEgAOFR/np9zfWR+3EA+FO7sKD5KiP0V799Z0cW+Pj8qrWufzUnoSpYkgpfQ0ACMDbuaEPpkvstYDICGxsOUsbvQbWOWfZ0XGt/bCAsC+4qP8lreTe0Vx4bKsVisHviniz//lA1CUaeGrRzMZvTyI0A5iuopQ/1SouDBx4kRGjhyJUqlEoVBgNBqZPn16jSWxc+dOUlNTWb16NYmJiUyZMoXVq1fX2PEF4YJoXXO+aDOH3wv+Id2QSS/PLsS5tXZ1WoJQp6wWC9biYhQeHlU+hmn3Xlsh4V/mo8co3fAj6sEDMfy8BUmtJu/mO/HZsAb1APEEvrI8PT3x9PQkPz/f1akIQqOTlgX3vgG/7bW9liT4cjrcPsC1eV3srCGDj9JXOsSKLMWcLc3g4/SVbM3/2x5/IXwCT4SNrdYozACVL2+3eJF7jz+P3lJKM00oq7M22L9vxcrU1Pfo6hFfpakMpRYDOwv3O8X3FR2pcs5NQVGWhb2rCh1iVgucO2IQxQWhXqrQRNj09HRKSkoA27KUpaWlZGRkXGWvitu+fTvXXXcdADExMeTl5dmXvhSEmtbKrQV3+P+HePdYXj35AXcdfYJ153+m0FTs6tQEodYZDx2h4OlJZF8ziIJXZmBKSKrSccxJKc7H3vo7ym5dUAQHIel0WAsL0a9wLBRbjUYsWVlYjUan/YUy9913H0OHDuWJJ56ge/fueHh4MHr0aFenJQiNwt4TZYUFsC128/RcSHde+MllFJKMVnK+eSwwFzkUFgDmpC0hVX/GadvK6u3ZlU1xn7G01TuEqJxX0cownqfYUlKlY+tkLbf4DXaKD/DuWaXjNRVKjYTOz/l2Te0hehkJ9VOF/jKXLl3Kd999x8aNG/n+++/56quvWLRoUY0lkZWVha9v2bB0Pz+/Wpl6IQgXbMv/h4cTppKoP8lxfTKPJr7CzsK9V99REBow85k0cm+5i5L5H2E+dJji198m/5GnseTlVfpYijDnKUDKzh1RtmmF7qEHKHr7A1vwouUTjYeOkP/YM5zv2o+Cx5/FeFg8sbqcZ599loyMDE6cOMHbb7+Nn58fL730kqvTEoRGIbec51fp2VBcWve5XE6oOpBJEQ87xlSByJLzpbvBaqTUUv2CrSRJtNRFcZ1vX9q7t0HGsXHgzb6DCFVVfQn0W/yuY5jvIMC2qtb44JFc49m5Wjk3dlovBf2f9YGL2it4hcmEthfTDYX6qULjp4KDgx2WnvT19aV58+a1ltTFy24JQk2zzWP82in+TdZPDPLp7YKMBKFumI4ew5KU7BAz/rIFU0IS6q6Vu8BTdu2Mdvz96Bd9BmBbJWLWNHKHjwS9/t+NlGjvHgGAOf0ceXfeg/nocQBKFn6G4Y+/8N38PXJwUPV+sEbIYDDQs2dP5s6dy/3338+wYcP4+mvn9y1BECovNhJkGczmstjIQRDu/LDepW7zv54wdRBb8rbTQhvBQO9eqCUVvkovckxlU6b6e/WgubZmez61dYvhs9bv8HLqe5wqPctwv+uYGDEeTTWWpWyuDeP96Jd5unQcSklBpCYCtaIeNbqopyJ7a7n78yDSD5ai9ZYJ66DGN1L83oT6qULFBQ8PD4YPH06PHj2wWCzs3buX8PBw3n77bQAmTZpUrSSCgoLIysqyv87IyCAwsOqVUUG4EoWkIETlfDMTpK5nVxWCUMMkVTlPOiQJSVX5ixQ5wB/Pd99A9+C9WHPzkFvFIDeLwHfTd+hXfwVqFdq7bkfVoxsA5oREe2HhAvPho5hPJIriQjkMBgPr1q1j48aNfPXVV5w+fVpMFxSEGtIxBtbNtk2FSDkLo6+HqWNBU88eBnspPbnety/X+/Z1iK9sPYc5aUvYW3SEm/wG8kDQnXjI7jV6bqWkZJBPL9a7L6LYUkKQyh9NNVaKuMBN1tHWLaYGMmw6lCqJ8M4awjuLHgtC/Veh4kK/fv0clsSKj4+v0ST69OnDvHnzGDVqFIcOHSIoKAiPajQaE4SrGRt8G+uyf6bUagDATaErdy6gIDQmynaxqAYNwLj5N3tM9/A4lK2qdqGn8PZGfU0Ph5i6fx/U/fs4bStdND3CMS4ulsrTt29fDhw4wPTp0/Hw8OC7777DYrG4Oi1BaBRkGf7TE/5cAIUlEOpfv1aKuJoOHrEsiJlBgaUIX6U3siRffacq8lf54I9YXlsQhIqpUHHhtttuq9UkunTpQlxcHKNGjUKSJF577bVaPZ/QtBSb9RRbSvBX+iBJtklrXdzj+K7dx+ws2I8sKejh2ZF2bq1cnKkg1C5FgD/eixdg2LwV4z+7UfXvg3pAHySdrtbPLbdphfa+0eiXlnU/1953D3KsWK3lYj/99BMbNmzgn3/+oVu3bqxatYpVq1ZhMpnIzc11dXqC0Kj4e9u+GiKNrKnWFAVBEITaUPU1a2rY888/7+oUhEbGarWys3Af757+hGT9aUYGDuPuwJuJ0IQiSRLx7rHEu8e6Ok1BqFNyVCS6cWPRjRtbp+dVeHriMXs6mmE3Ydy7H1Wnjqh696zWcpiN0ZAhQ2jXrh0zZ85kzJgx9rhCoSA6OtqFmQmCIAiCIFxZvSkuCLWn1GJAlhTVWv+4ITpSnMDdR5+2T334b9qn5JkKmBb5VJP7XQhCXbFk52DJzkYK8Ef2cRxKK4eGIt9xK9o7bnVRdg1DREQEH3/8savTEAShjlisFhTlrAIh1KwDSbAvAWQFdG4NsbXXm14Qmixxh9WI5Rjz2JL3F5+dW0uoOojxISPp5hFvnxrQEJitZv4pPMDyjO8oNBdxb9BtXOPZGZ1c/vztix0tSbIXFi5YnvkND4feTTNNzXZVFoTGwpJ1HrSaKo0oMPz5F/mPPI35wCGUPbrhteADVJVchUKoWSaTialTp3Ly5EnMZjOTJk2iW7durk5LEAQgVX+G73N+5cecrQz07slwv+uI1jXcO94cUx6JJScBiNE1x1dZf+ac/HMUBj9j67EBtukwP38AHURvSUGoUaK40Ih9n/Mrk1LetL0ogp9yt/Ft24/p6NHWtYlVwp7Cw4w48gRmbOtF/ZS7jaWt3uU6X+eGcZdyUzgXILxkT1Qo2VN4iGT9afyVPsS5tyZA5Vv9ZEuLIOsoGIvAryV4hVX/mIJQR8xnz6Jf8SXF8z5CERqCx+uvoB7YH0lZsY8JU3IKuTePwJqTY3u98x9ybx2F344tyGHi34KrfPfdd+h0OlatWsWJEyd46aWXWLt2ravTEoQGzZx2FmtpKXJEeJVW2wHINxUyJeVdfs3/C4B/CvezKWcry9u8T4DKr8q5FWWdIe/UESRZiU/zduh86mY1nlT9aZ5LnsX2gj0A9PLszHstphCpjaiT81+J1Qoff1dWWAA4nwffbhXFBUGoaaK40EhlG/OYf/Zzh5jBamRX4YEGVVzYlLvNXli44OP0lfT37o76kiWRis0l7C06wpHiBIJU/rTURdFaF8XxkhT7Nm9EPseOwn08lviKPTbMbzBvRD6Pv6oa3ZCLMmHzNNi5wPbaNwru/hZCO1b9mIJQh/SfraBwyjQALCdPkXvDrfj++Qvqnt0rtL85KdleWLjAcvoM5pSTorjgQrfccgs333wzAH5+fqIppCBUg6W4mNJv1lPw7GSs2dnoHhiL25TnUbaIqvSxkvWn7IWFCw4UHyOhJLXKxYWc1ENsnn4LBWeTAAhs15v+zy/DM7T2+7X8mLPNXlgA2F6whx9ztvFw6N21fu6rsVjg2Cnn+IkzdZ+LIDR2orjQSMmSAo3kvB6xStGA1loCZJyncMiXmZe4MWcLzyTNtL/u6hbH/2JmcLg4gXRDFp092hGhDmHo4Qcd9luf/QtjAofT17tiN1HlOv13WWEBICcFtkyDEStBVfud+AWhOsznzmE6fgL36S+D0QgqFSULl2D6e3eFiwsKn3KKc0olkrdXDWcrVIbqoqeqS5cutRcaBEGoPNM/u8kfU3YNUbLoMyRfHzzenIGkqFzPhMv1WKhq7wWr1cqJTYvthQWAzMN/cmb3T8QOfaRKx6yMLbnbnWK/5m2vF8UFWYbxw+CPA47xEQNdko4gNGqie0wj5a305PnwhxxinrI73TziXZSRs2PFSXx0diWvpv6X3/J2UGQqdtpmiG8/lJes3zwhZLTTqIWzpRlMPznXIbar+BBppRncGXAjT4SNpY9XVwxWAzmmPKfz5JoLqvfDnD/uHEv+FUqyq3dcQagDVn0plqzzFL32OkWvv0XR62/hNvFJJP+KPz2TY1vjNtlx1R+PWdNQthZLvNaVNWvWcNdddzl8bdu2DYAVK1Zw6NAhHn/8cRdnKQi1LO807P4Mvrwb/poP2UlX3aWijHv2O8VKPluB5VxGpY8VpY1gqO+1DrHuHh1oqY2sUm5mg570/b86xbOO7azS8SprsG9vp9ggH+eYq9zYA959DPy8INgPPn4e+ndydVaC0PiIkQuN2CCfXqxs819+yP6NYHUAQ3z60tatpavTAiChJJURR5/gvMk2jHrxudXMj57GbQE3OGzXyb0dX8UuYE3WDxSZi7kr8GZ6eHRwOp7eWkqeybFA4CN7Ea03Q8pWcAsA/9aEqILo7dmZPy8auqeUZKK11Wyg5F/ODVT0taDzr95xBaEOmI+dwLDhx7KA0UjJvI/w3rCmwsdQuLvj/uIzaP4zGPOpNOSoZig7xld5PrJQeSNGjGDEiBFO8TVr1rB582YWLFjgMJJBEBodQxH830uwb7nt9YEv4MAqGP0tuAdW+/ByiHP/ArllNJKHe8XSsxg4XJxAov4kfkpvXgh/iP7ePfg1bwe9PTsz2KcPflWcoqnU6IjqewfZiXsc4qGdB1fpeJU1xKcfv+T+ybb8vwHo59WdIT796uTcFRHoC8+OhJGDQKGAEHF5Jgi1QhQXGjE3WccA754M8O7p6lSc7C86ai8sXPDm6Y/o790D/4uaKyokBd08O9DN07mgcLEwdTB3BPyHNVnfA+ChcGONdgTRS26FkhyQ1XDzfDw73ssbkS8w49Q8tuRtp5k6lDejJhGrq+Z8xIgecM1T8Ne/oyf8ouHaaaC6+qoWguBqloxMp5g5OQVJo6nUcRQ+PqgH1J+LSQFOnTrFF198wfLly9FU8v+nIDQ450+UFRYuOPknZB6pkeKCskd35E4dMe/dZwuo1XjOno7C07NC+/9f7u88nPAyVqyA7Yb8najJjAmqmeV5owbcTebRHZzasR4kidY3PkxIh2uvvmMNiNSG83HMGySVnsQKxGia462q2O+lLoVV/89AEIQrEMUFwSVKLQanWImlFJPVXM7WV6dRqHk2bBzesidfnf+RV33uoN3a12yFBQCzAdY9DGFdaR3WhU9aziLDmIW70URgRiJk/ARB7cCniiMY3APh+tnQ5X7bkxO/luAZUrVjCUIdk1s5j2hS3zgERUiwC7IRatKaNWvIzc1lwoQJ9tjixYtRq5178ghCg2e1lB+3VO3a4lLKFpH4rluNcc9+rEWFKNvGouxYsemm6YZMpqS8ay8sgG0FrPtL7mCAuvIPgQrNRWglDUpF2aW8V2g0/SetIP9sIpJCxiusFUpN3T3k8FZ50lkVV2fnEwSh/hHFBcEl4t3boJHUlFrLigyPht5DsDqgyseM1IbzavMneSx0DH6ZyVCQ5riB1Qp5pyCsC26ylqicIlh5m+2JBoBPFIzdAEFV/GBUu0Fo50rtUmQuJs1wDq1CSzMDcGYXlOZBYFsI6QgK+arHuJTFaiFFf5oM43mC1QFEaSKQJOfGmIJwgapTPF7LF1Pw5PNYc3JQ9u2NxztvoHCv2FBfof6aOHEiEydOdHUaglA3/FtC65vg+PdlsaA422dqDZGbRSA3q/zyikXmErIuGbEJkGuqXM+nM6XnWJ/9C19mbaStLoYJIXc7rAKmcvPEP6b2mgnozaXsLjrIH/m7CFT508ezC63cWtTa+fMiBRIAACAASURBVARBaFhEcUFwiTi3VnwZO5+Pz64k1ZDG/UG3c30NzM2TJdlWoPAsBY8QKEwv+6YkgddFFwRH15UVFgByU2Dvchgyu9p5VERCSSqvpn7Ab/k78JI9mOZ7F7dsXYTu1E5QKGHs99Dy+kod02K1sDF7C88kz0RvKcVNoWN+zDSG+PQTBQbhsiSNBt09I1H37Y2lsBC5WTgKL7HKgyAIDYzGC4bOg6gBcPhriLkOOo6p8EhCi9lMdtI+ck8eRKXzxD+mCx7BVWuweKkQdSDXevdiS17ZqgoyMi0r0fPJaDHxSfoqFp1bDfD/7N13dFTl1sDh3/SW3nuH0JugAiqoyAVFsFwQC6JXrtfOtYGABQsI+llQsF2xIagEe0cUsIAgiKL0ACEJCek9M5lM+f4YGYgTIH1S9rMWazF7TtlHSeacPe/7bvaYD/Bt2QY+67WUFEPL5Hkqa8s2Mi19lvt1qCaIVT1eaLPzCyHaNykuCK9QKBQM9u1Lf9Oj1DptGFUtPGzPLxr+uQzeuQxqKlwP62OfcU19OCrrZ8/9Dn3vGj7514iBnJo8yu1VRGpD8Ve33NzBGkcNTx9+lfXlmwAot1dyV+FrJA69htOzNoPDBl/8F6b9AMaGr9i/35LJ9AOPuEeEVDvM3L7/Yb7u8waJ+tgWy190Tqr4WBo/VkYIIdqRoCQ4ewYMuxNUjVvA9Mj2tXzzwFicdhsAgQl9Oe+hj/GNaP438yaVgblx09FmqVld+iMx2gjmJ9xLD2Nyg4+RY83jzfz368Qq7FXsrt7fJg/3JbYyHs9+qU6soLaY36p2SnFBCAFIcUF4mUapRtOIf4YOp4ODlizya4uJONWQ/+RRcPM2KDsExlAISQX1cfOMe4x3fbNxvL5XglJFrcPGmtIfmZnxBEW2EgaYevJk4ix6GVumrV5BbQlflKzziB/QOjj96IuSA2CtbFRx4Yi1oM5UE4AqRzX5tUVSXBBCCNF1NLKwUFNVxpalM9yFBYCSjD8o3PtLixQXAFIM8SxJfoT82iJMKgMhmoZ/vgOoFEq0Ci21TluduFbZNl1gah02KuyVHnGz3UK6OYPd5gPoFTp6GVOI0smaPUJ0RUpvJyBEQ9mddj4t/pbRf07ln7tv4R9/Xsea0p9OvlNwMiSdBxF96xYWAJIvgDNuA4XSNWVi0PWuggOwx7yfG9PnuDta/Fa1i3sPLqDc5vmh2hQ+KiMp+gSPeIj9uB/Jcx8EtbFRx43QhqBV1L3J6GPoTrTmBENCrdWwfw18eiusfRhyttW/nRBCCNGJ2S1VVOUf8ohbyjy76TSHQaUnXh/d6MICQIwukhkxN9aJJepiSDWcvPixp/oAz+e8ye3pc/m8eC3FtaWNPjdAmDaYGyOurBNTK1Qk6mO5aMcN/Cd9DlP33cOUvXeRYclu0jmEEB2bjFwQHcZ+cyb/PfAoVmct4PpG/vYDc/mq95sk6KMbf0C/KBjzf3D6LYADApPdrSMzLIdxUHfV6d+qdpJrzcdP7dPcSyFA7ccj8XdyzZ473SMNzvc9gzhNJAcvfoIo/17otrwCW1+DgVOh/xQIPPWQwyR9HC8kP8L6vG9wKNU87ByIfs9XkPk4pPzD1TLTdNyimemr4Z1Lj73+6Sm44QeI7N/saxRCCCE6CkNgBN3+cQN/rnqy7htxCdiddlSK9jFpbGLIhSToYviubCMBKl+UCiULs17mv9HX093o2VY7w5LNVXv+y5FaV5Hkg+KveSD2dv4TcSXVDgvbq3az33KIUE0Q/U09idCevFfj5cFj0Ct0vJ6/iihNKLdHX8fHhd9Q6ah2b7PbfICN5dtI0Dd+4UshRMcmxQXRYRypLXAXFo6qsFeRX1vYtOICgFoHYZ6rSAdrAj1iIerAFiksHDXUdyBf9H6d/ZZDmJQGKuxVXHRwHhZquMJRxPSonsRqjGCzwIE10P9aUJ986KOqNIsx239k7PaPcI56DMW7l7m6ZABseQUufQN6X+YaLmoph7Vz6x6gpgIOSXFBCCFE16JQKokeO5VicyF5q1egDwgj+No7meFcydPmXu2mI4K/2pduhgSezH6FjJps90N9Rk02y3s8S6Dav872O6v3uQsLRz19eCljA0fwXekG7s982h0f6X8GixIfJER74lEVYdpgro/4J5eF/AOtQkON08rMigUe2x2syWrOZQohOiiZFiE6jAhNKBpF3XqYj9JIqCa4xc/Vy5jCNaGXuF+rUPFEwn1EasNa7BwKhYIexiQuCjoXB05u2n8/1Q4zDhykVf6IM/ZMyN8B6+fB6pmw632w19Z/MHMJ7P8WdqxCoVTDoBtQbFpyrLAArsUsbWbI+B4q8139wG1mz2PZa1rsGpvMboPCPXBkO9S0zFQUIYQQ4mRyfB08ebaV8nnz+fPeadwS+Dm/Wvdy2Jrv7dTqOGDJ4k/z3jqjBX6v3k1WTa7Htnano56YncPWPBb8bXHGdWWb2GVOb1AO/mpfDCo9AWo/Lgke7fF+X2Nqg44jhOhcZOSC6DCSDLE8k3g/dx+cT43Til6pY1HSgyS2wrA7f7Uvs2Nv4dLg0RTWlpCojyH1uOGG5tJ8CvdtoTIvA7+oFIK7DUbv2/j5k0dtqvitzuvJPmcR9fVcyPvDFagugrSr4eYeEPm3/tXWKlcB4qenjsUm/K9u4aDbWPCPgY9ucBUVgrvD5DQ4a6YrdpRSDfHNbwnaLNXFsGkJrH8M7FboNgYueg6CW2YxTSGEEKI+QeoADtXmMt+R5o4pURKmbfkvMZrDR+W5HpNWocGg9Oy81dOYQoDKj1J7uTv274jJ7K5Kr1OcOKrS7hk7lb7GHowPOp/Pi9ehV+qYEnYpv1Xt5IKAs9CrdI0+nhCi45Ligugw1Ao144NH0ceUSn5tEZGa0FbtgOCv9uVMv4EecWt1Bb++eT/7vvqfO9b3itn0v/pB1JqmfYj+vUAy1BmO+sjvroUmNSZX1winA4rSPYsL+TvqFhYAvpwOF78ImRtcr+OHw5r7j71ftBe+fRAmvAITV8DPz4NvpKt1V9TgJl1Di8n6Gb578NjrfV/BphdgzFOglMFWQgghWke0OownEmZy58HHsDprUaJkXvzdpOjbV5vF7oZELgkazUfFq92xu6Kn1ftlS4ohnvd6PMfygk/YWb2PSSHj6GPsxhOHX2GY7yA2VPzq3lav1JHchJaSv1fv4lBNDrdGXkONs5ZPi79Fr9RyR9R16JHighBdiRQXRIeiUqjoZkigmyHBazmUZe2qU1gA+DNtAYkjJhOU2LdJxzzTdyA9DEnsNh8AIF9ldy006RPuGrXgE+Z66Pb5W2unmgooq2deo7UaTGFw2RuwdSk47J7b7P8GbDXQ70rodRkoVKBqB78ScrZ4xnasghGzwXTyhaaEEEKIRnPYOVS0jSXFH/OTeRf3RE8jUhtGN0MiqYakNmv12FD+al8eiruDS4NHk2PNI0kfSz9TT9SK+j/D+5hSmW+8B7vTgVqpori2jDxrIRcFnYu/2pf1ZZtJ0sdyf+ytdD9F54n6DPMdxKKc1/m9apc7Njfuv/irfZt8jUKIjqkdPEkI4T1ltgrSzRnUOKwkGeJOuUoygM3suQaA0+HAZmn62gAJ+hiWdX+GXeZ0ahxWBqtiYOsM2PzCsY3OvANCex2XiBV+XgxBSWAMdhUhjvKPBRRgCILwPuBXz4KXccPA+NdUDnU7+mahvukPMUNA59f2uQghhOj0ao/8zstlH7K84jsA5me/iAIFH/d6pc0LCxX2SnZWpXOktoAYXQQ9DSkYVQaP7cK0wYzSDm/wcRUKBeq/Ol4Eafx5LvkhHjr0DFUOM7dEXsMIv9MZ5NunSTmf5tOHF5MfZX7WC1TYq7gx4krGB53fpGMJITo2KS6ILiu3Jp+HMp/h85J1AMRro3mt+0J6GJNPup9vVDcMgRGYS464Y/4xqfhGnny/U4nShRGl+2vByEM/wa4P626weQkMvhFMf839LNoL3z0Afa+E0Qth02LI/c3VbnLg9RDeF/K2w+YXoffl0Gci/PnXPFKfcBi9ALSmZuXcKuKGQ+J5cNB1k4chCEbMaV8FECGEEJ1GQXUmK6s21Ik5cbK3ej+n+TTtgbspzHYLL+W+w7M5r7ljj8XfxZSwS084KqGpehlTeL37kxTWFuOn8iFIE9DkYxlUesYHj2K432nUOm2Ea0JQKBQtmK0QoqOQ4oLosn6p3O4uLAAcsh7mlSPvsjBhJhrliX80fMJiGfXI52x9Yzb5O38icuAoBl3zCIaAluskQW09Cyo57HUXabSUumK/vw2BCTDgOuhnBaXGtSijXxRkrIc+k+DPlZB0Hpw3F/SBrr+Ht90NU6MExMEV70DeDtd/h9CertEZQgghRCsw1FqJ0YSxryazTjxA1bYj5tIth+oUFgAeyXyes/yGtMp0UB+Vsd7FIZuqvjbeQoiuRYoLosv6o2qvR2xD+VYqHVUEKv3r2eOY4JRBnDvnfaxVJeh8g1HrPIcsNktId9eaCVXHtb+KHgKBxz1kBya6pjuUH4Z1j0FAAsSfBaPmuR7QAXCCQgnnP+LaDqAi969pEy4WKxzMARSQHAXa9jC11BQGSS1YrBFCCCFOINA/hblVY7i2Zil2XGsUDTCk0s+nZ5vmUWIr84hZnbWU2SraNI/WVm6roNphIVQThOqvqRpCiM5BiguiXcu3FrLfkolGoSZFn0CApuW+RYjTR3nEhvudhp/KhxJbOQogQH3i82kMJjSGVppWEBAP134Fa+dC1kZIHQfD7z22RgK4CgtXfgSf3wrZm8EQCGfcelxhAYg501V4+HOl631rBVzzOehdxZPsfJj3Frz6uasxxc0TYObVEBXSOpclhBBCtDuRAzkrV8GnmnvZRwm++lD6+g8gShfRpmnE6aLwVZmosFcdS00TSkwb59FaHE4HGyt+5dHMxRyqOczlwWP5d8QVxOvrWRdKCNEhSXFBtFt7qw/y7/TZpFsyADjffxiPJ8wgWhd+8h0bqKy2nAlBF/BJ8RqcOOlt7M4I/zNYVfgli3LeQImCu6KnMTrwLHxUXlibIGogTHrXNf3BEALqeoYUxAyGa7+G6kLX2gTHFx/ANZ1gyueQ86urs0R4H4g81l7z843wyqfHNl/8AQzqDlPHttI1CSGEEO2NQoE6aiD9GUj/Jh4i15rP7uoDOJwOUo1JTSoIJOhjeLP7/3HPgfkcqMmilzGFJxNmnXSx6QJrMTuq91FuryRZH0dPYzJKRfts27yrOp2r99xJrdMGwOv5aVQ5qlmQMAOdUuvl7IQQLUGKC6JdcjgdvF3wsbuwAPBt2QY2lm/ln6EXtsg5wrUhrCn7iTuj/4XD6SSn5giV9iruzVjg3ub2A3N5s/v/MSqg4SsytyiNwfXneJUFUHUEjKHgGwGGANefEwlMdP2px3vfecY+/F6KC0IIIURD7TdncsO+mez7654lShPGstSnT7lAdH3O8B3AR71epsRWRrAmkED1iadp5lkLuefgfL4r2whAgMqXN7s/RS9j/R0mvG2vJcNdWDjq/cKv+G/U9TJ6QYhOon2WNkWXUVxbypfF67jzwGO8lLuCfeYMAKodZn4o3+yx/baqnS127nP8h9DHmMqiw2+wKOd1EvQxfFrs+bT9fsGXLXbOZsvcAP8bCov7wUtD4EA91YFGGN7XM3ZG72YdUgghhOhS1pT+6C4sAOTU5rOy8PMmHy9YE0iKIeGkhQWAP6r2uAsL5/kP5V8Rk5iRsYArdt/OmtINWBw1Tc6hKZxOJ1ZH7Qnf91F6Lh4ZqPZDr5RuUEJ0Fm1eXNi8eTNDhw5l7dq17tju3buZPHkykydP5qGHHmrrlISXOJ1O3i34lGnps1hZ+DmPZj3PNXvuIsuSg0lpZHTAWR77DPHt12LnD9eG8mDc7XzbZxlpPZZwrv9QorSeiwhG6trJwoJlWfDOZVC83/W6PBtWXAJF6U0+5JXnQ0LksdfdYuHSs5uZpxCi3SgqKmLatGlMmTKFyZMn8/vvv3s7JSE6nd/q+eLjl4rt2Bz2Vj1vid21AKRBqWegT2+ePryUPeYD/Fq1g6l77+bXyh2tev7j7ajay/2HnuKyXTfxVt4HHLEWeGzTx9SdgcZedWIPx/+XcK1roadqu5lqu9ljPyFEx9Gm0yIyMzN5/fXXGTRoUJ34vHnzmD17Nv369ePuu+9m/fr1jBgxoi1TE16QXXOEp//WcinbmstOczqx+iiuCBnHporf+aVyOwATgy/kTN+B9R2qycpsFSzNW8mygo8AeDz+Xj4q+gaL01XtNyoNXBI8ukXP2WSlmVCZVzdWUwGlGRCc0qRD9kqEtYtgx0FQKqF3AsS0k1qKEKL5PvnkEyZMmMDFF1/M5s2bWbRoEa+99tqpdxRCNNiogLP4pPjbOrFLgkejVjasE0KFvZLfK3ez27yfKG04A3x61ftlx98l610LOA/1Hcia0p883l9d8gPD/AZ5xFvaQUsWV+y5w93tYlvVTg7WZDMn9hbUimOPGpHaMF7qNo/fq3ZRVFtCD2MS/Yw9qbKb+b5sE4tzlwFwW+QUzvE/A1M7nNohhDi5Ni0uhIaGsnjxYubMmeOOWa1WDh8+TL9+rm+kzz33XDZu3CjFhS7AgQPb3+beAdicrkp/kiGON7o/yUFLFhqFhiR9bIvPIfy18k93YQHgqcOvsiBhBlX2alQKFaf59KGXqRtVtmr2mA+QbysmThdJN30iGmUbL1liDAKVFuzWYzGFEozNa+0QF+76I4TofK6//nr333NzcwkPlx92IVraWX6DuTHiSl7LW4nD6WRSyIWMCWzYfazT6WRlwRc8mPnMseP5DmZx8sOEaoNOsif0NnbnheRH+KDwa3zrWXg66BTTKlrKrur9Hm00X89LY2rYZSToY+rEY3QRHotdfle6gWnps9yvp6XPYln3pzgvYFjrJS2EaBVt+nRkMHg+GJaUlODnd6zdX3BwMAUFnkOpROcTrQvnX+GTePnICncsQOVHD8OxBZAC1H4M9DnxIgDltgqKbWUEqvzx1/g2Oodd5v11XhfaSliQ/RJf93mDEI3rQ73abubFI8t55q9RFipULEl+mIuDz2/0+ZoluDtc9Bx8ctOx2Kh5ENKjbfMQQnQoBQUF3HTTTVRVVfHmm296Ox0hOp1wbQizY27m6tAJOHEQp4tC18B1BDJrcng8+8U6sR8rtrDbvP+UxQWdUsuE4AsY4tOfPeYDbCzfhh3XFzQmpZELAs4i3ZzBAUsWJqWBVGMyIZrAOsfIrsllTekGVpf8wHC/07gwaCSJ+thGXD2o6ulOoVKoGty1YkXBp/XGpLggRMfTasWFtLQ00tLS6sRuv/12zj775BO6nU5na6Uk2hm1Qs2N4ZOJ10XzXuFn9DF259qwS0k2xJ10v5LaMrZX72a/+RAOnGwo/5Uj1nzmJdxDiDqIneZ91Dps9DAmk2KIP+mxUg1JHrHhfqfhpzpWqNhjPuAuLADYsTMjYwH9TT2J00c18qqbQamCAddC5CAoywS/aAjrCxp92+UghGi3Tva5+/7777N+/XpmzZol0yKEaAUapeaU9xz1sTismB0Wj3i1o+FrD0TpwgjTBvFhrxf5qWwrepWO4b6nUeWoZvKu6e7jn+8/jCcTZ7nXOKi0V/FI5vN8XuJaB219+SY+K/6Wt1KfJlRz8sLG8XoZUojRRpJtzXXHpkddR4y2Ye0461u4MriNRl0IIVpWqxUXJk6cyMSJE0+5XVBQEKWlpe7XeXl5hIXJpO+uIkIXytTwy5gcOg6NQn3KKrfFbmFJ7jJePLLcHbss+B/olDrWl21mZcFnHLLmAOCrMvFe6mL6+5z4m/3TfPowKfhCVhZ9AUCCLoabI69Bq9S4t8mtZ1GicnslZfZyoOnFhZLaMvZaDmJx1JCsj29QT2yHDewVvij0A1FFJ6BQSsMXIYRLfZ+7mzdvpqysDH9/f0aMGMGMGTO8lJ0Qoj4xugjO8x/Gd2Ub3DGT0kiyvnGFCrVCzWk+fTnNx9UGqsJWydV77qxTuPi2bAO/V+1itNb1RV+GJdtdWDhqe/Ue0s0ZjSouxOqjeDv1ab4p+ZFd1en8I+gchvoOavDIhcmh41hV+AVWp6vThFahYVLIRQ0+vxCi/WjjSeOeNBoNSUlJbNmyhcGDB7N69WqmTJni7bREI1gdtWyv2s0fVXvc0xgSGtmvWKfUNmi7/ZZMXjpuGgXAB0VfMzvmFopsJe7CAkCFvYpXj7zLM8n311lQ6Hhh2mAeSbiLqeGXY3HUkKiPdVf0j89NrVC514IAiNVGEtGAxZZOJKcmn1kZT7CmzLUAU5gmmGXdn6aPqfsJ97EdOEjlrIeoSfsQ9Hp8Hp6DftpUVIGBJ9xHCNG1rV69mp07d3LdddexZ88eIiMjT72TEKLNmFQGHo6bTvSRcD4r+Y5exhRmRt/UpFEQx6uwV3tM/QTIteafct9qh4XfK3cRq4siSNOwEQTdDAl0MyQ0Nk0ABpp68WHPl/i+fDNOJ5zjfzr9TTLlU4iOqE2LC+vWrWPp0qUcOHCAHTt2sGzZMl577TVmz57Ngw8+iMPhoH///gwbJnOsOpJ1ZT/zr30zceKa0pKki+Xt1GeIb2SBoSGqHGb3eY6nVWg5Yi30iO8276fGUYtadeJ/6r4qEwN8ep3w/Z/KtjIz5iZeyH2bElsZ8bpobou8Ft96+jU31NbKP9yFBYD82iJeyF3GM0kP1FtocTqdmF99k5qVH7gCZjOVM+5H3acXqrHtpJuFEKLdueWWW7jvvvv45ptvsFqtzJ0719spCSH+JskQx2MJd3Fn9PX4qEyYVE2/vzhKhYpz/E7nq9L1deKRx30xkqCPYWzgSL4sWeeO9TKk8HXxepYXfkJvYzeeT5pLqtFzCmlLUiqUDPDpddJ7MSFEx9CmxYWRI0cycuRIj3hKSgorVqzw3EG0e8W1ZTya+XydB/4DNVlsr9rTKsWFeF00sdpIso6b1xepCSXTepjhfoP4uPibOttPCr2o2a2MEvTRPHn4f1wePAaTykCetYj9lkMNXqypPvssGR6xXyq3U2mvqr+4UFSMZcVKj3jtz5vRSXGhSZw2Gwq11wdvCdGqgoKCeOWVV7ydhhDiFNQKNeHa0BY7XoWjkn6mVIpsJfxSuR2j0sDtoTdSuqc3WwJgQAr4qE08FHcHw/1OY3XJ95zu2x+ro5bnc99Cr9DR3ZDIL5V/EKUNw1ft02K5CSE6L5mwLZqlxlFDoa3EI15pr2qV84VrQ1jabSHn+w/DoNRzjt/pPJk4i4sCz+U8/2HMjZ2OSWlEo1Dz7/DJXBR43t/yqqbafmz+Yb61iP3mQ1TYKk94zhH+Z5Cgi+bVvPdYlPMGP5VvYWLIhSgUiiZfR19jqkdsdMDZ+Kvr73ih8PVBM6i/R1zVLaXJOXRVtoMZVP3fIkrOHk3FA49i273H2ykJIYQQLSpcE8IPZb/gr/bl6ehHuaXkDZ6dcQVXzgxi6M3wzRbXdrG6SK4P/yfv9HiOOF00z+W+SYQmhFmxN/NH1R5mZzzJPQcfJ918yLsXJIToEORrO9Es4doQpoRdypLcZe6YChUhmkB2Vu+jpyGlWQ/h9elt6sbLKY9RYisnQO2H8biRCf+OnMzYoJHYnXaideHutRbKbZWsLdvIkty30Sk13BF5HT4qE9MPPMJh6xFOM/Xh8YQZ9DZ18zhfvD6a17o/wT7zQWodNrobEojUNa9X/CCfPtwaOYWXcldgx87pPv35V/jEE64NodDpMM2+F+t33+Msc/WSVp8+GM3woc3Ko7EsVkjPhlo7JEeBn2db7XbNUVFBxfQZWD91LeBZ+/Nmaj74mMA1n6GKbNiq1kIIIURrKrNVcMhyGI1SQ5I+tsHrUh3PV23isYS7uffg4xzcEc+cecc6cTkc8N/nYUgPCAk4tk+A2tUa/qqwCczLWuJeYPGzku+odFTxSsp895SNGnsNmdYcVKiI00ed8P5FgLOmBtvuvThLy1AlJaCKjfF2SkK0GvlNIJpFqVAyNexy1Kh4u+BjwjXBTAy9kLmZi8i15vNOj0Wc4Tugxc9rUBkwnGC6Q31dF34s/4Vb9j/ofn3dvnt5IPZ2DluPALC16k/u2P8waT2X1Lt4UagmqFErJ59KsCaAe6L/zeXBY6hxWonXRZ9w1MJRmsGDCNq8HtvO3SiMBtR9e7fpA3FeMTy+DJZ85LoxGX06PD8dUjrQZ6Q9/YC7sOCO7dyNbdceKS4IIYTwugPmTGYcXMDGym0oUTIt/ApujZpCiKbxizf3MCazPPUZVh7ynMaZmQfVNXVj/Yw9uDx4DHan3V1YOGpd2SZyrPl0MySQXZPLk9mv8n7Rl2gUam6OuJobIiYR3IQcOztHeTnVz71I1UPzwOFAGRaG/ycr0Z4x2NupCdEqZFpEF+V0OqmwVWE/rgNCU0Xrwrk35kYWJ88lQR/D41kvklGTTY3TysKsl6m0V7dAxk1nc9h5LW+VR/z3qp11Wj3ttuwnx5rXZnlplRrUChWHag7zQ/kvHLRknXIfdfcU9JeMQzf6/DZ/GP5hOzz/gauwALB6M7z1NTg919dsv07QulOhkl+FQgghvMvhdLAs/yM2Vm5zvcbBK3nvsKVie5OP6af2pV+Clr8PIr1mNET+7TuTUG0Qj8bfRW+jZ+eqAJUfRqUegE+Kv2VV0Rc4cWJ11rIo9w02Vfze5Bw7M9tvf1D1wKPumydHfj4VN0/HUVLq5cyEaB1yR90FHTRnsTD7JS7eOY0HDj3N7uoDzT6mQqFgd/V+vihZV6fafaAmk2q7udnHb4oMSzZfF3/PlortBP411O94RqWxTv9nH6URJS07heNk/qzay/idN3JT+v38J30Ol+z8D7uq09vs/I31Qz33DR+shwrv1o4aRZWShG7KlXVi6jOGoOopLa+E93ptTwAAIABJREFUEEJ4R761kPVlm/i65HuCNP6Y/taN6teqHc06/oBu8P5jEBsGKhVcOwZmXg0ajee2/mpfzvDtzwX+Z9WJPxz/X6J1EVTbzXxUtNpjv/Vlm5qVY2dlz8z2iNm2/Y6jsMgL2QjR+mRaRBdTZqtgRsYCNlT8Cri6Fqwr3cT7vV4kspmrFPc1eS5SOCnkoiYN5WuqI8WwbS/kltVQFVjAKs3/SK9NZ378Pawu/QHbXyM19EodZ/kN5t3CT937/ifyKpbkLuOxhLsJVDesr3NzrCz8nFJ7uft1oa2Ez4vX0tPYPhdpHOj5RQbn9AeTvu1zaSqlyYTP/LnozhtBzRer0Z49DO2Fo1GFtdwK3UIIIURDZVpyuHX/g+4CQqDaj3tipvFw5nPubXoamndfoNXAhLNgaG+otkBUiCt2IsGaQBYm3sc1VbspspWQrI+nz1+jGXRKLQNMvdhRva/OPr2NnmtWCVDFeXZOUw/sjzIk2AvZCNH6pLjQxRyyHHYXFtwx62H2mw81u7jQ39STZ5Me4JHM5ymzVTA5dBzXhF6CUnHqATLVdgt2p61ZrY7yS+CmJ+HTDQA6FIqBLJg1jzdC/80LuW+zOOkR9lsy0Cg0nO0/BA1q7o2+EavTil6p45OiNewy7+e68H8yxLdfk/NoCKfTWe8ohd3m5o8iaS0jB8KIAbD+N9fr2DC4+VLXtyAdiTomGvV112C47hpvpyKEEKKL21TxW52RCSW2cn4q38ogU29+rdrBSP8zOMPXs1tUU4Q14ruecG0w4drhHnGVQsXUsMv5quR7iv7qFtbDkMzZ/kNaJMfORj2gH6aH51D18OPuNRd8X3wWZWDAqXcWogOS4kIXo1GoUaDASd2J8hpl8/8pGFUGJoZcyFl+Q7A6rERpw095XKujlg3lW3km5zVKbeX8J+IqxgSeQ5Cm8b90f08/WlhwcTrhqRfjmPrIlSyzvMzqku95PmWu+/3fKnfy5GFX//dwTQjXhF3CP5znkG8tpMBaRKi29arKCoWCSSEXehR6xged32rnbK6ECHhvLuw8BNZa6BHvKjAIIYQQomn2WTI8YunmQzyb+AAOhYNuhkSC2mA0ZWP0NnXjs17/Y4/5IBqFmh7GJCK0ckNQH6WfH6YZd6KbMA5HaSnqxARUcbHeTkuIViPFhS4mUR/LNaGXsKzgQ3fsHL/T6aZPaLFzNGYExLaqHVyz9y53sePejMcBuCpsfKPPW1zuGcsvAT+76wNvdODZdd5L1MUy1HcgWyv/5JbIa5if9QI1TisAI/xO5+nE+4nQeV6L2W5Br9Q1u8XmSP+h3Bt9I4tz30KJkjuj/sVwv3a2erDTCaWHwGkH/zhCAzWMkMWghRBCiBYxxMdzpOT4oFEM9u3b4q28W1KcPpo4/bEh/yW15ewy76OotpQEfTSphmS0ypPMvehCFHo9mv59vZ2GEG1CigtdjF6l467oGxjudxqbK3+nn7EHQ/0GNWmkQEv4vuwXj1EUr+a9R29jCv19ejXqWKlxriH69uMaYJx3uoWd6h+5K/QGhvoNqrO9v8aXJxNnsbXiT148stxdWABYX76Z7dW76xQXDlqy+KDwa74u/YGz/QYzOfRiuhkSGpXj8UK1QUyPuo5/hoxFgYIobVj7upGoLoKtS2Htw+CohdNvgeH3gH8H6j0phBBCtGODffoxI/pGFuW8QY3TyrjA85gcOq593Q+cQpmtgsezl7C84BMAFCh4KeUxxgWd5+XMhBBtTYoLXVCYNpiLg8/n4uC2GYJfYa9kb3UGpfZy4nXRpBiOtX/0r2eNBV+VD8/lvMVD8XcQp4tq8Hn6JsHH8+G2Z+HQERg/3Mn90xwERd5CrC4SlcJzcYBEfSxahZaZGQs93iuqLXH/vcxWwcyMJ/ipfAsAO6r38m3pBlb2eJ4wbUiDc/w7hUJBjK5tW0o22KEfYPXMY683LoLAJBh6h/dyEkIIITqRQI0ft0Vdy/jgUdQ6bMTqIjCoDN5Oq1F2Vae7CwsATpzcl/EEA029iG6v9zhCiFYhrShFqyqtLWdh1suM3/Vvrt17N2N2XMeG8q3u98/yHYKf6liBQYmSi4JG8k3pj2TV5DbqXCoVjD0TNr4Ie1fA8gcUDEo0kqCPqbewcFSoJohx9ax1kHxcESTDku0uLBy1z5JBuuVQo3LsUPZ+4Rnb9gbUdqDek0IIIUQ7p1KoSNTH0t2Y2OEKCwBFtlKPWImtjAp7lReyEUJ4k4xcEK1qR/VeXs9f5X5tdliYeXAhH/V6hWBNAL1MKbzV7Sm+LF2HxVFDtDaCt/M/womzye0gwwIbtyKyVqnhjqiplNnK+absR/xVvsyNm05f47HWmicqTqgVnfhHKLSeaSmRA0Cla/tchBBCCNEuJepjUCtU7nbfAANMPYmURR6F6HI68ZORaA/ya4s8YgdqsiizlRP81zoPA3x6sdO8j/87/CrFf1W/Z8fcQrI+rs3yTDbE8ULKI+RY8zAo9R7D+JL0sUwMvpC0omPf5p/lO5iUZqy50O51GwM/PwclB12v9QFwxq2g7GC9J4UQQgjRKFZHLQctWVgcNcTrowlQ+51w21RDEktTFjAjYyF5tYWcZurDgsQZ+Kt92zBjIUR7IMUF0ari9J5rJgzx6Ueo5libR41SzaSQi+hrSuVwTR5R2nB6GJPRKbVtmSpGleGExQKjysDMmJs4238IG8q3cppPX872H9Lu2kO1qNAecP13kLcd7LUQ3hdCuns7KyGEEKLLqXXY2G85RH5tEVHaMBL1sfWOqiyzVVBhryJYHYBBpW/SuYprS3nlyLu8kPs2duwMMvXmmaQH6qyZdTyVQsWowLP4wpRKhb2KcE0wflJYEKJLkuKCaFW9Dd14IuE+Hsp8FrPDQjd9AvPi78ZXbaqznUGlZ5BPHwb59PFSpqcWqQvlct0YLg8Z4+1U2k5gguuPEEIIIbyi1mHjw6LV3JsxH5vTjk6h5fnkh7gw8Nw6XSV+qdjOg4eeZqc5nVH+w5kR8x9SjUmNOldhbTE/lm3l+dw33bFfq3bwypF3mBd/DxrliR8dIrShRNDwduRCiM5HiguiVelVeq4KHc8wv0FU2CuJ1ka6p0MIIYQQQoiTO2DJdBcWAGqcVv574DF69elGoj4WgP3mTK7ecydVDteiy1+Vfs+R2kKWpz5z0ikNx6uwV/Hs4dehni6Y35T+yL0xNxKqDGqZixJCdEpSXBCtTqFQuD/8hBBCCCFEw+XXFtZZLBGg2mGmxFZOTvlW1pVtIlEX7S4sHPVb1U6ya440uLiQbj7Em/kfcFf0DR7vDfbpi5/SVM9eQghxjLSiFOIksi1HeD0vjX/uuoWns5eSbs7wdkpCCNFohYWFDBkyhE2bNnk7FSFEI0Vow9Ap6q5DFa4JIbsml0m7b+OF3GXk1bOAtl6pw9SI1pZV9iocOMisyeEcv9Pd8VBNENOjrkfXRbpFWasc5O2ykrfTSk2l/dQ7CCHcZOSC6NAcTgfZ1iM4nE5idOEt2hrSbDezIPtFPixeDcDGim18UryGd3s8R4RW5hSK9qfSXk25rYIgdQD6LnITKBrmiSeeIDZWRpAJ0REl6WN5Pnku/z3wKNUOM34qH15KfowZGQvc22yv2s35/sP4tmyDOzYn9lbiddENPk+iPo4wTTArCz9nTOAI7o6ehlah4R+B59CtM3fHOk55ro31T5Wy5yszAEkj9Jw3K5CAGHlkEqIh5CdFdFhFtaUsL/iIRTlv4HA6uCF8EtMirmixB/8My2F3YeGofZYM9pkPSnFBtDu/Ve5kXtZitlXtYqT/mdwTPY0exmRvpyXagY0bN2IymejeXbq9CNERqRQqLgwcSa8+KRTUlhChCcaoMlLlMLu3WV36A+ODRvFs4gPYsZOgi6GvMRWlouGDlKN14bzV/SkWZr/MT+VbUKPizuh/dZnCAsDBHy3uwgLAgfUW4k6vZvDUhk0tEaKrk2kRosPaWPErC7NfxuKoweqs5cUjy/mm9McWO75CoUBR36pG9caE8J7Mmhyu2XsXGyq2YXZY+LJkHbftn0txbam3UxNeZrVaWbJkCXfeeae3UxFCNMPR9atO9+1HnD6aEE0gN0dcVWebL0rW0s2QwOTQiznTbyAmtbHR5+lrSuWVlHms7buC55Ie7HJF6oM/Wjxi+9aYcTqcXshGiI5HRi6IDuur4vUesbTCL5gccvFJWyU1VLwumokhF7Ky8HN3rIchme6GxGYfW4iWdNCSRYmtrE5slzmdzJocgqQ7S5eRlpZGWlpandg555zDxIkT8fOTb92E6GzGB1+AXqnntbyVRGhDuS3yWvqZejT7uEaVAWMj1mroTGJO05H+rblOLGG4HoVSvlgSoiGkuCA6rJ7GFI9pC32NqagVqhY5vkGl597ofzPYpy+rS77ndN8BjAkcQbg2pEWOL0RLMSk9v53SKNQYlV3z5rCrmjhxIhMnTqwTmzx5Mg6Hg+XLl5OZmcn27dtZtGgR3bp181KWQoiWEqIJ5Kqw8UwIHoVaoUan1J56J3FSySP17PlaS+7vVgBCU9Wkjmn8CBAhuiopLogO64LAs3gz/wMOW48AEKj246rQ8SgULVddjtKFc3XYBK4Om9Bix6QyH6yV4BMJWnn4E83X3ZDApJALWVn4hTt2Z/QN0gJW8O6777r/ft9993HppZdKYUGITsakkofflhIYp+GS50MoOWDD4XQSnKTGFCyPS0I0lPy0iA6ruyGR93ssYac5HbvTQU9jssfDlMPp4KAlizJ7JTHaCMK0wV7KFnDYIX01fHYLlB6CHhPggschtPlDGEXX5qf2ZU7srYwLOp+cmjwS9DH0N/VokelBQgghRFdiClJhCmqZUbBCdDVy5yk6tFh9FLH6qHrfszhq+LBoNfcfegqLo4ZobQSvpMxjgE+vNs7yL3l/wPKLXUUGgF0fga0GJqeB1uSdnESnEaIJ4vyAYd5OQ7RjCxYsOPVGQgghhBBNJN0iRKe1p/oA9xycj8VRA8Bh6xHuPjCf4tqyU+zZSgr3HCssHLXvSyjP9k4+QgghhBBCCNFCZOSC6FQKa4vRKjT4qX3Jqsn1eH+3ZT8FtcUEafxb5fwVtir+rN5LVk0O4doQ+hhTCT66Wr8h0HMHUxhofVslFyGEEEKI9irfWkSVvZowbQimNupOYbHXsNdykDxrAVHaCLoZEtAqNW1ybiG6gjYtLthsNubMmUNmZiZ2u50ZM2YwePBgdu/ezdy5cwFITU3l4Ycfbsu0RCeQZy3kw6KvWZq3kkBVADNj/0O0NtxjuyhtOIHq1nmYtzvtrCj4mEeynnfHrgmdwJzY2/FTmyCiP6ReDHs+db2pUMC4JeBX/7QOIYQQQoiOxuqoJbMmB4A4XZTHw7vdaWdd2Sbuy1hIjjWfkf5n8lDcHc1q9b3PnMFXJevZXrWbsYEjOdtvCKHaoDrb1DisvJ3/EQ9lPQuAEiXPJN3PZcH/QKlof4O5y3PSKdz7C7XVFQQlDyA4ZRBKlXwvLNq3Nv0X+vHHH2MwGHjnnXfYt28fs2bNYtWqVcybN4/Zs2fTr18/7r77btavX8+IESPaMjXRwX1UtJpHsxYDkEM+U/feQ1qPxUyPuo5FOW8AoFfqeDpxDmGt1EryoCWbBdkv1Ym9XfAxk0LGcZpvH/AJhwmvQO5vYC6E4O4QMaDZ57XX1mKtKkFrCkSlkeq7EEIIIbzjiLWAxTnLeCv/AwAejL2dAT690Co1JOpi8FX7sLt6P9fvnYEd11TRdWU/YztkY2m3hfg0ofNFVk0u1+y5i2yra8TqFyXruCNyKvfE/BvVce3J080ZPJz1nPu1AwczMxYyyNSbJENccy67xZUd3ss3c0ZTmXcIAIVSxQWPfUXUwFFezkyIk2vT4sL48eMZN24cAEFBQZSWlmK1Wjl8+DD9+vUD4Nxzz2Xjxo1SXBANVlxbymt5aXViTpxsq9rJbZHXMjrgHEpspcTpokjSt96HR5W9Gquz1iNebq849sI3AnzHtNg5SzJ2sOPDp8j5dTVRAy6g9+V3E5jQp8WOL4QQQgjRUGvLNvJ6vuuebGrYZawv3+QeKTDKfxiPxt/FAUuWu7Bw1I/lW8i15tPNkNDoc+6u3u8uLBz10pEVTAodR6I+xh0rtJXgwFFnO4ujhmJbKUm0n+KC3WrlyO9r0QeEk3Tu1dhrrRz6cRXb3rqf0NQz0BhlOq1ov9q0uKA57lvVN998k3HjxlFSUoKfn587HhwcTEFBQVumJTo4rVJLqCaIbOuROnF/lR9GlYEBPj3bJI8YXSTd9YnstRx0x/xUPh7tMVuKuSSPdfMnUpa1C4D0NW+Qv3sDYxauxxgU0SrnFEIIIYQ4kU+KvgXAR2nEpDLyXdlG93tryjYwrOQ0ehm7eewXog5s0qgFwKNgcCzmrBOL0UagV+rcC30DBKsDiaxnGq23OGy1HFi/AqVGjyk0jj9WLkClM5J64X+oLjyMzWqW4oJo11ptglFaWhqTJk2q8+eHH34AYPny5ezYsYNbb73VYz+n0+kRE+JkfFRG7o25EeVx/5zDNMGc4duvTfMI1gTwQsojjPQ7AwUK+ht7sKz70yQcVzVvjrLaCnZU7eWgJQuH00F5Trq7sHBUefZeynP2tcj5hBBCCCEa4zQf1+jJJEMcu6rTPd7/smQ9PQzJXBR4njumQMH8hHuJ1IY16Zw9DMmEauqur3Bd2D+J0UbWiSXp43glZT5BatdC25GaUF5OmUe0zjvFBUt5EYXbN3Dwm7c5sGYZ2Vu/ovjgdn5b/jBlWTs59OMqnA4HNnMlO95/iqhBozEENO2/kRBtpdVGLkycOJGJEyd6xNPS0vjuu+944YUX0Gg07ukRR+Xl5REWJj84onGG+Z7GRz1f5reqHfiqfBjk04cUQ3yb59HTmMIr3R6n2FaKn8oH/xZaPHKv+SB3H5jHr1U70Ct0zIq9mYs19S98pNY2fsXlXGs+pbYKwjUhrdZJQwghhBAdn81pI9dagBoVkbq69+zjg0eRVvglmZYczgwdwNqyn+u8P8L/DEK1QcxPuIerQ8dTbCsjSR9LT2NKk/OJ10fzTuoi0gq/4NfKHfwzZCyjAoajUdZ9zFEoFJwfMIyver9Osa2UUE0wEdrQJp+3ORy1tZQf2EnurvU47TbMpXnk79xAj3G30P0fN5C+5k2PfUozd3ohUyEap02nRWRlZfHuu+/y9ttvo9PpANdUiaSkJLZs2cLgwYNZvXo1U6ZMacu0RCegUao5zbePa+FELzOpDC3aUqnGXsNT2a/ya9UOACzOGh7KfJYzUl6i25hp7PvqVfe2yaOm4heT2uBj25121pb+zD0Z8ymoLaaHPplnkufQz9Q2U0mEEEII0XEcrsnj1bz3eCNvFUalgVmxNzMheBS+Kh8AuhsSeb/nC+yp3o9eqWdrxZ9srfoTgD7G7owPci1IGKIJZETAGS2WV09jCg/G3YHD6Thl54doXQTROu9OHy3e9QvrnrqK6sJsAPzjehJ35gQsxXkYwuPxi+5GRU7dkR/+sT28kaoQjdKmxYW0tDRKS0u58cYb3bGlS5cye/ZsHnzwQRwOB/3792fYsGFtmZYQ7VqhrYRvSn/0iP9hO8Ql1z5KzJALKTm4ncDEfoT2OBNtI+bi7TNnMC39PmqdNgB2W/Zza/pcPur1EsGawBa7BiGEEEJ0fB8VreaVI+8AYLXXMjNjIdHacM4NGOreJkYXQcxfD++vG58k3ZKBw+kkxRDvMX2hpbXHlpJ/53Q62f/DO+7CAkBZ5i4cg8dSVVZESM8ziBk8lvwdP1FbXQ5AYEJfIvqO9FLGQjRcmxYX7rrrLu666y6PeEpKCitWrGjLVIToMPxUvvQ2dnOPXDgqTBOMMTCC+GGXEj/s0iYdO7Mmx11YOOpATSY51nwpLgghhBDCrdxWyXuFn3nEN1Zsq1NcOF6wJoBgTfPbbncmDlst+Xt/9ohX5O4n8ezJBCb2wy+6B0HJA6kqyEZj9CUosR+m0NZZIFyIltSmxQUhROP5qk08FHcHV++5k0pHNQAXB51PP1Pzh8cF/7Wo0fH8VD74q3zBUg41ZWAKA7Wu2ecSQgghRMelU2pJ0cez35JZJx6ni/JSRh1L+eF9lGT8gUpvImH4RIr2bqnzfnifEfgn9sEY5FqI0jei7dcOE6K5pLggRHvndDKYCL7s+QoHrLn4qHxINSQS2AILL6Yak7g54mpePLIcACVKFiTMIK4oBz6/A478BqkXw7kPQVivZp9PCCGEEB2TTqnltqhr+b78F8wOCwCJuliG+Q7ycmbtX9H+bayeNYqaimIA+k2+n8SRV3Jw/bsoFEp6XHgzccMvwzdcCgqiY5PighDtWWkmbF0KW14myT+OpAseh8ShoFS1yOF9VCamR1/HPwLPIb+2iHhdNN2tKnh9INRUuDb6cyWUZcKUL8HgOdJBCCGEEF3DIJ8+fNZrKXvM+9EqtPQ2diNOLyMXTsbpcLD785fchQWA7e8+xtkz3qbfFXNQqJT4RqSg0mi8mKUQLUOKC0K0Vw4HbH4Bfljoel2ZB2+NgRs3QvTgFjuNr8qHIb79jgWyPztWWDgq62coOQiGgS12XiGEEEJ0PD2MSfQwJnk7jQ7DYbNSnL7VI57727ckn3u1FzISovW0/yVVheiqKnJg05K6MYcN8v5o3fPq/Dxjaj1oTa17XiGEEEKITkal1ZNy/lSPeOzpF3khGyFalxQXhGhHnE4n+8wH+bb0J7ZRQFXqWM+NtA1vNdkkYX2gz8S6sVHzICildc8rhBBCCNGBFNeW8nP5NtaV/kyWJfeE28UNv5SeE6ajUKlR6QwMum4+4X1GtGGmQrQNmRYhRDvyfdlm/rVvJhZnDQC3DZnEbZYSfPetcW0Q3A2iT2vdJIxBcOFzMOBaKM+BkO4QdRoopRYphBBCCAFwuCaPmRkLWFvmaisZqgni7e7P0MfU3WNbU0gMQ6Y9Sc/xt6FQqvAJT0ChULR1ykK0OikuCNFO5FkLufvgPHdhAWBxwUpGjX2CISkXgSkUYs+EwMTWT8Y3AlLHtf55hBCt6oMPPmDRokXExcUBMGzYMG6++WYvZyWEEB3flsrt7sICQEFtMS/kLuPZpAfRKj0XZ1SqNfhFyShQ0blJcUGIdqLUVk5ubYFHPE9ZC8P+64WMhBCdwYUXXsjMmTO9nYYQQnQq+8wZHrFfKv+g0l5FkFK6a4muScY5C9FOhGqC6aFP9ojH6aTFkxBCCCFEe9Lf1NMjNjZwBP7qVl4bS4h2TIoLQrQTQRp/nk6aQ5zWVUwwKg08k/gAqdLuSQjRDJs3b+aGG25g6tSp7Ny509vpCCFEpzDIpw+3RV6LChUAQ30GMjXsclQKlZczE8J7ZFqEEO1If5+efNL7f+TU5OGn9iVBFy0L/gghGiQtLY20tLQ6sYsuuojbb7+dkSNHsm3bNmbOnMmnn37qpQyFEKLzCNYEcE/0NC4PHkON00qCLhpftY+30xLCq6S4IEQ7E6oJIlQT5O00hBAdzMSJE5k4ceIJ3x84cCDFxcXY7XZUKvlmTQghmkuj1NDd2AYLbQvRQci0CCGEEKKT+t///sdnn30GwN69ewkKCpLCghBCCCFahYxcEEIIITqpiy++mHvvvZd3330Xm83GvHnzvJ2SEEIIITopKS4IIYQQnVRERATLli3zdhpCCCGE6AJkWoQQQgghhBBCCCGapUOMXLDb7QAcOXLEy5kIIYRoj45+Phz9vBANI5+vQgghTkY+X0VjdIjiQkFBAQBXX321lzMRQgjRnhUUFBAfH+/tNDoM+XwVQgjREPL5KhpC4XQ6nd5O4lQsFgt//vknoaGhssq1EEIID3a7nYKCAvr06YNer/d2Oh2GfL4KIYQ4Gfl8FY3RIYoLQgghhBBCCCGEaL9kQUchhBBCCCGEEEI0S6coLixdupQJEyZw+eWXs337dgB2797N5MmTmTx5Mg899JCXM2w9hYWFDBkyhE2bNgGd/7ptNhszZ87kyiuvZNKkSWzZsgXo/NcNMH/+fK644gomT57s/nfeWT3xxBNcccUVXH755axevZrc3FymTJnCVVddxfTp07Fard5OsVVYLBZGjRrFBx980GWu+ZNPPmH8+PFcdtllrFu3rstcd0eyefNmhg4dytq1a92xrvA796i8vDxuuOEGpkyZwtVXX82ff/7p7ZTaTH33V13F3++vOrsT3V91Zl3pvup4f7/HEqIldfjiwr59+/j88895//33eeSRR1i3bh0A8+bNY/bs2bz77rtUVlayfv167ybaSp544gliY2Pdrzv7dX/88ccYDAbeeecd5s2bx4IFC4DOf92bN2/m0KFDvPfee8ybN4958+Z5O6VW8/PPP7Nv3z7ee+89Xn31VebPn89zzz3HVVddxYoVK4iPj2fVqlXeTrNVvPjii/j7+wN0iWsuKSlhyZIlrFixgpdeeolvv/22S1x3R5KZmcnrr7/OoEGD6sQ7++/c473xxhtccMEFLFu2jLvvvptnnnnG2ym1iRPdX3UVf7+/6uxOdH/VWXWl+6rj1XePJURL6vDFhbVr1zJ27FjUajW9e/fmjjvuwGq1cvjwYfr16wfAueeey8aNG72cacvbuHEjJpOJ7t27A3SJ6x4/fjyzZs0CICgoiNLS0i5x3Rs3bmTUqFEAJCcnU1ZWRmVlpZezah1Dhgxh0aJFAPj5+WE2m9m0aRPnn38+0Dn//wLs37+f9PR0Ro4cCdAlrnnjxo0MHToUHx8fwsLCePTRR7vEdXckoaGhLF68GF9fX3esK/zOPV5gYCClpaUAlJeXExgY6OWM2kZ991ddxd/vr7qC+u6vOrOudF91vPrusaTFpGhJHb64cPjwYXJzc7nhhhuYOnUqu3fvpqSkBD8/P/c2wcHB7nZbnYXVamXJkiXceeeuY0I5AAAIZklEQVSd7lhXuG6NRoNOpwPgzTffZNy4cV3iugsLC+vc0AYFBXW6azxKpVJhNBoBWLVqFeeccw5msxmtVgt0zv+/AAsXLuS+++5zv+4K15ydnY3FYuGmm27iqquuYuPGjV3iujsSg8Hg0UWiK/zOPd51113HF198wZgxY7j//vuZPn26t1NqE/XdX3UF9d1fdQX13V91Zl3pvup49d1jSacg0ZLU3k6gMdLS0khLS6sTKyws5Oyzz+bVV19l69atzJkzhxdeeKHONh29IUZ9133OOecwceLEOjd4f9cZr/v222/n7LPPZvny5ezYsYOXXnqJ4uLiOtt09OtuiK5wjWvWrGHVqlW89tprjB492h3vjNf+0UcfMWDAgBMOwe2M13xUaWkpixcvJicnh2uvvbbOtXbm626PTvY792Q60/+nE33ejh07lptvvpm1a9eycOFCFi9e7KUM/7+9ewuJ6u3iOP7zNGVpB8PRDJIUycqozC7SyKCLSKik0MwKBEtDSL1KUbHTReWFlUQlqRBpqeV0gE5elGhQN0FJB6LM0rKxA1pKdnT+F/H66l8j31dzdPv9XM1sNg9rzYbnWaz97D1/R3/rq4qKCjtF+Hf8v/XVSNff+mo0MdI81h/dayxgMI2o5kJUVJSioqJ6HMvLy5Ofn58cHBwUEhKi169f99rO1dzcLLPZPNThDpq+8o6JiVFnZ6dKSkrU0NCg2tpa5ebmGj5v6deieOPGDR09elQuLi6Gu959MZvNev/+fdf3t2/fytPT044R/V01NTU6fvy4CgoK5O7urnHjxunLly8aO3asIa9vVVWVGhsbVVVVJavVKpPJZPicpV93vBcsWCBnZ2dNnz5d48ePl5OTk+HzHq5+N+f+m5Hn3L5+gy1btig1NVWSFBYWpt27d9sjtL+qv/WV0fS3vjp8+LACAgLsFOXg6299ZWSjra7q7t81FjCYRvxjEUuXLtWtW7ck/XpmeerUqXJxcZGfn1/Xm24rKyv/eOdlpCktLVV5ebnKy8u1bNky7dy5U4GBgYbPu7GxUaWlpTpy5EjX9r3RcL3DwsJ0/fp1SdLDhw9lNpvl5uZm56j+jra2NuXk5Cg/P1+TJk2SJIWGhnblb8Tre+jQIVVUVKi8vFxRUVFKSkoyfM6StGTJEt25c0ednZ1qaWnR58+fR0XeI91omHO78/X11f379yVJtbW18vX1tXNEQ6Ov+mo06Ku+MlJj4Xf6qq+MbDTVVd31VWMBg2lE7Vzoy/z581VdXa3169dLkrKzsyVJGRkZys7OVmdnp+bNm6fQ0FB7hjlkjJ732bNn1draqoSEhK5jhYWFhs87ODhYc+bMUUxMjBwcHAz9129XrlxRS0tL151CSdq/f7+ysrJUVlYmHx8fRUZG2jHCobF9+3alpaUZOmcvLy+tWLFC0dHRkqSsrCzNnTvX8HmPJFVVVSosLNTz58/18OFDnTp1SkVFRYafc7tLTExUZmamrl27JknKzMy0c0RD43f1FYzpd/XVf96BYzSjqa7qrq8a68CBA/Lx8bFjVDASB9toe8gIAAAAAAAMqhH/WAQAAAAAALAvmgsAAAAAAGBAaC4AAAAAAIABobkAAAAAAAAGhOYCAAAAAAAYEJoLgAF9/fpVaWlpWrt2rb1DAQDArq5fvz7oY7LOAkBvNBcAA8rJydGsWbPsHQYAAHb16tUrXb58edDHZZ0FgN4cbDabzd5BAJAsFotqamrU3t4uq9WquLg4eXt7Kzc3V05OToqIiFBcXJwuXbqk4uJiOTo6KiAgQHv37u01Vnt7u1pbW5WcnCyLxWKHbAAAsL+EhATV1tZq06ZNqqmpkclkkslk0sGDB3Xy5Em1tbWpvr5eDQ0NysjIUHh4uCorK1VUVCRnZ2cFBQUpPT2917isswDQm7O9AwDwX8+ePdP58+f16dMnrVmzRq6uriotLdXEiROVlJSkmJgYdXR0qKCgQBMmTNDGjRv15MkTzZw5s8c4bm5uam1ttVMWAAAMD/Hx8SopKVFra6s2bNigyMhI3b59W+/evZMkWa1WnThxQtXV1SotLVVISIiOHTumsrIymUwmpaSk6O7du1q4cGGPcVlnAaA3mgvAMLJo0SI5OzvLw8ND7u7ustls8vDwkCTl5+dLUlejQZLq6uoobgAA+IPly5dr165devHihSIiIuTv7y9JCg4OliR5e3urra1Nz549U1NTk+Lj4yVJbW1tampq6tVcAAD0RnMBGEY6Ozu7PttsNjk69nwtyrdv37Rnzx5dvHhRnp6eSkxMlCSdPn1aV69e1eTJk5WXlzekMQMAMNwtXrxY586d082bN5Wenq4dO3ZIkpyde5bCLi4uCgoKUmFhYY/jrLMA8Gc0F4Bh5N69e/r586c+fvyojo4OjRkzRs3NzTKbzdq2bZv2798vJycneXp66s2bN3rw4IG+f/+u2NhYxcbG2jt8AACGFUdHR/348UPFxcUKDw/X6tWrZbPZ9Pjx4z7PnzFjhurq6vThwwdNmTJFeXl5Wr9+PessAPQDzQVgGJk2bZpSUlL08uVLpaamysvLS8nJyZKklStXavLkyQoLC9O6desUGBioLVu2aN++fbpw4YJcXFy6xklOTpbValV9fb02b96s6OhorVq1yl5pAQBgF/7+/nr06JGamppksVjk7u4uk8mkffv26cyZM73Od3V1VUZGhrZu3SqTyaTZs2fLbDb3Oo91FgB6498igGHCYrHo6dOnSktLs3coAAAAAPA/cfzzKQAAAAAAAL/HzgUAAAAAADAg7FwAAAAAAAADQnMBAAAAAAAMCM0FAAAAAAAwIDQXAAAAAADAgNBcAAAAAAAAA0JzAQAAAAAADMg/GR9YZkfkNF8AAAAASUVORK5CYII=\n",
"text/plain": [
"