From 5f5018533a6b2107710799d8a967cd58e2db9423 Mon Sep 17 00:00:00 2001 From: Ishaan Ahuja Date: Tue, 1 Oct 2024 23:24:40 +0530 Subject: [PATCH 1/3] CONN-3511 Sumo Logic Sample Data source doc --- cid-redirects.json | 1 + .../sumo-logic-sample-data-source.md | 91 ++++++++++++++++++ sidebars.ts | 1 + .../c2c/sumo-logic-sample-data/example.json | 14 +++ .../c2c/sumo-logic-sample-data/example.tf | 16 +++ .../img/send-data/sumo-logic-sample-data.png | Bin 0 -> 5730 bytes 6 files changed, 123 insertions(+) create mode 100644 docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md create mode 100644 static/files/c2c/sumo-logic-sample-data/example.json create mode 100644 static/files/c2c/sumo-logic-sample-data/example.tf create mode 100644 static/img/send-data/sumo-logic-sample-data.png diff --git a/cid-redirects.json b/cid-redirects.json index 0999f3473b..32c9260a87 100644 --- a/cid-redirects.json +++ b/cid-redirects.json @@ -1628,6 +1628,7 @@ "/cid/10163": "/docs/cse/administration", "/cid/10264": "/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/gmail-tracelogs-source", "/cid/12321": "/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/lastpass-source", + "/cid/10231": "/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source", "/cid/10164": "/docs/alerts/scheduled-searches/schedule-search", "/cid/10165": "/docs/integrations/cloud-security-monitoring-analytics", "/cid/10166": "/docs/cse/records-signals-entities-insights/configure-entity-lookup-table", diff --git a/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md b/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md new file mode 100644 index 0000000000..2265f51188 --- /dev/null +++ b/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md @@ -0,0 +1,91 @@ +--- +id: sumo-logic-sample-data-source +title: Sumo Logic Sample Data Source +sidebar_label: Sumo Logic Sample Data +keywords: + - sumo-logic-sample-data + - cloud-to-cloud +description: Learn how to collect audit reporting events from Sumo Logic Sample Data platform. +--- +import CodeBlock from '@theme/CodeBlock'; +import ExampleJSON from '/files/c2c/sumo-logic-sample-data/example.json'; +import MyComponentSource from '!!raw-loader!/files/c2c/sumo-logic-sample-data/example.json'; +import TerraformExample from '!!raw-loader!/files/c2c/sumo-logic-sample-data/example.tf'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + + + + + +

Beta

