From d4fa5f28ca910021162e74956cae8e6e7ccb8583 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Fri, 31 Mar 2023 09:05:32 +0200 Subject: [PATCH 01/10] New ZScaler Playbook --- .../Zscaler_Outbound_Traffic_Filtering.json | 280 ++++++++++++++++++ .../Zscaler_Outbound_Traffic_Filtering.png | Bin 0 -> 31415 bytes .../Zscaler_Outbound_Traffic_Filtering.py | 170 +++++++++++ .../Zscaler_Outbound_Traffic_Filtering.yml | 24 ++ 4 files changed, 474 insertions(+) create mode 100755 playbooks/Zscaler_Outbound_Traffic_Filtering.json create mode 100755 playbooks/Zscaler_Outbound_Traffic_Filtering.png create mode 100755 playbooks/Zscaler_Outbound_Traffic_Filtering.py create mode 100644 playbooks/Zscaler_Outbound_Traffic_Filtering.yml diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.json b/playbooks/Zscaler_Outbound_Traffic_Filtering.json new file mode 100755 index 0000000000..f77a7624f5 --- /dev/null +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.json @@ -0,0 +1,280 @@ +{ + "blockly": false, + "blockly_xml": "", + "category": "Isolation", + "coa": { + "data": { + "description": "Accepts a URL or list of URLs as input. Blocks the given URLs in ZScaler.\n\nhttps://d3fend.mitre.org/technique/d3f:OutboundTrafficFiltering/", + "edges": [ + { + "id": "port_0_to_port_4", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "4", + "targetPort": "4_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_4_to_port_6", + "sourceNode": "4", + "sourcePort": "4_out", + "targetNode": "6", + "targetPort": "6_in" + }, + { + "id": "port_7_to_port_1", + "sourceNode": "7", + "sourcePort": "7_out", + "targetNode": "1", + "targetPort": "1_in" + }, + { + "id": "port_6_to_port_8", + "sourceNode": "6", + "sourcePort": "6_out", + "targetNode": "8", + "targetPort": "8_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_8_to_port_7", + "sourceNode": "8", + "sourcePort": "8_out", + "targetNode": "7", + "targetPort": "7_in" + } + ], + "hash": "d00eda8b809a9b54fd2a3df75a64dc1538169f7c", + "nodes": { + "0": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_start", + "id": "0", + "type": "start" + }, + "errors": {}, + "id": "0", + "type": "start", + "warnings": {}, + "x": 20, + "y": 0 + }, + "1": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_finish", + "id": "1", + "type": "end" + }, + "errors": {}, + "id": "1", + "type": "end", + "warnings": {}, + "x": 19.999999999999986, + "y": 864 + }, + "4": { + "data": { + "advanced": { + "customName": "url input filter", + "customNameId": 0, + "description": "Determine branches based on provided inputs.", + "join": [], + "note": "Determine branches based on provided inputs." + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "playbook_input:input_url", + "value": "None" + } + ], + "conditionIndex": 0, + "customName": "input_url", + "logic": "and" + } + ], + "functionId": 1, + "functionName": "url_input_filter", + "id": "4", + "type": "filter" + }, + "errors": {}, + "id": "4", + "type": "filter", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 60, + "y": 148 + }, + "6": { + "data": { + "action": "block url", + "actionType": "contain", + "advanced": { + "customName": "block url", + "customNameId": 0, + "description": "Block urls in ZScaler based on given urls. ", + "join": [], + "note": "Block urls in ZScaler based on given urls. " + }, + "connector": "Zscaler", + "connectorConfigs": [ + "zscaler" + ], + "connectorId": "ee475421-d2e4-4d8e-addb-a2ce1465d6a3", + "connectorVersion": "v1", + "functionId": 1, + "functionName": "block_url", + "id": "6", + "parameters": { + "url": "playbook_input:input_url" + }, + "requiredParameters": [ + { + "data_type": "string", + "field": "url" + } + ], + "type": "action" + }, + "errors": {}, + "id": "6", + "type": "action", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 0, + "y": 328 + }, + "7": { + "data": { + "advanced": { + "customName": "build observable", + "customNameId": 0, + "description": "This block uses custom code to generate an observable dictionary to output into the observables data path.", + "join": [], + "note": "This block uses custom code to generate an observable dictionary to output into the observables data path." + }, + "functionId": 1, + "functionName": "build_observable", + "id": "7", + "inputParameters": [ + "block_url:action_result.summary", + "block_url:action_result.status", + "block_url:action_result.message", + "block_url:action_result.parameter.url" + ], + "outputVariables": [ + "observable_array" + ], + "type": "code" + }, + "errors": {}, + "id": "7", + "type": "code", + "userCode": "\n build_observable__observable_array = list()\n for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, block_url_parameter_url):\n observable = {\n \"type\": \"url\",\n \"value\": url,\n \"source\": \"ZScaler\"\n }\n if len(summary[\"ignored\"]) > 0:\n observable[\"status\"] = \"ignored\"\n else:\n observable[\"status\"] = \"updated\"\n \n build_observable__observable_array.append(observable)\n \n\n", + "warnings": {}, + "x": 0, + "y": 700 + }, + "8": { + "data": { + "advanced": { + "customName": "block url success filter", + "customNameId": 0, + "description": "Determine if the block url action was successful or not.", + "join": [], + "note": "Determine if the block url action was successful or not." + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "==", + "param": "block_url:action_result.status", + "value": "success" + } + ], + "conditionIndex": 0, + "customName": "success", + "logic": "and" + } + ], + "functionId": 2, + "functionName": "block_url_success_filter", + "id": "8", + "type": "filter" + }, + "errors": {}, + "id": "8", + "type": "filter", + "warnings": {}, + "x": 60, + "y": 506 + } + }, + "notes": "Inputs: url\nInteractions: ZScaler\nActions: block url\nOutputs: observables" + }, + "input_spec": [ + { + "contains": [ + "url" + ], + "description": "Accepts url and block them", + "name": "input_url" + } + ], + "output_spec": [ + { + "contains": [ + "url" + ], + "datapaths": [ + "build_observable:custom_function:observable_array" + ], + "deduplicate": false, + "description": "An array of observable dictionaries with value, type and information about the blocked urls.", + "metadata": {}, + "name": "observable" + } + ], + "playbook_type": "data", + "python_version": "3", + "schema": "5.0.9", + "version": "6.0.0.114895" + }, + "create_time": "2023-03-31T06:50:12.071333+00:00", + "draft_mode": false, + "labels": [ + "*" + ], + "tags": [ + "url", + "D3-OTF", + "ZScaler", + "denylist" + ] +} \ No newline at end of file diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.png b/playbooks/Zscaler_Outbound_Traffic_Filtering.png new file mode 100755 index 0000000000000000000000000000000000000000..7f6babff65cdb8d99a3721a29d9b3d5a59a9cf8e GIT binary patch literal 31415 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 literal 0 HcmV?d00001 diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.py b/playbooks/Zscaler_Outbound_Traffic_Filtering.py new file mode 100755 index 0000000000..ced11584cd --- /dev/null +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.py @@ -0,0 +1,170 @@ +""" +Accepts a URL or list of URLs as input. Blocks the given URLs in ZScaler.\n\nhttps://d3fend.mitre.org/technique/d3f:OutboundTrafficFiltering/ +""" + + +import phantom.rules as phantom +import json +from datetime import datetime, timedelta + + +@phantom.playbook_block() +def on_start(container): + phantom.debug('on_start() called') + + # call 'url_input_filter' block + url_input_filter(container=container) + + return + +@phantom.playbook_block() +def url_input_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("url_input_filter() called") + + ################################################################################ + # Determine branches based on provided inputs. + ################################################################################ + + # collect filtered artifact ids and results for 'if' condition 1 + matched_artifacts_1, matched_results_1 = phantom.condition( + container=container, + conditions=[ + ["playbook_input:input_url", "!=", None] + ], + name="url_input_filter:condition_1") + + # call connected blocks if filtered artifacts or results + if matched_artifacts_1 or matched_results_1: + block_url(action=action, success=success, container=container, results=results, handle=handle, filtered_artifacts=matched_artifacts_1, filtered_results=matched_results_1) + + return + + +@phantom.playbook_block() +def block_url(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("block_url() called") + + # phantom.debug('Action: {0} {1}'.format(action['name'], ('SUCCEEDED' if success else 'FAILED'))) + + ################################################################################ + # Block urls in ZScaler based on given urls. + ################################################################################ + + playbook_input_input_url = phantom.collect2(container=container, datapath=["playbook_input:input_url"]) + + parameters = [] + + # build parameters list for 'block_url' call + for playbook_input_input_url_item in playbook_input_input_url: + if playbook_input_input_url_item[0] is not None: + parameters.append({ + "url": playbook_input_input_url_item[0], + }) + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.act("block url", parameters=parameters, name="block_url", assets=["zscaler"], callback=block_url_success_filter) + + return + + +@phantom.playbook_block() +def build_observable(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("build_observable() called") + + ################################################################################ + # This block uses custom code to generate an observable dictionary to output into + # the observables data path. + ################################################################################ + + block_url_result_data = phantom.collect2(container=container, datapath=["block_url:action_result.summary","block_url:action_result.status","block_url:action_result.message","block_url:action_result.parameter.url"], action_results=results) + + block_url_result_item_0 = [item[0] for item in block_url_result_data] + block_url_result_item_1 = [item[1] for item in block_url_result_data] + block_url_result_message = [item[2] for item in block_url_result_data] + block_url_parameter_url = [item[3] for item in block_url_result_data] + + build_observable__observable_array = None + + ################################################################################ + ## Custom Code Start + ################################################################################ + + build_observable__observable_array = list() + for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, block_url_parameter_url): + observable = { + "type": "url", + "value": url, + "source": "ZScaler" + } + if len(summary["ignored"]) > 0: + observable["status"] = "ignored" + else: + observable["status"] = "updated" + + build_observable__observable_array.append(observable) + + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.save_run_data(key="build_observable:observable_array", value=json.dumps(build_observable__observable_array)) + + return + + +@phantom.playbook_block() +def block_url_success_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("block_url_success_filter() called") + + ################################################################################ + # Determine if the block url action was successful or not. + ################################################################################ + + # collect filtered artifact ids and results for 'if' condition 1 + matched_artifacts_1, matched_results_1 = phantom.condition( + container=container, + conditions=[ + ["block_url:action_result.status", "==", "success"] + ], + name="block_url_success_filter:condition_1") + + # call connected blocks if filtered artifacts or results + if matched_artifacts_1 or matched_results_1: + build_observable(action=action, success=success, container=container, results=results, handle=handle, filtered_artifacts=matched_artifacts_1, filtered_results=matched_results_1) + + return + + +@phantom.playbook_block() +def on_finish(container, summary): + phantom.debug("on_finish() called") + + build_observable__observable_array = json.loads(_ if (_ := phantom.get_run_data(key="build_observable:observable_array")) != "" else "null") # pylint: disable=used-before-assignment + + output = { + "observable": build_observable__observable_array, + } + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.save_playbook_output_data(output=output) + + return \ No newline at end of file diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.yml b/playbooks/Zscaler_Outbound_Traffic_Filtering.yml new file mode 100644 index 0000000000..d40a1a03a1 --- /dev/null +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.yml @@ -0,0 +1,24 @@ +name: ZScaler Outbound Traffic Filtering +id: 3e0df448-0546-4b2b-9143-365161cf40f9 +version: 1 +date: '2023-03-31' +author: Patrick Bareiss, Splunk +type: Investigation +description: Accepts a URL or list of URLs and block them in ZScaler. Generates a list of observables with the blocked URLs. +playbook: ZScaler_Outbound_Traffic_Filtering +how_to_implement: This input playbook requires the ZScaler connector to be configured. It is designed to work in conjunction with the Dynamic URL Outbound Traffic Filtering Analysis playbook or other playbooks in the same style. +references: + - https://d3fend.mitre.org/technique/d3f:OutboundTrafficFiltering/ +app_list: + - ZScaler +tags: + platform_tags: + - denylist + - url + - D3-OTF + - ZScaler + playbook_type: Input + vpe_type: Modern + playbook_fields: [] + product: + - Splunk SOAR \ No newline at end of file From 612b083c995d68325baf4bd1c9ad1984d7ca465a Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Sun, 14 May 2023 19:36:35 -0500 Subject: [PATCH 02/10] Gmail message search --- ..._Message_Identifier_Activity_Analysis.json | 417 ++++++++++++++++++ ...l_Message_Identifier_Activity_Analysis.png | Bin 0 -> 57498 bytes ...il_Message_Identifier_Activity_Analysis.py | 268 +++++++++++ ...l_Message_Identifier_Activity_Analysis.yml | 22 + 4 files changed, 707 insertions(+) create mode 100644 playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json create mode 100644 playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.png create mode 100644 playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py create mode 100644 playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.yml diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json new file mode 100644 index 0000000000..7e05390179 --- /dev/null +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json @@ -0,0 +1,417 @@ +{ + "blockly": false, + "blockly_xml": "", + "category": "Message Identifier Activity Analysis", + "coa": { + "data": { + "description": "Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table.", + "edges": [ + { + "id": "port_0_to_port_2", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "2", + "targetPort": "2_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_2_to_port_3", + "sourceNode": "2", + "sourcePort": "2_out", + "targetNode": "3", + "targetPort": "3_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_3_to_port_4", + "sourceNode": "3", + "sourcePort": "3_out", + "targetNode": "4", + "targetPort": "4_in" + }, + { + "id": "port_4_to_port_5", + "sourceNode": "4", + "sourcePort": "4_out", + "targetNode": "5", + "targetPort": "5_in" + }, + { + "id": "port_6_to_port_7", + "sourceNode": "6", + "sourcePort": "6_out", + "targetNode": "7", + "targetPort": "7_in" + }, + { + "id": "port_7_to_port_1", + "sourceNode": "7", + "sourcePort": "7_out", + "targetNode": "1", + "targetPort": "1_in" + }, + { + "id": "port_5_to_port_9", + "sourceNode": "5", + "sourcePort": "5_out", + "targetNode": "9", + "targetPort": "9_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_9_to_port_6", + "sourceNode": "9", + "sourcePort": "9_out", + "targetNode": "6", + "targetPort": "6_in" + } + ], + "hash": "8fd552239267a9cf26722affc06b22927bb5db1a", + "nodes": { + "0": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_start", + "id": "0", + "type": "start" + }, + "errors": {}, + "id": "0", + "type": "start", + "warnings": {}, + "x": 19.999999999999986, + "y": -6.394884621840902e-14 + }, + "1": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_finish", + "id": "1", + "type": "end" + }, + "errors": {}, + "id": "1", + "type": "end", + "warnings": {}, + "x": 19.999999999999986, + "y": 1240 + }, + "2": { + "data": { + "advanced": { + "customName": "artifact check", + "customNameId": 0, + "join": [] + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "artifact:*.id", + "value": "None" + } + ], + "conditionIndex": 0, + "customName": "Artifact Exists", + "display": "If", + "logic": "and", + "type": "if" + } + ], + "functionId": 1, + "functionName": "artifact_check", + "id": "2", + "type": "decision" + }, + "errors": {}, + "id": "2", + "type": "decision", + "warnings": {}, + "x": 80, + "y": 148 + }, + "3": { + "data": { + "advanced": { + "customName": "artifact filter", + "customNameId": 0, + "join": [] + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "playbook_input:message_id", + "value": "None" + } + ], + "conditionIndex": 0, + "customName": "Input Valid", + "logic": "and" + } + ], + "functionId": 1, + "functionName": "artifact_filter", + "id": "3", + "type": "filter" + }, + "errors": {}, + "id": "3", + "type": "filter", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 60, + "y": 328 + }, + "4": { + "data": { + "action": "list users", + "actionType": "investigate", + "advanced": { + "customName": "get mailboxes", + "customNameId": 0, + "description": "Required step in order to search \"All\" of a Gsuite organization. This receives a list of mailboxes that are passed to the next action.", + "join": [], + "note": "Gets a list of mailboxes from GMail to search" + }, + "connector": "G Suite for GMail", + "connectorConfigs": [ + "g_suite_for_gmail" + ], + "connectorId": "9c73f233-2c4a-406a-855e-41d8d2497d0e", + "connectorVersion": "v1", + "functionId": 1, + "functionName": "get_mailboxes", + "id": "4", + "parameters": { + "max_items": "500", + "page_token": "" + }, + "requiredParameters": [], + "type": "action" + }, + "errors": {}, + "id": "4", + "type": "action", + "warnings": {}, + "x": 0, + "y": 508 + }, + "5": { + "data": { + "action": "run query", + "actionType": "investigate", + "advanced": { + "customName": "search mailboxes", + "customNameId": 0, + "join": [], + "note": "Searches mailboxes returned by the previous action for messages with an internet message ID matching the input" + }, + "connector": "G Suite for GMail", + "connectorConfigs": [ + "g_suite_for_gmail" + ], + "connectorId": "9c73f233-2c4a-406a-855e-41d8d2497d0e", + "connectorVersion": "v1", + "functionId": 1, + "functionName": "search_mailboxes", + "id": "5", + "parameters": { + "email": "get_mailboxes:action_result.data.*.emails.*.address", + "internet_message_id": "filtered-data:artifact_filter:condition_1:playbook_input:message_id", + "label": "Inbox", + "max_results": 100, + "query": "is:unread" + }, + "requiredParameters": [ + { + "data_type": "string", + "field": "email" + }, + { + "data_type": "string", + "default": "Inbox", + "field": "label" + }, + { + "data_type": "numeric", + "default": 100, + "field": "max_results" + } + ], + "type": "action" + }, + "errors": {}, + "id": "5", + "type": "action", + "warnings": {}, + "x": 0, + "y": 620 + }, + "6": { + "data": { + "advanced": { + "customName": "format message report", + "customNameId": 0, + "join": [], + "note": "Format the markdown table summary of this playbook execution" + }, + "functionId": 1, + "functionName": "format_message_report", + "id": "6", + "parameters": [ + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.parameter.internet_message_id", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.delivered_to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.subject", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.from" + ], + "template": "SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n", + "type": "format" + }, + "errors": {}, + "id": "6", + "type": "format", + "warnings": {}, + "x": 0, + "y": 920 + }, + "7": { + "data": { + "advanced": { + "customName": "build message output", + "customNameId": 0, + "description": "Logic regarding observable construction goes here", + "join": [], + "note": "Format the observable output object produced by this playbook" + }, + "functionId": 1, + "functionName": "build_message_output", + "id": "7", + "inputParameters": [ + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.parameter.internet_message_id", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.delivered_to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.subject", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.from" + ], + "outputVariables": [ + "observable_array" + ], + "type": "code" + }, + "errors": {}, + "id": "7", + "type": "code", + "userCode": "\n # Variable renaming for convenince\n messageID = filtered_result_0_parameter_internet_message_id\n recipients = filtered_result_0_data___delivered_to\n addressees = filtered_result_0_data___to\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___from\n \n build_message_output__observable_array = []\n recordList = []\n \n # construct iterables for records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n # Create observable body\n observable = {\n \"value\": messageID,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"GSuite for GMail\",\n \"message_identifier_activity\": recordList\n }\n \n build_message_output__observable_array.append(observable)\n \n\n", + "warnings": {}, + "x": 0, + "y": 1040 + }, + "9": { + "data": { + "advanced": { + "customName": "results filter", + "customNameId": 0, + "join": [] + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "search_mailboxes:action_result.summary.{summaryVar}", + "value": "0" + } + ], + "conditionIndex": 0, + "customName": "Results found", + "logic": "and" + } + ], + "functionId": 2, + "functionName": "results_filter", + "id": "9", + "type": "filter" + }, + "errors": {}, + "id": "9", + "type": "filter", + "warnings": {}, + "x": 60, + "y": 720 + } + }, + "notes": "Inputs: internet message id\nInteractions: GSuite For GMail\nActions: get users, run query\nOutputs: observable, markdown report" + }, + "input_spec": [ + { + "contains": [ + "internet message id" + ], + "description": "An Internet Message ID to look for within a GMail environment", + "name": "message_id" + } + ], + "output_spec": [ + { + "contains": [], + "datapaths": [ + "build_message_output:custom_function:observable_array" + ], + "deduplicate": false, + "description": "An array of Observable objects ", + "metadata": {}, + "name": "observable" + }, + { + "contains": [], + "datapaths": [ + "format_message_report:formatted_data" + ], + "deduplicate": false, + "description": "An array of markdown reports", + "metadata": {}, + "name": "markdown_report" + } + ], + "playbook_type": "data", + "python_version": "3", + "schema": "5.0.9", + "version": "6.0.0.114895" + }, + "create_time": "2023-05-15T00:27:51.969603+00:00", + "draft_mode": false, + "labels": [ + "*" + ], + "tags": [ + "message_identifier_activity", + "internet_message_id", + "gsuite_for_gmail" + ] +} \ No newline at end of file diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.png b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc55377c7e335baee156164172eb669414be9ad GIT binary patch literal 57498 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
!AHLQuDdo?80jhYuKI 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 literal 0 HcmV?d00001 diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py new file mode 100644 index 0000000000..5fc5714ed8 --- /dev/null +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py @@ -0,0 +1,268 @@ +""" +Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table. +""" + + +import phantom.rules as phantom +import json +from datetime import datetime, timedelta + + +@phantom.playbook_block() +def on_start(container): + phantom.debug('on_start() called') + + # call 'artifact_check' block + artifact_check(container=container) + + return + +@phantom.playbook_block() +def artifact_check(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("artifact_check() called") + + # check for 'if' condition 1 + found_match_1 = phantom.decision( + container=container, + conditions=[ + ["artifact:*.id", "!=", None] + ]) + + # call connected blocks if condition 1 matched + if found_match_1: + artifact_filter(action=action, success=success, container=container, results=results, handle=handle) + return + + return + + +@phantom.playbook_block() +def artifact_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("artifact_filter() called") + + # collect filtered artifact ids and results for 'if' condition 1 + matched_artifacts_1, matched_results_1 = phantom.condition( + container=container, + conditions=[ + ["playbook_input:message_id", "!=", None] + ], + name="artifact_filter:condition_1") + + # call connected blocks if filtered artifacts or results + if matched_artifacts_1 or matched_results_1: + get_mailboxes(action=action, success=success, container=container, results=results, handle=handle, filtered_artifacts=matched_artifacts_1, filtered_results=matched_results_1) + + return + + +@phantom.playbook_block() +def get_mailboxes(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("get_mailboxes() called") + + # phantom.debug('Action: {0} {1}'.format(action['name'], ('SUCCEEDED' if success else 'FAILED'))) + + ################################################################################ + # Required step in order to search "All" of a Gsuite organization. This receives + # a list of mailboxes that are passed to the next action. + ################################################################################ + + parameters = [] + + parameters.append({ + "max_items": 500, + "page_token": "", + }) + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.act("list users", parameters=parameters, name="get_mailboxes", assets=["g_suite_for_gmail"], callback=search_mailboxes) + + return + + +@phantom.playbook_block() +def search_mailboxes(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("search_mailboxes() called") + + # phantom.debug('Action: {0} {1}'.format(action['name'], ('SUCCEEDED' if success else 'FAILED'))) + + get_mailboxes_result_data = phantom.collect2(container=container, datapath=["get_mailboxes:action_result.data.*.emails.*.address","get_mailboxes:action_result.parameter.context.artifact_id"], action_results=results) + filtered_input_0_message_id = phantom.collect2(container=container, datapath=["filtered-data:artifact_filter:condition_1:playbook_input:message_id"]) + + parameters = [] + + # build parameters list for 'search_mailboxes' call + for get_mailboxes_result_item in get_mailboxes_result_data: + for filtered_input_0_message_id_item in filtered_input_0_message_id: + if get_mailboxes_result_item[0] is not None: + parameters.append({ + "email": get_mailboxes_result_item[0], + "label": "Inbox", + "query": "is:unread", + "max_results": 100, + "internet_message_id": filtered_input_0_message_id_item[0], + "context": {'artifact_id': get_mailboxes_result_item[1]}, + }) + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.act("run query", parameters=parameters, name="search_mailboxes", assets=["g_suite_for_gmail"], callback=results_filter) + + return + + +@phantom.playbook_block() +def format_message_report(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("format_message_report() called") + + template = """SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n""" + + # parameter list for template variable replacement + parameters = [ + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.parameter.internet_message_id", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.delivered_to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.to", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.subject", + "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.from" + ] + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.format(container=container, template=template, parameters=parameters, name="format_message_report") + + build_message_output(container=container) + + return + + +@phantom.playbook_block() +def build_message_output(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("build_message_output() called") + + ################################################################################ + # Logic regarding observable construction goes here + ################################################################################ + + filtered_result_0_data_results_filter = phantom.collect2(container=container, datapath=["filtered-data:results_filter:condition_1:search_mailboxes:action_result.parameter.internet_message_id","filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.delivered_to","filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.to","filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.subject","filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.from"]) + + filtered_result_0_parameter_internet_message_id = [item[0] for item in filtered_result_0_data_results_filter] + filtered_result_0_data___delivered_to = [item[1] for item in filtered_result_0_data_results_filter] + filtered_result_0_data___to = [item[2] for item in filtered_result_0_data_results_filter] + filtered_result_0_data___subject = [item[3] for item in filtered_result_0_data_results_filter] + filtered_result_0_data___from = [item[4] for item in filtered_result_0_data_results_filter] + + build_message_output__observable_array = None + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Variable renaming for convenince + messageID = filtered_result_0_parameter_internet_message_id + recipients = filtered_result_0_data___delivered_to + addressees = filtered_result_0_data___to + subjects = filtered_result_0_data___subject + senders = filtered_result_0_data___from + + build_message_output__observable_array = [] + recordList = [] + + # construct iterables for records + for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders): + record = { + "recipient": recipient, + "addressee": addressee, + "subject": subject, + "sender": sender + } + recordList.append(record) + + # Create observable body + observable = { + "value": messageID, + "type": "internet message ID", + "count": len(recordList), + "source": "GSuite for GMail", + "message_identifier_activity": recordList + } + + build_message_output__observable_array.append(observable) + + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.save_run_data(key="build_message_output:observable_array", value=json.dumps(build_message_output__observable_array)) + + return + + +@phantom.playbook_block() +def results_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): + phantom.debug("results_filter() called") + + # collect filtered artifact ids and results for 'if' condition 1 + matched_artifacts_1, matched_results_1 = phantom.condition( + container=container, + conditions=[ + ["search_mailboxes:action_result.summary.{summaryVar}", "!=", 0] + ], + name="results_filter:condition_1") + + # call connected blocks if filtered artifacts or results + if matched_artifacts_1 or matched_results_1: + format_message_report(action=action, success=success, container=container, results=results, handle=handle, filtered_artifacts=matched_artifacts_1, filtered_results=matched_results_1) + + return + + +@phantom.playbook_block() +def on_finish(container, summary): + phantom.debug("on_finish() called") + + format_message_report = phantom.get_format_data(name="format_message_report") + build_message_output__observable_array = json.loads(_ if (_ := phantom.get_run_data(key="build_message_output:observable_array")) != "" else "null") # pylint: disable=used-before-assignment + + output = { + "observable": build_message_output__observable_array, + "markdown_report": format_message_report, + } + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.save_playbook_output_data(output=output) + + return \ No newline at end of file diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.yml b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.yml new file mode 100644 index 0000000000..d4277770c5 --- /dev/null +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.yml @@ -0,0 +1,22 @@ +name: G Suite for GMail Message Identifier Activity Analysis +id: 5299d6dd-e9c4-4afa-b051-928ace0ff816d +version: 1 +date: '2023-05-12' +author: Lou Stella, Splunk +type: Investigation +description: "Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table." +playbook: G_Suite_for_GMail_Message_Identifier_Acitivity_Analysis +how_to_implement: This input playbook requires the G Suite for GMail connector to be configured. It is designed to work in environments that posess a maximum of 500 mailboxes at this time, due to a limitation in the G Suite for GMail connector. +references: [] +app_list: + - G Suite for GMail +tags: + platform_tags: + - message_identifier_activity + - internet_message_id + - gsuite_for_gmail + playbook_type: Input + vpe_type: Modern + playbook_fields: [] + product: + - Splunk SOAR From 58b58d1c638de316e7cbf1a25d15eb0571488aa2 Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Tue, 16 May 2023 10:20:25 -0500 Subject: [PATCH 03/10] Splunk Message Identifier Activity Analysis --- ..._Message_Identifier_Activity_Analysis.json | 406 ++++++++++++++++++ ...k_Message_Identifier_Activity_Analysis.png | Bin 0 -> 49186 bytes ...nk_Message_Identifier_Activity_Analysis.py | 256 +++++++++++ ...k_Message_Identifier_Activity_Analysis.yml | 23 + 4 files changed, 685 insertions(+) create mode 100644 playbooks/Splunk_Message_Identifier_Activity_Analysis.json create mode 100644 playbooks/Splunk_Message_Identifier_Activity_Analysis.png create mode 100644 playbooks/Splunk_Message_Identifier_Activity_Analysis.py create mode 100644 playbooks/Splunk_Message_Identifier_Activity_Analysis.yml diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json new file mode 100644 index 0000000000..a493220bd9 --- /dev/null +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json @@ -0,0 +1,406 @@ +{ + "blockly": false, + "blockly_xml": "", + "category": "Message Identifier Activity Analysis", + "coa": { + "data": { + "description": "Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table.", + "edges": [ + { + "id": "port_0_to_port_2", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "2", + "targetPort": "2_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_2_to_port_3", + "sourceNode": "2", + "sourcePort": "2_out", + "targetNode": "3", + "targetPort": "3_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_3_to_port_5", + "sourceNode": "3", + "sourcePort": "3_out", + "targetNode": "5", + "targetPort": "5_in" + }, + { + "id": "port_5_to_port_6", + "sourceNode": "5", + "sourcePort": "5_out", + "targetNode": "6", + "targetPort": "6_in" + }, + { + "id": "port_7_to_port_8", + "sourceNode": "7", + "sourcePort": "7_out", + "targetNode": "8", + "targetPort": "8_in" + }, + { + "id": "port_8_to_port_1", + "sourceNode": "8", + "sourcePort": "8_out", + "targetNode": "1", + "targetPort": "1_in" + }, + { + "id": "port_6_to_port_9", + "sourceNode": "6", + "sourcePort": "6_out", + "targetNode": "9", + "targetPort": "9_in" + }, + { + "conditions": [ + { + "index": 0 + } + ], + "id": "port_9_to_port_7", + "sourceNode": "9", + "sourcePort": "9_out", + "targetNode": "7", + "targetPort": "7_in" + } + ], + "hash": "2300cf9478d779f27f57247e8fd3ad913e31d940", + "nodes": { + "0": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_start", + "id": "0", + "type": "start" + }, + "errors": {}, + "id": "0", + "type": "start", + "warnings": {}, + "x": 20, + "y": 0 + }, + "1": { + "data": { + "advanced": { + "join": [] + }, + "functionName": "on_finish", + "id": "1", + "type": "end" + }, + "errors": {}, + "id": "1", + "type": "end", + "warnings": {}, + "x": 20, + "y": 1370 + }, + "2": { + "data": { + "advanced": { + "join": [] + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "artifact:*.id", + "value": "None" + } + ], + "conditionIndex": 0, + "customName": "artifact exists", + "display": "If", + "logic": "and", + "type": "if" + } + ], + "functionId": 1, + "functionName": "decision_1", + "id": "2", + "type": "decision" + }, + "errors": {}, + "id": "2", + "type": "decision", + "warnings": {}, + "x": 80, + "y": 148 + }, + "3": { + "data": { + "advanced": { + "customName": "input filter", + "customNameId": 0, + "join": [], + "note": "Ensure there is an input" + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": "!=", + "param": "playbook_input:message_id", + "value": "None" + } + ], + "conditionIndex": 0, + "customName": "Input Valid", + "logic": "and" + } + ], + "functionId": 1, + "functionName": "input_filter", + "id": "3", + "type": "filter" + }, + "errors": {}, + "id": "3", + "type": "filter", + "warnings": { + "config": [ + "Reconfigure invalid datapath." + ] + }, + "x": 60, + "y": 328 + }, + "5": { + "data": { + "advanced": { + "customName": "format message query", + "customNameId": 0, + "join": [], + "note": "construct Splunk query with substitution of input" + }, + "functionId": 1, + "functionName": "format_message_query", + "id": "5", + "parameters": [ + "filtered-data:input_filter:condition_1:playbook_input:message_id" + ], + "template": "summariesonly=false count from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.orig_recipient, All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename orig_recipient as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"", + "type": "format" + }, + "errors": {}, + "id": "5", + "type": "format", + "warnings": {}, + "x": 0, + "y": 508 + }, + "6": { + "data": { + "action": "run query", + "actionType": "investigate", + "advanced": { + "customName": "run message query", + "customNameId": 0, + "join": [], + "note": "Run Splunk query created in prior block" + }, + "connector": "Splunk", + "connectorConfigs": [ + "splunk" + ], + "connectorId": "91883aa8-9c81-470b-97a1-5d8f7995f560", + "connectorVersion": "v1", + "functionId": 1, + "functionName": "run_message_query", + "id": "6", + "parameters": { + "command": "tstats", + "display": "Addressee,Recipient,Sender,Subject", + "query": "format_message_query:formatted_data", + "search_mode": "smart" + }, + "requiredParameters": [ + { + "data_type": "string", + "field": "query" + }, + { + "data_type": "string", + "default": "search", + "field": "command" + }, + { + "data_type": "string", + "default": "smart", + "field": "search_mode" + } + ], + "type": "action" + }, + "errors": {}, + "id": "6", + "type": "action", + "warnings": {}, + "x": 0, + "y": 656 + }, + "7": { + "data": { + "advanced": { + "customName": "format message report", + "customNameId": 0, + "join": [], + "note": "Format the markdown table summary of this playbook execution" + }, + "functionId": 2, + "functionName": "format_message_report", + "id": "7", + "parameters": [ + "filtered-data:input_filter:condition_1:playbook_input:message_id", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Recipient", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Addressee", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Subject", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Sender" + ], + "template": "SOAR searched for occurrences of `{0}` within your environment using Splunk's Email datamodel. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n\n", + "type": "format" + }, + "errors": {}, + "id": "7", + "type": "format", + "warnings": {}, + "x": 0, + "y": 1014 + }, + "8": { + "data": { + "advanced": { + "customName": "build message output", + "customNameId": 0, + "description": "Logic regarding observable construction goes here", + "join": [], + "note": "Format the observable output object produced by this playbook" + }, + "functionId": 1, + "functionName": "build_message_output", + "id": "8", + "inputParameters": [ + "filtered-data:input_filter:condition_1:playbook_input:message_id", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Recipient", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Addressee", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Subject", + "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Sender" + ], + "outputVariables": [ + "observable_array" + ], + "type": "code" + }, + "errors": {}, + "id": "8", + "type": "code", + "userCode": "\n # Variable renames for convenience\n message_id = filtered_input_0_message_id_values\n recipients = filtered_result_0_data___recipient\n addressees = filtered_result_0_data___addressee\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___sender\n \n build_message_output__observable_array = []\n recordList = []\n \n # unwind records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n observable = {\n \"value\": message_id,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"Splunk\",\n \"message_identifier_activity\": recordList\n }\n\n build_message_output__observable_array.append(observable)\n \n", + "warnings": {}, + "x": 0, + "y": 1192 + }, + "9": { + "data": { + "advanced": { + "customName": "Results filter", + "customNameId": 0, + "join": [], + "note": "Ensure there are results" + }, + "conditions": [ + { + "comparisons": [ + { + "conditionIndex": 0, + "op": ">", + "param": "run_message_query:action_result.summary.total_events", + "value": "0" + } + ], + "conditionIndex": 0, + "customName": "Results exist", + "logic": "and" + } + ], + "functionId": 2, + "functionName": "results_filter", + "id": "9", + "type": "filter" + }, + "errors": {}, + "id": "9", + "type": "filter", + "warnings": {}, + "x": 60, + "y": 834 + } + }, + "notes": "Inputs: internet message id\nInteractions: Splunk\nActions: run query\nOutputs: observable, markdown report" + }, + "input_spec": [ + { + "contains": [ + "internet message id" + ], + "description": "An Internet Message ID to look for within message logs in Splunk", + "name": "message_id" + } + ], + "output_spec": [ + { + "contains": [], + "datapaths": [ + "build_message_output:custom_function:observable_array" + ], + "deduplicate": false, + "description": "An array of Observable objects ", + "metadata": {}, + "name": "observable" + }, + { + "contains": [], + "datapaths": [ + "format_message_report:formatted_data" + ], + "deduplicate": false, + "description": "An array of markdown reports", + "metadata": {}, + "name": "markdown_report" + } + ], + "playbook_type": "data", + "python_version": "3", + "schema": "5.0.9", + "version": "6.0.0.114895" + }, + "create_time": "2023-05-16T15:09:58.373153+00:00", + "draft_mode": false, + "labels": [ + "*" + ], + "tags": [ + "message_identifier_activity", + "internet_message_id", + "splunk" + ] +} \ No newline at end of file diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.png b/playbooks/Splunk_Message_Identifier_Activity_Analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..a98c7732f7e38700219621b455af33056fae3314 GIT binary patch literal 49186 zcmd431yEg0(=G}-n`A=_2_Zmmhu{H%ySoRMK!D)xp5PFi;1VRbyCygUcL)%IJHeeZ zo4oJ)egF60zv|SjdruvzC^l=&tXb1D)BW_*-8)cDM)V;H4hjMS!b5Q}Aq4~k#4H2^ zXfo_Bxbm}Aup3;^H4zk)6BiUDl(VsXYhq@IfIt~x9?mT(VEv@SGgjZgS3vP4Oxjx{ zw?_DrAM{a14CYJC;aRTe zwq%!RT9{BP^!ik0GPj5dd%;Lgwyt-;-nz6T*JDT5f;XJDk3!g=)IX3xQ0kjBIxnId zI+}vevdqm1lDfMd>)@n_QSx(BB?AGm=b;d_1vQB;Aq!~7jCAX4yH^)sc$Ozm$hCC2 zcb!V1nl8)t1H;(%p+%-O`zAp}ZaNbR)v>BqO{|=Gx|}aVs-H}Xrl09P+f{BgPT}7r z8Qma&19CnmgYVrR-t{90O$P|(uG zkdT#*fsTQg2ZfN3kjuv4Er)`T$Y0&Tf84~zc6L@A^z@F7j&zR9be1+o^o;E6?DPyw z^h`{&pare1vxS|W6Rm|U$)AV({Tv}f+c!2QR(2+q7KHHU>gikB+i?>U!w353=g)f@ zI+^@yBn#WWrUfQQ55GgtNXJ0`&$B^SF8EarITI&CGc_R-b08it1`i|SD@Lx{4*%`e zzlQv`uCM>q^(E7P>G^MW{2jA)jn;Y~8-NoG~P2#PLHBY?=RdqEJ+_o!g0`!X6+BQ88%o3*Sl# zLH-v$Tto=oEvS6akP%EJ=&j8DziHkwLS#y$89lS7SQHvGdzXe2D-lzLmD&NfU`x|X z<@MB;NplZ1=dkEW@|H*AZ$HHR_eSGs<@?X6kY*ceAF|q4$(PRP8m{V>f9nxxxA2Wg z4(>yt!NoK(RjVp0@%@T&JHZbWKiS z?*HfRc;yJHG+T6-BZ!-R*028B)8GD|bJZYv4aDHHGxx(UgkuJXrKHTZR87zD-WZXe_q@&$q3hI)QfV8!C8`RyzSxH*%){2CAml_YF6ad_z%{+VYJWuzJ5!riZ=IY zz16WP`}#DpTG1#T!P+qPG}llGA~yHXzZB-)w_G%F)`nThE+d(W8w63t2(hhHqb*}T z_;Mim%B|K`_CxW&Rn;^3eaRrF+x-~s2+rLcnj(CwA;M0{S{g!h6xxD`qk<>%v4 zp1poGF*QY1SXjuoY>fyO#}_PHm`A@ejsGJ&Y8IAC_JN5$tHlmS;r75gU?H&(vvpHdRLtylFwO=yTgAvxGro5aut_jvpNPfRRuIz@RYBWb)g!r$&^OSHN0k8Dqg7 zORTsq#U!D*DI_6>USd#o>_Y7O-EUli&@INUS|8!k+!zEPBi=y29dlM9?h=w zX=HY$kY~kIP@xGEKOxB%TaHS4Zq?$!m`>k#X!D%~3pId3E@U2Q+=Pc(sr?5w zK>-K!FU6K(x{Pk8u-rVG20x83S@#VycHJ8uc?Ivfqbkm&ag7_@Kyx&^6{LSn+}SiH>~#7aYYwFt~^PK`+}8{JG! zgSyU!L&VO9L!DApop>jD&fAp}%b{#@-@kk^8!=L%3?xLgfuwK__$A%%`$#OOk+?>t zX}-LC>=^Utm9A&hbaI(SwM8Q~RiQ@n+|tE|a&A?Z^{kuo-WH>R5gE?*Hm>8EsHGNc|E_qWWSaWjro@K* z{eukppB{%KIlURG+TkBPFF)IKQ1DvxW6`_Fr+92w=N1!?&!4YMgl^{|9T@EJ?l7-X zq&PLOG!9UsJ%pfk`5t55zpgWeup4 z#$kDfrB<`2rdGD3YpDEbh&W+3!XE%JJ4^AtRT(z5xgD#>PF z+~#nIAl%YzF@L|4b2pOr#xU%1;6{_WH?CQ)sPa;hzV2$-28Xqv^QR*&w56?*V-SrBSN8-{Ik5*F@8?bnW>Djeg$H z>?|G{>BEvNOEa?&@m3@#VYn+eGduB-Z=NGMeick&r-;+B%KjO~d;K~pjxOx9&(g!F zf2{R1Lpazl)jhkH-s87o?XRBvzC12>ZM!k$8>2QV1w_#=zaDG2;Kf)2%X&uE;wo{r ztbtyebCD8BXEliFwB8W+~Bizp3M)h##dgs8BVBSaUF2_-%lX+IzkLj)&@YxQz ztmW+#_o#DsT&gTBA8EILL4y*?jY7GwIG)(&f8n~-mQTnKg>otDLnYv9j8Yo(F*!Ds z(HLv@@lDz%Wk%bf+JVqR0wS@nx6mM*lT{qwe4>7!{!Hn4*s1XS!-q#%llklxilUdqY$}!5sclJwu&~+a58989yp*9#@W6Ta1k>M7<%c0#Fg*TH}-8;YI-Xf&dY*A?E zfHlPA*c*%AJ-tEmeTpn|wl=k{zTQokLg5sEs)fyi5cL92A@vytgXpSg^q4r+uD$bx zY;g+C`dOLOCdc6wTJ;8@l|I+uHs{Skw#@we03j-qUf6p+4;X`c96`~NdInTUN!{Ua z=Uu(-*AXg>^^T#JFa-%sAulh0!l0;PQ7zdWj?zKwwmUKH{bF64uPclLe=x7|U~Fao z4hqJDpstb0X=||U-D?3j<`To$VvhXih$OSDOd-W>p9-7XC0Z)sB_p}7^TA4Q3~z16 zZK0Sf(~1?SKev3^>Nm!zXfwOt zhH-z1QS^Q63$=|T-et2pp8nsHFVfIRudWL;Yl+M7>KhFmOv9&5i}f;MI4GEYm$mfB zbl9f*)+uAHTjN_)Pb-p_MzSI&)eydJM-;cgCRLfysOrs^#Oi+kJ1R+j#7eF4UFcb0 zk%!_4xoAigr_Sf^DhWurjYHcK4l>D6LxB%{m0vtQ>9Nfmoth%U>z5^eY$U$CLBGyXSYV`F5A2{?wmE954&*UtHch0K!46Gd9I`KrayN4Vn>uCAQ(B-M8m-R>58 zDk@Dt6^(eKT^3Ib+s84lc37rU}S8b>Cfo3l2Yky+?q)cJKTP9)BfjiQM~n zh{WOzH>)mS3$9rr0)P*W+9Pn(Ub*v2-$JSsV71RR5D?%t-$xKZ9z{k+4g-#_(8XC*LT0pb#Veo?*>qTF7Ta>&KG?dNsNE1 zA(oN>#2i;}2(|bu;cEUDIDB6At*5`|57JcWDc};7_+TY((JEd0Ujg{Pkmi};GP?q` z;lvuNLB+&h0NXqhO2bL>2eoTZmFsV!xTe1Oz&8z@tRprzAob#dAP%h8zyI{?c47z+ zXL2vfWo(8ixT^B<@&sDRQ>6`TCE#Fi!A14p(-vGO^R@5-QSs8~!?m>+UkY4QccqU1 zh$Nu}F5C!g!xY3Q?pqO@f(>?NBrNquRLqEA zw`6VM%yvW{PyYp{*$qC#B**+Y-G#S1<+2XDnuw(Ezk3~jT$2yFf6L>?|4s6s-cRD4 z5=_fP4#8(p;i%`3!lj|1>C3r5Hy3u!D$ux*5wA||;3u2_g44txYaT@XQt%~w=yRvI zq2bnq@qQ+iAHS$*&P$7F!t-u`v`}B#>jT$VK(TED)$Y5o;(JEovm2mF|vp37K z;^io`K&yH>BocVlr3H~%U#YQ^CrcFG0_|4n-iHYtCTA$INPB>*LjR^Cgv|u57!%pp zx{qVGO;&{=|MCTmq|)l@)X76qNso?N3!PuGm`5t-&qr2Ov6{XT0SYPtV9PG(eW(KZ z;Ls4htCanmd>)fEh14?&#q2GM{y2J1L6t)FH~pL()5}K_aZK+d#G_%rM4?`c6DWZ* zq5~zDPSJ;&{7mz<=_bSKiP+^NCZBC^K3JYMwG7|xe~{9l)o|L(xS$Dy`ww(RfV>g; z7=uP4f`h86ZC(34$yp8(EgnVQ!*d}O<&W>uhE^=GZXFxO#%3uQ;15`j0J5L8q+F~x zs^Abx>YmE*CvaaV#q+pZP9*KIyPv;|=e~II#&LvH=o>hUZ9pCCTUjA`FF|{HX)=qd z`h_?y_XMLv9Ry}yC5VjJfLG}TC$#$v6~+4*1QT;PV$;tLEy9+2eQix_&wgTX5H%1Z znN@!YDD(h8q_qG12?0IUB!hQKt>1ihrB>CtVrF+*(OX&FNWFfc@9DVM(dBG69S{L* z1EC+V8NR;v;oEC$jEa_1T`CjlehO=9>e-gF&0;7UJI%IwQtI~p%={c_>eUY{{a?m7 z(!F5kl2QO~?K_arcB!1vzCH4O4N2LhiYYTad<|_> z{p;+1;*RD>mcCZNt2@=3sWKm)PS9*HJ8PNxn~A`&Q%MFe7a*+RqM*F37ohaRAlFU@}X6n-dn*m_XmEdRRnF;*tJbkM|O;^;+$%$8A+0dX# zO--GI7VEiMptoX{vu6GwhAr_lJgxj!yn@?D>xYPsA@L{*b`Be9m9@^M6@j)ul0kef zwy5&R>>v0(!IlKVqvOKLnBsfxW0+3kSb%BQT%?X)5Qfw6+XM@I(nNO?_-8j0Lv3iq zEIMFOl0LGqHegxwovo0(Vcu@Yks1i!mLh**K-_^k;dz?GPbfe*@3ZvuJwq+&>3cq4 z@B%pzA=Xe7GBJzNKm7v$ZbL#1AeJ)*1Bt)~^81^E5rrMb5!Pbz-Cm3b>%KCVvyBG1 z0)q>qlE*<)^~eBBs9ZI1e9tEb?Jh)xkIftchGsbCFb_k8C4k<7x4lE*7B8)yt=j&{ zA6|&8WA@|q@5dYIGMf2$d6|WUEZfw>&DRlMsb9lYMvcMAynG2YkIDxeqP_%{5#HyL z-}m=}Lfn?EWz}_EKItwacIeYVX@J8$IGd>9gnawdZ{PF6ee5pG*@B}3Uud2tHIlf! zo;oIG$z+%x$X##ifN=nb5U@>OB$33&gS7rDm_A&M`EeN0T3B>Z{q=;+tbKDBvgC=6 zIsGu1$fZ6hoSF&=P47n)6Cq6X$^2#eTNumfX=)CW$#_0tDz>mH{uZ)u zS^i-ry9A4cZ$`^Ww!E89si>8zIe9rGhD$V`7crE|>(UuVilTyp$-jlU5v>S0drF#I zHL_T@>4~9eshVj6mShFKBm)YhUX(HV#lzWPMPZR)K|hRyE%>!Rr)%Di)WC;}xO@~= zGMGN<5`8QLTM`U^X^WYuR<4ir(x5(oNMZe@?CZ;La)yk1aCCP{m*Eo+OiF>>+%9&4 z_;AR`m)F7{Lk`b>1^2U!xC|YK+}{(cDRd6DbFg!IukXiaji!5ERC69YeNHN;rA))k z-A^OX&nfWXm6Dg8I=xG}Z>;H-%;ad}Nv|YJMd+9^OMrs*TBM05s&3{e!6+5;F7$^H zoijaUo>x|J({p=F*M#7cXnotQ`swk8F|@2>o;yaUl=_g6=%AW|FLi8)?&BG})G{A9 z>|SP)kem#z%Iwrj);h^{_pzOqe=f)454!u!c?dv}pr-pKURa3kaTGeicnv)vo(>gO zE9K6v*_l404d(f($|Ztnl*kP3s?oC|StCSp#(EMt7V#az;Y?(rb!iyD>;-W;-e}#+ z*DZf%X&E&=jgu3Jq<-|1KvabB3Wk1?=~+>N@{~q)-VqMF1o{7gUE>>h5}iNH?^9DJ z67Ub-wYEInRe6mR3|L^QwVgimXSwBYT_B;tIlnwqNEq~ck49{|O77UwC=Mv8?Agka z{f`Bx1y0#Z&Ab6>#L%GM*oquJO2o55%mNZ{aGJ?w>;QwU<#B1zX}`GVqx6DXnA?^g zLB0n`c%PC3(oQS|Qy7|6S9&E0bV4kGxOM~7hYno(J*P3sWecvYY>BBspgz>#8uAa# zmqa8GC%Y~fZlFY<7m6a?Q(mdFHftuko}w~~uaadeLq<#@?+FbTv&w8t=A$Aua4DJEO%)uR%03VJ23u4^x=#5|h)1erlpAeU!x>kJ0s(y4Xh7 zTI%!q&nlNj`zIdesY^^=3H= za-Zm@bi{ECh}tQ%3;kIp;9>2|;u#mpcgQPrCvtHe4p3qaSE7-5x{y@P0tBHE{LPA62X8K~n zHuF8FBPYXOIGC}l=co$H11i1_IK&OJ=3R3*U<_~yyH)=xWIeaI1Wr`H?V}c*(LTi_ zH5VMWe@k<3rZ8OB*A{{N~7ZFvAG`ugb!467QYVZOTb`K7xtzM?82oQ2Z z;^{p2!iN{7w)TKZ{x)+`!6gWxmYSWtu2z|->6@u~`x>X45S0$D+RqcmR{~m2e`918 z710@5*xTO`UWD82Yv83{ze2kYLA!+zb<-T!oNtq!zkDOohVN-J$j_Ygs?nO|A&8rV zCje-ZfW}CODyVxJ5V7KNyrsCjQ@{{piKgPW?{!RJkmpo<+j@0D$=c z90*W&@Q98uJc-ZQ`2#kYNkQvl-cg~Zv+VgEcB532>;pTA-6Y%o=tPebT#S{Dp@^95 zW#GOFGr1q9YFW_98{> z!0|*!W>AnY@Iiv4Ko6JsPbOWpEj7ApZr>*kz8CeQp<0 zFZsE?6p<{)7M86S9gU8KMo1Wd&V~pbCN0VRtrex;pX6%z`xjYCE*7mi@yYkvf%o+$ zTqGC(96f`iH0}Ppg9w{Me#vGTb$*Vfpr%G8%X1bTg3m2ME}ifU!+EaZ%w}1(DB@A4 zQA$|koMtH(dD4C0sENC!QXlD`)Crez6B#JarobAd@yhc|>93%0zCu)eX849F zg7wkcNXge^-WXU<{wGes<{wU>sU2--A-CUmbWX|MzBRX8lK6ozk_>v-$Z~a(D*o_4fpL3frE)uWBUaM?oyVZ zfpamwSb+t1BE5hmMBI6vcNb11m;uc2zcb9=e)Hzz>AzTjtaQChsT5#C5*osh z{)6%vm5g2tL{7;HXaalTCsr~<;Sb>~gCD*L(V!$y<9Dc`O z@BI){TE>mV_SJcyhLLIF%f{=ff`n$dSl&Hj-Z3A2qHsJ!E)IjvkE4i$3=8he%ReRi zV|u*p5x+_R^aj6xthz>uzDJQ?y4*WD_(vs7ZK?M2vbFMEX_ zwG=?$q4v)2aq#^GbjVlopX=e3(OREp>fYb_?fm*jbG^-^%D(reX>e>z$I>`Nqy4%P zD0IYvg~HD#EZcL-brinN%d`U^4Z~Vy4T*-Y;)mq1%+HVG_}@5)dyULaQO%4ONS5R< z*;Q5s^TZ9kX>U#qU$Ng!*kr>`qA=BY9Zg*;lp~AnYy_=NIz7dk(a5YXr zt$vtiIZlu2=nnEvWmxs?{1~e&%R^sDvavj6YROVXOEb}x@0mOkcPy$CvFhRO|KeiC zSD|^P$Yv19s9Tb49#5RN8#{f?c(ru*N~)@%QeA|gqWF8=>GQJ-=lN(~dM=HW`h~|f zlM@4M%f?zMS7U|!XSPgMO1{R^l>^QC9x@GQ)M}@}^PCxF{NxR*x}wi{4SNQ4E|NJp zMWT;6jU0RkO&aR_7S0zgex@9TO6bP8ss!H9ozwe%LS0jZByZy(FF&5QE!#S8QbW7Q zJRzWCZnE;L-Pu?R|N2I>n}0QRJ)l=|xMoXw{hejpZ~uXC!KO>Kc$f3ivYQ+peIfqs zJIN-+jl3=m*zD5hEenh$%6v-UGH0y=hQH+fC7kV*rCeyOmN5o!_@_^jMwSajQ=(Un za1F=FQlH`>g~pc_AC!NjYR<_KopUp83gNZ$3z@dGjKBO!V$gNUnDIHK4AHP`AtsAy zx#mQ2mX1VdQG@_T^f4Ywp4e1aQPmukxW+S97&H_p#R~j%o+e~7=QoBuH5}5bP30Az zt;=839q>@)Q^xhwsjp8CapIw`@=^`aBEoR2wMintjP`cE)8jNS9#(rHC=`M36h;+niCO2HZlVl{3EHkag zbPy>U|B`<0lw#d@&Z2)-heO$MoW!w*k#`f5VgmoF*13ISO|qW|)fg!Cw0i#@GLn+> zz|}~k#1b|Fmml%hbyGOm=U2aXoVNHs}S<)q9e+5+I$TY%i|5i+r__$ePJ*=X_>)a+5CVh@Lhg<{*`2 z`GJ*);HLKL7w1xW7E4yxtj<0m>`uJSOSq~%vC6w$xHm}@mONZK9e6HjXo^u?tHs-! zxQ4R_xmYHr-@}Yi0kx`~(#NTf(naCz+vF6s<#8#09c-1|{N2ZA-^LUN?`t&Y9AS^y zLTp8yfQ1+Hz6}U(C9}RLF0lLT*3q)2QHz->V+X4OmG|8}kppFk8QZMP`RSC5=)w z4@JwIE8$rfG3D*d_lyrFJVO*t;zQeWb7qyR%w$3p6VP4uOkw>TgQnn=V*isNfb9ye<%FE_jV@(e951S;x>7cRK$rhUo1CPl)-A zR_g~hkBG3PL;!a!zb!q!olX-lolWv+Xt#EBUm7?|YdgF?0N8E2GdR7S z$Z+U!}hfP<#M1r;D<_ZI0SadLGP6(FrNc?QSw_p^SS-|QfG_i;p7852g@=gi8@@viYg4I~x!g1^~Ug|~3d`+e{}Pn)|@ z^h_u5Uv%vNMgHkfWLPAt#TFjfa`}&@ak3P73t|lV`vve6r2Ah1m9;d{=cHe0?QZ$z zm!WStR=kj_oZ3-ntY3me@gHiI_=~+v=8RE#|37T6Rdc~)UB*XjBh;<{KCM~4T!KFY z?K+&Gl}=2|%rbNpIg5Zn^nl<$)Sj5Qsz3oSHT?EoJdE&R^~%U-g}6$ghvfA1biu+i zA_Q+CAQNJY7pP+5e4?VRJB(w_qPab7$qaf8Qt@Sp>^e=C(rT6OD%p3}jN>MBbf{;r zS+WcypfF1B$?9ue;5(cWGdS-*ArZTC?_o3u%*z3nghYS1FOf~BsPXvj)Xw*x(l)>7 zv@hpBSK`ruG9zN+!!vw7!l)noThh^aHd;4m;P+R4iMiG^fZ=qRnQm>?OCuTs1SZ~fXWF^ z9@!rV{|qL;rNHuRIKd;*K^8z=ud7$>Exv9bhtg&RW{G%3DC8a)cTF#%3?KA5boHHB zqNr_d_a&FA7NV^iJ++Mb5L`V?qW6K15BO>*#+`Dso=}TsGfU^?P?=g}{vbq$tBDSF zx-gEVq}@iGH>(f`KShgxf7%J^k)*`W@O8mRKYx}zVWTBjV#%?Gb@hy5^eBsqw7s-Q zAxWX9SxHaW7<2#OsCT~|rsxYq!~I0|P5n@w;u;EfADfJ?)F%Z1=b+N{nD?b?;$qf6 zR3V<2Z4`NAbB(ZR8*LUwBoS|b33Vu z3k%0Qb2;A}t4?nulhjLXNU7hZV{~ z4%hQ+s(n+V=)+C+P3H4!5M#Yc%jx%^JnBH^ppli|pBK^>NV`FPk!TyRhSCsRB;$#F zNEWC0;^Y;i!o^-^TJTXk*Ch6gA5Hi2^jt9DR08eubycQ7Kix#xFg7eiTNOMjy11;XlCf`MuP~-;15t zXiT3;SKXu|0wd`xY^Z2tVe~?^=4cDmAeloqWCK%!oJr z7LSVh&Lh|pW&rY^*zU@oJcDdB^5qnbE)U-CKOnmjUmc{XXX%HDKXz}*Bmr-s6kW0H zWJMW^|2ah)&@RpqU$vv5KXUV>vVYr6@7NiUrCdK5SqOVDTZN@Kn@a=z1@=b}#W(vQ zj8`+(g$MVH;%l1fqx+4;MJ3J^rTkGMIVGsGT@+PePQb-$=+dQEhj4tzdVI-i`-@>d z!@$+gpd9I85RF(!q|Z3>D1{=#%s+*SeHbahYlq72cV|Ze$2m4_?fvH&yko7c`NecB z`FlQ-uQ5sS9;RHmCl%c-_57mv7QCooN2n4aMR##t11ymOwjwN5OoLx@)?z!n{@}^0rS3@y<<1YQsEW(V z`q`5g?pg{-N0biFs*dU9?{p*twvIb7P>WU1A741x4sUK2-BfBi&OQ`hJVhQwi^T7S zinj(Ae*997zULWj1G3$QffMr`g#Q_j+P8`;q!X);m5KY9htKb+gcR7(_}_o~QRZTn z3>VWeI`cCDW}-o7JC+t94lfo-mRlGF+=Yqdc!uI7@f6WKmXVUd^F zMEKC4cm$HH+Z}=CZR}r&ZHOAzMb5*jp~<8ZS47AtvHu}h>>m6=VOOT`3{mYlfHS3L2NiYH5Tu1M=)-Ds)xUE;%!?{Mbj?5{X{B# zzo87R47bhuwefXR+>z$hi2~QEREGB|-Tu6}l+Bg&10lF6=!>NqiDyksYy)YBjHQ{ynh&9dD{=ZMoP= z+HMkk=jCtesf+S*_w2}kdsZUiO%Z6NZ2*vx&3%1I&kR}TFiW=juE*pyz0FcNr(5G~Bq#7) z$e_qNbbV_C^2qccKDo(>}_z$_36%t z=rIpSnBl}KK;0u{Fg-^-Yc+Jen4TkcvA!eO!X1H*;0=S*{bCPfZkcots7mF|<>|1f zx60W@CB?-v1Hl0=N;0Oe5btQHMP0G{qXc!M1~*q>75?GH6VLfAOe9XgqJo6bpgZ5l zpqHq|W_TngT=H*)x~q00H?5Qxr4qQ>Wn10?Kzp9V*85hLN{ju28V0%OeVu^pSliK z`r>FjZ9?tr>^?<|CDO!pzPAOL3X{lALFgbo-+QV+t=874_W`a#J}pf@`(0FG8Ykl z`Bh__?g2f+)y3LD{^}ys^@#DR!)B>;Ne!*#w2l5x${z(eNcv@Jxw)~A(M-1IVZq8; zSDm(Vb7flET6JO|!(}NX!LN5i+4Q@t-F|kqbl5W%PLul2eN6-A%jeQk>dl!#x|lD3 z_f4inm02{#?EDJ1s$!}pO;zPQ3VGG6hph01J_9Qsgqx;DM=3Q}*~AkM1~dv6Yt!rN zB|&cWKZ%DLuJ^7sF)Fc)c)P_n{S_>e(%@-iH}2w6Fj6uG`(hJvw{@o7_Q&GPgs2cy z-6On{KOQ>NA7PgYDTn?GGMvvI1SGhC=Y53Rd@(EF4t-s}{|@+Te1wMpgAL9@5a7Hw zD%j={(l*fUE4=jQe;CGz z!@v-{Yx1aNflULR@BGt6n|YbM|2aZncM+I?V4_7pkRjF$O$7S}yKV~&#RDz$x8$s)`qs1)D#@tNp?$T@csXgQwRtW$F?Uxc0foT$V#W7VqCB% zB;HgM?tJ78jcB|1A^(T^S{0YA~HD)r`kE#vFE8~PL8n0ttG^~(M?H_Zt%j>;E_I?7Q!jgyqKYx+P zF}ro`fp^)0kt%7=D73t&^&U6*4Xof>&Wv`!buMqFiAX9ar z8UgYI#zWWbCjYF@&h=+oJ6jj`%#M6klTSDGe_hlLvYO7!wmzm|v$&)%Sqya2Y3)gr zb_>u^Ny(^iK6pAcG=0$?G{7~+VxkDL;Z#)$`+Ya1!m|4`#BuLgEL|%uz962Nu#Aqg zXwulZ8C5mt%+7wlXH?v%Jm-A89MG6k&uLRc@q1#(o7%>ceY+uG^5GZCxEr?vYPFMJ z`WV}R1UeMB+G_9mXWi`5zkM^cj0ih+m?{IB$?*uqP*(Qii^f%*vh^d(A>ppx>b?k0 z9w(9S1LtwEZEZurYgM+Eq(6VZZ0W&}7T^P=NkvVj=BCnL!gcPLTt%XH`zdQYbyvzW z*~IaqXd#f3C#rmSgm#g=Y}wta)1=9B-O`7an9^`s&)c0xkrGvyKhbk2n?zc_#i^Xq zxWj5PQzrc`*@(6C^0JxqYWZWX4og*x$U@P=6rU{zLT}(*l&hy-%`<4>54vktgx+9UHCh-f-NQB#Qt_aG$abapgxjm z`Lx!fYMlD7guV8t3bkwCiu?BhZG|9d#(iTJQGubYdmQ zhlV-X*^Mkq)#JH+RU=Pb^t|wlxOA|OO)GZUXE&;-5bNmwAxr%(-|##CMVEGtM^}i8 zi$hq*4`}{VE+ZM)+AAZGOHJ3qRmKUoPR+1s&x9{xQ;#%e%zu~g6LvvCXqLa|rM<5g zmUkbGiYwC5)V*kNXJzGi`_ZWu`G@cz%W$bJG?O0?^_d0V&u$8(47`}pr_1*7riNp#_&!OQ&KK3 zZLh;x*II$-P6d*%S<^IrU>`EnN4(|wA?&SIE+$BPe0_3Byo#;xX4pw%PM!87#W|Nn zMlJp`m%P8s?5t}?)?1?YVO|awgRaZ#sdJQ;1Fq9UUzl>SS%v&$o>QEp9A$}7Gkyvmj@Z4!BJ z->me6@JN=B;jDExCSK><&WBsex9Giw+sU2%^i=l=E*hJW&BH{LkFIMFBrW;4?{D76 zmyHa`C9TyuujR-PYzPEOg&BET2NyV5d60{X-|>bM>atXS2zB3<6*iR~uMG)ocK44j z705*JeoA#d#Acfgd7mL@pGSKxmp;_~r27#wcbri8OLMoT?)~6Lu1EB?hEqB>nC8Ep zLxd#(KQ`omhbb$}Cn`0<<6QROISaA!XvTvHs(Lcdx>Pg;`D6T;V`48#I6=Y$72%|r z_mjq_UmiPde^~o&EdZ_lQvnVx+Y+^;DG!J8mtY(xKZADP(k|c)2+w&d@xB59^|6bc z!C}Kd`l`D*u^@&1D>*7BJN{Ok0w-Kgqf%M}3mE9g(B})xp_~-3jrtq38}QP|v^HcX zI^@T*tf*%33l}Pn>o#3A1X1Ky{rt4)XK``oLzU7|mqk#5|06gJFJYMtOV1`RkCBPS zwZE77sxKB(<83BF1M_5Yue*jt=0Djku}pAtmUH0X?0+y4^YyK3X63AigNA3>a2fNu zP9wco;$&)71bP8FyR(|^vM~9Ob`Rj`QzqwM6NaN9#=bXtA1VZpCrFaR!UzTl6t}h> z5!iYpFDbO!VEE6EAo~3gqx3cuo`wKs2jRsuQP(qHTx^2S=-1FJF`6vhiZJ10+(;JML% zbtFaoVpqjS!0nQxq|)ILN-mqA|I5M7PGT|pVMgk6fP#5JsO5GDQq;AzEjtl`{H&ZD zP9iCD96v&`w66%>nc!VBoj~D>4J0&7bnp0hZoPi()4LG{K=p%EA7Iy}>b~)I4VL1t zN@a>B8BwjvN@9LHYAjscSGI5jv19g|>4(@{LOne_QbYgBsNPpDDhwTB?Fr3}xO}eC zeJ138Ti8G~V~z$g^y_FE2QH#)Sv6D*el(9MM@rZ7OX2dW56cgCgf@Q8RG8CmaZnx6 zzNJbX=zv#!{X>C&w#=w33u0g8Sk{+UFzNA4gnTIWU7}ah(6C&T({|n1+vrTJ++p(A zaU&vgf?y@15((ii^jvFjBEPu!l`o$N^zQgWyX^H1!|$JdlV43&<{KUWBR^Nh{rOT1 z>dgRv+_xVW72GrsP_x3McS#EB`7HW!a!sNN)URSIDl64m89`Yj{4T|=$2h5*+C;9|T$93WdL9jXBZr<#yf zN0i~Mshpm}b=Ufp_XF!AIo;sjXZ4BXMCfge@>S!B;|%@)8Rp3A;^OsPjHA4+ayr)EVVIxWxvNjHD9~zW7^xk%E?(JiE)tE zlN*Wf*LMM2*Yb(u^T5_(Q3^TLnJ-+0)d}9aetzOpoES>v0)qARkZ-x4jye#evjYKWX(+r>A)q(Z@fmE}dw4Z%J zUGEVVP2oZ`S5XJ=eM(v1q?+o#Y3R?EIuEGAc9RM*)c5KTttw6A>t9O^WvzdU$Z? zw9p>6^aJG21!6d|9DfdTE56*Qn}78?%#n+F6laDiCyCOt;lLs{FOO+m$JwxSbZo2# zB<-!3i8jg1IU5za{aPfj=Aw$0j5`=!mZWcdA?mqDiOp_fV6bUJySp7jgO>Hfj;xlC z&=e@laacE@Ds<)gfZuti7E8*3gF}H|eJR8W-c|egUiU+}mY`=3iF;SM8Dwg0dzr(@Y zTEsgpmLniL@P|qM6FkiIp~*>H*#SUSQk2!EXz!M;K8aFEC0Rd4`z*4Z@fQASEkN%e zILb`s9WO=6cJEr&YF%G-c_#J!uHq~vspt;DzSkvAfoCb#aD8rbkn3YVHpa^~5Hsi6 z=1TnO@ND>wXR2wD^7li$5>_K?-%Sc>Q5j$#_)6eJ+1B-X-1Nf)4q=Cj`QYU~n&POH ztX{*>+|HnBGk?G0<`bQ&v;y-30#AW3_7z{7mg|dnw4oqOOVRz&7`r+gdXK};yLoGj z&ikaR)m=&KCq3X^H(S$h%qi1i?$Dp{2&<~H9rWBa?0d){z@31g{moYTW!l-;1RLq- zR+$O2!Fl*Ov>rz(K(q8WI%#N5#*)38W%vCuC(|g^68ie0B;d`*#>PI?`5pM=5ky+L zQL%Qx*t|x)TZ~HcYP-I&h|t8x;M*c+>jRRF3o)32-=5fAZ(=}EVd~{9*Y|KR;jCTO ze9Hvo6mRO86*gpt_VchD0PuJP;7j|IrE_s5ihRXS1C9@ICqW8uc%lGg9l6o}lhVeO}ifp zsv5;qf>0C=Bll*Lmlw`Mx*a~rD?N&R?|ICe8cFYYhOSm;7vFGoETJLKUhaNvn;HR1 z)rEJOZ+6*xqe9N(_=u{MN-D!|t2~=hT?{{k#LG#Tqqx?6qsZB$wB7@Y&|DM=9n~Tz3{~ zNY%;cU*WgQ@?I$|5@{xvY}88Xy-k)P>Kt{T%>LdI=lqqo z+Y0k)P*C!?mg<9@>YJ}Csea9uXEKYevT;=d@ds>Yb0_r7BwtTmlC8d3?=KQu4OZ~? zD(*fdIQ>~VUiNDl-Lp}0V{^0bLgSoZ`}*GV7xay%1)w&TzV@h!H(-2uBj1z! z#@Q_8atJ%(5dn|pA^v$AMSo=Z0FPk*t3`~C&mxK=Z-<7KWIfMq&o)$>U$D)(1#7x) zAMJlTknIhozfuLI@dGn?gT++>X1Thigts}W;9Emv=7GtGucM+UY*aKGzt%U*m#ioZ zr`fQmzk1}{JLMqoQRi}Bb-&lNnAvl%*=`*xbeChcxZQAOYdOweVPS7bC2u<5 zYa6yJ*{rtTT%9tJFnwhA`D~&!Aw}(X=iZ~2Qlr`bi@LK6tMcvIydo-yC>_#W0@B^x z(jeW^0vl;INGZ}O(%m5`jiRJMW3G+==Xqz|IcAPI-ecy&e1*+s@B6;)>ssqv z>-?>?=JR9cjEv*xLhsFwJET&cCG07$IBmuayEJ@_`(qNabPBwVlZ=3~KPcx{$l)3b!;cE{;etYu0s1p}qKZ&{M~oaec>5iGxO% zm(DYXU*gZNVYm6YDUnsyWB9ld;H+YD+xrou@MWy@_R1m!c~I&40d$?L;!o9+HlrY- zy2C5sgf&-IP4s$DKU{_;SxRI3T*9C&A%hUplNp%j5O?ATVzqmIn&pgogKjfa-z-6N z$y*_bd*I`N1TIvD*kgPDd;fU%K&Dhe^%ab($^4hq_Be|<<#|}EMEH>6?HAA03WHZk z5dVT{MS&gD0b9YFgE0?dwxuTsJk+2w2ak4QC9uV*Pr%{^DFw2KZ2qLMs7M}%yJ>&g z1Z=bQxuZ&6ocYFCeYv}}YqMXtd!`aY-+FGUu8AWuP>V)=hW@$EMb_K4d3qLG>MbUC zdycZKZ}9{cNZ`$2a5>4f!jY@b%lLlza&}ApM^$HS>P6DkZq6J5I{#8gIG@q+s5_{^ z^M*C=r?@xTyT+Oori3{T&&>g9gHV_jF~+A1QO95CK?LcLP&hzhTz^G=#cMx` zxm!xmJ&?e3o0n>nn2X0*(^p`#<20dq<890XgmbV-uS7Gs0efR%p$_DYQtr}`TO_Z^ zbt@5cyW2iDyk1ajE+MSoC?Vv=VaB$m6PaOW_i9Pc{LSW8FUg+4HT}7)P>`Igk3XrmS?Glio{i6O zbaISc{d9|~)Rw<2y{`2HaR7Tzzy@0{dkSy+2=vL#RXk55Kew-N6Vm)8lY!}jIQzOL zn4|Kw?pf22`+A;~1a-6+F7Z0;ulG-1u=mSf*4EEVF1k)Yj?#{U-}{<&E2Y|RD0yBl zZ8?8rV{|>yw!o7rkET(=NKUz0#$WrgXlv#+BDa;M8b_1zu3@`=?x~b#ee%xoW8S`B z)ijg?7hB|L*ZaJX{omi(y*nxw()^ywy%=K%_Z;8%iho}4qhrYFSnpMV6yt$R+R#C& z15@`_m-5X%w0|f+GoI9vxLRn~`%r`IGY)0xRm07C`WE%tJ^|7vdSeXx#UZv*j(Q&C@et^A^pvf(2YUSBAx$>ces$J zI&yIMN9%It5{+Co8%Ok(iQAz@tygx<<9*$DDenbx@H)sPfinF}Q>bNvLX0svuzivP zJpxhZnet*Y9Hd2q6#<-i$}F-DS{OGN3Mmi8t`qlMMyO_SH8ki@SVUI@%|f z_INDrNz7LB;|imdW-Mb-(lf;2coH4Wv#ngfZ^EMT`c{&Y(`CT0WDNWY(ox+v#<5wl zh$3n0NbA)|BOD|D0C_&ByV=gPkc=1n!#L24Kb@MbhFDP)!<)&{wMIrqsc^y`B1p)l z0k}-g>P3xgvs}VeBf0IIV zNuO>8K^(k*mEIVy zGzb3j7v4ig^x}I&AhKzbNxn!YdtH@{urkTlW!@7Q%P3?6Zz~EISNYKv_)n}eUS~|x zENV-JKBpHzA79L{*y*JA2e1G#AT^tY>0&HUwxK+aeq7$H0jvyBVbHQr$K?z9mo_*P z;{HMrUV~6jWG8`e4D@nd6Zt#oJ}mbWRz!NoyoP9E$R-klFvU?@JRbIaC(|jBuT~`O z9pd+Rl=eCy*+qfuo3z>IX73@D0HvY;M_LutzT66W5u+GsA{8E6et+d4rS*AiXT5^# zWEt0-ryR~p*EfJwV!Ff2uSyvZOJ7zmHJN;=rR^BQ1Y8pU&ysF-VPW%ncMyQzr9GVkaW`I(ibR0K&UD%YwKj)-M8lgY%zh)JvqIJ|!Y#$qT_ir%r(o>XOvW>xVi(ZW@Hj-rN%UqQ4C z*Bf1i%X15Cwyhr@<&G0ijGx(Mxi(u;AZI8_{|5`?881T$orE(^E?P%m%Wz{(!ZK)b z?xZFd6eS%-)WRU%+|Av;yTKCR25UfHgWCrHCSY?2sJpa;BYAucK~vg?5t89YaNkiL zSkmdc-Y?*t#H3naYcxE5Ty@7uu>#L`UVUoY-SdqDiji8^BDQep(jR#3u>Mc}4RD!G z+D{>tnFYf5`~?p}Wy_6MoKQXm21e$H4m{IFQ7#D;C9B3u(?#c=+C`}Ef!7nG>@Z)e zs+#o)1OQgqJ&A{{^iL#%hrCTzY{(*eT+-`ucqO{Gf7B`5v)r*+EG`QM4H87ayG}t> zEwQ&de1@j=8*{&jNm9dG?|Mp7c2fVkb1e>^bJBZD{tdd;1o$uD?vB^}>?LLZRE3sN zY)cA?`=CeJRdJ5$*RQ|TLbMJx@NN5iI*IQZs;|KAc~wD9eRq^B1K)RyMT_a*#_Jn! z@ou!yG5lMK4OhB z6$H+pBJCLh!J0p11I#PMsBcT9=}t?5F_}U0)<($aa#qXsUA6JI7h>&Q6ReqaIg?%F zvER^io{nz{|I6MC3RX6@h5)Jc*Yaql0gBn2JB%wk$TlvI?|>b$32;*3CE@?`<)ekM z3&+TyiNTQ`z=){l?(W_L_W9MU#>Q69xY$oG^{TZ%=eY48oH*!;nYZ_h91tv|C53U5Kv`gM9b2`h_7{Le|Sj!{?weyis@ma;KtgIA>ApVu_XZTk63mqrw$SqSP zAD>KVJe#;G?#_W$&~eRM3P{POPf`2qaAq_w$@JB7VeGHJ&7aZ^%oWX1o-0Csqz(0+ z$#JJKHgnHx(Dp{?F$>dO$LERBY0^g}YxoPL%$G2qiO#>J#%Wy~c)uXg?&|FDZpRbym=%1V9_(AvG z54TZyyYCBV&Gys9Q8t^XklovC4u ze*k{6{(0C8c4Q^cbw=|70nor+*=RK)gEv=e-)}!{!>?mgC^+*MBi#o3dfD9lN+CuB zb#?V#`g+IcHm|^#mwx%G9;s}xe3tBtaNkAJy}p>JL%RI_$vP1glcWIN-9jGH*APVa ztPzI~^_khV>sE>Z*O-O?9;YEeRG}GR6{wthZ*_jLtqbcU?6Zac{9o< z8qDHw-#3F2DDW{etM!9$x5;nfNVtlfo-P`Mx_}E<9{BAFFy$=aZ zw17n`b*H%d1Yh;e#>HNe_@WYWzs})pTH@s7?3%JK4Y^lTR0P+rV*}ACOn>Xx^UQv4 z=jC%gUYVL5AS-Psmwxuu!H_c4S~Yy;F=1IMNY|usfDKzgL4no%h!&sgeNn@97QSGE zz9c7mN5=1vb@IL7Bk^V_0mYefkJ!2gms|E>bB+QMmWQj1Inki^Axg?UVRC%z-N*8kBNO~ zk2Q1G%BF8Fh?Prj6_2{RRAX4r!&{4qE%h++g)TpR^Ru0*?wtSOm#nAz zxO=pCYI!+2jO(XUYpH!qC;@>&0I}!#oTQc_|33HmQnE`Yfql`dlhmu_7qv%&pG`du z-`8%e>h!EjOKE+^VT@}B-DaPec@4r``;4fC6ka*4{wUwB8k2wHjVPo(UDl5^*5N{5c!bR&JIy;n`>r| zN}yS3qg~EIFaHvzqQn#ZG&RElqM+QWsw!5XcuzEW)w|8Io3!0`jABF0Yu_qm z=1RTT%Fj(Tior_%0eTev;^zFTsq1$*C*;4)>}}0;w%&UG+W#pa44_Mtx95HQ+SS_} z6Sg%ny@%PDrg4Xa(&5D27=+kN*pzz8E~5#lul84kZv4@!9-Peebv7$&6uC}~AIF#M zSzB9&e>9@>0pB6b0C}FO!C)V^Wbfi4(En%H<=knSL4mIB?&R3_BZGs3QFbbekG}}3s?Mp|_!P>Fu#(Q# zUNHGJNUMB6d{4xxP5ms{=1tBTL(NIadj?b0`uchaC@W80T^(AMd`sjbgllmC0;Spe zt+I`dDM)K?uT54+$nupNQsa%DZEPeV04zz{AiA1hds#~e5r?b_Hmbg#{4T^)*NHTU z*k01^L6pvG{PXdjbId~G*z-bSmbEK5G&h0~gl;+?sJ`guuB&}KdY8L(beI@)J3g)! zp%yYbdtgpEjkt#b4}9am&3t)3&dO0UBx5Rf$hB@=LYVN2!FOnLK435VHzAWL=WY5UgDHDgB|TS8MMJ4S zKPi&)_&kMDp{oUxWjTY33?34mauG#=6-u|=iHAAQx=I>6ea7+V2^2~#on@}&n3-a9 z?9TOcJF^`o4CW}hj-j__W-9rzEQ?6D}_a&hJT%9d&bJrM1wH$kCj;|t{>q0%Be zSJw61e;77y6XgMGG+3QJEQv_kVLN(9)G>QlbGd9G zbeT=)G945;Q}_}S?^LcalUc7$zUk)JzVnaY^Y{M6yiAg??A^!N#sWVl3^p@R`ncLG zhjO}(xvtu}-YxuG6PF6jO?hALHnznKZEXK)|Bc{s%R{{O21W=kAN@~XaO`5Y{+s>A z7D|N_p~H8!&AbW?`BNF$Q&+$yE{8Q;cBI~3X(qrzDB%^}&PAXtTTj36x;adZ1VHB2 ziK&gogJD&rZrrAKkx8CipBxvF+q-#skLCu=x=n!?exSJ)ei`ETEM|sUDK1{$ePTI% zaivaF#ZOb4+HsoMS+MX@N)Iw{9@c*Js3NqzEt$W`bw413LP!8uJHjp?bNQ+IhbR-} zW}o@@e|?a)+ka|bw{dzvY|$MC3e>3%6T`E!#GiCzY5oQbE|H+=ameN7Ge`g(#Ypu{ zSNouY@;pTET5hy)=U2U^Y@zQw=NqX=oN{Koop<_HF6S<*J1UlcG6`_MMHXd-*fI^wY8(pHyh76vp3N|U?yOHo5s#ZaJq8Qzs7J8 z^hSzkH{GnNa{Hr$WtOVvKLe@NEnRyb`@{4y{*QdTAw| z>uB56tt*{QOf=uPHM`|N#uuc%8qQqGq(Xm_RA02UpYMlz)3y^|l2N!mCi2vh1kcXl z)1MqoFyPud&-VkOns+dTCQ_CZDanT{j*qzbRTEvoIExRhlYo=N1gaAN zkxU$l6csqprQ&h5z?-B8;_8aBAE-6R;Afj#ISxXnE+=_|5AikioE18eqNX?n<)VSl zX>fbYUt>a2mQ6@d;e^LdR&-hyZ&HVMImKR(p0D~SRNOI=+3n8f2{1{(4E~Rz%>FY^ zAc^ruw})orZ_17Xuk za4l6I+)?)Lwu&-QP!x-*lYC*e+E6n zXXQ@sFV?A{8h<6+BAM3QBo$-5g$h?xfO~Vxd|HFw5_Dr%gF0iW!mZYG9@98N#}0Yz zC2mpYaECC=L5mc((R1zfufW+t^EdXgh^Iun+ujpGBBtL&+% zRAL`8$0LAX;vZ^nda2A2c~F1rJALma1ftuwr!LtO8p*M`Ps&IRTZxkg^ z(@kq|G&3QSVQW&qM=XYM5YEY4x+~7f<(mH17&t+w0jJ2`-9S(DJuE8tm;~%QB4;SZ8fL9hA=~@Cfe|WXuMLELTFPqY zvj@HR|0*2L&cPA*RhW)z*6E@ohJdK8x~jS=;M+uHEh4;c$}m@wr!Rk~B>jp|}4wTNktTF4asZXAmj?(R+Qu_XpAb7=(r;}iFk@2g)KKykS- zdbP}TALASd(3Xo0dy5tL0+|YL?)jq8vcNeGT0w(JR~T@g3|4=CTHi(#2`VaTB+`H- zh2&rR(7!-jJ|(1%;h_YoLNE z+?~jbB48np?%cvw)^>Q}`x+R7MF)D=S>q8oIhw4?6WP}E2P`D@+d&i5athCBf+1I^ zrY;yV0@#mz@fPxdcg|+Gjsa@&Nb~y)ukXJA~H8UUJYLP7uU3?slo}|+bnpi zV2r@YmrW$qQihU!%(l*$85b_gIA$nCIkuFCR6XdjQL(g~NMRR(FF}1^Vsb%1WTkw) z({RWES_dtL*{8pX0lt-X)di#F(r+^ck`OdF70N~pv`?cV@LIiKHO&io!O@oWrrEm~ zFlZ&J*?49B$d%!YrNe}%I{Y!NTRygT9kOq3YjBH#Q)30W2G``_*zfKpzLnydIrhG& zO0y&T{ZspLoc`v{^a72|dEyw)qj`UoIMW%i))jH1fMA4!r#N zfAQr&Nj(Pp;3&r6zae3Myk~^0yHfVyxFOm(4?IB~h*5SRjwnn~&)2QyS+6DO~QJY__Ja*}dvK0Oe zA^-0{Cr=8od@?@VaWsbaZ+GrSCXKWxm3whDMk|n_B7G93B}21(63Ik$@hN~w8dsu4 zUpSlggS4{vLve9-ER-jMqOru_bsPc{l|6RVFmI>b)y4+LwMI9u*~Hr(*h){*RPXg% zg3HNlt&^Qae4h1j3A?21a_IVR${=7yq9vb%fm=b{DT^+`vK23LlS?h&%M*#?MTToE!Q!{T~No?$90D;qV574CI))0>WLV(%wJfUjPH_)50q z?MEMBV+8D#6;>;?Mm06@ImxAV1y+1MUS7bL;mDXn1cgQdP)BZXAjd{r{0AFj2Cy+i zxVfyMt)#!xMeh0fgLgvSM??1gg$Up;3_ClGLoShY>NyVJuSq$;Z5eire1V{h2%)Sr z-|5POQ(x5DXz89{)1d8%-^*M^#{5J&uSoj7GAlDH@R6jqWB1mN#{Sc zR1c_xvl(x)WM(O@xnTkrwREyi;a@s^t2mra&#EQi1b3iLetoks2le^%*3K?!w}i>! zq9ik`2Jd4|zeih@5x5m#P!g3pqqX=8XSNdPF*t1{r5lN&#t3K>9u_W|0U4Icq&+11 zhhLC5hw;(+w~SO&f>AkZYs^z+ETU7)-G?rm-&nH$bUEKKmQDDy`rtc^-XjKdA|h~n zVC5HXS&)Vj=`efjR0V~QH2VR(s;tS9Ihf_)AXruIFeKT|oqf|zl(aLJs_+ENnX3N- zgBQML?WM^gB3g#?>l5kf>%5&E7XsG0L>}*w#Cq>e=dJ`2*u|}`GL~nXeSWF6=dQ*N ze5gLjK3meADTH*0q-8UC1FVqscMlc|7)m2HhE9Y1SnZ~t9efK{0D-#OpZ&AfWCAlY zgTs|POhgFaj(i2NafaKwN8qpwwBeAhuppsP&D~x6>b*Hk$LewNjao3Kor48DRX$`s z%8Q~t!cP!^N1&%N**t;AX)cRL%o5_9vI?*S2%nJO#Z#_|*`TAZ>%?6)e}mAMR8))= zM=+i1S9`jNie5ZZrEN@Tiw58N?537wySFvG` z*--RvzASlbX*)qZkAxs0N_q-?gM*AT{8AACkJ6(#KazpOzk&!WsV)##L@>9J2EqM+#R}&MH^$2@#vBJUHcJo(I zpP)&jpt?3?Rp+?$Un&mnsfBqLHsJY#cL>xMl_I#W$tCt(y=I}j8$M1fdi8_4hex7= zr&VF!XPeO?v6TTSpg8HfDgznXMv&KW(xpvsbzBbLTTWGD_s^fxj}YEoBURMebqZ$Q z*QL0!jg|n>u>}wvq5A52E6FP2vImka(vC=lls@DcnBTfi4ly}iUl?ycZGVNW^BU)q z7M1mLw`lZ9oacqMFQbUyTaH(ak;#SA=CZ=5z|^8qRj5RHrg+hjgt8uSN+!f-4oqS*VxHQ#-u8gS(6vml|k51*Rorxj+)vj8$Cg^UJdHGY~<*@!pwxi?z|SfRj}nlzm%H>b?QU6msbDSe-H>HIG#BofthQz!!D z-K%);zBJ`78r#h-l>5m)2g7#_hI5rjl$=M$+LcBoOjDk8JCSn$#>>Ie?s4Q(7of=kYDk#*GYmMW__2w=RVcgcL@2HYPp~nZo$6yB=hmyk%`#I z)8u|Veop*V89y>%gmlKO9Y!G`6K>zIfm6HRmKdFL_|?afuQW?q(*`Wk-=ik$i8%L( zwAFGqHpr@f_S4Ep30c`-1RVD9NwIrzO3BJkQIRX^e#11}3N9AV>MEJH#kK68oGLXC z+HgpUIoXIlH&HV&Ogc@4&t|H<^?e-rL%Yc{V2OeGA``}w485tP7EIVLKaNz$8H()D zi4vkgd2>6cKQ&?;f1Vt>MYK86^SyXt8JM^JJ_P1nT~pST)nAv)c(HTa=mywR+AP0D zEAa?4`LI)w1r>IdTXY56T1TPph6Yt|DSqu@U>J*3k+O(C)bNalWPg*vb8B?LDmv&a zP_5(T>%qaDwRTpj_5A&W?akl@4-t#RBMxa^m5b4uW(&#Jkq#TgTb0RnZ`Y~b>A9s3 zCqB{u9Z6O(!+6;y5tVMs$FrSfUCf1w?X)AN8xv8AV?2kxZLc<5)@vgbCpLyt!XiXj zVZ{)o+S<-bVhdf(T|yHRLu|QU*Zd?!TI=(@sb4UtB1!;UC#*l1SFaz9RoK0#FG6&! z+B3gPYdV6SWe}I){+NaA?@7|5Kw(ydbeDL@f*9wAp0jb&jnV8!pQz?H1}O}_p|{Xt z>x8GAt3t)-QGj6ttB=%Z28E9@eI1k7f(=^#fC`KJCv3m4iS_4QKEfZt z*)RS9)&kmTrK^dm1NDn~aO5RrCdg%YevA49Jo`PUx}JcEuvx~DtY>B0^+^AW(r5T1_-rMs<*8K3C5QpDKGUeEFp}NFcGHB!eGbqV+#~ z$Q!Gph%wTKmC} z113Lp{`lQpJ7uNC6>RMNNVkafO1-RB^@|QZh*s<~uoj{;xt2Jw{$oL{`l*xU_8M>X zN_n9CP5`Z}D`@N*B@|TCwNp$F>z`_X?7)(xOhsuCoaCIxPSiunQKJO-!M^HQP3|GR z-^8Z@-N2%ClaCKK>po2y^Ke{jtj9^XriLEXP?N*grxRu$UV2}8|J zc;o}(QoVbVikM{cvZU%k#U>UzG-5gO?3WCoJf;Tt+?F0=^wHQH)#0_e&53dl?&Oaf?#A}-N7+KpW@XG~L z{p3Lu|I)NX?<0(WF!65Oih4KuL?Q1?b)+gj65_Eod^N) z2dfQ6YWMD^qP=tO2xf4F2_P04ev@rCvWC&pO)glmTIp(bBH4Zp8sWt047=(DL6!g1 zm8o7mBeBMm79}73Lk-@C@m=h?N=hzo>O12Q3QfnvO!;?0vm(#F$7t7vfjMg_XBi(u z0@Nu(f3;`-EGRD@+$T?&zJARdN^EI+yo$mcrJr9GY@?cCGMV^M5u!_1@w4YO#K7s% zeI-QTyqaNQXDs)=uJhjrdWug!GQv@A_+txs2pzNs9bvpnZhC+QpXCLQu2ghX835!k z78$c`3ez^$>V-m~8yNlyjF))X%OQXSNs9o=wp?rQNJ>-prZw+-M>GmEw-RXBAN?rm zM!v)Y5Rr=@?O048_4Q%6KNG4UCHTU;cUsf@&$!g^*{?^jdaeuS)S+#b#65B#yvM+t zXOj67q=h7oPRl%3{oQE1ES*|0v=6x=JbtA+F7fb!<(M_6X_oLg0q4skgTwdE+0`%k zlM)^vA^L-@f)vcDs}M`8s9?~2E!N5l%vt_CniN>9;tPnqKPCeM_bg3k%OW0t=qC8y zkPC>Ad_fMtJ2+A9jB>b^a%r&mOVNflbQN&Tv2c+|Td1MBfMycga^Y;P5Xa+0{4UO& z8PX#Ny%DXo@AdodqQ&`(gO{ElS>f}|$?0Jo*WT1qRwnBcylen+iAr1O6dC>gbgfdi zx~2icU;SqGQZ8c=4r1R%bafl;eMpChfsqH|cp{giZM+=WXuCh-?g{J;89e&s%X-?? z&I4j_0q3ySc%nR;$H+|_RF50M(Wi?HhPvJLTN1JL;&Y&Wiz_o~b=R)jeqd>BUC~AX zaGL+R`ogk^kYRSi7GZqOqSI_}Evg2`zsr2ZC(8a6`3vneJOsG{GgC*s)@}ag3%{uq z+GJA+Hk_!P=>V;qk;L;X#Vsz&jH=tZkeQOg{-gMTy%v=Pmh6IyMv2@{xd{&UJSXyI zOMCdLER+31!-}I3$&NwNO3#woF%Dpuymte!B9jSta~jDoI-9|kgq6}XRcETJ3euA< zYPjg52Sg0l98;K67MgTI%W`t=7yi$4j!+l6717RnzCP$+b)w)s{)%#!!U~f5C?AN> zq#@j;e@7rQbb!a^Abht6+mYuGHtk;l=Wbho|6&gnJoEN-2oiTm^u5eq93a00zi0yC z{(*vK+TV%AhB4nC{mrtuz$I?lc!CA*K)iQ91Y_)PMtT+qk}!>CFfavO+ydk>cl&R? zrUvNv(mym;VRoA!|MedAd*_w6LS0yl>;y+$aRq#$6Udjq)Ltz3)ZV*%dGOyCrCKrP z-&r&TmDYszL>7D;ZTG+WyXX*A;O&8Q6ci6YF8UoH;PupCCVz}&^l{A{J%u}p$c#%xuT}fu)R8-gzEoZIIA~tZ7HH1;GRFCDx zZbfFHXO_3L{?usFzM$7f#YaK~ih;*(N%)8^!+MyT0TTf+I1(NadY~p}B5fZ)r6iMs z6sy^b;!koI(}(t44mTfZv)wXk*U#Hp&Wz*5Ze2m)o6lXgm#FQ>E-}WmC3mwr@0$h{AUEu^ZSl`(A#QQuMQeEBond?df z#A++~B-ev@-(Tz6;M2P>NGjvs3$<^jBwmul^+&SWp0`lb^cxVyIU=WV zP3OTnl@K4OFb)yW^+@Ar}#z3uhwV7d3j|gu>pgXIb^b{D_LqKsLZw_ z?3H5-`B!C*MDRgT5FOlpxQ+ggQc)K@eX;EB(S}&|-217~A4J|mE3Afp-Y-;=^j@b< zyDXj$mc9El466w;2_cS}G!iqtO26#x=DJlLW%SmpOWvq(NF7(A-?EaB5}F}OUbyOw zXd_hOUo=$REwXNA@VYpOd|x`p(p~snN#HyU4_~5uIkTn z?dCJPGwy@5Is@C~{52Dy<5JD+fe8jW^yUgjJ&Y!@p4#^kV)`&#q#{<6k-@TF)%#|# zv4gobQ*(yAR+HD2eO)H;dQ=Ps3HDE4XCG1s8g9QYANp2dI!vsZY$3r|KC5lscm*x( zETJJ{PE4lbB)b3m5u;|PY|p$1>-A67Y}+Msx1CX;?l39upZI3S(M%TNY8-jZY~(LY z$~R*SJX9;xhDX1Exi4;fL|z{gWZC=T2@|;>@iNr*w1NjZsF8{@q0?UR(hkE8OQUo@ zXw!o*OJtr$R8#w^pJ?0G%b9f9SzBXYXJK}1CBJ}whspvGPOmb4OS0#l`-SEEer5}h zm64IbX73mq=)7QgTf(D6&nu%g(mWPAm#1G|gx1{d=dne(w`UEY%UQ@3UTqcGAIB}o zS6QwvT}|1+WO)zGwB_xK`f+G5Alf>33OL|EOD9j6bhJZZl)=%7Y*simr+MwPc*_S#9@yT?x|BQByw8u0Nz z&jwLfa}HZate_|7?-EbwKrz2v+;sxqEQulqNRIHJL)LJssZT#T`Wcw$NBPQX`7Iohk`Wv{ z%h>%N%5-EWJXDTCYoP@birEpTk<_?#V#8mkGh<^9)C`+JdAhi`;8q5eUY10 z6rU;BGVm(4Ek;+d4_ZEMlTrOq;HnKW+s<*8CDXlmGUZS_0r#SH3*he=oSgjSg(cB` zoka@^*tFVk_!=_`%Zk=an%-DtRBKFF-=-=Bi=;5oVTwu;eyaS9)l#)KzyyutTxmT$ zq0G(kZ^z{TWYTfA&-Z0VA25UD6cj=a^J7C3IeFXYj)iuwhV^xzMJ5dNRfT>Rb9AL-#cG#F8@U7i}iapEkxfAkNZ)%reF5- z=$OiN<7k)7ALqG(Dl=d%f;?Y;1FEeWi5=Przu&Qf}I%wjEO7RL62# zj%+6ke~vvkG{XoOB};>3AWO;sL$R5@KDGe!L=8JM{MbEC99W$-WK>}56Wjde@=X7Pu#ZxCoO_dp$aC@nn#a6ns2wvZ8M(*x1tz~ZYB4x`0 z6()PKf@P=Rowxku@s?LOHFdBm5*9W{g(TOA%1$x{@y!}B4KI563NsY7RrPd+FERmX zAMtyf7^UnXL8jW*>lb4MtQIg51VmZidt;7tM;RUjuVi;^KHkOMVA$<^-x~jeQyu5% z%jZ$$f)miQri^TD&Q~y4&8{Q~(pd^vm8W_!d=Hgoy`u>E+=G(T`nS3Bt~MLiSmb%q z<8`Ltz4|MtOp#E%g(EF6r$280@H)#Wbx$m_dGgcFTJ;H zm)0wxw>RZOVbROi&jn)~EkxSKS&qvM7sxTWECsbWzS>aC) zabL!OeqU+yb_q%08sE3JwsNr3;D!_rK9VH8P!;96NQ-*ZKHT_JjAsO#YGHyGNEN@u zYL+Mz0gAgPT2=8TW4o;NMACat z1Q@HA!0qs%NViH>qezR6#(S47j3$6}!%@F3i3^6xa}?oc23!ek!1?fIE{Md-Us(lD zg0KMPdw_rZ4xY_hb&G?xXa^2i0#44h+!I=|QmNO9<)YsXN{nt)1dm`rD=YB^9N3%d z(x`);7XF7>OAeP;hrMyvLQScktlw(UG}j)x9L&IUsV{fx!y67Z`6)=2LL#gPGqIkS zw1R%T{S;yUC1rZ(~pP&7?UZ${EKG?Kw)Db9pQ}qTE=j>zf`CTK< zi2;Z#`6#0Xx&bZLvs2DFC zy^k4icqw6zRhB>b*!kyXe(gz26qgcv0kJBvpPTK5*ow7kXa}t4Nw?NHH*Orco*!VB zLpB@**p1qgsS_G52xV%*@pv4?X@fysr6m_6m4Z88NDGcZLt8iO_FXRj#W-f~s%uZL z*cRu6Q=g^d9~P+>gs_H+U!H|O>Q*hr64qoNZ{O~}qW5Y#3Wo}s_Ktkn5Ssu{6tNDa zuVG0*k@0Cp23g^`j%{T(m9KX+O{c$o3NuX4Ig_1HpPV9`Pgl(xg8m>CB&x>({43Pvi3$HXt1O+v~Zxxnq7uXZuU?lR)r@IGwu{W~$#dwzxb< z4*9``-U}756be9!ZQ%lYhb?gI_Hinw#&Nmsm2vklrIzQ)6TRYAEJ5H9Cj-^L2=?R` zR5g3o0i|6Z+EDEVQkLr+O9~2Pt8FG0=>$G~5CIO&+5Bn4N=~g}(=34UKAE135E*>> z>1p^H!jOC(jKU~l&|iuZ2@8Ihp}&7qqCOg_oP3CkPff&88(?mcr6!%Zl7s6A+O@br zbP`-K=U7tpB176QdKXK-7dsmqz-d_^=8!Gms~Ex~I&W~;lvwx)xG21ypau^L#nb3u zq{;3$j&tWHNy*x`Uz$E2t*|LZ*YDQp+12e|=&GSJIbH6wcjXFsLC%u=hLKxdIh!wo z!#6UDOVL+0`w^X^%$c}_+jl{e@`r4}T|cAt*c64-n@*}wzzn>aWiY_6Ts@X!BEdjV z4_;e1znr^GsABcgKzr&px^!;MEJ+6~`kX@zR1LrolWpE=D2?fUcc{SCArjWAj(SHq zvE<$=Vp~qC=wrRv0`(Fz9@tfB*KG>4%hlp_sw>}4W#&@U+x&)2S1h3g|D}+icg{Zx zU`*F@w_eJ?nWM{dHt&~JQK35P2{>OHSwqVwLeqdJ1T!Nn?}Z+!Fa2Bxc6*NF-#1*a zDqMxSwl+y+rDf)Zy$sKl?ZcJeZm1y~bK+zX) z`f97ug@DAnuF?x2iB~R#zE6iBnjG_P=20xu2;D?l`in!oSHADm$-y)Zcpn!D9_^XAPmYJ1vt4eaT}GWX0d<4f~D zUv}|QA`b=zv&}0r+oNeMBeRQH51uf+RL6t9c(^MI zFM*-7L6X>ex%mK4rnD2^|9H68m7|boy566@>Tz}E&}Ovl(sZcMUc0p=*{@w?-cCDj&lKz;% zsgsEftP!+a)npdBGi#QvR@V)`{rxDG=%7;xPj5tFNVWHK`z-)boNpQ2z64I8gPeCElrGZu0wJw*jrt&6~@<7{1-_s?>^KNH@pdg9yen zy@II2>r{xAx#=v*BJi8L`Bp;}$3G=u1cxb@`b!iO-Y_3p>7U5b^Ln6 zp@-Bv%kjrcmdMw0H}aPIcz*?GIrjaf*{=oRjo)J5e`FFR9!InSf{zSFDUv_}_P z_S{qIgv>S9yU$lWyW?=Qzd2^JyaKvv7}@4pNK9`u40_AQYLdD^9V+kq^^{Ay#9$T zK=9c@G&0?1Yb_E9RdbGZb+VZfo4oh4%guYDGsz7Z~vwC7P({`6s%-zo&cyVZ0_{84stc-l0i4WMHP zIkl9LF_Nyf(xHjt4}05uaG^`AJcoarmhS_w%4#B%B3}1^ae%HIjCbh}c}#40aU7%C z{Ia=m=d>-)djTcYY4MTH@nB>az^WXNCMMruRlbkJ3JYl0zfa74;QYE!)q#M^j$Jhb zSNDvg9Zk=?TT@?l)BiQ8?Ic)=fBpWM=YL|*ZpDfv+L4K>r0HD-i%{AFmmBGzsqpb&w@_e?w1H9 z4164TTNuul_@4L4pattigACNu*&hpk_hv}IasK{gcXqtzOv0p9oR_(c)8>l=#c;8v zBhfh$?)oXgo3rTNih>6#lc@%_n-fl@UMszPP>Ybr9Gz;LTK?-l73Q0}G(xr0Sov)W zy+X5$TVwWRo7ogG)+IOj@?W`s;F%v@N=yvMmk@NQa{XBGik0Oj^ zjyLKOG@#mS)-ARR#ag6#%<^kawzDk1X`|?^Tm=S#tomG+q2G2ElgzAHKVPvLl!UR> zhIec=Y99P}GUqaTnVF}Wvw6ux5ZVJQ>my=P0#>Gj$aQ-yCr>52H^)kQ9gK#Jy}zh3 z>OhCpOQmt8tAVMfyJs;#>)PaaaE+ISr!TE7oWw$qSK$1dImu?Yd?dD@DYC9n5Jsg9 z$_hLi%R`w*W2__f?(v6&+PAcO806i@QGz;_dtUL3Q8x_j&RNSs>I1Y>h`g8~oaM@z znsHs>*CI+1TwH!xX6v+cGifO3vGuN#00M|m4 zlthPq{3z{C_WV~bz*0qFH@8Kl<^mIATf?Nrh)%L{&Wm8O(o`u~leS?1gxu^cVdm*o zi-J^EmR6*v+I^Ao5vKGVk5plq_KUpOV&QGa*bs1W?)chSjr98q7YWmZt={WA zciXx%g`C9OPzOmlt4atT5&{q$ur>uV^lOMe#e2XzR~A2uBlu2ZA}LHTI&tQyW@e=~ z5ogAD91P#P4+SE{c_vA}F~fbY9C472evoT%P8WL@*?%C4(XSlo4X+Ts0`b^~30Nht zYy0>x1F!d5w;ghcO8T1g4=UkqGBg_?kr^1HJ~`Q*01;_rkrV?`4(XSVv2@? z3f|rQHx&i#Eyw}~phyNji3VJ^3XcByS9HQeD3O$@G07__Q2cMTeR(*QZTl`#q4cVh zGDN1#A~TuF!ZMS2Xd;@d`|9;2b z-~M+0Ej`CNo^?IUgvpUxz=kQO*(8kV}i^u@IftA9eaG!qgJS@$Wah&GWulr z8Y9xPfeT!1o+07~e1KL4LUeTs40R`TM#UFz-Oz?I*?YGFNB*t)O}f9dAE~p8E85W0 zD(ZBD{a+~d#iUdxuJAD@;PE@Li&_NSj@sFzQFmN=Df6DG8?63;J@?+~p0q)`Cz^2n zZgr5b%@Bjwt%w?Lq8`kMfYZjSPd!<7@m^jtHT?HKl=(+jVaE=yjX3Q^Liw#+(e z(HfeXM$Epx&?F;ac*f`#N+TRc``6`-=joz*o89%S9hv#=5qB5}iHV@yM7eszcP2~q zMn}SD*4_^RA=5L7b}rn~lcz;31pL>^SXsd?_9EDXbOsOr|MN*UJ?F5EaN|@GzgZEj z`_xy^s;bTyWi2}UQ}Qct>hd^k`5PplxJ~_}S0Sl?FfdypqD0I{9%&eUhFO@u`TPxN zeib>%kU^JwN1T^A>1jVlBJstJTh6LN@ZMJ z(Djmg_dhrzebr^8Ba47s3PIA)f=ACQ9)$^WC!v|2W7{aVqhPLU?p45iVvUuM@;G@e z$r;6Czd9|yyf#t$i+rI!(D0jEa(yt0Hr0vv3G;6unP|9(v=rm|T8KT*`r2ZV<{dK{ z_Gm{>o6E}kEZD*F*DeA3ae<)@nkdvE80rAc;t-`EWD@{r`q}^3484dJJ*13xs$rNw zKu&Q^&HdfuDeNAON8`TXyQY6u4FYxh(E=r8`pm_K{Q;J4fV8dTDePOUh$65z-;LmX z_mvf>_{a3aPvCFFQTcC}lrQ5?&-a)o#^uFcjx|ek`ZGWAQt@RJIDX=V8JTEPpXdV`2*2D%6nZ@ zT(r+4kLE|{ags(+!}ePLn>PAB?c8La8Do3c>Q5NKE`_~xpufIk0O4FkCm(@ByPP3F zx)ofu7|l#geWhs$2j(lwqDb&(0|DY%_}@P^UvvB#$xuoK2*Y*EJx4*!j)s$yvt0(J zg%+lUf!!nbGeGis0;Jm*o|zF%>+^(tW1u)gWNB?+kYLtbcV5Fr=XS=;$;{0&>1_N- z(hQ`6ZAXGu&5LXj+6VD66-WPi8;fdvc@Yg&& z3R$3}iy2^+=lSSUSTY))_5t!)7qO~9O?!nwj_B7e`Lp9psMb`OhZ%O`{E;A%R}!)v zVE{eaOu1&TgyJzm-A8#Di`1k2OZySk=8fgsylwXLhoYvI7PM2X6P>$nN0ZYC$y(;* zW|*~|hDJw8y)r|96Ojm?#_M3hh>5nAw{ z6_68vP0Xy-R21{7KAFnGjej2}(tH>-Gti3R&>bYIOEks%sjKvqTRe^+j)9uM;KjjsDhDlW#9dh;by z`t_gREUglrtu9=zZGRHiUugFXu*3_@Gc-gL_UB*QFpjVg-a^>szC4!QsamcrAHwCg zGS8L?sugW~yuvUC4^F0*=&lc%n1hqEK6g>J>)DA@7u_9KoHF^%&Hm<>gF8-~8VoM% z+lsWD3Da5?$eVa+$wTeqGX;ICMtG1J&&hz9U`heq^NuC1cQ1W@s5bk zwM~=yGnu!R>Zd#|dB-McD5lTRosYh%b@yr=sXce>)9kyrUlif8Br38t>iK`K)BF&CRq>84L!)kD8B)tYs5l zd|e$*=haQPmP_Nq-E@D4E&J80i^^i+;?t$2qddk>4=<;MNq$JzdYJjO8Y@-DcJ{>2 z!+zfwCxAj*?QUgdXkhZ8W#Jbi8ztuo^^D{+Po=WZq4`kZ**1VGc$=D?<3EK{r*C&Y zo^63v&-QFG_pXnZR9bsaM%z?vn56B|!K^S*&1Ij76%_8vZMEj&u3x-ZGOdRz`x*C2 z>;p(BQEGF;40`#KGUsT{YiznYWCBm)CS=VQKJ$QcGf-nyK{* zJvof}+~jAg{xhcnkDlY=)X5WQA}3#HcPlI`A2ZjoqM-&!``G0t0-AQ14wYe}PA{;R zeR^RTYZg+ReeS#-F_{a!Mj>{gof80wsLq-D=QsZs?7f!q$Z0Oelv8xv@}gY-yk-$Fj)~KI&U;k}mPHO7vCu~p^@T|>~iYk+^Zy(8p zT~99MxY^&au;MVLWsq=D#oE-}z1&$e7vnL|9dwplTQsF3J|cwW)Z#ih4fO-^RDZ)R zg=~Lu;mFMFPwu!Ntta0}qtgztQwrePvQ&>G-&rz@b$@g;;&cw@_lpYp^-3}ntCt}w zU8!W-Bg=VTK3`Ek<>pp(PLNu&yj5Vtbys5WHa1+8PkGypPY{xm`v_@GN$rQiUv$Uk z`;w?r)YTuR7d5ksCpY$%P|M?U9&&i~tkt>R@SAvgzvUAMZ)A1E@bno$UL<(!g-8vO z)TCd5V(Hl16J2Rc%*mO(>{aTIlPa|0shN{&dOvAqewAo4tmiGLW`$v$iR)D5^NkBC zDfPz^S=>f&;_IT{KkgOBtPdO7h4XsPAL%dCq&nyD@g~2+H~*5vcne$!C+lqnIDCi( zms)7@1KCaOt+m|5WXT#X@Nzo@>pwcj2!=fGgHASl#C&@+Gcy)z>Jn7u;TtFE%`3X< z`|GymR!V15c_FRy1R?U>xWxp{>Ga5&IM+*;I-a{Wm>y+@{fD7))G+NzSD5u7HpPr`Xopg3~UXDMQ1(t zP(I!6qmtr1qj*+4b0G2K=D?njiTAV*3fJW`W`{;#@~Q3F8S40$jGF-HW*T+u4dwDS zXWgN*oC2oo0j=1W7ta?8cjK*$S+BJFm?yggva2nWFO}B1R%Pn8XzSv>%;hWYId&PN zuG7)6Uvas&JJ^+U1M_oaR+5vqW;IV@ePeRwXLRgy;YK4Dtwu3S)!fS??Qf{v4RL2& zL<0Vly*(_c!`CFfPZ@opvgpFK#%G?{{GzU_dtqle0{0s8-OjdJ#TIlG7EUH5`MJ3+ z`L1!CvU6s8MbYX^CSJB1gSDwpYQ~|i=htzoZefPz+<`xD$B~Wud8d~&8OkmDIMdfXt zQ91hlb{kFTqDs@?QnaoKliKCYlEIzZsgw5GAo&v9yuRH_uOw#{a5K*~xrDCO(EHfX zS|ZW*Uqqt7X=pvJ7pxNMOPva6E-ba9Pi%6H(p_Rav0fD~qTS^Nr5`P8jQ)zB2`vM`%b?0n5GeN;%TgT5Y( zq4C$|#}7y8R!&pn99PDt5U_hGVKaN|xZYKMr&n4@Se(mKJPCNacNBZ(3JjAO+}I4^ zjTW@(4@@3U@IStnoyc1H^LUGhKRj|oW`O86$q~IJ^k$2!v_!ITsS72a2oHOW{Osm2 zey0pRu4a3`%vouV%UR~}jxASXQ|>VH+l|q%V!o)+GaX3Q&}!C`%T#mClbX`XTx680 z-STMS+}14qlsZ#B_cFvR>@xP^u*IB$Tz!Y|9;)wEvir<@5xDv%%<7saIpj>TW~=h- z&bVF8S`_f#=+PLF?8OT4|LV#wuz!$$n78(4(O1XzPx37{nwl*tQ#`laHPSM__8Zy> zsakDj+$MiP6^0!&uZWlI`xG6BBy0gxN#M;ITt9R*3Gh+5S8oIWGHR znF+IbpXDB+H0`l?fWe?w1X1bCc1ZCJE&QwbRVb{8B<+U$M&6~ai#5x(wUc3)xUA>* z`xiNKyTYpccb7fulrLu!#?Ael!_3KfPk3(?7kB(s9?LJFayPBcitcv0mPf3~n#=ZQ z@_`ofBnx43?3ib%*Fs`!Tty#+McI1icuUuP*NnxoNoM`uxba$P?Wj5C^X#n`*>9nt z2AU7I`ySYlMVeZu(EA~d*{mwy{6k(mrhCHvcb|osj)US6UWijo9gv6;gP3QiiVGa$+ zS2D9bFO;8Xk|5R7UAu=n{4zvJHc-6CD^Vu6gFb$Yw<(|^?A5^TsR;yBXz|oW(r2g? zRrVfcRM>i`_N~lYL^i&yb-G_y9p>oxk|ZDo52z{%@u!9YL-k;kd}_jI(YE6JUC$*O7L60o0^MT(ozg=()io9y|~M_8J$_ za-WUa5E6T837n4TN*@b41W|a2C`odbW%Uu_ScVG7kA{9JEg<Dn+C$mbm&Q+aRK7uP z1)+qzyK2jIvSmGd;4@oBahT>SzA5r>1)MRPPKzL?GMS+CZH#di-l}6Y z`1%)Ij*t$!JPWHTK(%C2@WXf)Umojw=Le$ICBfU$5P+O%ksRNT@dVDy zdn#0v-E5TH${%$1dw0g;INkYYbdZ!S+NVbyC7COs>k8v1P|zWXq97cIHCK8SDsT{w z5(R^rC0jv^Ob|)Yh(Q<0PExH*gM6SQg_RKQOlgU%1QH_nK;aQDgkKgX5NzAHNLN=o z>+?~-wqvApIwhHjNur4Tepre6U^N8lUgix9-e+7I-;$Ve5k$+)Mhx2VF6hqOAc=~O zZcFjp0IQa*p67CMKhV- zSoj?~jru@x6@wX&xO}i+Tn`MOg||clp2^=j9`EC1P|nCcDj0`S=7U4Hd%f&2c&peT z-fS@Kn1PQl`4LP=ZeaFUF5hEOUHll>b2r6#W;IernusLo41_Ysg{`CIvft)He*$`@ z-CcSkKHM-)%IC$1@T|;9y4J~<)9@R>?Zjo1&KE&w@N%DftLjiuK0_ulp+c$Ifw@N! zeGieZ=j0YfKYe=aQjy2XFBXmONpQQapu8>yh}zGe7-P9$+C+CjJTSW_o#xUz6IPX^ zyH8`e+=Z)7$yXLr?j^gO26y%j(l#al4(9;c|AzLJP9V<7$uV7wbLf0!@%XJjsPx-< z%;*(pczF!B8T@@i0lGvTJWH&}keZfBc;HZLbNFz)QLb)b6ik8YX`f>|7|a|1ZZoba z)9_`1#C<>J%qQw(GSj1Tbxidb2hUR&!3`d<9q$EB4d`M(m$_yfn+kd`@GLrEZ+rqK z6gPYi9*7UTqO;~vn|ecAEH99p#+JJG_2y;P%P)MCvV3f~*+FXX?zwta`|oW)fmC<( zol-Xf!G-Lr|M4tLJe13iIFvXq{pnj!d|8y*2QQdSWVjw3CwOip#M0)jsvy8`}#2^u16<2P?PgL@8M9uB!z z1Dudr5Cv_&8aU+Vfn;QLZ(8fOP73url;~d&)BJF%iahsUMM3*$CU8n;zj1I!iMwH3 zmLkeX^cv3d5e+Ml>bUCshQO8e+(%_U=r~EP6}be2N+3}I@6ovh*RrD6eelQB*>rE8Hf!++C9iiJH1X-xY(1)gLql zLo5dfHA$jq{aVD;T!#9XLdFgB9BtBMD4MAdaNLVs`Z9jqfO(eRS~skGUug_6DwK9f z;^Okfvz#0pNh{|_RVJfjwVQK3b87NN(Nd6Hgss$9{CTE1D)nWR5h^q%HaK{0`0md# z#mtF+pT)k=kM{Ij*)TRmM_bS$UMR5Ju?w1{2TD^C(vjxtSMpnej|y`%A39hT#-2$4 zH^BYFRYsDslaJ}R=h?Df_-RCl^MS7lB82Mh*%TUTJtc$|0-ubeKxC^Vb;!w=XglBQ=vNzw8&F{Q-r#dZ*6> z6Uq?(T2t<*d{CGjT@&8_n{CqW8RIt9F8MSDvf=W`wC#I2_szE zN(*Akau}2P@Yu69-o2D?UER-*XA}kJT#tVKT+Q?*YF!L#C$rWF6HM*iJzrJjWYP(! z5W;VBn%J40dGu{2wp!2zxLg(+hDK(9srD-?{-QBD*SHDgVeRI{!KRk4kGhJkIHoh9 zj>f{^JpGb6Zg#iK?fwGerG);|8Va2i$yX|{_nA2jD@ROahGk!>FKzC+oLVa3{AOuk zV-+f*wDhcM%>8{%nI2G{AIU3TGG9)-=B{$d9HhEoGb+=MB<~KO3=h?cPN{gX2cG=# zs{$JRUr*Z;5I&N=ZXWNHA=$SQd4Sg2QRD8h4d-C46+@ndWNjB}91iQ#d^=3a_US0j z%GUB&R$+EQbmy{fZEfEu(^BWRFlfdLn>HU%_5JKdSW8ePa9uZUb3wRHNwY_~?j%Bk zZz9*K%qn3fJ54wcaP0jDX{(dRyK7fTDVkXc3$m?yxbllGqBA}}7qw7{FSer~BpPI{ z6O2|#$k0BG$}ZW7>_@g>HcLojUM@>UAw5NP1LC+?_IzBsq1BEE=Zqztu6VhgNY=S` zhK9X9Ea&YgUXg%8MGRiU{_sO-b$(CVo?$QvNrF09rdzv@lD=l#Ao&pk3h0_8Y9G$b z74B*Njit7Xc%_;sa>CjZ6P;MAu2d@I&?f*oz=qB#8 zLZ*+wSegMj9XylN0lDpJosRXnehoKwJ1lXfiVejATRR$PRvG>wA5BR8Q)uRknSV`* z!K7Xv)6oi-mz#kffU(Lkj_dquDyWG*hHrDTr`E^kQbNT>k6qhFHP$tzPbVN^jU0wO zL;2EjfledG(rDwYQoDdj!EjbrL_%U|GoYvBy3_4FqFo6UA7(M`Ua%iJ!WP)J`n4V& zd&gH1NZJ3U7@-Y9x{K3|1o%tpZf-43s(jz6niH-q=Qh%I!@etBy6;{e>NuD&{%pPT za^m#NO<7v$y6eRE)WE*stCEeTw;Fp%D^D~w;ucLxE;ec-KH~nDLiU(@xGr}!sMtbY zpitz4v0Lx%dIIKUhVPxm?yN#HzL;bWKVT-Bow{7TblLTT|9nhxtiN(Wz%v z4mxj*EkL81$9WY&=}zELx?84ZcBGmlrl{W+%$n%GVIC3ht;;OoCZ$gozpgVd^+fSX zy@5{4^pgT9vO9`pQakVM44~QhGm~xSM@SuzhSSs1w01UHYD~C>J0-Qy{?czCLp`OW zwymtTnbbWpGIc3m9Ta(Nu0#b#=z^#j%8NOnrX3Q@nfyFb%wmBp_pVW@(BNI;8fn$bJGm~(Tw zZtCsvxBHGe|B@nd(dR*WgeP%b_-`2lKru(3AB{UctHb+n{YyZgW%rvxaV_f)$6~(#!@K+8-3Ea9M#nx~ zFITSO@;`kMRBY>4_FsjA3`mVmVEk&I+wzC=g-~KvPeLr7dmJ!E@?~Pg#BYL%paVI* zCN98JmfAd2fsdaE#IKH*AOTsCfR$ZD-^Y+UBg!uddpPlYuM-H+BL&EFDCvIo(aa&1 z4h$1;8635D0k0t-ltO}$E!>SDC(?CDFc9y;#;`wyzfk1rvJhxRpriI{(AN&gbC z|HBmoNw({j0`h>RQ(m1uls}u1PIMK", 0] + ], + name="results_filter:condition_1") + + # call connected blocks if filtered artifacts or results + if matched_artifacts_1 or matched_results_1: + format_message_report(action=action, success=success, container=container, results=results, handle=handle, filtered_artifacts=matched_artifacts_1, filtered_results=matched_results_1) + + return + + +@phantom.playbook_block() +def on_finish(container, summary): + phantom.debug("on_finish() called") + + format_message_report = phantom.get_format_data(name="format_message_report") + build_message_output__observable_array = json.loads(_ if (_ := phantom.get_run_data(key="build_message_output:observable_array")) != "" else "null") # pylint: disable=used-before-assignment + + output = { + "observable": build_message_output__observable_array, + "markdown_report": format_message_report, + } + + ################################################################################ + ## Custom Code Start + ################################################################################ + + # Write your custom code here... + + ################################################################################ + ## Custom Code End + ################################################################################ + + phantom.save_playbook_output_data(output=output) + + return \ No newline at end of file diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.yml b/playbooks/Splunk_Message_Identifier_Activity_Analysis.yml new file mode 100644 index 0000000000..24e8b3445d --- /dev/null +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.yml @@ -0,0 +1,23 @@ +name: Splunk Message Identifier Activity Analysis +id: 5299b9dc-e8c4-46ba-d942-98dae0fa816d +version: 1 +date: '2023-05-12' +author: Lou Stella, Splunk +type: Investigation +description: "Accepts an internet message id, and asks Splunk + to look for records that have a matching internet message id. It then produces a normalized output and summary table." +playbook: Splunk_Message_Identifier_Activity_Analysis +how_to_implement: This input playbook requires the Splunk connector to be configured. You will also need data populating the Email.All_Email datamodel in the out-of-the-box configuration of this playbook. +references: [] +app_list: + - Splunk +tags: + platform_tags: + - message_identifier_activity + - internet_message_id + - splunk + playbook_type: Input + vpe_type: Modern + playbook_fields: [] + product: + - Splunk SOAR From 7adde2c3fc4d418516010ba0e335a6a8c08d43e5 Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Tue, 23 May 2023 10:11:01 -0500 Subject: [PATCH 04/10] Updated to remove non-results --- ..._Message_Identifier_Activity_Analysis.json | 106 ++++++------------ ...l_Message_Identifier_Activity_Analysis.png | Bin 57498 -> 58344 bytes ...il_Message_Identifier_Activity_Analysis.py | 38 ++----- 3 files changed, 46 insertions(+), 98 deletions(-) diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json index 7e05390179..dfe5b38e4a 100644 --- a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json @@ -6,25 +6,6 @@ "data": { "description": "Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table.", "edges": [ - { - "id": "port_0_to_port_2", - "sourceNode": "0", - "sourcePort": "0_out", - "targetNode": "2", - "targetPort": "2_in" - }, - { - "conditions": [ - { - "index": 0 - } - ], - "id": "port_2_to_port_3", - "sourceNode": "2", - "sourcePort": "2_out", - "targetNode": "3", - "targetPort": "3_in" - }, { "conditions": [ { @@ -65,6 +46,13 @@ "targetNode": "9", "targetPort": "9_in" }, + { + "id": "port_0_to_port_3", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "3", + "targetPort": "3_in" + }, { "conditions": [ { @@ -78,7 +66,7 @@ "targetPort": "6_in" } ], - "hash": "8fd552239267a9cf26722affc06b22927bb5db1a", + "hash": "4c7de1b968ebd883893943258b5cb5d7d415341f", "nodes": { "0": { "data": { @@ -93,8 +81,8 @@ "id": "0", "type": "start", "warnings": {}, - "x": 19.999999999999986, - "y": -6.394884621840902e-14 + "x": 20, + "y": 0 }, "1": { "data": { @@ -109,51 +97,16 @@ "id": "1", "type": "end", "warnings": {}, - "x": 19.999999999999986, - "y": 1240 - }, - "2": { - "data": { - "advanced": { - "customName": "artifact check", - "customNameId": 0, - "join": [] - }, - "conditions": [ - { - "comparisons": [ - { - "conditionIndex": 0, - "op": "!=", - "param": "artifact:*.id", - "value": "None" - } - ], - "conditionIndex": 0, - "customName": "Artifact Exists", - "display": "If", - "logic": "and", - "type": "if" - } - ], - "functionId": 1, - "functionName": "artifact_check", - "id": "2", - "type": "decision" - }, - "errors": {}, - "id": "2", - "type": "decision", - "warnings": {}, - "x": 80, - "y": 148 + "x": 20, + "y": 1220 }, "3": { "data": { "advanced": { "customName": "artifact filter", "customNameId": 0, - "join": [] + "join": [], + "note": "Ensure we have an input" }, "conditions": [ { @@ -184,7 +137,7 @@ ] }, "x": 60, - "y": 328 + "y": 148 }, "4": { "data": { @@ -218,7 +171,7 @@ "type": "action", "warnings": {}, "x": 0, - "y": 508 + "y": 328 }, "5": { "data": { @@ -244,7 +197,7 @@ "internet_message_id": "filtered-data:artifact_filter:condition_1:playbook_input:message_id", "label": "Inbox", "max_results": 100, - "query": "is:unread" + "query": "" }, "requiredParameters": [ { @@ -269,7 +222,7 @@ "type": "action", "warnings": {}, "x": 0, - "y": 620 + "y": 506 }, "6": { "data": { @@ -295,9 +248,10 @@ "errors": {}, "id": "6", "type": "format", + "userCode": " \n \n", "warnings": {}, "x": 0, - "y": 920 + "y": 864 }, "7": { "data": { @@ -329,22 +283,30 @@ "userCode": "\n # Variable renaming for convenince\n messageID = filtered_result_0_parameter_internet_message_id\n recipients = filtered_result_0_data___delivered_to\n addressees = filtered_result_0_data___to\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___from\n \n build_message_output__observable_array = []\n recordList = []\n \n # construct iterables for records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n # Create observable body\n observable = {\n \"value\": messageID,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"GSuite for GMail\",\n \"message_identifier_activity\": recordList\n }\n \n build_message_output__observable_array.append(observable)\n \n\n", "warnings": {}, "x": 0, - "y": 1040 + "y": 1042 }, "9": { "data": { "advanced": { "customName": "results filter", "customNameId": 0, - "join": [] + "description": "Filter results from mailbox search", + "join": [], + "note": "Remove mailboxes that couldn't be searched or where no results were found" }, "conditions": [ { "comparisons": [ { "conditionIndex": 0, - "op": "!=", - "param": "search_mailboxes:action_result.summary.{summaryVar}", + "op": "==", + "param": "search_mailboxes:action_result.status", + "value": "success" + }, + { + "conditionIndex": 0, + "op": ">", + "param": "search_mailboxes:action_result.summary.total_messages_returned", "value": "0" } ], @@ -363,7 +325,7 @@ "type": "filter", "warnings": {}, "x": 60, - "y": 720 + "y": 684 } }, "notes": "Inputs: internet message id\nInteractions: GSuite For GMail\nActions: get users, run query\nOutputs: observable, markdown report" @@ -404,7 +366,7 @@ "schema": "5.0.9", "version": "6.0.0.114895" }, - "create_time": "2023-05-15T00:27:51.969603+00:00", + "create_time": "2023-05-23T15:05:26.081875+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.png b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.png index 5cc55377c7e335baee156164172eb669414be9ad..6b61340e0a8e5f58eee99e014ceca4d0226f8b74 100644 GIT binary patch literal 58344 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 t5#0XP+!EriCKo^?w)&7xlj7#tN z^MxNHtE?4icLU({m3mB_A~NsazfZF{Xz#1cRY?4DbYn{s-Q?B_TN}7ZB%4o?)hP}{ zv)jmPp7o9Sb>^^sn0x4|0LO7_Pw4&HJDqEMk|{o8JQOOQ0Iu|)yk_5)r*Ov#Q7Sno zQ3uDz5r}iz@ahz_DWbG%Z8q9+;ChH0q$=L|p)vcDD3SFrX@?qd^4>wg)YP=5^Bhh< z`A=nQa?b#{mWP<^47){i4VDw^qYr(Di97Kf+mQ~sPiMp5b@9D-cSZ1-!BvOdI%iZT zs}*At8mv3?ROLTatQQl+Te2jD$DTEno30A9|3*|tKN{b#oIc4BdKNvcrrIE@}=GcC? zlGmOviRe<b9X zVd#BvNA()E7RLD-KaRTudvS^jkA8V+uE%V3@`aTjf4|1tEi_w@S&rUZv=tn(L!sSt z4xOu??R^ymuHg|L_C%anN^h2Esud2gU%r&Wbt%`gU5o+$J)LxR4*tT$f6hrU{$h~Td8?aqcK0M1;-B-* zb=i%2JrfwRl)5`28L9H zb+gSNN9<0zm(rb?U-hll&B_&s(=4=>(?$;nsVN4nc-I=c)VzNT3PiXr84mr1W}gOQ zl8Mh4MCM`NC_~>b(JguJBl&Q{q2Kw2YIAVVRU41C$~rq>3r2?Z2vn@Gg*W#*A_QXN zOt}a2%a2FOeWAQ(edX~M?ti}N6DRvJXO!-I=N-w~qlci$%#TfE z#XkOg>Q+`_>CP}QKpWJ2n)heSo0Y9`is?cueU+oOGOi~$uUU0SZ6PonA~0;MHKtgc z#k{}#Lm+$Sa|UbX%%$HfLnsh^1GLO3AHD^-0Q4s);Kc&Za#rxk?>~aSyAH^R_AGRL z5M+1yv2!4Hy7coY*6%-p>jK4)mgHBbvLKj`T?d)AkdGhkf3BMh{EzP5OT(RDzYJzb{Wqld6+APC&BkK^puIA$0pW#~wb{$(6boqE_|2vH{ewj1bPIf+ zg}4(Y?&Cj7C0GHc3zJZ?HUIA)MW=K=>A<3!+!z&l84Tt-6OpUe(nHOHQ3nSY2nd(C zV_N@GOK5#Sphf|CV$d|5vBszRUTPcdZDVIQsWBKp?!Ko{mZdRRs6ATWK?xof%m^CeC2Q?2}+g+eZ%!PX!VugBK2#d?K>|FF(N}M5bZ|t1JD}= z@Rgr59l0lEq|MVz@SS{^0Wm}QHh3kKY>%{rRbsWrhVpk~5BmE0bn5OYgQTWcz#1T$fVmIpjs3}$N8I_quMzN<0( z)>10zHDz|S@B!I&m)3$rW@!t;ZT-HARjCGI71;}HNx$u?_oQ{Walvz!ZI#w zsd7TjzGF^`)Iisc%pltFc|XKgcH)F4lJh`|!31$UF=b0w8_-gHY~OHl-gQ*hV?)w@ zE+*5xy@+RT+@*fZv7f8vabdwp)YenGTJ_)AcG&L{3)O>EWmZns(4e48`iFql3MOPj zv>t%onskmyx3x);zm?-U4v4pFGRIfGB=}TfYrM<~vBlKA&`VleosX%rfDd2c70Vvj zAC6fE=^a3i6+ZY)-v{su$OgAxI@OcR4&ws3B#1$>J)K$OQ5rz5YD_%W8OM;B;QXHI zyR6vpw(5her8F!fUg5!x!-K~QU0zm>+8+O>8u}27pZ`m6%Vz(p@xlV=we5uVKtq)-?v=u$La+jik};XY(k zdghzBdTY_lmdtY&8X0&s1MFCXUH1HkcVUzESKbB48W0o%#EKi6vuo5(7=JD-nVtyS zmHFrRgD@Aq%x`!&jJGY|3qB8_^y4k*Pg{0%KUbU!a-eki85K5|M)zn+wC+7PCV-(} z%l<<3;R9L?VB#FonX`U(=z&AS47R9ipRyX%)Pb>!Eu>goxnOc$uhgCd}3nRE@w_6ZIZ{Y*1VNq zs?$t7qyU7q{Sk)MFUg`m&Q_PCc1^!(iZt;mE%_-DbPiL1Fw*h4+!8=iau)Ok-FDq% z6#BJ4eQx>bVbIFvdZTyP=BB;S3Ovjh5{h*~s=NN=B9hbAj-&J*6ESKFXElk-$Y64H zUUVq79_7!@$@$oy;G!hJ&)0UmCt+3|D3!XIDIr1I+1WX#n+2Lqst~IahbJ8Q`T6$H z89Q>_I=8G(mgsFznWuL=LXFe}*fVf>*TI{4-5Xp=pN4JN929{l*`w}3y(4LkJF{7m zRQU)f8cuMEf#&TklPJrATD?oc3ovql0x35)H>2-wFLQgJ=v2-Qj>?nUXx{Ll_S*L- zDM)!%icd=_ zxg6WQ8`>x5$%y-@EPbi4`oz>8k)9NB$FM2dr@J%l>&!QXYb}tWkfy49a&pj7V)Kzh z&+(POT9?_+?7OC*IgWCxtS&Pp^9M4n@XRDHDbO_|ySTb!FEEYS z0H4l4;NE9dbCrD@NBBlo>b1BxK&Ubfpsx>j>b;K7%|EtJC^l%6GM(8t6T@3%Tgwzg zu4*nt@8sojXmfm9HHzej%5{dmS84BVkEG)J#9M`<#gC;TBirEFo|z5q3DwPf`e4>3 zLjA0~t_h~<$YKRN^S4!fEwU@Vv9UK?_uer_4_*_=Om_-@l-bo)_p~54x1S@JQqw|w zXGoIFYplbvXKx`jxOKQlxunJk$v=OiwY3v6V=$P#Im!d%-r=wTdJ&~NFMnKTi zq^`;>?*MLj(<#Sx!Mkf_bC%t>{@5fg&hV1{ZKVmFlEE2Q5XbiYoEZf@h-9!OzF=X_ z=t=L!j%0sI(EYBqA5m~-(%-o<%fV0^;Qd=`_9bG|#DH>lzD+1e=RmcC!CWrf0Yg4vMX+Kf=F-gC=0Io^p%+e+Y4u3 zyc8+P#-OrzG`j4PLRtN^>tIGpbdJ(LRK|$tfh|rksKUuEk2BoQVP|Q+^#0eI|$ApugKH=0@(h}r6=EVdw zn7^Yn1T8!!0g*2WbQ@~tdTR@Mbrs<@V&m2#VD`DlAXI4qw$&0?kjg;@II}Gd?^F1v z+qB%q zT4`tuEyh6m8W2ClvA^DfFgC#Zl9@YhNxO4doHVj|-)Qqj3)0IikVEIi7d17tmVPC) zs`zn?T=Dy(74*p)N1?SwaQMBW2abzNynKl~etK>ekOW125Z^(ZM07xgnj9J$1VGtq zbqzl)X`K+)U^y~O1-_z(c|0?^Yr=Z5v9UA3E|WltZqH+I1N_%&zLSp=h}K7~P5yF6 zPwNP+H=IRj+{RGPAAv9B_vNbYFt(rH-96tagw>9MfF5Lac&j;BSwmeY-Ak=Tt2#Nj zv|haOSV8JXvW78>+?^$`A9oUHTN=^}bB{dwTH`7;nRI+a&^{X;ru1fp6`_{5yPd@$IjB%wtNPo_4 z9OJ7T%uf=e z!aq6+wJY>)os1dJiA~-xJ6Nyko3g`CEBm+P>LKuQ|IJ6VQ5Bs9(Oi-rF!&y4+ox#RHoSig(tF!*gW61n7 z_Ih;*Zs{DfpY^z44E^GX*5C^f+y;ZDlyx)4zk`C3gIlN~Y_j3BE zcqP*UG=i^((Fn|zmY267OcTuKywQi%Guo4=s_et69c22Dd1kp>re(qz>#q1lqr=^m zuI@|bHZ~i(Bdax4cFjQviq9$dtdGCVb49S9%)4(QM{W5s4_#J9jIE>suG5ty?0M2S z4=3C21Q&d?nRh&j<+C(CIdZk1x3!Jx?-p!kcUTXY8>l!oJL5eYF?px8v+MA?Q{S;! z%#A!GlD__=j4N(0e64!2t_eN9Cf>VjndG?}IcjtGn$i_6V%$3J{TzD~pGjuWy0Cs# zOK3iRFUI5DZvVst`u)QSBH{D3<$Y>z^`WpG2DD5`h#7y--loJ(a*%4Kc1^Q|uMO&- zJXG}9W8K_Jnxtn=*rp~CJwfUhMt@S40LmDh*{fS8(`T88;VALV7JcJiDXFuDWFCFF zCxHSdV;$8=hs$De6C+=G$;A!>YfwuTy`SVVc@!lS5?@TQ3hk7ZbQCAv8*+6)fx%hX}yx$%3!aIOHS@6y+rNmITvM{FTa>H zi=L%hIlPohxW=VtB*nO+rA%0QNn(nnaur2Ud$i__c9--sA=J~3ry+cA+8Mi;-W+!@ zS8*#UO8+EEHYb0aaZPx`NV9bRNr^`b-TAog{Lylu)M(GU>E|X_)2x#Oypzq7f_9e{ za?Sl{1TA3j|yp6}p>+&U;o0NNz}3YNkzY>I>mOXGKY5smY3#W`%Pt`Pb^%LH*Xl3HQXxE+wVANS2&L zsrsYMwYFgIqx-$eHL1bkeL^>DWUf(qrNx8hyX@4+8#oqE=M`_zE^Y7nUkzq)4omA0 zA}tIXWVn(4u?#sVbU&AVgrBOC%A#tcDJe#EAy!EVS$)`7tmRS`yIZp}sBLmpV+(GL zmJV>AM%wb^~c< z5}_&f+)U5s6Y2$g`+F68_6{e<>7<2*5azTyhm+{u(ac*&84d3Kx)RekEAKBz8`HSD zGd#{BVu2z}LdSVSMtTRe=ywVa%}n3N0EXnnc_bfEamTn%jDiubxwY|mv=`|nU z=3Iz$klx!Jw=H+bp9$MU>Z1osrTuD;<5j;CTFaM5exH*X!X=6h z08M6@7aiIS@$vG; zBC1!b`r{uC`NTq{g8xti4X*YytiPe~n$sZ~=J2O>dn;7yx>7boC`c;$#my!JK8@oi zZ0@t@HDTY*)yemQMjY)oXF?uEyoFq?Ub}NJdC+B;fZRbTnm02NMN?TwxEabC8>h#+ zEw$PQIXu)xN_dUEIDktg@k%sPI+U6>yVUQURb6EkKeE3!xD8*CiZX&z6?0@C$S<1PW<2PX|kMEu#Syns2f7 z=>53=9JEyVd^~Qdm&M!ch;J4W^dBAUc910DXDsN9nxyTVSS{g%QJDro=j%yA~JM^ zPb7G1okuxHmndm$iyX9sjy?1=L<<$u-qji-#D3!Xi$F=%(-ghqg>}_j>fAW;|7h+j z1ETEOb!9{WQAtG<1f--9=^O))PC*)_lt#K86%kNCQgRHsL!?7cX^`$N$&nhGIqMn1 z_uKpX{_TCv@rODyPp-Jv9oKcOiQTYddiVSHjqakt0tGHm1ldZhUo&-RMX{(CW^{L7 zwD;HCNZ!d#xwMEIL_MwUW=YL!+o@9Hve>CMB;vI2y4hNaSxIym*S`5RPPjmmtBBA=mKonq^AvTs9J#2uS9t_iisuhD zxeXewU+tb2A0mG{?2eAAtRg{fWZF$OuBT1ZQ@6ziwHwFjrlxGw23wbk?7f00ixa%* z*B`dDPZmy5+Nv8BB>2sm7PB;IC?qyLqUMd0u&t~({`mqDaHT??0IH6q$93j+C&c}Xx4X^yYejslvQMYtlV`y{srB}c+tEwcUz%AnO=8|N zC@jd_mty15lLl(w)Hnky3l0qs@U!k5jtwr4K-wJ+;yMn*B6X>x_d)s&RPGD_h+>BW zU}=w%2={IS|Brwn4_k%D{&j@^hTPf%-}WU4b4l+V$jM>7+uxwbyHIF&%=m@V5`fT< z0lQJ(;Yq*1wtjs!->?Zt?3Li8z{i%MeTUWNIdInvfbii4gf!Pb1I&s7?b6fSR3vCSMHw!N7k0wW;kE(nDKr(gn}M0M%&iy|?r3DFDx{nHw0@p(?ky{^vGNc_oY_{hdbjJ8VP z&|yC9ZY>~nZj1ShF2z69_1i>leh28;>F6MxY>&-1Kxj+g7xCTcJJ~*^fyL+zMbCv= zdhyNgXIyZM7i6aaHWh=rW+x_^$Bfy2dl?FVwyuL>HQ?}fLU>;65V<4;K+e7-NIm*d zO}I@&n@D!6`_9KPuSO&HgCjynuBT;DqA)E{#^}3Oai6LiF7(<7Y3EO-6#&zybrT4l z-Emszeb{{G8Z3%5C3_@3^%Dy~$h=Yk38;tP&3f>0>2loGEpCzDp*$FK3>=_WWz^nb zcjdv3FgWN#A&~Yy8ttkeaFX{6XgVCD;K2cE8Ehko9p>OK7Jx5L`Yw44tT_QlYk@~^ z1RR(!;Bl*sU$dt>vxZ)|-g$dLv!8btwrh3Hn?@NV#27(#oJFgl`3fR15M7qac0rOB ziMu(_kUab;3qOGg{2EPBOsEX)m040EOqgTBOMn<7`|Yrwv}O|kR=zW8Rqj|I^ime* z6Oi}lQf6K2nJ_cMlF;rH0rL7p0%NAWj12#IvUh)G9gR;qMFskq_CKhb3Gl z%zs8Z@$vKbia5RQ)MZbu-Et@Tq<1SqO!_F0|GYubuM38xkxO5HzX~eHKkSrc7LhJXEc>CrKH(Hdh-J6`S*oxL>xhZtGATu0>qu(mX4G|^n#wc$wwoa9 zzP~lKl4-LSR9|X0;nt^H$dbBPcYtP&2Ppi6nV*0U8H|JI*4q=%W7pgEXm@|`bwP;B z#*%Va))YJ9V1VIsHY~InfM|l?YHFVy9MEDKvp`f84mQt_Ft&@HQS#mns88<6HK&xv zj=?Bs(}xVML;#!ehw04myX)-!p0kL%^60B;;|nw1MQMqWZk=+IfXW!NvgZ&89G5uf z40&WwR#A2Ii@RW2(FVXcGC4?r8A!=fQLW6^hr-ANOZ6xa>vp+zw%=0=y*OiM1SIk` zi|2eLB1)P)Z+#xtD)Xx8XYUTvgK`UF7XbU=4_b^vn%3-;tgNgtdSNe-hsP97&8!%0 z7*W`1MV(VooG1hIEDKiQn^`#XTG;9J5563XxYr_^lIO`dxrL0Q4u8Fl%{kA^gaTqx zY-;5191ONX@XVaM1+b9}s#+}f!&UNkeomi$^29nKPNY!IT?EC`>V(XJ_QL==4MyN? zSER7ju`GxYDd3p&2{amb_O>73i-5EYwuu56udy!0)QK4}sHG=t<3w#9J8 zYkaao8jKzpqR;=ezz38ZfYu3^KPcon4G=IXr+?a#%rlM~d;u-X{O|!drH*8E{5p`}Cb}EGjkRc1$G&mABLoIr=>9##cp z0q@l|AlWZO{VPrWkS&k>XY1+iAtnB}tlKkV)EX)e0LbD04mQ~wIgy-FVp@htX|sm5 zdZ8tLT{S2~C@%!YFY&!2P5XEVbXVTo2T8&lG%oG`Got$cB^EbUje;@!ohO2;e>S(z98b||;E+&e?I#r+-S?Rd zaA-zek{?g?QQ6IvuO5#6Fwy?y^~!~?uA zv&M(-djDNF;DiSmvk4|B!i9fRp!6wSYbr(QE$?jwtkLNafe%ZsCew=ydg|iZ0 zYMZuI0gfnvh4`&TV-qEy^Ef0FybNq{f^=~JnNDXFOSPdTjs=F_HX;nTJ2(XDnmu*m z?x>k?4Gn(PK%wdDQ8$cAfaw0-X;(l9kd=1F+`KlTyL!3x<=S_wOTq(TM6?WKrB5Kp zPpzr1)A=^NBa!rse2nzkW&vAldaJXtN)cU8EhxC}wUutrcydF+xO-y_UDwE!O)6H< zeBfkhA;wqQE@&D%QG`K~5e!`1MnC0KFHzsPQnpb((_kiU|M3l#R*5tYy>wuhBwX+x7m)=EQz>fQGkcW^H9|k}x;<#&Wwb66SNiP9gpn+LpE0<2L z^iL>7U6a;L`3k$PiC1N&PwQay*e2snI9gCtg(gqmG5J7MN_>E`@bTJJe@i)m6YJ3K zH@vHSles)u0`-!B%(p?@*zKbT5drtz(;f@(12Z(;xIA$r6Va;^{;zbEWJ~p8JlkKl z@LYhL5|zU*gnmSWe?`a0us^TqnIWNbAviJr;D^DGI8^TJlL1P8I;;Os`KVVwlF<7n zBp4^Wxz2f2`P=lgM!sm8$LKk#lRS*Mpmxg8YSxM0w}s|=0(yr#_ifTB)~$%1o$xKq0lGY|;2(+-dMQ1F zqGPyk|I&?q4cEYRiz^+E(Yc&hnl8e&W5f(*kRF6ra&m4QCa$AKsC;I{ziOW>k|Kk^ zCl?BO*j~v2loPJYgW*`cps5}H9G+@F2c`Y~JM^J8hd?lh$QW!1br%0mVK|Pu|6L%} z31ATk^eLy0y%a9kFbF+WAI|x~`A^92z@g6~`^nShf}R+| zo20YuLnCx}Gz`q;Geb{@)&*oNEYhL$iDsb4&8NmJI0*sYn4vfMd->^Bq{Z`EezTW< z;@y{^LRZHZQ?ThDlZ&ObwbSz&WW7nGS9jS( z+%lP^PW4@y2J@x|7zK#&2=+rDBGsS`mVk96qfA&!pH8s?#?b|!XU{vo?%-r*mJ9^O z+t`(&dkgg`0Q&kJ9*x`g3?xsYH?I8``?;NJC4ED$7U6k^&=#(Ph3*jmP`&9gyowMd zyR?dCnS1r>Ck`LimA(z9xRw^q{0aa<@R*zZ-CI9oJvjixN|XYW;s+^|BO-(Rn_D2j zDi{cW1`=`-2O)Z~SIdCwrddnyNupkZ2oCpQ3z@wE923X&2lD2#~0u z3ZvvwSwWvgEa>bX#o#(T1gOd=PPfKbJg>|4n5r}$>R-=u9N>4Ij!JB~Q|~UB?X&w^ zTHM(BL)(Dm6DVbDZ=ar77ALBg&Gp4XbxL);dvwYH*gzyR%9_5q*_* zg=9L3l4ILvip_Y-Kb-WfR5Sjk)1kt9o0z>$kDoj15+hq)WnCF}Xz5`dH2qo!L4NZZ zWFX(3Q$R;EL;+IKb?htZyd&g#&xYLXrP>~`&&X^mqj9Ij|!H)DIhu(Wh> z&o7SmafWkNsPSz;_yw4WjYA=%C~>c{6YZ$F&jV*0Amx#9GC;xKCjdxbqzPd%op7ihcD|E7cODPV zr)2ot)dKRk9uir->{|e+fgMX*fMXhk61%tOD+xb&FYYv6Pzfh`t$=er;a0-_<3kSg zGk68?5~tmXR51@pY^5&^sdZR04py}*IQPug8I^(m%pBml5FSu*AIcaB(SN}C6d%$3 zft&v|mB+R=8iwtE zSIOS;{4CYrd7UJ>Hi|UaB5X~%-${X)UtMWUrisLCOkns1yeH{r8XGP&mLX3PiPAnS zW{cno$HS~7zno=QBlH+Oi3&9s^iac`p|Rh7pQPipeA5->9XtP-9LqG@C3JCqxWna7 z3ZxtXZ#y?R9gi#h9+Nb6dV0D^*y@R8ha|8;t=9e?N)uB5i)t3I?4`}FDA7ibcuTOb zvDtfV4<}P+TPiq@JR;+YbKHYnUg&$iydQg~wK?|2oj_spTp-risOPQAvvztCa%y=P z09*Z)Aq#&j%uU-}Fll6O#KyRJn#->eP2ow624y=vaL~)@Bi%WuI#Ypm?Cp>dcdZ%t5a^?tD2xTO5uyX zx#zy`wmv3hr`_RPUV-JgI>&a=ZTqGh(v1QY`xkC{FY-x*B({n_iA9fOb0MRj>^PQe z<|FyH6oqGpR;IZ2k_TO97ESkVNYj{fTX;gH0mK+FfNr06MEe01Be0YOtE<0>fV`?J zHk+w{_}frqH(^}4hvswdZzWK4(0ak_S>ytsQUsqIhAMViuIBNB)gqH!zpO4S{hK^b z=;_?c*XOR!dJBHG-3IHGcay783;tFO%A3uX+9{>eI*rejSFo$ZbGw700Wa>E<;tWC z00cTcF*gs1kG~o^qoZh;x;U6?pS)@sCxv<|qD|3UXm3_7|DO9B!I%BUuys2#1E_qR zC~MF$SN6mLNYng;E1kq_qjjb>Cx%%7u4-CA%mC9LsZf%s2g;5wsO-MO+Gus>z4jb? z{7-vsSJ*jrqUU%`8jJxg!^Q^X?U=A6=Pex9BeOKW7GS-)UA6(~s;e5oK&WBAaQQclVmAXGYSMWE&?#a2aY5r}vsH6>IH{ zOq;?_mmiVwIyyPYrjsepx|aedfk`gesH1~}n@VyZVy%C|91-qBfb~EE_dN6OtJ?0Cz+8YcS>77dgbc%eV$PCW7yr=g-%P zbM~9}au8l^>S#7AGcfx3=A9oIbKTNVsmW5A&(n@pYyLjYlHX*@c`=UtS!zlmjktv+ zw`bPPX7eiKPCE<%41?};v%%y3WJK0t-ZP8ra>Xn=F9)}!;u!@kWa%WKX%rSY@%2>E zX`X@c1tQ?aK^o_jD(rlW7AK|@mpo)-Fv0>HZDv6?g;PTVFO`Izb`hTaJ@T4Fa%qlE z!tr}Xag!41#Eel8XuL#Z6{dl@LwrVn5CN!Pg zBGc0`UpTnU<~riudb5XYj?agWk8hvP5E;o05)NPxgE>?@!(bdetVV^w`aX^HHq>aN-r|D^P(Pc8)`RA9P^!YJS zKXjBP9ujrb`TD-ikV8|+RTH>k4251<;V~n7?3~l-0|leNn!l0;m5MPtvuu1^)(<_+ zVz!v_q$bDtZjsM+^YYw@$(rkKWxa;BDb(|5VNXm0>b=GF^~>M;`xQ)w46YU_EtSs% znSvsDkoY!{Swe0NuFF8-V(|TR{g53LCIDzWH{tqX+@>xR@AWv>{d`+sN+C_-m>_g2 z6ET4D@{SZ;@9Z!w54<)vYfDYt$vgD(Tp8~Rk=tA0*&c1WG;_n22|L~IRBo>Omu-&A zwZzS&Pfo{>87LL~AXr-qa|3EDjLsPSis{&u?%6<*r7()PclYCfA9i+Y6}eHCE2&gC z@6e;?+z=j^8sF`lob9t|y?bbu!T@^gO-z?ZmR5c@Adowh zyXz}$-GuV6HFSW~K{dBP29&$k+yu)_m9tYjEN~>;mre34dN^lzQEE&dgx7xEIUQR; zZQi5lg<+j>tBzyh76Aye$!90CQ=-{UoS^BKxqC|;9Vy4Pqono|>{=AJ*ZJP!&ns5x z>;eaG-t7F}3YvR=%u}pTDp zU{gN)@>85DzEaeJ4)** zTFcCTIQTRD%dfNkY!wzT(e+<#&Av4I>5sX0Aplu-=0MYvEg3TArH8AbNPU~`+4YeA z?mHvmo>@EXA5?7e+JyDIww#-myd4L!72p{??&cCd71K4!uVaAx)`i?IJCk=fai_Vy4Q$F4PihIo)x8|Y~5B{YZ|0QSnr z8~sCHu0UorWAgguXZrZdDMayW+dsbT=emC3TDz=t&THM;wR~(gz+gL#QpL*J+OOIC zdEd&43Xe;9jLdwd1P2EPQ?EnM%(xj)tk%uA=m^lpNEjM3h1L=Tx|(n&+%~h#_>*#C;vgB9kMO7e;6{9@p;rG?P zW5V-iddzgd3{9!$r;=KoZ2FMp?$W75H5+Fg>@F9ykS0rtJ>CZ|JAuMYcXr&V-qKS5 zL?Ocq6H0sZ5rl{x`eP^5N=4=qp48gF*x!9}c&VmTJg*?N3~L%AZFhV7)S9V%o_gKA zFqnA&pJBuo9S?T-2KtVC9koFMFiJbcY~V)koCl<#;g6e>L9I*OChbF0gO0j`&Sn|q z)8cCG?g>U4=18BMEkhjYvB8{&qmD0Mte&mS>t-ANJ#X7-BDhh%@llTkn?viAr@>Zy zb7uI&&}l!E5@R$b@`kTVN^k4qX? zeLfV&N|II$_EoJns-JlZ&=#goxx7)De%ptY#)A@_%E}-gcB(7xFOIgZ46JVdD~Alf z_>M*FB8Uk(J3HU^te>-9nd{0vr~iZJz`sU-y29z|dvy3`gQ`AB5}LGqq90!pz5KSJ zJ+W~-DHqG%Ie{Yqp4e-x_acIdIA!Pon=@CjGhE@(Nx6R({XsVL#5G9>?Q8w(cc5ZP zW3h(P+<~4n62SXHk$X~^B$rg-FQlmB9A4DX2>=Zytcx!L?E=F<-bY;Lh$Cht2E_K& zn%@@0G_4113pw_8>ShbCV-Xc~H-Q%}I?tUJ@Js=IQYy~e!osTW-T~O6D)KO$R9Y$> ztrP8e;oe_RyX=&3?cf}d`OPm-6h{9y3hRNAt{^#^)5G*%YWvj{3wf0Y!kN%90E8>ESBlD$lUrn>Ke$i7bMbW&8IlAeu&b^OEI z09*})O^11{!>}pUqL4D|SelW)$79fKs*xFCRIx_Bu6`IKO^{-Pq!T<&j3Ai~qI`{;$bqOOiac_V3!-Rq<2s<24qo=m6wIC z<+$3%9qSzSk^ceu-qVVGkY{yx>^>w0Wiz63Ea(eFKmiTVCob;V!4Uw40OcMlJ*EHZ z^*#j26RL|&PFMgpbl4sL=A%ywRSB+?l ztub=kG6dYTNkfu|JIufOx=2d+!Hx@gbl^w+Fu;tg0pbxtqDu>WzPLagUe?A&>3rAg zG}>ScY+E4FTL%<%mEQw>&?N4iaE(OTUqeG23JT{`H8eQs{R7l`Lo#j=zG3GG_xFFz z;sk;c9>@N$1gBiP38vJ{Og>i~9i4<4*K+!fKLl%n-fD}BR_z@%nD^%lxN^*JkCLpd zWH@`iS#R4y9-=bSSUQYX5-L6{`%3IqP(7`?CDS#V7`e}Au)iW8KisciBLjrS{#7X+ z(xQ4-fmv0`PN~R*#z-s12DS8vt$6O_GaB!ONKe$TMa&SK_DV(cD`Jz#)3Pk5RPI|L z5-xcDR%0ux_| zH|{}unJg9zMa?%YtoLuYEJV$hJ1?Q0-?X2J-D-^;5!z_+HWM`xw?nu*8LDl)+e10( zRC=NIH)~wflNr=`YSH(tD5s>QmQu(1?kj>wjr8aV%|yFs%ATy`#g_fo9fZM3Tv6*& zd+2(yIw>PzUe)BYP ze3je`q0%o1HiZzGg8fRZtF>@9zk!7nTsK*wOBCpKf;r1*9arKXJaaCKg}FROSnonhQOog=N|=;e5cIS z4*yohc{hfRug0vzwD1pKs=j|ro!ya>CV2)hEf)xMi)_W4TAF<7>pjQTW@%okC0CH? zJFUvqC`boc_uh7!Sx**UH{6^SsO-|(uO^JFamJu#&pDRS!JnN#?Bf@`9HP-wAt1g^ z$IaJ;UpVCC-W$pAu5Z3KSEoAHDEoJr0$F26viJK7K2uYPf7USjN<|K{w=0^?0zxqU zni3q=C!zBWI^A}(>YMF+X7-uPnx3m|`S*)_Ch7jPimsMVe(U10yl+W~J>eEO0Z*Nd zfH+0*!%#edeZKVVRok0F^u=D0PHsP!cehr@w(=#;t**|b4ZObx8i`i<9voz6Wf)<& zr*DmZUlw30&Aq4?@8&`5R4WeJ!_fHDppRIdUiKJ(6IH3zzRK-c0H%ALEEwLMtyBOu zLjli8O#4d{=qwtzo?-@X4SmxIo?NR^ybEjt4}OI|gBzS;2=<)10O}>!ZzC1fUOWrge-!Wb#9K4 zQM``qcG~@--9=T&`nKbZvlOD;$;|uvtmKd6$foTTuboK(j)E+2gBIeFS=CxiIG@of>FcebBb0 zB0Ilr9uj$I_T7Tvnsb8DndK_N7j)Pp@DJBOn@9#%L+u59CnX7o39*W0#vL@_34}jr zlMA=b+&O4s;!78B2qsh3zBrK{p1?{P45|z)*r5Y;ojN%Fb9+ZWKp$XRJq7A&k_7If z>#2|g!vkfNESL}ai?(Ko8v8q){zYlClyI`}6 z8ToY}CL$fHukPVipTUJHREmf5U+(y*atp?ySa#>Xp7)<^P*f9tC3offrYsX1XR!;+ zinYE{lNWp5f*(eCQ%L?A^~yv8rUqYaw(JD&M4ZZp zFGGDac5W)mvyAx_Wh3IQu)fFgzEYn3e?!dW^%C+w~{RES;9_ zZDri3uu23?lX4e3uk3)uDhqLW4mEDo67GszZ>i3Z_F>cE!2UmM>|h}3_(k||a2R$% zGqro7AJCk!UtMRR1yV+j9S;Y`zZq?iHO$m_%pc8I1Hga`-BmeVkCViTPsuz=J8@l)Z_|G(Rz^>!%i50oQE9{NdxJ_h|TY6-wBp ztE^DUk^bnZK%=>D+_;*j^k;H%TeI6r!dn`TRff5yp}~B!C3NJxg@px|*YLzENm);u z@8O%|%YHp9s=~6!jcZqXddBR_>wa$Rp`rO3;wfM=nCA?-yyzQDI%t?&e|g17hBOMJ z<6Lt!Geh^Bga_I|(0;o3Tx0pc(tKtzGH0ihvJFh29D4-VZ&Ln&mfmdfBkhRpWoXqw zl!GN{DYGz>gf{0SVl8hC@M0{VMs3d}6||c?(bBFBfcgrp0rav8hrdcat2%$mEzZXQ zZRZ=D24?Yx+h9WbyuVFCt6W~CVMZ6{nK7(&7j)>tU2p~&ha&-T5gn`t3C>u4WBsQN$nLla?RUo!%o?~!Ha~Jn-!)bam7eoI~yzrXUnRZnk?VP zdCENICt?mFQ9|xss%{n-2`RJjnQ7f;Z$gTQ{ISY;0ZoyZXEOjtDP7#T>4Lx;cT0};RDg&^Cr0?UcUk-RJp}B>Mxq@64 zx^+Tcu0%}2obZ#CFto8=(|E3ZD_v86);ciM09zi+brZWX?UC6MlzM-?Mn;=Mh*(}; z{xhdp$**)3RWjf5r($DIzi72(UBckKkH<=Vay7ld?$gZ{G9@2RnNM5M#&OI@w`;DP zlja&ffcP~GcbkFR?y>pyzW9%e5#Y1P#d{cshoxczS|}?UcZ<#5+I?OsF*jqiSO92! zHL|&GAjfHdT#9`s->MPF>@DDKXZKJ|j}Y=PK4{}OKh&IO0TOkLxb68t(l%~d%(qL2 z&TI^AytDc|w9yvyQe($9d00W(;PTI(9+_4FNigsPvS&7vIIuG@jqGtj|3eSUJ;ix< zl&9wV=;(g_&9ya$qK$ZG=efjsqx1`vv!(;jATRP+)mLC%t^Cx%Dx8gbp1LH0J09%D z{Kr%&wumiTgpV(-HRjMkoD^vL66#%$osscsm7*oGKSa<@Tzq|_uMz`aDRm)xXvtA- z;IilVXY^Z6Ny){Ch%Dm(C%#Pg*fo*g3jwW;9t*kIFTMBrd(H@PaI#O&`%G%R^9_+c z5$@VGDijD}}e}ZpkR*6<$i{U9NZkhn?u+Iwe)p^5;sYegnvU^Hq<5 z^_py}X6n%tbxGOPsuLEe{W-RO60hb5VL<)RLeD;qLph4pD=5<;&|r$R?hE$Dyjq`md#k@GWd>zZB^PTP|KiHTE_X0zLl&TIOyf)vQ@ZFvR0+ivK#fGTc6d4?$a z?b3wC#`2(3FSf+Ks<$ntrwIlomy6@Q5b|2K@!j1|OVQ95wush!I;vNRW9*xr zrfB#9>h0Cld9&wu=CupJH#$iVV7rLfGa@_-u#nn^s9QTof=i82FTvVh4$N@5G5gUP zOWX?<^t94jHA~(xU}q!7I;2jj=H}X@nOvlc%WZgz`#@*|2SH}JJo>)(h=Cj zez<7BE5Y0Bg zR*er(~Jv}h8-TEgKDM~TCzBCeeUrpmA&WO>n;(=R29kCpWgx0Q) zeeVMc)8MIsb`0X5XUS~VyAx^3QA*V{K_030QalP*^Yg=WdN>Q$nr-%f0P0}&$e&d< zo4qOOQ)0HG@b^(qP>-p@ebuTq9+Zu2V!cFPlif)(S`f)jaIijLRiyH7eZ2i$XQ-4{ zWTLk?Y;W9TX}F*<(qlZ-`(5nR?xU;M74R!pdL>>aBloRcnl1FHnV5dojCd>&juiV)M=No$bvZU8u!iB5RUZb zrlwbG3%U#IHU>M%zZ2(p5%OGSl@prYH!m`AiGXDc7=!4_5$ov=@Ab$rYLtt+ptH3& zJ3G5W8UQYNUj&90UG=LIIX171$Qz!j*!PU*(=v@gYLF^wTO-1X{lgWZEwD za>OBH^xf1djGjDl+5H|<9ptq(!7U_2slQP&P{UO=b~kx94z-(U+ggsQpO41cx@|(R z;?9q#b1-oC!uk|=`7B#?fI5m^lgm>1~LD|5+R^?Kw{X3x*# zxw_kz|IouDBY)5v8oP$Pkhj#h8**f?#0jY4-onY-HHi z&i8ot+{pYBKe9D+ZhgsXLZ^CRL0-@uJ@{&B7&0L6@>7F%)lmCgC3GbBxO7nKTD579 z8G`Q1_=8I##y~W7Udf=Z<1*n{ip6^MBN=v&Zo zO-xG+PLr}FCpj=sxcHVAgW=ZvxqygvU}Zt< zZwGP0P+82(mL>nJzN#h?Y?I@QWcrj&uM!j^rCWHuSjSxlXzBgFVub6kW8+Y)K z>R=u=PsDvC2hG&V`GR^~=C;t>07) z@2YmceG-#N+N*}(!;lZC*<6`NKKnQbWmY;tkgXLN-x+v?GsnYm_7&;{HLbEwRo4{T z{g)&!P9QFW=C&9tj{aH*yC+2{JPGa@PTRWo<(~${NiqT{Kl&dkBm;r4mGg`<@v-?$?9G zt9G6~Wokb#>z!Ivj0?gWSznL(bDNeHv2Zdi_@J{+AcVp5%nz3K16UTebAG=7S0YNe zeH7-+f$q()N10za?B5SWz!4GuaOOA%kPnV;DNnaLx}Z21UpvoO8IF!`0muLA0|YY% zFKV#yUTJQRA!b&r`usp+G25EuVD6yW8` zHXP3hd}Hv?^3_uQPz~>U#p|;X4DRFZAYp+k=!{QZUpI223|fllE;JO0fi9yXIa92O<> z{%B-^JZ>=j;v-eRW6K0mB&MWE$Jg@#X5Ht#`mv>|1D~;O*})NTI&eEWrtsrl{~y0S zl&muMG5xIdIPn3a-6LVTKiKTz-)1~WCCy$0nG&h|cMQQDLnfus6wEFEu@%REb*}Br zJ}>AZ1`cy5GI42zx;21|dE!6xCO61?8)v#BT#rT?4(tZVJUL~A@cjMezm4TTn0BJt VQe~+NQzyV58A-*vS+@#h1}R8O3Ia;EbiDh3 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
!AHLQuDdo?80jhYuKI z%NjrG*!nfDd1)9X0M>NC(vn7OvYG6+3N~}swf7^XHH+RGr z=0Z_%sr05(kArMrOHlS}%~xX4(bLy)!hY)%!N*u*^7!%vZidnGiWDOZ>@9@Jg&&k- z%p*3Pw$5EnGjLln3yF#OsEv3K-~CJ+NK82fP9O#rJ><{Pvo=XQknIIu*pj&?A=Fh= zAZ!ty9vK_?;IA^M!Z1riu||&+uo!_C^MWtOobUQFi~Y3nJ1QMtFQ;Pa5S|hAn!2w* zANVy+H$Y43AquW8XCVs30|h;?n*p|GCRmqi7R7~%ezobUe$h@{@$q=gP|MIt6(MxbH~_IvsejD5k-;`R8AouY61)t2b-LPuV|Fn!CF*LfJrPE|#;~MX#KV z){#TgvkaiorY`HEUw*G?N8Qs|yYgYg>`aX~v8&+DN$0Zta5jlQ5#{OE1|m*rAX}Vq z?lH@e-JSj6arTASe*WELi3LSN**w*EBy48P>tz+4VOr{B%Iff&t@8f$FZ4{=5fP6U z+T&PQhG?0YLzrsMSS*(~*K)IyFr-9QJA-oV?YiR4z6S;Ktr%V`lDILSB)rCRl3E&G z2$}iHaXr7bn281iYkQuDo}&u#@)AuKzi$T%Vzd1(Sl1WZzlw#llVm<&vhy_$w3kJh zE!eo3Kp*f#D1KWyPPn-;cOCcht4|t8JOKg>pY;jXY8MN0(^0*_a6aH=uHlW%l17)U z_-)MHT;Qpl0LAB9Fo!!{Zu?mGH@Iah$Z!P|UAOo9S0CT()a{DJ-i8OOl4@}7%sTBH z7%$k|Uf-tmFgGb~SS(1eQbk|x-txSmA(DOc=+P0l#roW>Yp`jL$#1 z+c#9RA&X;8jcQfsyMr$-Z`=m_FINlV` zB;QxY%4$1*#*B8RP?N#~p_c}I=?5+Sbuz?u(=ROPH}*5dJ59127IT3n%HMCv-sp+h z)8DeZ-VSiI+VQD1HLr;sHwLx<9QvLf^zJuhdIija36|p0MD1hGPvHpNgzQbqj30aj;4v;^PwY9 zrK^5uiQ$ZuXCRg-==cjEShuYXt@g1O^D_JUQXA9Pe>6Ls#4_dGJ3@z7Hh!p#=m2D zTV-j}yB;@Q7F~{AO;abQEy{BG5IY&8C0Y*!49Tn3*%Fm{HFvO;RH&C4<@j0#Q zpz~(vXZjI4dN-bbMA*g)hWE==$nH#fVEgzi)$t5-cpc2`Crbjm^;XNliCZ}%U(k63 zy&gO|%0T2kzcz781J)tk8Hqf0gXkdwv02i5lG>l0Ou;>Mj$~>`!nO>JJWP_GTa;CV zI9b$;c@weQc1u!AXNeQLXnt(C*r2CT<@@Cu%j$-vPQaj5rKugiOmZ`uvp;D@`L+Qd zEqzSRfMGN;vT>+d`OKX#NOV43=^Va__~V$`Vq!h{_*Wp$`LoBE>_U4YI{h?4}p*U+Z4 z0I0i+`cJl}`05;XChAmdd&{kwFO45Re%wiS7PmP?pFo1v`+%-DwrH8+0Va2Ubq%?Rkq)=Y)H@wO)8C4-C_ zoP>_92PlcOw+qs#s)SmeCeTKWeu;nbUEH& zKiZ=Rky!NrE2Iyyy~IpM;qH*kaYZBn?gE)s)xP-brUVK`-8OMsp4SgZ$^Qk;nJa;pL{n>ZsX7 z3iKBlnVH=VSen6e4DS$EvUF}`P9p4OyGNE@O`1-l4o^>~SwF1ges9rM6keKQ+{6tu zNF^jpAYqq^4Daaf%k-Na@pckzg~r^}m61u^1|h8d7|}7ua^^}7og-smm&W{NSSFr! zRbY?nR&rJ4akA45LgSIQ;lvM!16JB8;8ZJA2rFBPrtUbt=eXpE6L%(p0&$)#Y{!oty@XOmnB_1d#DLFXGye||f z*bwO#E_gkaPkaPLm)@9c59`m#H>j4A3NW^s^R<6MJ{r84@g4I*;YMz2l^FQ6`W@>E z*t22y2ZF2_*h5DM!D~;Jwv%=N`q$lRk`}i95hg8H#6M~2c#z)J4fpkpg?Q!=9ez-Kdj^_kz0uR0#mhd9d)FCY1VuO7eJJeZq5L{A_M5`TS+<)DSc; zbX?6g4;YTHFL2fbin;j)Ef1V^$&tLp1UKae9EmD6OHe4Vp}GB-1a~kKKdXMU;UOrE zT;f$?)gd!+h%x*{9v}KO&;|0{2?sZ^)~2exfvXSigR=4xz15-=tEas9_jVe{P`kQ2cRx}H!Y*=%#}MWnP#XYs;~=kkY8^}fOYAuB6D`^HIlKi@ zyZ}`qfS^e3zMNDz5{LX=ik$g0fz&@WD+nqDB6!*8k)?+q4);fx?JosF)dK)I^cCdB z&}|F!4-QJ|!(bBqM*)d*rx3V@KnVc^IuIF6&B^l{Fa+4+6P_!+!Uek>B;=UwU80K| zf}yQ{cb#XJ_j)%26pG)*mOte10dWSNoKm-{$!;y(^mX~+;PJ)>CH=~hMv*t9cgVQq zq5LW`HT2*?dk6n_sEFF$O_58pTu0sUidBLh~B3=19&6A0jHZ~{r8kP(s(>F@=- zx`sxf86^WepcMe53Me2mB=1HKYwX0hs@XG}6jUTo8SbWvVK^d-Rdg%?VOR~$2g_4X zN{aROsIvU4SGbuO^SFTq=~Pry3hHrnk62h)X?S?*11gS>ZAQk&DV5BOj533RPweB~ zUDi%bs^^yGdZ=rt8}~zC0?FLXKIzp6e*!AH1*sqbq#>t4&Ih?J3)>9F(|56_`bB+-8LI0`e5 za0qOIv7j{gHshCuk0A171GA%C&T={=H=0wDKYCq2zU^_wg{>;Hi%=3^9O`;>#CWTG{}6`_#0wu%CfkfkVT?E^VWuqhP(zn>nWK zB=WQR>loEblgZatlf?JTH_&PCz*O*vV2v~s+S1DBFd@%*&}qb`E9i!=qFfae1%&x= z@jNuE-b_DBSt(i&y84{4F)gp*Mck@3m2aY+s>6t?k(ELo(ducoH zsp?3npS-rK1D=HEY%keKCJ$4!xKRv?bs3j~5${t+ao2a+fdn*5;J)-coiLlC{*jGh zZ@;aOjJfbUcEY1<_j};q;`UB?2Gtr=ep6JUVqPP^ps{&i)jenwL9aAi#lpZXnc)3Sj@wcciIH6+oIACDi3b8c&4kN9$U>uK&(Ox`-fXZ4Gpn+(B_* zI9h|YN`WK(@|V2iP6UmFBJ{1V?t=%$05rjZW>51EH3?*<3|i0%9}++T9PlRy<^OWe zr_%flKjR+mMPjjAFi0Gp?ukgyvr%5ZDYK=dD%#emg zM2PBjNT)gh$kW*Ngs9b#hYKtJ%?ReBQ=T0MN0VL`EoIk{W zlj=T$Th^QslY!7~Gph4hMLDF~sm0jBC z`M;iBa&Q2=EgM#MLU!T*P7k^5LQd%_*k1nG)$-uR>how5k|Cu_w3r|6A|HsAzYDV2 zBF+v=@I%!a7NO}s5$+R{K}$D-j(FT{QV~}q{YssfZkuOL=zY)&Wc>RAZ_CQ8OwkqJ zaas^Z}|Kb_r5y^loC;D|8Df}QHxf*Fq*fIvFt7{l8 z{ybLH(b)`Wy_clwnjziuQcM0}K=TFv0L3rXhNPI&Ug)76(l&kURR?AmRuzuF)xW1L zV#t5&om6^1gYbg*PJ?0usa;`Eje8gf2OE#ErZJSPSp+fKmKX0$;n}^S0H!Wm?_K2O zF%#{7ptobRaZC(1H(+$VCkfct$YXNAgt879A;4m!1Q$gW4st?qFKx{H!=yqyW4~xa zMmBxcvq{q*Nq>lgcZ`Kivd@l%^_1lf{PQSnMB;Xn zn2pLh7Z(@X=apO*4~QXt1gC zxt-!6H5j#7l%?y!o2437eSy zT;qzVLPBZt;O)bVG&J^RgwxgWy(hwe8B~RSdB@lq<>2Kc>ZpCD}Y#Ug`~u#qSLw$Spdk zjQQ>N1sZcm<)KVa^MJ^y1hj0^Dd-9}&-toQrk`+~M1Rf3am8Fx=I54$2$_ie^j}8@ zGunGc2WT4h$ZbM6xON{3qOrfdo6P?D5#azG@tq%D;VAbnkk$7pyR##D1O8g*V5{ zjtX4u2YptNMO^04Vw>ibJ{cRcF~b-}Vf?j#s7}5c{_K_Pp9=3)lKBVn8YX>;uI$_0 z^h}xB4UP_vmx3b4)y~fQi^#Kw`54B^4bV5nikW8wE``=rISJ8X-F~gLu4Q1$rXUhK zi!v4RTCZV*5N=cQ@jdGEd;r(sk9==zVTSx4c^`4zg|@frG;IDlH^ub_PhC!Do*6B< z!(L~m%K;lnLJ#qE-%U4}@87=o6D=3iO-Qv8n08xPU+Akm7u>yqW zb;S@K0XwHxL4-m*Q7-H9bqk?~a&n=}i}ni?h>Y6W{%&9mBb`J{BakD8=}X2-bC=b9 z3nmfi$>(xC3Gj_)@44P2$k7q`&fT1-RM<%2Z%;KP^WQq>PCt!VWzux)^06!u78gf! zx#jCO;uLynb$#4~VJ2I%bdE>fgj>eK3LI_v#+cTFUe2XDj- zB0UV~Ie@LwbN>;<8qcp%pA4Jp`e`Kr~hw2+@`ZG|?ic zM|5tWp#Ex11-XG$mSI~=MVljOrB6dbr+9o(;^L~cXKj)IubZ>iDCY18Mb@z-JkJGP z!O2OhSQa%I!x5H)E4b($DyIkI7J@Jys@OR>oEV#Q^2v{oQovp=$QTEE zLf(GuCOiYm?drHhw54IoZV_Nq9|NKd{$NOtK4Plyug~u37>wPaAP1xS0Ayx#eU;tO z$dC<#Aw0;_Uh_obFXrugJq8>fb0&G&ZfiYQyb?Gf{iy&JS4ia&XX9PXw6fX!c15rQz#| z9u$g`$?djy@3;GMq3qUQbGuys#>0H~eO={NJlW;q#dVY0)tjiMrLeDt?Js+HlRP3zTo(O8KJ$)pJGJ`aRJ-3sY4l*i%Yo zDVP+#3a?)Ip4CJLqEW^VS0W@rGAW9}VFbpNf>jLq1`Oa3AEtn6a&Hx^up6%C5K>V| z5s_3Q+<|K9&W2%!(cyT{gOHsM8j*;&m8=NQo^0;@aJzW}b*lqq7Q6|S=O1O^x?S;K zFE%zwDiOPFkvSwLCcbgIYArmtvTLdfu;1Khq@rT!?;vp#Uez&2HesaSOyfsa;^jJh zaj|gNZVf#7w!?^N7ND+pW4G1rQO*ajGyAIoL)2gK2HD3nsmc%1WaIk&@x~KxBQdS> zsbLs9-WT6hkdPpWwf%#zI{1~DS1Q@F7##heoRp9Pf$RO# zw9_RDsH@(3E;UKCZFW|cb%luOw7i zX{f2=v!wYwp{87xP8(1YyS+cH84IoLUjD`BLS3Jkpe}TX&pI9vaIj@qp!0LagFHL= z@_`q9LNgjF55n~2KE?iKT!_lm5{smSL{_x6bMVg~0x2H5?Fff)%y%{Og{EnYZ^ii(uPc}-zuuH+lsAY(uq z;wI|9>r1QfOzOdOx}++q<~v{AnI`)cF1=P}WS zZm<0|p6e5j`$5#4@k_s~tUesp?@Tup{z`0q0k(fws1wY2^#io{xo$zOhODQA_s!@) zs>p}N*#;*Csn7J4U(gY?6h5dgs$KD zW1WcG6}bw_aADPbMc8h|^=vlk>QCR`pdYTR;D)SiY&>;5`F=aFGvoAum@zfCGys?R z#(UP~)CK=|_VR1n4UXAh6r;vcYlKQ!0-FUS(RyK@<+|9dE(DrDVG1bhdcyj#f_K@4 zt%evFHWEAY>`YH<(lIfm{rvfgF7bIRvBQyt+R8?LacGC&ZHZQPAFl{EZ$jVdm0ImD zzO7aZbb+fUZ(=yrCOc$;J{cOEY$2|>?*AzPDd4xGm1Ea$|F@=D0U4H89X%j>xTpcO zB(lohnW>XKdR$YTyyBOMTX8rt(#OfjI9{rC#BDyG1jD%3ngDm3Co3Z}lqN!a9&PUA z&2C?FhVSBt(0hGnQVB-pGMqkI%c8&$;h2l@ET^Mwuy<%6HMV3jC zC{{y0^rq|WH2U7jR=)v4?d+0)-X0_tPXn(3z?Z<)d`4-gTib#WqW0Smjag6t8zur8r?d_q? zG>`@!r{%i_(9yL;!oU!QN{9+6I@<^1)X8zMv3YBC%(#753A`nVK>q_xkpr7Np|Lsh z^ay#y5rq*2nvP#0$V=ZbC;bk;NXgcm7N2(U(La;rPq6n~fF@;zp-!O}>%UdHWr63| zfy(8U8~^`&o@&KJ!)F8=%d;f#P&2ljc)UeMvh85k`8kfmAWPINN?J(3 zwLUAvNeXlvE_S1Kk^~CPhH}XcDth|xtHny`f|qWeK7ZzGcuxa@2k}p1z2{D6u)j!d&3k2w z!x~@+`jt1S*>^%#7RX{(mjXS}d%p{$q>atq~#Zr z$m;*-{ig3NcLeN#SDc1Jr#wXkbldnEsQm^+n)BueN~By=p0q=W!x#jWoJ1h*{NBh{ zAnQnidbr*tUu^x4{z<-^X)9Ipo>_<7r(NoH;IoVP&FPllSJK+S4EIrooG4p5R$3v8 z5L0eBQ!09RD6y+Zw_EVJC*0P#Z6`QW@ZSloSY6 zUIS%2pkkA?Jbkzk=Lf@s!s{l4DpiS12yNZw_fWj3KY^*f?7#qT4XUmOf{`kEoVIeITphzWVvt_^Xr(XC{s&COwG8k=g!$09mrpto}<^+dJJ=6bX z7zm;(jyfg>co68Hy9fAfPyXdN2y$>m^}Lqc3AJ3nYd`h>=mS`rfZ#Vwmf%BJxpF6r z4*NeJrJY!iSD^fv=p&${2>l;T2ccGE)89V9z}9mc!6^E}dx(G}3#BOn1rmTxo(q$8 zR`7cO68|OvGO7?M8vI^04&oX|E*7vWc{(Zmk%MD2UV>;10*NAXZ({6W%Upjr2(0L> zM+H;8Ne6(Uys}a$;@dYdTG|?f#R)?RiLQvK6;rQYzaDn?p_%=#ba5eK=ird|t)Z@- zo1V^>^l`j#r>aW%lkumN(J0)hau^srr1|*CCqy=B8;Fk}sV#h5 z8)r4{XyK(Y&m#xTYSRX4Sv|eIQqlvA z8QcZmgA7Gz%=UvqAyPW{v)%|e#8W9XjjD*j>F=_B5j+Nc!xc84V}IGDT)D^OOcIto zWC1;elEWjSU@Kt?dkWqVm^xbIq)xy{bl4)l$224hr~NwJ;6V|iOZzJ!d>*# zl$DuOeCRS5nVvqc-OTDGSf6jPl*RuajsWJ%%fs#-UNn4+B5Fn7GXuJ-OjEn_Q1tmJ zLA(Rb{=hq+f{Fnab_O2U>gB2wV{OQ*(x{9d;dYwI5YjMb^EuhRb#hvzkDhff2Ldx) zsC7@lL{SL}yfyag{@2-q=|8__CIpPS)JZ-Rs)@E6Wqbkw&yN-CUQ|t{d5@hF{I}+L zq6Mu!2IN4jSn@OQy0nEA2d;80O+z|M0M4gL)`|4jGP9(EMd>t$2V$zOi zzgwKMGwl6_2PFTSwFlI9X6|#{-d&1Cf7O$z@vPPkxOZs(JE?M~v4*k29XW*sM$Dsk z;++#9-ia*aYPQEH;ek2@*!m$}{+%V7(ZFyYPmO#B`oUcQSOc?!5F+p6znX7Y9w-py zr|cW_ciu?>N_7OHJvkr`1~Ce#uLPm1Gj)89e-bfhpxvySMdbhHVM^dY6tgwdA4j_5 z6u>~Z!9+Fyi!Szm@c}?E0y;SvKN0ccowWZUmKw>K5pZxAbkG)63RW<2ev-?S8*;o1 z_@+>UAdu;DCp;!X{+GN8dWMX+brPO@#Ny-r=M61nN2Oi~ihL=+Ax>-`jgR~Ta8jlC zx8N$Ta+joX`%gygxp%liV#k&xlrg;FHkpqP>Lv)13L!@XCsVTPlpf^6SHgS(lenlC zNO}1i(!k*VZE0W&1@%6g-iF)0Z)!o(9q5$afSht4ssTI(6+c*2qgVW;Z~((6z{og# z=Ki;>Np(%Z+xRuZKY;f4buB%Wiim$n*Do`SU;*9%c}lf3WZW zD-ZEsRt{?%5X%vymV4iu8aLqO1bj0qFR7WCx%(IxcM_{0}RK^hS#R zaYo0wf8Qbb7t4eN{H&Lp-u$+q;dzLPAfrz+n=09Do|iKsk#5?+!};k-EE2K`2p8Ptga-?mmas zz;p>OXbHmH7XbW!@k8MNXbQ;^A3L=Ut%)n&V;&oDAwF=S6ROC@o6i)pkUc0rC~#3}#Pmg7HVyS}a- zlK*s+++h7>d!WeckYmvHU}JhBZ?fJ~2=;TJGUxF2DP!;Ao*yt^)J z3VM6ZjDV=$-DklC(Axv-U|~t`di#78Oqb`>wTSh7Z>MAuEDN>A!}$Mps{8LZvD2nc z!N3tLhUlg1<#XU;$=?=g^Ygr{`^2XWI!6>j4Xr|yQ*;&CfLHUtK&Z0?Adk~LtlsV6 zW*NG;4QOv~Pk9#k@^!;(Xf=8hZSS*Ft4)t+CCt~AFxg~pXI$Vz1f3xlt+#Dmi)rD$ z>=d6plgVsUg>H?Sl=U5nuzb#@bCEsRkU|+UQltGbJz$ZYj|ORTUv6lfX7wC#g9>h; z%&=iT&c`nc#hPhSLY@FRwgo8CXEXV3x!W<8X)))AB+d$Erym&d{1>sx zbl%TCh{3Z^gU0yIlqrNXj%o3T>J{lW1Pm@6Cg@;%l+z(Sen1$ z%0-z(Yd{xWeshWM$9Yu-y#sBOHc`%}JEZf%{K%ak_ac4UY1<% zEY7crF)VUXHzlK{>$STO{Zz{l>-BwIsEq0=Y%-uvwXqJdGP39~AbV!8v7QxVC6)CS zKl)8PN6*qy#baO8mdx<>v}~qahR%A&CY>7dMuK-a%lq7im)Qi|O)7O=6;T~LXyvy~ zk?}0C9oU&jORsdVFXX@5_8925`j(aU{@ze?IBl@|;Ch3-==d1CW?T5zxMjo974RON zkc-Y1Jbt(Iz?}FOjBhlGW(vamdN(M&J4^L;drD7db?Cx;+7Y-Mj|5nFoKhPC@!>H# zi(vYFJ5A??Sm1?`AEKl89FMsbCDItrHNGKs-n%R_nHue>5^z5AuismcIylh~_vGQ8 zO{wB?UShPFL$Kiw17%2A7meWZH^IN>eH_hR2@w4HW%jm}zhj4khXxRDJHE2vbs zIy$O1I;_4Nq4n2m`S!r&@q1N1@icWlyY^ZJ5P6J|Rka>{V?+UtW9$tX{E zF7+qsPQT@oZ@C;{(q0mH9&^a(q&J>*7Jti6D}_L4@#eLX4$vr_;f>+D^>uuIgF<~3 zpU3!EII1o%f2)jYGvMlv^*MP#5@{lS+pIu)B#4GS#;44MBF!|JGy1rAUk8Z;W&+_<4VY%uAZM4}{Z&J0IRDetj|_Z?x@ z=${(6!FA)Ue2WV4!WoE8)vlLYHcIl+H!$NvF@KsS{#@BkT-Undb=tg)9fpLc2m3}I z7GG2>hPj&ihnD48GLCe2{_AFML0tGJJ!)(1#?>Al$fmC2*GJcfF{F_`2)UOg_-OyK zB>j@`cLHQ5|3kgq0J4pG^;9Z{6kSsJRo;VDN1 z6-3`cgYNIdsU!B$RmNm9S-urA_mBw#o7_g!Kfj5~>m3Q=$1b?fhqE<+fGpR~1akl~ z;o3Czd(~$qTvCJI;&Zx6PZ&r_33XMU>(Loc&lYqP1sys^1C zpCz|}k1CDSMi#n!TDR&jDmqDBOx5M*2|pfACXMIOEFO~jWqNIq-8BUoFUOspCve-meH!$t!(P>2 z@QDYj0Y6&#(@oM)f0zy#>~{v)_dz#9988FOE@ByfV=y@gJ4ie{Vs|qjDIbW}>+AI7 ze?MZv=I4`P1;iwhV|X+5=~996Y(A?Kfk>?M4apaB_6@dX^3q8!Q)$~lm}lO z3DRU?xOb+g5OaL2nhdEWvPe26=EkFDE%QnWzVW0_4E*81#&| zP?R$Ay|vj6(c~o6xT9~ru2iUiE~zw8wY`$5g>Z|OUnh7H#<1ojp-6Y5Z?gvh&$$K- zy#k84td$U{E+KR7g`wOpt{f{}*{+3HVR%z@10;a6aD@lrMU!RgqcN$}=L}75CtO_S z^HgeewuM(a)v`UKg)h547dOn#`hs90m@)?%>>4-A)d1mSOIaM#R%$QNCzJBsK+DaU zxIo12%Tqp*`5HIL;bYUZ>!rz%F~@RI-43C3 z&K5c>yd^_39--CrIa@;{4dr?Jt2ySLD8_iN^jT^++OCop0#;XL7Gzy;{nO zH;rJPVZn}=b2+X4uv&CExyb^?Gt!ZUJH_88i)x&&Icon&32`~-(&<8FzA0_kd=t-4 z^h+gw)ys`pyZ*_QhTNRNfH?lqk-#zM)}KGAx=BsY^^p*m>>diox^Ob4G>ylMP=%xO zRcP35*S_520uhq;(r>j^ok-xuL(^`i@}Rn@k^Jk|uUcd2&_3a>0s5J#{DxF!bGH-? z;-Gt01#u}4A0O3)xGXmIq6#JI#U--iklXE2w$pOInc;pKm6~0iQ=O{WLYAXKORVG%&IOJ0YmvOP4q{eIWRkg{LT$(dwPY^;@$yb$@LcM|Y6Zd8;^Qe)zo7NmZz_u5C6gU-7(FvtRw~nVr&{b*~ zypYEIs#Gwg9P~s3yeRVfT|qMyh*!S&y8DGu7ew!FaDx8=L2r9Sj517< zl03@UnX9d{B%*Z23>fMZBBR=>ly@shX~ENE*LvyRKdiYd7;X*x zWND$0=%iUfOA}?0W-ZvA@4KdR7-~}P(2=k1;nS}ENsrnbUKxdf=~uCH7cZm_Ih28O zj0*m-@_hLBuS3QMds!vg1*=)^#I06V&SYb~vt)TxpsccL*!0pIhgQ?sUa9l-_nqNw@yn(9+M=0{X~gBk{4*{`dZ}ZDMDGY~sj+^B zz>4Gix!ZHZMepnVjly3(c41_W=)L-ZNK)?p&z=OVrNvPnzv}pM`RnnF)baX)x{1*B zxXWOmV=ciZ*1vW;U`tZbJaE?bSYk89OJQ4I>5XgqCayDJL?1lP|%n zXVxE#nA@`73|c%$4rbW)ao7jjjry?cFrW7Xj2jQ3L-Iej4=k>GgAkv=(gl82vD2ZC zA{ojWasrh*^gcAH#H?8Vxi@+H6P;gO*U3NbZ*ljd4;XZ9o|5;QR}kGlTs??C zOPSe5)b}lo3AStGKT7fMKRH0#T}pOX=KfrAXuEssvHrahwB4hVvJ(Hc`(x1VNF5*l dw!7H;t$M!}!^&ZmGz|DBAtobQB&_TCzW~a}`0oG! diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py index 5fc5714ed8..9294b5688f 100644 --- a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py @@ -12,30 +12,11 @@ from datetime import datetime, timedelta def on_start(container): phantom.debug('on_start() called') - # call 'artifact_check' block - artifact_check(container=container) + # call 'artifact_filter' block + artifact_filter(container=container) return -@phantom.playbook_block() -def artifact_check(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): - phantom.debug("artifact_check() called") - - # check for 'if' condition 1 - found_match_1 = phantom.decision( - container=container, - conditions=[ - ["artifact:*.id", "!=", None] - ]) - - # call connected blocks if condition 1 matched - if found_match_1: - artifact_filter(action=action, success=success, container=container, results=results, handle=handle) - return - - return - - @phantom.playbook_block() def artifact_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("artifact_filter() called") @@ -106,7 +87,7 @@ def search_mailboxes(action=None, success=None, container=None, results=None, ha parameters.append({ "email": get_mailboxes_result_item[0], "label": "Inbox", - "query": "is:unread", + "query": "", "max_results": 100, "internet_message_id": filtered_input_0_message_id_item[0], "context": {'artifact_id': get_mailboxes_result_item[1]}, @@ -145,9 +126,8 @@ def format_message_report(action=None, success=None, container=None, results=Non ################################################################################ ## Custom Code Start ################################################################################ - - # Write your custom code here... - + + ################################################################################ ## Custom Code End ################################################################################ @@ -226,11 +206,17 @@ def build_message_output(action=None, success=None, container=None, results=None def results_filter(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("results_filter() called") + ################################################################################ + # Filter results from mailbox search + ################################################################################ + # collect filtered artifact ids and results for 'if' condition 1 matched_artifacts_1, matched_results_1 = phantom.condition( container=container, + logical_operator="and", conditions=[ - ["search_mailboxes:action_result.summary.{summaryVar}", "!=", 0] + ["search_mailboxes:action_result.status", "==", "success"], + ["search_mailboxes:action_result.summary.total_messages_returned", ">", 0] ], name="results_filter:condition_1") From 316f27c3d2e018f6fee5db8d908c4ac67d482818 Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Tue, 23 May 2023 10:34:18 -0500 Subject: [PATCH 05/10] Names and testing --- ..._Message_Identifier_Activity_Analysis.json | 76 ++++-------------- ...k_Message_Identifier_Activity_Analysis.png | Bin 49186 -> 56320 bytes ...nk_Message_Identifier_Activity_Analysis.py | 27 +------ 3 files changed, 19 insertions(+), 84 deletions(-) diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json index a493220bd9..c122359e28 100644 --- a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json @@ -6,25 +6,6 @@ "data": { "description": "Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table.", "edges": [ - { - "id": "port_0_to_port_2", - "sourceNode": "0", - "sourcePort": "0_out", - "targetNode": "2", - "targetPort": "2_in" - }, - { - "conditions": [ - { - "index": 0 - } - ], - "id": "port_2_to_port_3", - "sourceNode": "2", - "sourcePort": "2_out", - "targetNode": "3", - "targetPort": "3_in" - }, { "conditions": [ { @@ -76,6 +57,13 @@ "sourcePort": "9_out", "targetNode": "7", "targetPort": "7_in" + }, + { + "id": "port_0_to_port_3", + "sourceNode": "0", + "sourcePort": "0_out", + "targetNode": "3", + "targetPort": "3_in" } ], "hash": "2300cf9478d779f27f57247e8fd3ad913e31d940", @@ -110,41 +98,7 @@ "type": "end", "warnings": {}, "x": 20, - "y": 1370 - }, - "2": { - "data": { - "advanced": { - "join": [] - }, - "conditions": [ - { - "comparisons": [ - { - "conditionIndex": 0, - "op": "!=", - "param": "artifact:*.id", - "value": "None" - } - ], - "conditionIndex": 0, - "customName": "artifact exists", - "display": "If", - "logic": "and", - "type": "if" - } - ], - "functionId": 1, - "functionName": "decision_1", - "id": "2", - "type": "decision" - }, - "errors": {}, - "id": "2", - "type": "decision", - "warnings": {}, - "x": 80, - "y": 148 + "y": 1220 }, "3": { "data": { @@ -183,7 +137,7 @@ ] }, "x": 60, - "y": 328 + "y": 148 }, "5": { "data": { @@ -207,7 +161,7 @@ "type": "format", "warnings": {}, "x": 0, - "y": 508 + "y": 328 }, "6": { "data": { @@ -257,7 +211,7 @@ "type": "action", "warnings": {}, "x": 0, - "y": 656 + "y": 506 }, "7": { "data": { @@ -285,7 +239,7 @@ "type": "format", "warnings": {}, "x": 0, - "y": 1014 + "y": 864 }, "8": { "data": { @@ -317,7 +271,7 @@ "userCode": "\n # Variable renames for convenience\n message_id = filtered_input_0_message_id_values\n recipients = filtered_result_0_data___recipient\n addressees = filtered_result_0_data___addressee\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___sender\n \n build_message_output__observable_array = []\n recordList = []\n \n # unwind records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n observable = {\n \"value\": message_id,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"Splunk\",\n \"message_identifier_activity\": recordList\n }\n\n build_message_output__observable_array.append(observable)\n \n", "warnings": {}, "x": 0, - "y": 1192 + "y": 1042 }, "9": { "data": { @@ -352,7 +306,7 @@ "type": "filter", "warnings": {}, "x": 60, - "y": 834 + "y": 684 } }, "notes": "Inputs: internet message id\nInteractions: Splunk\nActions: run query\nOutputs: observable, markdown report" @@ -393,7 +347,7 @@ "schema": "5.0.9", "version": "6.0.0.114895" }, - "create_time": "2023-05-16T15:09:58.373153+00:00", + "create_time": "2023-05-23T15:28:27.986655+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.png b/playbooks/Splunk_Message_Identifier_Activity_Analysis.png index a98c7732f7e38700219621b455af33056fae3314..491dd9bd6e86447dd5295b8bb3e4fbab8451c4b9 100644 GIT binary patch literal 56320 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 Date: Fri, 16 Jun 2023 10:38:45 -0500 Subject: [PATCH 06/10] Addressed review --- ..._Message_Identifier_Activity_Analysis.json | 35 ++++++++------- ...nk_Message_Identifier_Activity_Analysis.py | 45 ++++++++++--------- 2 files changed, 42 insertions(+), 38 deletions(-) diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json index c122359e28..fa6493574f 100644 --- a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json @@ -4,7 +4,7 @@ "category": "Message Identifier Activity Analysis", "coa": { "data": { - "description": "Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table.", + "description": "Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table.\n\nRef: D3-IAA https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis/", "edges": [ { "conditions": [ @@ -66,7 +66,7 @@ "targetPort": "3_in" } ], - "hash": "2300cf9478d779f27f57247e8fd3ad913e31d940", + "hash": "11000a7253e79b6829db063d49078c79b7446d8d", "nodes": { "0": { "data": { @@ -81,8 +81,8 @@ "id": "0", "type": "start", "warnings": {}, - "x": 20, - "y": 0 + "x": 19.999999999999986, + "y": -1.2789769243681803e-13 }, "1": { "data": { @@ -97,7 +97,7 @@ "id": "1", "type": "end", "warnings": {}, - "x": 20, + "x": 19.999999999999986, "y": 1220 }, "3": { @@ -105,6 +105,8 @@ "advanced": { "customName": "input filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "join": [], "note": "Ensure there is an input" }, @@ -131,11 +133,7 @@ "errors": {}, "id": "3", "type": "filter", - "warnings": { - "config": [ - "Reconfigure invalid datapath." - ] - }, + "warnings": {}, "x": 60, "y": 148 }, @@ -153,7 +151,7 @@ "parameters": [ "filtered-data:input_filter:condition_1:playbook_input:message_id" ], - "template": "summariesonly=false count from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.orig_recipient, All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename orig_recipient as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"", + "template": "summariesonly=false count values(All_Email.orig_recipient) from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename \"values(All_Email.orig_recipient)\" as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"", "type": "format" }, "errors": {}, @@ -231,7 +229,7 @@ "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Subject", "filtered-data:results_filter:condition_1:run_message_query:action_result.data.*.Sender" ], - "template": "SOAR searched for occurrences of `{0}` within your environment using Splunk's Email datamodel. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n\n", + "template": "SOAR searched for occurrences of `{0}` within your environment using Splunk's Email datamodel. The table below shows a summary of the information gathered.\n\n\n| Recipient | Addressed To | Subject | Sender |\n| --- | --- | --- | --- |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n\n", "type": "format" }, "errors": {}, @@ -268,7 +266,7 @@ "errors": {}, "id": "8", "type": "code", - "userCode": "\n # Variable renames for convenience\n message_id = filtered_input_0_message_id_values\n recipients = filtered_result_0_data___recipient\n addressees = filtered_result_0_data___addressee\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___sender\n \n build_message_output__observable_array = []\n recordList = []\n \n # unwind records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n observable = {\n \"value\": message_id,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"Splunk\",\n \"message_identifier_activity\": recordList\n }\n\n build_message_output__observable_array.append(observable)\n \n", + "userCode": "\n # Variable renames for convenience\n message_id = filtered_input_0_message_id_values\n recipients = filtered_result_0_data___recipient\n addressees = filtered_result_0_data___addressee\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___sender\n \n build_message_output__observable_array = []\n recordList = []\n \n # unwind records\n for message_identifier in message_id:\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n observable = {\n \"value\": message_identifier,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"Splunk\",\n \"message_identifier_activity\": recordList\n }\n\n build_message_output__observable_array.append(observable)\n \n", "warnings": {}, "x": 0, "y": 1042 @@ -278,6 +276,8 @@ "advanced": { "customName": "Results filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "join": [], "note": "Ensure there are results" }, @@ -344,10 +344,10 @@ ], "playbook_type": "data", "python_version": "3", - "schema": "5.0.9", - "version": "6.0.0.114895" + "schema": "5.0.10", + "version": "6.0.1.123902" }, - "create_time": "2023-05-23T15:28:27.986655+00:00", + "create_time": "2023-06-16T15:37:11.247885+00:00", "draft_mode": false, "labels": [ "*" @@ -355,6 +355,7 @@ "tags": [ "message_identifier_activity", "internet_message_id", - "splunk" + "splunk", + "D3-IAA" ] } \ No newline at end of file diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.py b/playbooks/Splunk_Message_Identifier_Activity_Analysis.py index db4d394591..6321d785fc 100644 --- a/playbooks/Splunk_Message_Identifier_Activity_Analysis.py +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.py @@ -1,5 +1,5 @@ """ -Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table. +Accepts an internet message id, and asks Splunk \n to look for records that have a matching internet message id. It then produces a normalized output and summary table.\n\nRef: D3-IAA https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis/ """ @@ -27,7 +27,8 @@ def input_filter(action=None, success=None, container=None, results=None, handle conditions=[ ["playbook_input:message_id", "!=", None] ], - name="input_filter:condition_1") + name="input_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: @@ -40,7 +41,7 @@ def input_filter(action=None, success=None, container=None, results=None, handle def format_message_query(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("format_message_query() called") - template = """summariesonly=false count from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.orig_recipient, All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename orig_recipient as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"""" + template = """summariesonly=false count values(All_Email.orig_recipient) from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename \"values(All_Email.orig_recipient)\" as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"""" # parameter list for template variable replacement parameters = [ @@ -101,7 +102,7 @@ def run_message_query(action=None, success=None, container=None, results=None, h def format_message_report(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("format_message_report() called") - template = """SOAR searched for occurrences of `{0}` within your environment using Splunk's Email datamodel. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n\n""" + template = """SOAR searched for occurrences of `{0}` within your environment using Splunk's Email datamodel. The table below shows a summary of the information gathered.\n\n\n| Recipient | Addressed To | Subject | Sender |\n| --- | --- | --- | --- |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n\n""" # parameter list for template variable replacement parameters = [ @@ -163,24 +164,25 @@ def build_message_output(action=None, success=None, container=None, results=None recordList = [] # unwind records - for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders): - record = { - "recipient": recipient, - "addressee": addressee, - "subject": subject, - "sender": sender - } - recordList.append(record) + for message_identifier in message_id: + for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders): + record = { + "recipient": recipient, + "addressee": addressee, + "subject": subject, + "sender": sender + } + recordList.append(record) - observable = { - "value": message_id, - "type": "internet message ID", - "count": len(recordList), - "source": "Splunk", - "message_identifier_activity": recordList - } + observable = { + "value": message_identifier, + "type": "internet message ID", + "count": len(recordList), + "source": "Splunk", + "message_identifier_activity": recordList + } - build_message_output__observable_array.append(observable) + build_message_output__observable_array.append(observable) ################################################################################ ## Custom Code End @@ -201,7 +203,8 @@ def results_filter(action=None, success=None, container=None, results=None, hand conditions=[ ["run_message_query:action_result.summary.total_events", ">", 0] ], - name="results_filter:condition_1") + name="results_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: From 8d0f075c740af46486645bb161276dac94a3ed12 Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Fri, 16 Jun 2023 10:51:09 -0500 Subject: [PATCH 07/10] Addressed review --- ..._Message_Identifier_Activity_Analysis.json | 35 ++++++------- ...il_Message_Identifier_Activity_Analysis.py | 50 ++++++++++--------- 2 files changed, 45 insertions(+), 40 deletions(-) diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json index dfe5b38e4a..eddde7dc1b 100644 --- a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.json @@ -4,7 +4,7 @@ "category": "Message Identifier Activity Analysis", "coa": { "data": { - "description": "Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table.", + "description": "Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table.\n\nThis may not work in the intended fashion if your organization has more than 500 mailboxes.\n\nRef: D3-IAA: https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis/", "edges": [ { "conditions": [ @@ -66,7 +66,7 @@ "targetPort": "6_in" } ], - "hash": "4c7de1b968ebd883893943258b5cb5d7d415341f", + "hash": "c253dd1339538806313a6f387f6df7a39d537dff", "nodes": { "0": { "data": { @@ -81,8 +81,8 @@ "id": "0", "type": "start", "warnings": {}, - "x": 20, - "y": 0 + "x": 19.999999999999986, + "y": -1.2789769243681803e-13 }, "1": { "data": { @@ -97,7 +97,7 @@ "id": "1", "type": "end", "warnings": {}, - "x": 20, + "x": 19.999999999999986, "y": 1220 }, "3": { @@ -105,6 +105,8 @@ "advanced": { "customName": "artifact filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "join": [], "note": "Ensure we have an input" }, @@ -131,11 +133,7 @@ "errors": {}, "id": "3", "type": "filter", - "warnings": { - "config": [ - "Reconfigure invalid datapath." - ] - }, + "warnings": {}, "x": 60, "y": 148 }, @@ -242,7 +240,7 @@ "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.subject", "filtered-data:results_filter:condition_1:search_mailboxes:action_result.data.*.from" ], - "template": "SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n", + "template": "SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n| --- | --- | --- | --- |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n", "type": "format" }, "errors": {}, @@ -280,16 +278,18 @@ "errors": {}, "id": "7", "type": "code", - "userCode": "\n # Variable renaming for convenince\n messageID = filtered_result_0_parameter_internet_message_id\n recipients = filtered_result_0_data___delivered_to\n addressees = filtered_result_0_data___to\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___from\n \n build_message_output__observable_array = []\n recordList = []\n \n # construct iterables for records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n # Create observable body\n observable = {\n \"value\": messageID,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"GSuite for GMail\",\n \"message_identifier_activity\": recordList\n }\n \n build_message_output__observable_array.append(observable)\n \n\n", + "userCode": "\n # Variable renaming for convenince\n messageID = filtered_result_0_parameter_internet_message_id\n recipients = filtered_result_0_data___delivered_to\n addressees = filtered_result_0_data___to\n subjects = filtered_result_0_data___subject\n senders = filtered_result_0_data___from\n \n build_message_output__observable_array = []\n recordList = []\n \n for message_id in messageID:\n \n # construct iterables for records\n for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders):\n record = {\n \"recipient\": recipient,\n \"addressee\": addressee,\n \"subject\": subject,\n \"sender\": sender\n }\n recordList.append(record)\n \n # Create observable body\n observable = {\n \"value\": message_id,\n \"type\": \"internet message ID\",\n \"count\": len(recordList),\n \"source\": \"GSuite for GMail\",\n \"message_identifier_activity\": recordList\n }\n \n build_message_output__observable_array.append(observable)\n \n\n", "warnings": {}, "x": 0, - "y": 1042 + "y": 1040 }, "9": { "data": { "advanced": { "customName": "results filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "description": "Filter results from mailbox search", "join": [], "note": "Remove mailboxes that couldn't be searched or where no results were found" @@ -363,10 +363,10 @@ ], "playbook_type": "data", "python_version": "3", - "schema": "5.0.9", - "version": "6.0.0.114895" + "schema": "5.0.10", + "version": "6.0.1.123902" }, - "create_time": "2023-05-23T15:05:26.081875+00:00", + "create_time": "2023-06-16T15:48:09.633490+00:00", "draft_mode": false, "labels": [ "*" @@ -374,6 +374,7 @@ "tags": [ "message_identifier_activity", "internet_message_id", - "gsuite_for_gmail" + "gsuite_for_gmail", + "D3-IAA" ] } \ No newline at end of file diff --git a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py index 9294b5688f..c8b869c2d0 100644 --- a/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py +++ b/playbooks/G_Suite_for_GMail_Message_Identifier_Activity_Analysis.py @@ -1,5 +1,5 @@ """ -Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table. +Accepts an internet message id, and asks Gmail for a list of mailboxes to search, and then searches each one to look for records that have a matching internet message id. It then produces a normalized output and summary table.\n\nThis may not work in the intended fashion if your organization has more than 500 mailboxes.\n\nRef: D3-IAA: https://d3fend.mitre.org/technique/d3f:IdentifierActivityAnalysis/ """ @@ -27,7 +27,8 @@ def artifact_filter(action=None, success=None, container=None, results=None, han conditions=[ ["playbook_input:message_id", "!=", None] ], - name="artifact_filter:condition_1") + name="artifact_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: @@ -112,7 +113,7 @@ def search_mailboxes(action=None, success=None, container=None, results=None, ha def format_message_report(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("format_message_report() called") - template = """SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n""" + template = """SOAR searched for occurrences of `{0}` within your environment using GSuite for GMail. The table below shows a summary of the information gathered.\n\n| Recipient | Addressed To | Subject | Sender |\n| --- | --- | --- | --- |\n%%\n| {1} | {2} | {3} | {4} |\n%%\n""" # parameter list for template variable replacement parameters = [ @@ -171,26 +172,28 @@ def build_message_output(action=None, success=None, container=None, results=None build_message_output__observable_array = [] recordList = [] - # construct iterables for records - for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders): - record = { - "recipient": recipient, - "addressee": addressee, - "subject": subject, - "sender": sender - } - recordList.append(record) - - # Create observable body - observable = { - "value": messageID, - "type": "internet message ID", - "count": len(recordList), - "source": "GSuite for GMail", - "message_identifier_activity": recordList - } + for message_id in messageID: - build_message_output__observable_array.append(observable) + # construct iterables for records + for recipient, addressee, subject, sender in zip(recipients, addressees, subjects, senders): + record = { + "recipient": recipient, + "addressee": addressee, + "subject": subject, + "sender": sender + } + recordList.append(record) + + # Create observable body + observable = { + "value": message_id, + "type": "internet message ID", + "count": len(recordList), + "source": "GSuite for GMail", + "message_identifier_activity": recordList + } + + build_message_output__observable_array.append(observable) ################################################################################ @@ -218,7 +221,8 @@ def results_filter(action=None, success=None, container=None, results=None, hand ["search_mailboxes:action_result.status", "==", "success"], ["search_mailboxes:action_result.summary.total_messages_returned", ">", 0] ], - name="results_filter:condition_1") + name="results_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: From c69656d3a443a7cde9de1b74e212ef9d57915cf9 Mon Sep 17 00:00:00 2001 From: Lou Stella Date: Tue, 20 Jun 2023 08:27:55 -0500 Subject: [PATCH 08/10] Updated SPL --- .../Splunk_Message_Identifier_Activity_Analysis.json | 8 ++++---- playbooks/Splunk_Message_Identifier_Activity_Analysis.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json index fa6493574f..ce9a6239ed 100644 --- a/playbooks/Splunk_Message_Identifier_Activity_Analysis.json +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.json @@ -66,7 +66,7 @@ "targetPort": "3_in" } ], - "hash": "11000a7253e79b6829db063d49078c79b7446d8d", + "hash": "6bbfd0d0e879b5ebab46c26404cb193313b5ea56", "nodes": { "0": { "data": { @@ -82,7 +82,7 @@ "type": "start", "warnings": {}, "x": 19.999999999999986, - "y": -1.2789769243681803e-13 + "y": -1.9184653865522705e-13 }, "1": { "data": { @@ -151,7 +151,7 @@ "parameters": [ "filtered-data:input_filter:condition_1:playbook_input:message_id" ], - "template": "summariesonly=false count values(All_Email.orig_recipient) from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename \"values(All_Email.orig_recipient)\" as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"", + "template": "summariesonly=false fillnull_value=\"Unknown\" count from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.orig_recipient, All_Email.recipient, All_Email.src_user, All_Email.subject | `drop_dm_object_name(\"All_Email\")` | rename orig_recipient as Addressee, recipient as Recipient, src_user as Sender, subject as Subject | fields Addressee, Recipient, Sender, Subject | fillnull value=\"Unknown\"", "type": "format" }, "errors": {}, @@ -347,7 +347,7 @@ "schema": "5.0.10", "version": "6.0.1.123902" }, - "create_time": "2023-06-16T15:37:11.247885+00:00", + "create_time": "2023-06-20T13:25:49.471837+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Splunk_Message_Identifier_Activity_Analysis.py b/playbooks/Splunk_Message_Identifier_Activity_Analysis.py index 6321d785fc..03e5aed101 100644 --- a/playbooks/Splunk_Message_Identifier_Activity_Analysis.py +++ b/playbooks/Splunk_Message_Identifier_Activity_Analysis.py @@ -41,7 +41,7 @@ def input_filter(action=None, success=None, container=None, results=None, handle def format_message_query(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs): phantom.debug("format_message_query() called") - template = """summariesonly=false count values(All_Email.orig_recipient) from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.recipient, All_Email.src_user, All_Email.subject\n| `drop_dm_object_name(\"All_Email\")`\n| rename \"values(All_Email.orig_recipient)\" as Addressee, recipient as Recipient, src_user as Sender, subject as Subject\n| fields Addressee, Recipient, Sender, Subject\n| fillnull value=\"Unknown\"""" + template = """summariesonly=false fillnull_value=\"Unknown\" count from datamodel=Email.All_Email where All_Email.message_id=\"{0}\" by All_Email.orig_recipient, All_Email.recipient, All_Email.src_user, All_Email.subject | `drop_dm_object_name(\"All_Email\")` | rename orig_recipient as Addressee, recipient as Recipient, src_user as Sender, subject as Subject | fields Addressee, Recipient, Sender, Subject | fillnull value=\"Unknown\"""" # parameter list for template variable replacement parameters = [ From b55a0281ea4e2b2d9aeaa579492039a8d350dd79 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 21 Jun 2023 11:33:05 +0200 Subject: [PATCH 09/10] Improved the data paths --- .../Zscaler_Outbound_Traffic_Filtering.json | 34 ++++++++----------- .../Zscaler_Outbound_Traffic_Filtering.py | 21 +++++++----- 2 files changed, 27 insertions(+), 28 deletions(-) mode change 100755 => 100644 playbooks/Zscaler_Outbound_Traffic_Filtering.json mode change 100755 => 100644 playbooks/Zscaler_Outbound_Traffic_Filtering.py diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.json b/playbooks/Zscaler_Outbound_Traffic_Filtering.json old mode 100755 new mode 100644 index f77a7624f5..04a5c3c26f --- a/playbooks/Zscaler_Outbound_Traffic_Filtering.json +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.json @@ -52,7 +52,7 @@ "targetPort": "7_in" } ], - "hash": "d00eda8b809a9b54fd2a3df75a64dc1538169f7c", + "hash": "ddce2d54e4936120ec7acc772b88f91fab41ec55", "nodes": { "0": { "data": { @@ -67,8 +67,8 @@ "id": "0", "type": "start", "warnings": {}, - "x": 20, - "y": 0 + "x": 19.999999999999986, + "y": -6.394884621840902e-14 }, "1": { "data": { @@ -91,6 +91,8 @@ "advanced": { "customName": "url input filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "description": "Determine branches based on provided inputs.", "join": [], "note": "Determine branches based on provided inputs." @@ -118,11 +120,7 @@ "errors": {}, "id": "4", "type": "filter", - "warnings": { - "config": [ - "Reconfigure invalid datapath." - ] - }, + "warnings": {}, "x": 60, "y": 148 }, @@ -147,7 +145,7 @@ "functionName": "block_url", "id": "6", "parameters": { - "url": "playbook_input:input_url" + "url": "filtered-data:url_input_filter:condition_1:playbook_input:input_url" }, "requiredParameters": [ { @@ -160,11 +158,7 @@ "errors": {}, "id": "6", "type": "action", - "warnings": { - "config": [ - "Reconfigure invalid datapath." - ] - }, + "warnings": {}, "x": 0, "y": 328 }, @@ -184,7 +178,7 @@ "block_url:action_result.summary", "block_url:action_result.status", "block_url:action_result.message", - "block_url:action_result.parameter.url" + "filtered-data:url_input_filter:condition_1:playbook_input:input_url" ], "outputVariables": [ "observable_array" @@ -194,7 +188,7 @@ "errors": {}, "id": "7", "type": "code", - "userCode": "\n build_observable__observable_array = list()\n for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, block_url_parameter_url):\n observable = {\n \"type\": \"url\",\n \"value\": url,\n \"source\": \"ZScaler\"\n }\n if len(summary[\"ignored\"]) > 0:\n observable[\"status\"] = \"ignored\"\n else:\n observable[\"status\"] = \"updated\"\n \n build_observable__observable_array.append(observable)\n \n\n", + "userCode": "\n build_observable__observable_array = list()\n for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, filtered_input_0_input_url_values):\n observable = {\n \"type\": \"url\",\n \"value\": url,\n \"source\": \"ZScaler\"\n }\n if len(summary[\"ignored\"]) > 0:\n observable[\"status\"] = \"ignored\"\n else:\n observable[\"status\"] = \"updated\"\n \n build_observable__observable_array.append(observable)\n \n\n", "warnings": {}, "x": 0, "y": 700 @@ -204,6 +198,8 @@ "advanced": { "customName": "block url success filter", "customNameId": 0, + "delimiter": ",", + "delimiter_enabled": true, "description": "Determine if the block url action was successful or not.", "join": [], "note": "Determine if the block url action was successful or not." @@ -263,10 +259,10 @@ ], "playbook_type": "data", "python_version": "3", - "schema": "5.0.9", - "version": "6.0.0.114895" + "schema": "5.0.10", + "version": "6.0.1.123902" }, - "create_time": "2023-03-31T06:50:12.071333+00:00", + "create_time": "2023-06-21T09:27:47.392005+00:00", "draft_mode": false, "labels": [ "*" diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.py b/playbooks/Zscaler_Outbound_Traffic_Filtering.py old mode 100755 new mode 100644 index ced11584cd..f5e7bef5a4 --- a/playbooks/Zscaler_Outbound_Traffic_Filtering.py +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.py @@ -31,7 +31,8 @@ def url_input_filter(action=None, success=None, container=None, results=None, ha conditions=[ ["playbook_input:input_url", "!=", None] ], - name="url_input_filter:condition_1") + name="url_input_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: @@ -50,15 +51,15 @@ def block_url(action=None, success=None, container=None, results=None, handle=No # Block urls in ZScaler based on given urls. ################################################################################ - playbook_input_input_url = phantom.collect2(container=container, datapath=["playbook_input:input_url"]) + filtered_input_0_input_url = phantom.collect2(container=container, datapath=["filtered-data:url_input_filter:condition_1:playbook_input:input_url"]) parameters = [] # build parameters list for 'block_url' call - for playbook_input_input_url_item in playbook_input_input_url: - if playbook_input_input_url_item[0] is not None: + for filtered_input_0_input_url_item in filtered_input_0_input_url: + if filtered_input_0_input_url_item[0] is not None: parameters.append({ - "url": playbook_input_input_url_item[0], + "url": filtered_input_0_input_url_item[0], }) ################################################################################ @@ -85,12 +86,13 @@ def build_observable(action=None, success=None, container=None, results=None, ha # the observables data path. ################################################################################ - block_url_result_data = phantom.collect2(container=container, datapath=["block_url:action_result.summary","block_url:action_result.status","block_url:action_result.message","block_url:action_result.parameter.url"], action_results=results) + block_url_result_data = phantom.collect2(container=container, datapath=["block_url:action_result.summary","block_url:action_result.status","block_url:action_result.message"], action_results=results) + filtered_input_0_input_url = phantom.collect2(container=container, datapath=["filtered-data:url_input_filter:condition_1:playbook_input:input_url"]) block_url_result_item_0 = [item[0] for item in block_url_result_data] block_url_result_item_1 = [item[1] for item in block_url_result_data] block_url_result_message = [item[2] for item in block_url_result_data] - block_url_parameter_url = [item[3] for item in block_url_result_data] + filtered_input_0_input_url_values = [item[0] for item in filtered_input_0_input_url] build_observable__observable_array = None @@ -99,7 +101,7 @@ def build_observable(action=None, success=None, container=None, results=None, ha ################################################################################ build_observable__observable_array = list() - for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, block_url_parameter_url): + for summary, status, message, url in zip(block_url_result_item_0, block_url_result_item_1, block_url_result_message, filtered_input_0_input_url_values): observable = { "type": "url", "value": url, @@ -136,7 +138,8 @@ def block_url_success_filter(action=None, success=None, container=None, results= conditions=[ ["block_url:action_result.status", "==", "success"] ], - name="block_url_success_filter:condition_1") + name="block_url_success_filter:condition_1", + delimiter=",") # call connected blocks if filtered artifacts or results if matched_artifacts_1 or matched_results_1: From 1e0ec0734598933893dc7070943e977ffd8cad56 Mon Sep 17 00:00:00 2001 From: P4T12ICK Date: Wed, 21 Jun 2023 16:22:42 +0200 Subject: [PATCH 10/10] Improvements --- playbooks/Zscaler_Outbound_Traffic_Filtering.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/Zscaler_Outbound_Traffic_Filtering.yml b/playbooks/Zscaler_Outbound_Traffic_Filtering.yml index d40a1a03a1..f99cf8c988 100644 --- a/playbooks/Zscaler_Outbound_Traffic_Filtering.yml +++ b/playbooks/Zscaler_Outbound_Traffic_Filtering.yml @@ -3,7 +3,7 @@ id: 3e0df448-0546-4b2b-9143-365161cf40f9 version: 1 date: '2023-03-31' author: Patrick Bareiss, Splunk -type: Investigation +type: Response description: Accepts a URL or list of URLs and block them in ZScaler. Generates a list of observables with the blocked URLs. playbook: ZScaler_Outbound_Traffic_Filtering how_to_implement: This input playbook requires the ZScaler connector to be configured. It is designed to work in conjunction with the Dynamic URL Outbound Traffic Filtering Analysis playbook or other playbooks in the same style.