From d1144ec4fc07701932fa351f2eb6d36a623ea33a Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Fri, 24 Nov 2023 08:01:33 -0700 Subject: [PATCH 01/47] black formatting --- swarms/models/anthropic.py | 6 ++++-- swarms/models/dalle3.py | 18 ++++++------------ swarms/models/huggingface.py | 6 ++---- swarms/models/ssd_1b.py | 12 ++++-------- swarms/structs/flow.py | 10 ++++------ swarms/structs/sequential_workflow.py | 8 +++----- 6 files changed, 23 insertions(+), 37 deletions(-) diff --git a/swarms/models/anthropic.py b/swarms/models/anthropic.py index 1f47e1bf..1f0fe759 100644 --- a/swarms/models/anthropic.py +++ b/swarms/models/anthropic.py @@ -185,9 +185,11 @@ def build_extra_kwargs( if field_name in extra_kwargs: raise ValueError(f"Found {field_name} supplied twice.") if field_name not in all_required_field_names: - warnings.warn(f"""WARNING! {field_name} is not default parameter. + warnings.warn( + f"""WARNING! {field_name} is not default parameter. {field_name} was transferred to model_kwargs. - Please confirm that {field_name} is what you intended.""") + Please confirm that {field_name} is what you intended.""" + ) extra_kwargs[field_name] = values.pop(field_name) invalid_model_kwargs = all_required_field_names.intersection( diff --git a/swarms/models/dalle3.py b/swarms/models/dalle3.py index 3c130670..419cb060 100644 --- a/swarms/models/dalle3.py +++ b/swarms/models/dalle3.py @@ -168,10 +168,8 @@ class Dalle3: # Handling exceptions and printing the errors details print( colored( - ( - f"Error running Dalle3: {error} try optimizing your api" - " key and or try again" - ), + f"Error running Dalle3: {error} try optimizing your api" + " key and or try again", "red", ) ) @@ -233,10 +231,8 @@ class Dalle3: except (Exception, openai.OpenAIError) as error: print( colored( - ( - f"Error running Dalle3: {error} try optimizing your api" - " key and or try again" - ), + f"Error running Dalle3: {error} try optimizing your api" + " key and or try again", "red", ) ) @@ -310,10 +306,8 @@ class Dalle3: except Exception as error: print( colored( - ( - f"Error running Dalle3: {error} try optimizing" - " your api key and or try again" - ), + f"Error running Dalle3: {error} try optimizing" + " your api key and or try again", "red", ) ) diff --git a/swarms/models/huggingface.py b/swarms/models/huggingface.py index 1db435f5..f3f7d45f 100644 --- a/swarms/models/huggingface.py +++ b/swarms/models/huggingface.py @@ -291,10 +291,8 @@ class HuggingfaceLLM: except Exception as e: print( colored( - ( - "HuggingfaceLLM could not generate text because of" - f" error: {e}, try optimizing your arguments" - ), + "HuggingfaceLLM could not generate text because of" + f" error: {e}, try optimizing your arguments", "red", ) ) diff --git a/swarms/models/ssd_1b.py b/swarms/models/ssd_1b.py index 406678ef..aaa3f17e 100644 --- a/swarms/models/ssd_1b.py +++ b/swarms/models/ssd_1b.py @@ -140,10 +140,8 @@ class SSD1B: # Handling exceptions and printing the errors details print( colored( - ( - f"Error running SSD1B: {error} try optimizing your api" - " key and or try again" - ), + f"Error running SSD1B: {error} try optimizing your api" + " key and or try again", "red", ) ) @@ -228,10 +226,8 @@ class SSD1B: except Exception as error: print( colored( - ( - f"Error running SSD1B: {error} try optimizing" - " your api key and or try again" - ), + f"Error running SSD1B: {error} try optimizing" + " your api key and or try again", "red", ) ) diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index 18a141a3..99a3e587 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -137,7 +137,7 @@ class Flow: """ Flow is the structure that provides autonomy to any llm in a reliable and effective fashion. The flow structure is designed to be used with any llm and provides the following features: - + Features: * Interactive, AI generates, then user input * Message history and performance history fed -> into context -> truncate if too long @@ -489,10 +489,8 @@ class Flow: except Exception as error: print( colored( - ( - "Error activating autonomous agent. Try optimizing your" - " parameters..." - ), + "Error activating autonomous agent. Try optimizing your" + " parameters...", "red", ) ) @@ -652,7 +650,7 @@ class Flow: while attempt < self.retry_attempts: try: response = self.llm( - task**kwargs, + task ** kwargs, ) if self.interactive: print(f"AI: {response}") diff --git a/swarms/structs/sequential_workflow.py b/swarms/structs/sequential_workflow.py index 753ada15..85990854 100644 --- a/swarms/structs/sequential_workflow.py +++ b/swarms/structs/sequential_workflow.py @@ -385,11 +385,9 @@ class SequentialWorkflow: except Exception as e: print( colored( - ( - f"Error initializing the Sequential workflow: {e} try" - " optimizing your inputs like the flow class and task" - " description" - ), + f"Error initializing the Sequential workflow: {e} try" + " optimizing your inputs like the flow class and task" + " description", "red", attrs=["bold", "underline"], ) From a2296856f8137814289f58b1ac34342cda0f9cf4 Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Fri, 24 Nov 2023 08:21:16 -0700 Subject: [PATCH 02/47] renamed tests to allow for pytest autodiscovery --- tests/agents/{idea_to_image.py => test_idea_to_image.py} | 0 tests/agents/{omni_modal.py => test_omni_modal.py} | 0 tests/embeddings/{pegasus.py => test_pegasus.py} | 0 tests/memory/{main.py => test_main.py} | 0 tests/memory/{oceandb.py => test_oceandb.py} | 0 tests/memory/{pg.py => test_pg.py} | 0 tests/memory/{pinecone.py => test_pinecone.py} | 0 tests/models/{LLM.py => test_LLM.py} | 0 tests/models/{ada.py => test_ada.py} | 0 tests/models/{anthropic.py => test_anthropic.py} | 0 tests/models/{auto_temp.py => test_auto_temp.py} | 0 tests/models/{bingchat.py => test_bingchat.py} | 0 tests/models/{bioclip.py => test_bioclip.py} | 0 tests/models/{biogpt.py => test_biogpt.py} | 0 tests/models/{cohere.py => test_cohere.py} | 0 tests/models/{dalle3.py => test_dalle3.py} | 0 tests/models/{distill_whisper.py => test_distill_whisper.py} | 0 .../models/{distilled_whisperx.py => test_distilled_whisperx.py} | 0 tests/models/{elevenlab.py => test_elevenlab.py} | 0 tests/models/{fuyu.py => test_fuyu.py} | 0 tests/models/{gpt4v.py => test_gpt4v.py} | 0 tests/models/{hf.py => test_hf.py} | 0 tests/models/{huggingface.py => test_huggingface.py} | 0 tests/models/{idefics.py => test_idefics.py} | 0 tests/models/{jina_embeds.py => test_jina_embeds.py} | 0 tests/models/{kosmos.py => test_kosmos.py} | 0 tests/models/{kosmos2.py => test_kosmos2.py} | 0 .../{llama_function_caller.py => test_llama_function_caller.py} | 0 tests/models/{mistral.py => test_mistral.py} | 0 tests/models/{mpt7b.py => test_mpt7b.py} | 0 tests/models/{nougat.py => test_nougat.py} | 0 tests/models/{revgptv1.py => test_revgptv1.py} | 0 tests/models/{revgptv4.py => test_revgptv4.py} | 0 tests/models/{speech_t5.py => test_speech_t5.py} | 0 tests/models/{ssd_1b.py => test_ssd_1b.py} | 0 tests/models/{timm_model.py => test_timm_model.py} | 0 tests/models/{vilt.py => test_vilt.py} | 0 tests/models/{whisperx.py => test_whisperx.py} | 0 tests/models/{yi_200k.py => test_yi_200k.py} | 0 tests/structs/{flow.py => test_flow.py} | 0 .../structs/{nonlinear_workflow.py => test_nonlinear_workflow.py} | 0 .../{sequential_workflow.py => test_sequential_workflow.py} | 0 tests/structs/{workflow.py => test_workflow.py} | 0 tests/swarms/{autoscaler.py => test_autoscaler.py} | 0 .../swarms/{dialogue_simulator.py => test_dialogue_simulator.py} | 0 tests/swarms/{godmode.py => test_godmode.py} | 0 tests/swarms/{groupchat.py => test_groupchat.py} | 0 .../swarms/{multi_agent_collab.py => test_multi_agent_collab.py} | 0 .../swarms/{multi_agent_debate.py => test_multi_agent_debate.py} | 0 tests/swarms/{orchestrate.py => test_orchestrate.py} | 0 tests/swarms/{simple_swarm.py => test_simple_swarm.py} | 0 tests/tools/{base.py => test_base.py} | 0 ...ss_code_interpreter.py => test_subprocess_code_interpreter.py} | 0 53 files changed, 0 insertions(+), 0 deletions(-) rename tests/agents/{idea_to_image.py => test_idea_to_image.py} (100%) rename tests/agents/{omni_modal.py => test_omni_modal.py} (100%) rename tests/embeddings/{pegasus.py => test_pegasus.py} (100%) rename tests/memory/{main.py => test_main.py} (100%) rename tests/memory/{oceandb.py => test_oceandb.py} (100%) rename tests/memory/{pg.py => test_pg.py} (100%) rename tests/memory/{pinecone.py => test_pinecone.py} (100%) rename tests/models/{LLM.py => test_LLM.py} (100%) rename tests/models/{ada.py => test_ada.py} (100%) rename tests/models/{anthropic.py => test_anthropic.py} (100%) rename tests/models/{auto_temp.py => test_auto_temp.py} (100%) rename tests/models/{bingchat.py => test_bingchat.py} (100%) rename tests/models/{bioclip.py => test_bioclip.py} (100%) rename tests/models/{biogpt.py => test_biogpt.py} (100%) rename tests/models/{cohere.py => test_cohere.py} (100%) rename tests/models/{dalle3.py => test_dalle3.py} (100%) rename tests/models/{distill_whisper.py => test_distill_whisper.py} (100%) rename tests/models/{distilled_whisperx.py => test_distilled_whisperx.py} (100%) rename tests/models/{elevenlab.py => test_elevenlab.py} (100%) rename tests/models/{fuyu.py => test_fuyu.py} (100%) rename tests/models/{gpt4v.py => test_gpt4v.py} (100%) rename tests/models/{hf.py => test_hf.py} (100%) rename tests/models/{huggingface.py => test_huggingface.py} (100%) rename tests/models/{idefics.py => test_idefics.py} (100%) rename tests/models/{jina_embeds.py => test_jina_embeds.py} (100%) rename tests/models/{kosmos.py => test_kosmos.py} (100%) rename tests/models/{kosmos2.py => test_kosmos2.py} (100%) rename tests/models/{llama_function_caller.py => test_llama_function_caller.py} (100%) rename tests/models/{mistral.py => test_mistral.py} (100%) rename tests/models/{mpt7b.py => test_mpt7b.py} (100%) rename tests/models/{nougat.py => test_nougat.py} (100%) rename tests/models/{revgptv1.py => test_revgptv1.py} (100%) rename tests/models/{revgptv4.py => test_revgptv4.py} (100%) rename tests/models/{speech_t5.py => test_speech_t5.py} (100%) rename tests/models/{ssd_1b.py => test_ssd_1b.py} (100%) rename tests/models/{timm_model.py => test_timm_model.py} (100%) rename tests/models/{vilt.py => test_vilt.py} (100%) rename tests/models/{whisperx.py => test_whisperx.py} (100%) rename tests/models/{yi_200k.py => test_yi_200k.py} (100%) rename tests/structs/{flow.py => test_flow.py} (100%) rename tests/structs/{nonlinear_workflow.py => test_nonlinear_workflow.py} (100%) rename tests/structs/{sequential_workflow.py => test_sequential_workflow.py} (100%) rename tests/structs/{workflow.py => test_workflow.py} (100%) rename tests/swarms/{autoscaler.py => test_autoscaler.py} (100%) rename tests/swarms/{dialogue_simulator.py => test_dialogue_simulator.py} (100%) rename tests/swarms/{godmode.py => test_godmode.py} (100%) rename tests/swarms/{groupchat.py => test_groupchat.py} (100%) rename tests/swarms/{multi_agent_collab.py => test_multi_agent_collab.py} (100%) rename tests/swarms/{multi_agent_debate.py => test_multi_agent_debate.py} (100%) rename tests/swarms/{orchestrate.py => test_orchestrate.py} (100%) rename tests/swarms/{simple_swarm.py => test_simple_swarm.py} (100%) rename tests/tools/{base.py => test_base.py} (100%) rename tests/utils/{subprocess_code_interpreter.py => test_subprocess_code_interpreter.py} (100%) diff --git a/tests/agents/idea_to_image.py b/tests/agents/test_idea_to_image.py similarity index 100% rename from tests/agents/idea_to_image.py rename to tests/agents/test_idea_to_image.py diff --git a/tests/agents/omni_modal.py b/tests/agents/test_omni_modal.py similarity index 100% rename from tests/agents/omni_modal.py rename to tests/agents/test_omni_modal.py diff --git a/tests/embeddings/pegasus.py b/tests/embeddings/test_pegasus.py similarity index 100% rename from tests/embeddings/pegasus.py rename to tests/embeddings/test_pegasus.py diff --git a/tests/memory/main.py b/tests/memory/test_main.py similarity index 100% rename from tests/memory/main.py rename to tests/memory/test_main.py diff --git a/tests/memory/oceandb.py b/tests/memory/test_oceandb.py similarity index 100% rename from tests/memory/oceandb.py rename to tests/memory/test_oceandb.py diff --git a/tests/memory/pg.py b/tests/memory/test_pg.py similarity index 100% rename from tests/memory/pg.py rename to tests/memory/test_pg.py diff --git a/tests/memory/pinecone.py b/tests/memory/test_pinecone.py similarity index 100% rename from tests/memory/pinecone.py rename to tests/memory/test_pinecone.py diff --git a/tests/models/LLM.py b/tests/models/test_LLM.py similarity index 100% rename from tests/models/LLM.py rename to tests/models/test_LLM.py diff --git a/tests/models/ada.py b/tests/models/test_ada.py similarity index 100% rename from tests/models/ada.py rename to tests/models/test_ada.py diff --git a/tests/models/anthropic.py b/tests/models/test_anthropic.py similarity index 100% rename from tests/models/anthropic.py rename to tests/models/test_anthropic.py diff --git a/tests/models/auto_temp.py b/tests/models/test_auto_temp.py similarity index 100% rename from tests/models/auto_temp.py rename to tests/models/test_auto_temp.py diff --git a/tests/models/bingchat.py b/tests/models/test_bingchat.py similarity index 100% rename from tests/models/bingchat.py rename to tests/models/test_bingchat.py diff --git a/tests/models/bioclip.py b/tests/models/test_bioclip.py similarity index 100% rename from tests/models/bioclip.py rename to tests/models/test_bioclip.py diff --git a/tests/models/biogpt.py b/tests/models/test_biogpt.py similarity index 100% rename from tests/models/biogpt.py rename to tests/models/test_biogpt.py diff --git a/tests/models/cohere.py b/tests/models/test_cohere.py similarity index 100% rename from tests/models/cohere.py rename to tests/models/test_cohere.py diff --git a/tests/models/dalle3.py b/tests/models/test_dalle3.py similarity index 100% rename from tests/models/dalle3.py rename to tests/models/test_dalle3.py diff --git a/tests/models/distill_whisper.py b/tests/models/test_distill_whisper.py similarity index 100% rename from tests/models/distill_whisper.py rename to tests/models/test_distill_whisper.py diff --git a/tests/models/distilled_whisperx.py b/tests/models/test_distilled_whisperx.py similarity index 100% rename from tests/models/distilled_whisperx.py rename to tests/models/test_distilled_whisperx.py diff --git a/tests/models/elevenlab.py b/tests/models/test_elevenlab.py similarity index 100% rename from tests/models/elevenlab.py rename to tests/models/test_elevenlab.py diff --git a/tests/models/fuyu.py b/tests/models/test_fuyu.py similarity index 100% rename from tests/models/fuyu.py rename to tests/models/test_fuyu.py diff --git a/tests/models/gpt4v.py b/tests/models/test_gpt4v.py similarity index 100% rename from tests/models/gpt4v.py rename to tests/models/test_gpt4v.py diff --git a/tests/models/hf.py b/tests/models/test_hf.py similarity index 100% rename from tests/models/hf.py rename to tests/models/test_hf.py diff --git a/tests/models/huggingface.py b/tests/models/test_huggingface.py similarity index 100% rename from tests/models/huggingface.py rename to tests/models/test_huggingface.py diff --git a/tests/models/idefics.py b/tests/models/test_idefics.py similarity index 100% rename from tests/models/idefics.py rename to tests/models/test_idefics.py diff --git a/tests/models/jina_embeds.py b/tests/models/test_jina_embeds.py similarity index 100% rename from tests/models/jina_embeds.py rename to tests/models/test_jina_embeds.py diff --git a/tests/models/kosmos.py b/tests/models/test_kosmos.py similarity index 100% rename from tests/models/kosmos.py rename to tests/models/test_kosmos.py diff --git a/tests/models/kosmos2.py b/tests/models/test_kosmos2.py similarity index 100% rename from tests/models/kosmos2.py rename to tests/models/test_kosmos2.py diff --git a/tests/models/llama_function_caller.py b/tests/models/test_llama_function_caller.py similarity index 100% rename from tests/models/llama_function_caller.py rename to tests/models/test_llama_function_caller.py diff --git a/tests/models/mistral.py b/tests/models/test_mistral.py similarity index 100% rename from tests/models/mistral.py rename to tests/models/test_mistral.py diff --git a/tests/models/mpt7b.py b/tests/models/test_mpt7b.py similarity index 100% rename from tests/models/mpt7b.py rename to tests/models/test_mpt7b.py diff --git a/tests/models/nougat.py b/tests/models/test_nougat.py similarity index 100% rename from tests/models/nougat.py rename to tests/models/test_nougat.py diff --git a/tests/models/revgptv1.py b/tests/models/test_revgptv1.py similarity index 100% rename from tests/models/revgptv1.py rename to tests/models/test_revgptv1.py diff --git a/tests/models/revgptv4.py b/tests/models/test_revgptv4.py similarity index 100% rename from tests/models/revgptv4.py rename to tests/models/test_revgptv4.py diff --git a/tests/models/speech_t5.py b/tests/models/test_speech_t5.py similarity index 100% rename from tests/models/speech_t5.py rename to tests/models/test_speech_t5.py diff --git a/tests/models/ssd_1b.py b/tests/models/test_ssd_1b.py similarity index 100% rename from tests/models/ssd_1b.py rename to tests/models/test_ssd_1b.py diff --git a/tests/models/timm_model.py b/tests/models/test_timm_model.py similarity index 100% rename from tests/models/timm_model.py rename to tests/models/test_timm_model.py diff --git a/tests/models/vilt.py b/tests/models/test_vilt.py similarity index 100% rename from tests/models/vilt.py rename to tests/models/test_vilt.py diff --git a/tests/models/whisperx.py b/tests/models/test_whisperx.py similarity index 100% rename from tests/models/whisperx.py rename to tests/models/test_whisperx.py diff --git a/tests/models/yi_200k.py b/tests/models/test_yi_200k.py similarity index 100% rename from tests/models/yi_200k.py rename to tests/models/test_yi_200k.py diff --git a/tests/structs/flow.py b/tests/structs/test_flow.py similarity index 100% rename from tests/structs/flow.py rename to tests/structs/test_flow.py diff --git a/tests/structs/nonlinear_workflow.py b/tests/structs/test_nonlinear_workflow.py similarity index 100% rename from tests/structs/nonlinear_workflow.py rename to tests/structs/test_nonlinear_workflow.py diff --git a/tests/structs/sequential_workflow.py b/tests/structs/test_sequential_workflow.py similarity index 100% rename from tests/structs/sequential_workflow.py rename to tests/structs/test_sequential_workflow.py diff --git a/tests/structs/workflow.py b/tests/structs/test_workflow.py similarity index 100% rename from tests/structs/workflow.py rename to tests/structs/test_workflow.py diff --git a/tests/swarms/autoscaler.py b/tests/swarms/test_autoscaler.py similarity index 100% rename from tests/swarms/autoscaler.py rename to tests/swarms/test_autoscaler.py diff --git a/tests/swarms/dialogue_simulator.py b/tests/swarms/test_dialogue_simulator.py similarity index 100% rename from tests/swarms/dialogue_simulator.py rename to tests/swarms/test_dialogue_simulator.py diff --git a/tests/swarms/godmode.py b/tests/swarms/test_godmode.py similarity index 100% rename from tests/swarms/godmode.py rename to tests/swarms/test_godmode.py diff --git a/tests/swarms/groupchat.py b/tests/swarms/test_groupchat.py similarity index 100% rename from tests/swarms/groupchat.py rename to tests/swarms/test_groupchat.py diff --git a/tests/swarms/multi_agent_collab.py b/tests/swarms/test_multi_agent_collab.py similarity index 100% rename from tests/swarms/multi_agent_collab.py rename to tests/swarms/test_multi_agent_collab.py diff --git a/tests/swarms/multi_agent_debate.py b/tests/swarms/test_multi_agent_debate.py similarity index 100% rename from tests/swarms/multi_agent_debate.py rename to tests/swarms/test_multi_agent_debate.py diff --git a/tests/swarms/orchestrate.py b/tests/swarms/test_orchestrate.py similarity index 100% rename from tests/swarms/orchestrate.py rename to tests/swarms/test_orchestrate.py diff --git a/tests/swarms/simple_swarm.py b/tests/swarms/test_simple_swarm.py similarity index 100% rename from tests/swarms/simple_swarm.py rename to tests/swarms/test_simple_swarm.py diff --git a/tests/tools/base.py b/tests/tools/test_base.py similarity index 100% rename from tests/tools/base.py rename to tests/tools/test_base.py diff --git a/tests/utils/subprocess_code_interpreter.py b/tests/utils/test_subprocess_code_interpreter.py similarity index 100% rename from tests/utils/subprocess_code_interpreter.py rename to tests/utils/test_subprocess_code_interpreter.py From ed071e0058568e3f4e535362967490b481ebc425 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 11:33:10 -0800 Subject: [PATCH 03/47] positive med --- playground/demos/positive_med/positive_med.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playground/demos/positive_med/positive_med.py b/playground/demos/positive_med/positive_med.py index ea0c7c4e..0463a9bc 100644 --- a/playground/demos/positive_med/positive_med.py +++ b/playground/demos/positive_med/positive_med.py @@ -21,7 +21,7 @@ Distribution Agent: """ from termcolor import colored from swarms.models import OpenAIChat -from swarms.prompts.autoblogen import ( +from swarms.prompts.autobloggen DRAFT_AGENT_SYSTEM_PROMPT, REVIEW_PROMPT, SOCIAL_MEDIA_SYSTEM_PROMPT_AGENT, From 14570d1c5f95714494f815cbc5d144cad0a89fb5 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Fri, 24 Nov 2023 11:37:34 -0800 Subject: [PATCH 04/47] Update and rename blog_gen.py to blog_gen --- playground/demos/{blog_gen/blog_gen.py => autotemp/blog_gen} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename playground/demos/{blog_gen/blog_gen.py => autotemp/blog_gen} (99%) diff --git a/playground/demos/blog_gen/blog_gen.py b/playground/demos/autotemp/blog_gen similarity index 99% rename from playground/demos/blog_gen/blog_gen.py rename to playground/demos/autotemp/blog_gen index 84ab240d..85079f70 100644 --- a/playground/demos/blog_gen/blog_gen.py +++ b/playground/demos/autotemp/blog_gen @@ -1,7 +1,7 @@ import os from termcolor import colored from swarms.models import OpenAIChat -from swarms.models.autotemp import AutoTemp +from autotemp import AutoTemp from swarms.structs import SequentialWorkflow From cd82fa67bb81db3a94540fdb807f0d17714a7dfd Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Fri, 24 Nov 2023 11:37:56 -0800 Subject: [PATCH 05/47] Rename blog_gen to blog_gen.py --- playground/demos/autotemp/{blog_gen => blog_gen.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename playground/demos/autotemp/{blog_gen => blog_gen.py} (100%) diff --git a/playground/demos/autotemp/blog_gen b/playground/demos/autotemp/blog_gen.py similarity index 100% rename from playground/demos/autotemp/blog_gen rename to playground/demos/autotemp/blog_gen.py From 66b9ba090b42ac47266fbd39d6671344ae6e4243 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Fri, 24 Nov 2023 11:38:31 -0800 Subject: [PATCH 06/47] Update and rename blog_gen_example.py to blog_gen_example.py --- playground/demos/{blog_gen => autotemp}/blog_gen_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename playground/demos/{blog_gen => autotemp}/blog_gen_example.py (92%) diff --git a/playground/demos/blog_gen/blog_gen_example.py b/playground/demos/autotemp/blog_gen_example.py similarity index 92% rename from playground/demos/blog_gen/blog_gen_example.py rename to playground/demos/autotemp/blog_gen_example.py index 7cf95535..2c2f1e24 100644 --- a/playground/demos/blog_gen/blog_gen_example.py +++ b/playground/demos/autotemp/blog_gen_example.py @@ -1,5 +1,5 @@ import os -from swarms.swarms.blog_gen import BlogGen +from blog_gen import BlogGen def main(): From ad3e8e79f6754efc5cb3b024400bbf3d88301132 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Fri, 24 Nov 2023 11:38:59 -0800 Subject: [PATCH 07/47] Update autotemp_example.py --- playground/demos/autotemp/autotemp_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playground/demos/autotemp/autotemp_example.py b/playground/demos/autotemp/autotemp_example.py index 9047268d..c5f86416 100644 --- a/playground/demos/autotemp/autotemp_example.py +++ b/playground/demos/autotemp/autotemp_example.py @@ -1,5 +1,5 @@ from swarms.models import OpenAIChat -from swarms.models.autotemp import AutoTemp +from autotemp import AutoTemp # Your OpenAI API key api_key = "" From 29b6c9bb9bf8aecb06cfe23124c7468382b6d3e8 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 12:47:55 -0800 Subject: [PATCH 08/47] positive med --- playground/demos/positive_med/positive_med.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/playground/demos/positive_med/positive_med.py b/playground/demos/positive_med/positive_med.py index 0463a9bc..c0652a7d 100644 --- a/playground/demos/positive_med/positive_med.py +++ b/playground/demos/positive_med/positive_med.py @@ -15,13 +15,14 @@ Distribution Agent: - Social Media posts for the article. # TODO +- Make prompts better - Add shorter and better topic generator prompt - Optimize writer prompt to create longer and more enjoyeable blogs - Use Local Models like Storywriter """ from termcolor import colored from swarms.models import OpenAIChat -from swarms.prompts.autobloggen +from swarms.prompts.autobloggen import ( DRAFT_AGENT_SYSTEM_PROMPT, REVIEW_PROMPT, SOCIAL_MEDIA_SYSTEM_PROMPT_AGENT, From 673b8ac956ec5f4310b036657c022180c1e7e337 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 12:54:44 -0800 Subject: [PATCH 09/47] prompt name fixes for positive med --- playground/demos/positive_med/positive_med.py | 8 ++++---- swarms/prompts/autobloggen.py | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/playground/demos/positive_med/positive_med.py b/playground/demos/positive_med/positive_med.py index c0652a7d..22411688 100644 --- a/playground/demos/positive_med/positive_med.py +++ b/playground/demos/positive_med/positive_med.py @@ -24,9 +24,9 @@ from termcolor import colored from swarms.models import OpenAIChat from swarms.prompts.autobloggen import ( DRAFT_AGENT_SYSTEM_PROMPT, - REVIEW_PROMPT, + AUTOBLOG_REVIEW_PROMPT, SOCIAL_MEDIA_SYSTEM_PROMPT_AGENT, - TOPIC_GENERATOR, + TOPIC_GENERATOR_SYSTEM_PROMPT, ) import os @@ -35,7 +35,7 @@ llm = OpenAIChat(openai_api_key=api_key) def get_review_prompt(article): - prompt = REVIEW_PROMPT.replace("{{ARTICLE}}", article) + prompt = AUTOBLOG_REVIEW_PROMPT.replace("{{ARTICLE}}", article) return prompt @@ -51,7 +51,7 @@ topic_selection_task = ( "Generate 10 topics on gaining mental clarity using ancient practices" ) topics = llm( - f"Your System Instructions: {TOPIC_GENERATOR}, Your current task:" + f"Your System Instructions: {TOPIC_GENERATOR_SYSTEM_PROMPT}, Your current task:" f" {topic_selection_task}" ) diff --git a/swarms/prompts/autobloggen.py b/swarms/prompts/autobloggen.py index 64001d1d..3cad09b2 100644 --- a/swarms/prompts/autobloggen.py +++ b/swarms/prompts/autobloggen.py @@ -1,4 +1,4 @@ -AUTOBLOG_GEN_GENERATOR = """ +TOPIC_GENERATOR_SYSTEM_PROMPT = """ First search for a list of topics on the web based their relevance to Positive Med's long term vision then rank than based on the goals this month, then output a single headline title for a blog for the next autonomous agent to write the blog, utilize the SOP below to help you strategically select topics. Output a single topic that will be the foundation for a blog. @@ -274,3 +274,5 @@ Check Accuracy: - Flag any bold claims that lack credible evidence for fact-checker review. """ + + From b554d1712d93a4fe49528e997d64cff3978a9bd6 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 14:23:46 -0800 Subject: [PATCH 10/47] positive_med demo; --- playground/demos/positive_med/positive_med.py | 6 ++++-- swarms/tools/tool.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/playground/demos/positive_med/positive_med.py b/playground/demos/positive_med/positive_med.py index 22411688..6d3a076d 100644 --- a/playground/demos/positive_med/positive_med.py +++ b/playground/demos/positive_med/positive_med.py @@ -20,15 +20,17 @@ Distribution Agent: - Optimize writer prompt to create longer and more enjoyeable blogs - Use Local Models like Storywriter """ +import os + from termcolor import colored + from swarms.models import OpenAIChat from swarms.prompts.autobloggen import ( - DRAFT_AGENT_SYSTEM_PROMPT, AUTOBLOG_REVIEW_PROMPT, + DRAFT_AGENT_SYSTEM_PROMPT, SOCIAL_MEDIA_SYSTEM_PROMPT_AGENT, TOPIC_GENERATOR_SYSTEM_PROMPT, ) -import os api_key = os.environ["OPENAI_API_KEY"] llm = OpenAIChat(openai_api_key=api_key) diff --git a/swarms/tools/tool.py b/swarms/tools/tool.py index 8ae3b7cd..105a2541 100644 --- a/swarms/tools/tool.py +++ b/swarms/tools/tool.py @@ -118,7 +118,7 @@ class ToolException(Exception): class BaseTool(RunnableSerializable[Union[str, Dict], Any]): - """Interface LangChain tools must implement.""" + """Interface swarms tools must implement.""" def __init_subclass__(cls, **kwargs: Any) -> None: """Create the definition of the new tool class.""" From d88a31a75b3f3bef84a462171bae8f10d469fe20 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 14:44:17 -0800 Subject: [PATCH 11/47] clean up --- multi_agent_debate.py | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 multi_agent_debate.py diff --git a/multi_agent_debate.py b/multi_agent_debate.py deleted file mode 100644 index 2bc67c8c..00000000 --- a/multi_agent_debate.py +++ /dev/null @@ -1,31 +0,0 @@ -import os - -from dotenv import load_dotenv - -from swarms.models import OpenAIChat -from swarms.structs import Flow -from swarms.swarms.multi_agent_collab import MultiAgentCollaboration - -load_dotenv() - -api_key = os.environ.get("OPENAI_API_KEY") - -# Initialize the language model -llm = OpenAIChat( - temperature=0.5, - openai_api_key=api_key, -) - - -## Initialize the workflow -flow = Flow(llm=llm, max_loops=1, dashboard=True) -flow2 = Flow(llm=llm, max_loops=1, dashboard=True) -flow3 = Flow(llm=llm, max_loops=1, dashboard=True) - - -swarm = MultiAgentCollaboration( - agents=[flow, flow2, flow3], - max_iters=4, -) - -swarm.run("Generate a 10,000 word blog on health and wellness.") From ee1ac007d09855ff48497b51c84a7d01a4ccc801 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 15:24:32 -0800 Subject: [PATCH 12/47] nougat fix --- playground/models/nougat.py | 2 +- swarms/models/nougat.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/playground/models/nougat.py b/playground/models/nougat.py index 198fee38..97e1f1a3 100644 --- a/playground/models/nougat.py +++ b/playground/models/nougat.py @@ -2,4 +2,4 @@ from swarms.models.nougat import Nougat nougat = Nougat() -out = nougat("path/to/image.png") +out = nougat("large.png") diff --git a/swarms/models/nougat.py b/swarms/models/nougat.py index 82bb95f5..0eceb362 100644 --- a/swarms/models/nougat.py +++ b/swarms/models/nougat.py @@ -18,7 +18,7 @@ class Nougat: """ Nougat - ArgsS: + Args: model_name_or_path: str, default="facebook/nougat-base" min_length: int, default=1 max_new_tokens: int, default=30 @@ -35,7 +35,7 @@ class Nougat: self, model_name_or_path="facebook/nougat-base", min_length: int = 1, - max_new_tokens: int = 30, + max_new_tokens: int = 5000, ): self.model_name_or_path = model_name_or_path self.min_length = min_length @@ -50,14 +50,17 @@ class Nougat: self.device = "cuda" if torch.cuda.is_available() else "cpu" self.model.to(self.device) - def get_image(self, img_path: str): + def get_image(self, img: str): """Get an image from a path""" - image = Image.open(img_path) - return image + img = Image.open(img) - def __call__(self, img_path: str): + if img.mode == "L": + img = img.convert("RGB") + return img + + def __call__(self, img: str): """Call the model with an image_path str as an input""" - image = Image.open(img_path) + image = Image.open(img) pixel_values = self.processor(image, return_tensors="pt").pixel_values # Generate transcriptions, here we only generate 30 tokens @@ -78,6 +81,7 @@ class Nougat: return out def clean_nougat_output(raw_output): + """Clean the output from nougat to be more readable""" # Define the pattern to extract the relevant data daily_balance_pattern = ( r"\*\*(\d{2}/\d{2}/\d{4})\*\*\n\n\*\*([\d,]+\.\d{2})\*\*" From 399099ef67082effc02ad807c587d7fcfd2f716f Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 15:48:51 -0800 Subject: [PATCH 13/47] dockerfile --- tests/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Dockerfile b/tests/Dockerfile index b36c8d25..4bec42c1 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -21,7 +21,6 @@ RUN pip install poetry # Disable virtualenv creation by poetry and install dependencies RUN poetry config virtualenvs.create false -RUN poetry install --no-interaction --no-ansi # Install the 'swarms' package if it's not included in the poetry.lock RUN pip install swarms From 78b46efc94c6cf9ddd3f501e688cd39e3a235b07 Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Fri, 24 Nov 2023 17:30:57 -0700 Subject: [PATCH 14/47] cicd, yamllint --- .flake8 | 2 +- .github/FUNDING.yml | 21 +-- .github/dependabot.yml | 2 +- .github/labeler.yml | 8 +- .github/workflows/code_quality_control.yml | 30 ---- .github/workflows/cos_integration.yml | 42 ----- .github/workflows/docker-image.yml | 15 +- .github/workflows/docs_test.yml | 28 ---- .../generator-generic-ossf-slsa3-publish.yml | 66 -------- .github/workflows/lint.yml | 24 ++- .github/workflows/lints.yml | 25 --- .github/workflows/makefile.yml | 27 --- .github/workflows/pr_request_checks.yml | 3 +- .github/workflows/pylint.yml | 23 --- .github/workflows/pyre.yml | 46 ----- .github/workflows/python-app.yml | 39 ----- .github/workflows/python-publish.yml | 8 +- .github/workflows/quality.yml | 23 --- .github/workflows/ruff.yml | 8 - .github/workflows/run_test.yml | 23 --- .github/workflows/test.yml | 63 ++++++- .readthedocs.yml | 3 +- .yamllint | 4 + mkdocs.yml | 157 +++++++++--------- 24 files changed, 196 insertions(+), 494 deletions(-) delete mode 100644 .github/workflows/code_quality_control.yml delete mode 100644 .github/workflows/cos_integration.yml delete mode 100644 .github/workflows/docs_test.yml delete mode 100644 .github/workflows/generator-generic-ossf-slsa3-publish.yml delete mode 100644 .github/workflows/lints.yml delete mode 100644 .github/workflows/makefile.yml delete mode 100644 .github/workflows/pylint.yml delete mode 100644 .github/workflows/pyre.yml delete mode 100644 .github/workflows/python-app.yml delete mode 100644 .github/workflows/quality.yml delete mode 100644 .github/workflows/ruff.yml delete mode 100644 .github/workflows/run_test.yml create mode 100644 .yamllint diff --git a/.flake8 b/.flake8 index d148ed3e..eedac54c 100644 --- a/.flake8 +++ b/.flake8 @@ -1,2 +1,2 @@ [flake8] -extend-ignore = E501, W292, W291 \ No newline at end of file +extend-ignore = E501, W292, W291, W293 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index c626b001..e3733b98 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,13 +1,14 @@ +--- # These are supported funding model platforms github: [kyegomez] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry -custom: #Nothing +# patreon: # Replace with a single Patreon username +# open_collective: # Replace with a single Open Collective username +# ko_fi: # Replace with a single Ko-fi username +# tidelift: # Replace with a single Tidelift platform-name/package-name +# community_bridge: # Replace with a single Community Bridge project-name +# liberapay: # Replace with a single Liberapay username +# issuehunt: # Replace with a single IssueHunt username +# otechie: # Replace with a single Otechie username +# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name +# custom: #Nothing diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 34b75fb9..b523994a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,3 +1,4 @@ +--- # https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates version: 2 @@ -11,4 +12,3 @@ updates: directory: "/" schedule: interval: "weekly" - diff --git a/.github/labeler.yml b/.github/labeler.yml index 72ccc40a..1fb9d7ec 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,12 +1,14 @@ +--- # this is a config file for the github action labeler # Add 'label1' to any changes within 'example' folder or any subfolders example_change: -- example/** + - example/** # Add 'label2' to any file changes within 'example2' folder example2_change: example2/* -# Add label3 to any change to .txt files within the entire repository. Quotation marks are required for the leading asterisk +# Add label3 to any change to .txt files within the entire repository. +# Quotation marks are required for the leading asterisk text_files: -- '**/*.txt' \ No newline at end of file + - '**/*.txt' diff --git a/.github/workflows/code_quality_control.yml b/.github/workflows/code_quality_control.yml deleted file mode 100644 index a0a49572..00000000 --- a/.github/workflows/code_quality_control.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Linting and Formatting - -on: - push: - branches: - - master - -jobs: - lint_and_format: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependencies - run: pip install -r requirements.txt - - - name: Find Python files - run: find swarms -name "*.py" -type f -exec autopep8 --in-place --aggressive --aggressive {} + - - - name: Push changes - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/cos_integration.yml b/.github/workflows/cos_integration.yml deleted file mode 100644 index 3bfb587c..00000000 --- a/.github/workflows/cos_integration.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Continuous Integration - -on: - push: - branches: - - master - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependencies - run: pip install -r requirements.txt - - - name: Run unit tests - run: pytest tests/unit - - - name: Run integration tests - run: pytest tests/integration - - - name: Run code coverage - run: pytest --cov=swarms tests/ - - - name: Run linters - run: pylint swarms - - - name: Build documentation - run: make docs - - - name: Validate documentation - run: sphinx-build -b linkcheck docs build/docs - - - name: Run performance tests - run: find ./tests -name '*.py' -exec pytest {} \; \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 793d8e0e..6ed5bcba 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,18 +1,19 @@ +--- name: Docker Image CI -on: +on: # yamllint disable-line rule:truthy push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] jobs: build: runs-on: ubuntu-latest - + name: Build Docker image steps: - - uses: actions/checkout@v4 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) + - uses: actions/checkout@v4 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) diff --git a/.github/workflows/docs_test.yml b/.github/workflows/docs_test.yml deleted file mode 100644 index 35d2ca91..00000000 --- a/.github/workflows/docs_test.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Documentation Tests - -on: - push: - branches: - - master - -jobs: - test: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependencies - run: pip install -r requirements.txt - - - name: Build documentation - run: make docs - - - name: Validate documentation - run: sphinx-build -b linkcheck docs build/docs \ No newline at end of file diff --git a/.github/workflows/generator-generic-ossf-slsa3-publish.yml b/.github/workflows/generator-generic-ossf-slsa3-publish.yml deleted file mode 100644 index a36e782c..00000000 --- a/.github/workflows/generator-generic-ossf-slsa3-publish.yml +++ /dev/null @@ -1,66 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow lets you generate SLSA provenance file for your project. -# The generation satisfies level 3 for the provenance requirements - see https://slsa.dev/spec/v0.1/requirements -# The project is an initiative of the OpenSSF (openssf.org) and is developed at -# https://github.com/slsa-framework/slsa-github-generator. -# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier. -# For more information about SLSA and how it improves the supply-chain, visit slsa.dev. - -name: SLSA generic generator -on: - workflow_dispatch: - release: - types: [created] - -jobs: - build: - runs-on: ubuntu-latest - outputs: - digests: ${{ steps.hash.outputs.digests }} - - steps: - - uses: actions/checkout@v3 - - # ======================================================== - # - # Step 1: Build your artifacts. - # - # ======================================================== - - name: Build artifacts - run: | - # These are some amazing artifacts. - echo "artifact1" > artifact1 - echo "artifact2" > artifact2 - - # ======================================================== - # - # Step 2: Add a step to generate the provenance subjects - # as shown below. Update the sha256 sum arguments - # to include all binaries that you generate - # provenance for. - # - # ======================================================== - - name: Generate subject for provenance - id: hash - run: | - set -euo pipefail - - # List the artifacts the provenance will refer to. - files=$(ls artifact*) - # Generate the subjects (base64 encoded). - echo "hashes=$(sha256sum $files | base64 -w0)" >> "${GITHUB_OUTPUT}" - - provenance: - needs: [build] - permissions: - actions: read # To read the workflow path. - id-token: write # To sign the provenance. - contents: write # To add assets to a release. - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.4.0 - with: - base64-subjects: "${{ needs.build.outputs.digests }}" - upload-assets: true # Optional: Upload to a new release diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 97aa4732..8a6f374c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,19 +1,29 @@ +--- # This is a basic workflow to help you get started with Actions name: Lint -on: [push, pull_request] +on: [push, pull_request] # yamllint disable-line rule:truthy jobs: + yaml-lint: + runs-on: ubuntu-latest + steps: + - name: Check out source repository + uses: actions/checkout@v4 + - name: yaml Lint + uses: ibiqlik/action-yamllint@v3 flake8-lint: runs-on: ubuntu-latest - name: Lint + name: flake8 Lint steps: - name: Check out source repository uses: actions/checkout@v4 - name: Set up Python environment - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - name: flake8 Lint - uses: py-actions/flake8@v2 \ No newline at end of file + uses: py-actions/flake8@v2 + ruff-lint: + runs-on: ubuntu-latest + name: ruff Lint + steps: + - uses: actions/checkout@v4 + - uses: chartboost/ruff-action@v1 diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml deleted file mode 100644 index 216903d5..00000000 --- a/.github/workflows/lints.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Linting - -on: - push: - branches: - - master - -jobs: - lint: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependencies - run: pip install -r requirements.txt - - - name: Run linters - run: pylint swarms \ No newline at end of file diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml deleted file mode 100644 index ab01451f..00000000 --- a/.github/workflows/makefile.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Makefile CI - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: configure - run: ./configure - - - name: Install dependencies - run: make - - - name: Run check - run: make check - - - name: Run distcheck - run: make distcheck diff --git a/.github/workflows/pr_request_checks.yml b/.github/workflows/pr_request_checks.yml index 56b8c1f7..ad7b691f 100644 --- a/.github/workflows/pr_request_checks.yml +++ b/.github/workflows/pr_request_checks.yml @@ -1,3 +1,4 @@ +--- name: Pull Request Checks on: @@ -24,4 +25,4 @@ jobs: - name: Run tests and checks run: | find tests/ -name "*.py" | xargs pytest - pylint swarms \ No newline at end of file + pylint swarms diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml deleted file mode 100644 index 3f3ba2e2..00000000 --- a/.github/workflows/pylint.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Pylint - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.8", "3.9", "3.10"] - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pylint - - name: Analysing the code with pylint - run: | - pylint $(git ls-files '*.py') diff --git a/.github/workflows/pyre.yml b/.github/workflows/pyre.yml deleted file mode 100644 index 5ff88856..00000000 --- a/.github/workflows/pyre.yml +++ /dev/null @@ -1,46 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow integrates Pyre with GitHub's -# Code Scanning feature. -# -# Pyre is a performant type checker for Python compliant with -# PEP 484. Pyre can analyze codebases with millions of lines -# of code incrementally – providing instantaneous feedback -# to developers as they write code. -# -# See https://pyre-check.org - -name: Pyre - -on: - workflow_dispatch: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - pyre: - permissions: - actions: read - contents: read - security-events: write - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - - name: Run Pyre - uses: facebook/pyre-action@60697a7858f7cc8470d8cc494a3cf2ad6b06560d - with: - # To customize these inputs: - # See https://github.com/facebook/pyre-action#inputs - repo-directory: './' - requirements-path: 'requirements.txt' diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml deleted file mode 100644 index 1f634309..00000000 --- a/.github/workflows/python-app.yml +++ /dev/null @@ -1,39 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: Python application - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - pytest diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index c8f4ba0c..66beff23 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -1,7 +1,7 @@ - +--- name: Upload Python Package -on: +on: # yamllint disable-line rule:truthy release: types: [published] @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest - steps: + steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 @@ -29,4 +29,4 @@ jobs: uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e with: user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file + password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml deleted file mode 100644 index 9b09cfa9..00000000 --- a/.github/workflows/quality.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Quality - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -jobs: - lint: - runs-on: ubuntu-latest - strategy: - fail-fast: false - steps: - - name: Checkout actions - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Init environment - uses: ./.github/actions/init-environment - - name: Run linter - run: | - pylint `git diff --name-only --diff-filter=d origin/master HEAD | grep -E '\.py$' | tr '\n' ' '` \ No newline at end of file diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml deleted file mode 100644 index ef06d34a..00000000 --- a/.github/workflows/ruff.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: Ruff -on: [ push, pull_request ] -jobs: - ruff: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: chartboost/ruff-action@v1 diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml deleted file mode 100644 index 172dc64b..00000000 --- a/.github/workflows/run_test.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Python application test - -on: [push] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Run tests with pytest - run: | - find tests/ -name "*.py" | xargs pytest diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65dc68d9..d9dafc76 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,4 @@ +--- name: test on: @@ -9,7 +10,67 @@ on: env: POETRY_VERSION: "1.4.2" -jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + test_type: + - "core" + - "extended" + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: "snok/install-poetry@v1" + with: + python-version: ${{ matrix.python-version }} + poetry-version: "1.4.2" + cache-key: ${{ matrix.test_type }} + install-command: | + if [ "${{ matrix.test_type }}" == "core" ]; then + echo "Running core tests, installing dependencies with poetry..." + poetry install + else + echo "Running extended tests, installing dependencies with poetry..." + poetry install -E extended_testing + fi + - name: Run ${{matrix.test_type}} tests + run: | + if [ "${{ matrix.test_type }}" == "core" ]; then + make test + else + make extended_tests + fi + shell: bash + name: Python ${{ matrix.python-version }} ${{ matrix.test_type }} + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: "./.github/actions/poetry_setup" + with: + python-version: ${{ matrix.python-version }} + poetry-version: "1.4.2" + cache-key: ${{ matrix.test_type }} + install-command: | + if [ "${{ matrix.test_type }}" == "core" ]; then + echo "Running core tests, installing dependencies with poetry..." + poetry install + else + echo "Running extended tests, installing dependencies with poetry..." + poetry install -E extended_testing + fi + - name: Run ${{matrix.test_type}} tests + run: | + if [ "${{ matrix.test_type }}" == "core" ]; then + make test + else + make extended_tests + fi + shell: bash build: runs-on: ubuntu-latest strategy: diff --git a/.readthedocs.yml b/.readthedocs.yml index fbdc74ec..1c969083 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,3 +1,4 @@ +--- version: 2 build: @@ -10,4 +11,4 @@ mkdocs: python: install: - - requirements: requirements.txt \ No newline at end of file + - requirements: requirements.txt diff --git a/.yamllint b/.yamllint new file mode 100644 index 00000000..c58fcd8f --- /dev/null +++ b/.yamllint @@ -0,0 +1,4 @@ +rules: + line-length: + level: warning + allow-non-breakable-inline-mappings: true \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index e70e1a39..8616cc2f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,3 +1,4 @@ +--- site_name: Swarms Docs plugins: - glightbox @@ -19,15 +20,15 @@ extra: - icon: fontawesome/brands/python link: https://pypi.org/project/Swarms/ theme: - name: material - custom_dir: docs/overrides - logo: assets/img/SwarmsLogoIcon.png - palette: - # Palette toggle for light mode + name: material + custom_dir: docs/overrides + logo: assets/img/SwarmsLogoIcon.png + palette: + # Palette toggle for light mode - scheme: default primary: black toggle: - icon: material/brightness-7 + icon: material/brightness-7 name: Switch to dark mode # Palette toggle for dark mode - scheme: slate @@ -35,14 +36,14 @@ theme: toggle: icon: material/brightness-4 name: Switch to light mode - features: - - content.code.copy - - content.code.annotate - - navigation.tabs - - navigation.sections - - navigation.expand - - navigation.top - - announce.dismiss + features: + - content.code.copy + - content.code.annotate + - navigation.tabs + - navigation.sections + - navigation.expand + - navigation.top + - announce.dismiss markdown_extensions: - pymdownx.highlight: anchor_linenums: true @@ -58,25 +59,25 @@ markdown_extensions: - def_list - footnotes nav: -- Home: - - Overview: "index.md" - - Contributing: "contributing.md" - - Docker Container Setup: "docker_setup.md" -- Swarms: - - Overview: "swarms/index.md" + - Home: + - Overview: "index.md" + - Contributing: "contributing.md" + - Docker Container Setup: "docker_setup.md" + - Swarms: + - Overview: "swarms/index.md" - swarms.swarms: - - AbstractSwarm: "swarms/swarms/abstractswarm.md" - - GodMode: "swarms/swarms/godmode.md" - - Groupchat: "swarms/swarms/groupchat.md" + - AbstractSwarm: "swarms/swarms/abstractswarm.md" + - GodMode: "swarms/swarms/godmode.md" + - Groupchat: "swarms/swarms/groupchat.md" - swarms.workers: - - Overview: "swarms/workers/index.md" - - AbstractWorker: "swarms/workers/abstract_worker.md" + - Overview: "swarms/workers/index.md" + - AbstractWorker: "swarms/workers/abstract_worker.md" - swarms.agents: - - AbstractAgent: "swarms/agents/abstract_agent.md" - - OmniModalAgent: "swarms/agents/omni_agent.md" + - AbstractAgent: "swarms/agents/abstract_agent.md" + - OmniModalAgent: "swarms/agents/omni_agent.md" - swarms.models: - - Language: - - Overview: "swarms/models/index.md" + - Language: + - Overview: "swarms/models/index.md" - HuggingFaceLLM: "swarms/models/huggingface.md" - Anthropic: "swarms/models/anthropic.md" - OpenAI: "swarms/models/openai.md" @@ -84,54 +85,54 @@ nav: - BioGPT: "swarms/models/biogpt.md" - MPT7B: "swarms/models/mpt.md" - Mistral: "swarms/models/mistral.md" - - MultiModal: - - Fuyu: "swarms/models/fuyu.md" - - Vilt: "swarms/models/vilt.md" - - Idefics: "swarms/models/idefics.md" - - BingChat: "swarms/models/bingchat.md" - - Kosmos: "swarms/models/kosmos.md" - - Nougat: "swarms/models/nougat.md" - - Dalle3: "swarms/models/dalle3.md" - - GPT4V: "swarms/models/gpt4v.md" - - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md" - - DistilWhisperModel: "swarms/models/distilled_whisperx.md" - - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md" + - MultiModal: + - Fuyu: "swarms/models/fuyu.md" + - Vilt: "swarms/models/vilt.md" + - Idefics: "swarms/models/idefics.md" + - BingChat: "swarms/models/bingchat.md" + - Kosmos: "swarms/models/kosmos.md" + - Nougat: "swarms/models/nougat.md" + - Dalle3: "swarms/models/dalle3.md" + - GPT4V: "swarms/models/gpt4v.md" + - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md" + - DistilWhisperModel: "swarms/models/distilled_whisperx.md" + - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md" - swarms.structs: - - Overview: "swarms/structs/overview.md" - - AutoScaler: "swarms/swarms/autoscaler.md" - - Flow: "swarms/structs/flow.md" - - SequentialWorkflow: 'swarms/structs/sequential_workflow.md' + - Overview: "swarms/structs/overview.md" + - AutoScaler: "swarms/swarms/autoscaler.md" + - Flow: "swarms/structs/flow.md" + - SequentialWorkflow: 'swarms/structs/sequential_workflow.md' - swarms.memory: - - PineconeVectorStoreStore: "swarms/memory/pinecone.md" - - PGVectorStore: "swarms/memory/pg.md" - # - swarms.chunkers: - # - BaseChunker: "swarms/chunkers/basechunker.md" - # - PdfChunker: "swarms/chunkers/pdf_chunker.md" -- Guides: - - Overview: "examples/index.md" - - Agents: - - Flow: "examples/flow.md" - - SequentialWorkflow: "examples/reliable_autonomous_agents.md" - - OmniAgent: "examples/omni_agent.md" - - 2O+ Autonomous Agent Blogs: "examples/ideas.md" -- Applications: - - CustomerSupport: - - Overview: "applications/customer_support.md" - - Marketing: - - Overview: "applications/marketing_agencies.md" -- Corporate: - - FAQ: "corporate/faq.md" - - Purpose: "corporate/purpose.md" - - Roadmap: "corporate/roadmap.md" - - Weaknesses: "corporate/failures.md" - - Design: "corporate/design.md" - - Flywheel: "corporate/flywheel.md" - - Bounties: "corporate/bounties.md" - - Metric: "corporate/metric.md" - - Distribution: "corporate/distribution" - - Research: "corporate/research.md" - - Demos: "corporate/demos.md" - - Architecture: "corporate/architecture.md" - - Checklist: "corporate/checklist.md" - - Hiring: "corporate/hiring.md" - - SwarmCloud: "corporate/swarm_cloud.md" + - PineconeVectorStoreStore: "swarms/memory/pinecone.md" + - PGVectorStore: "swarms/memory/pg.md" +# - swarms.chunkers: +# - BaseChunker: "swarms/chunkers/basechunker.md" +# - PdfChunker: "swarms/chunkers/pdf_chunker.md" + - Guides: + - Overview: "examples/index.md" + - Agents: + - Flow: "examples/flow.md" + - SequentialWorkflow: "examples/reliable_autonomous_agents.md" + - OmniAgent: "examples/omni_agent.md" + - 2O+ Autonomous Agent Blogs: "examples/ideas.md" + - Applications: + - CustomerSupport: + - Overview: "applications/customer_support.md" + - Marketing: + - Overview: "applications/marketing_agencies.md" + - Corporate: + - FAQ: "corporate/faq.md" + - Purpose: "corporate/purpose.md" + - Roadmap: "corporate/roadmap.md" + - Weaknesses: "corporate/failures.md" + - Design: "corporate/design.md" + - Flywheel: "corporate/flywheel.md" + - Bounties: "corporate/bounties.md" + - Metric: "corporate/metric.md" + - Distribution: "corporate/distribution" + - Research: "corporate/research.md" + - Demos: "corporate/demos.md" + - Architecture: "corporate/architecture.md" + - Checklist: "corporate/checklist.md" + - Hiring: "corporate/hiring.md" + - SwarmCloud: "corporate/swarm_cloud.md" From 9c3a292938d53a0ff462d4bfb3d477f4c005dea3 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 16:56:05 -0800 Subject: [PATCH 15/47] gpt4vision api --- multi_modal_auto_agent.py | 17 +++ .../multi_modal_auto_agent.py | 33 ----- swarms/models/__init__.py | 4 + swarms/models/gpt4_vision_api.py | 127 ++++++++++++++++++ swarms/structs/flow.py | 17 ++- 5 files changed, 160 insertions(+), 38 deletions(-) create mode 100644 multi_modal_auto_agent.py delete mode 100644 playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py create mode 100644 swarms/models/gpt4_vision_api.py diff --git a/multi_modal_auto_agent.py b/multi_modal_auto_agent.py new file mode 100644 index 00000000..5d27dc42 --- /dev/null +++ b/multi_modal_auto_agent.py @@ -0,0 +1,17 @@ +from swarms.structs import Flow +from swarms.models.gpt4_vision_api import GPT4VisionAPI + + +llm = GPT4VisionAPI() + +task = "What is the color of the object?" +img = "images/swarms.jpeg" + +## Initialize the workflow +flow = Flow( + llm=llm, + max_loops='auto', + dashboard=True, +) + +flow.run(task=task, img=img) \ No newline at end of file diff --git a/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py b/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py deleted file mode 100644 index a2602706..00000000 --- a/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py +++ /dev/null @@ -1,33 +0,0 @@ -from swarms.structs import Flow -from swarms.models import Idefics - -# Multi Modality Auto Agent -llm = Idefics(max_length=2000) - -task = ( - "User: What is in this image?" - " https://upload.wikimedia.org/wikipedia/commons/8/86/Id%C3%A9fix.JPG" -) - -## Initialize the workflow -flow = Flow( - llm=llm, - max_loops=2, - dashboard=True, - # stopping_condition=None, # You can define a stopping condition as needed. - # loop_interval=1, - # retry_attempts=3, - # retry_interval=1, - # interactive=False, # Set to 'True' for interactive mode. - # dynamic_temperature=False, # Set to 'True' for dynamic temperature handling. -) - -# out = flow.load_state("flow_state.json") -# temp = flow.dynamic_temperature() -# filter = flow.add_response_filter("Trump") -out = flow.run(task) -# out = flow.validate_response(out) -# out = flow.analyze_feedback(out) -# out = flow.print_history_and_memory() -# # out = flow.save_state("flow_state.json") -# print(out) diff --git a/swarms/models/__init__.py b/swarms/models/__init__.py index 10bf2fab..aa1da8f7 100644 --- a/swarms/models/__init__.py +++ b/swarms/models/__init__.py @@ -25,6 +25,7 @@ from swarms.models.idefics import Idefics # noqa: E402 from swarms.models.vilt import Vilt # noqa: E402 from swarms.models.nougat import Nougat # noqa: E402 from swarms.models.layoutlm_document_qa import LayoutLMDocumentQA # noqa: E402 +from swarms.models.gpt4_vision_api import GPT4VisionAPI # noqa: E40 # from swarms.models.gpt4v import GPT4Vision # from swarms.models.dalle3 import Dalle3 @@ -49,4 +50,7 @@ __all__ = [ "WizardLLMStoryTeller", # "GPT4Vision", # "Dalle3", + # "DistilWhisperModel", + "GPT4VisionAPI", + ] diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py new file mode 100644 index 00000000..05736261 --- /dev/null +++ b/swarms/models/gpt4_vision_api.py @@ -0,0 +1,127 @@ +import base64 +import os +import requests +from dotenv import load_dotenv + +# Load environment variables +load_dotenv() +openai_api_key = os.getenv("OPENAI_API_KEY") + +class GPT4VisionAPI: + """ + GPT-4 Vision API + + This class is a wrapper for the OpenAI API. It is used to run the GPT-4 Vision model. + + Parameters + ---------- + openai_api_key : str + The OpenAI API key. Defaults to the OPENAI_API_KEY environment variable. + + Methods + ------- + encode_image(img: str) + Encode image to base64. + run(task: str, img: str) + Run the model. + __call__(task: str, img: str) + Run the model. + + Examples: + --------- + >>> from swarms.models import GPT4VisionAPI + >>> llm = GPT4VisionAPI() + >>> task = "What is the color of the object?" + >>> img = "https://i.imgur.com/2M2ZGwC.jpeg" + >>> llm.run(task, img) + + + """ + def __init__( + self, + openai_api_key: str = openai_api_key + ): + super().__init__() + self.openai_api_key = openai_api_key + + def encode_image(self, img: str): + """Encode image to base64.""" + with open(img, "rb") as image_file: + return base64.b64encode(image_file.read()).decode("utf-8") + + # Function to handle vision tasks + def run(self, task: str, img: str): + """Run the model.""" + try: + base64_image = self.encode_image(img) + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {openai_api_key}", + } + payload = { + "model": "gpt-4-vision-preview", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": task}, + { + "type": "image_url", + "image_url": { + "url": f"data:image/jpeg;base64,{base64_image}" + }, + }, + ], + } + ], + "max_tokens": 300, + } + response = requests.post( + "https://api.openai.com/v1/chat/completions", + headers=headers, + json=payload, + ) + + out = response.json() + + out = out["choices"][0]["text"] + except Exception as error: + print(f"Error with the request: {error}") + raise error + # Function to handle vision tasks + + def __call__(self, task: str, img: str): + """Run the model.""" + try: + base64_image = self.encode_image(img) + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {openai_api_key}", + } + payload = { + "model": "gpt-4-vision-preview", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": task}, + { + "type": "image_url", + "image_url": { + "url": f"data:image/jpeg;base64,{base64_image}" + }, + }, + ], + } + ], + "max_tokens": 300, + } + response = requests.post( + "https://api.openai.com/v1/chat/completions", + headers=headers, + json=payload, + ) + return response.json() + except Exception as error: + print(f"Error with the request: {error}") + raise error diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index 99a3e587..2287273c 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -496,7 +496,7 @@ class Flow: ) print(error) - def run(self, task: str, **kwargs): + def run(self, task: str, img: Optional[str], **kwargs): """ Run the autonomous agent loop @@ -550,10 +550,17 @@ class Flow: attempt = 0 while attempt < self.retry_attempts: try: - response = self.llm( - task, - **kwargs, - ) + if img: + response = self.llm( + task, + img, + **kwargs, + ) + else: + response = self.llm( + task, + **kwargs, + ) # If code interpreter is enabled then run the code if self.code_interpreter: From 0802091b7fde469ad73eb8d14beccb38f539455b Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 17:03:20 -0800 Subject: [PATCH 16/47] tests for gpt4visionapi --- multi_modal_auto_agent.py | 4 +- playground/demos/positive_med/positive_med.py | 4 +- swarms/models/__init__.py | 1 - swarms/models/anthropic.py | 6 +- swarms/models/dalle3.py | 18 ++- swarms/models/gpt4_vision_api.py | 23 ++-- swarms/models/huggingface.py | 6 +- swarms/models/ssd_1b.py | 12 +- swarms/prompts/autobloggen.py | 2 - swarms/structs/flow.py | 8 +- swarms/structs/sequential_workflow.py | 8 +- tests/models/test_gpt4_vision_api.py | 122 ++++++++++++++++++ 12 files changed, 175 insertions(+), 39 deletions(-) create mode 100644 tests/models/test_gpt4_vision_api.py diff --git a/multi_modal_auto_agent.py b/multi_modal_auto_agent.py index 5d27dc42..f5462847 100644 --- a/multi_modal_auto_agent.py +++ b/multi_modal_auto_agent.py @@ -10,8 +10,8 @@ img = "images/swarms.jpeg" ## Initialize the workflow flow = Flow( llm=llm, - max_loops='auto', + max_loops="auto", dashboard=True, ) -flow.run(task=task, img=img) \ No newline at end of file +flow.run(task=task, img=img) diff --git a/playground/demos/positive_med/positive_med.py b/playground/demos/positive_med/positive_med.py index 6d3a076d..36fecaa1 100644 --- a/playground/demos/positive_med/positive_med.py +++ b/playground/demos/positive_med/positive_med.py @@ -53,8 +53,8 @@ topic_selection_task = ( "Generate 10 topics on gaining mental clarity using ancient practices" ) topics = llm( - f"Your System Instructions: {TOPIC_GENERATOR_SYSTEM_PROMPT}, Your current task:" - f" {topic_selection_task}" + f"Your System Instructions: {TOPIC_GENERATOR_SYSTEM_PROMPT}, Your current" + f" task: {topic_selection_task}" ) dashboard = print( diff --git a/swarms/models/__init__.py b/swarms/models/__init__.py index aa1da8f7..deaa5fde 100644 --- a/swarms/models/__init__.py +++ b/swarms/models/__init__.py @@ -52,5 +52,4 @@ __all__ = [ # "Dalle3", # "DistilWhisperModel", "GPT4VisionAPI", - ] diff --git a/swarms/models/anthropic.py b/swarms/models/anthropic.py index 1f0fe759..1f47e1bf 100644 --- a/swarms/models/anthropic.py +++ b/swarms/models/anthropic.py @@ -185,11 +185,9 @@ def build_extra_kwargs( if field_name in extra_kwargs: raise ValueError(f"Found {field_name} supplied twice.") if field_name not in all_required_field_names: - warnings.warn( - f"""WARNING! {field_name} is not default parameter. + warnings.warn(f"""WARNING! {field_name} is not default parameter. {field_name} was transferred to model_kwargs. - Please confirm that {field_name} is what you intended.""" - ) + Please confirm that {field_name} is what you intended.""") extra_kwargs[field_name] = values.pop(field_name) invalid_model_kwargs = all_required_field_names.intersection( diff --git a/swarms/models/dalle3.py b/swarms/models/dalle3.py index 419cb060..3c130670 100644 --- a/swarms/models/dalle3.py +++ b/swarms/models/dalle3.py @@ -168,8 +168,10 @@ class Dalle3: # Handling exceptions and printing the errors details print( colored( - f"Error running Dalle3: {error} try optimizing your api" - " key and or try again", + ( + f"Error running Dalle3: {error} try optimizing your api" + " key and or try again" + ), "red", ) ) @@ -231,8 +233,10 @@ class Dalle3: except (Exception, openai.OpenAIError) as error: print( colored( - f"Error running Dalle3: {error} try optimizing your api" - " key and or try again", + ( + f"Error running Dalle3: {error} try optimizing your api" + " key and or try again" + ), "red", ) ) @@ -306,8 +310,10 @@ class Dalle3: except Exception as error: print( colored( - f"Error running Dalle3: {error} try optimizing" - " your api key and or try again", + ( + f"Error running Dalle3: {error} try optimizing" + " your api key and or try again" + ), "red", ) ) diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 05736261..87c76200 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -7,6 +7,7 @@ from dotenv import load_dotenv load_dotenv() openai_api_key = os.getenv("OPENAI_API_KEY") + class GPT4VisionAPI: """ GPT-4 Vision API @@ -34,13 +35,11 @@ class GPT4VisionAPI: >>> task = "What is the color of the object?" >>> img = "https://i.imgur.com/2M2ZGwC.jpeg" >>> llm.run(task, img) - - + + """ - def __init__( - self, - openai_api_key: str = openai_api_key - ): + + def __init__(self, openai_api_key: str = openai_api_key): super().__init__() self.openai_api_key = openai_api_key @@ -52,7 +51,7 @@ class GPT4VisionAPI: # Function to handle vision tasks def run(self, task: str, img: str): """Run the model.""" - try: + try: base64_image = self.encode_image(img) headers = { "Content-Type": "application/json", @@ -68,7 +67,9 @@ class GPT4VisionAPI: { "type": "image_url", "image_url": { - "url": f"data:image/jpeg;base64,{base64_image}" + "url": ( + f"data:image/jpeg;base64,{base64_image}" + ) }, }, ], @@ -92,7 +93,7 @@ class GPT4VisionAPI: def __call__(self, task: str, img: str): """Run the model.""" - try: + try: base64_image = self.encode_image(img) headers = { "Content-Type": "application/json", @@ -108,7 +109,9 @@ class GPT4VisionAPI: { "type": "image_url", "image_url": { - "url": f"data:image/jpeg;base64,{base64_image}" + "url": ( + f"data:image/jpeg;base64,{base64_image}" + ) }, }, ], diff --git a/swarms/models/huggingface.py b/swarms/models/huggingface.py index f3f7d45f..1db435f5 100644 --- a/swarms/models/huggingface.py +++ b/swarms/models/huggingface.py @@ -291,8 +291,10 @@ class HuggingfaceLLM: except Exception as e: print( colored( - "HuggingfaceLLM could not generate text because of" - f" error: {e}, try optimizing your arguments", + ( + "HuggingfaceLLM could not generate text because of" + f" error: {e}, try optimizing your arguments" + ), "red", ) ) diff --git a/swarms/models/ssd_1b.py b/swarms/models/ssd_1b.py index aaa3f17e..406678ef 100644 --- a/swarms/models/ssd_1b.py +++ b/swarms/models/ssd_1b.py @@ -140,8 +140,10 @@ class SSD1B: # Handling exceptions and printing the errors details print( colored( - f"Error running SSD1B: {error} try optimizing your api" - " key and or try again", + ( + f"Error running SSD1B: {error} try optimizing your api" + " key and or try again" + ), "red", ) ) @@ -226,8 +228,10 @@ class SSD1B: except Exception as error: print( colored( - f"Error running SSD1B: {error} try optimizing" - " your api key and or try again", + ( + f"Error running SSD1B: {error} try optimizing" + " your api key and or try again" + ), "red", ) ) diff --git a/swarms/prompts/autobloggen.py b/swarms/prompts/autobloggen.py index 3cad09b2..a6f9e561 100644 --- a/swarms/prompts/autobloggen.py +++ b/swarms/prompts/autobloggen.py @@ -274,5 +274,3 @@ Check Accuracy: - Flag any bold claims that lack credible evidence for fact-checker review. """ - - diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index 2287273c..47740f73 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -489,8 +489,10 @@ class Flow: except Exception as error: print( colored( - "Error activating autonomous agent. Try optimizing your" - " parameters...", + ( + "Error activating autonomous agent. Try optimizing your" + " parameters..." + ), "red", ) ) @@ -657,7 +659,7 @@ class Flow: while attempt < self.retry_attempts: try: response = self.llm( - task ** kwargs, + task**kwargs, ) if self.interactive: print(f"AI: {response}") diff --git a/swarms/structs/sequential_workflow.py b/swarms/structs/sequential_workflow.py index 85990854..753ada15 100644 --- a/swarms/structs/sequential_workflow.py +++ b/swarms/structs/sequential_workflow.py @@ -385,9 +385,11 @@ class SequentialWorkflow: except Exception as e: print( colored( - f"Error initializing the Sequential workflow: {e} try" - " optimizing your inputs like the flow class and task" - " description", + ( + f"Error initializing the Sequential workflow: {e} try" + " optimizing your inputs like the flow class and task" + " description" + ), "red", attrs=["bold", "underline"], ) diff --git a/tests/models/test_gpt4_vision_api.py b/tests/models/test_gpt4_vision_api.py new file mode 100644 index 00000000..a40d6f63 --- /dev/null +++ b/tests/models/test_gpt4_vision_api.py @@ -0,0 +1,122 @@ +import pytest +from unittest.mock import mock_open, patch, Mock +from requests.exceptions import RequestException +from swarms.models.gpt4_vision_api import GPT4VisionAPI +import os +from dotenv import load_dotenv + +load_dotenv() + + +custom_api_key = os.environ.get("OPENAI_API_KEY") +img = "images/swarms.jpeg" + + +@pytest.fixture +def vision_api(): + return GPT4VisionAPI(openai_api_key="test_api_key") + + +def test_init(vision_api): + assert vision_api.openai_api_key == "test_api_key" + + +def test_encode_image(vision_api): + with patch( + "builtins.open", mock_open(read_data=b"test_image_data"), create=True + ): + encoded_image = vision_api.encode_image("test_image.jpg") + assert encoded_image == "dGVzdF9pbWFnZV9kYXRh" + + +def test_run_success(vision_api): + expected_response = {"choices": [{"text": "This is the model's response."}]} + with patch( + "requests.post", return_value=Mock(json=lambda: expected_response) + ) as mock_post: + result = vision_api.run("What is this?", "test_image.jpg") + mock_post.assert_called_once() + assert result == "This is the model's response." + + +def test_run_request_error(vision_api): + with patch( + "requests.post", side_effect=RequestException("Request Error") + ) as mock_post: + with pytest.raises(RequestException): + vision_api.run("What is this?", "test_image.jpg") + + +def test_run_response_error(vision_api): + expected_response = {"error": "Model Error"} + with patch( + "requests.post", return_value=Mock(json=lambda: expected_response) + ) as mock_post: + with pytest.raises(RuntimeError): + vision_api.run("What is this?", "test_image.jpg") + + +def test_call(vision_api): + expected_response = {"choices": [{"text": "This is the model's response."}]} + with patch( + "requests.post", return_value=Mock(json=lambda: expected_response) + ) as mock_post: + result = vision_api("What is this?", "test_image.jpg") + mock_post.assert_called_once() + assert result == "This is the model's response." + + +@pytest.fixture +def gpt_api(): + return GPT4VisionAPI() + + +def test_initialization_with_default_key(): + api = GPT4VisionAPI() + assert api.openai_api_key == custom_api_key + + +def test_initialization_with_custom_key(): + custom_key = custom_api_key + api = GPT4VisionAPI(openai_api_key=custom_key) + assert api.openai_api_key == custom_key + + +def test_run_successful_response(gpt_api): + task = "What is in the image?" + img_url = img + response_json = {"choices": [{"text": "Answer from GPT-4 Vision"}]} + mock_response = Mock() + mock_response.json.return_value = response_json + with patch("requests.post", return_value=mock_response) as mock_post: + result = gpt_api.run(task, img_url) + mock_post.assert_called_once() + assert result == response_json["choices"][0]["text"] + + +def test_run_with_exception(gpt_api): + task = "What is in the image?" + img_url = img + with patch("requests.post", side_effect=Exception("Test Exception")): + with pytest.raises(Exception): + gpt_api.run(task, img_url) + + +def test_call_method_successful_response(gpt_api): + task = "What is in the image?" + img_url = img + response_json = {"choices": [{"text": "Answer from GPT-4 Vision"}]} + mock_response = Mock() + mock_response.json.return_value = response_json + with patch("requests.post", return_value=mock_response) as mock_post: + result = gpt_api(task, img_url) + mock_post.assert_called_once() + assert result == response_json + + +def test_call_method_with_exception(gpt_api): + task = "What is in the image?" + img_url = img + with patch("requests.post", side_effect=Exception("Test Exception")): + with pytest.raises(Exception): + gpt_api(task, img_url) From 9e6c4275b2cfa8a2265d286bc1725123e7d2f025 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 17:18:53 -0800 Subject: [PATCH 17/47] clean up outputs of multi modal autonomous agents --- multi_modal_auto_agent.py | 2 +- swarms/models/gpt4_vision_api.py | 20 ++++++++++++++------ tests/models/test_gpt4_vision_api.py | 10 +++++----- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/multi_modal_auto_agent.py b/multi_modal_auto_agent.py index f5462847..1500349c 100644 --- a/multi_modal_auto_agent.py +++ b/multi_modal_auto_agent.py @@ -11,7 +11,7 @@ img = "images/swarms.jpeg" flow = Flow( llm=llm, max_loops="auto", - dashboard=True, + ) flow.run(task=task, img=img) diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 87c76200..87436c55 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -18,7 +18,10 @@ class GPT4VisionAPI: ---------- openai_api_key : str The OpenAI API key. Defaults to the OPENAI_API_KEY environment variable. + max_tokens : int + The maximum number of tokens to generate. Defaults to 300. + Methods ------- encode_image(img: str) @@ -39,9 +42,10 @@ class GPT4VisionAPI: """ - def __init__(self, openai_api_key: str = openai_api_key): + def __init__(self, openai_api_key: str = openai_api_key, max_tokens: str = 300): super().__init__() self.openai_api_key = openai_api_key + self.max_tokens = max_tokens def encode_image(self, img: str): """Encode image to base64.""" @@ -75,7 +79,7 @@ class GPT4VisionAPI: ], } ], - "max_tokens": 300, + "max_tokens": self.max_tokens, } response = requests.post( "https://api.openai.com/v1/chat/completions", @@ -84,8 +88,8 @@ class GPT4VisionAPI: ) out = response.json() - - out = out["choices"][0]["text"] + content = out["choices"][0]["message"]["content"] + print(content) except Exception as error: print(f"Error with the request: {error}") raise error @@ -117,14 +121,18 @@ class GPT4VisionAPI: ], } ], - "max_tokens": 300, + "max_tokens": self.max_tokens, } response = requests.post( "https://api.openai.com/v1/chat/completions", headers=headers, json=payload, ) - return response.json() + + out = response.json() + content = out["choices"][0]["message"]["content"] + print(content) except Exception as error: print(f"Error with the request: {error}") raise error + # Function to handle vision tasks \ No newline at end of file diff --git a/tests/models/test_gpt4_vision_api.py b/tests/models/test_gpt4_vision_api.py index a40d6f63..df2379a8 100644 --- a/tests/models/test_gpt4_vision_api.py +++ b/tests/models/test_gpt4_vision_api.py @@ -25,7 +25,7 @@ def test_encode_image(vision_api): with patch( "builtins.open", mock_open(read_data=b"test_image_data"), create=True ): - encoded_image = vision_api.encode_image("test_image.jpg") + encoded_image = vision_api.encode_image(img) assert encoded_image == "dGVzdF9pbWFnZV9kYXRh" @@ -34,7 +34,7 @@ def test_run_success(vision_api): with patch( "requests.post", return_value=Mock(json=lambda: expected_response) ) as mock_post: - result = vision_api.run("What is this?", "test_image.jpg") + result = vision_api.run("What is this?", img) mock_post.assert_called_once() assert result == "This is the model's response." @@ -44,7 +44,7 @@ def test_run_request_error(vision_api): "requests.post", side_effect=RequestException("Request Error") ) as mock_post: with pytest.raises(RequestException): - vision_api.run("What is this?", "test_image.jpg") + vision_api.run("What is this?", img) def test_run_response_error(vision_api): @@ -53,7 +53,7 @@ def test_run_response_error(vision_api): "requests.post", return_value=Mock(json=lambda: expected_response) ) as mock_post: with pytest.raises(RuntimeError): - vision_api.run("What is this?", "test_image.jpg") + vision_api.run("What is this?", img) def test_call(vision_api): @@ -61,7 +61,7 @@ def test_call(vision_api): with patch( "requests.post", return_value=Mock(json=lambda: expected_response) ) as mock_post: - result = vision_api("What is this?", "test_image.jpg") + result = vision_api("What is this?", img) mock_post.assert_called_once() assert result == "This is the model's response." From a4348a8b95c57f1d76f77363709e42cf63ff87b9 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Fri, 24 Nov 2023 17:27:08 -0800 Subject: [PATCH 18/47] Create assembly.py --- playground/demos/assembly/assembly.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 playground/demos/assembly/assembly.py diff --git a/playground/demos/assembly/assembly.py b/playground/demos/assembly/assembly.py new file mode 100644 index 00000000..b0f728e9 --- /dev/null +++ b/playground/demos/assembly/assembly.py @@ -0,0 +1,17 @@ +from swarms.structs import Flow +from swarms.models.gpt4_vision_api import GPT4VisionAPI + + +llm = GPT4VisionAPI() + +task = "Analyze this image of an assembly line and identify any issues such as misaligned parts, defects, or deviations from the standard assembly process. IF there is anything unsafe in the image, explain why it is unsafe and how it could be improved." +img = "assembly_line.jpg" + +## Initialize the workflow +flow = Flow( + llm=llm, + max_loops=1, + dashboard=True, +) + +flow.run(task=task, img=img) From 97a79ac8cae9b1dbebae01501980f13820e85653 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Sat, 25 Nov 2023 03:27:26 +0200 Subject: [PATCH 19/47] Add files via upload --- playground/demos/assembly/assembly_line.jpg | Bin 0 -> 544717 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 playground/demos/assembly/assembly_line.jpg diff --git a/playground/demos/assembly/assembly_line.jpg b/playground/demos/assembly/assembly_line.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df35c2e35168d79d233340910e0e9a0d37dbed9a GIT binary patch literal 544717 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%0D^||iW9ZctsrN6YCv2AbcAAc< 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∾WYtOr%rDYA>OF6q#@&(qTNEjZ#M z>F*aG9zGk8bnKBA8pMdOECOu}Xwc%&W9js?I#`}dDQ67yo@+58>Nd~hYB4i0nhR=a zxSUwVO9Xwyx#5X!(%nxIi!t)3zIHItQJoPu+9y{jV&&hr8#AW zewm`G%&Al%?704-X0IV_QzuEpv2*lms0@s!u^X|;Wrfb%v`IcMLooT;gEca;IZ(B*I{VgBB2%eBZyiqigYSfz`wEM3HF(EP0 zVye!PK~*!MROnMW6;Cfz^3~5Qlb|8TS>=TC;yx<0^7C86uI*b+qiimV?zD&$EYvQ( zyDWZ`s`hA>iy*qBIT>7~YNm}Zms0J{UY6IWu9j-*t)3pOa9&nhsBkN(P-10cv{J1I z6KQ3OS|)ZY6(NWBb?IEl)Eq|1c53o~6y#N8w(%^r*t0^>jNVWQyHIh2nq~O+(_so9 zAijUZ4o;(@XVZ;^tJ&ss%)4^vntom0d6=2Jy4JfVI~`6=jasgswAyVr!n1_qIQ+ZI z93%+VPQnu}y-{+qUdfU}*Pnay_$u%;y+b0K2gP+O;r(?_hVgN-@ija>KM7WZ3Y282 z39Z%!p{dgoUm{noW4uiKH;Z;VPoivQ%{LGc@-=m|IJ6kp6qwp_!-;y%IjaUnT0yAZ zC-Nv~nA7Z?EEk#j1|DU)W`x)_^ez*L5OJGI!0KL7%Rm52*t?>N)AHN$FV^v!YXsZo zFvl^BJ_#4VD?qa^_T5BY(aiq<%M@~cC6|XAGgs?X-D;agg##Wth|-@`1e@xz8vgFU zjGI(8qo&c5PF_8j*L2q>!28d>EHPm9O82nRhIv$#&=PIoLYB7=NxP1x zUr#G5@&VX;Ot;rf)p9(Nou<+J1Wy3{(C%?CvRRFIxR$1uN8H=KkF zAUnbG1HA1AdA#3o={wJhZL+;n;JlR>q|NpMd`ppiTJ|jr`ek^0Ar@9Dx`qt&@U=eQ z!@s?ezn{|4zmMrs(XQaxSCY)YEwtHnZn;&TGB+0_T+D$NP`(X9$TM0T+h$H(n^~8< zEM1EzZ2X59+B-i;G%XpSY2BL-NV(;B{T1MxbsPo7I9UnhZMzMZD$Hx{3s|Pbyd&jf zV?9}5-D|CN=&xhr^eGo-F8Nw;zhQ@aoQ$sD@DGOIS2_e>V<%t?;0~pA85|Rg9uX%6+vFmd65PAsTWbn zS^T2GpMuiHsl{u=Oq)0^Eqq1nOhpR5H78a2DLN|`7iO=yCupo2wsU59j*ucB0uTCFGBILDV%%>qeCqQ+!-fP$%V;kjP zQRseBzimAShyKU+#f=g#xOVxpP#aV{MATcBZdc^~hqhldy7DqDW z(&;Pujy47E#~!`c8B(6VP1@G$`Jh35O;a}i01jG<6{g^jHk+Buz}vuQBR886cX{hO z0oq!}e~JqoLqfHv%C9}l^S3M+s?*{#%UaX#ugQnxUX*E(m0Em6>EAy(n(NSQ=;zg? zC`l|J~hK4Q*sd2KGt-BvnLs2W;^5{ zhLXWT)_}s&w6g0l^h~F-2L~S!cJO-A$)AoXqaQ8BnD?oC+-&#CrzjrvZh>+6Rz%;x7}+)`*XS>&Xn3uC)oCZHG|Km{1(Mx+ z7Uk5_8t#j4Nvi94S-WTCn#|Vhuxhxry3dChnhnA4;lL9|X7F^api~mv+R*AX46K{< z)G>iq-KA*8Q`*dZH)|DExqCv>l%lILF4MI7aR-TMyfawR-y;1l5Uldm^66JBpqRAS zqdOAo*5Goh(K{tR=M8qdzkTNOdCD;+2n6(m?>dFeRD^~*1)7edUOdUlw;}7T+-Dv& zX}h*@)o$k53w5{Q*L}5LO=*tm!rViVmNcv)KZL}COUX!awR(ZKP*`;et7`Q+46ike zT-(GNiGwc@qMS#a8t0cYrI53o%LYq9lLkd_T83^6d~9cyX*drbLB@@uUbDz*)k6BU zP-?jq%Jsn$R>ydmn5_fQ)99QGw~{99b)FWnw#5Mve)Yd5OZ_@y^3*D(s>~9ac_)=S zwl(72@{$YQ42UmCEv|A?;gsJ*NV2isEdIaqZw7`hzYWclA3@q`ntDC`&oRV(xM)t$rbNxqJ_RmHSA9c&tB#V1ggXXS~IYEA(G?%A=EH zAg)?zTWm~v zMpgBamx$JhqYgFm-aX0@Zc-8JX@_7q`Iz^$_EpAii!m8aFJU=AW#n{fz3Vn)V_cZl z;#P;tI*VCuZAd6>L+YnC{j9p@gRQu#zdMXYgI*u}tzMrEcBoP~^w1wJuuzaFUjlXy znww>1lP$fBR(sVHZopShUqhW|lOyp)+};Vhl`j!9mPURcF^^OVRu{ zo6FalW!qMoX|XP(_@CIIzQmbU`_Ye0R`Y@5+NnGIo6D?9=S}W|WgE+H3c0$IG_XxC z0q$qTww2U}+rsT~6J_}P`~G`uH9$d%yfLN=RIx0SR`1!CePB{H@T8)Itvtf;2706;rC`IwG>@sZHX!$#8p!iaq zN8@l&&yPwd<35WANB}xTnv^i(ovKDx&9|jnTiPY#hRsf)?j!yfR+0U zJ}D33SRjY;Tlo*F#+CXnugj*?Zpl9m+kQ{*_?TGt;bOf0J8ArPWz(zVG}@6c}ttPwEHhtpWnvM-O?1RtYek-DUL27jKD(8)-)a!3YXuXX&g{;3X4H~Sh zGHJER^LeP%>lcRpY)bV^OCmlMgQrXsF@~!|KOyfd!^E;Sm4`o$u_u?*(iYTK9Hd!Z zql+ua?P$Z-Zt87n&IW^-00Ys5>OR+#8)dtZXk zzb)j;x<;jX5&@KvRRThrttHe4g?Q3fqQW=TEvZJ zUiw~LmN?!bC^f0vxKQ~GyKcu;x69yFtM4t;s_Be}$(2_299=R~T2zq6G3Al{UK#M{ zn%+y(M)k6gg2ZbDAlfd`btJ-EYeS~;(VABW3zsZbT! zd>a5`+qBEnJNGOpBxd~;p7!Bo3bFF6*bOHwv1`J+9?S7*v3f){MXIQGF+{4J<}xzG z-gIec#gJIxGxTqK%Pr6 zCkKa7%1YB3&b^x`jbPz!Vulto#<0e|q&H^EGiR8! zqT}Y?Q%mD1r7N=gnWmkR>zS`<<5AP^q4Df1xe2)lqEu9eLkOEqqR;(H1Q7e|_a9aC zZ%X2OzDg-;4xh@rOD!R5s>=;{0KhoI4>q2VZ90oA`hZr6QJXZ_!?1^P1r-6cCOs9| zJc`dM7GFgzKaQoL)3X8cS-b0)!kV;DI&bcHvuU^iA83|1$MX$3>$Xm+YhJcyOx0^j z(Xp?(knFHr@iOjM-)sHa1_ zDbsnpCQvp$D1Xe_30fG6sE`j6aj?}utnUfhW#pwvpP6m7lE!Ix7Bb}2%DRx=wI6Yv z)by?LxH^VXS6;LP8jdZo(@Mz}Xj(PG&xEnsfB3F-bNH;OESz}zCjo^fSCB}62g#ofwr93&A}BPubr(jbjmX& zzY4t7F>)|6)L89C3OyE6brW=WQgNF>_>uwOeed0y)OsIE;(L#Rg2tLAHY{3fvL-EJ z0k9$!1~p3>lQ=MeAf~=sZZn!rP?dBTA3*W)+RW>`>6+rMX50uSXfqdhz<2b`nd7pkRH28lt zt;*L@rmN}WqubNep9LRN_>t>5tI;)lI*PgeIL*)GRRYyQ@hb`7JZ`Zn94*L-p#hBh z9Nj@uWnX7r!@6W#-1Il$qH5LyUQI&GYqa-Sb{6C4Rka(v>0$! zc`FpMWu!SdN(QNrf~{zkT}u_BAmQShrZ$|ZE2V4kF^QhDj5EC0 zf;KRY!A~ynomLwviX!begF6YhGQiO8Amy;!&H&0r*WY2s$IiCf6kYXlQvrquSP7jJD$CswMQ~(rBAi%Djs!r=CTZ zaLG8@0#8?xON*T#N=?RGs#^W7a?OQ6N=6PaGY9wVsddgLX@;P^qAO)VZt+`kzDI# zBuxCIiLBcfSfItv!gx(?DPAHm3O=lhfC|5s&kejR?3pdFzTV~Lqj%e+`9Xn}T+?3F ze1>n~osKeSI4}HtDwSd-`SuI6%PcRY6$c)^Hse#WFC3Q2ziz#y#!Z&vpfIV1wvIM4 zO+{x_rm2&Q)w+yosVt(#=@18|cHy0+EwtVVPvh~o8>whbgZ77WF#BY+%4S8W7bc}T z@vz}F)~AI-m4=I_O29?V2P{U81Y8@Q3>6a(L^s6vNHDWVR+g=_+AV#a(qO-3uEvR7 z)|?G1X^U-jubHL-3?2t#I%05n^-f>~E@x@PN7+}TuqaSDZ0alqoFH;lvFHr_Cl(RY zDxev$oX=a2cL#f`D*B&HU|VPw6vDJNo*0}gn$JqX3YoOg--b$T>Bc=fo&-V!uyTSB z#sr3-Wx8G+(*FR4@Z4GO)=EXh$fF|K9cz2)Q=@;Cs8v!VYli;-Q$PTlPCfRUO}=wB znVC4)X@0SOZPe9WRgU9nrB%-}B?`Wyjps3PF>@04;*_G|HTq7LGcnb8tYh0&)ON_g z>v?Df@GL(iwxuc-?2?MABUlvX=L9)-S!>WPy2^1lQ;?1qG%%G9x-DtNf?(w2^r_S? z0BTgU-v;RVPMFfqhw5o&g{fCH4JS~wa5Nk5$iv1=YCdMFrjLb=(e%n%XW(>F?Lzx6 z!PPFe0~a?ktJhjoHER@DI{21OjvGUVNrwXH_?ZGS6`KjbP7te2nr>$)^cZWX&nH`& z^vap2NxbbdEaceriqiHmKvnrId2`F9k2L);wIgMgJ--Ixbx80oqIJ@Fg`CyAH=E5u z+i6jAI)X&xX66+`EX2jKS)}6_qWgulsvIw0rWc0D$8$8g>$dfxs==%Qc2+fIwSF?( z{JTnDU`&g;k%*kTh$TMByyXp>PNd(w$KR|m^DUL>lnGWnb&rg@VB6tGePo4v-N4X82Xl*mGISS>+tOx;^-J6CXuIAE3XQa z4y`OkGw7Qkiq;9{tr0UfWxA6)&HQ%o$=Rx|?ui+I#>)C_OYLe!)eDJrr0-m4rU=S; zafJkA=7)>dewCID_}K_4T4y|FKWwP4l&cb8;#pM2AS8DchOaT+`$ZDFu`jZkc`d5- z3c0b^cs;Z0aeY;@{9CxwsHvKKJ%^P}UlL~DF5l_Nx}19T4~QJgSi9+;wE^yCk5>#$ zgtoV(n;#DQe}=IrT`>8YQ7Wz;()BitCrVs9QYy{+e3oSH)MIgf3vW=ldVy%oGTf?Y zPi9W1l*!8|hso6`46BIAXOrbAKjUgP^d=9SO1kd}Mu?ladCKarv0TaMG{ zflS%NiVFGXygwj^DsQv4v(=Of%hg7k+EhERY0$gS1y@PpgXyKjk zsILnLEmHkc1068%_m)~_qo_7D`1*xyujzR-6w|Y8@|c+p^>W@A{{T|sX8BD20GIp5 z#Ct)~+h)dk0F4Yj7-Bt>mfdZ>G}iXmRDf5z)TSC>UA!xAq`uRf=6pwno%?kZ|Wh%J48i%q0kmXhi%>-<2)?;x*7U2$`zUb{ z3ztpChakF_GTLa z;PeTz2&Qj2L%Hx;%SBMI!{7wE+UZf(%#~GLOT2egnudLJjI6tI9<_T5QY&3i=fg** zmbtC4$*4W_*vsWo$oV}K#>l49D?sr^=A?+Q2yy9XaA}Qz)5u=4r;%J4HUhbqEL}v! z&7tDiNt>)3r`0w7R%sX4az28B#KlFg9GFZo{{SY_Y2GrcLyb&0`%m(cb@LV`rD96; zWHZg)*2;_)JUST9spUZF?4{bvWh(Q3>LdV_q)P63Q`F$zySyQ#yl}UAXJ% z(!kL!vh4C~QEOSfhls=$Sme=Q|F}V!cM)>&!zI`dVaU z)m4>dt6jW18MlAwpewxXJ5Kz&z##%~Sk&rR5tDtW=PEZ-V zV;I1E0+SIoo6X_y0$rK8qZ7Y{mjE;MSXl3gLt7OU22|90*@5&?%84AWS_Dr3AQI!dJ8o?C zu=dG2E=e}nwfFd0?EXj@sas_@dZqY6WF{4#66qMVHl>e+sndm)*|h1Jh4=>&+cBxt z(bc>)YP$M zCj}FmcWnN0=)Wz+_w84p!y;yl>4Kp;1eH@sW*m(7#uPvER zB0{L!rrWhU#Y4=a#YYi_MB44DuEk|HR(>XHn+M_W8$X5^uBzGN1gce!x>S_Vh}TXc z08A8^wJ4V0<1^Q%Pbi4CW2lD}w%3%`ew6N)rgLn$bnn-pqV`d_gR$;T{7<9|c2?X? zz@EP^Y3nuo2(jzF9YJd<4K(+Glhb30uKKG>9G>P+IAC7 zUgLqPKCi{Ge8xsUTH2y!F^QXSi>X1Ck7VJB@Z(Zp!m=D|gephOqmjtNT4gE7_+{I$ z!>eIq1WFggK`m|xYj%4hG^MO+b&I&F#hM@5%m!+Ub(k67%=J2!{{ZtY#O_xiy;GW!?YsjYN&C_xy*Ygrl@f8gz)Ua;x$M&rM0LhPm znqk{E>*=Co>zK%LwXEx+a=!gem&3?Y8`qJX=RXhX4@f~JM`#4YKjfB;YKe8I%W~Da z)(b8dIYt7AxOD(9>Wza*lxcL=VZ%w};Kte#Sm=6Q1k4LUCkEMTdG_`0_K zE8&$VQ#F_>A&8sASSyQKh{aSkQf}5{THGk9HLI@2!oj}Pxa2dzZK7-c0GCSpIWL`n zMOI_mI3WY*i+$?`TTeMil-pab%{H4tCmFHu9)uV-*a^3d*Hv7}%dpEXX^)T0{{CC$ma{g`JDGI@iN)@?>(gY@TBcv%(3Ux)1+X>SzTa2vv2fo@)BnA>fibdclgWx zH^M*lHzafJ8g}q4-eo9cwwJ7nqBwK$5dQ!R2iS#!3u zGP-Hea_z{?2{!Q9@3;Fbv1=FRSpNVvRb5){QbwJBT8ewWga@au8b;fq4djT_*aEnb&oUAQr2PO z+FwY=X!QB31DXjgf}2)4WzULek~Ww$-jq~Ng2 z801}2a9o=rF9q=vA+{e-mDsHsZ8HA=AC$(nt8^VH<-ZH#8E?ZGOEi2fM+t<<#-}1z zkBBw>HyegEU(GI+sbn>H8jtafndR|c;*2`%ry6V7B8)#BYftla_XfXOaj2#Z=Bjtp z6vmANF*`Q7sCm3!4~115ShD(1XIL!HvH{rm{{UYgi#c}3s_PCoRu!he0pYym^N*Bm zH=ThS_!VvbFAw}j!d$vupuW>k7ez8!`h!KI(YFo1x zPsUm7R{GM40gl3&&5vl@0F^t;tt!)D#JYx763@9(C4n(Avr@0+E(`pZu*yeanl ziBmL13pbni?b`hA^k9~6N$VN*nfi)UZL-T>AE|A)^#x23Wk)l()P&PVeTy4taJ0To z_}Q6Jbr%tJ8lE2~U^tj9KaJjbJCbqZ7t-7;OQo6yn)2Uf=oyok-wd&*RkoXmSpi1=5f1!qKZk2Qje0{YHXJ2 z)HKP{odW>OYP)Ja+Vx0OJclF^u37gC&djeJeASl$F!cP4iG`=*;}7=O>00Vq=NWj* z%eJc8pq}rX%lr3>YH8D@r%u5+WUNfv zl7B1Nb1~inL4iS>EE9dAku0q(7U=qIlJAExOt;~@kuA}6D&@3WR2vvXTW+o{qm;3A zXO-&-6I8N!?ZR+q8o?IZ#2L1vT}BJ>?3{5Ld1}l!cSfew`L0T7$Duj5hE<}f@oFsp z0MYyQ_=p6_ZP^!L4BBfJfqhMxUBApYBUs0STF2}E03(MEr$qiio>nh&+(5=!lw7Ti zhSl-{Zw%Gy$jYZpz^e+s9faT}ZiZVUAK}ZIRiR;0FW6rG^_BVmhz`DLjy?E9Yyw?_BWHcGc?Vu1}HOR3}?QKAP~!4bEEyso&36=wk&gkboa zhQnbvSy&fc23?C2P>YvUkUb_2GixVtIV}FK!Na;+plQ!Cz8h3a@iM_~vO#g3XtwNA zJ0T@{wc=N;2%5$-O7k)7pKd18o%=3D%2!Zf7d;vV#B`2 zbx09%tUK1c6T@gFkHIS&pBo%kT3l_ zCRhH8bqu=C^R{xcy{+$9o{c}V9SxF=J0{~#!rvW?1WJBE{P4YYA>8cN=v6 z{zmCm220F+GODHOIQa`KWyc`>wQWN7w$**7Ri`#%DCJ}67|lgKp*e39?k*e3MZ|Id zZ#e-soTqL3c<(k4uu(`hUGaNz)bu=jb_UFj6y1(er^l8u%&mpGGZT!qFFLbx6lQCS zzLl!u-j>-wui{+JwR(NLva7XSo2a2H4h1!Dv|pwICg*vNx%o`DCbStBU29}sEIC*t zCUq7603HW$KCUvHT#IHdjh0Rp9XNyirai(l7M&D%tJb)939M9RCp@|s>{(IcV^(LC zwP3R~XPrfr=7P zO{UXt2CBA=he3w|J{7RjZF8$=i;-Z7ov>WxXtq+*df-=?*!Nv6!gYrj%dlv8`bINH z(TuZ7%2@dMHO<&XcqMk*TunzUWqQSeCa+0}sbf4#D|xk3>k`{-9jD%Rx zz3CU)Ve}rlPL+&tD@tnxjAOaJ^0NG@+C8si*<#jr6&RSx(29_3OaK7SxbMA*UF-aQ zE6?I6FzD+l(G`Y1jfjg@Jv9Yh{JX0HH?WcGVSTALG#s~tkqLrsCvOh(e+7P{Pm6f} z04MN;N-^Ju3v$)%$z3R7;%0U7b?QxemXwCPdXsh-uFdf+10PfPR>~5uh;nL7W17|+ zY|fhKR-1CTQex0d^6feg4KF%YMWWs7$J!3xC7HFUy6Y@kZ&j9?NV36O*yP)nQ)FY| z=!ivnKAf{33lfI;@-0d!#g)N=L`Yu5T>I$FdwHS<}r(*JPwj)3zPz((o;OEdriE1rVPez-8(Lwl;!fR zGji6Mm6L7l)*#|lvNJ5OOrT~!+T;XcVAR)Lk%?_qU_Gl!<=(QrL4-|78g((PjfsNu z`0+fgt2W~lcn|e5t3!=JjfAE)3&V|afY%`x*dpeziKsz!HbY)3LxV%d(xc#5BVxEW zV%N4#1pr4{rgum1bom!t>WtkJp&h_~u>GuMU`d1HMJy zAejxaQa(i+pY#}EhBR*#iv&L1JB4|B4*;-pvsKei47`3lZZMW4P-ZHm#JjDL@@ZZBbna8U&cyb(HO{UhjHnp&3WW2apV{6$h z)vWiTtTREny2cEV)Jb+jyxwmsJX+t;cxScupTp63koDGLb!IE|=ye9wiv5 z^5o=KjKAe-EsKd(GQ+TzTiY)`Xin!Q(6bLMDzc1GMmC}JRMnb=smR-=d5O|xr%tJ= z$-lVIw;30d1Cp^`j zYQZqkp;UmYHQLSD`W`ow z$M})A#IN1;O$6_j1RzADv8Q2K@Lo}vD!x#bTITz*&>OCMB8D>i0!y=OVeXe*8Yxh!EnB0z}p?Jt_@T0`Th#aWA_rIn>gU1PKbO#b)UbDYc;G~d<@Ap5hMXOZpRh!sB z?blvdKrKzT9f|&4QFLa50dsO9tOGWDw-i&<20I+-#MxK#|w$ z^6EQ_czXUnT?K}`e|RG)R3B*UQV@#ano)=N<;hi9^Wb|zLxa&U2Z0f6KrQVX%+;KN z5|G)U1kYh7vGXt-qdEk0@%P^eP#^#F7KWWYy26U@);WXA+lwCPw@9?N?0I3k0wQ`-2bc1F=%*nnxFGb}{eRvviSad-{|{;|GMh%Gq3fAp8)MgiBqp`Uo>O$V~5 zaEV=}`ozKS)Nx~ti;EV=Oj2(7(PaJPhikId4?EjDWD{59pXd&Bcif!zaomQKG<5Iu z>Nf$Ov;aM<-$J+C(i?nLKP?!t)bB=+KHR;V(T$`KIFvF%vOW?>91h&@n3--y7yYC0 zFcR~-7Id!vLCB$2C(csU=5}-&Iiq&V=C0_o=&!MBl-$^(TRx928#JR08r;ZR|g}y#0_S8gYyHOu~?5%lW`&^UaFNM&B`;odXTOQamh%^-q0-G1!-Asrx+u@DZ8NyLXr9(40I$ht$*O1LAp&j(k+}@- zyLuTJA*Zjo~-O^g6_D<)ad$ z>mL=cR1>f3o;5t9TU66U?MnHOmG>|x^4{w0|57&cL2WKIe(WCYd@wH4lNatOavAQ& zM$J0wb@9VlmA}rs9GqMVI>1tOZ@}>VRR@L$$0F4VJFv{*KY%#hu!BeC`X00=nQkFT zN*>X(5!n$b`_JtPKc{@-4Xe9T63mk4DzyMz$VZHKbH88FtttQTnxQz~^Uv3x392H5 z9kj*x-s~95a{EAZZ-jtht2CHM$tC}jXFOoEnV9>CA|etQzDX`cr1V0=%ZYaqwy53U zVwi`m3)x<3khfqrP7u}L>k?S!=|JHV#`@u3QeARsbj8D>)kmbZFg__)n52yF3H1E~4fZ^(^KhDAZu zw?qZvug+DoL0#1FvjM!pEtjSs)K!9XH}MnA6fvx9f47hRKJ9uh4$`iq7$gyq@PUAQ zu_rl~#1-*bnegCo1HH%jB!E23ovcT6bIMNuT1p8{kUYY=ygwFyZmg(>;>U z;*BW0yCfIdF8P?g-*XEpn|NVirTWq(jBjZlGnX<<>E4l|cUiV$A@udj z3*(Wi6z6NTJ#Nb@ydSrWtE8*K>9*mnrez|!0v(RkFncg?UwKU^kctuR=Z5{F8KMpL zAiBS$%TN+e({Ij|lG#j!7g9g}_h04Z`;km8MtA?salGFhDj@ZOYY>nlxA$PCj3>0) zj#%(M`#HqFb+51_s8Jb|+f(28vt^;zJNswSBuBu5($FROR9f8|PZf80D~3MpvYUNC z-{(HS+oYODUg>3;d;Grl*`c`A8S%m4*1aPdDvC$748DPdkAV}*>|P3nZv!9Nq0)m>&OzN z?)VVk=kr)2>S+I#YxNq7rMI9iIT!Bf`Vi(-oC)+j@UrL})`5Z{#F9qg> znW$W5YgkL6Lb9mjGJ}mEbX%?TCuf(>$x`?p!O`NTDgm!64F*C^Tb1m+7#r&feMfo< z*xsg8g|g7*+*qW~GGDD!=y*&VnY4+vTv)w_*ek0U$2PnsZNImN?$Q2(<+@9rD$ZDa zut4Gfq}d@%zPUrFw6t5w!-&r2)`J6z=KV*~CVl^eh@kFvVa7=mj zA9wS_Ib7?F?g2c|U8E3gP49As3k$0L_R~oT;CRsf0C~c1rWW|lPIpSK9$@3(U3&<9 zAYMkti4S=2y`Gd2gT5V0JyNGchuhEi{og9xcP5!OShUTA;N1@0Vcvs}%@Z0ke8WFv z4N4+NS9jml+>2L&t898XL4`i8x88Ju+1-2pNq=}%^7+Z9Z-2&vO}2>lj$U~Ecvis4 zFots2tBV?9;pXBi?n`ApsNt({v5Mg$t0&*d&$n00FRatz;{^}&k3T9Y@wM&w9P~s@ zEZ{2%-x2#1-&6T%i)-#yaEFCCdwqID1X&4@VEfq|hJI==b;ofKjHXBk#49d%xYrf^ zgAedF9-9{yn&z-tmz?XUh~c9&+wlCI5WyUCHNjxeNMf5bn7ofo5;V5h(6wHY7NiaOxn5Hs74x8LHpenjC0sJ zb$KREu%THV{%z1BjbG^$Cn5z>|0TxDZ3Hud-B0&#geT%R@KO(lF}Z#?VubV)Kbk@( z@48F2KJ^J;(5DtVgTm%V%^1&Y>jw@pjf3VEp97qq#lbf}WCYc3e*0z$0l@->m9p!g zoa#eNqqo^VGrl* zs*oAac$MV-@P#kqRDLr0HUvXxDuc7MVy`An#i+Y}`6jywpA?bmx_h4=H9WmKC(Q`F@AA z?nHtC^dIg)%i4X;it%%R^87Dt-okEe_$vdQZYt~R2kJNOk-P%8!wlrh4>bLSb-oOQ zJ`PEMg8d8Cw;Jv&HFW0EEPFPw5!vmlk}u%xgxOHZ0-RJYwbSwU9<8F8E2lgcCse7F z{MfIE%ykQBA@PN&eT*T!Vv2@@wIuJq9ucqgJ~hv0QBg2Z?)^E3=|oy*e7;KIXE|Y@ zBnilw-EIqif_vA05v&@h8oZI8YcGE?KF7~+599ky)ij7sL4Jmu&3ZqFL31u~iv@yz z!S2*%H&IdM{XTrV(bkGmf+)J=p&Ilu(AKx25v!pC3e}#$4}_zk7D~6GqafdItx{eG z+68md=JT5u`JMyAd)l2&sLbA@ya^vRRXs}jYcjI~+R;UhLyAj*3^R&9m&N~u-?&Y_ zpf-3ghWFR=&l+E^^z|C3z47hdrONZ>%P^<>+C{wwxME3~_bET3dq2SD9RfP2()y+x zrWE#)GqzjmoL!IqNx1V(=EHEE>+smS*4Q#^>vp|lGC1JyT^}~%e(>i+1BUV4=k7Yx zA#=(k`>3_fgbC7F*`yHLO{sxZCj38x9k1wGUVfT~6|Hzn{)zS|tM5X?uBNnx%GJ#j#%tL$f;97SWtsU;xvv}!> zB(@|oom^zn0Y2wCf||v(ytdIiK+4U}*B^9|VIEjO34Uz={%lI@ELNWxi?8PFYvvb9 z6AgOZ_90Mh8Ohw%ASidR?CmE=*((ki_q}+})P}glIXsv6CSO9-RW%AtyBts!_e(aw zP+!by@hid4RK@gZ0CgBGrdxrCFp{1Vki;u(wAvl#A}ZfqvLVT#!R9 z5~BH=SKz-~MI}f#lis4Q-#$IQC_!ers$KmiN3?MF6o_3Qy}D%&c4;(DCMCs9@6#pLFp|?YGiIs!LQdm1t_g_|>;H#$&*qOKw$W<@m;ZM5UmVl*N)^Mm}8N zIp#j|el56rh{5(Rh39;()q9uK+sRVvNJ%51vFgI5eG;e_rc2oVsr195^YZ??cdFvT zRPorvbSfqvVM)mEe(4X}&vLf>oM5`_9Z15}>@_VOQOKTW%snKlIy$|eS&)k9E~S^ z<*?1>>mTHyt)J4NqMi1R22{2ctgKIL_OPK$VgMB%SLJQ4V)ot^irsoo{AWNEL# z_P4J_V{F!p`M186v=@NNU8_ITN$GEYS{oKxPgd$h#Ggd!39Su~HI0qku2+GkoC1mI zgP9Z8FCV@fd%vH-e)qW6jmO(Ek5$Jl&sM0>b*dcW`8qQH!tM7r$!GZ@^eAHynlgDM z3q}K`qjwkk&#&lc>+(wB-x_OPv`&r)AVGBn+}%~l?U*GEo3r*3CNDHX(B_5D#^G@x{8z=# zFYSUd8J^A&y06+oH;{dsZShCt{~&d!7(s1G`AxQHKRM%!D`gpz24roDJj`u0*?l*3k zRjoRNPSk-E>sf`~bsOm;JtjlTEJ}TIYw=8PYRrucb5Ct%MCa~A+RK6fkxKXN5p^j# zxA&Vm7Lqjg9UZLW+m0P% z-|Z?nEZc89@#DT(9pX3|5NQ@g78EYb8aHvyNqZ8Fdwisyf2#csSn^P^dJ647ZD-LG zwP{4~d%xjg6A}KUEVRGuHDTv1(V-h-Jru~F@lxe36l_$k!9=EqTbn$aOcMY<{QO5O zk*)qbUa<*g!uzg2d2t=(KKhrUXvMjT?bGN7mgsAz#d2n2g@`1V@A`~}li!C}w-5Hy zW=)E3=k;hK0C^Epq&gPFwt)ptc2tC1SKmJbpT1SOx9e~J+jAY>Kwp0#xgOXG?o+33bes7B!l!Lvv%Z%sMR z;Ok*kROFy}#g|Oxh~N_)g`+BB;KA;pnGf>g=`2+~EXf}^bly&tb_uBX2Ko9>IyCW} z(6rC&|6FDuqrsrM=1ygW_DR0 zq29aJ{Q5lU+xk`KUi*8k{=sZX>zqSOd5+rAee9W*q!@vWS21j6dB%P7l=T5cn^^$5 zJE{S0iq{`ix$Vn^#RZHqR@`={g{-kF5ahaEzm~|4A%z6|Dvdyf=%`U$E4e3nyjH4E z-M2I|D>E&enD5+H`$fe|3(YaYV%3QI0$)OfzkrQZPSu+3iy3xf5g)02R{umGCcf^x z91OG1djckOZkM*%^(pvhG9GdoKkS~tLV*7y(ENE0ZP($PBp5Bo!8~7w8aw0#)oEY7 z6UhGKRE@eP#tdAUVVCmwtgXT1yU;*f{rM(G?Nv}fPA-6-oZmUxxiT{J-i+5Lf6cR= zT4lu)&1Y=m;{T)=E5|+qTWFZL=V;74WJ-eWKA&5ezscM|(iO}ZiQ1hB^A>DNmQqCY zc30dPGBzGGA{oeei7IOg9!%L7i!pNn^QFkEAkH1t`0Qo)w z7PmIR7Ix8WB6jbRVMck{-ugmZm&{~iS{Em`hnb5=6w~WZM({YJFhL)0X+LgHnY-Rlm7R6VIoXM-@qEo%mhb6gwV%_M6T|c zVNc`n9aFRp5x5LV>2oU*P&9tK}I%B1bHmPxK%Qx^aa04kt$?P zhxa3&@vL*n9KA702b9@4g6!UKJ> zA480wS9!rg9#>=9*^oc7XCXD}9mf)O4n()>CJ|S+p9zlv`a-}aK%OyqtRLp+sRIi0 zYB$sSAUTL0rQp?iYZ@}dVM_8m&I<>9rM7WR7hP3bxo5XxOyA+trbwH+N?tWI!usV| z-a=NVqa&M=`};pKn8cw=S@NNtclsWVlxXwhX1bIcP0;r_INO`dpmy-AfRxnuv9Ty=Y zxv7fs736{3^@y%oSGKqV0IPl3B&e~;gT&(yQ#u@ZQ79V0bb1)IVm}LC`WSH7UNS#j zNFeb!q2hBcU?rW$0>G4ktH*-PN#l3=WsOdZz6_f=-qZA;^1jccoM((@1a6s^ybP;pI6hmu+n2W=N80t-MaUbA{`dii zsFPNpb~XM9$Gxt}J(Y@St>9&hG=4a`PYM;9F)tfsG$?f-MaRZMIMISZc@bpL@}SJ% zJj#~70~SOyzg@*9Gnh4LwrwKF2}HKLg-bU zqeUPo4G`f-)7`z)*b15v$do3pm33jvxlaeKlq#88pI+Y2P@!a8D@%+$Dw|naIeMm5 z3Y%jf?z#2Qz`9f*gESM$Jj))rA>421e6Qvx*G5D!M@8fzj%hF@(ipG-s9;P}=bkrN zI_Q3=kSI{TnP)tv6b9I%5%9d@n^EU-FELSQ5))T21JJR`*&;_R<+-Z;56c4q`3Zos zaFslen*F`K>RdI^DILx>F884Mqu8lKQqn|B$JBC+?s%+gWDf0Cj)6%4zx(+E@gw^za zr0-(FxoQHWNXe29+h%wdM+rxGxg(p|=2HQm&F}wzwD-So@Bbdk{{?##H*PX9QZfq& zK9FP45wfOwB=63uOC9=L`2V84oBxaUY}KT>34%w^Q`r-#WNvk4)M#WNNGNyO1L0Zq zOAKxUE%7ZxNO7cPfE$_4wAonodsqdx?s_^vFhcwOc>s(bQZ^w{2_fF3`J~#n*%jA3 zO|zWY>cH^(E~Yvt;4v@+$ydA+>VIeIO#sH;rtz7+;U=WVR)h$YQJN;xe2HVM^_0t) zu&fTW1U7^?3dvtYkQ=d45sVQ|BN-%iF%OUnK7RvSPzdfu2ZN1}4R%f0X-=g>hN+st zeN^U~khE(iK3OTLgb7wRQ3uVM`JwS6htnMtLcH4NRe*98KsH=#m0e^_UvZ8%a~1Gd z*_zD!^q39fD!ydTRp-fq%Ixf64>BCd+{tK4iUIr*kpBVQ?y`o$8y$u^tx|w)ieu{_ zR%?()HEJ4G1c?<+(a*l5qq|%1PKZ#_ZMYg(G&y<29;CvZT1SlI&U$g0&zCdHA}rSG zn2<*Vd)&rx6vD^4aE;r>#fV{=_439NzQ zu5^I$me+witGn=}lGY`0yy79d1iNBp%CZOyn)wzQ##Rt0{@PJRIJz@)9$~O=A`%Y} z)&sX%gI$|1WL*uJ99fREcNWA^2sQE}TY5BNAAImyROylwlzUS@Z0IA56?ker4e}1{ zTqcXGmzeNYJdSh@9t5q)emw44vAbu@9z4%%Ssltr}m1Po&T!m8} zw)kr)$3ipt$I6VY->7JEM7u~0BAHkoYxDFN{iQg~XhQC+ey$giN8A^}G+qR$utV78 zP{*A+s288~gAiT|;)Q7&zO7Y9xRdu@2rlTUhAcfBaw8fKiG{SKEBLl9SsTm+f`qG4 zQ!j{}VJc;0=B@bxI~lb}r+2J&w716CN@IeUn=ne1ThfLMe<`%RUjMA3`4pfBQfLX& z{YD3@353Zfr3-S0f^kD5S}ky#RwtI#y498UtxwRn7E-)NHW~Wke=9VMJXXMVC-Q6s zN-=Po*P=Qho!H+TQUvDxDp)#QFa15@J0qJO^Kf15bTEE6IRkgGSjnmsC%jQqdFhQi zmPzirAis+|>NxEG-sdR?cr1}+DA$FAYD@IML1RYDl+0o|1ntu(C`NOq&Vy>**= zF+vIfEZ>s#j`dy@`o#-Ja}51}k;bKq;vp!61Zzri!S4w&cgUvi88+T7wIA=0SsN2a z%Zlj#5XZ}wjqSOMv4;(Pce~fJz{NDu(z~k_;F|gp*Xed&gm2{657f@G>|PUS9huRk z#c!5+(P)_2rxGrFP=K-fLI^2-TINPslos_Q0MBhmbmf*s zkmXf1B!?SlO#M}ws`C2#2l|KJUSMShQO$$Ktk%x#Wasiu_SdOBXExN1l*{i*-M7X3 z1rym@7i%r??O=)E2G0A^d<-W`%iM|!&Bj?)6hWdI1{|K0Ob?qnw5O z)IG?JI$m(v@@)N1^CooS^oNlQwq&>Mp~hF#`@8^Z+m`m;I*i^LW)$&3`_+`#bRy-0(nVQVDcr$Dmj zt*R0xuX}rkOtvrILW)$N2&VJN3!& zAsafj0SbxTaaAf6M>UUXrS%}m!bsD{AaxP3__VdPl#4ZJ&el}xo8MXz;`2Xp`PD>H zCm6D)2&sK#YzL%H8FuiM!-8*ms2OgYY^0q5A*~PXIV(3!r(5>X8}MI@WFv{FY-wc3 z7vB0cXt<8#3ph^!YVT?baib0s#9KmEIT%p!S=q42XF^XE_h;v9vi0p+9$U~(X!(kF?22LG^7e+|M@=@PWMAg~P^Ml=5w2g_KW>6wdadqojbwxmoGOVlxlRnFb} z5Vcrk{l#=2Hn<5NmQu~hJ7zyhxIw?ha-n*vzOJhT|YX)T^ zk$%cKZ!U793R;|Bbn2R;z1Hc&bsit~$#Yhn^cclc#n>7J>>>L39H_G~LH&H}oL6$d z=vh8?Dd6*bz2vjHz(VQ1XRh97 zmlB7^(`j{rkG)94U#f&sDcz5AGZ_$i`h&57*znOi9yUbnW5wL_6d7QT8R)zODil|Q z{3_2UNvH&;9m7b+J}YoIh^=sfHHI074<15WwuFVG?$X7-|^e#%E! zZO`lb(aj0DFO;;=vsgk-(R;3Smp@j`V6Sj)` z#*hQs@4bCnvlf1lBadkO)KpF?AIq6vj3VKXp$}R_q^}xNd@7FdGYtSjic^sN=Y$`w z&8f&E^40`CYC62*zU4JBL>lhLRNci5UdS4*%B1Z7(L&6CtI`>03{DPdio~BF!cB>F ze?%**o(?uQrnUj}t+fA#J7(+h9Z)*T*4*FEEZ?PIx_kZX2$x8>5NAp8IzEbb@1QWMy! zdEd^{W1ibbZzrXomn-hNKr4M9j7%oxQmA{Lo(3vPnLrcSl~#~bIltF`5-uO}OJSzo zyVIo9moGm9W9+4K$&-EAxnb`lu=(uv#h#tCZ_h-{K#;3ADg~f$$rw{Ak5E$lD!UQz znMgBZRJG1+Pzz4U5RN$W?SEj$vv>?n8&~0YkP*M1t<$;R*#XUbq%H;En2f0N2Icem`(lB2xnhJ-o;ph!O)$! z!n7(9`JH_X1)iVTrD&>QX>f4Tg!E_hCPj;TgNSI_Ht`HgsOll?yC#VZ;hA&KGdWL* zBKoK77@KE?)BMitTtY%JNr&t~xMNra{Sk-+DX!wy2RtmW20>GB`*Vo}zV{u2q}m1f zqftX2t5i;d0yAfMveB%_UQk{!YpTcodH+!-#vX_xqznt`r)gbc>7kv9k0msMc`z}R zS@TKF>1sgNQRY)ac2V$R3wXc7tEN5`$MX0Tc%3(XD#*(Ye#w5HgH;3x_ziq4%fLSJ zj{9I}zb9GJpt5TFqy-E&E&X~bDsNhqkrYz#1XeuO#DJ3-?qlxflGP8%wLJz!+Oft= zs4KOWPw;ZwhVr-U=yw?x#Q;wshsgc`txj1mEbUu?b?c(|CpH3Jn^KqzrZpVsy)O#n z#l2Pr*qv1P#>NO`7RR_jG(x1vnA}jibf{@n%wX;zJ&jQn+soz`OFhlkFb3Z3lffPR z=98D=OAgejh$Af;+((bGEgqcpasVsSPBD~FhBa7acMWhMT?%gHof^_0v_4{=m?TfF zl%;!oPDa+k4&YIuv|U|I0iQ~C}Rx1CY=ld8jO1ahK>)A6_&wJu2osKewQu5-$!_>lL~eSlndmp1+**-fq6}K+B2gbv%Uo4 zl52>(ipV25hP68}LO@p*b)ea@t3UIJp!+&XSnEf0y4Wg*+Bo6Z`42++2>PXqJkhyi z&;<^_y9%ZCzb9R(hpff&0UwWvH&KqSLnpvhqk>1#Jse0fTmYIyH_0Cp{|CmG$$>}a z5E*TT0mIk@YZj~ZJYr>&kMc+e<^gsU^4)Q_TNew={CZIGcmf4apyF{Mt~A-n&kP9r zu;PI#sPz%#y~>NBk#BEOWtp8tl2d^COWL}egDD6pAl&+XBNISjCmT}(iRb3#$Yi*y z$8oAP#^vk-ncKrE5Bogv-Xw6vkJM}CW?%x%NAx<>P8j!al@4ef+tnTM6!$jr6z8CU0@ByTknuRh12D57er_{K{ztF zlyOiFDfM6Hb&R)$K5ZS>p-hVz`lS8#>*k6hk+)FaHm%Zcljed=KKNmU} z7m9zgg+h#d`2j2bf}bJ*8w1meTAZ88i@CYSfLUengLywwcEWJAy~I$p>xw@gM-ERT zerdB*|D|{%Uqa+Onk$l`aUHz_Mv0X2Nl9cQlM4wPrTxNt{rH_Ft1VaLixL>5)tEH} z(iwzgJI3vY8O0>V@*vk~RGDToo=EGQDc9CGk3XvpyXHm(WvQzZgmQH)linD`T8mBB zK&Fm82p8;;7hoI_ZutQlZA{91!|K41l235EEvd4qGPMOAhZPwBPzK6+hG#JY;igti z*pJoWkaq1B|6ee(uCiXA75?c9ZVz&3O0`^qidO-rTdgt1WiMvoaEwU*Ad#NSl1Tq>U}{xFjXPg5_maD$E3W#; zYcYPJvL>+PvTW-tbMG`L{i2}PYaw3W;ZS_87yt^_Vjy>6-&%Z0X>1%AjL~A3r4uer z(vqzX^;(zzl)8^Qj(y6@fP}ULgR62Ai>obl3|E~{Hn@s2ZG#2Pol8J0^3+)y^k}iy zYxuYFhb~0$&#X+WvJj(x;!Z&mlIix;#V^*hA~4y+(8^{JTV+0#|@|Pw-(D7G7A-h zO4+MnMF=yKPU9JF(yI8Z3qump2dA-*8)JeVsvrq)FH9Df;SfUHh@6)>hLJ5F`w=&; zn*qV{GaYB$%_m2729?J>i-j@cIV)vPxrLefuGs)VxhD#npuyS}sFs5JW8EhztW-(K7=Jvt5Et3Fv)fV5)4pFI_|$P7wP zSj%6#Ky`EBuLBH+veOpF)KwI=RGOyWiGV8kf3xySfUtdKCLfw}iEsAd&@DJN%!30X zbNAl`z#y@!Eb{|yTsD*KB_T<$a3~82DiZ26ksx73x*yDvJuDydi=XPu!``EYBSF&a z$cZ9X32vcSk7+ICz?{z27-jNgFwcN>6>%33IBqa48#(+*g4Q<3;P}je>cy)-u_qH5Nw*BPj^i3l;qukw9#B`J=dnN>9y)>35bWs%Wa|Y34~eLI*gQp*l0zSw3V3v!&JDNxS#e?=Dbb@ zXbm<`EeO8eG&DC%^kptl9#PNP1iWY+{nlH(0rMjE=$3>k4_b@ddWaP(^E!)7IhDCI zKI)Oq{WP1uR2fTz=X4Tl8#5EkX@}|9E4a<^4vmTqw8venV@F-qaCkb%!#_S#^Zr@P zm#_NUh9{yb7UKcBEV;p_L2fXeO8%Y2F_^b+SM@e@4o9+ukjJexK`NPkYBO^YbnMl- zv=A8o@yj#SXF{yksAIS%7Cld2=`8NC1q#h>R7p;*AmE5yWTdkco+@?J!#9|Q!t$!K zKHiYXY&V%uvF6F{*PY3pI)$|RvllwgEoq<@5 zj_l268-FQsUT^8UHXYZz+4-Y#;&GK0l(u%~=}@(nz61wSg${4;U&itp;{AzweKAmi zL$5et99Yb1NVGSQ2n{oO`RXO9?tT)?L-mUa}w-3;~(XhWh>O6ql(|sWgwm)*tSUV=FVpi z>GZpeQQ1aMR5&Kbg;~fB%0r5rr{vXMPV;c|FEMp#vL^_JmSswhB)jlBQbOMWyUC$)Rnko;b= z{%l9fs!U#|s@in9a9!YBAx;f7XRs+l;CoymturzmSC-tC4N_QtGkq*)SUQ)d#?3Vl?yIX$9 z7Hr*}URmjdugbnjXS)gPKpEi2^c1`W<$Jr6)tX&)%}tuXdd!gBTI{}KCcpN+V~#iJ z&qQ_lV}or2dk0l43LEQcFI;-$KsyLGA_ulY1aeloSg(TVY06pVTJBh?AZbukRFK6b zch;O~+O(i1SNgGescX7|*Txsa{%LWeDj8Zc$2=`J;=8*D1_O$s|I_&2N9$ssThfrqepC`ZTfK2|<~>pSv+p~BU=g$dRgS#~02higK&j#3pyR?)@E=0o4aat@vQC(r_ zdhJ8+tmd;fF@Gsc4y}4;)#reAx7#A)mWxbbu-e&*yyShVdtWPwiw#w^)c!K=VZXWA z!j(STWk^@;V667)My^Uz^-m7`y?ymxCO_3lHg%@4?z?wb8f=L>p7+?a2i%_}RUM=` z+k=7{>6GyHaU+_`ZDq%hz5m|IeZjJW#lj4mxL*Zc=(#YeOeXLWoD< zoIcRHy@{cY(){D^Z9rJqBkp_;&RhNGhZ9wAwFB&RbNY5QTc`Mt`kQ+Q;*&>GcOZU# zqhP-6-E&xwG~peFt$)RtgSroPRvgs*N-X=cDWV9~$cE{Cn`wUEnXt7QY;oYX<>Z3snzK6Gv_HV~r_WP+;tnqN^3spyLe3AeBgcL~FCi}JhLhiM+lbxUX#M5$@ zpsIq>o2>#NomnBx<`)vO|NL-C$&q<@?x?}ezO|xM5%Q_fdO}o$t^z{+uI6Uvfr%)5 zSLQoeHMeivug&IizWdW?z?@)U)R|?B_r3?j-huX4yGiG7-n^uCLGMN--Q9U8KEEe0 zblBc{+Hudb$!BKX+b?OBM=2Qi)0_4Q1c(^7_3AL`kH!@Jm)xfI<`rAc@4EpXB=})l zjRr0!)$fDWWi-h&!Vm$yhgFI8{+iKIW4(VVa16Ls>Ht@y7=na4$`69JUj0Z0nQg%0b_E?uxRi=#-Vs{G?b{$r2rZ>d$dJ~9 zfprHv+Q8^c!zLnAZ8nzONzCr&T948sz7Vn9g!XKxLB}N{mS}ay9f~?ACrk>}S{xu! zo?YT0g@OvGkM@qpg53Kj5dYv0O3M;{BvuVe1X1CPw_5wbWA)kp{Q1eg4)HeCG` z<3~>Ci_SRF*4hmjfJi!dSP7XqGi;xe>DQBv% z54Miqiuw691j(2Dp!)1Dsqu8Om)8Mu{_DCdVp$6E#9= z9nxN^+p!2jB=pLl$_+X-|A?>Z*o%M+m^Rym8B#D>wbzO9?kn$zxXt#1cFSknQSkz= z{R`CdP|Dped9R8^D#O-1w~DGXY%vQlI7nPU2YE3Wg7U^~f;#ep37+=5EAyo-v^`AQ zO?J=86>}U{{qH}b3rox-S|wiJF8$1}Z{qD6qYqh&u)Va?df#8&8g#C>V`!KE=TYs| zI=x%eBq4I_z_rzPhHGRIkT*f-tnJ;E$Nx&@Er$Pe zG8gW#7cJ}m9E_5&`85R+CDD`w)N_a^wlU&-u0Dm4}@)!ISVGLj7R4!uMwp-@&R-9@-+sCAu zn;nEW^|>+a+ME4!`hMahgnp;wm~5#)x6&LDwpyc6pw>}s&+)`2A=X%*ny7Zfvb0hU z>Yb_kdB7TYEUA+n!g+~G2TjURJ7qqoT|CV6uo3_VaqIfxVljnt!J~QL1zc^Hz2gGprO@Vm}`d=-)p$V8u)61=dfXWAsc6Nu%h(X<*)arLFkfVTpF=sxZs31(Ia= zUxSGIooai3?dGEcua@6}jZ14+!0azL2(afvB^#beq4tGSt!InV*n!%)Se<>%8t5NJ z%C0oApJv+0tkaWYZ^vxznz5zVER8*}yjl1BJRx+W&rR{yts1Tgj?y+Yl8vFM^4IXy zsf6_s+5^f7C+pp23;@^$QF~I@2k~n8l(z!mb&el_`;QvW$3cK?+YQuU>HZc$9zE8E zeKCR;`;pVQ63h!zIuws$rvLYo}deduj4^KC(5cNAxHxw~}elzv+jh zoBWOr=-`2%=GC%EEyFFzdkK8^h!*>hL;D%h z!Zz>ra6|M{p&UsEz212^Qj62d%6wcju*mTTKiG;;MaPIoj@oagE<()w+B?OcQP_OU z!d^-DA}NQv;(`vyyV{|2jgq4-_Rhz96Sur+Ci1ny$r7#g&mPP@IDGgYxRk^bUpH52 zLx+1TWxJRDlviS{bSLt)W%D;5qhNbkQ5+h4^$}F33^c&ki71jUpIa}E6q!t8@ zoNkIGJpD!{6b@z`b97;EE96g&xZT=6VZ3nA+h;;i-FW>O*!^GfGi-bJE0KVDXRKJX ze+%zUV)^i`+PC;5bUjjWONL$)UMq{ul3LK6$LX^S>?MekXVI zskLw)WaZLatoWITKPpAKvUSwS%D?wtiIs?sedVOMj_hN-&gsk>QizBw|Ii@n97w|< z_5)j9Dw$FC9Bg7|Mz)wyyj2FH*p062%bH$4U!z>5uH4*?GiuEcVvMJGWm_d#_I1vCwZD zBiTRHdF6mcdM`6p<%S_P;CM}K~x})wlppYaBcg@fRC1>eGT9SkC>OV(n zm?jKbTm>@h0%K6zYMlqlH~qA_u83Titb|TaK*0T}X*Pn45!>wkN`#<7uSVJ(pv>pMi~5u<1KrkCN}!gcy1!pxKRWCR=I{^-)WUL(}Ivy@8_Nqgnhs0sPJgUV|8X< z{_Sw7H1|L$vpb|O#KGOI`;5(Z?n>vzMUnCB$1YfClSrUNBv-y94~_Oe-=qDAVM|Mo z*!!%r?Z&VN5Ery8PRfUseJc513xLxgaDKthJ3-i1I)VkgU^P!{UU#O1F7Y}_~Un&yJi~zT+uDeJ`PL7y=>^Uo00jp{09~BCKpBF<@Fi5?yhI@{hydb!T_xN!DA% z0_!)k8seM!ShhAB^jPMNeoLj6y>Z@J~}W`VPD` z+Z%fwB;Ip_{LxMLI#LPn*R*2>#8AM$j@}3j7C~AsdG8jHTEa8HAir6+)K8&c{%|2M zCLGo4R9_+4WqAG=FL`HGq!Io@z)&vz!Ro#|`IR%P07@$-Fzmput}BH2yX2m@@5;@&CZd0N*!{~rVjyznSySnDwrLnYm=iZB8ZS@U&twhy+t&E7*CkL(4WH(i9 zwG!Kr&)FU~uC9u_i8y$v+RZ7^c}r*v6B~V61b~WisfsS3mt#!A!@={+Y$Jhjhg=sW zU!d9GLlJ2|H0xdQBa**BkEt1O8L%RznY)9chwmZbjggv(1+JAM+xb=#Ivba-^~^Rb z?X$6nD1mLf=pBh3u69*#v3^r1w=HU9esxC#tk$YeZv^<#^rR;#x?nJ^OziwmYO;|} zBC&549JNv}72WHEUMqLkRC0)autm)rbR}?v4~=6cCqDo3O#6pz4ANE`a}YpG36?>u zdZk&tLl8U8umRr(rcarx7pRiq7B zya}dTu-Is{=04>(AjLAR<&vwx8sL0Z;@kUB&7hybQu$v|zR`liY`^O+R6FN=JI`J_t^19%=i6xKGYy zaneH4~ZAv#T-5m>WkV-R{tVWQQ@&ZIsUT^`y*G52up1)_qd3q2apNnK`&dPne zOTXTL(h9(lx^m6clGbAQDwL0nUAE{k&g?GyO#H?I1O3|2$3YzO@|8iq+*MNJqV4p) zHR$Rv^V{jtD%kIfyTfpuK`^a|0dD(zq1P2t7G3 zbF@jvR4O*|TVC|n123h34Ij`Tzx?xu+kfe{pQ4(+-s$f0g)oJbLGY*Bz5tmAXOMv) ztoCx#J4i05ko2G)7*`=@OF~SCB0mDu2w#}ig?q@dQ`6jsIz-u{&nhHLdNm}jm|jTK z@v5mcv}UQ$cd*!WdU{1hQb0skZ{3Q4-zapB7+yc|ornXD*u4BPmxnBRk&K9j*Q!tN37G;lT=; zQ_g~9o89|G#O=t4jn{g`mk<5X-E%)tI@fBOTI}}AlZR3Da|er8H~Zklt8ZYxJEvt& zUQ5u)KaregknIuQ9i1r?kSMv&TaO|)+{)v=RF_!{7WWCD8(1d3-MUg1k3?(2-`sT7 z#Coydc0rLB|I&SgPhXlTBNutz6CE4z_~P=pS0AiqvBAUaO9WCYvR^jLqeE_@@4x~s z(GNISD?XRkTnWy%{>;)tfJhX}bDv$)i=LI-48}8wnf?S=Q16qtzB1Kwgu3I7FA;ml z2iHu;rLTi(SrPN<%4^&89g|Gm4ZchhZB&Wl*k9s#`Z=RZEc-!GPf9oX*EtsnV z*%>wcQ4zH`GOky9>u#dJ+cHS_gX{t?6;_z*>BeY~i|_e*{`k%*q4#jtJ#z*AU9RSFVFNyI#c!p2wy2pr;t!y*4s{#H7Jz}U1LtQT8h@yvwvvO%g z%9yAZwR-Hn6`$Bf!#sF@?2T8WyKF9xFHK2It5CcSV*(?F=^t&p?=k5@48D)dl5!Zr zPt{Gel*ta4A*564Vk!*64(>#kB$`1(F|L$`lzznPcE&rnwc85UAx#A=VN=!A%!c0= zsC_9ExS`0KuiaZBF4f3(%dJ6Ok=$l%R(YN{Ocg7w!;)DgGXt&CYGZF08~PkSLE(f* zLW8b;F)mYQJb`h4dIe2KQ_n5j7Ef=KXTI*(6Mkha616Ao!PC!n$@@Ng zI>pw@xpN8$Z#bO0yeosazD07aAi!e5tVTw;hH`17lou4sagzoHvsfo$MIsn!8PGLC zCV6J6e93NqzNs@Nd2?OxvU0!I%VKqRbKCJ>;_~Cxe=cRli0;1->ZT_{bqiwU=AF*i>XyR| zTaJ1_i@(>#x~57uqA%~6E7JUwYI;nqAT-|BN$;=kf9_b&z1I%cE~`7L~^FvJHCXN6WUN^h=)5hVaZs1ePUZn{~0no?jBiX?0;j<27tJK`%|0 zaTkW@?)xd6TgHA@@bfO!n!d(mx(F86l+K@WQ#X`EKlS*i=}AKf45wNMg1d#?ssz~^eNv~s{Kim_sOz9maQtxKDpanoI1@p6;$9yebQhMdmd8{?1EISEB>fN zpplF?kS|anC&~G$0m7I6BlP^T`%7BLKwDL8I)raTETx*e<_TV+{t2@J z){ZAQh9E~{=CXu+RbzXV@{}9_i-Q$!(iQQTf4)}l2tYcQijT087OqaEpuirEW~Np) z?F3@#IpR-NP?$Hp$t}25A!sbDo`{W3n-UL)_f4Cn6X3UObk6A)KO(g2QMX}(oV(>>0 z>x{D|1gBeRG$g+tVNqMUe~4l^H-86rd-_vbZe?c2)T@4ILP6_5e`u+@w4#;OZ7H=h zdClgl{Kg_&wIlAfLro@`U)nM|+|o7JZCW0{1f=h0pIRos38?HS^138q=;#_ARIMa# z`A9%=49r2eWE=#qGz;$rW80m8{qP`dbGrV?pth@2PkFpmz+LBKj23a>tTn7%q`>v# zsF{s!*cdwPNz@GDG)dU1K-?j9%~%rI#r4c7n_v4|m+jLQ3m1uIj$u=GVCcU^`w1BR zJb+f`M=9!?!2hL_Yf-nVJV-MLzojgCG9u|K=Ur$F5^3CvF zYd%%Z!DG{P>$@yJnd!wmFH~0CB&dai&?bAWYj8~7b1~KRY)|QJS5evx7$I6Ly`$QP ziH8NIHD#5Lo;$oR46QR1A~Oq-k!Oh=a}@Y@sun88LKsN-rRXs;)$j~r#|)#?IOrAJ z-FA&YKK-oLlD=6Dn3FjY-g)j0b(4?MH^@Ux>2*?>kV+*GBmi&-{Oo~0gjwW_n(^xN zpzAChCR4Z~{&K~ze))@qI?9*nVo{0=AKPmAN~0(jRe|LVa%2>&h8woYonNl2YFkES zX3|S6_o6brKe-F0D=}Tu@8Yxm0`J(s*x+oj$4e>aKf$N9RHKXc%^opaTy(GD8uB-@ zFDKLe)C`g;%Z@rxu0HR;f$_Z4qLD7zTHRYL!({twYZ2e3hnxJoeoHn>Pj>Rl)6Z7Z zB}}vKEoF6g#5q#R&Q!BKpMczE+OPF!EP`}v{vM#|~l^2M&`S>%!r$UizO@i|E0;gPUn_Y6a#RbcI2~=r_#8R|JuiUSv~B?*nk;V}Q&4 zMr`PPae3@+q2ZVUNNVNl*Dn|e8MwTElF0aA;3pL_45!s#(sz*>deYzj;D4En*ya^j zbgHKPhSefELkSr)E-IHmn#r2`sEdpk3O;Cgm|17t9q1oL4ovo8e6)2SNGI$TCM`2D z(s7>-!C~BR_Lsz$u=UEd&cw12{5adp^&7oe=sTFWMl)7#@QuDy`&N&);kWdpQWZqR z));XYJtrQhIli_mXnwy5Wto+D}oE5-!zTC?elr7AIfTPc(F1 zB(e@ckUf2kz22mEfQ;mgY2-4z?lnEjo;H1$MB3YwSMOcSZxPi>qMJ!X-p1G^)pRHG#>1F-)+_TEiATRV*`*nwX1VzZ9Nu_ z5eZFvT)SwvuX-3!AKAHQyPlg&!B;Q&e>o|#X_JZSct=|x)Taa(U+{4nPRMUi>LPVKOP@V|R4BP>~g#etvK< zD`r}Sy)9S`*{}AG2+&TmyCFz>t(3m5xCtMzj@AZ`H?Ggs%wC*XsCI{wzl24(XBc;p zzejR$f8vb26SK~#Of-!PfLO`h^B8W5u0}I9gR^o6Y0y^ zs(L)Hpp{L1R>qrfyO)b<@4Kj-d6DxtwYJ|YMtFOb96gT-m#lbvwTtCrY!c`crucm0 zGN>KKD(7W7FZ>WE>_uTSd$r+G!m?_`31U3B%`!*zc}wo7KafEXnk+!C%!}z$dad;W zZp``3Pt{d%1~Y7VbzEOCayF1VCE#9hs^c#m+e?@#)gXW;Q~Q9VW>u#nv)#xwyeWNX z13tOirouI?eDmn0dqHzVDSX!5ga9AHnovDQ-B-dhq^Vs|EP? z^;|ue+yco{2-I=E>;|ESnD)bV{ZGO!3b2DeG5WU5_R{*gRu92#11YOcaIcT}=utbt zuD1G}SsIQsx>wsNM0=O~fKfYJgT2nc#zSJzsaVb_Az0^)zjFTF57zL{EV$3?H<+tc znM&D2G7_1c+pWdY8tIVurGJ1JDOdG_FCn%nx(F)z5+Rj#zpil#!B%lWJRPy%c~w-{ zhqM>K(BQrPfs|5-cW|ERx3zObr!@uNp$Z$ko*K6POGhVj1rg&1dvqJP0I3OdsEf~a zqp>kH8C+F^Q<)4=$v%403B#^P(o+MB#2dZX)Asvf( z$G#Hx)ibncV$>n{0{mXnBn8VG&0RO*A@kkc{40A;<@9b+$Ot(!sjAnBjPMw=KJcy{ zr|87?A_%_H?@CC~#h7Gk?u&rX%-#Y2`WVYo3nXjQM2E$Z`*HvDsb!qK81Jk2ONt23 zJC-tj%x?70yAX)ZK-2dj)-a&YIN|h^*#tJ})Mn$3ufV_5U%XVCAwk3FB=(S=`n5;WDI1 zcZtqA&tJMhBQNvfO-0+!I(T&?uzh(l@DKk^Qwy$O6cTn*_Rnyb6d+wbf2ilqFGaS} zx%=9n(_>*h=xHdbI$L$Tu0R(z@D2lao6hRyQYC$7DL|})0}rDZ9-?gs>dRf))XmA| zUA@WrPzmMx78QT#U|~rb8Gh>Szd}nFE>*=DZ<%Dz`}M=;5z?hn1zbDkmTU#ayzM<; zwR5C}7^P4!Cd8DC5T^PfFzEq5@E9nw$ z75a99$sEaW2?*;W zP>EK(+6Du}0z|kWs&j-fS?YBE`ZnU9^gQ+xA_h0OlG)Tz-EKiu`y5Qqz2UmAbP)kgrz2bb~-OmVxWHddp9hIFDEkq44E7mI@c=0g!Cz_ z&N(7H%M-W2t-u!1Ov64Eq=kwP*v9#fq`!2gM6Df!;GCCpa|KXhz<&9>NO3Hjvi(6| z=B1Og7SZRnIKAXVni_P$b=UKeAN({|LiHLG3a;S0JR5AG_c4)<&j6)~?T*EG+)G_0 z(LIT2E~`Q=L!k<46|hg(^i&QC0kV}X6>I=ku%T_I59Nj#g-$zI_9TI=n0GC^x zd=3-CN3tKjGXCRW>@7*0aPRDna#q$@KRw@jV7q{|ePXfx^~tt0Z=Ht>)#|9?bU(Z| z@p;G}{5r!*1>ihLEIcw#s1l>%rtFE!XP^u`ixphFY383|GLQk1Kxw6}U&8Fw zn4FJZO4HaOvdh{8s-qg6kiz*KP(e2eriRyKfTz#FhrXFIcJwyYFafA^`ym8%>fs9q z&f&H7#SmlyBfRl-X1_Hj>v_xY-*T1_V__AiY}X5w5c-j}=~%qrtyYd*015}Sjrg#t zd9P#<{?aK$u^S#nP0JL9;YI{=I3M}P46SN+>GL}IYwfP`^A84kX5opSXwb4Bv*@L} zC|RsF&xg<9bIGMIEf7fkJqt&HmWmhiBVG@EOzS+Vsg_Uib5gaQO|)uk5bMal?nSC) zG$mm!0{eBP9^=YdcYCHd0*$m_S^RZyYIH2&WqKcU;c~En`v$)?Xq56MWPUlnT&*up z64%Gs*f-#3_62*fz5&6WsHiB8c=qBptD`xk1htio(N34o5&1UN!iY)ls)l?sh z>)AOjZddTaE&{}3@YKMo3vsvhvt=ekMV}5d2L2$GHIT zEGx}+&*ub`Zg3zH{+ibE_4P@H*+dvtI>4%8xkxQNnliBxGkPRt{%x_8&!Q>pz}TYH z6@L%~+xSE94I@U+)dK+ zK;1=6HTX;-E7Bm%{94i2`s(!LV_2sgvv)e-qr%c*g zc(lRV_~E?_g)`!6bGC|L3awiG`PHziS4<5b2%gy|3N5}6f6r)aPGY)?#g6eQU>o1^ zZy1UmRWN-mTvo){kIal;m__g^8(PsK1cvy{%Ky?`zo2VyqX??%@4sdvJNt_qtkaw$ z>Le;FPGy{MA~WAO^nd-v-=OSF09$$8o%0((59Wv;$xO5*OM;T;DB|^q@wIq|n_`2C zzY1<1k>+VH*zBeEap#(Z+wWDL-H3~2G&YMNeS*_^oj7b)UZqS36-+49ViQQ0dJvUc zb%q_2a*SGoQ7$97*D^2Cg@Rr{Zc{bvmHVeZBWpUYWR$O;-L*R}a4LL`Rj1bS=w{g7 zrXY=yL(5Y-O@Ysu@^IGB*NuLpGDa3`-n+J+0pc+xmG~6KT|Ebs)zID~YBGYpR_i^j zs-+?^^VdntVLd|YR-15WdX(gZyI_V~X;H>Gf323{?i95wt?W`pvtluHnoRs%Hak81`=TE{aRQH(T;YVr8~9o+q>W%mKNp{el-yReT%B zJ|M>C{`?$|8XWu0x&Yk>YKQyoFntUIm-EvcyX!yBME=S#E}iqF6!^#=LuRa;DMCNb z*RC}E5!`r@+~w=9s*PqECp>ti5ps5?N3>}x|0>j>aWO%lcL(jyte8VfUd13@lin}}o%+UT7HMA&3a zZLWSOuhFiN7khJEI+}TTu~!Ln8DF7P?ih#EhA0oUeBFU7b|=Kv)DTcngVT+t2<|Mq zG)eRl(SxkEmS%WkO+`9%HBN0{46w;GM^D4WsIHaLKG#yVjqgGt+Tx0~IfoK(I)+Pn z-*p~2X-I;1ICX{92A(y6TtR>O)&&UY{%|1p5Y!MJUrUT;3`YAOS=@9k8S|lfy367t z1~Ih-b-13r^*k5eVo?9HI}drD*2DW)qhLDvnYlWyVqiwvkZk{a4jTu`5STAe47t?Hl(kEBOJaoWQoKOw5|}+Xp_3h~Pd!ha2Wh z(fAL(84UBxDjie1+80QliT0}OXQ#a`!y`vN%xU`!R8)-K4Jkw_LUww6IKSd^RI)_0 z8tbX{6gVv|y5!EWoR=Jf?hU+q)#K1CFs`zNYUg~L=$kQDXIrq2aa6A0t`1L!sm{j492{H2qC{DLHF zLsb9&#WyJo9!fawc?7jsmMlOGNdKk7H!!U+t@$?yBj#NzgKd(iF0gmI7OqsM`9(_f zTLcy`JVoD(WHKpwE_G3i$?d~b10EKrOyyl;n;ZXC(M5gxDm~o79myhPW>1Jx>SHd# zS3d#HA{Y!+Cp-bR0Z=_+Q>p=Dj>mm7de>d#t%#4w=;dnLpRJ8enp42|66KnNY2yA+ z`is{(cb~J(w;PY|62oNf`+3tsKu;xV5=VynFA)!*IFkuug+$ksOzgCIiHYljSC^L^ z*v3UoI=HI?rS~@3-x!U4v)v+&Frw5ZED-eV>cX;*Kr+b|yhJjx#73X-T`z;fGorLn zkT0Azg#d-}HVBP`7 z^9t)#mA{q;@_MAdd)IO!r5dRK?p{j@2b5ng6;oz+L+|NeDu89vk%NF6gg$RlV+p)n z7|jpTxVa#HTmo6a2SSg;j#nxNOpnX^cQ_YS(Y|eSEglC66 z$XtNj(zt%Xl@BcV;lWfuSgshxHz$d-Qj`5jT#BBd5^IweE83J`8ktMJl|}^TVV}%e zA5*epGxdi`uPu;yo)MoBc;KNHbc8BG4~?t88$YOpnN+w>xmZDJazU}+ z7h+wOwZ0oVx2p$zl+7l|Ghl_V%IDMw3)L|_s`m+OVh@=ITbo@pljB)XWmkVa9UL93 zY86jEn5%#BN3RwI3d+v!q<1F6KaK}sfbWAs*+&rl>WndRmcsa>zE>6D4ITi6+*qzQ zBgkbA(0Fe2Od`s&fcxj32KQNbaIclfU!|S)(J{;il7WT<^hmNz5;vj&grSGAOU8ET zIAK+};RK$TzE93gr87*%{;_wD4sIIZdM(*U`Xgt2Vb3*6LAdSFzjR>bTrYa->H#j& zyGItME4q{VfEe=((Bu<3`<7Y_Ds@(32l9@`BQalQbv*A5dQ#OLB3LYnBe4H)J}*U= z^oEUiXkjn823DkT4VqLG>f~Ruj0<|j8W;enf&i^FMYyNz>-=VxEZbHrN93e>!7`APUhaN8YzIafjgnS<2thC&U9>BGqr|Gc#p5uCi^J_zk= zANu56E9II2Q|3ByeGfT*Kg4#Z!NSegA`sM?EozVidWDb-GDS*S6&CT2o_%nSww(WB zw88_`*Ja~*iRpPg@UuWo8q_g`e2ZU07Cf}(^ej&XfPKe+G!R#3m?M3peoq898IL-r z60Ztt|C6o%)tj9jjZ8DGx!tZs&9}!u1v>^_HtNvhjb{^WdQUcSpz*;l@6 zd^lp4UT_F$9$%K2Zl}^0PlOhH1T2w3vWH@HLXMK_wrgNVK%L0M4Z0fjPnuC~EspQ| za125LRt6pr-P1cvJb5(f8*e_bXW3+-@Q$dMzEo@Sk+2|OFwFb}s0!^X-z~@O4}Vyl z?Er~$kTrCI6s6{U7$V_9Ba-@-lN&?08BA@A3Z6V@!^6hOT*2S-7*1;#L z>mCP+N&w8Iujl#(@0HfIf7*2y>BPcDxk7vL4wyitX3;1>@FSoLtUzBXK0@pI=XZ5q zrToA=uZfP}bY$oa|BW-!Zo0MkTyBk)i@7_aeNZ7z_g$LkI_TX*BWu9wDbQqVwb|DjO@NXWwOy*b}!uAe!{; zKS?GHWP@SAoP%bJUjN>ot4V#Zo2maD29^Ki(Vk0?^ycM`f|Y&GR^+5y!Yj+ zqZ{(*(+4{n;p`1%MP3CEr>z?siPt5J~Nvdz1fK^>3BcDS6;F0F;sKj_KM%Mv6n>GV% z3W}Rk`=7!kl?K#`baV6_AsD6`Q44c%(v!?yi=U6^nStlcdH;K1Zf~m&>#qc_+Xn># zpPKTK51Hh2e2>t`v@3W4yUMS#hz*S1lH{8{kR2AXlCx9Tc1IAaQgFB2cpRf0@YDrT zQk8!(RatO+opm65M$7aNa+E}U?$4Q z+YK^>*#UN|+Z4Yv8HtX?&J=m*vvDjhN~OdmE2<8S)9@F|{TJ&GIrCPF?liDO>LV|Q{N z_qh4&g#}3(Jez7Fi z!3)9^=z2+g9#VWk+Q^~QfAAp-(=a9&;K)T6`YwlFyBtDWe7sb~4|#84qlL6}aN%-r zqLR0ME)*6ymW;%njtTaDhY_9P$n++}Gwst_USVsh0jF20NE#fI((8?Fq_87P^f#w~ z<8g4V*}F#!{yv1vP}jNh9v%d#6iJx|2cA?q(NYw=bEqoI8u*fJ`n!MW6luY>$4PG$ zfFn?Z{l7sA`hRoC5vMX1`bfl--8bVDPw4{3Tg7%WJ}AORU@senZ}FNBhLhSCiQkh3 zNU#}uP|JfoRI^EJuxtdDHTmYyER{9mHe~0-?6-MQTASKkJa23tAtG-Y*aD_&&<0=X zHFf9v{d+)>)|r5Ip`>Z%PreArJG(N+aXkWz_H1akD&9kqz^JU~8DSq;(&+m*3TyNW zePI7z?pSj!l}Y@hE+-uKRu8Ilt@?4brV9}Rr|z<>w!Jl*JOy?6^wMBN5YPK4{lojb zt9j9ih%Yb4>TzbEX_uaB2>}-vs&B!kWtPycfPWbhZ%aK#bXeu|aZ2{`iLb8C} zCfKf%#=&PKt#44^?*gUN(vil|k6ALd%;Lj44NmD2$DF;Q;R8Z47SvQh`h)2A3=K`p zBEp6-)6V#B^{zIxFHJu_)^llh^gybPh%CVU3%NFkX$w=xJdfwxmyKyTJ577gR@nbG zz;5m;m(9DfKhAnfKn{ng$IlJ`=&4d3w=2zD`FLW0A_Fn`-*#TH!-w_=Tk2_m0w^+18!=9XeA~BJdcQ3`1S~ZJrnkdc=?~E^WKGDWB53Tim&Qs}tj>)%2EfrG9gAH* z#nc64>2ei<6M@z!4(KGre@Ve$(0r|dKIYEpvZ*Vbq~smbraS(YL7D(VdOkxLaqxn_ z+Ac?X?AjhzI$QrLn*4F&w<{W^k-kYaKZGa!rOQUERDLyh37PVN>Fr2rh{FJgg^Tzx zsfWzn+=BO3QpM(v8=b_;p)$RbJ@sfMr>q2c>$)W!cnkt{RJ%j8I z^})8n4}tPMwiVh7eh&S1#~;}{eB*jkE@|UixTJRZqRsgMT+vABx4(2UmwZD?OkcSx zSjmZ*mE3#yi^YBTGEwUj=L34Nye~B-{JPpwZqv?d_)!*x(5!1Ch%PT#P`LDbdE@h~ zUd_d~jFM6;72iBau7SZW&YOT0KN<|07piY!D!H;(MzVH~6($X=(R*(8mz4*_B zQ4~0+`6izSt@Bz-*hT#d4h@U?Z_QyBjaT=(Y!I$fsG{Yv;{wyA~%PU$f|sV`rAX1O>rE<$-B_?5TR zE#h1Wu5fY*eKmkf&yHWO@KeO=<~HbUmr}H=!cn6Jj)=5KxX%%Bb`Q};tB#@q_X6Pu z0g{*Xrz{z0&o2T^pJ4Bbxr*>-8HVR~I?$w(^d(aoc32QrFZu=rQYgBQI4&ld~*6jcOgCV10G*5V2u7 z23RtA3n3eGl7(eyL@T^dcl-3~BhKvQ#Lq$R?gTd1Uc)SAHn11L;UmTGDpNhv;4~u- zf)mK~Q|4sye+aAgid0h)2swjK5p9h-f|dS0 z_z@wsuM;nqq9>nKNDVE`ZWP8NdC7&UnF(EE9~801N(^cx%5CIi{`>V$KN z-YY0kMVxl^R`h+sZ-V7&5xEIAP${0u zx%@V_#mpVJPa3KC46;@pei7^`wPaWqYEa!F8lZg?>pR=JvHCeo!Vh5m#A#an5utC| ze2!`Qw`Sh)`y_XGa zHu8Vzn0E9mQnsm!HMvEK= zzi-@)MfNvl-o7uaIwC5ox*drFHLu5STc(@Z4mf41eKaXqD_Oe88;cxY?~O`%n|>9Y z|5E1tRR8)BW(Wo~&fEjs?yS!gHAi$V*)bxIMz@g5eI6=!Vr|aY}P(=;IBG<6!jbXW1eQwQH}b=$|pFVd8S?@gINjvz=Ywe?P)He;Pmb zxl>2)QTYkXZdnPkQg%oSwxjen_!G0JW;;-IQ~WXJw#MNTfR8ML2k}6&sVen8AGEH| zCScHc-*_c|!v58xTa?(+^3AE6$BX3=q!SS9GRCCb?$~bPj{iFj-!P%~9G&Is>d$8) zxsDE=M~1&EsAP7#T7KNv4V}f(B^lWoj(`?xlF~(w*H6&=j?e=69KAL1UGW2^^V7?F zTBfvEsGN4S!S$zUO%ll@f~-k`+p&lS{+xpgeEn5Fm9;VMC*wJ*`71e{3zCW~<@LD> zGBe^S-^239>c6U#y$LIO!Vi0AnGO27XBq_Dj44PzNoCh*N4YlING zJSLCWC93p|old`0)l>v4vDlcgcqTr-+P`Hb`_l6HW3BE)V(|M9EB7)qLkQ)lPD?8- z>ce`@3o*QAXtfjyf^T&HjV41;&D$&Q%*Q7DP5FI5>(YF0T;8K2H3420R&Y_T(Ui(# z5-jp&^2a@%%$P{XpNE7fxxUPz(Si|`$}JMDJoLYKrJbI4{O%wBs2rd|mLziBPacgn ziUeT9l*X?;i3YGmuyE9O5tAjs!h++E7*a(mm~Y7nKZxI(sOwdffi8Dpg}Cbp!9jg7>>cNao@bZa*jA{>c9E&+{i7NZx$c zvP4xbZgp0jHgFW<34AA#ZDd(Oe&gpoh9};q>=gqRDBXp#0?)%DQr~m}O(z2dBbN>w zUiU#?ibrYc@%zqi7arT*-(*|3!vtO#w2x1QEI2$n9YfDuTgmrX^G-;Pc}V_u*Z1x6 z{#aEIo?d7NjdFzs^ih# zSHNX+Zx!Tj%n=JYjxcuL|McbU@V;C>Wz#2xzURTyIic|83uRFpEm-NBpA=dqX~P6G z9jO>hmQ2umpc-#Z#xnu0S^!9ImjXzTni=2-n`ji(i2o!pdXCD-PSwDZjz6WBqa|86+Auya z!*ZxHy#=sHfE!owPwzAnzrpb!Ox-+VIcI#mNpZ)B7Q-lcdK&whlx+Jc<-l*bUOLrA z=3nhvG>}>M&%=`CyyMEX*gmQ~*^C{0ry6|cu~MQs@30OZb1enV~ho` zRBv`ptI6qabZIRoMdwus_8T3>u1<*ucQEDkL6i@sHZR)1r9JfyBj+HGoR{(7#6<+- z7!STFYcD8s@NV~w%!FbMHd}p^L{Eo^(vX4}EVVNqt>hpt9#5W{GkNg}w z7rpelg{xmOOv-#YnfP6NQmfvYEDYpoWCfC}EU}htaB#zR>0?#G4YLW(TXjr4%N8K= zc)rd3vBj3pBVQtq**x>^1z~dtYIlEGZTbzBOML6H_~ZTn+Um2G^-(OcCipAWoCafg z0su(Y%%~j(AV@;Ou!ordhLjmpshn(I;1Y(l#@A1M^7A$I?S7)?GJEIkZK@r+sj&bd zyg}Nwtq?WRmT`g=l>JM$RM`g%BS8eKHj(QIL@6$&`)BYS=lv|0LWyG%qf3y(ya}^E zuKUVKf#BymdWC}aQE3@FEc3tVGP8iP+~Jm<*;pqqAW3-oe2Yb9S$;V~gL04Y;qU0U zZ+SYr356P$)Yw#==`j4OU0sYiS3G` z!8>v=py7Wxr&+(p|(#bVGuf=7gp?xHGQP!|I&iFZFdYNP~KZ6 z%v2RmW#C!#2@+$161{urP zz_EfeYc1QNru_NwDQ5?(x2%B+4kUGl2}?_I;8G)Bn!JJ>Hgz{E3nldc-E_BQuHhZ- z>084@?D8KVbpZNX#$vQ%>%JNxy+tx3M79z_q{g-o7`q~@%j=&~W9~JjV!Hr`aKo#+ z|A>>4VJho-o#;MoYHO9iz^LU^>R?r5;Ne~qq#8;Zy?r{<(EH9^mN3lNjf=gCpGAL6 z=f{mt${tGGQZ8r9EuWx|^tnELL6zN)gHfH!l#&_iqSbg=3=JU{q{C4%G1GbYhEqQD z>D0U}UW*-LU;*RM4-TmssaGF;Il*Y8J8+ZswGq0CWI|`*x}LM{aq7Z?Q4L z`d9iMUA<8I@X_H>Fwdx!0)1-LS7@*<=?b9@C~*Vcmll-_OkRkTVMUQRDqhFsNtYPp z&3FGI>TIEM_Uzen;>`4#j7n@2{c(Z+Rm}0T;?SeNbl&s7S+8@n>KrmXtE%5-LYam$ z!~r6K)f~kxWiFkNn^*V{{9nfbBkM&S?^?L(~0takQU0<1 zn$tX+g|m`ptRtv2B_C|wh_MJ=xyQUuA5Jyx_4sd5@zT2IPjvZ~S__71{5A6$Tg-%g zYVT1-A|!{Lc8%5y@yT9E9OkJl0+(!{8N+qxyHclr0RzkNjh(y84I zce1pDk1L7JU8i)J9rEQC7)mOYh7yg-zKs^HA&7mB0^hyzKj^+!qLs(LQ{Wbn{cTmt z++Zn@-s|vzH5cDV8Pn>&vEeKSOaqdA5-92&Em`!_AVAZmhEGW7NA5Rz`8W5Q&jLe* zY5@@d_A{*X@e3TANDwAH>H7E9?i8}Wj}ee3fQT@>9$2}|Z)LK>y=-(yy_tILV-$mO z78RI5!tw+VL|rpAR3Jy3GbN9F0k{v*?H2)96j1RZpuJDvKlTuuXBs9fLkoZVr#d+iTI+7&S=U z;L?0v`w*$+Nej;O8Hj=z7QM0v^SXL$sayV{!!Nj$D6CsOQ@L1v_$O!f#^DcqWy*0` z^#|>;quSg1u`aXsE_XHLau9;*4Ba|rQ8UbpZGJgiuXljELpzyaTQTl06il_Z?Ot1? z>$$hEy^-CuTXHpoXmC*VekQ-Gay_4^6@n&Tj6rEIw`>=^l6oW3eQe2?mVStuU^NVA!NkazF=?4YNbQeci&<3u zSJaEiGx3EYf{yCERb1UE3QEL2r)VNmt~SuT!2OEM%|pExaw9dW(SHZ}$3DNvdtT?P z9FW^v-=Vh0g=&<1SYg8N1n@@xhpD%YYQlfR{zoH?bV@f!cQ;70(IDMjf|PWl(w(xg z(cRtcfKdX%L<9r`r3HNU`99D2o!>b-`+x7f^S)o#b?N`jeSXIPL}x|`Y4KvT=N^+j zj=$EQaG7vgg>-a9#@z_I3v61CUOP;z3&l6!O2Hzc24F9E za}@IaLc&L{UKikU0_H=of;YT>>=xP{^Ws06My~{k^gbPS!bK{-9aryP>I+e#TGoG3 zT&8}Vbe0_c_t`$|T)eEMddqVEev13oe~rO*)4MEb#wY7F7TCi~<5d1s3m=<4P{sDH zM(8-UH79vqlCH0r)(n+Xsa-`XQ$d*75R{S9`A6HnjlV8eN%7hAHtAu$ET|n*AP%Fj zxbHh!!AlhkRiqAJQEa1&Cj(>Hs{W9(&`bUeJN6PCA!AR?B`BObT>}RB^CpFhxrXy$ zvzk!FY{ezBqaOah)1^~+3*XnhrF1t2)x&Jb0*x!R{jr=zq;{sGinl9T-Kl`!m_D%7<@h;F#BsA#hCjzzgK_9BFG=BITC(gAZ%L^3I9C3rS&sKtz zrbB#JjHLyn>+87ii*lBGcwXO)OWe6!p*-idd0DFPvstfMK|UoC-{rmt;G>XE0lcFr z*r2d@&Y6646!^sw)xF6-fTAg!<{w~{>RvqRs@C-ao^ly=YH1;&|DE?y@{)J!Jqijn zYWWA~f{w`gMC<1F*vtMuysPHPBUrn1RABF*_si8jZ_g9rn3 z^%@91j<;=|Jdm$-WUkp37%lEi~w_ud|k7sU9j%GkDk|HXvKH5sz; zIQmMtf)_UtC{@REG;Vk}h|1v|sFO83UzoB_{f=hupm|Km>901VoAc#`lj)Dwd4F#l zOx|`ia6ve+jDP4ejl`hbSR*lXCX5;aU&CfKxPL9tsMBtL7%i}_SKP=aq&Ial#kJWR zsC|@ts^--A2k5qa94mWL`_CI-rM@cn${**Kd}K|a2C#k?tXxwH6|;Bdw$u->91jzh zftq?LB1Z0bZt9iwO67e_&|9#( z%+dCVpVy@kQQZm>)mrs1B}JCDl@-VwXdK|>seQlBL#^L6{R0aH#j@YosB_U7R>rOK zN8`tf%G%!)uOKM13e-MrVX|vkp-#u205H_p$RYBikUpRUQ1Ubq8cZyLy2$M?41ke# z_mwC@mkSm_cVF?a`qb06N^Q_WT6e=bY#pp8!J<6$mz-A8{eY4M-|gbU3`c;TlH07v z5myj+%kzTk^+VJ)LsPQAvx@}^`TfTn{gTMnzqS~*a*xIJk74Bh03{&qloFGvNLF71 zh+fs!w+}h`8gE=T-}|~2pmrzcLr^Ie8gbw+nPgrJ#v^aNR0>U?U)vYs7aBXkMb;D+ zn>u9rqV7&S%G8>`*Q6;ZeF3STFfhbj4y1aer-f{4(MaaqkqTRDe0ylXB$K3w8|xH6 znY{x`6w-k;=!XYb2icE!zZ;9zJ#5Rm{j7JKUzji`YH*y;Vt^Pmm_1>t)o#s6nYRv! zh_e%#w~NUrx7n~c_2#u_^oWF9@q%g}-NP)(R#4XReq8+%T1w7h6yLAgy-@Gf(zXoL zs0jy{Cly;!YgcKPhv~Sy+q>HR1cJtpVPx>- z%^A`6_5!`T9MwpFn2kV@svG&ZiXWejBhGG?H!qo=zF>`f0~bmMpBMPLO|O9FX~RN--cM>QX0a2S?T4@ zeF#11wlRL(Nu4>1a*=i^S0?q_IE~7Uxp-9|a<^zt&BWK>xME6V&wbX?;IOvraU{l{ zfy`i4Oaeyx)3sefp5oOFhrO)lV9?T$9dxgbXm7>9$na#mJKKh^TK$<~J}pWbD-AJ> zCj!fv2(ti>r4u7l!-2>D01+Ceu+YeqDn(?8`6OMj56cWKU22wczvf}A0?KYr!jGDZ zaX7>8dD02>5_wCk)gZjtQWd4SQ)S2a+l)_BPDz;&?Q&grhcXX^-~U$$;Ch(*U%l!5 zAN2oLUZn)GGyCfauBBc}yl_*xeY;Y8AI|e;sdCPNTx^RkOyDDm%aq$`R>yMnyiXc) zg9tZ;mH&M;ep-`v%|(PI?e00L?Rxj=1gQ~!j|yCzLCrHMXojNVDj&urO)xvD(Bn;n%R?SCdmzK1`mlQhjqc7-`W#Q8ob>&x zoxKD{Y*^Z<`>QHs*-6cj+Cnhdgo37eyXMJJs^`qh6WYxHGBmAv^b&>mGF5A{l7|`o zax$Mou^m+vF?w1fhd;2^d22w9Dbtc9hag-I|q)sz_QnF%{6VX=Y7m z|5Ts`>;YQ1&~c?=tsVI1$CR=crz{ofy)5R)3u2OBX9Z%Kz3KLF4MeYoA2i{JKctKr zeo%xg|CMwc5>L|+Vc*9`4mrt+S*aKan#m+m(n={5=h>TdUxu9f9_uLqd1qdfCqXG z?7Yc1%HWd7Md^*I(!Ndvc?IJC1El^1N2+Pu4FfKi!-QH#?mJDkHLa{V+~QsF&bSJs zYLkst-x=$ttiKm)`@D9`tUEzZx@mqay5V8H^?{JutP#Evsg*k(%E|kTk@Lljn ztcj3{lxL6f3x;ZnFGx-FUSg`NWWEd%d2@owWj#y~FP7b{Q?}Fp*(ltq77D9DEsR-B zr*8yr`CdLpkPnaj)o0@|hVLBg&0%rmm}I1G8bQO8@v2#fI5dh}*fxQiSa_a)yJ7Dg zPeqU<$}eGb>Z;MyS=(w00tJDv9MKS{FTOlqmW@g?o*3c)aa@aT?M-gw$p`b3_f@w`4v12njO5JoSztXC-JA|E`% zf0S9wSDO30#eXxxIEO;tbbcB1kM=A71L*xSs9vGRG3Z}|;%_}F=NV@-;ChLN8;(rm zFVOdYJ?`I>{66?0TjM3}U&`>G8vp-8CMv%+9G0hgHt7D+n-_N;r{|Yh`bTK`HZhjV zBk8B(MemnA=(J+e-`8Y@eah6{?rHp@x--PC^+hYChf`+cnZ6w$hEZ6loAGn^Thv5J za=9|PI)qfH&3#34s?Jqh?Zs@k zFdOKvY@LI+CU=;x$pjNvvJ3)_GJ5p?5x(j zC{OCN&W!gLfx?YqLbI)JyyOQNq{QBCp9XvfUAY}&xxe;-I$fTBPcKxHl47w!gYHIq z&=N#kF>;Msr+B-7RK;im;x%jJ$hdpzw=*LYdJc8er^Mj$STFL7o4-Hn@-J~Q&|Q;% zmN84-yHcf}<%A}_@$Ud=(8x2nCoxK3yqrzpUiBW=_GO#N#v*23b)__soS(XYaVXk!jB zAtwxbfi`AGQs%VQMFGh<%moJ~glY1!ButCpGeZO;W0Xr9?$6(EBq6I8&`9XdrO*n= zAEY==zGnt=cf1lK-x`vfLH|}i5=*vQuk;$6Eq!myfQp7idY~`gS z3@;me8fE8 zhx8u9IC!!*Z3mP++$A^0>y=td%i(?XnD5EoZqu8x1_2$Acz`asSf&vEszA(WMDR$p zFqSO%4&1y_{@N4OrG^EWsk0_+;MLb{mQ#o0#uUh_M*pM z=^(^n=p~#@4CQNBsp_Binulpu4*Q$?8qx^zt0oPe4R=J%3rm5q;>-DLm8PoT#{A&> zIDh>J-k5Lwj;p;=`rv!!HsJ|(m;GL;4_hgLVv{cKOx+kYCGoSOC=9%=v&$IqNHq*> ztS18X1dEcU<#~Q9r)cKUs|(|qSJ5^o;Nww4yBLL&>|)B^AA?He$n%oUb%>~vmGY5r z+x~AKi#Cmu(2q+L88H1!W<~8KHvAv)6j3p`e1r#bg~%6o_S&L zg|~aB_WczFAME<7r?4%x&#W3!g9zdSNEBEGaZiGrf>OK7{K^!rEfiGG;{Ri0{&yVe z^SSwY{9>R`ClFTk;SgGP#2?On`{or!bJ+X)^jY z*}dCpQpciT9rp#WBFc2mX*g?xp z@Kxa?6-hfW12L&>4PL3x9sWkwVMDFS6#!2-^c6~Se2nUK7Ryx&MNj^TNoGmSxKeh)1?iJ)Dmxakw1p4;8=Yc3^;I8EF7UzaeYx}m zObv^{q=n79B1-lrf1C0R)~+bT>emCp2dg$zxk<_-oXzk^~kc! zeCORv@IDHa{b01K2TnMphx_q*h(zvgB(3PP5!25|3J}91EAaAzKjIb5`Nxh^rnTbb zf0P`7N1-~b0`U^x)hdq~nEj96WlFQGrQMclKK-&j3k#7+*~Db7Q}_RbmcmNTvgB;w zCbdCW%QVqN`!P70o#Z~vp~+0!^P-3Pb>gg;5hT9-j-Tzf$UlHPwg`SDY=JC!z-=cM~o(B_HIh&#CF&PfB}}HZ!+Jy%#;|OjbLb& z*2ubM(p-Q-%jEIfN8?AuteT$xAP~RM0pG|cPm$&Wzr5D2Jl{S||NgRWPBvzVdRj)1 zEXu_#%&eHfLB`PWRhp>vIPK!>p3gSEdjob874bPt{lifz=hCDB0^&&o!M}k)aN|xi z00*Ydqe;NKgbPi-(kT1~$fpc)fI&COPS!&pM|%GN%XSb= zU)22yb~4;=s&q7I5Twawj-4l+fQSXzOlraI&!Tm*5(yC&iLEs^>dVKPifh!hHrABN zsqv}KrY;ukIJPCN12|j<(B(V;jZ<8cV~czZHo**Gk#QNEat_Hv(e(@Tw>8~lStf^8 z!uT3S??Orxm@Fh&vc7FGMEPi1Yw{BGQOfDZYz>={g{Ng>p(n+stVHFJ{1Nq=x;-^{GI zBqMVV%K;Y%UDOGr-ExI|$T)8!U^UwhuyQP9PKql64liYe}GyceiId+6^R{dsbgLcHhX z6bV5;t})YwKs*TWME-6er-b_gd0|6Tv|6ZplA2lO)j~ownj&w%1-+;hR6l{!NU#guYf5WJiLsz|9 zCHSlFEO{l$MdZedFcBZ-l=Khq1M3&-SbTbq2bMfbRd5tA3W?RJC<_wDk8P{KH2Dxk zb*&ieGom+~c4dE3@~#<86v8L)Hd>J=se1(Q++_KYwwQY`aF}D*PoCB4oC?I_x+%tF z<%kFwvxZAY5AAMe#d%lmXwB0bj6L*G^)WrbWTO6R`xPnilxA=72Wc^X@&&@$^Jy(@ z4Inyy-OH{!OTma+!ctkv#j(;?1qth~Lis?vWo!@RgxUszU4EB%?RJ%(@G4IF&iDAv zHNl?bzc4Y1VHPqNJS#QlTav+vQYw^I7@kGzgdcuFuz@uUO5dwn-DoHhT7Qskq~&d0 z7Z299X_3~qcHmZ6W!I;ba z4*+I2sW)w(H2jL6WuvB@L4r~2a@dq-AE?{S+5QDwopt2;wG}2RUcpM5D++U@{Py0) z)xI@(*80thwCF4S2N3;teT-QYKOVa2GuDJ0@ymJNX6vcS+%~sDeb6M-)l7G;Cs$I3 zwJKrc278lCQ?5Hn{v%ha50YCmL*a0nf^ICRK>2w$^&cRV7( zyC&|kK0%=eMPXRNIht+Nz%mO+jS5KToWNZPtwwrp_M$DAUE-su%%Wu=NJ-el7o=Z{rYHjiJ zYi%{-tnyqj@@!tbbcK|Ms(Z9ewrtQOJl@gPf6>fW1&6r&gXCR!qu;_|qt@o} zr3zH%?=z{Fgo+vXGAIjKkKmwe0I;YkAvau=0g+I}#(_$!2>8qM;%;1~;&nl2^Z!Vd zlVt>>qjBG;W@X)eS&&F4Z`Hz9QvP2 z`}m3s4u;*PgVO@=9mM-65=naq#klp2pC~c%d8A;k`{dTS(d5dd^HTb&wO)W!Fu%!W1@io!3MviZ=*dsvC)J6Htd?%qUEP$nQ+C~jsa&=Jlz{HL>>JA7_ z6Tc(En+P%hoZ6o(J_VW)yy)L0`|CkGde6)^8s3d%K!+rWEvZ_Ml(4p|R%=VXjg8DI ztXVBK3wVF?Rq)&3hafmZnT>+^i>&h4u~%&IG3DF{dKRM=j1B*o zx|)EH|BJVCXdOlK4lCZL?JZp)bnl{AM+_M&&{zHY6vFN@ijR!$-=`65qX8|wiA8pR z!|aIEX9qRymqmX^t^7!)T1et@e~5G6R-8!4^8nr@ghG1NmWm$)x>B{pWCUb$#f4U0 zkB#Tq8Ef#PdMfz@?Nd2y^(+ORL|Bw~Y%@l?!@&Uc-}Bh>{H3_5kS)|wE#_qjN9_e@E-2B zR*tGQN%G2NAtX~!S_ZTO=Z6n=<=17vC0c;jbz!1ii<4d5HQ6Mt!S;tRD-)gK+N8t~oU0IJp1Dc_Yd&=AE3`mC-9)f_1r_ztSxu>h46J? zZ5d@(+=P7t?V8@|$}Q7z5XR=4KAg~P3O>q(<0|V!lJ8p^RdU*=I(mvk+6xSnXolri zW`41rBOSW)d6%3D8aoaCCL!9qI3N#}e9r~4){X88rp1Zz zl9F*&m>Jq^TI>O+(gvn$ZID>Lf8egM)QKe;x&xr3l{@Y>cUYVD0)U8h6|FG)ADHL# z2yM~+G_%a$_nD_wpV>dJBb%3872f{beqj*Hh&v*jZe9kWPWC&fJ;L#5a&g}2i-cC+ z(PeXYRwk4==*^*+lR2COtr8Ofw=Ti5zH}b`(r`OrGesJR>=wZIwPAOMFQn65Yk?n* z%MN#=!Td%juazwk{K;JGAD|zUzwIT-wNj-sP#ei-mTCxoEvc>&)2Q|Z%nE}fZ>mXO zGL$fv#WWl&dr9*--Yx>y7st^LCOR)Icok^gl%tr0`(m5l#=k-gwwcfQ{nIr-!AuvJ z=2kPlH4p6VLio2_xnC8?QGv=u8iit5=4|Skoz#Odu3-=&&7O~8#m<1Z&-fNNfPLEC zjlNTkB<2mBDN7=<$>-}}8#>Pq0=9NiUyKXY5>q~XeXP1a?yc~odQSZDMu%um#+BclQr=!_Fu2^myaLp>%28<6 zn&N9vq&Fx1!N;f(+9s_g0^`o(<^h<2Urw6*bg$#Lwexb;cfGcm>Z}X-8{=aqQ^H2K zV=1RBDOl(6+M)aW_>NNa3^k}YztlPnqf}Qnthv2V^{!3-O-Nh?u?{1{&?H?qU`$~&qnJxXY7&+1#o*iW-C?}WnL#04lV2OpEqAq}@+hB(dfh7=tYyOOqPsQjeAe2#49_Dk^u= zK0BOGl_e`3P>O2}?XPxNoas$VsKFCku&vHsD(nHU;noT7iR&*I3C)iC`fh)YE#njp z8!bMDK`IwX^azX6Lqd8jiyyj(Jl-j_ZQ6Vr;%G&4o4Yc2(U!ozN4-?{2bW1erSNe)o`n=aQIEJWny=vca{-tkr(mtE zo2y3%L5#GVHYWpT82mnV+z{@T(lJl!?Qacd$S^7Ais1BL!Axbgx2`EPfPPMv6#X$RZ>NLOU^u- zsOQo8RMFN|+id4%_|XC#vpVJ6hgY-#l2H9hyV^mjHXf%DwNqs24dDQqorf;>c^b1V zpTL{vYq&hMlV3YCAJ3{OyAKwMA(hvG@qz)-cuz}j{7$XCOg+1?btWL9;^C_qEOJGI zK=gRPb0CREyLTnsi)AjnIw$czX8EfF#pC-Vg|9WWo;&GE#0)KAN`>3#=7No=+1$F1SwUz5SF0mo9?sh0fsS8%+h1`Wqjug!t9! zQ^cYCdrqKplq^eJQ*)HrtCY!^KON(#njTMdCGelwE(Jzu(TDE6uN=TH7-b7})iL*J~2@ zR&icFU7F8BsV^10(ly2|*S!(kt3y3-r;E9Of}b2!7*a%ZAw}CmEPrl{b3d*}tw@yO zqEWU4SUGBtvp3j7-c6wb@ksX*=E~0ym4qV@P27M6c1ee6>>SY~Oskn%-8H{pCwuZ~ zyvt?x=KcaCI#DoOAz7Ls@efCL`+As&uc`BOCqlf+P3*+2hq*_=`3#j*hRZ|q$=+u! z^~>|BRu642;k0Oac0inupNf+N7<_7%Ik+N@6Vrv|9k=Tt`nvFD?h2(!tqp%$M?PGm z-S(K8zpAGx@!>2>Viy(&8UWp;_yp3v_mbKhcOV)IG1pa(#iCr^@CY@x4b4ZkGD|kE zLzk&7A6Hq2@dp2JIH?rrL5j)Ot_j2RxpCmHdfy7X*@*}A@38v_Ok`EYidz%sp+B!7~r-4D>r88gB4Jm&Eul8{hdDcsluzsKe_pK&TD1o~dhY$Vgg0{W(u*TOx zksIZ#vS8(b^PMw=N^d5m3*$iBZLi$>8-Oe45Jw@Rlt)r;Oz|Ipr=6!h&6&=aPbrw( zRwC`?+tsWUW{TJ*=ho=4N}42e$H)ESoF+WJZGb+4a>>mhWPBzdjCCKc$H!ByY;9WX zv_dy-on#~6Lxe?_N(-j7d6yXhViW_*u*EkKVpGoEbTZq>SS;L?A9K??w-;-)*v_=H4?5rB?Un6r)>3>{J zqeKQrrd67eip8G+=@qWJk$3{*`%OIwFBYPMOoS$P1-kUAV;o#)=));=fX9RQ=Me#Ttrd4XQTz&*f#yrp5qJm6vD3MTmxFB>bIL%_>m5r5y(6Dqn?VOL>8=M)a`bRMy`Bx=# z<)WG90!?vPc-6aap(`}Db4D$eBX6NCGW^FTvYw^TZl`=Trwg!nne(z#lfbM7F`M)6 zrX}$1a^J7MUTH6gYCr)mS+UKZq7;$dc-eZ+Hc2fRVG$jOay~48gG{AFxwyFLRbG3Y zi8w<-dKD`8E4n1f^P8cf;cWOp(Mti5d8zW(ZNM%S%1bOlXk>CVB1B**-r1B$*tdL% zaVMT+0y&QC<>%BOs+#r`Yy+2Yk3KWIbZLtnBF78jaisL;ZEMQj3?~g{$e+hbiGZ*X zm}7s?MrW#{slb>=gB9%YZg6z}8dSXzyNQqAr;*@s24(k;alSrjT4Js$3o)Xr!$F|3 zK7Bqk&Kb+(@4d<=XzYb!8MZ4i58HValFho?2@xJQfn164PTL@BVrrBGpM3bVwrkI) z-i2})!C_W@IXbJMrS4FO4F5d3W!v8zqoPH}EkoT03)o7%IRd7DRM1tdPte{RL1f?Y zFU7a&4NPPRX7p(Xsf=v^NW+Q*Q@g(oeC_$k5c)zbev%l}3Y3{AOFeEdlx?vNGX5mb z((5b?7P38Yr{za>LJ%hDggxlxqSbf{ohmQ5MCBh+)yyLJ*!;K^y)=WabN zlNR&+mKC4Hj&Mku$s`eqFDo~N7`G7K8tYoe{Csw+d@@h@WSV0L$H2MKi7;tig!Hm# z=NEGw;m8Nbr)~lPA^YWPR87fB<#X;Efcv^i4>7$exVfB6LqDZtZaug?ol`V0IFE*= zn>M0E`PWFH1wDh&fpMGdbyurZ@ zE21~f-|dz+ku5$mH@>g!D1(~mCeI4@w~HWhqFN$^K7CAY#)FCLD?Yy;&}%XU9Iiu&#IRzG<~6ut}1%9^Rs0 zR{oIMePJ67gQLliI0uhN^7JSL9FjrL0~^xt?yU;_(5#6uU)#suxg z?TcTlodydlp-GLnt(6?4pH`LzCkJq!Ap<;Xt|wcu)`MSP z-gA2Jaj@f@Q@lKEbH-b!)~hy2oTSi^UOD%?LPF(=vO7wDokW9?toS;dW<7V=-|)^# zfIG(@95oNnatzXj$pbOlo`q8$KL3X`X+^~Gjli}TTi>g-abv=&& zkIba#-KG}WA1>o|wU(M;2j7vP+U4_cX3y@14m*`EoXI^N(3CVt&RBeWDZ$O7P6T z7JtZcdpfhwr$`{FepZDx$aY#($1(bx@RL%8bj1%xeDhb%4=afpYMoaI-3B+TjRG^* zChDn)ixT5MN@;U-oD|9u zC4!$bUbsq;fB`-nal;hSwo0&T`n6UfInT=5EeRE4Hzd}UomhOwVLw9Q$P7cBI!SL> z?I3>|?j)pFq(C~a>)ueK0bpWLQQ9RXicJ-hysvxfWMy!gfS-jBdZ)o)aQEA0?rV42 z{*YC%i`zfIwjMa0Ifrp;FC+e}ZTKHx3a>Q~dPsbuwo*f&^2^%GbtSbsl|L6d^oIJ$ zPCma%Cn3L^Yw(FB->=K*^>3>Cd5(u?IqfMG2S_mB2v*yN=OfsW0{#aeXQ>LGnTj&0 z%l!qn_`pJWBETaa^Y!gbnc8_7JFe&e`i-u8E) z6LYV58qceV`IY#OAYvqNUErI^uvDX)MDICS!9^A&6%&5C;C2z@$2tBcRL3TYX>QwpmiY}tW#0t zNMqhdIp@U~$S<`grgxZ-Rrpk$Eza_7qS^+KA>Po_?;c|4MFtw~>X2e#T$`FBr;9V2 zRXRxY9NC!ts2eaFi|zO1{0gb zutMu(5z!sBuEOo&u{ooslxLp4vWh5hQ1O}g(@;b|o3g-n2q(J&;c%+ga&rtb(1KZ( z!_0%*3AH~smFGW-SQm}HP{1!NP^%wJ@lEKM8OTK*boUyCl#)cBdfkL@tfoocy7#bo zNw74M{GFsxEMeRs(kBF8WB&+>6MKM*;g5p9;7WbTnBAx~!18{ z6b@lxc!f7cn4~|ZJ1Hj5MfsGx_N+N23eTgtFXl{^9O#!cRjKl+2FyOm=H_GP4Zkq! zm7TCisDx2~*7;z-0D=Tnt`oaH#6(77=b>CtrI_Mt-iOAK9zS^j5c zMU;_Qn5zi^86LFm!3ivey)XrYi3G}s^(WN^D1T^u*P9}E@Lts3I{Y(WEQBA*i?7Oo z6ybX5qP0Le#77L?HKB5Z=QciDMc6jYqa<{mSx&{}#rkZKi@x>caaw*C27vM5V23B0 z2*X3;Cy?nr*W!)=wdVP=9z~Ya1c!VBA##ib_!M8zrDX_(7tKCObqFqmwzWk;e`AE?5}6>wBt9qx?ar)P;>E9`Rzz3@d*B`eV;{Op%&+Df<2umnKYK z&AeOf!MNxP=}!!A% zTQ{2g--pFkYFdi(nPbqi4M5USPIv7~4OmCrL$As?&rS(UK>AejLFU#f=yJ8HIe*8; zHPcSg(On(SZZBafdSppBCV2K#yYLzn4s z?_t?i=Yo=7v(G_1E6(DgqrMLYMdod(76CNSPv^Ja3q6-up{o7y856pHsPsfsK zmoRSvIfe4ikEo8~;{PsWSSBR}SlNj;WLpvlQxi;Ifb=PI%NpvbZp0TT#ny39iLemm zs*+i}2pX(gJ=WXel0?)l7$o5L1Vu0@t?~p5RfxJt z9xHBoG~oGpe>?$?5_B=ERqxe%Ro8|n-j{C~1jOw!2>R?c?~Mp!fK=vZf5&Hnxi?*6 zzEo*FiW{5?Ek`O!PAPU&IRVM-7E_5lbj3uC*vp;z-iglQ01O4D2HkRovZNWDw0p+t*36du{p^atca0Y&%t6!cJKrmrf6mYiuWzx zk{<~%+sq>`U(q`YqU0p)_Aeb&{S=YZCNl~7IWdu3dPI3fLDTf)P39Ub1)7`rJ1r8C zWV;<4`eFhsz*hNGIfE~j2G=KU7(o(b9Zo{&VMk5QVJy8GM+7YV$ugRD z=-nB5#Kqb-iN_IRk&zBlP7R91xBn&G3rf8y)+oRy_VR}LiD|JdvK=fZB%$1~$8IrY z1XaR8N0KYP3qUGrrECk$`y4TGGsyt;BBhs$GGbIKb2+V=K%#>~GwaF^kwGR^mgIYK zmq*JJXKXCnYmEFfESt7@#nYDF?4E5`9wW@RiKg02$1!Vn%=TL#Kukhw4J$&X=lVBK z=R)j}>lOXRd~gmd6f33RL%|v_Ix}FpXPl{Rj0Q#XXO|%yhHPb{km6srie@#Lu?yIrRmb)a`C@mH1m| zfZY-l2tTHzn(ZM;4oG*&h}y72ig~Ya?}{c*QN$w&P_d;0bQ!>|>A1JYZ>)6*igEHp z6+#4Blk8-(rLF#Cp$BO=-`MlSTjcpcr{7R=oNntICIP9sMaVNn%|MfHELA4R7tZR z7eW{>S+IK3Ck+2K!RlA8`SJL(o+5jbrP`CI6W64p_FeJbFQQp#Sfd+TM~S#h{b$*$ zP*&UO=92GW9ib?LF^s)HHy|WAQPzI8{lr3JOCa~2Ys74VAlBdPQ+Km?57tWYZg3N6 z(E4FxkSsrS(;rzfU5iGTa5pLi%FcR9mU28bvIgPIf`4A<8Qo65ENYb$VcYsqwN)hbqc(q9THumqKR=3|~MXGkYsSJvO;cOl3YGImfCs1dNk0x^) zl7gOs%B@>3hppGYAYsq?a>$3o@%9=Hp(u&Ujb{rEg>GGMnWW{sP~}^qzCLG` zDWZw&j`a-JmPGs4Gr~H~Bn;yig)fl|+>c1N7d*gi-TAmH?HnZ2r0$Ld!`vW^{5S;pR$Xxl*77J;2liul}*uG!T+Pw*{ zk?+HI{k9h+7VW`LPOV_mE4)o7eZ`Kzj=N<&$lvYfmiZ$c#jL}Wf6PGb8Os!RnD!Mo zaqYU&n<71B*M`PTtp5PA6vxXR;Zy@}-`%J~S7u}-Qi3Y)OMX|hEG>cUoGTq)1|!ZE zvvOu93)_`Vv8ad6dCAncWm9ha8&P27W}{-1_UH#A!!SYglbJ6|KWa_TtXTX+5K=i6 z^}8z77y-DFlk8X*d-z{EUE*HehAR@2zpR1szW`NDm@OVA2B0K#+HF;+m3IR7BTw6li0gNyCOb(vij&W6^eDkO2Wt5++oqH-y8DFeI_K ztI7nj^L-4w@@e%p!__S5Alj}MB*!G~sM3cEGMAu=501~$y7g?50bInLQdZ>I$SRM5 z7SdV`HD1-grI__f^LZG}$mnmHM2a9Bo5 zl-kMGfuCdu*uK`1AYAsdC_VNEf=s0tDe@Pe%{CYPBnfQ=(O4!}Mbv_A6CN5a zXWuV0_Gmbeb}rGXRncF%~Yl2(A3s#LS1;Zd>TlDuSRYTh? z&`QZ>3J8b2h@Y6ET60o=5E`}(>dQ(6XDdsRQo#n9}!t%l-{DXs~Gd@S#vylB> z_w21d+3009^*rSYWmtbl-P0TJI1M-F?FFtqhz5gqn(C@2&?iuRfBi|}RCN_gF$G94 z2`yCPQQ@rbO6EI=^K3?-X2X}e!9#cctZGwa9P&^XQH?_Jl{X#l>L)|7Nd5uD>q6)? zgn}48p)A)rSI;op{*o1x16?*9Ik`tR9%2dOe? zLbi>~@QN>07a+uS$}pPp#P{m!l0E-P|-ZLpI;858=#m0Y`CIWKGW=vznIYWOBWA;Czo&lu-yL&kOSh;tO=~Z~2+*q$uZxw90h%~&p8db!dsjw83D6dZV(USC5SKpjJ# zA+h3Bk(Nz+97lHRa;Z%J9yA0vJSgc(6?k4COoH_++)~x$oTF7WE6mxOR`p^43Y5Ru z?KTy%AbwuP3h$3vh8|8xglSJsN;Q?l1mz|32FUl^qtb*!YBIx}Kj^&i+;sfDrdF@~ zL6?_78dWs?_%yrcd)%o1^u6nQKq71-@1fJ+LH7*{Gd(+agN6HqW*&TqVc3;~EdD{_ zRLLC1)AGb0PeH>#dU9bsL;@==%N(#3!tT!~Tk(6x3B#hYN#5 zW=%XO2d3{;EdFGfz{l!ZK>6?%`d4o`qp2;n)F{ur5-Oy+kk(DNY2*hWXzbahF$@iJ z-Tbxa`o5E*Hy8lT;y zCZX3WVodtu1UgDe!wum70Wv|&zLg=^XM|*pI{r?N)lzjT%oIlW8M#z_EiI$jIiL@} zs0KF|hk~-j!Ey9lSF?Kzc&B!f_Lh+i8TcUKPX&OEKx7qnn85mMYeyV-uk=*Ac4FPf)`$9iQrHb@0+)f32FQ+sI_ZJaV= z3Z>b<176Hf)W*~@9a*#GbkPDal{~DiQm6GUF6yeby*y!}!3v~dX;m9lud7kVCYZoK z%3wMhjt1Deq+gAK6!a}ONo%<^yFXimU52l0<1WT=f8CmfXxcj`jvQaAF`%;-1CCK? zaf6-HX=xf89>60LEbsSB(kNCUt6L$tI1Y%15=rJEZ8YZs(y<9|R-xJuM>J^RB-OAp zk}0u}%|S)X3T36l`6A+N#HzI!X1Ved)_qX$;xb2zbHoGUy_0c9YimTPd~m4jIPnW^lTZ~H(0VP= z{Yly4i$PM0T>LKKD+sL8O6)O?s9<|syJFER6-t|Yi(z(q)5!yI(82+t0>k^&Ddj5` zHoKxBv@Q6PrU!slx?}5X2+NAX#=uhbvFz!6?rQ}m^*q;)b()@hH605Bu>rlV5YIWJy&Z;v^eGp#iSOP_*<&25Z5{3(>#`p=We>7 zl`I>%s94-KiVz7zacNz(TCb_Lb10LUI+;(86#AvoT;%ZTZhk0?C1bd$x+k8hSaZe| zvo8>wbdJQaw)|41p@A20SlT62Z3a26d$BvJ$a?o`yR#<<7>@uJlcm=??ze+RN%arK zP@PAntd?oJCB?1gtxUnr;R=D30FSt*5Gl==zY?rRuCeE--zwY+9ZvJSB2lYB?x7~& z?E;)7&Zz9%8~QBV!Io1i3oE;PvBkOB3pwAIlwDHI@j@E|hXiP_;v(ku3Qq*m;&-x4 znXp?fx~4v4K35^B{TFC>LKSGc3%P_FX-(K3C3Y1UAo?aacAgT|Q?{d1Y2@M) z#bKr(YH4;|oPAZxqz#&b`>NS~@GRV7Ey7a+snfx~?Yjn=F+9_};W}{{XVp zOyxB{vOLx%u(^Au`XPnJAyg4E8~xUb#}i;-V{Ilsw4^ZyiM~_xUgeBGhg2=DC~3yTe5BKn);YEtFqk0>lV6;DbK$ z;eJaOZpO=w%G!OWFr|`5io;+$5!44YWX-s6DAaf^n^_a1v7(uF^NMq85a;nBVrUoU zyGIF};YHKmY%NwLy;O&Sq%_Ak)B`CPm4%u$yc)YhLLhN%mP~Jwb6#X{;DhQ?Yk}tF zjMJl%*=`iZx6NT=!#UYG-J@(#4B^T0nQ=7DO5@^Ie&MJP^fB zTzRWfY9X{hJyA7ZNDfU1Q;3aDEp4YVw?-~-tgwxzo&jUhApRZ!WMM-@cbV5yportE z5T}b59wWU=`G4IMK4PEp7213*)!I8Mck@`dqJvoP6NyP+40Vb$Y5Ph}`XC%3U@%4* z#2qQPOcf7~(0x~A;~bE2*$og-J(!+gBG+azLGzNt-Ux!xo@;faN;@knA!i85TZln} zW!!vL%iHF*sRFjNa<-X=s0-RQRid`kV#N~1_=EgRT3yj3^ReTlnyCUw?&>z6bV zHTkWaxLF_E@L*|)EtyoS7U0I&jz~}qadB=UMok_o38>KS0#k(wG%2|JcqE}!*xc}O zXK7NTHK6p=)-ts^SRvmCbNS=bDG%_u8bnQ`?9M#i}>6gimel}_Bsev8N@nuUy{1o za2-?4He!J{uv=A*(YoLICeg!9z#ANj?E5AUGP^TGdaLNaP=*%1nTzaygdIyrsu<8q z?xLQQ;_ntAFJT@up&f?q@NyGRkKR~tyvBG!2eWxVhCbp}_-VzuR5q!1w{>4$3d#-o z>U~B*?M}(?U5!_koYNy|xyVr>WkZA!^i+$?*~zcqSbnQ$o{MC;r@*R|%L|`qjwp(c z6oszj%1k);P8e9;*d_?*sp7oC_l?AER{IZ{+LeNqUkCza9B#J&p6oY>%Y>#=GudOq zJnwWVwxOq`7i@-SgB6o#R?yvD^qgn3ydrD<&&4169mH~5C+ez$Q)3Oers5X?J@{RL&E?{x00~-7Dy^2f z1~)~A1&q3x9uA#g5pl&zah8syVyFgjWi1_Ui;aj~x8TW2H@!=FE0|E*H+DP`ZA^RC z4dR>G=%Bf|Z6`SX&8bSgYdE~@l}@8@un~|#{{RVu7g;DHZYji6Z6MPZ&23FjH4f1# zfYX^4SSjeI2j0V$rnV%X6b2yPc1|6cG^0Nh`i|MU$4Skel8I^o#=&73Et+mWC{)Rz z4Q_HXU6G(*kA=2UG-mmNpi^LPRDGUDg4?A307cq%O@qxqy`zenMebqV69`jv7ZEeH3uc2yn%QMB`-W|S<@p6IS69*tw(6fCL+#SQ3{p2Wr%Jr=8FDKF+ljzui2+KM zG%6h!upT1G&c#y?4`_ut)vd*?YVAQdY70)H*D_rjCUVp$)2dp+crI%XiZCWqoupG3 zi>GxTVBhFhYw?myLc@ljamYg73Lf^twl!2!bAv<7U2WHUywxyX_S>3fz#zK|VBDq( z*2R_O3ca9dIRX%P!&HtzW2r&ljxf7QntdRC=Madd;O`ZLF!;EjUIB$@8p{daLrl=e zX*snD`b&E-+=6W|bxdm7H{^kH?k(&2}u$;yRzp3VC~{6~{$@oU%`Agv)G$>bh`qXeQ>A|+#|IHQjRUC)dyKUIu5 z+pz@9B0$7Bg@j>q2R;hSpUj_EvzDL4pDpqz)9j>mU8NU_?fbK~Kg!ysN#%uXXnH~X zi~S47%-|Qgpw6`x)omTU8cN&Jo8?da(48`{=+K5Y=`}g~NMGq%@0rA_XnH^NC%Kf^ zzy?ihEh9>}bV6&t2q@}zdFLeSWhy$N7rcsmb#T&n1x03u37<)2u7n^ z&=1}@6;BH>2{#38(d@*`y}&5!TH(wULaEY43?Z(9@DXS(Ep@{}_KhqaAy`|QtK#Ob z{!i?wM>XXuos=3*MXnBR$%zQgU+#>_0}%8pMt%$}?B*IWLG;>v%YdJ~!D(f&zj)^t z`s&2njyj4fC5Q1!Yih}l6d-LlY@Q0MpL}nhs)qv$12S!uZ58zh#4zJkg+|e?*ns2k z{{V%H5UJ5*rE%3#(;*6N(J5QSGKs+2uWlgKhirZ5ggTV&ijf(XrnK=|M`*@l*}_P_ zgeP@Z3R=(#3$p#ugpZCBp+}cv{|4nTqzb z6&;D5swq(xXawxyu!Ly`@u`8m_xN9k|`Z z@?Eu4iQjnS6gF7j)kJE(tGR5v9_t&%Q<;kk_z+Wp&Arnx3J$6#juNF0oUbCC(NywG z`ARIQy5R}TJPa<^i=3WLWa`H3-n?0GgMuV82p%g32I|GgA*3`7kq$!^?-gX~vHt2` zh4vkQ4=sJP@787*&2(d@RnLk+}_NY;95xz|_aQ-mIhKzQ>|OT81^`i~R% z$Xgmo$$QX$C|OhVQQ5QlioF*3IbbwuJB^3?rUD$u`^+hzxu)})5d((sSuZ7uejQol z6S^VnT~p;oDLtg~WFt#SrBSRl*(23rr=_w#8!z-uruVvjC~*S^g8{8{ER6V-J(wruTU#GRX1ILFlIDn5fejM?y7T0`Q*?Hnw*pUqMOQidIr^d7 zQtZR8EE3-_{uVkTxOf47=A+ZNT4$!wD5@=y61sn6X(tP)mCa>C(-{EE_kby2fo zh7%xWu-}M<+r&NF3>-%}QF3^hPOFT;Y-Us6Pqzim#ljG6SFj@_a~>)h2~{XF0da`h zRPf@%fOdnCU6m$|&C=(b!EZvD`@3+_uSivEcm>#2r!<@KjNAUp+iBDW9~3IkqmG3Z z#l^qaBEdV~w+zDY+$3*8MCJXaE8mQbB7P@|66Z)^+fo?YCi11&# z;bCxb#N1gz$5TcW>C8-pN|2`DYVPeO)WwWUItJ<>=5CqAV>OrENpLuoFVDbRQ-P;S=2MDlE+>V{4$S1%xp*(^{XBhuCw%o_lBZbCjpi(KKBmqu$uY`!!3bA0n~UruGjN+BNayuUW3> z77AEe?tB%WP2ZS=8Bh>-!uEKN%%s#PyR{_pSl;|d7BS5c$5DH*#6{JMd{&WB@dWI` znz4n>;uaAQwu4>OM`pl(4r%Ps^s1EEoJy9(PsHWgS2&;Hl7X)jtZpQq6=1eakzg`H z4t~f`6_k>``pJ&KFVLvKpzA zeU)n_{N;HRdMchum&)W?@&b9J_vsVil4U3FaYfWiZ@{c|+#G)B%TvLs85!9TM3OjJ z0~anboDVe$`^Pnf*$|6Q1ZBqy21&HIG)|_paZYR7iLr37kqc?in(h%kN_cS9P;gGA ziw+h__pbCrVwC>6hLp;U6x|r7Jz1_ko%i%n*+_I-8Z!KlqK9bEtjZ}q17RKz@3H)(JD2*&4TBWui9Oh<$= zCi36#r$?_&r-nra*QW2#t%`v78x@78FamGL5FEtn99|B}dnuZPz1v)+I-4P(wvaBn zdafnaq>13!U8fUu3}|$7D)fCEpwoMLr$3T-W_i8Ghl0aW9e|vy6fjw2RV*&UEXP&H zCJt(G*X;0?5?N?p@Xcw_*wD&&*bRpprqt}~wy(v4paA(t(RS3R(xzs2LH__{+6qmk z{%t4!00J#_dWEDx1y4iaT?&kInsYr<90qFXnmb(-oY`<3Osu6uEz+{peh`haDp7x+ zRX4#c+LYFZJ3Z2k#CRfdXxRyk2RAB_7{CL^H2SXuwT;9;%}-^d59wW-MPg^-Vr5be zHe{;OZ)(w5*q%=`+J{N1_cX}KKD5*?b7FWXr&;wS(lK3Ba2t4SWltS95;KJAZJ}5C zQSB+cqZh;x9K0h$Ep^#b;kUOKfi0BI(}Wn>l?mq&q2t?djMg6SHp zrTb^aS+G16rDv-kw*gy-x3g??SWPhs)dX+_s@<9*skeeK>Yl4Mkc_aH;?RQ!Zy<3T zQD~|g9t+tsXYZ6T-P})d*G`g%E3$uS41Z0cOTs1Y!W+yns z(`uH%I>xGhDMb(F735Lqs`)J&^CkuflYazW`!|r{yAwwT-M*sGK_fA!xy*5Sxh@i? zMQCXUdCpCy4DmiI+7Cr6W%->&tzdJo`Ydl@9!p3a7i`c?uCUW-C&6NN`A2A9)U%plbZJ?7VKy})4SZP$vdsjd5giAZ3pDU_N zZtF#pTcrZv{F*qgW1tnYqEH=E+T1kZxVAzC+C%QPo?NPYhgJajZ{2m!W9d4ZiOrdM zA$Y49;>}}qY$qbj$U_Ap_j7qsj|k+!2s$Oe=1PzK@9wJn%99)L(*ZG_AZqYebSA+D z<;TeY-S=jH5k{lxIpxOfZ^PiXiEjv1Yf(5}GWAboAl}lg80u8Io<9kNeHr7U!T#Og zytOgFP4YuSF>4#A1*Fkrxvqc@B}|8qUz)>+CNnq-X}}K^POUbVGX@z0jIPj9sC;nh zzPg4$BPm#)rLY%pSead}9ts4wtF(!MbnlrGuwN9(Sia~d=&9)Mu&cc8D@~vrTpLQn z`1fQu`l8R?YhgLGJba!lJWtfUAbM~F^ zgc*Pj6^zrDcOY#!TuVzxLF1{ z;5g(FW0|wSrm%4CX9=(@B@{oHQ0R44@>)GcfrXf{T~1yJjBwe(E%9HxWCem4^5rU_ zYoxr*)){UY<*RoR?F&uJEH~!3K}ZAqZG6| z%q!Gj^G#!Mytv08pGt{k7LFioDXUf058^VV7o6b^(SW)$TMdQm&LI-!_$H9h-LsM% zH3FPGSLf8_Sbh}K%|EWOQj^OFIfYG?n=XG4HA6#BRkid&WOz<$oiHOA!^$k3u;v^v zLau8KtQ!aQMr+nkmq%y={4#aOwrxi8MZ4MDd&FVglaYc8^cge z=(E%dggcbviyYr%{yd6h1M$@n(NSQ^3NBBm{FW(>Ly%Xf{0+OHp!oJ*bC6xV92g(N z#aXk_UlV$Tz4cDRfEK&sb`^@Im7+JJp8F=7-x;<0` z$8&1I&940u9LCL7MUG2N(yBmnz!v)uo&cGIHXonePNrDb#&WWAR?Cl?*rh#O0yL{P zvn@B;O|I&=Svw?*%FeZKkV3YLQNA@Czv2s6KLs=TrV&ZC9N)fNgQ`&MDW%2(2P%7d70MH7{ z)|Ro?Q8U3)bRpagz4aE6Am+KS?zs=<6g5@y)rrm|q1w}Hj{I7noa~G0HXQCA3z9vNmZsHV!seS4(#k=uFER%-8 zo-x)D_EkahJ>a)x({J$zk(4HraxM{eQ<@tE)4`(aMQg?~(p@o-gbQyC;-`sSocuCY zNVW9wvICqZC&TEeQ~02tsuU|Z;wCVoOB2lq8&V}{PO9fVohQRuRUJD<*`-#*MoOI^ z@$C#Q$(5Y<5hRfipGlQoD>ZhyMLK1;VY_muwYCFZxIn$5X`% z`H!C=_8|pSRNxjYEj?K>ub|PMg>2HlHQF)(`9haaq+QPdSt&1bzGZebLj-HdS*sl~yu+=%%o_^uIL){{W@>g>KLC z)+=_e<*dK;UqZL4dC^xi{{S@tzx3Zwt=aijD#E9gWtNfjD*dOO6@JgoiC_AEs9QLH zEmE>?^)2R)B3EkTh)wo#)wPqXsNiYC#by=iH`QNaui|QQp?SGw^g+jeyLfLq;)Ai@Blm9YD0f?Me-*1!j2W zp{~dHU1yK-juVPA84={Fb=2TSMPg>jRlZcth`4cH@P#|!Io?TxaB6&rg*UarZD+Us z9h*hJdEP6wt>o3a^;l{++bDMg=i{#FGlzoqRN5Ljm_r!z21ckC=(cJ4tGR>7r@iH; zwDygK+cmHaoZf1kA-PoE*9%Xh* zy_jh{*wV(ICG4qGrv5E}K=aLQ)299s_Q_bgCbhqHq=mG~!qy_J$EZ;53l9bCT?6j$ zC^D%1-m&GnP$u`02Fakf4y!t9!KB9mgJLDHPb3?pv|)JoM-FH`=8Kv#s14)wPCHGf zI{=w5wtblTqfwVUB-uO|al~ajcbbzPFU(Pn3cNEHHS#1+&^>`vqpGoxDvylJDai%8vL1_cdM(lDw@0FFB3d5((HXDyU+llxXY^U0MVVX9 zTkrK=@~8DHx&Hvxvih%f)wtDWfUW`aSB+M-yr)#W!iH>w(I!bv$gGw~HLWD_3m%d` zC_$`fXdDK!4!Rw-0Zu1+>PMI= z^(zmWm{RZ2Z#ARvwO+gZQET4fI;m|?e2@-fgZ}g=bE^53H}g>)!47~7pC0A4W)@(n zLBkiS*)H=4lKYj59a%h{LT(z59&)|p{#9{A`H-(f{#Syh1yT7_1Ah|=F;kxhA+X{j zFo8Dewp`PGea7l2tWBuqbSTYY;J)Dlty)10tU1tP)I>0~fy=~LCJi_*kE*!>ansplMd8fgJOnwyS z9tz88z$aoQt>RW1Z*%ZBitSv`F%pCRC_}g6aXYHt3dAhYsOW&P*LG)RpZS_K9^S|B zo+HH=dBeh0gr6OB0RI4{e^knJJ|=?i!l_g>9kSuVRcaa&gP){0I;rqe&t3GI40k8K zKeEOu(Rln7ntPM1_a8#NcQuT5&ozDutLd;}YsmyQc>teST50+f+jdsM_&z6!fn<3s zb1wZA$}yfGs$e*F%BVEgx5E>n-X1FzCd)qYvU46bhOFUl1(@~KR~-09HSK#tQ>r)_ zQ~rVIiSJEZ8Ug=UFPCIT2ZXf>Vd9yBb#F-q#k5J;i?jAtN?M`;=j zdHc)#E{=XmkiXJYA1!6MrnjS|d(A1mY0CcqSN&9%zR_LPu)W@f?=@`|pO&Kk08d4Z4{{U3a%}IOR5dK(J8ZqeQ?mwoowm9TUw{QcNsVd#lud3)Wn3aGt z_q`xyCt;|HCj)s=q`kXb@1B~?HP~&dB+v{G1P%REhr7*iCa1HKa0>NR+)4q2hVjA>J(-?vI^5I23PPc4 zc{b9djkjFt{l_v}Egl_uodCO4VYa2DWOjzXSIrX-`MRo{N+ z;Ai`;&8;qX-5dgUX`UjvtiyT*XP-q;?`}6UVX^R!@|#hhxV@mtjVZp;k;9Z^gNRLU zhu8{@GT+l#UPujFAl&d+BJLKxYYxzHIGTAUTLT_Ycqn>)PLWZI-HPPU$OrDEq7WE3r_+G}Ak-TAIsitV7z)4+$G=`FR zfT-y8YxcE=9x#K+yR!CWX%8)S0N~j+L!tpucQ&Sc!5Wt|>OruWKjA)=A{kD$^J4MU zAH`Gbe9`f6)mOK{fZ+oYbw)L{Dh3$39i=wDGCWa!j3KeRi3YZf-`%u>R(=p* z5T>OXt?CMr%X2M5v!?QY1v0TdzhZvxXD9VokF=-v*bmewr=wJ;?u7@`Y?GK#*@dFB z0NT>2r`CIzz|lFO6_{mdbTKy#DnN_cQz=)X=7Dn;l-f^aV;_bi>YqlPIK(D;Dz2vv z83GE!!>Vj@`&l~gsA$?XGEOWd?pu3ZR1CGURvJw%SgQL+{RXHPS4RNF;=4xF4P@Mv z`^7iXu;skJ)l<>1jw3WFjWa>19uU3OhW>?5{{W}cKP%VzI_>#hveR0>)M-umsjF$@ z^HW~_f$=O*S)o0Dp`w0Qt7vsc%T;YRO>dh208yp4t0jM~{;Es;PKbJiyP?0KTY-o0 zomh@)+S(6%1TgbmHD|_d@L}i*Raz=rUG9okovD$I&IOD{nPonw!^KeqB-3 zY?3+^cR$q@_O7yNYo(-dS7<5J>oMWcV$ms^PB>e{Anpp)O*eWijV;ii-}517A|c+0 zOR%0rNmDB{#2&_CYk(8UHi&)_IH1pFIuEcip8EkSwRTMXbvf~n$v&&;R5hPBA^`sY zD0D}vXJ+R$#jqgwtUaM{9Lj!^rCpTrZvs|2mLCIoFM9s~RhcVgqpT|jxcCL`Ua-A{ z9@2h^xUqsi0akNLm{mSvxcLNLLG(?dhXamARxD()GKBWESC1jn{D!(W9 zLC2b>=dTwbD|J+BpM+Maf_ylrrbKuu?hcm|ervLMkmk=qpbd5D;t(B@ZCx3d>g)!H zoX838qfT}kC&&K)AzI!DGOqR=c`LEQ%ei~B<`KcWsH4$tm6B`moHVnAwhS)9zW2g@ z_xr6Lfxg}@se{c=BnEK18fM=TlAT%rb3wv+9)J1bsOc|oZAXEh71$GRf_N0lpSx1p z6JZI#jCD6fh;c;eEOk0~Fl@SI+|^q2YgR4-Lr52eRrOl-Iif&R^qnx`*~KR&%Go0Y zOSHyI41*lk0#0cA2b4JjLPhuTyAdgp7w7R7$7aCk<@A@!D#rM z1hsazsk9pbM`cr*G}za-2%F@yS)q(O3HZ1oTSS5PxD_F?v{6lhDb^2kyOOQh(S6Kw z;;DzXCXCnZ7nVRY#uH<$#zyBAxfI;| zFZ4_`iDO3&C19q|)~l7sEusSK>ByA-0N&kC!Ly22?%1hAM$B3hbcX)Z(d6x6?Chf+ zg;5+@4v7AXZ}w9^E0_NO)AXi%u32g9^;XmLmVC@xKeZY8sju~V8~m4S%CssDG|fU9 zp#I9B@0Oys?8>b_h3jsPn@q2NrL(J5wDb9zzt!mHs9*XwsD6(`9&Od&7B5X!8iuN* zneKz&k3~AOMejM4o~&GWEJZb-SOg9fFyW+`FnS@^T{FygL;Q-v#k#z;;}(q5Sm$NL zg)J<1LZSjN*!r!Z9#VtJZM+kQXvvOhr8c_rYoJSMzYhht#tw*f)k@fO{e?DEG1@vc z4-%zqWQeE2cxpXWBgzlgQ=7t9vuVapCGMT)0c}>%seI3$(LKXWWlEzavY+=rP&H_` z?uVTDsQux`s=Fy4%CJz-O=1PZC1BEYO3ZLOO~rBQy@rkl&gn+GbWk5VQaGrP-ivsi zsjelg4RpyV!MaTbP&qipB0Q6JpRytt7RwzTC1Ps56Y7X)_=TlbbK3UJI2O$6YpfKt zUYSo01RM#o%`pAi#2>1r@$fj36-Nm!yh9?`=@P=9=l=6R!h%GTu(4*DNNEj^D(}cut|qyyif^7}`KOCy7!m$!?52 z5M&Ac0)W!!i6h}u!3Eu$4kH{-{{V#01Z<;{sPoB3su*+NnM#xJ+j&r?&B1T*yjoKm zN3(S|N!klq}>*)aSksC;%%}Z!t82Nai^34A{Vru3y}yD+P*h^ zrb&*jTxvAPGiCe0dBv7u6f&igg&^Wd8>57(xPi0nYx7oPg`kC8tWH-`AN zLSyO~Ygk&*GlUuLGH=7DS?iAm_GXL9ZR%>yDLZ1C}{WqX}2{F(TsQ* zRNGdGW&R<-4UDpdy5BIj8T~5FXy_C$+^Fmx=;c+Zfx0bylQ(mJ%EEL_BghZ(gFkoD zK|gw(lctU+(aV%%cfVz8zZ93DYu^jqIVT=#&{nN2LJLr)ME)o)iXe&1Bq zvD42{=(E?bA-{O5UEg@>hTN$)Jk}9%nEuYGYm8#x7w=)LE?~JNrqR)#Mw7F|;+$M` zI?`orXcS%0t*_Z`{HppUlFpL7=9f)d_LX7PZ2r?}>H@Zvqra$Er=q=I_HK^ug>C-H zJy`X96HI4C@AS%RXZDp*)GeRdOg}JQ{{TgQlK%irqCI;}6|}xv>cSQQkk3>dS!;M< zm^alruB=nKDAiJ(po`nM6P~UXNW2)lCQmYlU1RW_Ls{_%q7dn>Vn-w@(H1L$+9&l! z2sTlG`7BP&Ot=nV4JMg5#X#3j#E8WlC41afyq!ar*f4$7hPzAZFl_jt;MqWng<&06 zvpXVftIZmbvrT~i0EF4%oXZfg0g~uN}K;`1GQgnU?W$K_8Qgc_d?CN~Khq663SFu05KY$hpS0py} z7&cMts$rBsb}MEnizul^onIS*y{3-#e69sHq_VandUzuU>Wg$rGC-RJwm?J^nq|&h zm5li#OAgS4_t*QygmO{Y{S{hHwk@_EM}jPS`{c0 zv{O%s*V(zCv>6gIMBog8@TgfVwQVbvXDr6Io{Eo}91)0>;&VpD`lm`0^kCnLZRA-fF??5uSc_YBXsw(B36v=5AEE5;s;$;arIvD$Qo4( zeyF+HL$MxE2cnE^cUCI~W9Ntc(JiePoz=6Y)CZOTr}xJ;KL}WAe$}e)3{46nv|}50 zWQw=QZ1t?#PO zUj=+CaCs>b6{=6nw5ktwHZWPd21~US4HFT$E7|GI{{Xlxr_gui{{UnvRP3X`uFd4( z{5h?fkMk;8f9_Q@d?y(hjFr?$K1%XDm%IwcSC+FOR3C*%FF*k8S9?>3g0vve(ocfN zq#w!@43xOQUv;WU4GU$!H46Qs+79V#T^eSLIieysrnC1)RcJH4ni&58VMmOik4LKB zg>2Q*S?0DsXxD1D?Mz=YR?d~9JE&V!G%AC@t*_bC&qB8U0A@SMUq#Xx(OR~U#c$d* z8`W(7(r234()4GqccVRRXcUh^w*LTTA0_^ltux|bMA>+#_>R1mTAI_6!Nez1Yhn(o z>%)0Y>8$vU<3mJ~k_{pc6$rE)O?+Nd4Ch@=nt>|iSg$1Rx|`Egg7&R*8{&gn(AI@@ zxE9e3L{n}N_ll`V)fn=SgG-2n{Ta>Kbd0$3URPLTx-6^;5X1+4&*B|qAqcoF0p19= zHvX#F6z6(s;e-3EBPVbxb*<>Ja}uf2IX%D?giA+)saI-Qk{UqICj}bEZ|#~s7c?k3 z6*4$*QffM#Y2$X0`h?QTtZW$$WAa_5l+M+p?cmra#U8?=styv!K58(t(MY5i&$>U# z7=>n!0vw2@dsc8HM5$0nLDXG^c6w_tyM;i5+C!Lfa6p!8a=9Y1H>k!xO3!OPdWI5}!(^x@dqKZ>p`M2Vx9#1K_k__J>to zkcP?+0OBSD5}WMnzN<101#Qr&BRz#GVXaR)$~`b9YPe1N=_tBNHvCySsw+| zI+zP(nRue-w!=H1@I4C2$|1{-qWz-j4taN;tYu<6bzvE-^|sobEr>b7u^qrLj;YrI%KE2XChStz!ns-!sCVZ+2H7zSOHY*dV zLyriuE_;0WBURNLM>JVTfEFwi{BE}}g(eI-$-tx4VcCP=r!TO7&8m%Amc6@8O)h=O z+31L4qMLZEZ6x*8!VnVBTg;&8ZuD5F{2?{}0Ca+zT8%*FISPX|h>mDeWMO{}NU`7k zb%zrZm6r2QpV$pYU40twU}TR3%qBBMwJTw0r;OP$m1>R^2pFwq$|pCR%5$9d;%R(r z@>E^gVSW&HEG1$6<=@>ID+qQPe1{cXVqP0Li_aU9nrpVels3CX)d)k(Q)ZFFcFWCGcgK+h!KZHyepB>w=Mru0Ou zExd)jH9+Pk(5lpp%(dWiMAUx6m3qWRH>xb;-?lW{5=dFGXG~##6$OW@Ub`JCi@QpU zI9>piO0^v#o5MD+zhml#Eg9fDG8_m@rp-CD>Qj?&NGr6a=^h1P?Bx8b+EJ-|r)5jD zV;r&1=!a{fmbZ=!K>b!N6AqNlV8Ieu;vR#0lQXVg>&I(uFJrPDK|I z>nwQP9HcCC$-~iqvd`$ZzK8&1c41^SReLx>(g6o?Q_+Q5Vy19&LJNY?^hUCKUMj72 z7;|C|nl&2WA5iTcXcXrT0bfTG^Dp$H`jzxk{YqU$;aZ(vMR5NB=~Wp^6lZX@#wBJ2 zm)b!Ss!4#p>wc?{MU)Skd{nb{jNLw+Quhj%1;irV0j>6843LPeqv);^$2GP4K8fhI z{{UvY$wASyhItk5DzmFr#++Kcm+eA7GTGCZ{;1TeR)z-VOL9$PE9kGDZT|oZYd{Y1 z7GBdps@{ufm09GrYt(O&*!`eF_J6ft{K`Lkrt{>#Xmwr^-ZUUmp>(RIdEN^%Xuca7@Lx+mlK4SVV+utig9zG!eba@;!p6ltW+wwhr^2Y z;{{LqN_LY_&%;fv{Z>(hv9CVtEHSKVI@}sAP1Gm7(E^^;u0pJ8k{aV7-bm9eE^`LU zrqHSr@jLY?!Io=m78aF>&XTO5w<;>vxcEZZdz0UdfZindDolH^ytYjKixboDw`p|jGUS&vXdu(2szb9Oez}L zsSq}#H95_y@aBn-$tYB-q`1tMw+f>60$f}%Pcoa)LaM{@h}BrUz`{RN*S7pYRNH%* zOm8xeg}&HobE!My%E_8J*?Y_bgb=BU#fJ?$VIC{9qffSf-9S4;Z3=wc;!mR4sYIU{ zN7{y-1A@ll(ZaMs&jXCFq3?9rg@Wid=A2jzG zCDLSJGNZ69@J02>raV<(=glE@S!NMDng+VnYBj(Em_&90qYH1f3YL*fc0!v#j*DuP zj;e)b;cFS3r_*EcR3vcmOmpFl#4{=|wd1UXwW88KNRvp@9u){f{{YjwO4QDHqRQGM z{Q+H@^l;vI+P$Sm&*8G)tbZ~+i%6WwGxqjSHk_r#O2p!@QwBK&Rk~Ft(=5n1Z!CH| zG`}#`gk7apr~tDesMe+XLE*=kUeES}6|{yw^DWjnUq%IcO$_=kX`&xR?P+13!ljPF zd_TlE{% zD`}W|taR(TqdB$f5mCiJ%Nu0Fu^y`AdZ!q+H4yJbYE@6=QYgH6fP-s>JVyg{ z{{Ro9fPU+gnq-b`y0Y76Xy2-uPvN@k!f#Y{2(`6B%OeP3GgB3$pwI>*ys$KDx|b|8 z>2|d_a#l2%;1p?;DZBBvFt%Neleb)ZBaf>OnaGAWzw%!qdsbDXHKK$VS6gnpV8qnNPdsE8%KdW z6ciliKMW9?k~TfyX2wjWXghi>fZFz~?*(@v>{F zV5I&er&H}(aT%6Mrru1INrBjA(;gDB;w_F5s}G8B@lPDv{^_*cQS{=J%R-}w0`f5@ zR(3+j)De8(N81fd#CDuZkgC!)ZU!XL*;4HW^P6LaRt*?3n|THRrNO8ZO{AjGOn5AA zIf%(&AQ8z}1($FFM@0p&uE2V=S&eEI9z|{F!QL;rFQ6JRXDb=QhGS$bRI0Fp_skVN zn@`J8rCo$7x+Pjz+T)0X>RL98%65UkBcnQ%BVJ{%#h03gRC7EcR{Os*QDT^F^gYCGww>f0?= zQBLI?H&sTM7=Gc5lUt!vmw~l~s}_-^3^LBb(Dw1n#dUOLKyRuV}XFKQ>nPf zZbi-e+H>3HH6WoAn4^s@t!?DRTCl>YLV3SU;39ai3u#kE<-qR5}jtw1?q zr=qtHMYBu~JzGyIrT!gTH46U#h|$>p02Mktd=LATKguGbTr8R}@#c+|%Vh^utQ%~C zicH1TVs|`{^+LJKErDfr6>$q?d`q%pwz!^1=(IzhRD3N96<*4phGl1e1nM<6U6+Qb zR$ER1Y_-LEqOVQC4+>#+kMdu;nicNVc9}7sx}?Pzu{nPy{~riKZUx6qeZ6Ne02tkc=GW; z(K`XM)%!j-yJP8w=v8Qjzk8~|HyI*EMh|i%#=VNwS@OJvv8LAi##TD74tGS-;~$s( z*7lC?7ZMf+jAJ`gX}ZPOG=4;O8u{>7rr69#-98JlVUl$^qiIVpH)|AdRG0*txCK)c z2ZG}~6|`4+tY5o3=z(=2(-4DzGSZsx;xS}a7XJYF3)Xl|Q(O#2$irS>_C0*mRYlSlgIKnQ{beFmK{wwfa`Km*K^I1xP zi9t~{3hXJ@nzBJ}OxBT2)Y#EWi0c}%j*APL9^OS>fp13@V^zPITC|QvoUC}Wu~sB6 zX6E^XJ6dcpmeEnQPow2x{q@cHn6W;fEe^Br!evZNf+r<`yGOx3zwbB;xL}pF?H%Kn zdL1%Vsg-6mZvoIPsO!8Y=Ek^Vz-Kbvq z!>C(2OIF5`Kdo%mcl9s%jvpv1Zjt=dirdkspUVpRH9se>b5MD&`Hk{k`Z|Ry(i`fw zEB^rAtyRa(NjC8aOc!$*YQw-R10kNgJUI8Xcbujd?+uH1EN{=jJV7RPRH@F%$-P$W z$0P@4M^%7gdyfFSZ7BOgy1-T^2w*m1!p6W^tJGUhf2zuQm5|i`0G%6asq*Xc)iPZk zY3B)PYHk`c0@9-t4nYaLtdm>JqusF{Xu5m_(_5SB6mU`)j%SHjsyfRU(THa^7*hF7 zb8=Wjx!wzD*he6&-!+!L)x%`80JfVamn7_0+EjEG2O5<`+aQ}vWa1UFQ0uaW$Q(cN zbv~n=4Q|K_A=MhLZX=Uh%`vWqws%{S-a6h$Ip4p2{{UygWei5}i$r2^1fc}V+POI_ zBR)Kk4a8hHkA-OTh{Wu8oo)d=v3Q+O6=w|O0Eaz5{8c~xRLSE%suc}F{4K)4_f-uk zq}}eO@9cw>GvY_u?23xnCuTuReEML5ImVvx;IPbz4YyXy6sJ%^)6D zEB#$xq5`I$r3vKaH8iS^KaQb9vjso_;G(TI7N5G<`X=m4GcAA@v87Fe#^ny%NOQjo z!1PnuRP3L2lEbP=PVCDX#_@hj6-rw_eTNWJOouD9`Yg3%qgjyg{Rmk{-urYb9DcDcCEAyRpb^5P( z?^VC_Supu3m52nFJe8!??D6)8pNU(K3gnN!-->PjI zX87dzCb93?19T_?JJL)9Y3S6SAN3vml)1#6Wm!VWLmAZYQg)rsRGS5{vfsR{u#3Br z#P=rEFT^Sho2TfkcFrk-cvT%!Nuu_yV?Z9+elnukczE6i@LQ*(J4=YzKs6>BCgt_$$Qrh zp={|bTQ%GLN*z(o@ZhCD%&Tt|skeb%m z1Yr)S7YhZt6YE9BNWI%mJ}3u)en+{8mF=Er+Cg&-*4~ui`5}89C8T(`BF02a>d(|G zv4^FVKq00wF3nkltKn~&-}F!sr1%d8LVx{7?t*hDGs93p`GdtbP}eK{)i(K~kKt{W z#zd+@oybk6@kZBz>}tWqc9>Xo#;dt+1y2cqgstT1=9&9Op&|5}8SJc0uoi5fNP@J9 z{{W~~Xo<+`VdM&H{v3AImaIa>ZVx4cgj>6Fb(qzbp{eAHr`zGx!W0FU6#Ej_9MkPE z#;T_X?K?~Syb#1-_^CmocRxKq49%4`lIGwMZXpKQt!;vJHl49}RJ2&it~Wc9JyRX> zl|R89cuqhC$JI6Nxjf1}Q(G}Mo=PfdFRpns;S1R|jT6UaO585-b%LhKJ&p#MoLo`; z`G;sj1Y!%>Gh?O|L$bv7fgOB!CuJh8D`>a|$PTHe> z3=sJ6=C+CqqfET`CU&G#o5A9}xO0;$4~0L(frFwqUue+CAQAXWsdby zDZSokO)A*9fY4*=ocNKnRa`AD0y0oR1wOVJ!ZKK0qyGThuF9?avc2QK`pUIv>nhqn z{%BHt0Lmb4NC-4?@5xi1xUyDMg#EcMMn zZb&t)fH^OTMrV?j`YCmm3P;T}Jm;Oz55ntAxu|H=oLI*0#{?au=`ZaLdnooAO)^j3 z3u2~@eAR=0E7$zN=B{1l)poS`Ev*)rTUsBXSD{odjCE?gU^<1fTA!-f?49z}Az8KK z!mukXEBXOjXZom>wfnL9E77EWSFiN-2SUH*k0t)1I<-qZsOHg<6OhSDH5{?<;jh4b zgb|1-YjZ{XmLAT|Hq`Fn5~B>Efw5={ew28*dtEesMlGjTsri6Gx-Ah+^LH1`me#Q1 z%JhNwun-o`mj3`*{ZtlHdFK$P6Guj@Vw)O8irc6H-zUjsD7Kp+dWlzm* zIIXAsR%xApCZIMP(WzPV*#cl~73?-Aj%5bFN~yKy^hNj{T$wERliI49>@bTFQ&&cNFaYjLV==#6mc zw869@_KIY1#BO>h$c*)3Ov#lAw)O>H8yj~U`sKFdn&J4ZVv!loMX$#C7WeHZMupowgw*nZI^oEuVp zs(U>Oq;bauU-of-^4uNzBHFZ_OpL+JLG1#L(t3rmK~qmgc^wd%SUzG9?Fp)Ua!>>g z;9!^>^+tNT4lbsg4HvsR0`75*Hz>Mj2OP_7v7CAFh4t*sZ)UX#M! zaPn5H-!-#Rl9r7b-6{~j)4%f93*BjB$T@8~qkd{7ZB@~o^I2a+(O=MoCql#Wxm}f- zqMd4!$`NJ9JLW8 z*tAo__j5g0w$a1A9#(Gw^V*rhLWC216n?-hmy03 zbsS;F6@gSA;RR8vz>Fxjl5%UUdFf&#wQ6>OYu07ny5J7I;0>@d{eNqAaiO0p$(2On&%T$ zle>vKNzy8qe-1IpG&SyqjwV+h%74nLaMgZ3ihz}<{lSufVXK?D1vNc2VWdY?YB?9_dEf|K>;Sv=f;QS%mP*BB2y9&ck zNi83VirP&Vbr80DBhl(ZALQV_=Z_`tY7VU{-cvqm^w{OMqWT53Ma^FrUi;{+R+`v# zGJa)hG>^+!Uq;eL%TcadLria4GPbmc`RS0aQ$>H~Sif_kd|L|oJI9*;0GK?GEd+8i zs@au1Rr5LO%%bnGvbx(d%ed~SCtHH0Xmg#2rn_BA{C7gH`IS8=d^;}gZ(R=3sdyaR zvMG+L4KU%eiKhJ)YU2{fkC;M-J;$k5Yn{<=4^?1KlHDNnSn3|lyw4ts4K`buxlN|$ zY`217bKop`F^7Tiaam2(!~BZbB&yD$>@L7>$pe`eD-&`zPHbFUBS`rbf~APD2s*_* zxL^ZhCwcp$`=|(N_Kxyi%8BY%!mioqu|z7w<$$KrsZF(DZGyl+OnoQ}Ye{cA@J^)d z*N7>!m?5nY5i7|Sx16i3zA-qb!9@kn`+vu~_>>^;I8>76+YpPItTja4b2m^^Zo=LN0;K7TU zX%t+;;;UZ4=KhF~cxrb=r4I>3I)37VbZAvLFh3I>cTa*9bY}woE(c|Hm5kxYa8Rnd z#5HwA?QSACEe@RUF8wujjp3j0E$OPajuG|L!sPQ6B=QoCYWh7l*2ZHSW(P&MAqGTy zM)6J<97(ErWTCJ+1-4-ZgD|#46~$d_fSpWIEW!=uc&znH#Pwens?7PTwTJSl+8-%E zRu#Xgb~-m1`&OZN%RPe`IOD8y(5ZXt17(+_0_E-jJ$N6cmfqh>3yTAk+K?5!1~RfzjR#R z+HSs0aIjX>sXc$of1>waMZ|fPYOnsK?+=?+(5CLKTUs>&ztWNNxqs>!zts`*F^tibt&-%Re#K?Qa=-67CSIt>$G|;)=xN6;=gx$yGmRG zm4Q+fF=fat!WDb#au2ryNl58eZdIEI)`!8m5pcqwzIPzP4Sh(d0-t2sr8OzfK4 zacz*Wx!H+tg4phiYRXgT;ezJEV+jGR5Sta5iLRKHW9Yc3 zFh`2o(c9!<2htB|!hS0)pbu3p(dkbxA%D$h%Jrqvc9ny(7^xQx^ec9Z7{E^OIIPL4{uIGSfuqdY0>E+k=_>KNw-;YFax#$fXbPD1LK zIh~{Cu!hJ6P^9y;9J4)nvlpHjs(sNrFZ13)&x=xPnvKM89 zIp2iJ_WC_WgONEWT(=OkEG{pD&r|evxy=vw&_BJ?B7WgmS}`7HyW0F%aO%gTRSX_mq{n4p{e>sP~z6|SeZ_zoG)~^(?Mzct8YVa=;gIevwo}IxxHAe zq*MJAij>diRukw~y8123qoGhL)(hVsHmjO$>eaQP&@25RA1jysrHGnUD?T`33l1ZM zYQi@{?AoAem5Ank#sXx!YrzL(qgkFP6yB+a{{V3vVx=>1omQkX9HNGj+Y({==k12D z*@#3&OR@l$pvXA$h3zZTYdWsewSaP19_CeVCk5E(nEOGz4(Lx6G;u8wOsLTGYHTOt zb;|83)N|d;tO{EgxvW(kh>m;})b|Rl{I`CJ-=b+UP0B8bjvC_W+;82(R+w;D>6(r6 zlp1Qk05`gC?zNv(@x~U_I%m`%`kFJpE0)o(Ppc>NTRL?w&9nNiXH}2+T__r~gO7@U zssdp61TbU8O;18RP<%T!A@V zG4Iix+04vHM-UPPli1hHOreJkGlhb3lATQ1;n+)phZ(mdQ3?|Y=LJ5cSj6iA$R<1f zS#}(iaA`U9oG{Xk9MmQ>{C9VQbwtaL0IQKmvA82yFK#Bq#KP?H|Q4dkzQ6gl9J7RrEQqliM($sT{Ixpe%> z#2+;-4IXPqKY)I#6SkYlZoQ>Cue64?VlJ5dp@>X!M1W;w^jrebGRfcB9{~MXLd|5~ zML1dLxD8wt>5oP3z|>hm#CW>sohajc=jO2d6zg!{y_;jj%3g6Fu*COa2-DE%kbeD9 z{gbM`tvZi6l2^M2qm??JyVTit1O~dSZe)+u2g1th6aW$4y$0=H_j@~w*GdaaEs{^e@8hgG#mKk_ZT40=M^(VgU0Rhqs30IOHLpzfh=Q9T^3 zNclNiwH`}myT_8*(vPaPk%?_FkNm6JXoKn&){NoN%W0L{^l>cSl?`=xem(b-5(13Jq?j2y??G$=u% zGMF0TN!~}QHA_QV5hdBG+C@VSdBO??n}#Er6ts!#j!xu_N4N%#E3^X$b)g!V_Hvn6 zlq^L;fTXRF>ZR|(JZ!z|P{CEG9%`!`_O-^DfKH}#D@ZOghM@zbCh=ZtvxtVwrw< zXTf$fpMkr~#c|M}9q@$&_$rSd1t&RT$1|EZ#lwaZ@}XgfzFf9pvKH{wh-zu$k?NYq zv^9)&CoCQx&Zt2hrGeVoQ25?5u~Xzm8# z!lp-|Q0*F}tzjWwWo8qqHnS;4Si!nD+Sh^cQ*dzlEt0a-JHTpoky)ky*>5tRj#viK zF6f|k&K$!Q5k{%%#-XwYR>ItB-3ukUeOBweSH!7+F+QZ>#OMj)vs%~^Fojl_!0Zl> zqS~O&ttt2cZ9vn!-|n=^<-MlGHpfz_RTS`pEslxUS}u7irMTGqO%e}^r`lDMiQC$U z64TE$+OoEjPW&s8^dPD&tZKd3NfL2!@Cp9_EBLMF1!C6^5WVPDdrzLcGksfbg%p}R z?o?t5a!|o;Y0ttjILSX@Cdw(_#Hn$U-5Smy4^_C|MY;yK%<@xH`d1|bHMHPQ1&%HE zxvE-6Y#oNEJFr4^F;%!th>M```c9BOBpliebRWF7{{UxCMYp3?rlYi~#j~Y)sO@Q$ zxlPLSJqo)X7rY~=Uh8i8%-Eb?FJ-qYZ& z>W%6bzo+?{rLNJ+lE%k_(~Ti_1>&TvZdkq%mvhAyyCe28rV;GO#5gFZ(XM4rjgv+` zJQY8}{7IDgT|&fu+243~+p1K`1ypmJagt<$9Vb3YNnM^PYIZ!DC1T`&`^Q!%3oNyB zE3~Ze2a3a^j3e(H)VamSn&PuQOMajqF+tBb+&P&l$+#v*Ae`zg28-+Oc_zq%8FE57 zsKf0$E$<0OuA{cg7>Vvb?X2QF*8c#}ZDDZf3u(;rb;7Z~PN$2ctYBgzievA)7c;Ge!do|9%Sh4KISTh!sOe32 zTcTY-&%nrT12Q?rYPi#w_PW?w`exkFENzX#W2x~c6bl6+>h*g+2eN*vdq%0z(7lxh z{!OK|qn7;SH}xyuXpH{=<_om1M6iA7khav5^-Y5(h=q*ofth17@Cr^AFmALQk!*{I zTNr<-Zd4y9`zAj~?J%{#?UjV`nO^prx+3Nbj4ak1TU@nh)W&#UA4S?xtvGYTEg?tm zb))8$CbRuhz%Fx*7ko;)YtsN!eLI86QNkKQE<4^T?2+J|EDb%YKUGEhLB>vADqB|k zKqYBTnH`g&*;#2J^6jSh@LDZeFMD2Pra3I&svg>?J($TsFL~xdpJ>jGTQ$h)*;pH- z(#7W0i`qvvzCyKXzN+;qA2dwInt`9;Kr(LNFoY)LbNd)((OX7);RU+3JCRQ>yse)# zB%|5nIH>^NFBBZwFTyV&XzX~z=CTdb-o`n{7_i`?rZ(G)P@{^Y>VNHwkS%>d)UEd| zpgh{Wrj143OK$L zmOx}RWU~iVoEyq`tZe@P@UT|h=BbyMXEnIo@p}^t2`1Ldm?{( zb;;QM+{pgORi+(<*#~B~O4=YQt+{ps9e;$`s`m79l5Va^Rx0u2BUFO7oVSOVSEl#; zt3<+F!f_n>FZjnf!`4)2{h2%=u&)R+;yv19@dR9SYHvJAXjJrP(V*JSI7SwhPxPuZ z+i0b0o_;HB?sv>(58Z0%m?AfE527NS9^ag{-&HQq^cQ#s09FyAb{xs53kUaGHJ?T- zds<}Qm^_!WuR^fP-UgpVB84yOX;1@ysYJEHHi5WPPZcg;NeW$BvFQs9Dt>0=4Vha- zf3lEbJQGVE%pVn{Y|o;8#K5t`aDm28hc$+sECZ8PRXq@X5)Zk{;akdp{{Y)6`6!vy zA~z0ev#&*uZh7%Sg*pbC0kCV9BT%;vV7lql+$%YrEr3=EbnwPoN*_kYGm2GeH4Y4H zEm}ieQk${9L_YZ~9I}(Jw-G1*0K#Qg*JUt7g-Bm;E$^a<)wb`-j?NlnL4*w|l^gQE zB>G>xJ7ne^n!DcbG%CN?)5DR?dp6(i9R9)v(OXB$>_Q#RXOfz^ebvY>9$Z#^8ZtzK za&D@c_(Ox^E)at#;j>JTn}TxSst(Y#rv3|Nr7EMrZRpgBy$5*}{{S(o-^Y^KuS~0U zZu4H~`7PHECH~6ATBE&Jy(>1KCAXu~carv>v)kylv{$pD*{fBaYuSF$BdVHTv>H{P zN}}7)*!AsyXE=0MqgtA_kyV{m2I-11x!`d+us2klw+UEZR1S-HpCx8J-fG$)JzS{*%4`B)G;4F9z|ZUmQ>bgj z8n~n2HNo2hnzxuLX&eWa1=zWyIF!~S;iwK;i{GCBoJqOW3LM-@gW;geSVgrk@>K!L z8Y9tmPT`UhyxSDkKC2q{S*@F*w0ss51dRG8GQ$%_6{S>jhRY{bj&??Ws<8z+p~&{5wKw$zTHOMQ{Gu{dFFivGLbr(K)7dNBpK#47(qR4$h3c zG9Yr49i?dvrr*0uX!@tGfrc88MD<=5=nnO0Kg$JIDA8651Qvq=D1%>u<< zW1vvREtcUNg12`#M)-kSEpvJm6!eOts9ye&>LFf*C;oLGxoI9oRvKflY;QivxZm2m z)xt>N=8LPfF~*He8YTnH`l1~6hU7?X%7{idr*?!NWqIni8uR#5#Wr?OayKYdd6Sk( z&^jo6C%eW%{{Wib%Dwlkl(wMqy4iGoQWnKW&x6QKbw`(9Q~+K2Cq3^BXQDW2(g1RJ zD(4fpMoEmOClm0%3X!Qnovt0JXq9Vp`wnGqK;^0(E$S7VJN8oUM5Tz zUgD};%P!>CVW#0+r(zkLdoY2#rBWkJ!)IxG&YRilt}ASl(Q6`aH7z1S-Bh*`KR zKj^JdTBoCyZd*VfCAC3?UV$AK{Kl(S^$OLgmGB=mxK-NkMgGdi>a9`!s?}VxY4Tfi zX*ps2!Gx`i7*c;5>hV%@Shx(e$}Tzms24=)5UEff2*gkUc%ggddaJI|qd`9iSYJ>y zebBtSf;WP={sJQW)VT4~V>fEL=9)(iD+OJz9wAYoGl{^Si)?}5Q@P3>3ROaQT^B#d za@UCFP=H|)ztQ2W6y>6RQwvguEbOoev_HO+Z(^}vNIfX69ME(M% zm3CG6h7!G{7lG;&ksd$7fH@#FOkGm&q(4)rpAO*E)YK-qxb#rXA)}~9qsxdqmMP({{YR;v;nxiVKvyZF)6O5dqCFS>kFAtgN`79ZBSjsv6AGlKMH>Cy0Cb0fsF2_zqFw8=T2y0(b-YW$_g&i4j;lBVXOU?%|)|Q{^ViqD`*4cw&<~5 zf$~?z)oR~GYRq2&^Iqv4het(rk41W8$$VqYTCG5>U)5(#%WFqzTUtAZMV&^gX&#|k zwKa*Qm*sUQJy?!QvuPsGgUMp%!Kfhy+J}Hs z#IG*x!n0u!-Hu)9*MeXulL0*O1G^}F?kVqiyy0(xbD05+`ju?W^<6yib%K+b)H!ib z$F!@7Pyia>aYLr2lyK*4x~C^ev1+31IYIjBnvI)6Y%(ynJ{qdGn+Q^v5Vf@d%&9WU zpLxIeb=lP!-K1oHgq}LG8oDvMk9o3zLmOJ~K+GxZ@SnnA7c#57*3iU%64DC~!Uz4T zhF6W`dLjJeexZDMaJXA9e19waD&E?kyLF~GC*hBC$H`y( zD}7YiL2N0+w~7I*^E?%nQ|7B^{g%};8D@dzGEhRq+xV`^qp&z!I14OH4XEG3@ham? zVEoXFYCA~uLkpbg{6DG%z%-13LS=9(g4=spIU?$`s8)C0o2`*nneeDo($gw_dUB<; z^mp}^r_-zhT_QH6Gew+Ed*DX}IDt@e<;7TbW9qq{XY6rRcxe4pP#u`&b5owX6_G0? zb!~YPRJ!N6hL82B&D_emhQU8TjpXqvF)bsslH33^a!jJjNyKGo5HcZ5?h4i0<`t?l)oy~XOa9fn3yQJ&D?jSCYP;2Y)qDynC+e_HHaNbvH(; z*T^ymb-fnjoz$(G6vvXpcTjy23)#b(O#=h0gdcVDv_{Ix&5Epn=Dvh?a9r)Z;y*jWa(k>jWmj;A}FlSt>NQ_<;{ zJg;q~4%3KZBn5%@2JLX-t1>UAt>GZRlDp#K026;6%)JJW`t=*uj}otABs1u9h^JeX5M;iL=Q zZ+%sY;p(f@z%V~4F~L!37YqVCmlRm$;%N{;MXYsZw~(wz9!``=C((od0PRlfs8n$| zlId8B$ajLM*E;we@D54MEXVA!o{I>nU9RNXlM2YUvXj%4O>o3Cg~`mG`O zMlQwI@>DAdPQcd!Ro#Gc8LJNK>4ywVj6;`j)U8pp*f_YXIx}POyZkIw99-^a>^DN( z3w2_vu-;rs!A+r~UGv}qnznBSs2M4k9MJ;9^;m}y3C_GzF%iWuHLNAh;=rplw!&dD zu@iuZkcVxd)1Lsgv_d(;hFh)w09CSS`YSkpQrU6(6=#n&6=K8r*SaUrt-2npTZD9S z->Ma~k5H{vo0ioUxov3VbYB})t9=&Ekl!_D(>`n6&qcW5<*OikmP*ce^IJMYyu$a5 zcalEJi=&xCWvz}{ql&u4z-8R<)KmfXPU#m%3suFH`;H7c8uxp>gW2zujDF#l^;T6f#Gm zbEjJ^Wsl(t2u&i@YjNb%+7ucPWm=nAf*X=`C+{^BSDI=3L-o``s=!Xo!VNjL+Po1z zss*PE@>1s#rX!ZTTo7obP|qfzNzK49NeF)oYC9$gMb6CMRy}fVsTX3!7lY!DX6l6S z1zcfQu70XJa(r%p?LAzrQNF7-tAKqLU!utU7VptrhtX{_=&gu!m7AedySE+3!8xJj zp2t5$u*h3QVj=jCBX6oEqr{IDVj0j~d%}DJ7rS)xO_sHovfF}GKScea-~Jg2wNX27 z2I3040q9m9&C}|)u=NVhY4h&vxn{Fm7AJ;*&3hnvoqW%Nhk=KZhKTRJpl;Lmj-uxf z&@&}DniJ_hr#IxgO(o)?;7hIK6In7tbNeV`ZOu;e`S&o;AD@Dq=W|j~0_T_cQsP{A z1tem0UyxI?07=@qsxc9X$&_61>_!8e=nYkC2UCA&WJ9t=y@`pNBUeeqMY%SdT0B&C zV4iCu>a+SSm#aMbuZz)bH`Q&?X;-G;u1d|H(yUwRvIop70u`z_d8SROWa3C zFZqpDtnt;V+Di(!W7gh^50cuT=B@WNZ0R3Gvr&#ln|SA{O2k$H#X#2_^`EnMlE|iN zHC@39kq3^UWCuN8oFb1z$uqJR-5`9HDttI=Xz*DQu=}@gE3)jVv7Ad>k7(JC6_C~1 zv*FBlv)AOHDI&|+vlM2o#)HjsM`{+%kkz)}?uoqyyhyDieje@BG0KgX-6h(pvVdtL zIWQ5USYdo>Zl+##Myh#>tWJ74C|@#AJH8lw8cqaWE3=)Q^77G2ZpH^@KqS*iS3#{MY3bb z2A8zr%E|Q%Y%sYs^%%g~nbSK#dp34|Bi!HatN#Eqn!*^sIYQbPc&6b5j$utPiNfJU zN^PDp(iA$7KP%SLYL6*j>KZzugGi-5C2iKAdKK?mVMj1yB-XRKtqe0|Qq5Ii2IW|lof~H;y@K)U> zm3ky8CCytE{Z*00mXR7d)G)zk_4Z0Hcsi2PK2j==TSGCzL1dO#*F0DzT_Aeq4?Hd9>3ABf3(p>9-Wr?qGR)@xWIU`x{)BC_bqKDz~ zHcdagVIW(Qd)V=JFi7gEn;5CbqM_NbtR|-^n=aMNW+HJD3ZX6=*+Lk*OXdW^_D-*e zTofiRpNfUIMw$GJ{VSQ`+K{H5Oa3;4^<9gq(GF#xxG2X&^m4Iq9Td6DpTy}+WjHvw zp(hzRG$(0wh6`D|e#++)xdprfc?FsnLt~7rFCz#%muSc)BIpwU@=!{N?#o6Ned4wo zwZ+Fi<{AQj9|ef*KbcZ;P(2j6-4^uT14k0BO!2~nQH-_3ji9MFgBqT6p4YPtvqO|M z&J%tM4J{(xAw?%scQZFDbJ1O{^j8gAfpH#d5OMTdH5H%rTzwVpwy4V5qaI5#Jk$!; zR;bnRpEbBv;q+0f{gsuT?^SB9Ti~s#Vasnu`Yp&jq^w*uVHurM!M)5sZW=RPo7!6N z=pd?Hb&YJxQ%{RiS7TFlZP8<8*m*67;5^|S4-0m9jwqPRT!rm4YG!f zTgvJxQ)9>C5};EokGfXHXL*Du*~QJ4;o^&2AcV&k4Dv*tYQhzr>bB{StQ0S5eyY-Z z))pCKZDOA0Ff@HpgJrgCv0`(6T#@Xh&NdfK7&^RvDz=m_?u~-$&a0ru)-35SK zs^U7J9QV7P9FYLWR7;5z#^@YM+0q*E_?mypaC~A03~KD^zq2E9q)d1p1r3M%ua&nf zJcwDRIM?i>DQwEP4j*~9?gVv&JHiK=o*6Bshjj=5&=g9xeHPfCC|G+p2;_!s1Hl7Z z92L6r=9(HEOpg>=+SQ@HDs+u62y3p#zU4^6-X3uNH_ywXv0GGQX;DoBBoFC7@2R*MIDnt>@OSRnJkXeQVMM?nO z3bbs(V+*)1g=|uB=o2c}cV&cb@li>a;^Ue78~P&FoFlK*S!Z>oE&x zm72j!7Zb^LnoK?4cY?@j;;)|o7qqi}>VUjdHQsAwIF+MRIW@=hLnY7q-Pf}s#C5;I%W@#ionLX-T){wOQ=#YyvM|0I*)IN3xL4Aoi>Bb z#!9exZ}hco)eZ1yTSFP~P}(f?R-sL!jh2iWaEx&SR*--99s29Im5T$zMpjG>EyH^r zE8Ry$R!8VhszWKGqQ_**+llNx|V+7A=H>Z*AN`LadzNx13Ps1>+QHRbG zC=;~ZqYljj5Dn~vx#SK6sAM#93PY*`&lyqMN%2raT(F7(qGx2LfH0bQN{3ftKP3ME zbnj_Wp{VRmC91{2yl~OijxDyZo#%%;7qd|el_(L>$Lg#nlvvsucj);-OKoR5l^xVZBtRI$aU!COgr`L4aK8c+H! zZAPOyU0X?OerqYD_P^ybs+Y~GSR|@~yJ6ACQ<_fjO?5$w4+XRAz#k74d_6fMfJA2t z9splC@vByCg+c;v22&vFgj!J{=bY~Q*Smyacd zq&eR}vo3K(&deefk43Ryq0etE3_@ux}{m~9&7zU^9yFRH+ieF zdKK*`eHPUyTf}*-n%_lgtX6~2t;Z(}Hz8skM;9aVmsy{Zl^fPYl#G_L1Z zL0AtCOJ(FO>6GjwV#6UluW>M&QP(6Pge*@sZyyC(vqhfr;n6kj3WNUYsZqp{7L-mR z5gsb)BVF><24!JeMOi>tTawRFTQQe4HQA%K24nr#W2KJOocO7r_PB5pbq3npb(rI; zMh|R^d{KX6LAE~#)-^k^bAylFU7-?4-rmBY?WX?#?tpfUXK@ad4XEm8#fh~aq&4lz z7ErN@hZa)tipm4Q1DIGc@oX*kDS|vo+Pbifd{o>h#dzYlc`evkjae)=S*|5aPnv<6 zyS|Hca0p^24}eXk`VG>tTro{B+HhkF3T_|+drbV0H-nOmP>wSa*hTKA1n~tIQ+3U< zlA3C1H68`QYvB{4v>IGyq!4`2m)5586ROj$%B^Ua$=a{1fa3={p;L=;O{Y?gH<;qo zTZiJe1+;v%klm*qNzWQhN@d1l2ykB3xu`h?VOVJ~tQdHGjFl9`_^ELu{hoTI`yoIY z?xK(N6(;27bxir98ek|cghd*X1>WJGMCXDC;3YDk5ZZ(4sl}B#rQ2PZ!-+*oA>AOa zX`@Hvh4)W`mc>)(tyP6sPeQio&sMFi8keLkj@h3rMeOwY!{=x#XGoz_<^(I~v|sYQ zdrb1n7@H?x@_etk^D-X3QZXT^(x^Ksgm~w1j#Gv3vJQ1kstiEPY zYj|qXm{_p_eKkX} zQ<}|K6*V?O1+5{OPd?#6tbb$xje-5vI<7BwHyPAgN1R<)>yGUgQ*px7Vti~|eLmJkpH4ZNkD`o9IaGmVjZNlqfi}SpQgmJtN1$IwTvv^p8i`qG6uG+0U z+|_EVK6@BMw)Te+0{ub_BBdz%fo%TJf%vH}^{sdR01;mG$MQlqwn#deRrH$g zW0+^Nro%83T+rrmjFu-k#nBTy6jG^i_qeBagt|u)C>lld`Y&ar{{UM*!r5&)zbpR$ z%G=Ouf(CIRZ-DtAu#5Fr_$D>&oLn(v5uYts1N%y!b-(3o@4ZfbX(%=ZAz$0m%_){m2b{{Sk=>JEQ*{HZ2X zn zWUqTn^^ms%x;PcLqmlU*WxjvqY}Ne=-*1?OXgwUZntdg0(WU0q?g!;7Vx?w&W$ga| zXg~7>y`$CgTUro5E0*4mU7uBYk7rP}bcP=_V?7GmYnI(MpCx)x(Qm!0XGk7lY`&TE zTa(dUt{zFPj4-2D;To|!dELw*N89^HQ>WCer_`y?KvkiX+UT^II)IeXlNh^0O|Ex1 z*Ak#-Hd0(lAaE-S%X&C0O`=KsB?r=~=E#^T0meF@YEawf7fpMbTYY+8^FM*JR_~r7 zy`z9zFKOsjTvpw7l0Ft~AEF|ThU{N{p^u^j)28A-6f0Avt=S*`HU9u0{#BI``4_)q zdQ%GeeLy@crnO4dKQfwh$Q~}0wA19FxV+X)D+_Rh-6Kn^Anx zVW#Vcyuei&{VTN6S@1N5iSzqC7w1|;4}livsA_XuU}0He>Q#c|r?ipE7Ha3wP7~&V zX>J}X0|0xx5oQr#CN5XCr=;8PwTc->OY(<)h+%Q(1$ITPA%GuMPO+p3aGMns8Bw2= zKzl;AvuQvu+mgFltk43&On8jY+I>jMN+7%fGeOOQ-Vmo(KP^S2VRR5gTu3T=I*k5P zt>{$K(!Z{m{>n{SPIn!vD0OxS^FR6Ewq2w+_%Q<7EXhM6EJMAO}<3{^Mst1%bI-A$4ocGK38bk&iNg1rHp(00Tx>ougaq# zO-6QSsC1))3y%OyAj+^E!~<`&fF!A{{VD~AbJ23>QGcONLKl&G#I7(lW1A*^}lWJkF^J#z{+_=)Zz2& z*sVEU`Bad0Pgn5{w@a%=uP{TIp^Tkw{HaJ46cm})^Ll5|%V}FP;O$iKzvAReb_Y#_ z8>{$0tx5h+vr)}=oE%E?=RCu>E5h!k4&{`O7461Wk#e6O8VHYkZ{gMqgri*V)WnCk zCf@&K;NSWOo~x&CR(J(vLbvVd-C4l%8SqgpOob-TSZ&93IB z6olSO_89;{N%C5iJp13OeEr9*q&)V7Vh;A7WWEAe^h>Q)j8cBikI%i2EzfnLbeO&M zYReJlr)<0a4WBWoaU)7-HQU&ztR+Olw9?Zk^GoT~azZ*CN{iL0zKk95`t-05Q>(z? zIGK2t~9OeBj!zJYrN*YI~|a#)QFdAi@jbh?e? zewm%K2YiVZ0CE!;f;vEneW0`AdPw=?R9JbqP<;{0BJW;_aIoQlamO58`0aPY=V zTt{&k&K;tv!q|3FUDl?ci;2m)Rh!+0x(QLLPP9^Bl)^)T4&L8UxuAe?nwGiGANKR^ zIfSRZ23x39rptBUUP5(7Fkz%PPCmx@<=4l4F<+f0bN_1i7O~d-6&iv5>7x%+l*fpk z#PnvUsL?VpvZtaCF0)@-eWd@6B3(FlXjl@QhIg0#orILn%kt|T`o=wfg)5R`Z0rQ> zrP|cthIdVFKQaFbcY~*eW_{aFiGjw2GDZYO)o>-&PUzV~L zxNBUmKou{sQ%G3v{LJ_}dObdX)7*orS<9QIW4yuM&G&~JEh!J0yh@|DbvbQAQgcb| z8eEcTf}At|_Mk4;f^2gelsCSqauw5_$`#TL^o+|K0x1N;`~=1!oNL||^}%l{Uj4Op z1G}_fxb4j+-SO6K$^U3K9O+Lzluk`hcyAY^I2sES?mcJO0-^?XU8DY9eDPBGglAV#ZK-0tb9#K0hN(-S~y7oC}0)>Y`BZy@cAMuXuW*O)`- zro$&erzj78x32ASC|q*-P2j>I+$vt#a|-KX8gH3bO0`pT3~N6 zR<4AL-d_IGUG`bz3?j&E+2}yf%}0u#0rl%{R{OMt*s(Bi@eeM5vuLkin%j{f9|$95 z<1bXr2eK3@FF9%}M8bY~geA6Di>YmO*n4~k$!BgjPMPuimtt0vK^)61c+eT$_M3`p z@uP8B-}05^@s~tTUQ}nxJ^Wececeh&!n#bN(?9Bq02d2~CIYV9Div~Tzd`rsV8TqN z%~&1r*&%9)j}3p7>Tg5`a!p9X$@!Fs#X>0ohExWuM3Ahl=7O@9Li?eYGn{ zE0iT5EKa#Gnm)!V(TSQW=chL$a*dg>Pe^7u{J2`R(45IKYCZ#N(@f+vh)-0X6=tCl z`Dpcn%j5mF9lxRN}VY0tXe?9wBaveuu5GvJ=mP<;t z2MEj=BJPrCD1h(vq-1B_PTX6wcE@5mOp z7rYMSE$4IUh5Ze$qg&&A1$uPXxfXm?)K49+!BD^=1{nIG|+PVr0e-_ zMY-375hhnvi?%Y`0kgMC`g6&6g=fj-i)GVHq|E+{$2typ?g!Bt?X;V}@9tPq)Mmbt z*PN{6c$-Pn2{D)pBQTx)l=5>$^wItUO8Fjdc2l2~YDCldI_FOpvPf1-j}g!tp@RI` zV&iq{(McZDWf~PylD|)tUpxqA6t4KNOPjAwDB4u&{xNGd@`Cc^?tE5(xfk2ZHq*St z;>JH6Y>Zzu`RQz=o;W@YD_z9gbc+%my9y&cpQ4|$7=deax6H{BFfBmskZpJSJC*8P zdmf+VzT*7N#W#)?DVN4omQs9u_4ui*ZS>UNDHgd^)1w`G7O7703qVbbDaN)re0?k5 z$T`dIl#%lY`rs>X<*A%@~NplukQy^VMlXNN#j%1$VY za5oL51x9?SEh#n(BA zAx%x)rt{@TO4$vWvzFTVOIPW+n=JXgj!kgDHb($<^(TiS8Mb+S;oAB7OCgp-RUawm zE=~HSK$((TVxNC5siH&TT>dK$y-P~!|^>Z?zWnH=B?ckrGw6!bS*b)hR6Jo?jk@36D zQtD~0Y{3)IirL<-ZLz%5F)8Cu#D$)zhs$^F_EdXSwBv+V{~U<4`tjR%r!zCjI7z-8 zm_(5~eWoEr1v#U7zT~eCG=h|h7T~S6#n5=RF)cm6FyZ`Y?U!B0SA{7id{G|%SAhKA z>PYDJQxh)PmH-~>Ck^8V)X3RSU|j|i#B7nqN7KQRok3ZnLv3`5W+O`REA`OOAdX43 zdS~HLq;zY6`lmQSX-a+j84vNI5N%wUDw;(r8ds$*V#*L+`hN?uAnhc#iFMg!_I&b4 z_csp{S;_eQSn*GOP%$~6+EqUPO-O8HKAs7J^>Z5W&vwT|ye_KH{FiAnjqi$7bWwN0 zx?~md#_97ond=%Sp1kSd`Sa-y+=Y*CV7)iIg{QJv_s|aqo#8-Npt&U)v}b&BRpdZ) zt;6V2D7i^!mCH?KcFox}=;pjQJB_f={zs3fm0Sb_vs4joxr6JL->IAc{-ziKkyYj1 zzA}#Pxi(kLSR)edP$}r=`jUdLfMC#1L_5b`z5!Bcmylq|VyVZC&hp3$h)E=7AUOK$ zPJ-I;0DOBN-E?=bJ2q!wzcOKmC|)APYPY#sGzW{?RoePH_E_X5y~VNHTd28vFC5A~ z;rMJ=D|Tt~dm=wdhQ{;j;=2u3FOv7DVN z{PnY|wCg%Vl+{m&=FRGLnpU^>R6F+%JeFBN*fx=;LqKFOjsR|kS827e#JZ31uxSOb zUhNAloE7l!_DB9UQJ_$|^1Vuxq<|SA>^lfe#zX*dt2&>jCd^b{6X(gVJLO0Y zKPn9OgZ&hVfH{Lag$K)H3=De+>-@h4x=TT?O1Iv=`^z&;8jxkagb=4j_M+4(4L*yD zi3;mv9ttB#XcbpOvnawJOIKf0fi4Bjfli$WIVlVnO6JK>+tOM-VJucOoKUFj0Jc}} zM)Xw)-MPdNzbngcc--klgtoTr@>H&D+OUewZ=ud80-X#eMnJG7BcW_tUM3xf=Rpsv zH^y^oI1!O!3?+PO-JJ=aHVf0eGPwf|5w6nxAa}q;|M?qd2JyJ>tFMx+wymMMWp4?D zZUAJjL4myQPri;4w5j#n$YqVUfet(UiVrGWIqGg5GSoD{mk{CI?=im5PJBzLNpL(ot~xtJS@h zfOKOZFXBms@iQItffxa;4SmzT+-MYR^yq39)O6DW3=Q<5*{d|Tq4Mt@U6|vma!ao( z0LCR7s;1%;rA=m=pzm}mS)PPpUgb9*9`D4#ztvDe*ih%ScW-ML=Bjo2{|~sjZI$ zQaFZQ*YJ=PyMSK-;!kjcEK~(H{pu9w00EjR+PC+lHfXf_kP*|q2B?|r*PM~}DESoh>ep|t6#-Fn9__Nb96VXj-A2Ngj}(X9Z$?VzjriR+^dpbC+ceU+h+v!#wfiydy3iWxx#-*f($=4WQZ0K zo%9TC3W=T45(PG}LX0vHFXBTqA_6%a4-haKz{=JR!AKtT1h;F3XxFE6yVM)*P>rhk zh2L6E7MOkuK*Y9xSPKV+0wSwoxK%rFSyUq>>K+K`H=;<@GgoT zDI7zpG8I6hfBwf%6wZm;wGZ&dUV{3qpqSVHy5Vv_qdE2YNe zrP}Y%sNm$vHkWTQ0@Ppg$^L(yu2L@eiv#6Ef#Hh(%e_wHNk)So@P&U4;}Nj-kKy9 zTL%A!)iMmYE(eJo!90WN-pVUFk-<_3`8w3!ZH5>>BII1~q@Rd#F|r=rI56<2qyE-S z@)*0`BYv7{oxYiG3cZQ7UlNuxE~_1?Zw+~S-L6v}&XojIg$*jx-CE2Fx09YT+YBuA z7XXe!dW@29q%>uxc=;I>L+Sfz8fT%zt}PU}{_V2g0G=#}v=k>dP|jbzoGrrcu7=O| zLffbDxocjO^+}M_?Hi|`XJAHnlozYXwrmty;*KOcDXj|4C#ys!fGsna*`o`@rR>ZN zSBA!V$^5qoqs;~z1Dyn8#|Di^t7FNZ)0(lqT;moX9+dJ!pSo$~_{Lx`xLJKb=`k_{FzL^gRBa8*h$bxGML8cVACVKd7TzUl!_ysFY3L z4PlV!33IJ4VvE+z16qlx7w;JR5T7ax&W8}b9j&zxI&IPGN1^QH2^ialX!nKp1e&qI6oR3l z1^ScJ8}n@P46HQ7h0PR#<&U<>%x#3IvmD#1KF&R%CG@RCVtI(HJrm$s&>z^&r->}>fEF1~v^ z!6*e1z!c&WL>n2_F{Q_8R9PrDlK=M6rQ%RzyxC$N`~EZ*pCC<@e5G!-%c!F>C_(XB zdT7$U=5&<$+E8yhK&z+xc^7aLR(+Y0{YiH6S;8T zMpgvfH;HmHFHdZ}eAC-1iK?Uvx*!ezXXsZ;(a{?SL6stg^jV7m$m^77cXw_C;E>s? zGXoVFPfVWlZ@Em(O*u)<{KD`Tr+qn9<;@59dk&QX9gbx^Y8NNR%_)bdhdh8^asz5h z`0$b&9R{4Q<eg`NE{`*&-j1C%5Lpi$B+V-e!22T8>b$2>UWEJCNIc zH2I|SRM7CgRzIHRCU843Ia2H}U5XCzoIQ{0nq|-}5S7V5T|waI zvz}ybw3yap?sWLPJE~Jye(f?tgWVc!r7@x7g|t%`PKxplNZ6*&@~0e29$JRo`^-9% zPF51%rNz4H=K&)$RDF3Wp4HgrBZZc7b-wfzG>&a}*;>zGXv4Fee z2LgIs;iO~xN3pnJBKP^EcUE;-ivbyETKp6j_00M!S`|^d#xm5!v&0bgF*U_@f0l6` zUMHuMBoC5IhQso6+%kVZ&k)G5QuVT=%gwn_twiCcKKdL-z>QnXU8)3*i+io$3&QP; zeGZuNd=mn3MVdq%#NKrojxJoCfX=FBPaAGbOuo%+t`3*W@9UkUUNl?Gig)h$sT=AI zhzmIw-tu?7WqQ%8=l@%@n1S3YVh(BZtd!BqUZ-|^mCWV>pY>Q$<(kN~C14r_xQcWR zKs{y_^nJ0%ICDr`O<=&Db3d3l zME;AlM=CpSPUitG+1~S(aupo{s2AzWVnj@0Stx~j}o6ZXwFH={0 zawGne&SH-Cf#PSCT}<$fxEfoO$EJyMuk_!18n=57r{`08n7obJ;%Njyj}G$zVhvxj z{_+5}lB3+SZ1(%(I3=#F3^(Nw6;ot)t^d+T?-=4P4m?Vl?L)wvC3t9LBaMwFM=2^6 z&EXg&0G_wc``7wP){Kud4^@>5dMAO=No}uV<>_%-sGZ%W?P0abJW`f0GORT0v_d>J z&}}M+s%8Ep(T!Rb_6K=p-ji~Y+7!WR<4sz_-238pww@ID`;z6!1S%bx)OJ(MX6+W) z$)`AG9GS-FXQ9NyOXy{-oE+knG_)$`z4NJnIi#6I^7ATNjFc!=H?#C&{>HLYNFEQX zf)$^Kx$?K+Sh6jG_QkxYGYGLXHN7ML7Wzrl<&0a2F5)N(AWm?C$KH3xx(uoYeJEesL$zd3g#px`1ktQIr;$T=A34Y|>y*ii}k4^+?Su_W0JbB-UGv?FQgQEXkg zrCrmM$9KiBD!SYLO?2yH?|$!EdM@&nniD>3@Z?@d%jGv8%O#tVfBgRzNx)r724aUk z8&u+A%`Y-iSskCYg?&S+3TU`9pPOGj`H9Nk+a$?iaFXH5B*Pojn!Az>{8NHUr>p{! zea$I^pW%9#zc`#+b|9#{&|J91RKM372>C3H+C$WhKswE0PW;_gqMe<+l#zatyhp42IBhs?P=beg@8TFqdN<8 z@+AoW3k_li#lv#rR9uWCAhAP}(Z#0`27Z!dyam&TBgbgt=T%3^g}u~{;Nbp{kWtUC zN1~+PxHTGn_tiPfyrev)QL8Y+ITLAfyW%`;R;gIAkv1&cOHvbWh%*RFKF$cMP3Se-rV%j85!t^K^`Kwm{v&a#^;Wid1q=qL~H*d*DUd(->gTXcIoon1c0GQ_XpG?s&}R5uA1qZSr$1 z7SAnGwV`GGBp(>d2{u2veer-n_s?@YH-DGOWNc2Qf zBQbBqadD2DI`g67KMi~O(bPF4j5+@#!dK2AZ)?8~=uiaiB(q~3^w@DF!{rg4n7AzB zr%Ya15M8yJuQLYuA)y|_qd-@%bPqkn@F2KG$Va2x>?=cg_Vev};9;Uv_c`ZT@NZ&x zfTz=dWWkK$-#QQ0YngM@>j9I(5D}j(FrJ&??#Q)?^5m$&eh#m@BOZd;C@|I%tKjpt zmOJq$=z)Y-otc&a34$f#hRh!9$>Uqzwi2q*`cbbYbkx5zcSlK!*@&1uZl~c}hi&P* zUAXn|Vl>a2e@5c#i&Q^x<`kn<;9b>ly=;Svx1an!%KA<&&wo%r3$1^H&v6~GO!a#< zYVnksPL2fE;{N)VZ5gcyM9o0QoUQZJ%KhAFJbWyp>a#}BsXw^SvHFQZzHpN@w1}6g zpG3+5#F&PC3hbxV1CBSO)k#eSB=aeMu+bGMIn5lM)A~P)nom4yLDw20 zVO;Z=z2TP%2n*vXO6I0V;GuO^w({BhqrykMTia`aA!fh4EN2QF&!REnjr|EDw7(fm zzN4gYuJp+Q^?q<422A>;>})-fThdw&w5uD^-Re%r#gF1B)yCdSBkC-VDIZgWJr06) z0Rb@Rv9G^W7#k3D^Ea*t$7v3Oqkqb;iw%K!j9BvOP#slH$$u~Jd1Jvf;w>L>7Kd_- zeF)i=<_nBcKmOoTP9?RCu{uO5D&&Ymo)>E}rnlY(*1bw0->|n>2B@ZvUCs=It%G-w zJ+c*bz;975To$cW~ zwq4ZM^UsqSpZ^P?UuH^H=!0vhQPbs6jlxb`0N-9RXI&*nuWnIp>VcmK9nnqj(YRD0 zxvT2?`bZplbk-Xv?!Hhbeh#rODQfCN3d(v-4%IV8HQEBEIzxHON%+gT5hl!)OQ9&O zRkiSP?Sg~Ht0!j!236mdPmc|)FMvQGw=B4}9GvOW;e`EHM4{Z}soVz0oqjtkE#T!w zL|BT&H{Po6j-XTgT!_)nmu0IV!OtOdN}+>pU4ZCcp{v|BBs1(8%v0*{sd>s_i&@LW zzOmIqQI_g9#TCbgo8TnJ1p%9R9kbxxYcard*uXkq-7R7Jb&6-E`^1=P)a3UIP{y9n zamOIONJZN&k#I4*8Sav?EN1l4gOAm$+%lBv+ODoz-(LO|rD1jSdzSyOo=FJ&LK~FO zMZ1GN=?ko)_hA?s)8F{ZBDlNm)CTm?-FBkB%G+%Lh z7h-1EUug-Czti{P3parX)ppGMBH;>*RX4VMzK4yFJ;Vnijl*Ea&WwpJnfc<=je%3fv5J0y_6615!rDi)XUtm|5$wS%bvsC1;f7pC(E1kXi9 zSJ9y{z!5@SPWFs04))uS-v%;DBelpUqn8w(Q8(68MlKIDY0%u7L^b`}l9l`9Flcso zratZiZjA7D#V+DjlO9{Rzw9{XUUV1n;b@hA?;v|988YsvJR1~}VpotQ!MG>ta4BO>Nfn=CbNo)Z ztWD)DUyt<58>pUxyx*-|0k}O__(cr;f|7a%c7aZ&qS+i4iNR-dZzkNxvli?Yc7O`I zA)&Vo5XSUw)y^92kc%}nIcz0z9CegXz`TvFJQj!;iqc#iiQMfDCVE)@RHe`P$3C%o z_1-s(O1t-Ml}I#`tI;GjP#-d{Su~aLg~pHY>ctL%#KG6{Hq5hwF4Sz-OV6(x5bWb1 zyezxHzf)ccf~RVGkbunE(CATW@@W;WKE2G#X!G>QIoqe3)F*V81*cNs-uRMVjf z*Pr#oUDhGrgE^J950ZJdf5?0p?W|k*M^TH`nc}#BxtOa`^(RIohxAcJ@znUZ{H()E zV(WGNx+q_+KRj%7L5vT-a=MG7u@7~u#C1d3dHK$W&@uCjG~5^?pZlUf=jPb}ws<`y z@`iOsr7-@+L45{4H~yJ}r>;>9a&j#>T1uv-v5QO$$_&b*S7^j7Ic_u zkX%IjaNS2Uy48`8+q^-k;lN2OOY>NpM50K=^SyHnwXf7KW^hCPAU#K(OwD4gT1(nX zYJ1b=!XQt`3<2Y`{N8SNXo8sQ2BDWoN0dc~3u|w-eV@XzXMlDPPqyZ(I+QT+E$2p+ z1^`kO0YPW_apN35M+<;|m;|@0m#byY5khkIbNOJyicQkyV{JzEt6?*r^$xAl+ZROqy z);NciaZeUI_)k56JBgzWF_CL^C45fQL=vcmE>FX3UrC z$a|i%ImKuE>52@;R@Ke53+yoB>B7HE+ONXpq;jfWtA2Zk{Dno{@dNOv*(YF|@d;&_ z=8dsesTn(@Uf=}2mb`Zw1ISkl6r==g^eRR!eB!w5vjcCi$~S?4VaiW#nvs(YVo7`H zhWTH_HUwWiYI;9L7nqgmyUSu;b`v5;+tpV5o^ySOJ;uW$on_!#BlbdrB!k7SKJ@Yp zEX@DX^-ur9RYY6CAA@f=!p^GqHC-Wn{_!9cDTf(O+k1>#dGxFgi353R?%R*q)7YLx z?(>jbw0EVfXIRlesU~vQvKH&i9g4SDV@|i4K6UhVzUn?UQ>oEqP%ca`Tv@otpm{gV z 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

T(g5HD2S*-@c;=~+<-g64*beT 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�^HwXD*p+jaf-~j$ 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%0DN*cA=O%pvO%wEDu6r7&Uu?cJUW~e4s@T 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�Qem{_LnqtqM_t01Np5Oj5hw4p^u4hzuh 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

emT+uym~W4?hkmnppWln;=Izke$5*R(m@C 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 WJAe51w*LUGF@NYHiYg>r5C7TZl7U(P literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg b/playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00456f6108aa37b092c42a07baf43d240a721982 GIT binary patch literal 42533 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 0203391c..9854c5c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "swarms" -version = "2.4.3" +version = "2.4.5" description = "Swarms - Pytorch" license = "MIT" authors = ["Kye Gomez "] diff --git a/swarms/models/base_multimodal_model.py b/swarms/models/base_multimodal_model.py index e5671917..73ec66ff 100644 --- a/swarms/models/base_multimodal_model.py +++ b/swarms/models/base_multimodal_model.py @@ -13,6 +13,49 @@ from termcolor import colored class BaseMultiModalModel: + """ + Base class for multimodal models + + + Args: + model_name (Optional[str], optional): Model name. Defaults to None. + temperature (Optional[int], optional): Temperature. Defaults to 0.5. + max_tokens (Optional[int], optional): Max tokens. Defaults to 500. + max_workers (Optional[int], optional): Max workers. Defaults to 10. + top_p (Optional[int], optional): Top p. Defaults to 1. + top_k (Optional[int], optional): Top k. Defaults to 50. + beautify (Optional[bool], optional): Beautify. Defaults to False. + device (Optional[str], optional): Device. Defaults to "cuda". + max_new_tokens (Optional[int], optional): Max new tokens. Defaults to 500. + retries (Optional[int], optional): Retries. Defaults to 3. + + Examples: + >>> from swarms.models.base_multimodal_model import BaseMultiModalModel + >>> model = BaseMultiModalModel() + >>> model.run("Generate a summary of this text") + >>> model.run("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png") + >>> model.run_batch(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.run_batch_async(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch_async([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.run_batch_async_with_retries(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch_async_with_retries([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.generate_summary("Generate a summary of this text") + >>> model.set_temperature(0.5) + >>> model.set_max_tokens(500) + >>> model.get_generation_time() + >>> model.get_chat_history() + >>> model.get_unique_chat_history() + >>> model.get_chat_history_length() + >>> model.get_unique_chat_history_length() + >>> model.get_chat_history_tokens() + >>> model.print_beautiful("Print this beautifully") + >>> model.stream("Stream this") + >>> model.unique_chat_history() + >>> model.clear_chat_history() + >>> model.get_img_from_web("https://www.google.com/images/branding/googlelogo/") + + """ def __init__( self, model_name: Optional[str], diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 869cde1a..6441140e 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -1,18 +1,16 @@ -import logging import asyncio import base64 -from typing import Optional import concurrent.futures -from termcolor import colored import json +import logging import os from concurrent.futures import ThreadPoolExecutor -from typing import List, Tuple +from typing import List, Optional, Tuple import aiohttp import requests from dotenv import load_dotenv - +from termcolor import colored try: import cv2 @@ -94,9 +92,10 @@ class GPT4VisionAPI: def download_img_then_encode(self, img: str): """Download image from URL then encode image to base64 using requests""" + pass # Function to handle vision tasks - def run(self, task: str, img: str): + def run(self, task: Optional[str] = None, img: Optional[str] = None, *args, **kwargs): """Run the model.""" try: base64_image = self.encode_image(img) @@ -131,6 +130,7 @@ class GPT4VisionAPI: ) out = response.json() + content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: @@ -263,6 +263,7 @@ class GPT4VisionAPI: ) out = response.json() + content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: @@ -287,6 +288,14 @@ class GPT4VisionAPI: ): """ Run the model on multiple tasks and images all at once using concurrent + + Args: + tasks (List[str]): List of tasks + imgs (List[str]): List of image paths + + Returns: + List[str]: List of responses + """ # Instantiate the thread pool executor @@ -301,8 +310,8 @@ class GPT4VisionAPI: async def arun( self, - task: str, - img: str, + task: Optional[str] = None, + img: Optional[str] = None, ): """ Asynchronously run the model diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index e0079199..5084c82e 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -9,9 +9,12 @@ from typing import Any, Callable, Dict, List, Optional, Tuple from termcolor import colored +from swarms.tools.tool import BaseTool from swarms.utils.code_interpreter import SubprocessCodeInterpreter from swarms.utils.parse_code import extract_code_in_backticks_in_string -from swarms.tools.tool import BaseTool +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) # System prompt FLOW_SYSTEM_PROMPT = f""" @@ -154,7 +157,7 @@ class Flow: retry_interval (int): The interval between retry attempts interactive (bool): Whether or not to run in interactive mode dashboard (bool): Whether or not to print the dashboard - dynamic_temperature(bool): Dynamical temperature handling + dynamic_temperature_enabled(bool): Dynamical temperature handling **kwargs (Any): Any additional keyword arguments Methods: @@ -182,7 +185,6 @@ class Flow: add_message_to_memory_and_truncate: Add the message to the memory and truncate print_dashboard: Print dashboard activate_autonomous_agent: Print the autonomous agent activation message - dynamic_temperature: Dynamically change the temperature _check_stopping_condition: Check if the stopping condition is met format_prompt: Format the prompt get_llm_init_params: Get the llm init params @@ -236,18 +238,20 @@ class Flow: dynamic_loops: Optional[bool] = False, interactive: bool = False, dashboard: bool = False, - agent_name: str = " Autonomous Agent XYZ1B", + agent_name: str = "Autonomous Agent XYZ1B", agent_description: str = None, system_prompt: str = FLOW_SYSTEM_PROMPT, tools: List[BaseTool] = None, - dynamic_temperature: bool = False, - sop: str = None, + dynamic_temperature_enabled: Optional[bool] = False, + sop: Optional[str] = None, + sop_list: Optional[List[str]] = None, saved_state_path: Optional[str] = "flow_state.json", - autosave: bool = False, - context_length: int = 8192, + autosave: Optional[bool] = False, + context_length: Optional[int] = 8192, user_name: str = "Human:", - self_healing: bool = False, + self_healing_enabled: bool = False, code_interpreter: bool = False, + multi_modal: Optional[bool] = None, **kwargs: Any, ): self.llm = llm @@ -257,22 +261,17 @@ class Flow: self.loop_interval = loop_interval self.retry_attempts = retry_attempts self.retry_interval = retry_interval - self.feedback = [] - self.memory = [] self.task = None self.stopping_token = stopping_token # or "" self.interactive = interactive self.dashboard = dashboard self.return_history = return_history - self.dynamic_temperature = dynamic_temperature + self.dynamic_temperature_enabled = dynamic_temperature_enabled self.dynamic_loops = dynamic_loops self.user_name = user_name self.context_length = context_length - # SOPS to inject into the system prompt self.sop = sop - # The max_loops will be set dynamically if the dynamic_loop - if self.dynamic_loops: - self.max_loops = "auto" + self.sop_list = sop_list self.tools = tools or [] self.system_prompt = system_prompt self.agent_name = agent_name @@ -280,8 +279,27 @@ class Flow: self.saved_state_path = saved_state_path self.autosave = autosave self.response_filters = [] - self.self_healing = self_healing + self.self_healing_enabled = self_healing_enabled self.code_interpreter = code_interpreter + self.multi_modal = multi_modal + + # The max_loops will be set dynamically if the dynamic_loop + if self.dynamic_loops: + self.max_loops = "auto" + + # If multimodal = yes then set the sop to the multimodal sop + if self.multi_modal: + self.sop = MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + + # If the user inputs a list of strings for the sop then join them and set the sop + if self.sop_list: + self.sop = "\n".join(self.sop_list) + + # Memory + self.feedback = [] + self.memory = [] + + # Initialize the code executor self.code_executor = SubprocessCodeInterpreter() def provide_feedback(self, feedback: str) -> None: @@ -461,7 +479,7 @@ class Flow: Retry Interval: {self.retry_interval} Interactive: {self.interactive} Dashboard: {self.dashboard} - Dynamic Temperature: {self.dynamic_temperature} + Dynamic Temperature: {self.dynamic_temperature_enabled} Autosave: {self.autosave} Saved State: {self.saved_state_path} Model Configuration: {model_config} @@ -528,10 +546,9 @@ class Flow: self.print_dashboard(task) loop_count = 0 - + # While the max_loops is auto or the loop count is less than the max_loops while self.max_loops == "auto" or loop_count < self.max_loops: - # Loop count loop_count += 1 print( @@ -547,7 +564,7 @@ class Flow: break # Adjust temperature, comment if no work - if self.dynamic_temperature: + if self.dynamic_temperature_enabled: self.dynamic_temperature() # Preparing the prompt @@ -653,7 +670,7 @@ class Flow: break # Adjust temperature, comment if no work - if self.dynamic_temperature: + if self.dynamic_temperature_enabled: self.dynamic_temperature() # Preparing the prompt @@ -998,7 +1015,7 @@ class Flow: "retry_interval": self.retry_interval, "interactive": self.interactive, "dashboard": self.dashboard, - "dynamic_temperature": self.dynamic_temperature, + "dynamic_temperature": self.dynamic_temperature_enabled, } with open(file_path, "w") as f: diff --git a/swarms/structs/sequential_workflow.py b/swarms/structs/sequential_workflow.py index 753ada15..0f99a247 100644 --- a/swarms/structs/sequential_workflow.py +++ b/swarms/structs/sequential_workflow.py @@ -29,6 +29,18 @@ class Task: Task class for running a task in a sequential workflow. + Args: + description (str): The description of the task. + flow (Union[Callable, Flow]): The model or flow to execute the task. + args (List[Any]): Additional arguments to pass to the task execution. + kwargs (Dict[str, Any]): Additional keyword arguments to pass to the task execution. + result (Any): The result of the task execution. + history (List[Any]): The history of the task execution. + + Methods: + execute: Execute the task. + + Examples: >>> from swarms.structs import Task, Flow >>> from swarms.models import OpenAIChat @@ -37,8 +49,6 @@ class Task: >>> task.execute() >>> task.result - - """ description: str @@ -54,9 +64,6 @@ class Task: Raises: ValueError: If a Flow instance is used as a task and the 'task' argument is not provided. - - - """ if isinstance(self.flow, Flow): # Add a prompt to notify the Flow of the sequential workflow @@ -114,14 +121,20 @@ class SequentialWorkflow: dashboard: bool = False def add( - self, task: str, flow: Union[Callable, Flow], *args, **kwargs + self, + flow: Union[Callable, Flow], + task: Optional[str] = None, + img: Optional[str] = None, + *args, + **kwargs, ) -> None: """ Add a task to the workflow. Args: - task (str): The task description or the initial input for the Flow. flow (Union[Callable, Flow]): The model or flow to execute the task. + task (str): The task description or the initial input for the Flow. + img (str): The image to understand for the task. *args: Additional arguments to pass to the task execution. **kwargs: Additional keyword arguments to pass to the task execution. """ @@ -130,9 +143,22 @@ class SequentialWorkflow: kwargs["task"] = task # Set the task as a keyword argument for Flow # Append the task to the tasks list - self.tasks.append( - Task(description=task, flow=flow, args=list(args), kwargs=kwargs) - ) + if self.img: + self.tasks.append( + Task( + description=task, + flow=flow, + args=list(args), + kwargs=kwargs, + img=img, + ) + ) + else: + self.tasks.append( + Task( + description=task, flow=flow, args=list(args), kwargs=kwargs + ) + ) def reset_workflow(self) -> None: """Resets the workflow by clearing the results of each task.""" @@ -148,18 +174,16 @@ class SequentialWorkflow: """ return {task.description: task.result for task in self.tasks} - def remove_task(self, task_description: str) -> None: + def remove_task(self, task: str) -> None: """Remove tasks from sequential workflow""" - self.tasks = [ - task for task in self.tasks if task.description != task_description - ] + self.tasks = [task for task in self.tasks if task.description != task] - def update_task(self, task_description: str, **updates) -> None: + def update_task(self, task: str, **updates) -> None: """ Updates the arguments of a task in the workflow. Args: - task_description (str): The description of the task to update. + task (str): The description of the task to update. **updates: The updates to apply to the task. Raises: @@ -178,11 +202,11 @@ class SequentialWorkflow: """ for task in self.tasks: - if task.description == task_description: + if task.description == task: task.kwargs.update(updates) break else: - raise ValueError(f"Task {task_description} not found in workflow.") + raise ValueError(f"Task {task} not found in workflow.") def save_workflow_state( self, @@ -272,6 +296,7 @@ class SequentialWorkflow: ) def workflow_shutdown(self, **kwargs) -> None: + """Shuts down the workflow.""" print( colored( """ @@ -282,6 +307,7 @@ class SequentialWorkflow: ) def add_objective_to_workflow(self, task: str, **kwargs) -> None: + """Adds an objective to the workflow.""" print( colored( """ From 76b1fa539bc121843df2a68bbf914b5c86883719 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 20:43:13 -0800 Subject: [PATCH 34/47] swarms of multi modal autonomous agents --- .../swarm_of_mma_manufacturing/flow_iter.py | 129 ------------------ .../demos/swarm_of_mma_manufacturing/main.py | 60 ++++---- swarms/models/gpt4_vision_api.py | 2 - 3 files changed, 26 insertions(+), 165 deletions(-) delete mode 100644 playground/demos/swarm_of_mma_manufacturing/flow_iter.py diff --git a/playground/demos/swarm_of_mma_manufacturing/flow_iter.py b/playground/demos/swarm_of_mma_manufacturing/flow_iter.py deleted file mode 100644 index 57a33535..00000000 --- a/playground/demos/swarm_of_mma_manufacturing/flow_iter.py +++ /dev/null @@ -1,129 +0,0 @@ -""" -Swarm of multi modal autonomous agents for manufacturing! ---------------------------------------------------------- -Health Security agent: Agent that monitors the health of working conditions: input image of factory output: health safety index 0.0 - 1.0 being the highest -Quality Control agent: Agent that monitors the quality of the product: input image of product output: quality index 0.0 - 1.0 being the highest -Productivity agent: Agent that monitors the productivity of the factory: input image of factory output: productivity index 0.0 - 1.0 being the highest -Safety agent: Agent that monitors the safety of the factory: input image of factory output: safety index 0.0 - 1.0 being the highest -Security agent: Agent that monitors the security of the factory: input image of factory output: security index 0.0 - 1.0 being the highest -Sustainability agent: Agent that monitors the sustainability of the factory: input image of factory output: sustainability index 0.0 - 1.0 being the highest -Efficiency agent: Agent that monitors the efficiency of the factory: input image of factory output: efficiency index 0.0 - 1.0 being the highest - - -Flow: -health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent -""" -from swarms.structs import Flow, SequentialWorkflow -import os -from dotenv import load_dotenv -from swarms.models import GPT4VisionAPI -from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( - MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, -) - -load_dotenv() -api_key = os.getenv("OPENAI_API_KEY") - -llm = GPT4VisionAPI( - openai_api_key=api_key -) - -assembly_line = "playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg" -red_robots = "playground/demos/swarm_of_mma_manufacturing/red_robots.jpg" -robots = "playground/demos/swarm_of_mma_manufacturing/robots.jpg" -tesla_assembly_line = "playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg" - - -# Define detailed prompts for each agent -tasks = { - "health_safety": ( - "Analyze the factory's working environment for health safety. Focus on" - " cleanliness, ventilation, spacing between workstations, and personal" - " protective equipment availability." - ), - "productivity": ( - "Review the factory's workflow efficiency, machine utilization, and" - " employee engagement. Identify operational delays or bottlenecks." - ), - "safety": ( - "Analyze the factory's safety measures, including fire exits, safety" - " signage, and emergency response equipment." - ), - "security": ( - "Evaluate the factory's security systems, entry/exit controls, and" - " potential vulnerabilities." - ), - "sustainability": ( - "Inspect the factory's sustainability practices, including waste" - " management, energy usage, and eco-friendly processes." - ), - "efficiency": ( - "Assess the manufacturing process's efficiency, considering the layout," - " logistics, and automation level." - ), -} - - -# Define prompts for each agent -health_safety_prompt = tasks["health_safety"] -productivity_prompt = tasks["productivity"] -safety_prompt = tasks["safety"] -security_prompt = tasks["security"] -sustainability_prompt = tasks["sustainability"] -efficiency_prompt = tasks["efficiency"] - - -# Health security agent -health_security_agent = Flow( - llm=llm, - sop_list=health_safety_prompt, - max_loops=2, - multi_modal=True -) - -# Quality control agent -productivity_check_agent = Flow( - llm=llm, - sop=productivity_prompt, - max_loops=2, - multi_modal=True -) - -# Security agent -security_check_agent = Flow( - llm=llm, - sop=security_prompt, - max_loops=2, - multi_modal=True -) - -# Efficiency agent -efficiency_check_agent = Flow( - llm=llm, - sop=efficiency_prompt, - max_loops=2, - multi_modal=True -) - - -# Add the first task to the health_security_agent -health_check = health_security_agent.run( - "Analyze the safety of this factory", - robots -) - -# Add the third task to the productivity_check_agent -productivity_check = productivity_check_agent.run( - health_check, assembly_line -) - -# Add the fourth task to the security_check_agent -security_check = security_check_agent.add( - productivity_check, red_robots -) - -# Add the fifth task to the efficiency_check_agent -efficiency_check = efficiency_check_agent.run( - security_check, tesla_assembly_line -) - diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py index 88b82c62..57a33535 100644 --- a/playground/demos/swarm_of_mma_manufacturing/main.py +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -14,18 +14,24 @@ Flow: health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent """ from swarms.structs import Flow, SequentialWorkflow +import os +from dotenv import load_dotenv from swarms.models import GPT4VisionAPI from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, ) +load_dotenv() +api_key = os.getenv("OPENAI_API_KEY") -llm = GPT4VisionAPI() +llm = GPT4VisionAPI( + openai_api_key=api_key +) -assembly_line = "assembly_line.jpg" -red_robots = "red_robots.jpg" -robots = "robots.jpg" -tesla_assembly_line = "tesla_assembly.jpg" +assembly_line = "playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg" +red_robots = "playground/demos/swarm_of_mma_manufacturing/red_robots.jpg" +robots = "playground/demos/swarm_of_mma_manufacturing/robots.jpg" +tesla_assembly_line = "playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg" # Define detailed prompts for each agent @@ -70,68 +76,54 @@ efficiency_prompt = tasks["efficiency"] # Health security agent health_security_agent = Flow( llm=llm, - sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + health_safety_prompt, - max_loops=2, -) - -# Quality control agent -quality_control_agent = Flow( - llm=llm, - sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, + sop_list=health_safety_prompt, max_loops=2, + multi_modal=True ) # Quality control agent productivity_check_agent = Flow( llm=llm, - sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + productivity_prompt, + sop=productivity_prompt, max_loops=2, + multi_modal=True ) # Security agent security_check_agent = Flow( llm=llm, - sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + security_prompt, + sop=security_prompt, max_loops=2, + multi_modal=True ) # Efficiency agent efficiency_check_agent = Flow( llm=llm, - sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + efficiency_prompt, + sop=efficiency_prompt, max_loops=2, + multi_modal=True ) -# Sequential workflow -workflow = SequentialWorkflow( - max_loops=4, - name="Swarm of multi modal autonomous agents for manufacturing!", - description="Swarm of multi modal autonomous agents for manufacturing!", -) - # Add the first task to the health_security_agent -health_check = workflow.add( - health_security_agent, +health_check = health_security_agent.run( "Analyze the safety of this factory", robots ) # Add the third task to the productivity_check_agent -productivity_check = workflow.add( - productivity_check_agent, health_check, assembly_line +productivity_check = productivity_check_agent.run( + health_check, assembly_line ) # Add the fourth task to the security_check_agent -security_check = workflow.add( - security_check_agent, productivity_check, red_robots +security_check = security_check_agent.add( + productivity_check, red_robots ) # Add the fifth task to the efficiency_check_agent -efficiency_check = workflow.add( - efficiency_check_agent, security_check, tesla_assembly_line +efficiency_check = efficiency_check_agent.run( + security_check, tesla_assembly_line ) - -# Run the workflow -workflow.run() diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 6441140e..0370b2c2 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -130,7 +130,6 @@ class GPT4VisionAPI: ) out = response.json() - content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: @@ -263,7 +262,6 @@ class GPT4VisionAPI: ) out = response.json() - content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: From e79e05e261de209300f44068b66b13747eab1587 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 20:44:00 -0800 Subject: [PATCH 35/47] clean up swarms of multi modal autonomous agents --- playground/demos/swarm_of_mma_manufacturing/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py index 57a33535..d8aab663 100644 --- a/playground/demos/swarm_of_mma_manufacturing/main.py +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -13,13 +13,11 @@ Efficiency agent: Agent that monitors the efficiency of the factory: input image Flow: health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent """ -from swarms.structs import Flow, SequentialWorkflow +from swarms.structs import Flow import os from dotenv import load_dotenv from swarms.models import GPT4VisionAPI -from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( - MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, -) + load_dotenv() api_key = os.getenv("OPENAI_API_KEY") From 5e4052947fa764d9825ade2a2b6962926232dbc6 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 21:15:25 -0800 Subject: [PATCH 36/47] clean up main.py --- playground/demos/swarm_of_mma_manufacturing/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py index d8aab663..d3705418 100644 --- a/playground/demos/swarm_of_mma_manufacturing/main.py +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -18,10 +18,10 @@ import os from dotenv import load_dotenv from swarms.models import GPT4VisionAPI - load_dotenv() api_key = os.getenv("OPENAI_API_KEY") + llm = GPT4VisionAPI( openai_api_key=api_key ) From d91250d51643932dbde18a66496de5dc54d88aef Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Sun, 26 Nov 2023 12:41:37 -0700 Subject: [PATCH 37/47] gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8f8a98a8..716dc148 100644 --- a/.gitignore +++ b/.gitignore @@ -186,4 +186,5 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ \ No newline at end of file +#.idea/ +.vscode/settings.json From 217cb27f0968bbabc7390906863729f22595a716 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Sun, 26 Nov 2023 18:45:24 -0800 Subject: [PATCH 38/47] Update .env.example --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index c6c3cade..6197a6d4 100644 --- a/.env.example +++ b/.env.example @@ -5,7 +5,7 @@ AI21_API_KEY="your_api_key_here" COHERE_API_KEY="your_api_key_here" ALEPHALPHA_API_KEY="your_api_key_here" HUGGINFACEHUB_API_KEY="your_api_key_here" - +STABILITY_API_KEY="your_api_key_here" WOLFRAM_ALPHA_APPID="your_wolfram_alpha_appid_here" ZAPIER_NLA_API_KEY="your_zapier_nla_api_key_here" @@ -41,4 +41,4 @@ REDIS_PORT= PINECONE_API_KEY="" BING_COOKIE="" -PSG_CONNECTION_STRING="" \ No newline at end of file +PSG_CONNECTION_STRING="" From fb32a182ffde88edc56499f1f6cfe30b1ba77ccb Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Sun, 26 Nov 2023 18:46:01 -0800 Subject: [PATCH 39/47] Create stable_diffusion.py --- playground/models/stable_diffusion.py | 58 +++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 playground/models/stable_diffusion.py diff --git a/playground/models/stable_diffusion.py b/playground/models/stable_diffusion.py new file mode 100644 index 00000000..3ca69931 --- /dev/null +++ b/playground/models/stable_diffusion.py @@ -0,0 +1,58 @@ +import os +import base64 +import requests +from dotenv import load_dotenv +from typing import List + +load_dotenv() + +class StableDiffusion: + def __init__(self, api_key: str, api_host: str = "https://api.stability.ai"): + self.api_key = api_key + self.api_host = api_host + self.engine_id = "stable-diffusion-v1-6" + self.headers = { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json", + "Accept": "application/json" + } + self.output_dir = "images" + os.makedirs(self.output_dir, exist_ok=True) + + def generate_image(self, prompt: str, cfg_scale: int = 7, height: int = 1024, width: int = 1024, samples: int = 1, steps: int = 30) -> List[str]: + response = requests.post( + f"{self.api_host}/v1/generation/{self.engine_id}/text-to-image", + headers=self.headers, + json={ + "text_prompts": [{"text": prompt}], + "cfg_scale": cfg_scale, + "height": height, + "width": width, + "samples": samples, + "steps": steps, + }, + ) + + if response.status_code != 200: + raise Exception(f"Non-200 response: {response.text}") + + data = response.json() + image_paths = [] + for i, image in enumerate(data["artifacts"]): + image_path = os.path.join(self.output_dir, f"v1_txt2img_{i}.png") + with open(image_path, "wb") as f: + f.write(base64.b64decode(image["base64"])) + image_paths.append(image_path) + + return image_paths + +# Example Usage +if __name__ == "__main__": + api_key = os.getenv("STABILITY_API_KEY") + if not api_key: + raise Exception("Missing Stability API key.") + + sd_api = StableDiffusion(api_key) + images = sd_api.generate_image("A lighthouse on a cliff") + for image_path in images: + print(f"Generated image saved at: {image_path}") From 39ba15eccd336d1b980462378be065bf4d102b3e Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Sun, 26 Nov 2023 19:49:58 -0700 Subject: [PATCH 40/47] python 3.9 --- .github/workflows/RELEASE.yml | 4 ++-- .github/workflows/unit-test.yml | 2 +- pyproject.toml | 2 +- tests/Dockerfile | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/RELEASE.yml b/.github/workflows/RELEASE.yml index 0abb2ed7..cde08689 100644 --- a/.github/workflows/RELEASE.yml +++ b/.github/workflows/RELEASE.yml @@ -22,10 +22,10 @@ jobs: - uses: actions/checkout@v4 - name: Install poetry run: pipx install poetry==$POETRY_VERSION - - name: Set up Python 3.10 + - name: Set up Python 3.9 uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.9" cache: "poetry" - name: Build project for distribution run: poetry build diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index c68e49b6..0a1985a7 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: '3.10' + python-version: '3.9' - name: Install dependencies run: | diff --git a/pyproject.toml b/pyproject.toml index bac55bc6..a15d5d83 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,7 @@ classifiers = [ ] [tool.poetry.dependencies] -python = "^3.10.1" +python = "^3.9.1" torch = "2.1.1" transformers = "*" openai = "0.28.0" diff --git a/tests/Dockerfile b/tests/Dockerfile index f575f599..f6e46515 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,7 +1,7 @@ # TESTING # -================== # Use an official Python runtime as a parent image -FROM python:3.10-slim +FROM python:3.9-slim # Set environment variables to make Python output unbuffered and disable the PIP cache ENV PYTHONDONTWRITEBYTECODE 1 From d59ad33a225099f12a2d67948bdde0011ff9911b Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Sun, 26 Nov 2023 18:55:30 -0800 Subject: [PATCH 41/47] Update stable_diffusion.py --- playground/models/stable_diffusion.py | 74 +++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/playground/models/stable_diffusion.py b/playground/models/stable_diffusion.py index 3ca69931..3bb77c39 100644 --- a/playground/models/stable_diffusion.py +++ b/playground/models/stable_diffusion.py @@ -7,7 +7,39 @@ from typing import List load_dotenv() class StableDiffusion: + """ + A class to interact with the Stable Diffusion API for image generation. + + Attributes: + ----------- + api_key : str + The API key for accessing the Stable Diffusion API. + api_host : str + The host URL of the Stable Diffusion API. + engine_id : str + The ID of the Stable Diffusion engine. + headers : dict + The headers for the API request. + output_dir : str + Directory where generated images will be saved. + + Methods: + -------- + generate_image(prompt: str, cfg_scale: int, height: int, width: int, samples: int, steps: int) -> List[str]: + Generates images based on a text prompt and returns a list of file paths to the generated images. + """ + def __init__(self, api_key: str, api_host: str = "https://api.stability.ai"): + """ + Initializes the StableDiffusion class with the provided API key and host. + + Parameters: + ----------- + api_key : str + The API key for accessing the Stable Diffusion API. + api_host : str + The host URL of the Stable Diffusion API. Default is "https://api.stability.ai". + """ self.api_key = api_key self.api_host = api_host self.engine_id = "stable-diffusion-v1-6" @@ -20,6 +52,34 @@ class StableDiffusion: os.makedirs(self.output_dir, exist_ok=True) def generate_image(self, prompt: str, cfg_scale: int = 7, height: int = 1024, width: int = 1024, samples: int = 1, steps: int = 30) -> List[str]: + """ + Generates images based on a text prompt. + + Parameters: + ----------- + prompt : str + The text prompt based on which the image will be generated. + cfg_scale : int + CFG scale parameter for image generation. Default is 7. + height : int + Height of the generated image. Default is 1024. + width : int + Width of the generated image. Default is 1024. + samples : int + Number of images to generate. Default is 1. + steps : int + Number of steps for the generation process. Default is 30. + + Returns: + -------- + List[str]: + A list of paths to the generated images. + + Raises: + ------- + Exception: + If the API response is not 200 (OK). + """ response = requests.post( f"{self.api_host}/v1/generation/{self.engine_id}/text-to-image", headers=self.headers, @@ -46,13 +106,7 @@ class StableDiffusion: return image_paths -# Example Usage -if __name__ == "__main__": - api_key = os.getenv("STABILITY_API_KEY") - if not api_key: - raise Exception("Missing Stability API key.") - - sd_api = StableDiffusion(api_key) - images = sd_api.generate_image("A lighthouse on a cliff") - for image_path in images: - print(f"Generated image saved at: {image_path}") +# Usage example: +# sd = StableDiffusion("your-api-key") +# images = sd.generate_image("A scenic landscape with mountains") +# print(images) From e4dd3b127c09995f2d2825397115d4eab2e91782 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 04:24:41 +0000 Subject: [PATCH 42/47] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index de09fd0b..41f2942a 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -19,7 +19,7 @@ jobs: python-version: ["3.7", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: From 25ff5a40e64758cda355651aa3d223fa6ef3a663 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 04:24:46 +0000 Subject: [PATCH 43/47] Bump actions/setup-python from 3 to 4 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index de09fd0b..62bd4dfa 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 37e7a4d1fa2ad6313e0e82e42361eba17c7d0dc1 Mon Sep 17 00:00:00 2001 From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:27:17 -0800 Subject: [PATCH 44/47] Update flow.py --- swarms/structs/flow.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index 5084c82e..19d9a90e 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -249,8 +249,8 @@ class Flow: autosave: Optional[bool] = False, context_length: Optional[int] = 8192, user_name: str = "Human:", - self_healing_enabled: bool = False, - code_interpreter: bool = False, + self_healing_enabled: Optional[bool] = False, + code_interpreter: Optional[bool] = False, multi_modal: Optional[bool] = None, **kwargs: Any, ): From e007e5fe7281a78750ba47e2feab6be722e89330 Mon Sep 17 00:00:00 2001 From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:28:41 -0800 Subject: [PATCH 45/47] Update mkdocs.yml --- mkdocs.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 8616cc2f..4644c0d0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -78,13 +78,13 @@ nav: - swarms.models: - Language: - Overview: "swarms/models/index.md" - - HuggingFaceLLM: "swarms/models/huggingface.md" - - Anthropic: "swarms/models/anthropic.md" - - OpenAI: "swarms/models/openai.md" - - Zephyr: "swarms/models/zephyr.md" - - BioGPT: "swarms/models/biogpt.md" - - MPT7B: "swarms/models/mpt.md" - - Mistral: "swarms/models/mistral.md" + - HuggingFaceLLM: "swarms/models/huggingface.md" + - Anthropic: "swarms/models/anthropic.md" + - OpenAI: "swarms/models/openai.md" + - Zephyr: "swarms/models/zephyr.md" + - BioGPT: "swarms/models/biogpt.md" + - MPT7B: "swarms/models/mpt.md" + - Mistral: "swarms/models/mistral.md" - MultiModal: - Fuyu: "swarms/models/fuyu.md" - Vilt: "swarms/models/vilt.md" @@ -105,9 +105,6 @@ nav: - swarms.memory: - PineconeVectorStoreStore: "swarms/memory/pinecone.md" - PGVectorStore: "swarms/memory/pg.md" -# - swarms.chunkers: -# - BaseChunker: "swarms/chunkers/basechunker.md" -# - PdfChunker: "swarms/chunkers/pdf_chunker.md" - Guides: - Overview: "examples/index.md" - Agents: From b0a4668cf5e5e27d3efa8da762b4a27dcd490554 Mon Sep 17 00:00:00 2001 From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:30:21 -0800 Subject: [PATCH 46/47] Update mkdocs.yml --- mkdocs.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 4644c0d0..3a4e6691 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,3 @@ ---- site_name: Swarms Docs plugins: - glightbox @@ -7,9 +6,6 @@ copyright: "© APAC Corp, Inc." extra_css: - docs/assets/css/extra.css extra: - # analytics: - # provider: google - # property: G-QM8EDPSCB6 social: - icon: fontawesome/solid/house link: assets/img/SwarmsLogoIcon.png @@ -61,8 +57,8 @@ markdown_extensions: nav: - Home: - Overview: "index.md" - - Contributing: "contributing.md" - - Docker Container Setup: "docker_setup.md" + - Contributing: "contributing.md" + - Docker Container Setup: "docker_setup.md" - Swarms: - Overview: "swarms/index.md" - swarms.swarms: @@ -108,9 +104,9 @@ nav: - Guides: - Overview: "examples/index.md" - Agents: - - Flow: "examples/flow.md" - - SequentialWorkflow: "examples/reliable_autonomous_agents.md" - - OmniAgent: "examples/omni_agent.md" + - Flow: "examples/flow.md" + - SequentialWorkflow: "examples/reliable_autonomous_agents.md" + - OmniAgent: "examples/omni_agent.md" - 2O+ Autonomous Agent Blogs: "examples/ideas.md" - Applications: - CustomerSupport: From b5b61d9d439ad8a8053fcf25dcbbee2702905b9e Mon Sep 17 00:00:00 2001 From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com> Date: Sun, 26 Nov 2023 20:31:33 -0800 Subject: [PATCH 47/47] Update .readthedocs.yml --- .readthedocs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 1c969083..e3e74fad 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,4 +1,3 @@ ---- version: 2 build:

-7_=QBmuNU$S5}Fg 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 Date: Fri, 24 Nov 2023 17:35:47 -0800 Subject: [PATCH 20/47] GPT4Vision + multimodal --- .../multi_modal_auto_agent.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py diff --git a/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py b/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py new file mode 100644 index 00000000..f5462847 --- /dev/null +++ b/playground/demos/multi_modal_autonomous_agents/multi_modal_auto_agent.py @@ -0,0 +1,17 @@ +from swarms.structs import Flow +from swarms.models.gpt4_vision_api import GPT4VisionAPI + + +llm = GPT4VisionAPI() + +task = "What is the color of the object?" +img = "images/swarms.jpeg" + +## Initialize the workflow +flow = Flow( + llm=llm, + max_loops="auto", + dashboard=True, +) + +flow.run(task=task, img=img) From 66d9f7086b81224ca44b662608dbb8410cfa3737 Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 17:44:37 -0800 Subject: [PATCH 21/47] gpt4v docs --- docs/swarms/models/gpt4v.md | 318 +++++++++++++++--------------------- 1 file changed, 134 insertions(+), 184 deletions(-) diff --git a/docs/swarms/models/gpt4v.md b/docs/swarms/models/gpt4v.md index 3fe3d81c..69968623 100644 --- a/docs/swarms/models/gpt4v.md +++ b/docs/swarms/models/gpt4v.md @@ -1,251 +1,201 @@ -# `GPT4Vision` Documentation +# `GPT4VisionAPI` Documentation -## Table of Contents -- [Overview](#overview) +**Table of Contents** +- [Introduction](#introduction) - [Installation](#installation) -- [Initialization](#initialization) -- [Methods](#methods) - - [process_img](#process_img) - - [__call__](#__call__) - - [run](#run) - - [arun](#arun) -- [Configuration Options](#configuration-options) -- [Usage Examples](#usage-examples) -- [Additional Tips](#additional-tips) -- [References and Resources](#references-and-resources) - ---- - -## Overview - -The GPT4Vision Model API is designed to provide an easy-to-use interface for interacting with the OpenAI GPT-4 Vision model. This model can generate textual descriptions for images and answer questions related to visual content. Whether you want to describe images or perform other vision-related tasks, GPT4Vision makes it simple and efficient. - -The library offers a straightforward way to send images and tasks to the GPT-4 Vision model and retrieve the generated responses. It handles API communication, authentication, and retries, making it a powerful tool for developers working with computer vision and natural language processing tasks. +- [Module Overview](#module-overview) +- [Class: GPT4VisionAPI](#class-gpt4visionapi) + - [Initialization](#initialization) + - [Methods](#methods) + - [encode_image](#encode_image) + - [run](#run) + - [__call__](#__call__) +- [Examples](#examples) + - [Example 1: Basic Usage](#example-1-basic-usage) + - [Example 2: Custom API Key](#example-2-custom-api-key) + - [Example 3: Adjusting Maximum Tokens](#example-3-adjusting-maximum-tokens) +- [Additional Information](#additional-information) +- [References](#references) + +## Introduction
+ +Welcome to the documentation for the `GPT4VisionAPI` module! This module is a powerful wrapper for the OpenAI GPT-4 Vision model. It allows you to interact with the model to generate descriptions or answers related to images. This documentation will provide you with comprehensive information on how to use this module effectively. + +## Installation + +Before you start using the `GPT4VisionAPI` module, make sure you have the required dependencies installed. You can install them using the following commands: + +```bash +pip3 install --upgrade swarms +``` -## Installation +## Module Overview -To use the GPT4Vision Model API, you need to install the required dependencies and configure your environment. Follow these steps to get started: +The `GPT4VisionAPI` module serves as a bridge between your application and the OpenAI GPT-4 Vision model. It allows you to send requests to the model and retrieve responses related to images. Here are some key features and functionality provided by this module: -1. Install the required Python package: +- Encoding images to base64 format. +- Running the GPT-4 Vision model with specified tasks and images. +- Customization options such as setting the OpenAI API key and maximum token limit. - ```bash - pip3 install --upgrade swarms - ``` +## Class: GPT4VisionAPI -2. Make sure you have an OpenAI API key. You can obtain one by signing up on the [OpenAI platform](https://beta.openai.com/signup/). +The `GPT4VisionAPI` class is the core component of this module. It encapsulates the functionality required to interact with the GPT-4 Vision model. Below, we'll dive into the class in detail. -3. Set your OpenAI API key as an environment variable. You can do this in your code or your environment configuration. Alternatively, you can provide the API key directly when initializing the `GPT4Vision` class. +### Initialization -## Initialization +When initializing the `GPT4VisionAPI` class, you have the option to provide the OpenAI API key and set the maximum token limit. Here are the parameters and their descriptions: -To start using the GPT4Vision Model API, you need to create an instance of the `GPT4Vision` class. You can customize its behavior by providing various configuration options, but it also comes with sensible defaults. +| Parameter | Type | Default Value | Description | +|---------------------|----------|-------------------------------|----------------------------------------------------------------------------------------------------------| +| openai_api_key | str | `OPENAI_API_KEY` environment variable (if available) | The OpenAI API key. If not provided, it defaults to the `OPENAI_API_KEY` environment variable. | +| max_tokens | int | 300 | The maximum number of tokens to generate in the model's response. | -Here's how you can initialize the `GPT4Vision` class: +Here's how you can initialize the `GPT4VisionAPI` class: ```python -from swarms.models.gpt4v import GPT4Vision - -gpt4vision = GPT4Vision( - api_key="Your Key" -) -``` - -The above code initializes the `GPT4Vision` class with default settings. You can adjust these settings as needed. - -## Methods - -### `process_img` +from swarms.models import GPT4VisionAPI -The `process_img` method is used to preprocess an image before sending it to the GPT-4 Vision model. It takes the image path as input and returns the processed image in a format suitable for API requests. +# Initialize with default API key and max_tokens +api = GPT4VisionAPI() -```python -processed_img = gpt4vision.process_img(img_path) +# Initialize with custom API key and max_tokens +custom_api_key = "your_custom_api_key" +api = GPT4VisionAPI(openai_api_key=custom_api_key, max_tokens=500) ``` -- `img_path` (str): The file path or URL of the image to be processed. +### Methods -### `__call__` +#### encode_image -The `__call__` method is the main method for interacting with the GPT-4 Vision model. It sends the image and tasks to the model and returns the generated response. +This method allows you to encode an image from a URL to base64 format. It's a utility function used internally by the module. ```python -response = gpt4vision(img, tasks) -``` - -- `img` (Union[str, List[str]]): Either a single image URL or a list of image URLs to be used for the API request. -- `tasks` (List[str]): A list of tasks or questions related to the image(s). - -This method returns a `GPT4VisionResponse` object, which contains the generated answer. - -### `run` +def encode_image(img: str) -> str: + """ + Encode image to base64. -The `run` method is an alternative way to interact with the GPT-4 Vision model. It takes a single task and image URL as input and returns the generated response. + Parameters: + - img (str): URL of the image to encode. -```python -response = gpt4vision.run(task, img) + Returns: + str: Base64 encoded image. + """ ``` -- `task` (str): The task or question related to the image. -- `img` (str): The image URL to be used for the API request. - -This method simplifies interactions when dealing with a single task and image. - -### `arun` +#### run -The `arun` method is an asynchronous version of the `run` method. It allows for asynchronous processing of API requests, which can be useful in certain scenarios. +The `run` method is the primary way to interact with the GPT-4 Vision model. It sends a request to the model with a task and an image URL, and it returns the model's response. ```python -import asyncio +def run(task: str, img: str) -> str: + """ + Run the GPT-4 Vision model. -async def main(): - response = await gpt4vision.arun(task, img) - print(response) + Parameters: + - task (str): The task or question related to the image. + - img (str): URL of the image to analyze. -loop = asyncio.get_event_loop() -loop.run_until_complete(main()) + Returns: + str: The model's response. + """ ``` -- `task` (str): The task or question related to the image. -- `img` (str): The image URL to be used for the API request. - -## Configuration Options - -The `GPT4Vision` class provides several configuration options that allow you to customize its behavior: +#### __call__ -- `max_retries` (int): The maximum number of retries to make to the API. Default: 3 -- `backoff_factor` (float): The backoff factor to use for exponential backoff. Default: 2.0 -- `timeout_seconds` (int): The timeout in seconds for the API request. Default: 10 -- `api_key` (str): The API key to use for the API request. Default: None (set via environment variable) -- `quality` (str): The quality of the image to generate. Options: 'low' or 'high'. Default: 'low' -- `max_tokens` (int): The maximum number of tokens to use for the API request. Default: 200 - -## Usage Examples - -### Example 1: Generating Image Descriptions - -```python -gpt4vision = GPT4Vision() -img = "https://example.com/image.jpg" -tasks = ["Describe this image."] -response = gpt4vision(img, tasks) -print(response.answer) -``` - -In this example, we create an instance of `GPT4Vision`, provide an image URL, and ask the model to describe the image. The response contains the generated description. - -### Example 2: Custom Configuration +The `__call__` method is a convenient way to run the GPT-4 Vision model. It has the same functionality as the `run` method. ```python -custom_config = { - "max_retries": 5, - "timeout_seconds": 20, - "quality": "high", - "max_tokens": 300, -} -gpt4vision = GPT4Vision(**custom_config) -img = "https://example.com/another_image.jpg" -tasks = ["What objects can you identify in this image?"] -response = gpt4vision(img, tasks) -print(response.answer) -``` +def __call__(task: str, img: str) -> str: + """ + Run the GPT-4 Vision model (callable). -In this example, we create an instance of `GPT4Vision` with custom configuration options. We set a higher timeout, request high-quality images, and allow more tokens in the response. + Parameters: + - task (str): The task or question related to the image. + - img -### Example 3: Using the `run` Method + (str): URL of the image to analyze. -```python -gpt4vision = GPT4Vision() -img = "https://example.com/image.jpg" -task = "Describe this image in detail." -response = gpt4vision.run(task, img) -print(response) + Returns: + str: The model's response. + """ ``` -In this example, we use the `run` method to simplify the interaction by providing a single task and image URL. +## Examples -# Model Usage and Image Understanding +Let's explore some usage examples of the `GPT4VisionAPI` module to better understand how to use it effectively. -The GPT-4 Vision model processes images in a unique way, allowing it to answer questions about both or each of the images independently. Here's an overview: +### Example 1: Basic Usage -| Purpose | Description | -| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| Image Understanding | The model is shown two copies of the same image and can answer questions about both or each of the images independently. | +In this example, we'll use the module with the default API key and maximum tokens to analyze an image. -# Image Detail Control +```python +from swarms.models import GPT4VisionAPI -You have control over how the model processes the image and generates textual understanding by using the `detail` parameter, which has two options: `low` and `high`. +# Initialize with default API key and max_tokens +api = GPT4VisionAPI() -| Detail | Description | -| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| low | Disables the "high-res" model. The model receives a low-res 512 x 512 version of the image and represents the image with a budget of 65 tokens. Ideal for use cases not requiring high detail. | -| high | Enables "high-res" mode. The model first sees the low-res image and then creates detailed crops of input images as 512px squares based on the input image size. Uses a total of 129 tokens. | +# Define the task and image URL +task = "What is the color of the object?" +img = "https://i.imgur.com/2M2ZGwC.jpeg" -# Managing Images +# Run the GPT-4 Vision model +response = api.run(task, img) -To use the Chat Completions API effectively, you must manage the images you pass to the model. Here are some key considerations: +# Print the model's response +print(response) +``` -| Management Aspect | Description | -| ------------------------- | ------------------------------------------------------------------------------------------------- | -| Image Reuse | To pass the same image multiple times, include the image with each API request. | -| Image Size Optimization | Improve latency by downsizing images to meet the expected size requirements. | -| Image Deletion | After processing, images are deleted from OpenAI servers and not retained. No data is used for training. | +### Example 2: Custom API Key -# Limitations +If you have a custom API key, you can initialize the module with it as shown in this example. -While GPT-4 with Vision is powerful, it has some limitations: +```python +from swarms.models import GPT4VisionAPI -| Limitation | Description | -| -------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| Medical Images | Not suitable for interpreting specialized medical images like CT scans. | -| Non-English Text | May not perform optimally when handling non-Latin alphabets, such as Japanese or Korean. | -| Large Text in Images | Enlarge text within images for readability, but avoid cropping important details. | -| Rotated or Upside-Down Text/Images | May misinterpret rotated or upside-down text or images. | -| Complex Visual Elements | May struggle to understand complex graphs or text with varying colors or styles. | -| Spatial Reasoning | Struggles with tasks requiring precise spatial localization, such as identifying chess positions. | -| Accuracy | May generate incorrect descriptions or captions in certain scenarios. | -| Panoramic and Fisheye Images | Struggles with panoramic and fisheye images. | +# Initialize with custom API key and max_tokens +custom_api_key = "your_custom_api_key" +api = GPT4VisionAPI(openai_api_key=custom_api_key, max_tokens=500) -# Calculating Costs +# Define the task and image URL +task = "What is the object in the image?" +img = "https://i.imgur.com/3T3ZHwD.jpeg" -Image inputs are metered and charged in tokens. The token cost depends on the image size and detail option. +# Run the GPT-4 Vision model +response = api.run(task, img) -| Example | Token Cost | -| --------------------------------------------- | ----------- | -| 1024 x 1024 square image in detail: high mode | 765 tokens | -| 2048 x 4096 image in detail: high mode | 1105 tokens | -| 4096 x 8192 image in detail: low mode | 85 tokens | +# Print the model's response +print(response) +``` -# FAQ +### Example 3: Adjusting Maximum Tokens -Here are some frequently asked questions about GPT-4 with Vision: +You can also customize the maximum token limit when initializing the module. In this example, we set it to 1000 tokens. -| Question | Answer | -| -------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| Fine-Tuning Image Capabilities | No, fine-tuning the image capabilities of GPT-4 is not supported at this time. | -| Generating Images | GPT-4 is used for understanding images, not generating them. | -| Supported Image File Types | Supported image file types include PNG (.png), JPEG (.jpeg and .jpg), WEBP (.webp), and non-animated GIF (.gif). | -| Image Size Limitations | Image uploads are restricted to 20MB per image. | -| Image Deletion | Uploaded images are automatically deleted after processing by the model. | -| Learning More | For more details about GPT-4 with Vision, refer to the GPT-4 with Vision system card. | -| CAPTCHA Submission | CAPTCHAs are blocked for safety reasons. | -| Rate Limits | Image processing counts toward your tokens per minute (TPM) limit. Refer to the calculating costs section for details. | -| Image Metadata | The model does not receive image metadata. | -| Handling Unclear Images | If an image is unclear, the model will do its best to interpret it, but results may be less accurate. | +```python +from swarms.models import GPT4VisionAPI +# Initialize with default API key and custom max_tokens +api = GPT4VisionAPI(max_tokens=1000) +# Define the task and image URL +task = "Describe the scene in the image." +img = "https://i.imgur.com/4P4ZRxU.jpeg" -## Additional Tips +# Run the GPT-4 Vision model +response = api.run(task, img) -- Make sure to handle potential exceptions and errors when making API requests. The library includes retries and error handling, but it's essential to handle exceptions gracefully in your code. -- Experiment with different configuration options to optimize the trade-off between response quality and response time based on your specific requirements. +# Print the model's response +print(response) +``` -## References and Resources +## Additional Information -- [OpenAI Platform](https://beta.openai.com/signup/): Sign up for an OpenAI API key. -- [OpenAI API Documentation](https://platform.openai.com/docs/api-reference/chat/create): Official API documentation for the GPT-4 Vision model. +- If you encounter any errors or issues with the module, make sure to check your API key and internet connectivity. +- It's recommended to handle exceptions when using the module to gracefully handle errors. +- You can further customize the module to fit your specific use case by modifying the code as needed. -Now you have a comprehensive understanding of the GPT4Vision Model API, its configuration options, and how to use it for various computer vision and natural language processing tasks. Start experimenting and integrating it into your projects to leverage the power of GPT-4 Vision for image-related tasks. +## References -# Conclusion +- [OpenAI API Documentation](https://beta.openai.com/docs/) -With GPT-4 Vision, you have a powerful tool for understanding and generating textual descriptions for images. By considering its capabilities, limitations, and cost calculations, you can effectively leverage this model for various image-related tasks. \ No newline at end of file +This documentation provides a comprehensive guide on how to use the `GPT4VisionAPI` module effectively. It covers initialization, methods, usage examples, and additional information to ensure a smooth experience when working with the GPT-4 Vision model. \ No newline at end of file From b9fea7b9c82bf3c5a51f13326b1d72ccad54d34d Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 21:25:11 -0800 Subject: [PATCH 22/47] cleanup --- playground/agents/revgpt_agent.py | 28 ---------------------------- pyproject.toml | 2 +- swarms/models/__init__.py | 2 +- swarms/models/gpt4_vision_api.py | 4 +++- 4 files changed, 5 insertions(+), 31 deletions(-) delete mode 100644 playground/agents/revgpt_agent.py diff --git a/playground/agents/revgpt_agent.py b/playground/agents/revgpt_agent.py deleted file mode 100644 index 16a720e8..00000000 --- a/playground/agents/revgpt_agent.py +++ /dev/null @@ -1,28 +0,0 @@ -import os -from dotenv import load_dotenv -from swarms.models.revgptV4 import RevChatGPTModel -from swarms.workers.worker import Worker - -load_dotenv() - -config = { - "model": os.getenv("REVGPT_MODEL"), - "plugin_ids": [os.getenv("REVGPT_PLUGIN_IDS")], - "disable_history": os.getenv("REVGPT_DISABLE_HISTORY") == "True", - "PUID": os.getenv("REVGPT_PUID"), - "unverified_plugin_domains": [ - os.getenv("REVGPT_UNVERIFIED_PLUGIN_DOMAINS") - ], -} - -llm = RevChatGPTModel(access_token=os.getenv("ACCESS_TOKEN"), **config) - -worker = Worker(ai_name="Optimus Prime", llm=llm) - -task = ( - "What were the winning boston marathon times for the past 5 years (ending" - " in 2022)? Generate a table of the year, name, country of origin, and" - " times." -) -response = worker.run(task) -print(response) diff --git a/pyproject.toml b/pyproject.toml index eea95362..dcad7e7e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "swarms" -version = "2.4.0" +version = "2.4.1" description = "Swarms - Pytorch" license = "MIT" authors = ["Kye Gomez "] diff --git a/swarms/models/__init__.py b/swarms/models/__init__.py index deaa5fde..deac803f 100644 --- a/swarms/models/__init__.py +++ b/swarms/models/__init__.py @@ -25,7 +25,7 @@ from swarms.models.idefics import Idefics # noqa: E402 from swarms.models.vilt import Vilt # noqa: E402 from swarms.models.nougat import Nougat # noqa: E402 from swarms.models.layoutlm_document_qa import LayoutLMDocumentQA # noqa: E402 -from swarms.models.gpt4_vision_api import GPT4VisionAPI # noqa: E40 +from swarms.models.gpt4_vision_api import GPT4VisionAPI # noqa: E402 # from swarms.models.gpt4v import GPT4Vision # from swarms.models.dalle3 import Dalle3 diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 87436c55..835384ec 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -2,6 +2,7 @@ import base64 import os import requests from dotenv import load_dotenv +import concurrent.futures # Load environment variables load_dotenv() @@ -135,4 +136,5 @@ class GPT4VisionAPI: except Exception as error: print(f"Error with the request: {error}") raise error - # Function to handle vision tasks \ No newline at end of file + # Function to handle vision tasks + From 9390efb8aa3ed9aa7db3b21d669e3c8e6ab733af Mon Sep 17 00:00:00 2001 From: Kye Date: Fri, 24 Nov 2023 22:05:49 -0800 Subject: [PATCH 23/47] gpt4vision features and api --- README.md | 26 + multi_modal_auto_agent.py | 1 - playground/demos/assembly/assembly.py | 7 +- swarms/models/fast_vit_classes.json | 1000 ------------------------- swarms/models/gpt4_vision_api.py | 162 +++- tests/models/test_gpt4_vision_api.py | 122 ++- tests/models/test_revgptv4.py | 93 --- 7 files changed, 308 insertions(+), 1103 deletions(-) delete mode 100644 swarms/models/fast_vit_classes.json delete mode 100644 tests/models/test_revgptv4.py diff --git a/README.md b/README.md index 2b104caf..2e3adbd4 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,32 @@ workflow.run() for task in workflow.tasks: print(f"Task: {task.description}, Result: {task.result}") +``` + +## `Multi Modal Autonomous Agents` +- Run the flow with multiple modalities useful for various real-world tasks in manufacturing, logistics, and health. + +```python +from swarms.structs import Flow +from swarms.models.gpt4_vision_api import GPT4VisionAPI + +# Initialize the llm +llm = GPT4VisionAPI() + +task = "Analyze this image of an assembly line and identify any issues such as misaligned parts, defects, or deviations from the standard assembly process. IF there is anything unsafe in the image, explain why it is unsafe and how it could be improved." +img = "assembly_line.jpg" + +## Initialize the workflow +flow = Flow( + llm=llm, + max_loops=1, + dashboard=True, +) + +# Run the flow +flow.run(task=task, img=img) + + ``` --- diff --git a/multi_modal_auto_agent.py b/multi_modal_auto_agent.py index 1500349c..0ed2f42f 100644 --- a/multi_modal_auto_agent.py +++ b/multi_modal_auto_agent.py @@ -11,7 +11,6 @@ img = "images/swarms.jpeg" flow = Flow( llm=llm, max_loops="auto", - ) flow.run(task=task, img=img) diff --git a/playground/demos/assembly/assembly.py b/playground/demos/assembly/assembly.py index b0f728e9..d3ebf39a 100644 --- a/playground/demos/assembly/assembly.py +++ b/playground/demos/assembly/assembly.py @@ -4,7 +4,12 @@ from swarms.models.gpt4_vision_api import GPT4VisionAPI llm = GPT4VisionAPI() -task = "Analyze this image of an assembly line and identify any issues such as misaligned parts, defects, or deviations from the standard assembly process. IF there is anything unsafe in the image, explain why it is unsafe and how it could be improved." +task = ( + "Analyze this image of an assembly line and identify any issues such as" + " misaligned parts, defects, or deviations from the standard assembly" + " process. IF there is anything unsafe in the image, explain why it is" + " unsafe and how it could be improved." +) img = "assembly_line.jpg" ## Initialize the workflow diff --git a/swarms/models/fast_vit_classes.json b/swarms/models/fast_vit_classes.json deleted file mode 100644 index 57434253..00000000 --- a/swarms/models/fast_vit_classes.json +++ /dev/null @@ -1,1000 +0,0 @@ -["tench", -"goldfish", -"great white shark", -"tiger shark", -"hammerhead shark", -"electric ray", -"stingray", -"cock", -"hen", -"ostrich", -"brambling", -"goldfinch", -"house finch", -"junco", -"indigo bunting", -"American robin", -"bulbul", -"jay", -"magpie", -"chickadee", -"American dipper", -"kite", -"bald eagle", -"vulture", -"great grey owl", -"fire salamander", -"smooth newt", -"newt", -"spotted salamander", -"axolotl", -"American bullfrog", -"tree frog", -"tailed frog", -"loggerhead sea turtle", -"leatherback sea turtle", -"mud turtle", -"terrapin", -"box turtle", -"banded gecko", -"green iguana", -"Carolina anole", -"desert grassland whiptail lizard", -"agama", -"frilled-necked lizard", -"alligator lizard", -"Gila monster", -"European green lizard", -"chameleon", -"Komodo dragon", -"Nile crocodile", -"American alligator", -"triceratops", -"worm snake", -"ring-necked snake", -"eastern hog-nosed snake", -"smooth green snake", -"kingsnake", -"garter snake", -"water snake", -"vine snake", -"night snake", -"boa constrictor", -"African rock python", -"Indian cobra", -"green mamba", -"sea snake", -"Saharan horned viper", -"eastern diamondback rattlesnake", -"sidewinder", -"trilobite", -"harvestman", -"scorpion", -"yellow garden spider", -"barn spider", -"European garden spider", -"southern black widow", -"tarantula", -"wolf spider", -"tick", -"centipede", -"black grouse", -"ptarmigan", -"ruffed grouse", -"prairie grouse", -"peacock", -"quail", -"partridge", -"grey parrot", -"macaw", -"sulphur-crested cockatoo", -"lorikeet", -"coucal", -"bee eater", -"hornbill", -"hummingbird", -"jacamar", -"toucan", -"duck", -"red-breasted merganser", -"goose", -"black swan", -"tusker", -"echidna", -"platypus", -"wallaby", -"koala", -"wombat", -"jellyfish", -"sea anemone", -"brain coral", -"flatworm", -"nematode", -"conch", -"snail", -"slug", -"sea slug", -"chiton", -"chambered nautilus", -"Dungeness crab", -"rock crab", -"fiddler crab", -"red king crab", -"American lobster", -"spiny lobster", -"crayfish", -"hermit crab", -"isopod", -"white stork", -"black stork", -"spoonbill", -"flamingo", -"little blue heron", -"great egret", -"bittern", -"crane (bird)", -"limpkin", -"common gallinule", -"American coot", -"bustard", -"ruddy turnstone", -"dunlin", -"common redshank", -"dowitcher", -"oystercatcher", -"pelican", -"king penguin", -"albatross", -"grey whale", -"killer whale", -"dugong", -"sea lion", -"Chihuahua", -"Japanese Chin", -"Maltese", -"Pekingese", -"Shih Tzu", -"King Charles Spaniel", -"Papillon", -"toy terrier", -"Rhodesian Ridgeback", -"Afghan Hound", -"Basset Hound", -"Beagle", -"Bloodhound", -"Bluetick Coonhound", -"Black and Tan Coonhound", -"Treeing Walker Coonhound", -"English foxhound", -"Redbone Coonhound", -"borzoi", -"Irish Wolfhound", -"Italian Greyhound", -"Whippet", -"Ibizan Hound", -"Norwegian Elkhound", -"Otterhound", -"Saluki", -"Scottish Deerhound", -"Weimaraner", -"Staffordshire Bull Terrier", -"American Staffordshire Terrier", -"Bedlington Terrier", -"Border Terrier", -"Kerry Blue Terrier", -"Irish Terrier", -"Norfolk Terrier", -"Norwich Terrier", -"Yorkshire Terrier", -"Wire Fox Terrier", -"Lakeland Terrier", -"Sealyham Terrier", -"Airedale Terrier", -"Cairn Terrier", -"Australian Terrier", -"Dandie Dinmont Terrier", -"Boston Terrier", -"Miniature Schnauzer", -"Giant Schnauzer", -"Standard Schnauzer", -"Scottish Terrier", -"Tibetan Terrier", -"Australian Silky Terrier", -"Soft-coated Wheaten Terrier", -"West Highland White Terrier", -"Lhasa Apso", -"Flat-Coated Retriever", -"Curly-coated Retriever", -"Golden Retriever", -"Labrador Retriever", -"Chesapeake Bay Retriever", -"German Shorthaired Pointer", -"Vizsla", -"English Setter", -"Irish Setter", -"Gordon Setter", -"Brittany Spaniel", -"Clumber Spaniel", -"English Springer Spaniel", -"Welsh Springer Spaniel", -"Cocker Spaniels", -"Sussex Spaniel", -"Irish Water Spaniel", -"Kuvasz", -"Schipperke", -"Groenendael", -"Malinois", -"Briard", -"Australian Kelpie", -"Komondor", -"Old English Sheepdog", -"Shetland Sheepdog", -"collie", -"Border Collie", -"Bouvier des Flandres", -"Rottweiler", -"German Shepherd Dog", -"Dobermann", -"Miniature Pinscher", -"Greater Swiss Mountain Dog", -"Bernese Mountain Dog", -"Appenzeller Sennenhund", -"Entlebucher Sennenhund", -"Boxer", -"Bullmastiff", -"Tibetan Mastiff", -"French Bulldog", -"Great Dane", -"St. Bernard", -"husky", -"Alaskan Malamute", -"Siberian Husky", -"Dalmatian", -"Affenpinscher", -"Basenji", -"pug", -"Leonberger", -"Newfoundland", -"Pyrenean Mountain Dog", -"Samoyed", -"Pomeranian", -"Chow Chow", -"Keeshond", -"Griffon Bruxellois", -"Pembroke Welsh Corgi", -"Cardigan Welsh Corgi", -"Toy Poodle", -"Miniature Poodle", -"Standard Poodle", -"Mexican hairless dog", -"grey wolf", -"Alaskan tundra wolf", -"red wolf", -"coyote", -"dingo", -"dhole", -"African wild dog", -"hyena", -"red fox", -"kit fox", -"Arctic fox", -"grey fox", -"tabby cat", -"tiger cat", -"Persian cat", -"Siamese cat", -"Egyptian Mau", -"cougar", -"lynx", -"leopard", -"snow leopard", -"jaguar", -"lion", -"tiger", -"cheetah", -"brown bear", -"American black bear", -"polar bear", -"sloth bear", -"mongoose", -"meerkat", -"tiger beetle", -"ladybug", -"ground beetle", -"longhorn beetle", -"leaf beetle", -"dung beetle", -"rhinoceros beetle", -"weevil", -"fly", -"bee", -"ant", -"grasshopper", -"cricket", -"stick insect", -"cockroach", -"mantis", -"cicada", -"leafhopper", -"lacewing", -"dragonfly", -"damselfly", -"red admiral", -"ringlet", -"monarch butterfly", -"small white", -"sulphur butterfly", -"gossamer-winged butterfly", -"starfish", -"sea urchin", -"sea cucumber", -"cottontail rabbit", -"hare", -"Angora rabbit", -"hamster", -"porcupine", -"fox squirrel", -"marmot", -"beaver", -"guinea pig", -"common sorrel", -"zebra", -"pig", -"wild boar", -"warthog", -"hippopotamus", -"ox", -"water buffalo", -"bison", -"ram", -"bighorn sheep", -"Alpine ibex", -"hartebeest", -"impala", -"gazelle", -"dromedary", -"llama", -"weasel", -"mink", -"European polecat", -"black-footed ferret", -"otter", -"skunk", -"badger", -"armadillo", -"three-toed sloth", -"orangutan", -"gorilla", -"chimpanzee", -"gibbon", -"siamang", -"guenon", -"patas monkey", -"baboon", -"macaque", -"langur", -"black-and-white colobus", -"proboscis monkey", -"marmoset", -"white-headed capuchin", -"howler monkey", -"titi", -"Geoffroy's spider monkey", -"common squirrel monkey", -"ring-tailed lemur", -"indri", -"Asian elephant", -"African bush elephant", -"red panda", -"giant panda", -"snoek", -"eel", -"coho salmon", -"rock beauty", -"clownfish", -"sturgeon", -"garfish", -"lionfish", -"pufferfish", -"abacus", -"abaya", -"academic gown", -"accordion", -"acoustic guitar", -"aircraft carrier", -"airliner", -"airship", -"altar", -"ambulance", -"amphibious vehicle", -"analog clock", -"apiary", -"apron", -"waste container", -"assault rifle", -"backpack", -"bakery", -"balance beam", -"balloon", -"ballpoint pen", -"Band-Aid", -"banjo", -"baluster", -"barbell", -"barber chair", -"barbershop", -"barn", -"barometer", -"barrel", -"wheelbarrow", -"baseball", -"basketball", -"bassinet", -"bassoon", -"swimming cap", -"bath towel", -"bathtub", -"station wagon", -"lighthouse", -"beaker", -"military cap", -"beer bottle", -"beer glass", -"bell-cot", -"bib", -"tandem bicycle", -"bikini", -"ring binder", -"binoculars", -"birdhouse", -"boathouse", -"bobsleigh", -"bolo tie", -"poke bonnet", -"bookcase", -"bookstore", -"bottle cap", -"bow", -"bow tie", -"brass", -"bra", -"breakwater", -"breastplate", -"broom", -"bucket", -"buckle", -"bulletproof vest", -"high-speed train", -"butcher shop", -"taxicab", -"cauldron", -"candle", -"cannon", -"canoe", -"can opener", -"cardigan", -"car mirror", -"carousel", -"tool kit", -"carton", -"car wheel", -"automated teller machine", -"cassette", -"cassette player", -"castle", -"catamaran", -"CD player", -"cello", -"mobile phone", -"chain", -"chain-link fence", -"chain mail", -"chainsaw", -"chest", -"chiffonier", -"chime", -"china cabinet", -"Christmas stocking", -"church", -"movie theater", -"cleaver", -"cliff dwelling", -"cloak", -"clogs", -"cocktail shaker", -"coffee mug", -"coffeemaker", -"coil", -"combination lock", -"computer keyboard", -"confectionery store", -"container ship", -"convertible", -"corkscrew", -"cornet", -"cowboy boot", -"cowboy hat", -"cradle", -"crane (machine)", -"crash helmet", -"crate", -"infant bed", -"Crock Pot", -"croquet ball", -"crutch", -"cuirass", -"dam", -"desk", -"desktop computer", -"rotary dial telephone", -"diaper", -"digital clock", -"digital watch", -"dining table", -"dishcloth", -"dishwasher", -"disc brake", -"dock", -"dog sled", -"dome", -"doormat", -"drilling rig", -"drum", -"drumstick", -"dumbbell", -"Dutch oven", -"electric fan", -"electric guitar", -"electric locomotive", -"entertainment center", -"envelope", -"espresso machine", -"face powder", -"feather boa", -"filing cabinet", -"fireboat", -"fire engine", -"fire screen sheet", -"flagpole", -"flute", -"folding chair", -"football helmet", -"forklift", -"fountain", -"fountain pen", -"four-poster bed", -"freight car", -"French horn", -"frying pan", -"fur coat", -"garbage truck", -"gas mask", -"gas pump", -"goblet", -"go-kart", -"golf ball", -"golf cart", -"gondola", -"gong", -"gown", -"grand piano", -"greenhouse", -"grille", -"grocery store", -"guillotine", -"barrette", -"hair spray", -"half-track", -"hammer", -"hamper", -"hair dryer", -"hand-held computer", -"handkerchief", -"hard disk drive", -"harmonica", -"harp", -"harvester", -"hatchet", -"holster", -"home theater", -"honeycomb", -"hook", -"hoop skirt", -"horizontal bar", -"horse-drawn vehicle", -"hourglass", -"iPod", -"clothes iron", -"jack-o'-lantern", -"jeans", -"jeep", -"T-shirt", -"jigsaw puzzle", -"pulled rickshaw", -"joystick", -"kimono", -"knee pad", -"knot", -"lab coat", -"ladle", -"lampshade", -"laptop computer", -"lawn mower", -"lens cap", -"paper knife", -"library", -"lifeboat", -"lighter", -"limousine", -"ocean liner", -"lipstick", -"slip-on shoe", -"lotion", -"speaker", -"loupe", -"sawmill", -"magnetic compass", -"mail bag", -"mailbox", -"tights", -"tank suit", -"manhole cover", -"maraca", -"marimba", -"mask", -"match", -"maypole", -"maze", -"measuring cup", -"medicine chest", -"megalith", -"microphone", -"microwave oven", -"military uniform", -"milk can", -"minibus", -"miniskirt", -"minivan", -"missile", -"mitten", -"mixing bowl", -"mobile home", -"Model T", -"modem", -"monastery", -"monitor", -"moped", -"mortar", -"square academic cap", -"mosque", -"mosquito net", -"scooter", -"mountain bike", -"tent", -"computer mouse", -"mousetrap", -"moving van", -"muzzle", -"nail", -"neck brace", -"necklace", -"nipple", -"notebook computer", -"obelisk", -"oboe", -"ocarina", -"odometer", -"oil filter", -"organ", -"oscilloscope", -"overskirt", -"bullock cart", -"oxygen mask", -"packet", -"paddle", -"paddle wheel", -"padlock", -"paintbrush", -"pajamas", -"palace", -"pan flute", -"paper towel", -"parachute", -"parallel bars", -"park bench", -"parking meter", -"passenger car", -"patio", -"payphone", -"pedestal", -"pencil case", -"pencil sharpener", -"perfume", -"Petri dish", -"photocopier", -"plectrum", -"Pickelhaube", -"picket fence", -"pickup truck", -"pier", -"piggy bank", -"pill bottle", -"pillow", -"ping-pong ball", -"pinwheel", -"pirate ship", -"pitcher", -"hand plane", -"planetarium", -"plastic bag", -"plate rack", -"plow", -"plunger", -"Polaroid camera", -"pole", -"police van", -"poncho", -"billiard table", -"soda bottle", -"pot", -"potter's wheel", -"power drill", -"prayer rug", -"printer", -"prison", -"projectile", -"projector", -"hockey puck", -"punching bag", -"purse", -"quill", -"quilt", -"race car", -"racket", -"radiator", -"radio", -"radio telescope", -"rain barrel", -"recreational vehicle", -"reel", -"reflex camera", -"refrigerator", -"remote control", -"restaurant", -"revolver", -"rifle", -"rocking chair", -"rotisserie", -"eraser", -"rugby ball", -"ruler", -"running shoe", -"safe", -"safety pin", -"salt shaker", -"sandal", -"sarong", -"saxophone", -"scabbard", -"weighing scale", -"school bus", -"schooner", -"scoreboard", -"CRT screen", -"screw", -"screwdriver", -"seat belt", -"sewing machine", -"shield", -"shoe store", -"shoji", -"shopping basket", -"shopping cart", -"shovel", -"shower cap", -"shower curtain", -"ski", -"ski mask", -"sleeping bag", -"slide rule", -"sliding door", -"slot machine", -"snorkel", -"snowmobile", -"snowplow", -"soap dispenser", -"soccer ball", -"sock", -"solar thermal collector", -"sombrero", -"soup bowl", -"space bar", -"space heater", -"space shuttle", -"spatula", -"motorboat", -"spider web", -"spindle", -"sports car", -"spotlight", -"stage", -"steam locomotive", -"through arch bridge", -"steel drum", -"stethoscope", -"scarf", -"stone wall", -"stopwatch", -"stove", -"strainer", -"tram", -"stretcher", -"couch", -"stupa", -"submarine", -"suit", -"sundial", -"sunglass", -"sunglasses", -"sunscreen", -"suspension bridge", -"mop", -"sweatshirt", -"swimsuit", -"swing", -"switch", -"syringe", -"table lamp", -"tank", -"tape player", -"teapot", -"teddy bear", -"television", -"tennis ball", -"thatched roof", -"front curtain", -"thimble", -"threshing machine", -"throne", -"tile roof", -"toaster", -"tobacco shop", -"toilet seat", -"torch", -"totem pole", -"tow truck", -"toy store", -"tractor", -"semi-trailer truck", -"tray", -"trench coat", -"tricycle", -"trimaran", -"tripod", -"triumphal arch", -"trolleybus", -"trombone", -"tub", -"turnstile", -"typewriter keyboard", -"umbrella", -"unicycle", -"upright piano", -"vacuum cleaner", -"vase", -"vault", -"velvet", -"vending machine", -"vestment", -"viaduct", -"violin", -"volleyball", -"waffle iron", -"wall clock", -"wallet", -"wardrobe", -"military aircraft", -"sink", -"washing machine", -"water bottle", -"water jug", -"water tower", -"whiskey jug", -"whistle", -"wig", -"window screen", -"window shade", -"Windsor tie", -"wine bottle", -"wing", -"wok", -"wooden spoon", -"wool", -"split-rail fence", -"shipwreck", -"yawl", -"yurt", -"website", -"comic book", -"crossword", -"traffic sign", -"traffic light", -"dust jacket", -"menu", -"plate", -"guacamole", -"consomme", -"hot pot", -"trifle", -"ice cream", -"ice pop", -"baguette", -"bagel", -"pretzel", -"cheeseburger", -"hot dog", -"mashed potato", -"cabbage", -"broccoli", -"cauliflower", -"zucchini", -"spaghetti squash", -"acorn squash", -"butternut squash", -"cucumber", -"artichoke", -"bell pepper", -"cardoon", -"mushroom", -"Granny Smith", -"strawberry", -"orange", -"lemon", -"fig", -"pineapple", -"banana", -"jackfruit", -"custard apple", -"pomegranate", -"hay", -"carbonara", -"chocolate syrup", -"dough", -"meatloaf", -"pizza", -"pot pie", -"burrito", -"red wine", -"espresso", -"cup", -"eggnog", -"alp", -"bubble", -"cliff", -"coral reef", -"geyser", -"lakeshore", -"promontory", -"shoal", -"seashore", -"valley", -"volcano", -"baseball player", -"bridegroom", -"scuba diver", -"rapeseed", -"daisy", -"yellow lady's slipper", -"corn", -"acorn", -"rose hip", -"horse chestnut seed", -"coral fungus", -"agaric", -"gyromitra", -"stinkhorn mushroom", -"earth star", -"hen-of-the-woods", -"bolete", -"ear of corn", -"toilet paper"] \ No newline at end of file diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 835384ec..2a242670 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -1,8 +1,15 @@ +import asyncio import base64 +import concurrent.futures +from termcolor import colored +import json import os +from concurrent.futures import ThreadPoolExecutor +from typing import List, Tuple + +import aiohttp import requests from dotenv import load_dotenv -import concurrent.futures # Load environment variables load_dotenv() @@ -22,7 +29,7 @@ class GPT4VisionAPI: max_tokens : int The maximum number of tokens to generate. Defaults to 300. - + Methods ------- encode_image(img: str) @@ -43,16 +50,29 @@ class GPT4VisionAPI: """ - def __init__(self, openai_api_key: str = openai_api_key, max_tokens: str = 300): + def __init__( + self, + openai_api_key: str = openai_api_key, + model_name: str = "gpt-4-vision-preview", + max_workers: int = 10, + max_tokens: str = 300, + openai_proxy: str = "https://api.openai.com/v1/chat/completions", + ): super().__init__() self.openai_api_key = openai_api_key + self.model_name = model_name + self.max_workers = max_workers self.max_tokens = max_tokens + self.openai_proxy = openai_proxy def encode_image(self, img: str): """Encode image to base64.""" with open(img, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") + def download_img_then_encode(self, img: str): + """Download image from URL then encode image to base64 using requests""" + # Function to handle vision tasks def run(self, task: str, img: str): """Run the model.""" @@ -63,7 +83,7 @@ class GPT4VisionAPI: "Authorization": f"Bearer {openai_api_key}", } payload = { - "model": "gpt-4-vision-preview", + "model": self.model_name, "messages": [ { "role": "user", @@ -125,7 +145,7 @@ class GPT4VisionAPI: "max_tokens": self.max_tokens, } response = requests.post( - "https://api.openai.com/v1/chat/completions", + self.openai_proxy, headers=headers, json=payload, ) @@ -138,3 +158,135 @@ class GPT4VisionAPI: raise error # Function to handle vision tasks + def run_many( + self, + tasks: List[str], + imgs: List[str], + ): + """ + Run the model on multiple tasks and images all at once using concurrent + + """ + # Instantiate the thread pool executor + with ThreadPoolExecutor(max_workers=self.max_workers) as executor: + results = executor.map(self.run, tasks, imgs) + + # Print the results for debugging + for result in results: + print(result) + + return list(results) + + async def arun( + self, + task: str, + img: str, + ): + """ + Asynchronously run the model + + Overview: + --------- + This method is used to asynchronously run the model. It is used to run the model + on a single task and image. + + Parameters: + ---------- + task : str + The task to run the model on. + img : str + The image to run the task on + + """ + try: + base64_image = self.encode_image(img) + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {openai_api_key}", + } + payload = { + "model": "gpt-4-vision-preview", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": task}, + { + "type": "image_url", + "image_url": { + "url": ( + f"data:image/jpeg;base64,{base64_image}" + ) + }, + }, + ], + } + ], + "max_tokens": self.max_tokens, + } + async with aiohttp.ClientSession() as session: + async with session.post( + self.openai_proxy, headers=headers, data=json.dumps(payload) + ) as response: + out = await response.json() + content = out["choices"][0]["message"]["content"] + print(content) + except Exception as error: + print(f"Error with the request {error}") + raise error + + def run_batch(self, tasks_images: List[Tuple[str, str]]) -> List[str]: + """Process a batch of tasks and images""" + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [ + executor.submit(self.run, task, img) + for task, img in tasks_images + ] + results = [future.result() for future in futures] + return results + + async def run_batch_async( + self, tasks_images: List[Tuple[str, str]] + ) -> List[str]: + """Process a batch of tasks and images asynchronously""" + loop = asyncio.get_event_loop() + futures = [ + loop.run_in_executor(None, self.run, task, img) + for task, img in tasks_images + ] + return await asyncio.gather(*futures) + + async def run_batch_async_with_retries( + self, tasks_images: List[Tuple[str, str]] + ) -> List[str]: + """Process a batch of tasks and images asynchronously with retries""" + loop = asyncio.get_event_loop() + futures = [ + loop.run_in_executor(None, self.run_with_retries, task, img) + for task, img in tasks_images + ] + return await asyncio.gather(*futures) + + def health_check(self): + """Health check for the GPT4Vision model""" + try: + response = requests.get("https://api.openai.com/v1/engines") + return response.status_code == 200 + except requests.RequestException as error: + print(f"Health check failed: {error}") + return False + + def print_dashboard(self): + dashboard = print( + colored( + f""" + GPT4Vision Dashboard + ------------------- + Model: {self.model_name} + Max Workers: {self.max_workers} + OpenAIProxy: {self.openai_proxy} + """, + "green", + ) + ) + return dashboard diff --git a/tests/models/test_gpt4_vision_api.py b/tests/models/test_gpt4_vision_api.py index df2379a8..bca3b5f6 100644 --- a/tests/models/test_gpt4_vision_api.py +++ b/tests/models/test_gpt4_vision_api.py @@ -1,9 +1,12 @@ +import asyncio +import os +from unittest.mock import AsyncMock, Mock, mock_open, patch +from aiohttp import ClientResponseError import pytest -from unittest.mock import mock_open, patch, Mock +from dotenv import load_dotenv from requests.exceptions import RequestException + from swarms.models.gpt4_vision_api import GPT4VisionAPI -import os -from dotenv import load_dotenv load_dotenv() @@ -120,3 +123,116 @@ def test_call_method_with_exception(gpt_api): with patch("requests.post", side_effect=Exception("Test Exception")): with pytest.raises(Exception): gpt_api(task, img_url) + + +@pytest.mark.asyncio +async def test_arun_success(vision_api): + expected_response = { + "choices": [{"message": {"content": "This is the model's response."}}] + } + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + return_value=AsyncMock(json=AsyncMock(return_value=expected_response)), + ) as mock_post: + result = await vision_api.arun("What is this?", img) + mock_post.assert_called_once() + assert result == "This is the model's response." + + +@pytest.mark.asyncio +async def test_arun_request_error(vision_api): + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + side_effect=Exception("Request Error"), + ) as mock_post: + with pytest.raises(Exception): + await vision_api.arun("What is this?", img) + + +def test_run_many_success(vision_api): + expected_response = { + "choices": [{"message": {"content": "This is the model's response."}}] + } + with patch( + "requests.post", return_value=Mock(json=lambda: expected_response) + ) as mock_post: + tasks = ["What is this?", "What is that?"] + imgs = [img, img] + results = vision_api.run_many(tasks, imgs) + assert mock_post.call_count == 2 + assert results == [ + "This is the model's response.", + "This is the model's response.", + ] + + +def test_run_many_request_error(vision_api): + with patch( + "requests.post", side_effect=RequestException("Request Error") + ) as mock_post: + tasks = ["What is this?", "What is that?"] + imgs = [img, img] + with pytest.raises(RequestException): + vision_api.run_many(tasks, imgs) + + +@pytest.mark.asyncio +async def test_arun_json_decode_error(vision_api): + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + return_value=AsyncMock(json=AsyncMock(side_effect=ValueError)), + ) as mock_post: + with pytest.raises(ValueError): + await vision_api.arun("What is this?", img) + + +@pytest.mark.asyncio +async def test_arun_api_error(vision_api): + error_response = {"error": {"message": "API Error"}} + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + return_value=AsyncMock(json=AsyncMock(return_value=error_response)), + ) as mock_post: + with pytest.raises(Exception, match="API Error"): + await vision_api.arun("What is this?", img) + + +@pytest.mark.asyncio +async def test_arun_unexpected_response(vision_api): + unexpected_response = {"unexpected": "response"} + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + return_value=AsyncMock( + json=AsyncMock(return_value=unexpected_response) + ), + ) as mock_post: + with pytest.raises(Exception, match="Unexpected response"): + await vision_api.arun("What is this?", img) + + +@pytest.mark.asyncio +async def test_arun_retries(vision_api): + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + side_effect=ClientResponseError(None, None), + ) as mock_post: + with pytest.raises(ClientResponseError): + await vision_api.arun("What is this?", img) + assert mock_post.call_count == vision_api.retries + 1 + + +@pytest.mark.asyncio +async def test_arun_timeout(vision_api): + with patch( + "aiohttp.ClientSession.post", + new_callable=AsyncMock, + side_effect=asyncio.TimeoutError, + ) as mock_post: + with pytest.raises(asyncio.TimeoutError): + await vision_api.arun("What is this?", img) diff --git a/tests/models/test_revgptv4.py b/tests/models/test_revgptv4.py deleted file mode 100644 index 7a40ab30..00000000 --- a/tests/models/test_revgptv4.py +++ /dev/null @@ -1,93 +0,0 @@ -import unittest -from unittest.mock import patch -from RevChatGPTModelv4 import RevChatGPTModelv4 - - -class TestRevChatGPT(unittest.TestCase): - def setUp(self): - self.access_token = "123" - self.model = RevChatGPTModelv4(access_token=self.access_token) - - def test_run(self): - prompt = "What is the capital of France?" - self.model.start_time = 10 - self.model.end_time = 20 - response = self.model.run(prompt) - self.assertEqual(response, "The capital of France is Paris.") - self.assertEqual(self.model.start_time, 10) - self.assertEqual(self.model.end_time, 20) - - def test_generate_summary(self): - text = "Hello world. This is some text. It has multiple sentences." - summary = self.model.generate_summary(text) - self.assertEqual(summary, "") - - @patch("RevChatGPTModelv4.Chatbot.install_plugin") - def test_enable_plugin(self, mock_install_plugin): - plugin_id = "plugin123" - self.model.enable_plugin(plugin_id) - mock_install_plugin.assert_called_with(plugin_id=plugin_id) - - @patch("RevChatGPTModelv4.Chatbot.get_plugins") - def test_list_plugins(self, mock_get_plugins): - mock_get_plugins.return_value = [{"id": "123", "name": "Test Plugin"}] - plugins = self.model.list_plugins() - self.assertEqual(len(plugins), 1) - self.assertEqual(plugins[0]["id"], "123") - self.assertEqual(plugins[0]["name"], "Test Plugin") - - @patch("RevChatGPTModelv4.Chatbot.get_conversations") - def test_get_conversations(self, mock_get_conversations): - self.model.chatbot.get_conversations() - mock_get_conversations.assert_called() - - @patch("RevChatGPTModelv4.Chatbot.get_msg_history") - def test_get_msg_history(self, mock_get_msg_history): - convo_id = "123" - self.model.chatbot.get_msg_history(convo_id) - mock_get_msg_history.assert_called_with(convo_id) - - @patch("RevChatGPTModelv4.Chatbot.share_conversation") - def test_share_conversation(self, mock_share_conversation): - self.model.chatbot.share_conversation() - mock_share_conversation.assert_called() - - @patch("RevChatGPTModelv4.Chatbot.gen_title") - def test_gen_title(self, mock_gen_title): - convo_id = "123" - message_id = "456" - self.model.chatbot.gen_title(convo_id, message_id) - mock_gen_title.assert_called_with(convo_id, message_id) - - @patch("RevChatGPTModelv4.Chatbot.change_title") - def test_change_title(self, mock_change_title): - convo_id = "123" - title = "New Title" - self.model.chatbot.change_title(convo_id, title) - mock_change_title.assert_called_with(convo_id, title) - - @patch("RevChatGPTModelv4.Chatbot.delete_conversation") - def test_delete_conversation(self, mock_delete_conversation): - convo_id = "123" - self.model.chatbot.delete_conversation(convo_id) - mock_delete_conversation.assert_called_with(convo_id) - - @patch("RevChatGPTModelv4.Chatbot.clear_conversations") - def test_clear_conversations(self, mock_clear_conversations): - self.model.chatbot.clear_conversations() - mock_clear_conversations.assert_called() - - @patch("RevChatGPTModelv4.Chatbot.rollback_conversation") - def test_rollback_conversation(self, mock_rollback_conversation): - num = 2 - self.model.chatbot.rollback_conversation(num) - mock_rollback_conversation.assert_called_with(num) - - @patch("RevChatGPTModelv4.Chatbot.reset_chat") - def test_reset_chat(self, mock_reset_chat): - self.model.chatbot.reset_chat() - mock_reset_chat.assert_called() - - -if __name__ == "__main__": - unittest.main() From 51c82cf1f2fb31fcf31a148e7dcbbe1dfb69c377 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 02:16:59 -0800 Subject: [PATCH 24/47] Jarvis demo, base multimmodalmodel, whisperx -> whisperx_model --- .../jarvis_multi_modal_auto_agent/jarvis.py | 20 ++ swarms/models/__init__.py | 4 +- swarms/models/base_multimodal_model.py | 209 ++++++++++++++++++ swarms/models/fuyu.py | 10 +- swarms/models/gpt4_vision_api.py | 1 - swarms/models/kosmos_two.py | 37 ++-- .../models/{whisperx.py => whisperx_model.py} | 22 +- tests/models/test_whisperx.py | 2 +- 8 files changed, 263 insertions(+), 42 deletions(-) create mode 100644 playground/demos/jarvis_multi_modal_auto_agent/jarvis.py create mode 100644 swarms/models/base_multimodal_model.py rename swarms/models/{whisperx.py => whisperx_model.py} (85%) diff --git a/playground/demos/jarvis_multi_modal_auto_agent/jarvis.py b/playground/demos/jarvis_multi_modal_auto_agent/jarvis.py new file mode 100644 index 00000000..3e0a05cc --- /dev/null +++ b/playground/demos/jarvis_multi_modal_auto_agent/jarvis.py @@ -0,0 +1,20 @@ +from swarms.structs import Flow +from swarms.models.gpt4_vision_api import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) + + +llm = GPT4VisionAPI() + +task = "What is the color of the object?" +img = "images/swarms.jpeg" + +## Initialize the workflow +flow = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, + max_loops="auto", +) + +flow.run(task=task, img=img) diff --git a/swarms/models/__init__.py b/swarms/models/__init__.py index deac803f..b7f3b8ce 100644 --- a/swarms/models/__init__.py +++ b/swarms/models/__init__.py @@ -20,8 +20,6 @@ from swarms.models.mpt import MPT7B # noqa: E402 # MultiModal Models from swarms.models.idefics import Idefics # noqa: E402 - -# from swarms.models.kosmos_two import Kosmos # noqa: E402 from swarms.models.vilt import Vilt # noqa: E402 from swarms.models.nougat import Nougat # noqa: E402 from swarms.models.layoutlm_document_qa import LayoutLMDocumentQA # noqa: E402 @@ -30,6 +28,8 @@ from swarms.models.gpt4_vision_api import GPT4VisionAPI # noqa: E402 # from swarms.models.gpt4v import GPT4Vision # from swarms.models.dalle3 import Dalle3 # from swarms.models.distilled_whisperx import DistilWhisperModel # noqa: E402 +# from swarms.models.whisperx_model import WhisperX # noqa: E402 +# from swarms.models.kosmos_two import Kosmos # noqa: E402 __all__ = [ "Anthropic", diff --git a/swarms/models/base_multimodal_model.py b/swarms/models/base_multimodal_model.py new file mode 100644 index 00000000..54eed0ed --- /dev/null +++ b/swarms/models/base_multimodal_model.py @@ -0,0 +1,209 @@ +import asyncio +import base64 +import concurrent.futures +import time +from concurrent import ThreadPoolExecutor +from io import BytesIO +from typing import List, Optional, Tuple + +import requests +from ABC import abstractmethod +from PIL import Image + + +class BaseMultiModalModel: + def __init__( + self, + model_name: Optional[str], + temperature: Optional[int] = 0.5, + max_tokens: Optional[int] = 500, + max_workers: Optional[int] = 10, + top_p: Optional[int] = 1, + top_k: Optional[int] = 50, + device: Optional[str] = "cuda", + max_new_tokens: Optional[int] = 500, + retries: Optional[int] = 3, + ): + self.model_name = model_name + self.temperature = temperature + self.max_tokens = max_tokens + self.max_workers = max_workers + self.top_p = top_p + self.top_k = top_k + self.device = device + self.max_new_tokens = max_new_tokens + self.retries = retries + self.chat_history = [] + + + @abstractmethod + def __call__(self, text: str, img: str): + """Run the model""" + pass + + def run(self, task: str, img: str): + """Run the model""" + pass + + async def arun(self, task: str, img: str): + """Run the model asynchronously""" + pass + + def get_img_from_web(self, img: str): + """Get the image from the web""" + try: + response = requests.get(img) + response.raise_for_status() + image_pil = Image.open(BytesIO(response.content)) + return image_pil + except requests.RequestException as error: + print(f"Error fetching image from {img} and error: {error}") + return None + + def encode_img(self, img: str): + """Encode the image to base64""" + with open(img, "rb") as image_file: + return base64.b64encode(image_file.read()).decode("utf-8") + + def get_img(self, img: str): + """Get the image from the path""" + image_pil = Image.open(img) + return image_pil + + def clear_chat_history(self): + """Clear the chat history""" + self.chat_history = [] + + def run_many( + self, + tasks: List[str], + imgs: List[str], + ): + """ + Run the model on multiple tasks and images all at once using concurrent + + Args: + tasks (List[str]): List of tasks + imgs (List[str]): List of image paths + + Returns: + List[str]: List of responses + + + """ + # Instantiate the thread pool executor + with ThreadPoolExecutor(max_workers=self.max_workers) as executor: + results = executor.map(self.run, tasks, imgs) + + # Print the results for debugging + for result in results: + print(result) + + + def run_batch(self, tasks_images: List[Tuple[str, str]]) -> List[str]: + """Process a batch of tasks and images""" + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = [ + executor.submit(self.run, task, img) + for task, img in tasks_images + ] + results = [future.result() for future in futures] + return results + + async def run_batch_async( + self, tasks_images: List[Tuple[str, str]] + ) -> List[str]: + """Process a batch of tasks and images asynchronously""" + loop = asyncio.get_event_loop() + futures = [ + loop.run_in_executor(None, self.run, task, img) + for task, img in tasks_images + ] + return await asyncio.gather(*futures) + + async def run_batch_async_with_retries( + self, tasks_images: List[Tuple[str, str]] + ) -> List[str]: + """Process a batch of tasks and images asynchronously with retries""" + loop = asyncio.get_event_loop() + futures = [ + loop.run_in_executor(None, self.run_with_retries, task, img) + for task, img in tasks_images + ] + return await asyncio.gather(*futures) + + def unique_chat_history(self): + """Get the unique chat history""" + return list(set(self.chat_history)) + + def run_with_retries(self, task: str, img: str): + """Run the model with retries""" + for i in range(self.retries): + try: + return self.run(task, img) + except Exception as error: + print(f"Error with the request {error}") + continue + + def run_batch_with_retries(self, tasks_images: List[Tuple[str, str]]): + """Run the model with retries""" + for i in range(self.retries): + try: + return self.run_batch(tasks_images) + except Exception as error: + print(f"Error with the request {error}") + continue + + def _tokens_per_second(self) -> float: + """Tokens per second""" + elapsed_time = self.end_time - self.start_time + if elapsed_time == 0: + return float("inf") + return self._num_tokens() / elapsed_time + + def _time_for_generation(self, task: str) -> float: + """Time for Generation""" + self.start_time = time.time() + self.run(task) + self.end_time = time.time() + return self.end_time - self.start_time + + @abstractmethod + def generate_summary(self, text: str) -> str: + """Generate Summary""" + pass + + def set_temperature(self, value: float): + """Set Temperature""" + self.temperature = value + + def set_max_tokens(self, value: int): + """Set new max tokens""" + self.max_tokens = value + + def get_generation_time(self) -> float: + """Get generation time""" + if self.start_time and self.end_time: + return self.end_time - self.start_time + return 0 + + def get_chat_history(self): + """Get the chat history""" + return self.chat_history + + def get_unique_chat_history(self): + """Get the unique chat history""" + return list(set(self.chat_history)) + + def get_chat_history_length(self): + """Get the chat history length""" + return len(self.chat_history) + + def get_unique_chat_history_length(self): + """Get the unique chat history length""" + return len(list(set(self.chat_history))) + + def get_chat_history_tokens(self): + """Get the chat history tokens""" + return self._num_tokens() + \ No newline at end of file diff --git a/swarms/models/fuyu.py b/swarms/models/fuyu.py index ed955260..79dc1c47 100644 --- a/swarms/models/fuyu.py +++ b/swarms/models/fuyu.py @@ -63,9 +63,9 @@ class Fuyu: def __call__(self, text: str, img: str): """Call the model with text and img paths""" - image_pil = Image.open(img) + img = self.get_img(img) model_inputs = self.processor( - text=text, images=[image_pil], device=self.device_map + text=text, images=[img], device=self.device_map ) for k, v in model_inputs.items(): @@ -79,13 +79,13 @@ class Fuyu: ) return print(str(text)) - def get_img_from_web(self, img_url: str): + def get_img_from_web(self, img: str): """Get the image from the web""" try: - response = requests.get(img_url) + response = requests.get(img) response.raise_for_status() image_pil = Image.open(BytesIO(response.content)) return image_pil except requests.RequestException as error: - print(f"Error fetching image from {img_url} and error: {error}") + print(f"Error fetching image from {img} and error: {error}") return None diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 2a242670..8cf9371d 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -114,7 +114,6 @@ class GPT4VisionAPI: except Exception as error: print(f"Error with the request: {error}") raise error - # Function to handle vision tasks def __call__(self, task: str, img: str): """Run the model.""" diff --git a/swarms/models/kosmos_two.py b/swarms/models/kosmos_two.py index c696ef34..7e9da590 100644 --- a/swarms/models/kosmos_two.py +++ b/swarms/models/kosmos_two.py @@ -18,38 +18,31 @@ def is_overlapping(rect1, rect2): class Kosmos: """ + Kosmos model by Yen-Chun Shieh + + Parameters + ---------- + model_name : str + Path to the pretrained model + + Examples + -------- + >>> kosmos = Kosmos() + >>> kosmos("Hello, my name is", "path/to/image.png") - Args: - - - # Initialize Kosmos - kosmos = Kosmos() - - # Perform multimodal grounding - kosmos.multimodal_grounding("Find the red apple in the image.", "https://example.com/apple.jpg") - - # Perform referring expression comprehension - kosmos.referring_expression_comprehension("Show me the green bottle.", "https://example.com/bottle.jpg") - - # Generate referring expressions - kosmos.referring_expression_generation("It is on the table.", "https://example.com/table.jpg") - - # Perform grounded visual question answering - kosmos.grounded_vqa("What is the color of the car?", "https://example.com/car.jpg") - - # Generate grounded image caption - kosmos.grounded_image_captioning("https://example.com/beach.jpg") """ def __init__( self, model_name="ydshieh/kosmos-2-patch14-224", + *args, + **kwargs, ): self.model = AutoModelForVision2Seq.from_pretrained( - model_name, trust_remote_code=True + model_name, trust_remote_code=True, *args, **kwargs ) self.processor = AutoProcessor.from_pretrained( - model_name, trust_remote_code=True + model_name, trust_remote_code=True, *args, **kwargs ) def get_image(self, url): diff --git a/swarms/models/whisperx.py b/swarms/models/whisperx_model.py similarity index 85% rename from swarms/models/whisperx.py rename to swarms/models/whisperx_model.py index 338971da..883c3edb 100644 --- a/swarms/models/whisperx.py +++ b/swarms/models/whisperx_model.py @@ -2,7 +2,7 @@ import os import subprocess try: - import whisperx + import swarms.models.whisperx_model as whisperx_model from pydub import AudioSegment from pytube import YouTube except Exception as error: @@ -66,17 +66,17 @@ class WhisperX: compute_type = "float16" # 1. Transcribe with original Whisper (batched) 🗣️ - model = whisperx.load_model( + model = whisperx_model.load_model( "large-v2", device, compute_type=compute_type ) - audio = whisperx.load_audio(audio_file) + audio = whisperx_model.load_audio(audio_file) result = model.transcribe(audio, batch_size=batch_size) # 2. Align Whisper output 🔍 - model_a, metadata = whisperx.load_align_model( + model_a, metadata = whisperx_model.load_align_model( language_code=result["language"], device=device ) - result = whisperx.align( + result = whisperx_model.align( result["segments"], model_a, metadata, @@ -86,7 +86,7 @@ class WhisperX: ) # 3. Assign speaker labels 🏷️ - diarize_model = whisperx.DiarizationPipeline( + diarize_model = whisperx_model.DiarizationPipeline( use_auth_token=self.hf_api_key, device=device ) diarize_model(audio_file) @@ -99,16 +99,16 @@ class WhisperX: print("The key 'segments' is not found in the result.") def transcribe(self, audio_file): - model = whisperx.load_model("large-v2", self.device, self.compute_type) - audio = whisperx.load_audio(audio_file) + model = whisperx_model.load_model("large-v2", self.device, self.compute_type) + audio = whisperx_model.load_audio(audio_file) result = model.transcribe(audio, batch_size=self.batch_size) # 2. Align Whisper output 🔍 - model_a, metadata = whisperx.load_align_model( + model_a, metadata = whisperx_model.load_align_model( language_code=result["language"], device=self.device ) - result = whisperx.align( + result = whisperx_model.align( result["segments"], model_a, metadata, @@ -118,7 +118,7 @@ class WhisperX: ) # 3. Assign speaker labels 🏷️ - diarize_model = whisperx.DiarizationPipeline( + diarize_model = whisperx_model.DiarizationPipeline( use_auth_token=self.hf_api_key, device=self.device ) diff --git a/tests/models/test_whisperx.py b/tests/models/test_whisperx.py index 5fad3431..ed671cb2 100644 --- a/tests/models/test_whisperx.py +++ b/tests/models/test_whisperx.py @@ -7,7 +7,7 @@ import pytest import whisperx from pydub import AudioSegment from pytube import YouTube -from swarms.models.whisperx import WhisperX +from swarms.models.whisperx_model import WhisperX # Fixture to create a temporary directory for testing From 95ff1f8be09e794c6f23c979ba4e7afd8cddd06b Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Sat, 25 Nov 2023 09:01:38 -0700 Subject: [PATCH 25/47] pytest clednup --- .github/workflows/pr_request_checks.yml | 6 ++++-- .github/workflows/python-package.yml | 2 +- .github/workflows/testing.yml | 6 ++++-- .github/workflows/unit-test.yml | 8 +++++--- CONTRIBUTING.md | 17 ++++++++--------- code_quality.sh | 2 +- tests/Dockerfile | 2 +- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.github/workflows/pr_request_checks.yml b/.github/workflows/pr_request_checks.yml index ad7b691f..2b91f9a3 100644 --- a/.github/workflows/pr_request_checks.yml +++ b/.github/workflows/pr_request_checks.yml @@ -20,9 +20,11 @@ jobs: python-version: 3.x - name: Install dependencies - run: pip install -r requirements.txt + run: | + pip install -r requirements.txt + pip install pytest - name: Run tests and checks run: | - find tests/ -name "*.py" | xargs pytest + pytest pylint swarms diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b8e0a17a..de09fd0b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -38,4 +38,4 @@ jobs: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | - find ./tests -name '*.py' -exec pytest {} \; + pytest \ No newline at end of file diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index c2c805f5..ae572d22 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -19,7 +19,9 @@ jobs: python-version: 3.x - name: Install dependencies - run: pip install -r requirements.txt + run: | + pip install -r requirements.txt + pip install pytest - name: Run unit tests - run: find tests/ -name "*.py" | xargs pytest \ No newline at end of file + run: pytest \ No newline at end of file diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 42ac2271..c68e49b6 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -21,13 +21,15 @@ jobs: python-version: '3.10' - name: Install dependencies - run: pip install -r requirements.txt + run: | + pip install -r requirements.txt + pip install pytest - name: Run Python unit tests - run: python3 -m unittest tests/ + run: pytest - name: Verify that the Docker image for the action builds run: docker build . --file Dockerfile - name: Verify integration test results - run: find tests/ -name "*.py" | xargs pytest + run: pytest diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8230322d..21f4b51c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,7 +72,6 @@ pre-commit --version Now when you make a git commit, the black code formatter and ruff linter will run. - Furthermore, we have integrated a pre-commit GitHub Action into our workflow. This means that with every pull request opened, the pre-commit checks will be automatically enforced, streamlining the code review process and ensuring that all contributions adhere to our quality standards. To run the pre-commit tool, follow these steps: @@ -124,13 +123,13 @@ You can learn more about mkdocs on the [mkdocs website](https://www.mkdocs.org/) ## 🧪 tests - Run all the tests in the tests folder -`find ./tests -name '*.py' -exec pytest {} \;` - + ```pytest``` + ## Code Quality -`quality.sh` runs 4 different code formatters for ultra reliable code cleanup using Autopep8, Black, Ruff, YAPF +`code-quality.sh` runs 4 different code formatters for ultra reliable code cleanup using Autopep8, Black, Ruff, YAPF 1. Open your terminal. -2. Change directory to where `quality.sh` is located using `cd` command: +2. Change directory to where `code-quality.sh` is located using `cd` command: ```sh cd /path/to/directory ``` @@ -142,17 +141,17 @@ You can learn more about mkdocs on the [mkdocs website](https://www.mkdocs.org/) 4. Run the script: ```sh - ./quality.sh + ./code-quality.sh ``` If the script requires administrative privileges, you might need to run it with `sudo`: ```sh -sudo ./quality.sh +sudo ./code-quality.sh ``` -Please replace `/path/to/directory` with the actual path where the `quality.sh` script is located on your system. +Please replace `/path/to/directory` with the actual path where the `code-quality.sh` script is located on your system. -If you're asking for a specific content or functionality inside `quality.sh` related to YAPF or other code quality tools, you would need to edit the `quality.sh` script to include the desired commands, such as running YAPF on a directory. The contents of `quality.sh` would dictate exactly what happens when you run it. +If you're asking for a specific content or functionality inside `code-quality.sh` related to YAPF or other code quality tools, you would need to edit the `code-quality.sh` script to include the desired commands, such as running YAPF on a directory. The contents of `code-quality.sh` would dictate exactly what happens when you run it. ## 📄 license diff --git a/code_quality.sh b/code_quality.sh index 1c8c95b5..90153258 100755 --- a/code_quality.sh +++ b/code_quality.sh @@ -13,7 +13,7 @@ black --experimental-string-processing swarms/ # Run ruff on the 'swarms' directory. # Add any additional flags if needed according to your version of ruff. -#ruff --unsafe_fix +ruff --unsafe_fix # YAPF yapf --recursive --in-place --verbose --style=google --parallel swarms diff --git a/tests/Dockerfile b/tests/Dockerfile index 4bec42c1..f6e46515 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -29,4 +29,4 @@ RUN pip install swarms RUN pip install pytest # Run pytest on all tests in the tests directory -CMD find ./tests -name '*.py' -exec pytest {} + +CMD pytest From 58d8f61b9c9084bc75c8dfd3cd99bb7d472a82c2 Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Sat, 25 Nov 2023 09:04:18 -0700 Subject: [PATCH 26/47] python-publish fix --- .github/workflows/python-publish.yml | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 66beff23..9fc16341 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -13,20 +13,20 @@ jobs: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install build - - name: Build package - run: python -m build - - name: Publish package - uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e - with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + - name: Build package + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} From eea1a6702efba176ca8e0a975d84dac28cf36e31 Mon Sep 17 00:00:00 2001 From: evelynmitchell Date: Sat, 25 Nov 2023 09:10:58 -0700 Subject: [PATCH 27/47] boosted python version to 3.10 for pytorch --- pyproject.toml | 4 ++-- tests/Dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index dcad7e7e..bac55bc6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,11 +18,11 @@ classifiers = [ "Intended Audience :: Developers", "Topic :: Scientific/Engineering :: Artificial Intelligence", "License :: OSI Approved :: MIT License", - "Programming Language :: Python :: 3.6" + "Programming Language :: Python :: 3.10" ] [tool.poetry.dependencies] -python = "^3.8.1" +python = "^3.10.1" torch = "2.1.1" transformers = "*" openai = "0.28.0" diff --git a/tests/Dockerfile b/tests/Dockerfile index f6e46515..f575f599 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,7 +1,7 @@ # TESTING # -================== # Use an official Python runtime as a parent image -FROM python:3.9-slim +FROM python:3.10-slim # Set environment variables to make Python output unbuffered and disable the PIP cache ENV PYTHONDONTWRITEBYTECODE 1 From f895497f882344ccb238580df66a1c86867f72af Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 12:27:52 -0800 Subject: [PATCH 28/47] FEAT: [BEAUTIFY in GPT4Vision][Disable logging in __init__ of swarms] --- swarms/__init__.py | 16 ++------------ swarms/models/base_multimodal_model.py | 8 ++++++- swarms/models/gpt4_vision_api.py | 29 +++++++++++++++++++++----- swarms/utils/disable_logging.py | 25 ++++++++++++++++++++++ 4 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 swarms/utils/disable_logging.py diff --git a/swarms/__init__.py b/swarms/__init__.py index d876c04e..9ceb78f2 100644 --- a/swarms/__init__.py +++ b/swarms/__init__.py @@ -1,18 +1,6 @@ -import logging -import os -import warnings +from swarms.utils.disable_logging import disable_logging -warnings.filterwarnings("ignore", category=UserWarning) - -# disable tensorflow warnings -os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" - -try: - log = logging.getLogger("pytorch") - log.propagate = False - log.setLevel(logging.ERROR) -except Exception as error: - print(f"Pytorch logging not disabled: {error}") +disable_logging() from swarms.agents import * # noqa: E402, F403 from swarms.swarms import * # noqa: E402, F403 diff --git a/swarms/models/base_multimodal_model.py b/swarms/models/base_multimodal_model.py index 54eed0ed..9f451be0 100644 --- a/swarms/models/base_multimodal_model.py +++ b/swarms/models/base_multimodal_model.py @@ -20,6 +20,7 @@ class BaseMultiModalModel: max_workers: Optional[int] = 10, top_p: Optional[int] = 1, top_k: Optional[int] = 50, + beautify: Optional[bool] = False, device: Optional[str] = "cuda", max_new_tokens: Optional[int] = 500, retries: Optional[int] = 3, @@ -30,6 +31,7 @@ class BaseMultiModalModel: self.max_workers = max_workers self.top_p = top_p self.top_k = top_k + self.beautify = beautify self.device = device self.max_new_tokens = max_new_tokens self.retries = retries @@ -206,4 +208,8 @@ class BaseMultiModalModel: def get_chat_history_tokens(self): """Get the chat history tokens""" return self._num_tokens() - \ No newline at end of file + + def print_beautiful(self, content: str, color: str = "cyan"): + """Print Beautifully with termcolor""" + content = colored(content, color) + print(content) \ No newline at end of file diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 8cf9371d..6a8b8eb8 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -1,3 +1,4 @@ +import logging import asyncio import base64 import concurrent.futures @@ -54,16 +55,27 @@ class GPT4VisionAPI: self, openai_api_key: str = openai_api_key, model_name: str = "gpt-4-vision-preview", + logging_enabled: bool = False, max_workers: int = 10, max_tokens: str = 300, openai_proxy: str = "https://api.openai.com/v1/chat/completions", + beautify: bool = False ): super().__init__() self.openai_api_key = openai_api_key + self.logging_enabled = logging_enabled self.model_name = model_name self.max_workers = max_workers self.max_tokens = max_tokens self.openai_proxy = openai_proxy + self.beautify = beautify + + if self.logging_enabled: + logging.basicConfig(level=logging.DEBUG) + else: + # Disable debug logs for requests and urllib3 + logging.getLogger("requests").setLevel(logging.WARNING) + logging.getLogger("urllib3").setLevel(logging.WARNING) def encode_image(self, img: str): """Encode image to base64.""" @@ -83,7 +95,7 @@ class GPT4VisionAPI: "Authorization": f"Bearer {openai_api_key}", } payload = { - "model": self.model_name, + "model": "gpt-4-vision-preview", "messages": [ { "role": "user", @@ -103,14 +115,18 @@ class GPT4VisionAPI: "max_tokens": self.max_tokens, } response = requests.post( - "https://api.openai.com/v1/chat/completions", + self.openai_proxy, headers=headers, json=payload, ) out = response.json() content = out["choices"][0]["message"]["content"] - print(content) + + if self.beautify: + content = colored(content, "cyan") + else: + print(content) except Exception as error: print(f"Error with the request: {error}") raise error @@ -151,11 +167,14 @@ class GPT4VisionAPI: out = response.json() content = out["choices"][0]["message"]["content"] - print(content) + + if self.beautify: + content = colored(content, "cyan") + else: + print(content) except Exception as error: print(f"Error with the request: {error}") raise error - # Function to handle vision tasks def run_many( self, diff --git a/swarms/utils/disable_logging.py b/swarms/utils/disable_logging.py new file mode 100644 index 00000000..5b6ec675 --- /dev/null +++ b/swarms/utils/disable_logging.py @@ -0,0 +1,25 @@ + +import logging +import os +import warnings + +def disable_logging(): + warnings.filterwarnings("ignore", category=UserWarning) + + # disable tensorflow warnings + os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" + + + # Set the logging level for the entire module + logging.basicConfig(level=logging.WARNING) + + try: + log = logging.getLogger("pytorch") + log.propagate = False + log.setLevel(logging.ERROR) + except Exception as error: + print(f"Pytorch logging not disabled: {error}") + + for logger_name in ['tensorflow', 'h5py', 'numexpr', 'git', 'wandb.docker.auth']: + logger = logging.getLogger(logger_name) + logger.setLevel(logging.WARNING) # Supress DEBUG and info logs From a92a6a5c1349571d9eba16747808231bb1807e1a Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 14:26:20 -0800 Subject: [PATCH 29/47] [FEAT][Flow.run() img = None for conditional img inputs, BaseMultiModalModel, and multi modal swarms of manufacturing agents --- example.py | 12 ++ multi_modal_auto_agent.py | 4 + playground/demos/idea_2_img/main.py | 7 ++ .../demos/swarm_of_mma_manufacturing/main.py | 15 +++ swarms/models/base_multimodal_model.py | 46 +++++--- swarms/models/gpt4_vision_api.py | 108 +++++++++++++++++- swarms/models/kosmos_two.py | 2 +- swarms/models/whisperx_model.py | 4 +- swarms/structs/flow.py | 6 +- swarms/utils/disable_logging.py | 13 ++- 10 files changed, 189 insertions(+), 28 deletions(-) create mode 100644 playground/demos/idea_2_img/main.py create mode 100644 playground/demos/swarm_of_mma_manufacturing/main.py diff --git a/example.py b/example.py index ab496b77..06b5d5f2 100644 --- a/example.py +++ b/example.py @@ -1,9 +1,21 @@ +import os + +from dotenv import load_dotenv + +# Import the OpenAIChat model and the Flow struct from swarms.models import OpenAIChat from swarms.structs import Flow +# Load the environment variables +load_dotenv() + +# Get the API key from the environment +api_key = os.environ.get("OPENAI_API_KEY") + # Initialize the language model llm = OpenAIChat( temperature=0.5, + openai_api_key=api_key, ) diff --git a/multi_modal_auto_agent.py b/multi_modal_auto_agent.py index 0ed2f42f..3e0a05cc 100644 --- a/multi_modal_auto_agent.py +++ b/multi_modal_auto_agent.py @@ -1,5 +1,8 @@ from swarms.structs import Flow from swarms.models.gpt4_vision_api import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) llm = GPT4VisionAPI() @@ -10,6 +13,7 @@ img = "images/swarms.jpeg" ## Initialize the workflow flow = Flow( llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, max_loops="auto", ) diff --git a/playground/demos/idea_2_img/main.py b/playground/demos/idea_2_img/main.py new file mode 100644 index 00000000..84ce67ab --- /dev/null +++ b/playground/demos/idea_2_img/main.py @@ -0,0 +1,7 @@ +""" +Idea 2 img + +task -> gpt4 text -> dalle3 img -> gpt4vision img + text analyze img -> dalle3 img -> loop + +""" +from swarms.models.gpt4_vision_api import GPT4VisionAPI diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py new file mode 100644 index 00000000..ebb00768 --- /dev/null +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -0,0 +1,15 @@ +""" +Swarm of multi modal autonomous agents for manufacturing! +--------------------------------------------------------- +Health Security agent: Agent that monitors the health of working conditions: input image of factory output: health safety index 0.0 - 1.0 being the highest +Quality Control agent: Agent that monitors the quality of the product: input image of product output: quality index 0.0 - 1.0 being the highest +Productivity agent: Agent that monitors the productivity of the factory: input image of factory output: productivity index 0.0 - 1.0 being the highest +Safety agent: Agent that monitors the safety of the factory: input image of factory output: safety index 0.0 - 1.0 being the highest +Security agent: Agent that monitors the security of the factory: input image of factory output: security index 0.0 - 1.0 being the highest +Sustainability agent: Agent that monitors the sustainability of the factory: input image of factory output: sustainability index 0.0 - 1.0 being the highest +Efficiency agent: Agent that monitors the efficiency of the factory: input image of factory output: efficiency index 0.0 - 1.0 being the highest + + +Flow: +health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent +""" diff --git a/swarms/models/base_multimodal_model.py b/swarms/models/base_multimodal_model.py index 9f451be0..e5671917 100644 --- a/swarms/models/base_multimodal_model.py +++ b/swarms/models/base_multimodal_model.py @@ -1,3 +1,4 @@ +from abc import abstractmethod import asyncio import base64 import concurrent.futures @@ -7,8 +8,8 @@ from io import BytesIO from typing import List, Optional, Tuple import requests -from ABC import abstractmethod from PIL import Image +from termcolor import colored class BaseMultiModalModel: @@ -37,7 +38,6 @@ class BaseMultiModalModel: self.retries = retries self.chat_history = [] - @abstractmethod def __call__(self, text: str, img: str): """Run the model""" @@ -61,17 +61,17 @@ class BaseMultiModalModel: except requests.RequestException as error: print(f"Error fetching image from {img} and error: {error}") return None - + def encode_img(self, img: str): """Encode the image to base64""" with open(img, "rb") as image_file: return base64.b64encode(image_file.read()).decode("utf-8") - + def get_img(self, img: str): """Get the image from the path""" image_pil = Image.open(img) return image_pil - + def clear_chat_history(self): """Clear the chat history""" self.chat_history = [] @@ -87,11 +87,11 @@ class BaseMultiModalModel: Args: tasks (List[str]): List of tasks imgs (List[str]): List of image paths - + Returns: List[str]: List of responses - - + + """ # Instantiate the thread pool executor with ThreadPoolExecutor(max_workers=self.max_workers) as executor: @@ -101,7 +101,6 @@ class BaseMultiModalModel: for result in results: print(result) - def run_batch(self, tasks_images: List[Tuple[str, str]]) -> List[str]: """Process a batch of tasks and images""" with concurrent.futures.ThreadPoolExecutor() as executor: @@ -133,11 +132,11 @@ class BaseMultiModalModel: for task, img in tasks_images ] return await asyncio.gather(*futures) - + def unique_chat_history(self): """Get the unique chat history""" return list(set(self.chat_history)) - + def run_with_retries(self, task: str, img: str): """Run the model with retries""" for i in range(self.retries): @@ -146,7 +145,7 @@ class BaseMultiModalModel: except Exception as error: print(f"Error with the request {error}") continue - + def run_batch_with_retries(self, tasks_images: List[Tuple[str, str]]): """Run the model with retries""" for i in range(self.retries): @@ -188,28 +187,37 @@ class BaseMultiModalModel: if self.start_time and self.end_time: return self.end_time - self.start_time return 0 - + def get_chat_history(self): """Get the chat history""" return self.chat_history - + def get_unique_chat_history(self): """Get the unique chat history""" return list(set(self.chat_history)) - + def get_chat_history_length(self): """Get the chat history length""" return len(self.chat_history) - + def get_unique_chat_history_length(self): """Get the unique chat history length""" return len(list(set(self.chat_history))) - + def get_chat_history_tokens(self): """Get the chat history tokens""" return self._num_tokens() - + def print_beautiful(self, content: str, color: str = "cyan"): """Print Beautifully with termcolor""" content = colored(content, color) - print(content) \ No newline at end of file + print(content) + + def stream(self, content: str): + """Stream the output + + Args: + content (str): _description_ + """ + for chunk in content: + print(chunk) diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 6a8b8eb8..869cde1a 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -1,6 +1,7 @@ -import logging +import logging import asyncio import base64 +from typing import Optional import concurrent.futures from termcolor import colored import json @@ -12,6 +13,13 @@ import aiohttp import requests from dotenv import load_dotenv + +try: + import cv2 +except ImportError: + print("OpenCV not installed. Please install OpenCV to use this model.") + raise ImportError + # Load environment variables load_dotenv() openai_api_key = os.getenv("OPENAI_API_KEY") @@ -59,7 +67,8 @@ class GPT4VisionAPI: max_workers: int = 10, max_tokens: str = 300, openai_proxy: str = "https://api.openai.com/v1/chat/completions", - beautify: bool = False + beautify: bool = False, + streaming_enabled: Optional[bool] = False, ): super().__init__() self.openai_api_key = openai_api_key @@ -69,6 +78,7 @@ class GPT4VisionAPI: self.max_tokens = max_tokens self.openai_proxy = openai_proxy self.beautify = beautify + self.streaming_enabled = streaming_enabled if self.logging_enabled: logging.basicConfig(level=logging.DEBUG) @@ -123,14 +133,101 @@ class GPT4VisionAPI: out = response.json() content = out["choices"][0]["message"]["content"] + if self.streaming_enabled: + content = self.stream_response(content) + else: + pass + if self.beautify: content = colored(content, "cyan") + print(content) else: print(content) + except Exception as error: print(f"Error with the request: {error}") raise error + def video_prompt(self, frames): + """ + SystemPrompt is a class that generates a prompt for the user to respond to. + The prompt is generated based on the current state of the system. + + Parameters + ---------- + frames : list + A list of base64 frames + + Returns + ------- + PROMPT : str + The system prompt + + Examples + -------- + + >>> from swarms.models import GPT4VisionAPI + >>> llm = GPT4VisionAPI() + >>> video = "video.mp4" + >>> base64_frames = llm.process_video(video) + >>> prompt = llm.video_prompt(base64_frames) + >>> print(prompt) + + """ + PROMPT = f""" + These are frames from a video that I want to upload. Generate a compelling description that I can upload along with the video: + + {frames} + """ + return PROMPT + + def stream_response(self, content: str): + """Stream the response of the output + + Args: + content (str): _description_ + """ + for chunk in content: + print(chunk) + + def process_video(self, video: str): + """ + Process a video into a list of base64 frames + + Parameters + ---------- + video : str + The path to the video file + + Returns + ------- + base64_frames : list + A list of base64 frames + + Examples + -------- + >>> from swarms.models import GPT4VisionAPI + >>> llm = GPT4VisionAPI() + >>> video = "video.mp4" + >>> base64_frames = llm.process_video(video) + + """ + video = cv2.VideoCapture(video) + + base64_frames = [] + while video.isOpened(): + success, frame = video.read() + if not success: + break + _, buffer = cv2.imencode(".jpg", frame) + base64_frames.append(base64.b64encode(buffer).decode("utf-8")) + + video.release() + print(len(base64_frames), "frames read.") + + for img in base64_frames: + base64.b64decode(img.encode("utf-8")) + def __call__(self, task: str, img: str): """Run the model.""" try: @@ -168,10 +265,17 @@ class GPT4VisionAPI: out = response.json() content = out["choices"][0]["message"]["content"] + if self.streaming_enabled: + content = self.stream_response(content) + else: + pass + if self.beautify: content = colored(content, "cyan") + print(content) else: print(content) + except Exception as error: print(f"Error with the request: {error}") raise error diff --git a/swarms/models/kosmos_two.py b/swarms/models/kosmos_two.py index 7e9da590..99998287 100644 --- a/swarms/models/kosmos_two.py +++ b/swarms/models/kosmos_two.py @@ -24,7 +24,7 @@ class Kosmos: ---------- model_name : str Path to the pretrained model - + Examples -------- >>> kosmos = Kosmos() diff --git a/swarms/models/whisperx_model.py b/swarms/models/whisperx_model.py index 883c3edb..338db6e3 100644 --- a/swarms/models/whisperx_model.py +++ b/swarms/models/whisperx_model.py @@ -99,7 +99,9 @@ class WhisperX: print("The key 'segments' is not found in the result.") def transcribe(self, audio_file): - model = whisperx_model.load_model("large-v2", self.device, self.compute_type) + model = whisperx_model.load_model( + "large-v2", self.device, self.compute_type + ) audio = whisperx_model.load_audio(audio_file) result = model.transcribe(audio, batch_size=self.batch_size) diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index 47740f73..e0079199 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -498,7 +498,7 @@ class Flow: ) print(error) - def run(self, task: str, img: Optional[str], **kwargs): + def run(self, task: Optional[str], img: Optional[str] = None, **kwargs): """ Run the autonomous agent loop @@ -528,7 +528,11 @@ class Flow: self.print_dashboard(task) loop_count = 0 + + # While the max_loops is auto or the loop count is less than the max_loops while self.max_loops == "auto" or loop_count < self.max_loops: + + # Loop count loop_count += 1 print( colored(f"\nLoop {loop_count} of {self.max_loops}", "blue") diff --git a/swarms/utils/disable_logging.py b/swarms/utils/disable_logging.py index 5b6ec675..d1c7df9b 100644 --- a/swarms/utils/disable_logging.py +++ b/swarms/utils/disable_logging.py @@ -1,15 +1,14 @@ - import logging import os import warnings + def disable_logging(): warnings.filterwarnings("ignore", category=UserWarning) # disable tensorflow warnings os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" - # Set the logging level for the entire module logging.basicConfig(level=logging.WARNING) @@ -20,6 +19,12 @@ def disable_logging(): except Exception as error: print(f"Pytorch logging not disabled: {error}") - for logger_name in ['tensorflow', 'h5py', 'numexpr', 'git', 'wandb.docker.auth']: + for logger_name in [ + "tensorflow", + "h5py", + "numexpr", + "git", + "wandb.docker.auth", + ]: logger = logging.getLogger(logger_name) - logger.setLevel(logging.WARNING) # Supress DEBUG and info logs + logger.setLevel(logging.WARNING) # Supress DEBUG and info logs From 75f3cf1de0470ca3d9717b7e81a62b2bd40636c8 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 14:26:37 -0800 Subject: [PATCH 30/47] new verison --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index dcad7e7e..0b5a1930 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "swarms" -version = "2.4.1" +version = "2.4.2" description = "Swarms - Pytorch" license = "MIT" authors = ["Kye Gomez "] From f6a618dedd25c937ce835bbaeccae84062ba0602 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 14:31:38 -0800 Subject: [PATCH 31/47] example py in readme --- README.md | 41 ++++++++++++++++++--------- playground/demos/assembly/assembly.py | 4 ++- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 2e3adbd4..d60a110a 100644 --- a/README.md +++ b/README.md @@ -34,28 +34,35 @@ Run example in Collab: Date: Sat, 25 Nov 2023 16:45:19 -0800 Subject: [PATCH 32/47] swarm of mma manufacturing demos --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0b5a1930..0203391c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "swarms" -version = "2.4.2" +version = "2.4.3" description = "Swarms - Pytorch" license = "MIT" authors = ["Kye Gomez "] From b457511bde7d4d5ce19df4f16b2108e8fb089269 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 19:02:43 -0800 Subject: [PATCH 33/47] [DEMO][Swarm of MultiModalityRobots][sequential_workflow with images --- .../assembly_line.jpg | Bin 0 -> 41905 bytes .../swarm_of_mma_manufacturing/flow_iter.py | 129 ++++++++++++++++++ .../demos/swarm_of_mma_manufacturing/main.py | 122 +++++++++++++++++ .../swarm_of_mma_manufacturing/red_robots.jpg | Bin 0 -> 44298 bytes .../swarm_of_mma_manufacturing/robots.jpg | Bin 0 -> 39565 bytes .../tesla_assembly.jpg | Bin 0 -> 42533 bytes pyproject.toml | 2 +- swarms/models/base_multimodal_model.py | 43 ++++++ swarms/models/gpt4_vision_api.py | 25 ++-- swarms/structs/flow.py | 63 +++++---- swarms/structs/sequential_workflow.py | 62 ++++++--- 11 files changed, 396 insertions(+), 50 deletions(-) create mode 100644 playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/flow_iter.py create mode 100644 playground/demos/swarm_of_mma_manufacturing/red_robots.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/robots.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg diff --git a/playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg b/playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e9a0fff53bcdc9e0cdbe57acefefa304842802a GIT binary patch literal 41905 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%0Ar9lel>^UO%~D{IH!tf7UEfVHME=9 z2+3wHtiv1}`RBWXL({IbnB=~aYipRdv`rJH#fgsMuC3qk{{RZ+bv3p#TiC$ywT7F%d6`1) zncL@LSvWc4u1_vXK zglE#InnD9xeiV$!uW8u8F^h?TAP@>diQNcXKJXv1VgA$*Xo z@0G#A;~w>a;|b+m4oKcuTg|+-Tt+a&jqlER>?j%Lw4~BeK!gPP*K6QuZrbu|QF9=- zlGg2vMcd0)K@bkOIS1xF2(Bi&?+oVN((2|0Ch^444ZFW}0|njFyAk?((JAsPvZEI# zWP1jeeHFc}t&xjzz=0xoPT2yFyhuIzp1;nh_?@Dj*5rMLNoOdZWxGgJhYS_MNaSOV zL9ajX?zMeutXkU{WR}+Me?l4GKQ$)`B3<+{eam21cctD(cP-40 z>hA*ETieJ6B@i?!O0zf2dEoskRh}j7A^H(j2&S$@SvbC1Y>qol@T|)5%Y0iZLkN*W zE_(dUnvUKWKFe;xG~CH4mG*$d2_4_&^v2cy0D=2gSuN;{HWAMUx{lS%>DD@fv=;V| zn}?ZYw`+6&ypp~qep}@Vxa8;fY0WEWL>q4G>U<$Ag4cw{tmkgwHUWaz9bqFn@ zSb|-_aXKrKq9%kca@_FQ_UY8-yyIBM_NBlZxVRi2qI9oCyCCYiVD7eet@*TISD{v; zr(=o`Q@Kjro_NW0@}^SDEHA^xK_FxwUZeS%e%U|gjKBBEs@G`O8q{m%%Nbi%D)F`$ zYzkB#QR*u0%l`oR?`!`6fP?=4i>9k9YD=c?p>|oVp;IK+5XTtm(ri)rv896ZPq;=l z_fX6e?--gk+n?_NoL4uj=)Z3L`~{NjMip6!jz9-Y9s%?}{<`IDF7*vA@h60su5F|n zl2zQKsmV!ExFgh7+{YKOO!qw|!EB*7^Nifi2!ROZINQEGPk(Q%S^=DvAd<%6@u(Lc1L8g61&2q_0e#co-bylUya=#Cru2eS=S$P^?v6>Q#t7JNa>f->9xzRq>aIwU{Ke zl1Qy>B;rV|5tW^Pxg?BB5$ZUn%Gl3S({=qC`r6`lxwV7ruR7eMw=o|rVPd90RQ$?u zl^}DP@{bYt&r{VeiMDeEjkB<~h;zTUnJ7KYbMnt6vuugBup4DK895(wK7y##@~)*u z>r&nBqkDeQwbX&kV1&Xdg$I-OMO31esVi(Y+uR3Q>--$Lykk=~5nIZ2YiH32nT}#J zkmhipW915aj!(661Fd(y3VAg7^sA}R{gUG5`pHXf5t-z-j!21apWg$XwKBc51#YA7 z{5bkOq-}R^ZMmPzj%JwL%*9cdgiWCrwmS6hPB7~>Ix=3^%^Vgt!2PnuS@*)?Od+`e z#`J7}dY;(yJ?-b&FVYyvU5hMpu-YA1#&Q7N?_BSQ@1%y#{?;orYg@}_hHHVH(cFE= z&<^E}F;AUx@{pqMawfUfr|~z2u5MzpkIt~YbP%+}c?_YPH=LmE9C3>3WOgHl1M#kI zM!S7)!%`UCg`S;x4a4mv1dS3X%O2+jwwg(tfHn{K4r>W(sjASFyM&N=i^v@a;|95} z63AZ4Fjx??1IPQOx*-gV4sdb~aJ_4u*X<{JKiwpfGR&l^CQjTDkOg$${o2u!?o8jh z(Z&;9wVr?B8ccQm&%4Lh_qD||R|~^KI6j6c2lTGe%Ok^4&w%>{_OqQni9#CTWCuh|QS_h{#j5mnV#lq;~(^Zo&s_9;0yrsS=Gu zGh}5z9q`%xF;l2wed$7vYL!$~>QIUw`c;KTAP;&~QC1^bU@@)a$(d2uMYuA@)uSUN zKqndFit`&eH60gMxJgn)gHtyVuw{7LYe+(u1Z~M3a8F*f>~H|l+$T-ZHV>h}9qWwL zwCQf_Ax9|Jwi3rQZlD1oqh#=ZygPb|oyJ`k)>erFHPlNKr(_aH#TB}cyPLS^ew7xr zGu~KRCPc9<^{bqn$Z{Q5BzDOi>pJe=OV#aLP8Zg2-9+gmX>#H<-ZFNb+-*5MDus@f zd!}l(QO#&A?JsU1NLCw!p59p@-7}Qf=b-16AFm2mv85|>u5E_v`k{_>(ISpB6|x7p zZL66s6*rzwVVrgKu1`>3v)dK~Z@+Ia zQ9#e7Ski9pZ#KzsaU|-}FPxJd%OSxeoQ(5;K7$p7tjLbmikxHZC4uA&+(<`WdI3^t zm!D-xI2(n$lBWEW+=yQc7n+eBj=OuIT-ii58yjSTDL_`Vj&zY-m6vE_Il=Gr_O4US z_;Nqx-st}Tz^^~}u~e_M+l%XWwUg|jO9=;(lX-=d8~|I6^_3lk)T*qI$`3oYDFFHv z$o%PCZ0N-Q01d}mJCpd{{{Zpo+0bS1tIKxUJ)=h|#EUb`Zh+X&xB=~sz&WX#cRTbLPwu_S>a@xZ2-k53csMUX)WQp^VE=X@17&k`EP@dfUU z4ZW}St(0>^EYIaEG0C4YCBZF;)bJbitesy(*Ke;)&5Vw)GAwHGeW}p877fj^Fsw_x z1I0o7sbIgl5&X*W#d$PYag(sR4t;o_3*XwF1RwJTC+ify{FOn~ybL;Mr~dsn^|`D@ z(7Z;cAK4n29f-5JApZd4l;7+>5gwX8tN#FiS3mqk0B(P5_$YMIKk@+nw-u|W_>V+L zTHe~xZDKANP}(8$UASx&keYSWp*<6qPlC7?V;u6J1lc{`)c9Uyx zqY5+EWlWN4%&4}Whg~J^l&>fJORd=8+&LDJ0k|%5L2v0=cDkjeq#=82%NZ|hS7dhH zOlx%t0nd`z!zlJA`d1A%hP+Y`vcr8TW!&+sS3A07wHt=X8{ zOaiEpNjb$#Jxwa6o~Z6y!&+XbvRzJ&()rVZ%I>AG$>gv{p3)?#4OK)9|hNQ(BmFS?F+f{v5Qm zoJkYh1{qVi)qw=(p<2^xRNIUn^YpHYOKAMVv>mwI4OVEn{G;-!in6fkP0m+mH8rei zu5#Qf9#3#8FACb;%9?fI5qSs|%!S|2Gq&zRfr0tf?c78`a@YWfW+0p#5R7_M`VE)% zZkugvC23Wnj!^81pM62v0`?zT#}O__7e+kNFS_S>W0ovQC#ff#nyaYk+Fj+N+g?af zBvfevOk-`yhWT5rDtSr7huM$mSo29Y*kpGSOf5GE)dKm16gWUnx&157!&6S}omJ%4 zi1O`gAKKTvouciBJ%HQ5uR*wbX*FwKB4n9T!sF(QUw-j9J+i- z74TpAZEQFaHb03wpF{r5cGk8~X*TT?ZN6z(myx(;^x$?Ks0gwLNf0_n868`rD*~h( z`qypsxxr)S_`;(r3<88O$P6+$83&3R1f23uQhU~ht*4zYRMf0F+ih_1#!q;U&WG|M zqJm2lWH)y2BB10({#hqH9Dsi+)I~7yMnNGs;|y>=Lqi#x46!g%_gi5^Tac^k0Rx=*c#@clL~Y-(|Hf zkrU}8&4xdKA6oPqO*YcX6t=Rrf(RoyNTEQ852*vG_c^I^8S_Qmyq1?&c9In`TTd;# zg)&sUOi-04w;WV8=sys&4Hrz*EsdJX9mVS0U*3n6rCiA-6sTd5leqOY#4WsKxhz-t z)`~5wlH`#DQA;$D#S$~gBLziKmS!ga0ba%6`%7(0!O~c27V^sqT}u(z{#(N&ZdqAR z_muQKtBLUSuzg!Xiq0*sE~91(@?Qxm$j2wp0&ChXQYdaN(MHvlRAv$Uzabf5F~&_y z*C;1_jz&1VRbr`aY&7jc2*F6DyJ;=%LUvhxRY;MjV4#?owq>Axpwf`&j^<;-?Tr z=zls<5DgI-_3C{pZH9nsX2eiNJ-V8!GQtz5Ip;NWt^xNIPUTo980%LJ(JalG)d4(y zm6zfRi|BMYB(q$~`&Eb=$c4$?KsIa=j(Cjzb!H>}k8RWLj-5Kz)pitgXDel@ z{jSC-r1J!jsS`BF5qBxcDn|rk{Q9eEHm+mx_dIVDZn7xg3lBW-#7RW=P8uy8({u4tv)$T4vQF%PSkuO$q)r3V2e- z89toW&X^UZoq!~Si9u75pP2sug=P3o*27b|b(q4;7U4yty9}~~U=~zKF_HJP>Br&J zMI3O>h_U%`@7c5{3yz#^tr8<-Nt_-kR3y}883@iWbA##u#%e^!s{+CkR$~=eYRq`| z_QflKekm3>qz979R34p1O<~-xk_65_bjre94B=1l0qlRBY+w~0fD&?PE}$)C2nYYj6v83W}x$8q@9hlOq>lUUP>vlWWwHc`OAb$Ijo z^Ih|3nhw2f6~wly6#oD`a+pFRtg)SpuYt}xaai}BAJe=)C57}8$(b*pw+kRpK5fnS zm+8k8mF_;e7Ih0bF7A9)6ikuL6gGN-$osOX5nnM>FZY4l_}3Yy>9;!0pz*?lM1(x< zq%Oov90GXB?OnE{8Ffh|Nn?y%X=<({a-L%DWnsWM#sM{#p++IKkL4jHUout)?>wE) z(~rucy!m5uw=cr|Vy&LbQ%gj$5jZf21oNW9E~#y4PDw-p^Z#Z$Fp^JWr)Vh~JR zF9%>=KsDWKntI(^yr|o5E#Z-is2Q3NGqu4u$o?L+!`ZBFEUPPRh`}(Czq+MxO-v=t z6vG#Wl?u);XR0F?u|TM{fz*tLWf7Hs?y{0MeR63At9DQN$vyZ71M#7)V_|T%it;Mw z%aMTC+fFuuG1PPTd({bAPn92N^7D;|p!?;3&+ArkJqw3Zz8U%3>ULF~K5asKi&+eX zVHYrh#|L@dGO9nFW zxoFnz;Z!c*1Cfozk7}s;z5MZrh1JA!Wff&f+eZW#f_dz0V!R`CS8bp};G^2$Hv z)rwuudQ#O6F2=Rh{m zzG2Q-j)w%*i<6|Um~6h#L+}N_T%gZlw2;}Mrc14A8ito>nw8v!>hj*)pq_2pU54U$ z=mtrx-xc0GSK6fdbn{!={h}BniYc5U5*f)0o;U+I$6tDH!-(NsQ&rSu3PzWuPc%jG zg_=fKLv!B+fcn-Zt$p_UyY2uYVIT?y4gpiZ@5ubB9<#DFjg%WNYTh)|wOcr?n#RJ; zNSz<;T6)a{&4nmcu={XxoMW|SS?U^{)}yB*UR(u|=Gh$#@`NBVf(Xxl>shP-;hQ+Y zVV>uVAEjw%5XkzKl>Sn@QQg}k7eeW}NdQnVN6plZdwW%xr_l9J3K=o0M#K_lhEN#t zpodO9xE0c}3><9+vOFtkFoN#!lnCbA6l4sRF}t%9^v(run29*SKZR*d{JM^!T-HTR znUM#qcr^^LDx7oEHKXOS$syWs6VT?Mo9{OVpz12olSWk5&`Q2ssIIJfH)GQy6*x~V zBSFy=DE0tgQ_62_F(7f!;DgwLDU4n=RF{x=SpdLqW&@$GI~b(eI`H;ek;tT@k5I$( ztc)_)Tv8RLZvsykO=n}sKPzU z#B@B5TR-tIz8UB35;i?EitV)KGTxylIMXBiGUB+Mb0<)_I2bO+BdO%|uIE6)-d%|! z4!_x!p@v95d3jbH52bWg)|)Y<@uIW1hf~&N{{WsgHw-?bZYziTLH_Zst6P)Gx!1hC z*p&^sZooe~t}~81RDal3zuq6EO*LhILZ>ZHWMX7}%uj57RV-mR8*P*M}kqZYI<&oB_NU#8I3X`!J5BOkl=}~!-{{Rk0(xgV8sb(KcQUb_G*Y6~!Kj*bbq7X(BKz|%n zKQereor&yoQm^)da;$OgMNl3~@hv18^E>CtHgZ+A&uLIl#}Yb;0|n!b?_qm%~jq z+G%g~M~~;S^6jk2JSUul$i#OfU=K{6TJEpbKQPOmoRt_H=V-yM7vXK&!KUl5O0Ssj zt=)c)4lqgjS7$t?W-a$uu=F1Fg-uzkb}F*q0tlqZMlNQMuUaR59R?a5@p%uRBMMhw`kgL|sK2T-wFvlp&?I z=+edp35fpyd=8$yJ;lY@-GM>vkdyPCPjN-8i!H6Rh;ti)Q2MB1x&12w^ILdkk_(-W zWqW2`&gB6{#ERf~iO>=ETOA1Z#cF6|ofAaQQ)-0$cQst5rLd99*$7Pf>6ac_vzI+E zqDcwnx~A~A+4ShOcGMyk$s96>gieYP)mUy~!_;=JLOutIfa~R4{{ZN6SEgzoKf~ue z{{XSASp7r^T<|LyCmHG30q-FY-ts29YfVc2dkN&XmN^_+JTJQhou}qM!baox*QZ$C zeWnW==-Ndy!yNg}7&#bzz4My!_T=Wh55pH)kkIWwvw5IPo1{s1jOTcAyz|CuUTY4T zb9Or7RI%D}2_;v$sriOYIY_M4zqv80{{UrOWHuy`Sy&$60gvlfB9yiWhHM_iHj(uV zMKvV$G?h6=f6%^}t1*%ftyfNif;b!=qw9*X9yll3nVBq)f$7Cqo??9egt6@b%PTCXP~h)Fky)NEgg=L-oZtkK7jS=vsvKk7flYyxsyr7L8Y7>a zycZC%#_AZf(W^)E91e01<6OzrrPHUm)6&<>xVD7>k8vT`DQ5>}Nyltcbg%fB!xS-z zTI%0yVl^PFhi=tk58yibRU4Ru7gA3CV7X~hFbHMBM{E&;9=XpLsG3trGkO*3P`s(T zGpo}-we^h__Wmnq3~|SC3v9Rn!Pvl!lJy_(D&lM)X(paE8<@c=fr8n{$3e-izr$L# zonxkI_7{t?(@>7%?D7^;Be__MV8@;KIT$#_Vt7(VO?Jviz%G(2C}OG!2ca#+LV}9W z(xxV+B1_sk*rL(AG2FvEYZwv@j~K!R1ET_X_2=`fdxVf2N)(=O*uY`_&U)9qYL?m_ zp%7d92NJL!=@25tI+MmkiYa^HpC>(qhV$xnqz6dC`;4ISPwUo>(Mxh7kdb;HyIfs657A zgwExTI(E zBzFpkjU2lU+o z4Et5`j0>B9Jp{4=`2$DVuhjnl$IZY$_0~`5YV4X8wFy3DoWu|Asn6?F=Ciwr_8WP@ zzgwWrIgX!+{%#KT-rl#Dge_q=(l1(QF!DI zG2iheWZW7-PDx7aO;qPqm2tyrF|p(ik{rs%pG;O~_T1m|(EfEMuYDEG;Fi#rONYE@ zPSOkct>rJud99E5LC^Q8Uy>;?^7FT2*KvYr!H#=WWROiX9%wNqE_;DZ-OoykaLy^? zVd^LXQ0h95%A^jQe6RXcArsJkbuuav12zZKG{Bi&41gh!la7QAeuAwlFc?^zekwn$ zK^z5gW0^M|nHm1IC`+&p@1y?!z6t)dpb%f!Tk3X~R##B&g5?Zv^DgD|b;odUMR*U0 zv`gI!QJT)+1CO2=RD82S#D$T6ksXMyq8H5>-pWY+>XrUxyj$XyqXeEHw6=)k*;u4k zTpzzH8G`-*gZS2vc4SRm7QP;8_DLnKO%NnoHYJo)F5*=BPjK zWd1(&)o7#*8$<)A*;oGnLu$(LvMSA_JA$FS_}d)(f#WPkz6t!RdI({)wX=c%L@_4F zfh3)qi3I1GNKE3>{$``w%ef!;{FUi*{`2A6f7lY+^tW2`C1u;P&loEr5%21v`{yJcvY#&rwk z4xMre0yAD%(aNmAqY?=m0!IfNV!bE9bKR|#jgZ5|G?TeO9wdmfvE8}G-+J0A`l6Dy zjO!yS%phR6R~w*#Xe~ARBZ+EfLL)vK(JGvLDQ+G zGQtiAPxIcaAOk;`{#d9{NI2*4snt$LZ(Ps>at_~0P&ntMJ-I)fDuQ_99qFJS40&b6 zSJm{EyMpCf;H(oQYjtkXB#_Eigk}c}IL2^C-K{%txlTVilTcISNbCK;t@Ow%`u_kr zPf@31#O}0xL&G|Z7d~>lGjAWe-W8+hSDxdyCY!2B9OF|X%E691n^wlfVG@X6A%BYp zE$_{G7PF_WsbMq#4>tl^b|>!4qkw+AgY~a2p4#mqk)@GR0%aacfL-K`85ba;pF*&=)8G+{%gc6>@=dBrMmnWPbbJDbKVwM|A z0dV-1X_{wMBYG^LkP4C8kMb%lBG6AgyaXMsA)0*mjvt(idJ}N7aR5-(15r#ICW&XtOiT z-N^1;HwyAvDy|2h_`d%D!ZS%{J-jyeY|toC zZ75Oxv5R?+A0UsVdHZcF#Q_Rfl?3F0o&hwJlz>`FD4+tZ+j*++Nf2%D;$wzzN< zoK;HnKZj63Ex(K;kSjD=Wx60gcy4(lBz{7Z1Bbf{<~PeCxoomX0LDN$;10R;tNIVw zC)DgyEWzT{g_eE2zW5$i-N>4vtEk@!RFcJ?c0t?cPX- zl>s|M8%oQDB;$Ky_`UxCO3lhLO%{_*=AE6g-}r*b);032gqMML{{T+aj1h*0D@zE`SBCP*b{liWbv|rflK%kTsXxNFaS@xIn;leIQPk?# zE@`AMr|V8C**uCujCb}i^J{c6-YW5(NykQDG3@t*$xcBl!3z1YCoq-mS%iPzV6>Ff)&> zL=f;A;zP6?D&%`|ahiI*-;^Y+(IAvr4Djtx7sCU||lt?lHi4XiTDBV!917CxPYdMAf` zCoY?D4fXxNGsJgA6bwp+#y3d#9X$u@T?L+nqgWUFG!Gidjo?iw-H%<(TG7LAfT#-K zag#~57DETk-!!T_VE#2^LZi9qOXU9mw0|l?Dcn5J!qP)-XOLrTLDn+aI6ph_#Zdmx z*86CRKiwxO>N`Gi`5{??!m{(~Jv z+OEC|6T`ilCP2=B0Go0P51X8N_o{a$88eySEXg7e&YM7O zrvZmJ81(N&yvpYO@8|wzF1K&0>q~5tLuCoKk>pm2d03w@b`?9L=xSBC)>1g)NVM&d z0IU1y+W>SODrPq5**8!OZsl4vX53Ve**L(*6$Ec@5(V?&U^*3XgT^V_%v|0^FZNCP zoAxqWfq65{Hr9}lxa5T5nLKM2n=&qNhia3{aO1sfwaum*{URKU%YvTI+lt9k{u;l5}QJn*c+%8<}!*_+q_T;ng}?y^N((o=u(WG&mki zpaK-j8#IBR86foA^yZ%t8<+#1n}RwV^PXxJ^4Namu%E&SB>p^8q9e>@;E;-Pys5!G z59MBIMb*!4{DV`B{{Wm~piVG9&*@XIdH`!=6H1@XlP5H($)F3?{f>PI9OkXusC#*o z^k~^n(2A!E5Jx|sJXNU~wsc>>`uk7^G>pqEu(JZ&1i)jlJ6rYV{smkIi!A)TMtLwo zPJzG&<=*iTBLI7n25Zsok)vc~8F7+{({rklQ$OttkHA-*__p+1$8S7w0O%yQxGHx5 zySFY62R%nl^h!x?TxrTlxUG&?N`~F_8#TCvWr1AC@w*jSLM}ov9N_n^i%YaaJY#X% z_lXAM^8MBvE9&SK(W*>@46f-F!)|3g z4esGhFOg-jF~TcENKF0&{xywZ5Lc2VBXMx7!10nW zI3tXAt-lwNH7!)LW9QRYWM}0z{$CmVYoD`Xsd&rDRV)a}B<=U+t?15ksPN^SjGC3# zP#!xt+Zf0}<}n{!ip|un#mH4uiLkd3qmsdw_oRc#+wJ((jWfh{b{a&M#U>YD=`I`~ zF*K5AX*fCb?OgPXUlbaCZjzzaAgkOdS`nxG0PDCU3`l8$Jg0*WZ00*WZ00=u6BLnXD=pK~;hmKyBZ zhlk}Lg#u9wb3{&f>Od94SE*@QT(@5i<5*KSaa~<&HfI@OHN3dO=hak-nKZW=S34^$ z4@}Y_oJOWgjED2C0yFGV7{<5&W3S^_J}U=L(OzF6BXqV)AmO2Ok-+&Ri)r7UrJKAU;xWT2-*+j zioq*R#;@Te@O8P_t6i614A%BYn}?P}5UC`OP)-LvzO~lp{h|5Q4-e_l+Gu)gETCLG zZFN3Ib1lOeNICQb55ly(gZ;()mWgW0j)>eRlSxg-C+4T%Q#r%lj)j?WGbK)ZavOF0%@X2Bsf$->RI#1_8irL9l=LKz1tiP7oUH; zK&+d!h!hcTBm=vC-hDa~S~p&D0!dUE=m|MI`qo^no~I;qsS_*hbLmn?8{`wxg&8#{ z$mn>W2?j@6UBa1=dLPb@#({&ZQY$2ij*a(~)H0u_JX8kOzyphGQU3sJV*daNl#hSb zqjlq&ECpF3wN8AyVgCSZqaVmsXOi7i{IK`w8h=4fnN$*LoT|*Hjt8YHAiFuQ7Ccg0 z*eKh@%!h>o{#n(%7y+Z{xW+chKPg(XJVh1DMQ^exA8gH$8kWXW8RE3GVC$r5>gveK zCIws&MrC8jG|~rin`4Q5L_J2JfAQifT_zzumu(3+S289*82~x;s<$$jE_G}!=8)Vd z9fs*0$v=S=cS0xZR-g6KU&H4#LHnkaAG|5iRI&1|2UCS);Co~m+tA}(Hc1T5rCS3i z3H-sRBISwt{{T8yy0=Nv*_;WUGb$+u=1_2OdS}|YrHQF1^2z97WqX}zztfzBN#hDv z1RSro8-S-nB9e@*j6o^#u+Gvl1_y2haw1sEn8UA_7kNNN;JL<1^~Fr2k8h_Hi0*e0 zvv(&Rzu{ICou?fKOq`qw;M)4~*>^=e$a1PSyLUdB#dX?a&o-N<%RG$JNo^F8I3shj z4cyWi)VrE;k_qT)Jc3W<#W_wh{qDSel*V3xn08V@wLZAo{O7RS1}j za83svp5N2+t4edU_visqIR5}Y&VVZ3sdte9!)0D3>>Od#{&kxef=Kq5<0`ohv11i##wnTA;R`epR&E-gtNV6yr>9B?lNZirJsj+zLoS(qfqiJ&MTJE6~ zM|2-*#FEGJ0;2#b5!9S<{{YslKNo4xSy+UU+Bojgcx~Zj`@%h?isg7bVzKAdBdQo_ zN|dU%WWN)EJ=(Dvivx(X;Jb<8u+fA5&drr^62#Tom&ov$ZU{irn0x zbsnsdZZ*$aUTQjfAF*GxyFSHft!0%;p=^>GJaor3(c0>oKAx#0dXRlVcW%Cd-&k9j zN$a{+nK(X}#UL$ee++f2K@`Gexia~NWYg`XWrU0ojmJ1S^zB^y-WywHD{$8+-jX4V z{!F#kSoqt;5wSMfj5pBXHo<=sZE?7qFfvACI30SEQtKWx*6-~vbj#llSlq`b^2Nkc z%#e;U8aHwXVb||*S;nj+`BT)V7PUBU?3)E#mwbbcU;G6p_GX{ipFi&(@TyW9sQmP8 ztFV&HW?4YM$WYOeGHH$H2xGV)>~<@ZoA`&S^%bV1T`kRT?2R?8ppXewjlqUS-bi3Z z;eb}E&81qbsEaIsG-&xdPb_ihDwAJ1v=*B%qTt+#H?fcsn>J^rJM^mC`OaTHrL#;8 zVWEi{M2_uuDLgu0dvXu-s3*}i7(pOKAnW_NQ$P31VAV93qX!u+o`m6X?rQRHo69SC z0F}84Rh3g6o#X+3EYLGC(a@E3D#NH@gH5Z~*3#R_9BpwF<$)ohZOAfuW~!`C!b8Rp zS&u!3r7$BE>|Pq4Z7)mG)5@AeYe?QmjDP^onKFU62cB!o^os~@ukEd;xQg8zQV7p{?iAFyY~{Si8RIY0^s2f6*Y76L z8~J(8eo{#UepQyolbW}8D>{M{sN8aLNF?^E9sdAYLS(2$PZaWfDg|NMcy*KKLK zD=Q?e(8SbV&byKouF$vjtf6+%X%_*E0zh1*G#iImgv^Jk_8Pdx$P z;-gSF^!KTNJx^iJ)4nN;l}X25-1GI%{>@S&9ORt(kA6@1{#6*x0Y9(PKhXYk@~o$) zAbxlx6Z(F>)B#%QiDEy_YdT~t8Iu`!PnZ|`%Yv@Ih|OqBIUMJ&*XvPZ89&aN0-d{- zQiZZ(J2RiWga$_ZK^4kuka&m01_HP%lTCuN*j1?pr0F5LvYW5ft4c!_KK`PX#p*(CJqT?O{51ll%}Zi$&L7TxCnoWyP2OBGN#&u{*< zU|vHzMRI?3VoiulYN)u5MMcRN%N|Mm`_f}tyB%(kERlIqCL@+c7cv;Y2hEXkNIY|n zJ^uh2(7my@)FNwJpa}rIwA+}NWZT1zasGYkm5Rht4dDIKfR2QMdC09qV9L?C8B>#v zxW@<9ytgK$bMEQUgy^U>rL1{v-Ik*b!$T}>yp-r zI2{QJNbV0&=t5lax;{G@g_atlgWIQ}$g(>aV^Z7ODntF{U^9w>Xy=H5DzfL1ki#R_ zn&{{7uBiZ9i%D&-V+ScFn{y4&4cl@IN;BK!thsI_0E?7&mI4+rkfJtI&h#sqZdYe7 zD@x{i3xETla5{z=U)H3S=Js(InrCH=Sr9vY(8qBK1xGCNO3cpLB$N62R9QLBPHEX* z_7Lwa_V2+7lDm%pk_tNBkwO8<|66WePD;)D8p2;Jq{DGz!9f>S=6V$gq&Vhh9Ab>JG zX*1G-LFh5`&-J2!6Q%H$Pa^WL+m9%!8yd0L`RW?$A~x3{&5MAY>gi7qqc zESDKyEqQijQTSDxT`(OPZA1BQcpqd(H6`)&94qyGTDp0}ro zO?$@#@XbGT>{OC^)T_IWXrj6fAzwLBngBkuQB8pLBzNondK$VI6+l-x0P;!4dfKA99zKm^$+0Ve>CDz?!@6v-E8s{nAk_M(bq2v^>sBa=lG z0TYjUsVQJO(M14Im7AVww3#D0qKW{{x#MW#mII|naiQ7Wh$Xp_R@ev&84;-s*F8_` zMHB$ZbZrXS+U8HNM<9+Tm4itxUt;gZ?cdU~ZRg#lLvSNR0w!gRG8I)>u%MipD5SRz zhHj^D@>nE*ZQUemjOQGd{*|StTcmJXsOYGtk<^e6S}3g%CbE3PJvk%tr|tKmieNHT z+|aMAkq^z(S894<#~)0O=~WYNkRFV-%$tfxASxV0FKc`GUR#YmWz1})s%o@7@FcI=W>+{+jt{` z&wl>Y*==^kei~P0j?J!i;Z!jV5`|!+wtvrZijIV>(V%bcW7RFJK^{P|GjYRtoW9_H z3{;lBB72GCPqHd4y1Rn1zV^T^f^m*<&lFKyypfaD9^^4qsm9TlR&_Sml3PMY$ulA{ z=d=6!S2KSN&X1^SmX;SLJ84;G@|rYcMz}>JC_b6~UX)Q)hgNb(*Eo}sgME%dPc}9z zvp($g&JV9qQmK2KH15v$06P*}1E(jND6X3=&z`&3rEv9xx!L%3t* zlx;YoicAr^a0&_1GqkL8Ix!oz`FQMVeL87;wuz4IvN+BHpU6=~aY`%M-1c!5CH0P5 b=v;RyeREF$kPdo)dQnAl!YS@d+eiP|`7*`S literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/flow_iter.py b/playground/demos/swarm_of_mma_manufacturing/flow_iter.py new file mode 100644 index 00000000..57a33535 --- /dev/null +++ b/playground/demos/swarm_of_mma_manufacturing/flow_iter.py @@ -0,0 +1,129 @@ +""" +Swarm of multi modal autonomous agents for manufacturing! +--------------------------------------------------------- +Health Security agent: Agent that monitors the health of working conditions: input image of factory output: health safety index 0.0 - 1.0 being the highest +Quality Control agent: Agent that monitors the quality of the product: input image of product output: quality index 0.0 - 1.0 being the highest +Productivity agent: Agent that monitors the productivity of the factory: input image of factory output: productivity index 0.0 - 1.0 being the highest +Safety agent: Agent that monitors the safety of the factory: input image of factory output: safety index 0.0 - 1.0 being the highest +Security agent: Agent that monitors the security of the factory: input image of factory output: security index 0.0 - 1.0 being the highest +Sustainability agent: Agent that monitors the sustainability of the factory: input image of factory output: sustainability index 0.0 - 1.0 being the highest +Efficiency agent: Agent that monitors the efficiency of the factory: input image of factory output: efficiency index 0.0 - 1.0 being the highest + + +Flow: +health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent +""" +from swarms.structs import Flow, SequentialWorkflow +import os +from dotenv import load_dotenv +from swarms.models import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) + +load_dotenv() +api_key = os.getenv("OPENAI_API_KEY") + +llm = GPT4VisionAPI( + openai_api_key=api_key +) + +assembly_line = "playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg" +red_robots = "playground/demos/swarm_of_mma_manufacturing/red_robots.jpg" +robots = "playground/demos/swarm_of_mma_manufacturing/robots.jpg" +tesla_assembly_line = "playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg" + + +# Define detailed prompts for each agent +tasks = { + "health_safety": ( + "Analyze the factory's working environment for health safety. Focus on" + " cleanliness, ventilation, spacing between workstations, and personal" + " protective equipment availability." + ), + "productivity": ( + "Review the factory's workflow efficiency, machine utilization, and" + " employee engagement. Identify operational delays or bottlenecks." + ), + "safety": ( + "Analyze the factory's safety measures, including fire exits, safety" + " signage, and emergency response equipment." + ), + "security": ( + "Evaluate the factory's security systems, entry/exit controls, and" + " potential vulnerabilities." + ), + "sustainability": ( + "Inspect the factory's sustainability practices, including waste" + " management, energy usage, and eco-friendly processes." + ), + "efficiency": ( + "Assess the manufacturing process's efficiency, considering the layout," + " logistics, and automation level." + ), +} + + +# Define prompts for each agent +health_safety_prompt = tasks["health_safety"] +productivity_prompt = tasks["productivity"] +safety_prompt = tasks["safety"] +security_prompt = tasks["security"] +sustainability_prompt = tasks["sustainability"] +efficiency_prompt = tasks["efficiency"] + + +# Health security agent +health_security_agent = Flow( + llm=llm, + sop_list=health_safety_prompt, + max_loops=2, + multi_modal=True +) + +# Quality control agent +productivity_check_agent = Flow( + llm=llm, + sop=productivity_prompt, + max_loops=2, + multi_modal=True +) + +# Security agent +security_check_agent = Flow( + llm=llm, + sop=security_prompt, + max_loops=2, + multi_modal=True +) + +# Efficiency agent +efficiency_check_agent = Flow( + llm=llm, + sop=efficiency_prompt, + max_loops=2, + multi_modal=True +) + + +# Add the first task to the health_security_agent +health_check = health_security_agent.run( + "Analyze the safety of this factory", + robots +) + +# Add the third task to the productivity_check_agent +productivity_check = productivity_check_agent.run( + health_check, assembly_line +) + +# Add the fourth task to the security_check_agent +security_check = security_check_agent.add( + productivity_check, red_robots +) + +# Add the fifth task to the efficiency_check_agent +efficiency_check = efficiency_check_agent.run( + security_check, tesla_assembly_line +) + diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py index ebb00768..88b82c62 100644 --- a/playground/demos/swarm_of_mma_manufacturing/main.py +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -13,3 +13,125 @@ Efficiency agent: Agent that monitors the efficiency of the factory: input image Flow: health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent """ +from swarms.structs import Flow, SequentialWorkflow +from swarms.models import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) + + +llm = GPT4VisionAPI() + +assembly_line = "assembly_line.jpg" +red_robots = "red_robots.jpg" +robots = "robots.jpg" +tesla_assembly_line = "tesla_assembly.jpg" + + +# Define detailed prompts for each agent +tasks = { + "health_safety": ( + "Analyze the factory's working environment for health safety. Focus on" + " cleanliness, ventilation, spacing between workstations, and personal" + " protective equipment availability." + ), + "productivity": ( + "Review the factory's workflow efficiency, machine utilization, and" + " employee engagement. Identify operational delays or bottlenecks." + ), + "safety": ( + "Analyze the factory's safety measures, including fire exits, safety" + " signage, and emergency response equipment." + ), + "security": ( + "Evaluate the factory's security systems, entry/exit controls, and" + " potential vulnerabilities." + ), + "sustainability": ( + "Inspect the factory's sustainability practices, including waste" + " management, energy usage, and eco-friendly processes." + ), + "efficiency": ( + "Assess the manufacturing process's efficiency, considering the layout," + " logistics, and automation level." + ), +} + + +# Define prompts for each agent +health_safety_prompt = tasks["health_safety"] +productivity_prompt = tasks["productivity"] +safety_prompt = tasks["safety"] +security_prompt = tasks["security"] +sustainability_prompt = tasks["sustainability"] +efficiency_prompt = tasks["efficiency"] + + +# Health security agent +health_security_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + health_safety_prompt, + max_loops=2, +) + +# Quality control agent +quality_control_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, + max_loops=2, +) + +# Quality control agent +productivity_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + productivity_prompt, + max_loops=2, +) + +# Security agent +security_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + security_prompt, + max_loops=2, +) + +# Efficiency agent +efficiency_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + efficiency_prompt, + max_loops=2, +) + + +# Sequential workflow +workflow = SequentialWorkflow( + max_loops=4, + name="Swarm of multi modal autonomous agents for manufacturing!", + description="Swarm of multi modal autonomous agents for manufacturing!", +) + +# Add the first task to the health_security_agent +health_check = workflow.add( + health_security_agent, + "Analyze the safety of this factory", + robots +) + +# Add the third task to the productivity_check_agent +productivity_check = workflow.add( + productivity_check_agent, health_check, assembly_line +) + +# Add the fourth task to the security_check_agent +security_check = workflow.add( + security_check_agent, productivity_check, red_robots +) + +# Add the fifth task to the efficiency_check_agent +efficiency_check = workflow.add( + efficiency_check_agent, security_check, tesla_assembly_line +) + + +# Run the workflow +workflow.run() diff --git a/playground/demos/swarm_of_mma_manufacturing/red_robots.jpg b/playground/demos/swarm_of_mma_manufacturing/red_robots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f086fa672bef32b53302a03a7e72241838f43c26 GIT binary patch literal 44298 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�fS8p0qQa7T8cC|QB*a}jGyg~ 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 azxB=k0Q3`H0SEevfBNMg{(>nHGymC~4g>H2 literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/robots.jpg b/playground/demos/swarm_of_mma_manufacturing/robots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bddab6e47f513e07b3c4c1f8053cad2358525f01 GIT binary patch literal 39565 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