+ +thumbnail icon + +Sumo Logic Sample Data source is designed for ingesting logs and metrics into Sumo Logic for the OpenTelemetry demo application. The data source is engineered to provide a continuous stream of data that simulates a specific scenario, highlighting latency spikes across various services. + +## Data collected + +| Name | Description | +| :--- | :--- | +| Initial Data | The source ingests data from `6 hours in the past` and `6 hours into the future`. | +| Regular Ingestion | Every 6 hours, the source ingests an additional `6 hours of future-dated data` to ensure dashboards are always populated. | +| Latency Spike Simulation | The data demonstrate a scenario showcasing latency spikes, aiding in performance analysis and debugging. | + + +## Setup + +### Source configuration + +When you create a Sumo Logic Sample Data source, you add it to a Hosted Collector. Before creating the source, identify the Hosted Collector you want to use or create a new Hosted Collector. For instructions, see [Configure a Hosted Collector and Source](/docs/send-data/hosted-collectors/configure-hosted-collector). + +To configure the Sumo Logic Sample Data Source: +1. [**Classic UI**](/docs/get-started/sumo-logic-ui-classic). In the main Sumo Logic menu, select **Manage Data > Collection > Collection**.
[**New UI**](/docs/get-started/sumo-logic-ui). In the Sumo Logic top menu select **Configuration**, and then under **Data Collection** select **Collection**. You can also click the **Go To...** menu at the top of the screen and select **Collection**. +1. On the collectors page, click **Add Source** next to a Hosted Collector. +1. Search for and select **Sumo Logic Sample Data** icon. +1. Enter a **Name** to display for the source in the Sumo Logic web application. The description is optional. +1. (Optional) For **Source Category**, enter any string to tag the output collected from the source. Category metadata is stored in a searchable field called `_sourceCategory`. +1. (Optional) **Fields**. Click the **+Add Field** link to define the fields you want to associate. Each field needs a name (key) and value. + * ![green check circle.png](/img/reuse/green-check-circle.png) A green circle with a check mark is shown when the field exists in the Fields table schema. + * ![orange exclamation point.png](/img/reuse/orange-exclamation-point.png) An orange triangle with an exclamation point is shown when the field doesn't exist in the Fields table schema. In this case, an option to automatically add the nonexistent fields to the Fields table schema is provided. If a field is sent to Sumo Logic that does not exist in the Fields schema it is ignored, known as dropped. +1. In **CID (Account Number)**, enter your CID account number collected from the Sumo Logic Sample Data platfrorm. +1. In **API Secret**, enter your API Secret ID collected from the Sumo Logic Sample Data platfrorm. +1. **Data Type** You have the option to choose the type of ingestion. Default is `OTEL` for the OpenTelemetry demo application. +1. When you are finished configuring the source, click **Save**. + +## JSON schema + +Sources can be configured using UTF-8 encoded JSON files with the Collector Management API. See [Use JSON to Configure Sources](/docs/send-data/use-json-configure-sources) for details.  + +| Parameter | Type | Value | Required | Description | +|:--|:--|:--|:--|:--| +| schemaRef | JSON Object | `{"type":"DataGen"}` | Yes | Define the specific schema type. | +| sourceType | String | `"Universal"` | Yes | Type of source. | +| config | JSON Object | [Configuration object](#configuration-object) | Yes | Source type specific values. | + +### Configuration Object + +| Parameter | Type | Required | Default | Description | Example | +|:--|:--|:--|:--|:--|:--| +| name | String | Yes | `null` | Type a desired name of the source. The name must be unique per Collector. This value is assigned to the [metadata](/docs/search/get-started-with-search/search-basics/built-in-metadata) field `_source`. | `"mySource"` | +| description | String | No | `null` | Type a description of the source. | `"Testing source"` +| category | String | No | `null` | Type a category of the source. This value is assigned to the [metadata](/docs/search/get-started-with-search/search-basics/built-in-metadata) field `_sourceCategory`. See [best practices](/docs/send-data/best-practices) for details. | `"mySource/test"` +| fields | JSON Object | No | `null` | JSON map of key-value fields (metadata) to apply to the Collector or Source. Use the boolean field _siemForward to enable forwarding to SIEM.|`{"_siemForward": false, "fieldA": "valueA"}` | +| dataType | String | Yes | `OTEL` | Type of supported sample data. | | + +### JSON example + +{MyComponentSource} + +Download example + +### Terraform example + +{TerraformExample} + +Download example + +## FAQ + +:::info +Click [here](/docs/c2c/info) for more information about Cloud-to-Cloud sources. +::: diff --git a/sidebars.ts b/sidebars.ts index 75161984ba..38ab482247 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -318,6 +318,7 @@ module.exports = { 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/slack-source', 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/snowflake-sql-api-source', 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/sophos-central-source', + //'send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source', 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/symantec-endpoint-security-source', 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/symantec-web-security-service-source', 'send-data/hosted-collectors/cloud-to-cloud-integration-framework/tenable-source', diff --git a/static/files/c2c/sumo-logic-sample-data/example.json b/static/files/c2c/sumo-logic-sample-data/example.json new file mode 100644 index 0000000000..b9037a9ee7 --- /dev/null +++ b/static/files/c2c/sumo-logic-sample-data/example.json @@ -0,0 +1,14 @@ +{ + "api.version": "v1", + "source": { + "schemaRef": { + "type": "DataGen" + }, + "config": { + "name": "datagen_source", + "category": "datagen_category", + "dataType":"OTEL" + }, + "sourceType": "Universal" + } +} \ No newline at end of file diff --git a/static/files/c2c/sumo-logic-sample-data/example.tf b/static/files/c2c/sumo-logic-sample-data/example.tf new file mode 100644 index 0000000000..fcccb57f64 --- /dev/null +++ b/static/files/c2c/sumo-logic-sample-data/example.tf @@ -0,0 +1,16 @@ +resource "sumologic_cloud_to_cloud_source" "sumo-logic-sample-data-source" { + collector_id = sumologic_collector.collector.id + schema_ref = { + type = "DataGen" + } + config = jsonencode({ + "name": "datagen_source", + "category": "datagen_category", + "dataType": "OTEL" + }) +} + +resource "sumologic_collector" "collector" { + name = "my-collector" + description = "Just testing this" +} \ No newline at end of file diff --git a/static/img/send-data/sumo-logic-sample-data.png b/static/img/send-data/sumo-logic-sample-data.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a3d55d16c508a426409da166427115021244e GIT binary patch literal 5730 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 literal 0 HcmV?d00001 From 96836ec0c99df014e055651f068f27b3b41ca465 Mon Sep 17 00:00:00 2001 From: Ishaan Ahuja Date: Wed, 2 Oct 2024 22:02:41 +0530 Subject: [PATCH 2/3] CONN-3511 removed single backticks --- .../sumo-logic-sample-data-source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md b/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md index 2265f51188..12d4dea0c0 100644 --- a/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md +++ b/docs/send-data/hosted-collectors/cloud-to-cloud-integration-framework/sumo-logic-sample-data-source.md @@ -27,8 +27,8 @@ Sumo Logic Sample Data source is designed for ingesting logs and metrics into Su | Name | Description | | :--- | :--- | -| Initial Data | The source ingests data from `6 hours in the past` and `6 hours into the future`. | -| Regular Ingestion | Every 6 hours, the source ingests an additional `6 hours of future-dated data` to ensure dashboards are always populated. | +| Initial Data | The source ingests data from 6 hours in the past and 6 hours into the future. | +| Regular Ingestion | Every 6 hours, the source ingests an additional 6 hours of future-dated data to ensure dashboards are always populated. | | Latency Spike Simulation | The data demonstrate a scenario showcasing latency spikes, aiding in performance analysis and debugging. | From b6940045e5768ee6741793b87dcdb5a0c6946d0c Mon Sep 17 00:00:00 2001 From: Kim Pohas Date: Wed, 2 Oct 2024 11:03:35 -0700 Subject: [PATCH 3/3] crop logo --- .../img/send-data/sumo-logic-sample-data.png | Bin 5730 -> 7490 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/img/send-data/sumo-logic-sample-data.png b/static/img/send-data/sumo-logic-sample-data.png index bb8a3d55d16c508a426409da166427115021244e..dd8aba2908a05b6228c03e890a659b1065acc3d2 100644 GIT binary patch literal 7490 zcmc(EXIN7~w{-|D^Z*J7hzV6`K~RL4KtQTAMWlD6LujFdE?ugK2q;xVR3!A!d+#7B zy+x{Yklw!dw)@@R?~glq&Y3m)?6vmUlbo_AFCJ+s(^0ci0{{RzRTTwo0DuHS#0ek@ z;@+@pg2MoS6QU`21px3A0|0)T0|4+; z0D#psz2-53cp%JLU)4rK10YDmAOJZD6M&S6NQfT*2|M7g8W8~=l5qS7Ym?mkmk$sC zh_nZg{maLY*#B)WiQ8Y!KYP+_lK)Z62L9Wd1d>hqZwyHIOUr$SY$A44t||r|000Z$ z-;G37n|GV2W?-+QkI~mqhg-Qgi&{K$v9uQTad!R70w8?gMCfddv4HqEJE1+`K1l9= zc)*GHuNlS-`G*U}5y`Eu@d)z3#oZbrDJmu^#w|k)fj|)M&urk@3QGT?6GupHI}FAZ z4ug4ndy9HYh`PAj!fs1TOT)y(VdCNc6RC*5R=AeCy)`lN zUwxU|h<|wgFWbN3AYgxk|9>a*&rJVeC8jDvjez}U+GMD&na)!J0PL-*3UWF=BpW73 z56*7vCb>_QQ1Y{oS3os-DfNLDIFP>P*RbBUL=&0?xHp0eC}O&Zb&Xo3OQs_cTl zw1{i-6M8hADE0Xp+G-{Xo)FZe)HgZP3+v%2Yi$W8NG%46`}Zf2_shmI&V6UTG!I}J zr_T>YMi@@~ViQ3mPzYIAFc=J!M}hw9!Gc1zW#40geBAes?9U&zrutRpPbgdyAkzj3 z=Vk8S{2S;d9SP$j`$s}hV%%?_sNio=D+VCY^KW14Txuu2qvR>fFFqJ#H=|bd z{VdUc=4awFIl`(0(`8zUX>gR+iT{F_9&t*SzDNnAUBl}OAIE+JVR{whbIC9hgl}v^ z<;h)r6J@cuCjz}Ex_4Iknr(#&maR|*7ATsg zbU1oZQKV0(<7+i~!V%p9HK8GozL4~@J}4@!=*i2@ zYyLx)6X*|jrv^FwYD&plzF17$IDB0>JlH;)%OWU4z#;DPI|lS73910y@)ku}hBG_w z3d4MYF+Y9pn$9Pxfo5hl_*e=Oj!d7{o?M@DU)isEA={Pj(%phKe@(cD~mjpTNQZky6o{@ zBpY&+`B^vU8G7a{$H2s-TI^u4*G0Wx-*3e3tkPbxvBq_@znr@Xt=!#BAmWjn__GGTS1pcVveg^>P+Q@zuAn4k723`p{tK-~6MlAN{u=^R zzyEYye>td>5OZm9)s(X7^2@u0Gm>)|EiayT=j`YkOM6sxzTIBjWI6@)E_nP5zq)5XxfvkJu#^G+I7f%_1Eej@r2C4CU@#USBVwNz|Iyt*_5|%L=<- zA={ZQPstRBN1dYOm>;depN2Klj31MQ{Q-{B3tGOsKKM@KDDoW6N&2fC*(tjDAab%J z;pDn?#jK$1^OWa;EV*r^c$?36o7a^%FHGmz$@b@|7ZqyI?23vTW1>3gcDt3sM=c2d zqZ>9Jd$WBTlb4o3$LiiG#WYKM9;>~D>SUJgb3uVFioI4~K~c)0fI{f0d#LMrkeQCd ztni?sc7IIm%)1{m%3I8W<&HIHNVB@As3(W^P*ojv`%%K+8`=lnQkJc&0V&1zfAe^y zT!b6#6Ns~hEm_^K^17k&5*MU`Uv&KO@ER#$EJ{s5%|?6*sZU|2T@cy z<#}r=tc_l@pv@FUrVKTeo64dLRrRbjNVr+;v_~zs2J1Ec)*{Z3ChsKC<->wud5saw zk+sy*pJ$oMeu1(@T42WcY29073lgDaMg}d{#PG4i>#exVCe$XUl<>-I9HbxeiRY;? zp6?0ytvP}(JM&x*PxIWkAkO->-M7kn*)-?+6FdFs=OSWOMxmvU!FQ~$o_TeG$n<& z+lzuzmaO{=Cq?VgR?uk_iYKWgk(g84(|(zG%Qhc5?)|s@m$wJAf~e#Pi(F9$?RzJLNP*DnmBteb1(#OgKs7TVx8_(6ly%B(e9)Z$f|EhHh-W54Eeb^0&{FIiE_; zj6l}-rb?2H@%`ph>c6<)I}9zfPJt$15F&h`+lYfuD@}ZOa@4vV&yLuyN?sOv{H$VN zfIDplJ;t~+opB&ftCBuyiqGW+a4n)&pvdUf$o8Fx&~8PeJG{ID!AQS@6fY721laq| zel?DrBz|@5YR@v`B;O(IY-DBNPh~m|IZ~zGd7OnLJN}w0zP_KtVCCugYegmrXjw9; zQW|?$!7C?o_||{~8JH>7(Eb9aKL+1413qFWsW2>BhiBD#bBvAb$Mv?T-xEb4?w<;k z)t-*1Be8Gdg0DZ4dGJL}&>G?K80sDVq*K8ERzha;Jy%B^c9TP)Yw%TFEzW3rZ`Ou( zoWw;;PoHkQ+Pdcc+g?hAv#AZ4F3-HppO6xdApJLEyGYbTq&~3e@PqQh)eycXUq@x{ z)s4NiSX=s8DBFSh!;mDHb~qK!7{_Suf0OysH$;jYmzTq661U!v=se;0UIzGK79m8~ zq+LSrvA03sLgvMq;ZVv?3&pvZ%*{8hb)V>fe-e%0nQ2%h)9Qf5ZfIbZrDU;Z;M_P% zrsIXNaK_1bseja(8>yS#X@!%cH|gRrxNy#sCI@1jU4q!wb6Y_qp;D4|hw|&>Id#6LrW6@0UErMZ3?0IqQON3$b(II|fCh zD`T^bu{iLC6g;8LmYHf-l}$@WN^K7j@h$Lu^Ac=b&=%cU<+bs714lRVRH)xhS-x8$ zj&sK2_Z62$vH2*8s3V{EX4+%@yP|D01DB^;@5QsVYc7lgei@eg)dp=crQuDcbg;A> zCWk7C+Egpep;_jBiVYd-PV-Lai_>ChPHdIqs4hhZc5jJ+;&)#@&`fhv-X&p$oG-1U zrK-ad-umJB(UOv3yGM&gj;L@ikzwsqu=jC9uH>Z6dNuctzN=OdQM!6F}f zFAfLo18zCs$*W#`XyNRZ>twY ztDXfuV%KbqzL9q0AYaK6a%#iOHc36&`^P0Zuv_4Zmpou2!-+W46fb5s_#bhhTD7cU zZZl2kaL2K&Bz&G(?wUMPAgxh~_gn-ktp3h(Y|!b{`K=FVVK!cRk@qu-Gdc=ie{&DC{sbA-ssR>;Xn#EzkGY?idHr?Y>;IY6#i_+024bU!z zMX{r-?lB|OkKb9@KlX6@Jg|0Rp-a}9)vXcB z+N^WXi1x8WL<-H8B#^kV-nYdo-Ob(Ko>%6H5sDB!uWh_^o47T)_h~m(==LqD=h7(i zbuxw6v3_nUH?7g)792x&eyo+Woy&0Rmi>*&cPhl{uPXsXyr+7M!9V?AU+Rc6GvMCs zm(0`1pUG8jyt}s6C>rih_=DB9nsMgg6`ttSsAM9RiMu>v2XZUIPoxf7OD z4Dz{AR%JSN;;2PlH)XmhAeA8ZSi@9{A6WgkC(EX@eaRSI?tATaYNUqAfQ zrZ>Sh^yitu8)9WFCPFN&KIZX0iv;VV$P`dC`YS!9;8YeO9MNVfeE<@M0J*ctg)!C! zAaxodw7*3)4kcp&KmYtTVi~u)u<0&}S`a;!a}4+Sh$+wB@xz1mB7_WQ5U)aGn5vCr zXUsYBe>eq(lP7KFBBDR?1VD>#f?ms`5L;=sfV^#TA|EIsZS|0S?v!7 zjy#{vy0JC5+TW)@jyh~jdVHeXm=Ji}fn~pvfA+V4o<~4J`l5Taet!rL+pV2FzaSKs zmIs}rT}8}nW8Jm;1B59mA5Jx#4~84vEPqECcMKABHak-%So!YYUyTLSHBLm|Hub-H zDg{nmVFPO^#%ew6OOj>+Hqz*Z`Lh)jk-tgiAA#Dl@ZIR>7K53dWjNop&V$NAi&sGE zuY)N(?Ty1*MMuRbLw+~}{oWwtjX;mLPpwjted`68YJ{VxWk*4;#VKA>%F!>CuC+Wj z#zS`Ti0H7%u__r?)VmK-QT|eMea&w44?R%uwbp2-d1TOqV)t|jA}YZ!QaR+L!T4?R z&t$N&H{q2qH}HuZ3h@i;vh^#|>YfTPRHk*Ex|8LVW7E6vUXPEI8GIR@RcEXAb_|L< zkNLx&b-UtNuB%3yC~TjtD5b7f&M`MKbcs3wJ4 zbF#29BVKa+vsW#o&HD2J^0InTnW-!Hv2KqFqRUKVuG6P_01z574(u;)4#XBi& z3)}+vyOwaA(ha8dbOkf1>woHZ#O2^Jt*m<2S!I#J)xtn#0Z69T3iFM`N3ueks?KaX ziDXm}VNxo_VQi7}C;Y0SWWe$d2ai^FuFV~(F;ut2slG7N_cXD3h;DwLag)TYF7nqc znQpkfn4{bKf@FdkPlBKCc_NHy)lCyZ5j(4F{3!RHHZz20Wxxua& z!PfbS>Qk3*=Hq;%pt{YSOu&sF(tih|^|EpiH+EdMQP}8+J^| z*7^LdtuA&Z#giv`3*=m#>~Q(q*z6vr8nk-HVuH;@5oJZD_n1{K`0A$J4JbV#XNY>2 z5ls0dMGJ*^sx=lSQH!CdQG<4YR;LRD5N@?~SNnbUYYt>R?XR(imT=+zNpXl5{d@=Y{jZRCH}(Aye5EIw zC)H#XSC3*%tBvPL3z7Dks?v2Kxv=nX@5{r%IMm37`e;u-ZgyCy+`MFsP({P|k)rn(i=V&8mbQ>wL(Lgl zv!SG9NI$vRs_SCfT0AF#2Zx(dqFmeo#pA3;1m3A8v)_)JF zPPPoXv|2{{#&5W$AYVk(Zhuy*4n)E`Cn^(S;n+&|M|!(lf(~KMGQ#@93E&Pyl;BbJ zs-y1iKm-q32O}UYt+NLo#&<#~-Veud-=;4u-1~N2VpO6(KPp&zu}60(G(o!&cF`IG*1QNv4H{7xnQ%IJf!>l6uA`*F)sAyOGW2<1$ZKLbrPYh4feCo-oh z8xMTa@7J=N4i_X{|9ZtN%ekTMjpg??W=0a}=-}ys{e3el^+*#O11EcE2A9kkXkM1% z>&>_;K&O(UHZH@Z?bu59a?;4BPWR~}4wXmEvO zfU88Dfu}V>EnkttCta{J(B~6dt@S;Zz}ZYn4HNtuA7jeF02yS!YKEd(XMrs%&={Or z@gAEu%+aH}ZCGS9`vk#p%sKcepKpph zs&BA(&Af+xxi!=4`x=7g#3L(u3KkBav@y%6m`fUntbek`TX2wRG&z8g3(A|}h?wYv zWV@-oapsjnM|h5Rv?s^#L6%o^F=(%K(p`TOU9 zWZsn0h5mjUXmZnbtYf?;USP!^9uvG&W^Bu=*Xg+8W!~4xC53-$aYt~|i)S&RSkyk( zbDo)A*ETU7mfm|l3Bcv_QexR#B=La{p~{ur%4<(!AHM@#m4I;| zOb|348snjvh-J1s%eP6&j6>;H7C3EkuU7cuwWhIaP4&A?zx2ZI!@8_lPuw;bjif@` zaCjL#LWJQgHS7Iey|^nd$4SV$kF&Fp-~Jeh(k!!)3|P7y)=YQIbuUX|KI!SVSVCuH zdOkN!{K$1?EzH5~&DFXV_xRfrSCtD8wupOge9+3BwpBGItLyb;R7~=YJVo27^s^)Ql&rC8aN}Z{oIJPVkBba{`un4qd8C$4U8mKU?O=>)=uZdv zGEdErEcQL;mhlM+@d~^JqN}n=Ji)nF#Y!fRkd>1&xL{~z8k8nIG%-jwlu)E2MMX+zB8Dct35c{nC<4+; zs0k2?^xh#6Lg4z(+{Zij<-XjVIkU58c6Rn*cW39s8X4%&({j=R004TBuI6(9fQHt6uobJ+r z3IJdsfHc)j-;nLix5K!$LVJ&HeAQfh<8%8Js!uV-e7NW+q0|OZczd!?PkZ$lqVTR_ zs%{BLeOrq0oGnRQhW0)>seI0=1%wccDHVn;GkNX`L!nc1MP43r(<_Qk@BQ95*^LCe z-LTqS#zy`o%2UMJh(`#;l9mJ8&?g~S_P-7Nf3gVgQubP`Tn5=E2xNaz{wLLQd4SO! za>j^p#t1;#I{@WZIZA#&(Om$UC_NdCnk$VOKu-feZp8V&r@*=a5ZLz@Lz!lf2aWNr znB8|Vr^0?Hl?L42aEn~Ax8qRP^oz(-LSW-&`$2BvFePJzG_~P9$T~0Xcdet%&m-3P zN&nV!zgnVMW5Nuu!5%2PewEijDf&mw?#=#(y}jZufaVwMHGEamjZ!jOU3Z$s*&&Zm$1q7CT$P};p5i57j$6z#;N$RFP~ zr_PU^ND5M(;fl<2g=Bf-XQ0wK49*j0~pzsbW>ARI=L|d=qAp_pi1lFDZn+Fe~R4h-@A(C zD2wXzS75_cd#@ELApH-nM-~vq33vPayx|m@0c$ZHIXMn=bm=Msa0c%$H%k&cY;Nx$n zP+({}H#*e}H)YdUJ#lu@_OPEha-#l3BpbJ=x|j(L&TKBzYu(=={NT#*86{ZWBf_dn zfP~I-$V^-+ommbvp_*!IopA>1DOn%Rm)%Zqt6KRzP%2w6Bv!D`GaIff64z{eqEKsn zWB#;fq_#bCwUpJQL(p$+G@}B3S)CVQta7N_L(K{k$p(-1X3cN#y-u12_BDq4O;C4B zm~2{>sCe8DW>zOQjl$x}VWvJm@NWebpqf z%Ao2znKH-`fe4H;yperrXt#cVd3TF5LHki{Gxm^-!+w z3jylxu#=KUjHJoyLUHjnRH2>sfouyjy z@tot0-06k!jdD$njxOqXT{Sg8bm}Z4*}X@h)=}FdJafF48)hT-*+a&;txrx) zgGnP6V5@9t0440*bgm1ZzrI*xcAfdPbz+f{*@oxQDJj;M zLE9S=EDY8}TRiLgYJ9oj!B?66*ZZD~H}G%|EGz|#fJ59ZfuPV-jM*+!BsFRqsyE>JgH zdp>e}P-SkJADCV*AfFJblQ<=o&AErlCj;t`e{8Wa$A9N=Tsi1;(JAm8I6RNK-oL^U zX7>vuEjLxuDp|Ns`#s-n&3Xv-?-;rFwKg3T=eD^k-a+Q=+b*QG?ej^7OBLWsmyV&d zcihV8D^eb|>^IyXuWBy1p+#={bhzCL_!J}EPB)!H#GUjAr%*hH{?h5t4CKkp&dx<) zM(}uhL{U-SYur4^$}9XC9pRm+g`Rp|`cPCqqLiIk2p0JykdC0#i1u`!YIL2pKGXK; zY~mi}7qNY>*P}Vm`V+DcN5W;=XD&?=KZ|`?1eJ*TJ{7rzU^3AaDkwrWx_*oUPe|zT zyu)sqvnE88Y1P#nC3DGV?j;vmt&sn6@PSEuLD19Ui_hhn-lGey3d|6L`FUGC&x7yf z%ME#yuhQ^JO84{-gE1bv`DCR*gY6^Lhc5Oap`vMA5&QF~FQa{o_1; zj5##4lQr9~Lh!g6s~}%o~M{K4Yv2 zkDlXD5TLWggd{Vtaa)hV$dod`Gx;iNmI`u1J zmjIrL1EzL7=ah5n>mdrwW@+zM?OXnE;bbnRUm%dt zKQK;OwgH;`g-KgllGL1jB}YAUf9{+q^TUfBiK|%0yInH-6U?g(^x7a>K*&E}-vax_vK+}}&x1UV2;pq>i8k>z zix-@^EXrK_2Aw_ILC;-B`A!W?T1{*oA65->#{64Why~4m`>oj`N;(bC%F2-aMBsSa zlhnO!!`Arw=M!C2VV@?&=*0ztPqm|k8rbeiN>-xE{(#R0I)72sly$m3`Ej@B!@^hR zIEj@76e6lc+rz0BP+*x*KbGb+4Pzj7eFaDD&4W74K6)erVb-e}Dx1p0ZN-5OI zqCVD;m2nPVnPz4Z={@dmy4@1H8sY2n;LitxmlD!uRXP<5wdLGyWj%$ibt5{xl|kBr zgV$rQAzI}dHv(?`qDnM-d{O5*8)sb08jZol^vlhrl)Okch!lAb%66!vI8kZT?m5jO z1f(1gl+`P|=gwMH63eBK-NNF`w={sg$=B!2aG|)!L#E(wFr_aCrw007F~99Eq+%xf z*Cs=H7dJeAU-c+VoSRt2s;$-i5-< zcM7&Rkq%d-q?X0RlEU#N#z?I#I4OJsWBUF_Re}Hh0T=GK1^PsRJ(#Z4oH#LbyKGs#C|Sa?wAn)7#LX zDjS7#DezaD5l)FVk9(r7>)uRVR0WSj3l8{fzKLUP#~!&h-Hf;teneZ0>Db<`X$m~i zkz`!sSsD*Rp@0gFp4V^k<=@JQ+&}nnn@XG~mvx@J&vO^FDLzmu3aY$!f~^`xt-{=+ zw@%RETX!au$_CjJ2|Ug_k^G`Zf(&hPvk^vKh#PcWi#m)vTAQ(eEL9g!24yo zOZ2GqC@B)YpKaj=AZJ{b6p{PAJQfFefQckSX8q4^zlr>G)gO2aSzprgb_>$#s0 z{i@N=lVw>H=stDPs8p3sO)=Q=Y=>3gSq{NKrid%yAIuseRgz^B`fr!8?N=nLnjc{) zGL`+2=%^_0{ttHW18>59I}0?gjyB<}g77!Zu==x^$Lmwek8k5jCb^T!@2%6TrqrdW zN-~ECPLdDiV~t0}IYR{RyWttCrYQNpO#0kLZQQxO&Xufc6vN!C|!SZoomK+lJ zDIGHqf^{iP+s&n!g{+zj={m{15)$*9nHlCu+iW3eUgpbIAXlNnTFGyvtP6vm?G2ER z&8Y(d*ZY|Lg&sLcJVK@w-vgBOoUE@qZwx?1X--kMY7e~K?#47*m&?vqr~8_FpBEHN zTPGW<8^TZOzcUw3zA{yBm?1)8G=lnT#57!rzaf`M5oMFV8ni;Jp0x-P zO{I&^;nL2V1QfO;9N)id^@+OHN3lTipWFc60J^FV(1i)E5mv zCvr;T^O`)Ue{8r8fVzV=e$jrm`g}-BvaLk$$eL^Qf$I*aKCQZE;$deo>pady3I6&A zjamjd1H-mS3P<_Q)F=p}I;FJir}s~(p0UPY`& zIyhbgp^~5R{R?Ri`wqF_!=`WsXQI z&8gM+lYrQIYO4exRQBMb8><7Z4=+hDv2*Pv#Evc3%U~SG)wIoVsKB|cBURmunhO83 z+X0<1&37BLP6{!oz;G2;MHXI8cuJs7Fqe}@7*ghUP1#w4itR~WPZS_6%1IUuv46Ao z?x0*U=h{xh#YEjb!}v$<3dc6KCYu+Lm#BY|7or~E&luq|dMB~PGDN8^_0aZ{^6{mN_F?sfNox@N}0|tGCtUu6Z$KLkt5I$+sgo zu{isk&d>yj>o9%XM?@o075QaScf8X3G2}W?-eZ=aUKC3Ar9ChV*lHf9P5Q`dlJw^Ij$Q znyv3b4pN^9+xv@mwB2ZaMH@r3Mjincn;88hLwSV>^$x zR~9ejS4lUjc~pP^yHOoDEckIaiw+eZ7^oFeYt-VfuZ?bg_iZXa&>1C_&@C5Gcz3^V zK{!OlJuy{Lt^-oB;KI=U{tl*u^6Q}HD+SX;`HE3X-UsMpXBHKuvQjGnFZ&hu)P98- z!yY@l^83*m`Jq?ZfMX-VHhzx}he>L-;iEt0eqd9KVgBgmC}=D8meSAtzK(#5iO$=S zrfd?-)=n@_wzLgBoC$p38~SjsqL(p*+N|lbcZmpK&)vMX^_7H+MBF;Lyxq`+E=F2- zoZKxtP0RJvC8@XnEBu5fs+^}m5>X1BskB~H%=9Y7qzw3#?w^c}?bLi?Z{n7_EA5Us zygWKTn7`TP_M=<)rj1l;wV2pj!P5^-5ZrF9iN{=xna6QcpmGx=lb2~Hl3t0yX&gQn z)Yhe;B64%>$mk`0IPQ=%Y=~yC7qg5p@KP9mMaTv2@*FSleTDiNTlKC-j#OPw<0Z`w zZ~OdRyej3GNJHj@k{S5{Gy3drIz4mtkCryRXaOD2Cbx_Vb>!})mC$V_8 z)GWBzzv=RmA**HgnP~(Q;_Dst%;66#PW2sAF!4ICA|NI^8^>!OY1G&oMMKUHiu;dZ z`EX2x{YKelz|k$`N;)b^Hl)4A4}W8eo<){i`y+5?<7*6-W{ILxXXqxms6 z4{Xcplk2`Aq*6WWL%MAHUyfq5JX$J+6#~BtI2UE5f+&)n234;rH*|;8M>;W)(M*)* z)P?Z!o*zJG_dcEd43&qazvuAJ&t2y&iNr4+GLN(5!m$BJ#fgD#z&&