From 5f7210fbab52ebccabc1da9fee47de14c9585df4 Mon Sep 17 00:00:00 2001 From: Lance Date: Wed, 29 Apr 2026 22:09:36 -0700 Subject: [PATCH 1/6] docs(editor): move inputs, runtime events to legacy features --- docs.json | 10 ++++-- editor/events/events-at-runtime.mdx | 38 ++++++++++++++++++++++ editor/events/overview.mdx | 50 +++++++++-------------------- editor/state-machine/inputs.mdx | 1 + 4 files changed, 63 insertions(+), 36 deletions(-) create mode 100644 editor/events/events-at-runtime.mdx diff --git a/docs.json b/docs.json index ed6aa82f..7bd3d9e6 100644 --- a/docs.json +++ b/docs.json @@ -165,7 +165,6 @@ "pages": [ "editor/state-machine/state-machine", "editor/state-machine/states", - "editor/state-machine/inputs", "editor/state-machine/transitions", "editor/state-machine/listeners", "editor/state-machine/layers" @@ -224,7 +223,14 @@ ] }, "editor/ai-agent/ai-agent", - "editor/tagging" + "editor/tagging", + { + "group": "Legacy Features", + "pages": [ + "editor/state-machine/inputs", + "editor/events/events-at-runtime" + ] + } ] } ] diff --git a/editor/events/events-at-runtime.mdx b/editor/events/events-at-runtime.mdx new file mode 100644 index 00000000..251e7496 --- /dev/null +++ b/editor/events/events-at-runtime.mdx @@ -0,0 +1,38 @@ +--- +title: 'Events at Runtime' +description: "⚠️ DEPRECATED: Using events to communicate with runtime code" +noindex: true; +--- +import { YouTube } from "/snippets/youtube.mdx"; + + + **DEPRECATION NOTICE:** + + [Rive Events](/editor/events/overview) are still fully supported within a Rive file. However, using events to communicate with runtime code is deprecated. + + **For new projects:** Use [Data Binding](/runtimes/data-binding) instead. + + **This content is provided for legacy support only.** + + +For general information about adding, creating, and signaling events, see [Rive Events](/editor/events/overview). + + + +Events are a (deprecated) way to send signals to your runtime code to execute a block of code at the right moment. They enhance the communication between designers and developers by passing along useful information. With them, we can do things like go to a URL, play a sound, have some HTML appear, or do anything else we may want to accomplish via code. + +Coordinating Rive events at design time and runtime will be important to ensure a successful integration in apps, games, and more. + +### Properties (Deprecated) + +Properties allow us to define extra information being passed to the Runtimes. For example, you may want to pass in the name of an audio file to play when the event is reported at runtime, or perhaps some other metadata for data analytics purposes. + +To add a new property, hit the plus button next to the Properties. + +![Add New Property](https://ucarecdn.com/d4cd3b8f-3765-4c28-9204-e5daf7fff0d8/) + +First, we want to change the name of our property to something identifiable. Next, we need to select what type of value our property will track such as a Number, Boolean, or String. + +![Rename and select input](https://ucarecdn.com/73d05fb1-7c9c-4c9c-a17c-51781ef30d0e/) + +You can key a property to let the runtimes know that a particular boolean, number, or string property has a new value. \ No newline at end of file diff --git a/editor/events/overview.mdx b/editor/events/overview.mdx index 04364676..33a60c0d 100644 --- a/editor/events/overview.mdx +++ b/editor/events/overview.mdx @@ -1,23 +1,10 @@ --- title: 'Events Overview' sidebarTitle: 'Overview' -description: "⚠️ DEPRECATED: Use Data Binding instead of Events" +description: "Creating Rive Events" --- import { YouTube } from "/snippets/youtube.mdx"; - - **DEPRECATION NOTICE:** This entire page documents the legacy Events system. - **For new projects:** Use [Data Binding](/runtimes/data-binding) instead. - **For existing projects:** Plan to migrate from Events to Data Binding as soon - as possible. **This content is provided for legacy support only.** - - - - - -Events are a way to send signals to your runtime code to execute a block of code at the right moment. They enhance the communication between designers and developers by passing along useful information. With them, we can do things like go to a URL, play a sound, have some HTML appear, or do anything else we may want to accomplish via code. - -Coordinating Rive events at design time and runtime will be important to ensure a successful integration in apps, games, and more. ## Creating an Event @@ -35,7 +22,7 @@ Once we've added an event, we need to configure the Event using the Inspector. ### Name -The Name field is where we can give our Event a specific name. It's important to do this so that at runtime, we can hook up the correct bits of code to their corresponding events. +The Name field is where we can give our Event a specific name. ![Renaming an Event](https://ucarecdn.com/4558fb61-4649-4210-9ec6-c828c48ab2b2/) @@ -47,19 +34,8 @@ The Type dropdown allows you to change the Event type between General and URL. ![Image](https://ucarecdn.com/9621c007-de2e-428c-95d7-837615a37caa/) -### Properties - -Properties allow us to define extra information being passed to the Runtimes. For example, you may want to pass in the name of an audio file to play when the event is reported at runtime, or perhaps some other metadata for data analytics purposes. -To add a new property, hit the plus button next to the Properties. - -![Add New Property](https://ucarecdn.com/d4cd3b8f-3765-4c28-9204-e5daf7fff0d8/) - -First, we want to change the name of our property to something identifiable. Next, we need to select what type of value our property will track such as a Number, Boolean, or String. - -![Rename and select input](https://ucarecdn.com/73d05fb1-7c9c-4c9c-a17c-51781ef30d0e/) - -### URL +### URL Properties When an `Open URL` Event is selected, we have additional configuration options. @@ -80,6 +56,18 @@ The Target tells the user's browser where this URL should open. We have a few op At this time, by default, Rive will not open URLs when this type of event is reported in embed URLs or Marketplace posts due to security considerations. However, this may change in the future +### Audio Properties + +See [Audio Events](/editor/events/audio-events). + +### Properties (Deprecated) + +Using events to communicate with runtime code is deprecated. When this was still valid, properties were a way to add values to Events. + +To communicate with runtime code, [Data Binding](/editor/data-binding) instead. + +--- + ## Signaling an Event We can signal an event in three ways: via the timeline, on a state, or on a transition. @@ -92,18 +80,12 @@ First, select the timeline you want to add the event to. Next, use the Report Ev ![Keying an Event on the timeline](https://ucarecdn.com/bd8d36f9-9cd1-4eec-9c37-85d4a0a19643/) -Additionally, you can key a property to let the runtimes know that a particular boolean, number, or string property has a new value. - ### Transition & State -You can report an event on a Transition or a State. We typically do this to signal at runtime contextual information about what is happening in the State Machine. For example, if we want to have some element appear at the end of our Transition, we would want to use an event tied to a Transition to signal this. +You can report an event on a Transition or a State. To report an event, select either the desired State or Transition and use the plus button next to the Events section in the Inspector. ![Signaling an Event via State or Transition](https://ucarecdn.com/d1a63666-0cce-408f-9364-826eed66b241/) The dropdown allows us to select any Event we've defined. Now that we've selected the Event, we can decide whether it is signaled at the start or end of the Transition or State. - -## Events at Runtime - -Listening for events at runtime is deprecated. Use [Data Binding](/editor/data-binding) instead. \ No newline at end of file diff --git a/editor/state-machine/inputs.mdx b/editor/state-machine/inputs.mdx index b64a0e28..3e73eec9 100644 --- a/editor/state-machine/inputs.mdx +++ b/editor/state-machine/inputs.mdx @@ -1,6 +1,7 @@ --- title: "Inputs" description: "⚠️ DEPRECATED: Use Data Binding instead of Inputs for controlling Rive graphics" +noindex: true --- import { YouTube } from "/snippets/youtube.mdx"; From a2db256ed2a9d6d17b4b034a576f450f3b6860f1 Mon Sep 17 00:00:00 2001 From: Lance Date: Thu, 30 Apr 2026 13:16:07 -0700 Subject: [PATCH 2/6] rewrite overview --- docs.json | 3 +- editor/events/events-at-runtime.mdx | 38 ------- editor/events/general-events.mdx | 38 +++++++ editor/events/open-url-events.mdx | 37 +++++++ editor/events/overview.mdx | 96 +++++++----------- .../events/trigger-events-with-listeners.gif | Bin 0 -> 78417 bytes 6 files changed, 116 insertions(+), 96 deletions(-) delete mode 100644 editor/events/events-at-runtime.mdx create mode 100644 editor/events/general-events.mdx create mode 100644 editor/events/open-url-events.mdx create mode 100644 images/editor/events/trigger-events-with-listeners.gif diff --git a/docs.json b/docs.json index 7bd3d9e6..1c51ea97 100644 --- a/docs.json +++ b/docs.json @@ -174,6 +174,7 @@ "group": "Events", "pages": [ "editor/events/overview", + "editor/events/open-url-events", "editor/events/audio-events" ] }, @@ -228,7 +229,7 @@ "group": "Legacy Features", "pages": [ "editor/state-machine/inputs", - "editor/events/events-at-runtime" + "editor/events/general-events" ] } ] diff --git a/editor/events/events-at-runtime.mdx b/editor/events/events-at-runtime.mdx deleted file mode 100644 index 251e7496..00000000 --- a/editor/events/events-at-runtime.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 'Events at Runtime' -description: "⚠️ DEPRECATED: Using events to communicate with runtime code" -noindex: true; ---- -import { YouTube } from "/snippets/youtube.mdx"; - - - **DEPRECATION NOTICE:** - - [Rive Events](/editor/events/overview) are still fully supported within a Rive file. However, using events to communicate with runtime code is deprecated. - - **For new projects:** Use [Data Binding](/runtimes/data-binding) instead. - - **This content is provided for legacy support only.** - - -For general information about adding, creating, and signaling events, see [Rive Events](/editor/events/overview). - - - -Events are a (deprecated) way to send signals to your runtime code to execute a block of code at the right moment. They enhance the communication between designers and developers by passing along useful information. With them, we can do things like go to a URL, play a sound, have some HTML appear, or do anything else we may want to accomplish via code. - -Coordinating Rive events at design time and runtime will be important to ensure a successful integration in apps, games, and more. - -### Properties (Deprecated) - -Properties allow us to define extra information being passed to the Runtimes. For example, you may want to pass in the name of an audio file to play when the event is reported at runtime, or perhaps some other metadata for data analytics purposes. - -To add a new property, hit the plus button next to the Properties. - -![Add New Property](https://ucarecdn.com/d4cd3b8f-3765-4c28-9204-e5daf7fff0d8/) - -First, we want to change the name of our property to something identifiable. Next, we need to select what type of value our property will track such as a Number, Boolean, or String. - -![Rename and select input](https://ucarecdn.com/73d05fb1-7c9c-4c9c-a17c-51781ef30d0e/) - -You can key a property to let the runtimes know that a particular boolean, number, or string property has a new value. \ No newline at end of file diff --git a/editor/events/general-events.mdx b/editor/events/general-events.mdx new file mode 100644 index 00000000..9092c353 --- /dev/null +++ b/editor/events/general-events.mdx @@ -0,0 +1,38 @@ +--- +title: 'General Events' +description: "Using events to communicate with runtime code (deprecated)" +noindex: true; +--- +import { YouTube } from "/snippets/youtube.mdx"; + + + **DEPRECATION NOTICE:** + + [Rive Events](/editor/events/overview) are still fully supported within a Rive file. However, using events to communicate with runtime code is deprecated. + + **For new projects:** Use [Data Binding](/editor/data-binding) instead. + + **This content is provided for legacy support only.** + + +For general information about adding, creating, and signaling events, see [Rive Events](/editor/events/overview). + + + +General Events were previously used to send signals from a Rive file to runtime code. They allowed designers and developers to coordinate behavior by passing event data at specific moments in an animation. + +This approach has been deprecated in favor of [Data Binding](/editor/data-binding/), which provides a more structured and predictable way to communicate with runtime code. + +## Properties + +Properties allow you to attach additional data to an Event that can be read by the runtime. + +To add a new property, click the `+` button next to Properties. + +![Add New Property](https://ucarecdn.com/d4cd3b8f-3765-4c28-9204-e5daf7fff0d8/) + +Give your property a clear name, then choose the type of value it represents, such as Number, Boolean, or String. + +![Rename and select input](https://ucarecdn.com/73d05fb1-7c9c-4c9c-a17c-51781ef30d0e/) + +You can key a property on the timeline to update its value over time. When the Event is reported, the runtime receives the current value of each property. \ No newline at end of file diff --git a/editor/events/open-url-events.mdx b/editor/events/open-url-events.mdx new file mode 100644 index 00000000..cb19c8a3 --- /dev/null +++ b/editor/events/open-url-events.mdx @@ -0,0 +1,37 @@ +--- +title: 'Open URL Events' +description: "Using events to open URLs at runtime" +noindex: true; +--- + +For general information about adding, creating, and signaling events, see [Rive Events](/editor/events/overview). + +### URL Properties + +When you select the **Open URL** Event type, additional configuration options become available. + +![Image](https://1159711764-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M3EXlibk6bj2FzPQW-9%2Fuploads%2FrDR98sXAUkNZXqBbv0sy%2FCleanShot%202023-09-18%20at%2013.06.14%402x.png?alt=media&token=0c681b87-2667-48d3-aa24-3b550732032e) + +Enter the URL you want to open. + + + Include the URL protocol (for example, `http://` or `https://`) when linking to external domains. + + +The **Target** determines where the URL opens in the browser. + +- `Blank` — Opens the link in a new tab or window, depending on browser settings. + **Note:** If the Event is not triggered by a user interaction (for example, via a Listener), the browser may block it as a popup. +- `Parent` — Opens in the parent browsing context. If no parent exists, behaves like `Self`. +- `Self` — Opens in the current browsing context. +- `Top` — Opens in the topmost browsing context. If no ancestor exists, behaves like `Self`. + + + For security reasons, URLs are not opened by default in embeds or Marketplace posts. This behavior may change in the future. + + +### Properties (Deprecated) + +Properties allow an Event to carry additional data to the runtime. + +This feature is deprecated and has been replaced by [Data Binding](/editor/data-binding). diff --git a/editor/events/overview.mdx b/editor/events/overview.mdx index 33a60c0d..1408d94e 100644 --- a/editor/events/overview.mdx +++ b/editor/events/overview.mdx @@ -1,91 +1,73 @@ --- title: 'Events Overview' sidebarTitle: 'Overview' -description: "Creating Rive Events" +description: "Creating and signaling Rive Events" --- import { YouTube } from "/snippets/youtube.mdx"; +Events live within an artboard and are used to signal that something has happened. They can be fired from timelines, states, transitions, or listeners. -## Creating an Event - -To create an Event, use the Events tool located in the Toolbar. Once the tool is active, click anywhere on the artboard to add a new event. - -![Adding a new event](https://ucarecdn.com/4ed6c563-4c59-42c8-b40c-f502d5a8e1a4/) - -You'll notice that the Event is displayed on the artboard and in the Hierarchy. - -## Configuring an Event - -Once we've added an event, we need to configure the Event using the Inspector. - -![Inspector view for the Event](/images/editor/events/45fd9a33-3b9f-4e29-bc82-c0a8dca96abd.webp) - -### Name - -The Name field is where we can give our Event a specific name. - -![Renaming an Event](https://ucarecdn.com/4558fb61-4649-4210-9ec6-c828c48ab2b2/) - -You can also rename the Event directly on the artboard. - -### Type +Rive supports several types of Events: -The Type dropdown allows you to change the Event type between General and URL. +- [Open URL Event](/editor/events/open-url-events) — Opens a URL at runtime +- [Audio Event](/editor/events/audio-events) — Plays a sound +- [General Event (deprecated for runtime communication)](/editor/events/general-events) — Previously used to communicate with runtime code -![Image](https://ucarecdn.com/9621c007-de2e-428c-95d7-837615a37caa/) - - -### URL Properties - -When an `Open URL` Event is selected, we have additional configuration options. - -Properties for Open URL Event - -![Image](https://1159711764-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M3EXlibk6bj2FzPQW-9%2Fuploads%2FrDR98sXAUkNZXqBbv0sy%2FCleanShot%202023-09-18%20at%2013.06.14%402x.png?alt=media&token=0c681b87-2667-48d3-aa24-3b550732032e) - -In the text box, we will add the URL that we want our component to take us. - -Make sure to include the URL Protocol (i.e. "http://" or "https://") if you want to link to a new domain. +## Creating an Event -The Target tells the user's browser where this URL should open. We have a few options: Blank, Parent, Self, and Top. + + + Use the Events tool located in the Toolbar and click anywhere on the artboard. -- `Blank` - Usually opens the link in a new tab, but users can configure browsers to open a new window instead. **Note:** if the Event is not signaled from a Rive Listener, the browser may block and notify the user a popup was blocked -- `Parent` - Opens in the parent browsing context of the current one. If no parent, behaves as `Self`. -- Self - Opens in the current browsing context -- Top - Opens in the topmost browsing context (the "highest" context that's an ancestor of the current one). If no ancestors, behaves as `Self`. + ![Adding a new event](https://ucarecdn.com/4ed6c563-4c59-42c8-b40c-f502d5a8e1a4/) -At this time, by default, Rive will not open URLs when this type of event is reported in embed URLs or Marketplace posts due to security considerations. However, this may change in the future + You'll notice that the Event is displayed on the artboard and in the Hierarchy. + + + Give your event a name so it’s easy to identify and reference. -### Audio Properties + You can rename it using the **Name** field, or by double-clicking the name directly on the artboard. -See [Audio Events](/editor/events/audio-events). + ![Renaming an Event](https://ucarecdn.com/4558fb61-4649-4210-9ec6-c828c48ab2b2/) + + + The Type dropdown allows you to change the Event type between Audio, URL, and General. -### Properties (Deprecated) + ![Image](https://ucarecdn.com/9621c007-de2e-428c-95d7-837615a37caa/) -Using events to communicate with runtime code is deprecated. When this was still valid, properties were a way to add values to Events. + Each event type has a different set of properties. + + + Each Event type has its own set of properties. -To communicate with runtime code, [Data Binding](/editor/data-binding) instead. + For more information on the specific event types, see [Open URL Events](/editor/events/open-url-events), [Audio Events](/editor/events/audio-events), and [General Events (deprecated)](/editor/events/general-events). + + ---- ## Signaling an Event -We can signal an event in three ways: via the timeline, on a state, or on a transition. +We can signal an Event in four ways: from a timeline, a listener, a state, or a transition. ### Timeline -Signaling an event through the timeline allows us to control the precise moment a piece of code will fire, like a sound effect. +Signaling an Event from the timeline lets you control the exact moment in an animation when the Event fires. -First, select the timeline you want to add the event to. Next, use the Report Event button in the inspector. Note that this key will be placed at the location of the playhead. +First, select the timeline you want to add the Event to. Then use the **Report Event** button in the Inspector. ![Keying an Event on the timeline](https://ucarecdn.com/bd8d36f9-9cd1-4eec-9c37-85d4a0a19643/) ### Transition & State -You can report an event on a Transition or a State. +You can report an event on a Transition or a State. To report an event, select the desired State or Transition and use the `+` button next to the Events section in the Inspector. -To report an event, select either the desired State or Transition and use the plus button next to the Events section in the Inspector. ![Signaling an Event via State or Transition](https://ucarecdn.com/d1a63666-0cce-408f-9364-826eed66b241/) -The dropdown allows us to select any Event we've defined. Now that we've selected the Event, we can decide whether it is signaled at the start or end of the Transition or State. +Now that we've selected the Event, we can decide whether it is signaled at the start or end of the Transition or State. + +### Listeners + +With your [Listener](/editor/state-machine/listeners) selected, click the `+` below the State Machine Graph, and select **Report Event**. + +![Trigger an Event with a listener](/images/editor/events/trigger-events-with-listeners.gif) diff --git a/images/editor/events/trigger-events-with-listeners.gif b/images/editor/events/trigger-events-with-listeners.gif new file mode 100644 index 0000000000000000000000000000000000000000..97aeeb1c96aabb37ea0ba00767fb35a5d4d91b8f GIT binary patch literal 78417 zcmd?RbyU=A_y0X~cc(K03_bn9;tmr&L-b?5XDeAV*9$=6*XP49=q-Um~qT%M|VxXa7 za&JKhsS{GrK_Lu$RxzBq9)zT1G?Zj~R`C$-+su-;$Qck|b_QxzQK(}HB{kJ;zj{`$ zb})>SoQBpRZwO3FB^ByGL`1?YD9tG?%qXBpLP$VHN<>XYh(`q_r=lUCMG(^Sk}&Yl zFhD6G9Mlj>1_+db`4$~B4+D%7%Fa)V5Me~{KsiJhIHhR?U~Gci5Mfnz5fwfWd4v=n zSkabC(U?=&45t2wRl|u->!E;&Kf*M^+|-cIF5M)g&^@co`JpX29g~ffH5E6jppc-w zy}gZ%wMEvTRa&oDNXPKjVb9tTqbwhXq9})wAfL88uYpprf2K@uqe)87?eIsLfvJ*V zofX6D%F&&i<{CxCMGU+WN)fFDa5y;^0>LMu=vV9IR8C_R>|z%?CTK-hqJPJwh_=WlGD;jde?-9 zhw*#Xa(cChd7Ddk+t_9eiCBj6dpB`IypTeAtLef_lt{< zQ&v&d)6<=pm=N)8$@Ys3_m3#@&&UeM;0v^t4s;X^>JSaKk_%}N54DpD>(Gqt(oX0$ zOzzc588J^miU%}PGqSk3yWvBa8=D#_ptPiL7$clZ@7_HwZZ0)-H7aTWcha{QTYxx9sl; zScD2V>k2p<0--M$Y$wDeA_N4TkRVVRgsmfl1KLE)v_!nkMIYW5jd&#flGFFJd>RNBkJ1SsySytVeB69|%SL=_W`S4)s$OvIOi1H= zsBc)9e|T7USXli`c->57^FmZ~R7}@u?9+r;&u2i$CWOW%CMBkHuL7Z*+VvtmFeSa~ zMW%mDW>#ia-+FFPac*92o?lvlZ)`zuLE*qEP+m*RN=t`clnpIcRaMp2)z*){1md-| zt+lnStz+(0XJ=kGmrV>cYF%O40MW>U&hs4p0bqUN((AFVGOi33YV(kt@jlLxS9RTz#n6i=jb zn~!HHHkM2z3b-7ud*qkS(NgoWh;<-*Wumoqv)3ODk5Q$q?$v;|n~H;h zdbFenTve_|Igw|oJ&i|eWAZ+1dnQjhijl$nBT~uV<4xj(3feop>9~SS=is`;eI9s(B#^ZtSG7{75<gZY5QBAw-ftsp*wSU>7MZ0F@R z1Bc-43uO;!UbG2cC)Z{RX|vaEgE=5l8J4umWC_b4J*l!cAWaLbC~q;l%hG5G0{V(w zi6?q15By;B&VJ>M!RNz{j1=aEbUASxYeyp=*oBW8)igzmx|eyQkH@i051ka=wCp#O ziz*nNHh2)GRs>bRUGNHr7hqEu`OC}2eS=2JX*EmG!B-RNcP6Roo9|0yPXAOrcQy-E>%0w}cQM}UeAD^1=liL$tZvuGsg~&) znPlnOho@QgAAIgEgb|&XJz{?J^Xqv^|UhU=2?_WM# zUh<*kfv^-Ls3Jc2GeaMIryNCMiW~6{Uqbl?%pZN08XYrUW`@6Ia z`J}0%GUphN!_}h;$V&t_zs~;2d@L5P?*<{34<>TU=hWRewc@3PXw5%5xEIWK-H)(g|HRFe? zv~eQ9i{auk$21+$uNr+_eaZHRY zG1R3#J(fLZwkK;<&tkDjpEkf&xy=(eY#$4$G;Ly)d#xYLd$M)OC;yR8VO1kKCFy|W z$$<^YCe4Oh0l%spFZWZLXJCO|#kt7ccpb9l{rCNBceA`nG{HZHgqqO_>h?Saos{M0$f*S?UK9HE&3+?aAkW*^jO`%Dt-Q66PZ(_>cWZp1WP_+s z`RSpdP$UW0`vj>(s1}VIKfP=+S^lV)qU3=|vqAX51K;Ifr!pAEO&<-(9$bwjm`->F zMU=Zjv#ECR_)-tMW34a4n~nYze#t&!byhmfj_=F;yaEC-^4x`{Cl$I#%(DiS?ifp+ zOxXcmNVEHi!YoSvtl^eXb@|=mz*;3MTgIBG->OK`Hb)! zLhL(?U2l*!z?y4RYn)fG)>cIXV{e{pxs+BAuWQEGlj|o9zE5sbMX!@CH^??kRo*z+ zsB52BeZ+>qy7w731w2C@w1_->@k-S}+2Wlew9s|+D=c7P7V__=a}2mo@bEF9|mQ5iLVH$N(Z@P z%`7~X>6hu3%eh`?$37t4Vf;qS^57Y%{loPI2E@!L;$!`@r#3Vt@RAV)E9I!i#d&aP z%Q3y5dHpK;=7>AN-O7o}p&HUwxeN8a4?8!e8z!yrTU0MQSk4-xksRzcA_qJh#rJc* z=S9XZf)snl79EZG%#h_CQ;v5(X=UT@2~7wK(L7|CSIS$%i*Ih)M%DE=iJvXF-8kPw zlA3=rRQM75#X{6=zN8!CQZP$Z#r2_kIjx0jt3_b~apdeZ!UU`Qjc_j+x#l|EDZ8;Y z5$WzTMc2=r*=lPS3AR3GkPeyF^{+7hf$1}%6+?%R*{^NT$}`83^81yHrt5EN8uIz7 z-nnYEPQ|}?{Gmsc_^I0(1I4Q^AjBiN!m6mfy`AKZu`YSF!VX0`1@Qet44ey?iVS;%7EHW z?WPLxl)`BwBw96VSWE8M2qqKy`4O>?@|soc>$t(sleC$xUBQ{J(_TMM<5DH+-oj)N)NetzbHqaInSeOq1odDb@5{oZZn+s3z_Uuv=X_7!W5=Mg^!Us{PD zr_Oxe6}|jAJJWsq_O7=n-JK8Yy1t)UXMVi*+Wb0yL*epsvyacwrop#Owcd-R%OA%? ze&6dk{i35bs98B45Dpzzc9pg-aabxoQ0{roM>aZC6{b4r#dhvm53jVll{$*ztBwzgZN4y$Z zvBtoG8MD~_NSu0qjC$fgdt$tDf80oJTnzU>g=L>-+`)z1xCzL>57s^ya#C9s#zup> zurTi-fuL@|fZOi4Ibd8d1b^^wH&c_)DrVX9Ws^?P;_Dkd)31I|+xcIB^;sx+2rG*JX3DP}8VB6ZI! zg;8v1u(*k_n2td%>X_tPaSP#`Ptv0_UL_Xuiheq=qfUf$Yw{Hz2r8|_2j5S-`;{3P zo)!*^TVO@kngzaf+|78j_5&2BcPR@rF%5rKUm58)Yatx%nGR9{2I_q^t zgdbK((?&LW7Kc9ju9NeaCR@cd40e$ra@?k}Jf%txRy?ERC=#jsEF81Knro1hvnE~HWhW2K@NQGewppzl z^px%G2=t$e6s(!9ty^4Fc#IyQ&q~{uK%~PAo(#Yx+ z_L}`etJjCso9rY97d2F$s&Z{=`f+Q|BJaG#ts)G#iOrgk2DOoMtwrs0d|6S8jZ#;Z zFI3f-T5Z9F9!M9}YK|sa@0nOT8p)}mMRyy5jr{C3kYDKjtdO254Mn*gwq`=*Rrf8u zPVltItfemIqMjL1&uY;4;?k}zNY=9KYmwL4jY1|7agj!0t45j10{W1OcO6wtxHoY1 zn?4MeoMtqU^i^r-L+&cq$%Zv)RyIXc@YT&W>2^N4uUy-p*!%H3+?J2~(;V_y~T$Up>TLyP?n$K33%|fM31c>Std+8`&B$R;680|I`bi zPS+MaLAgNaN@vrSjn((smd`L)yD6Iy5EPHkpDY9q2zoM4uY7<=_)>Ojr z@j%hUg~h)%dU`2lBq2sFSqW2>_kq**1yl{`4A?fotb{HUqOy#A4J99ZAMrOFDu`~& zKGMz98fQ}(FU>0BQ@MA`VW2v?thNgoAU0vAKk}vxr(Yrnr&e{E}0Su$D(tfDzHuLB%ugGEpsR&pHwVmFmoX*ody^f8>P*`1gPR)L< z(Q9H(2AlKJ3>rf_R?Y#xhuQ$ADy1r9rkBR%*_lZZ(kC+-zLUw%B|hkAFcz~~R#u)H z#0rL;u?aTL-&tdRO2et~TxH=EU4r4HeD{K0=kOU`4#BZqF{uTiW4+{CW=s8YW~Qb4 z4z_bp4T#taiQh+&-!Tg`Z(v@kPZmr7`K*tol5NG0_TeKxAhhYyy|%D z2kI|3ZvJ?wAqSeC!h8J^uN{e-$c;VwM0F`GdR~UxYS<}Q+6n$0D{pjm(jie%)tRca6?3Spo|QEpi>s8 zV-fU8EfXsoAg0W>IGH8+S)_zvO2PmpWfkCI)s%q4m;qwSrYOed(ag@r$L>%cLX>AG79ifuQp(2!L2IA{iK}7r~L|unyB%5)ba&%^K%RFYbpx(Gz$dT zUU5*1&}#@PWTq+P*De%d3&2p3z&26qaB)#dac_&;0R9Bvr<>Uw-`Xnz8qzKi^+?jk z>%m2uB~qGY#$u{Uj~`~_Yf)w zV5kN-^#2n>#pLm)S8OO6ON47xWToX@Gt^+Vf|99BA%LNdHU4I(N=?5Q>V@GLz)(xo z3x6@x#Y%cvM(y$D%B5nxKNzZYGhq`6IxcyWx?_?yUTcjk-II5RFDC>YH+wO4agsU( z!o&M8rmBqa+a7KVDa1h1 z6ExXDYJp%9zwhhpeR5stL3lUrb_r=NGrz1uv1LjweO}lR-63P7RwNlo9>ZR&|BZ#N zjK&N zR)I5)TY|do_>K8=*alkyoE!XL*K*L8w5t^mudiFF;dSCKM1OteeT+z17f@<6QMAmB4N2tCz)KvYa^_yfptCd1IN&aAC z*ZUz!si6j%6c!56G~tktGMf9dVQ@2T%akWCY^|*~m*F{6nnY~+h9VUY(VSs4+;WTsusOythkP4qVTp&vuas~)~EmBzrl zyf80qdSUmrnr6|a(qPXv@@*{=^IK(2Cp-I5J;h@1QA0X!rGZ?52;yCn&)0Fb`UNR+ z$Ch>1x8_+*w?p^aUZ>c+Wp_>RJrl@2sYrZ|r%bvFL^k!uOLk$6-NzbP+TTAL-x& z9V96yjXDk-r~cG<-tQ)Ho;n0ElogReZT9P7Bd#80&M!wJ&$8q*A4b}Yvp9sSm@l|W z9I;QIxvpeRWs(|xY^nY(HXCMcur$P?7%Lt>iWT}UYk8r%I|W-Bb}asGX?R zZnmKQtlg@{krA+2Ew+*mMyI)}&hR*lAfv!9Sn}IAlIcms!JuE1XEi5kYtZ6A58a0& ztcx+HPBJYuE=e8wsvl=OR3Cn58=5O|^NiFNlM40Wnm;v;7TY|=#|=0u__ zz>wXL6vq@xw+xCitr~*pe^KQGqoG_S4*6Oc)9|yUpLXLotbAS%>(U2%5ZV&2#HY`>6GFs%r_;2B4_ zjnS(=93rb#3}-~@Bz`nG3IBizf0rgawoZ$Fetmi^LR@sBwz2%7T$M01W;)Ccd z&}Ziy53%UB{8g-#&@xs(l?Y9h-*p?G&$;+iDnU@8Zawawu+5irR+K_^7r9U}?vHgh zrb4?^X|Y28bA{eig-+}EVvRsEDj|2pgZL0_PlkMSW7SIirSTUn9g7tv6!v@*ht-We zpKIKwDveiYb=xyoyoEmH7|pLn;vIdi3s-fx_w8^=_j$8H(3G8|1PXRjK{6q4nlw3w z$^B_so%%e2Y8{$2y{cf7++s^5i&lM1C4Urh7n>03bME_hE}Kxva)}45Whd4K8DF&` zf7t11+3PQm3bIrVv1<=G8H|rp5 zdZ>TCI^ltqwoWUtSW(S@YKbz3yDuk6>PRe0QPqjX!)(_1lEBGqOu37QT{d_3)}yah z{acu#=Y7N_ICyK{HYzs0koYg(WSMpfBSbSJOyZQLYx2L3l1W{UE|C4$bS&PQ_WX|b zV@0I%SG|WC=YvAiJUUvFtrUpo%0+*1~7TC?96w|;Ef+JM#P)&)x1gI9Fb1E?gn z{5kpaQIN4s1us-`bLj_Pa8mNNesQ!m{noMY>h`9Nw@ENPwI@1_ge0zdUhX|X{V65y zC*lW*$@(G=&u_kN9d4z6RO+49^DfCgx0ZgNgPean+LzBO^82CQjHT}` zeFD1IOYXaVB2->K)S_+>@4W9nW5$zGsF?r$Hb-X8^O3??`CccKi_S-YUL!l~dz_+e!+zeBOC&X1eBCU4H3R^VMC=$IGYl`?|C_!UfuLIkfKm zUU=@?JahR|0^dK-D*W=Nn|iUNI<65&@29T6_o*!3b79Ojf0WmxD<~59)B)@Q{-k;V zlOd%vH+q3E_ds}BAbVRN$8sPmi7PjC5U)@Wzh02Qz6sYd z$^F(KvE`uK=Rp$G!BRrOGJ3&s?!gLa!AfnxD$7B_=fUdKA(}!V+HC>odLepgA^L40 zhRY$w=OOsmmJC>-2_I$eQG;&rk=d8ZTEN9*zJ#)jDiEM}Bw9N=Dkz2~DSCWzW`~0% zn8=9p*+a0x+~C-bsl;bXfsZLM?Lo}0m+oPzr!pZ)j`22*$>EP916@+7nKG9n4A9&; zwj&Cbl?(METdg9?;I`#$ksN)IQfE)=mbo@ly^{58EOmEo8ki5|kwT#{g7cBPD>&Z4LZVOf&l ztyD3ZHk|CAqA4H|J;8vY;aPvl2RO2QXa0{KB7b+ z;!ed-2ce++mYl*@k`ohuPe{%!?!UTHluO+egEOu3^qr@QxQSut{OXjpwfUU6(>YPvUd=J~u6RJPHlc6nj_ z<;LdLD;dV6?CnW8`t7$z@80)v?0-1@^!e<|`PYkY-+%nP1fk*ngVb^7){n&}2kav5 z>Kl}C^nhKYe3*zf{(<^4z%F7*9;JR#X3;-UJeA31T9R&I37fvmmAE{ZG)=IsBfTBO zZZzIhu2rg-tCW4w1Y4}ss}u-G0<=!@tsNf*W!Iubqss9LqluR4wN|H{@oeSRnwOoM za$7I|^oxj%7j`wiA0#zi=Vjj+iGM7cbFFpwF6j@8o|#YO{cwK6Uqrq)TShbCebTP+ zcA@TN_FX}XvrarY@Uj?jXSrEgqQSnXkNLl!s zlmfl`w5cYcY`bX|DYm=mHYMe|84fK6yO~bIY1iKURQ$d=cX^k2%)jzMNG>jlCytpXj+^c^AG|+YBJ?o;c3zi@M~!D)zB3=bUHS(E1_g(NhK2ts7qM~i z3C|Lfl2cOC(lau%vU75Qa#2`RoaY($V>>O|_@1uivI; z2ym{AjZaKYP0!5EJ)d7#e6h5=vbuI%F1B}GzuDc}KRCQ97axv4p8U03m?QPkzsox< zAp@~l8B|8O7y8MG=#-8qn6?N1<}SM?BR&6aFZ*XS@~d3@1&!zd_OdH9@^AJsqlp)} zAQVTp9v?cvJ;RQtjvGUnZo9@kKBhl0=-b|yw1qq%yi0$2)4VtM23^W^x!A!}2SHB9 zL3orx)LS$xHmKNgsRACf5_Zok(&Rho$aJB%k0~{v60Rn{2^#KAz z4FK5wF-HFOB8FHVIM%{8$EG3@zn*daR0OXGN`zbvdfOS1HLU}u#ghd26WcOG357^P zzx@D{tU~hw#pu_Q@-+-Y)F8i)R`J{t-rhi=peF2kgK= zTXh}xz{Lb0;;(}Vz|Q~sNW!=Tvs}mh?^5|`W#Nxf33OIH58*|R|I%4W6)Q%)^9)@Gs3 zfj*#AlAF%X+#$dlF_;EQB{Kmg=D^(Aze=T%!mFd>kGog zvGH{2#=ehwO$YO3T9w9A9nEi->dYr{R6ASVt+lzl-I(fZ{jiDrMUnr#vr^8z+uiZ` z?Q*02=5%-Gmk(P5Q8(0jy1t(7&sRQB)A9E@tH2sfCAx7d;M@7z%;A{_e*0fR7pdu9 z=%jEH3k+I!aJ~f&ZrzqY#_e+|R4nw_ygd4YO`r(vbi7RgBPX*-osO?>-XH5b@j5*a>OFQ6Thq5IQgEN@@fayv`pTTj)R+ zgzq$}m#A~QTmp@Vc$UQkAI=Rkq0ITu&Wi3;`Cg9q*}-0}KPLNrUNEKIKA9ZjxEA*B z;!1s$6<9!4MExZz{;SgfkQvvf0nkib4|{-e`$sd82^Zn*$dgBCJp0{1C_K)&Y9P3ii~pV#ZS5VMUEM%d^z{z_ zdgE^mL_^+-KN<)R)fBD}svVXjrV#(qS3m<%5<)>tjzhk4^p*pz{ssJuWqvu{-Grwc;t!aw`=+nbg>4?r3J@3LZJpZnjk zLa>#qr>hK`kXo8QUi%0B$?gu~@uTM^u|dag-V#YUy~8Ua*uS^ri>{w=!w3V=8<&9K z*xw2wmV>_vCfBif6+&%Q_9~R#b^lcuI267e&YWVi9RV*X+m7UD+24-h9)|Bk^S`j! z`JEMK`#W(Gm~5}(Whk%p#_MM)0tc@X)#cdUBx&o|Ud>j@-=rA29u(`M27k45GffdL zQKMVYEJ?TCSYSlhH>{LsB+C%*WxMbG&Waot-lrza9+>P5IiZZ6)&=7v@e;YwurMSB zA$p#5(HPs7gl7sgvivcs4K4_s82z~11y2ZsEF;Vs&nm1y1tZ04xJnNSDVOh8I%BG+ zqo5JM!N{6PMTv^?L6{&2m583(p&>>}c{%U7j{Q5b=4Got1&5uoV_Px63a&@i6d(>P zAP?zK1OJkTe{IPC0010Nz`*vpmj^C0{n?WJk%3pO4lwrouhQ?&*D)?lSacR_Qg(%k z|D%z=%0pIof(1^dg1%ZIp!+ilUR>+``g=p^1t#_8b)GL}8-MHm4>w!Ok_LaDPTHOx zA=i!k1GBh)YUKa(bow(7ITHGQ=V6jhIM+k+Dc$*r#TQKv$q3X)eZrJ%*;Hnh-t6Wm zulI9XZN6V&-#a-?F$)`b`+DospSu5exzz{bf4C-c-N*x{(_in2Oo7iIzU~@J%w^;g z54wny!p!1#-x|g-5}!B9Wk3bdP*Sk|A14Rx)yZ*vQSINPCt#ESbOc~|0PcbT7rFoq`X6e-;;-iiK%~uBEa+%=ESoq+U=I;HjZAY$?G_x&wB z9|m#-YlOw6q{bz4BnCjU(&RJXM7X)MCAZ3Wv8t-r3-an4RB|gsS{f}X65DQew-Cry4CAz+*N4XKPJwUawWl8q_>sb>rBZ42$^L$yZLBt&$Gi4=t$4VF=9?2Id&tqYw58wSG-gKdZ8jC&14nFmatgck7KW1ND|u2GGd5hPHyq310+x z7T9 z7|hTYgZm)~k}x4=T?FjFLZJ>Uq-4qh{`&gQljF_5NL7e+3C`9tyOwq}XFPp@!c2XE zz4dJOGcw#P?}|QH_VULsOv)ZWKb0R=@{u*~K$a3J$g>==UzF5g%~)uRd$^Mwr*n8v z+G-TZmKum_a#&uL;b~r^IR_puu!-#`F5&pP%#LHi<`2wrmr)Un4bzAFx3U;_$Am^` zVc7-p5U2jyKGa)Ber>~hG?#Id@8Kr5oU*rP8YktVSgQG|E*uKpI6SXzDk#CIZi|&o zIqX7Bv*!vIeJx1Y_U_?luCDK>Yk@`Cfp**luR6TAi^ouuxYP+LyN(A_`sa1@7E!&Y z>d;nC~o+qT>aWeB2G)6ot z^H%y4F3T$ZyjMxkhj`+yJm=>HZC%IDi+a}8pI;cdz5Bdm62^J9Y>`S3G!w#&1kGEu zGDKD;wR3(ES?PE9vhF^x1LD;t^nSA8@8YnDGXI_I{8cz>&G~k;;QRBPczG^>9qK;( z`XHmrrWLTedOLR~v^1leu6Gn+o=m7#kZZl9N^27i3n3cJ~}jT(JZ zxMKIt?MD~so=3pVrjeVM-#=;HQoVOHbJ#QWeSS~^lN1a>kgNNDw~X*dQ^-T5`hBx0 zIuD&{6ojqE4MI^wg7Dp02<`$moAC3o5!n7XGI_?dueTD#;Qf>xvmwkJ5OmylDGC@H zifwp4h#d){b5#%*4hEs{5JTuM;>Eg=X{_WyO+I>Cs9sD7Byr&~XiuTWd{LPVRqnW) zumC6WcqD$Qf^6XNaUfq?LnvGur3eE(KGf1eO?*_S4h+)3DebsV|9POF>f&P@cwvWe zZ(d%4_9PyUoS7n>Dp3l0lHg~-e8l{f6kY1%nQzh*xD_LpWbp%Vv#A*Vv{{kt^M@o6 zwqkbOv2mS_ljOQ5b8u_L3H{ZRl(xxYF1N7>5soS7jd))!okKcglRX3wr^RbBP`AdUwthiUHt z;;8rsHj^T@YxH z%`zK9d~ucf5h@6YN_M=Wu6c{uf)*E-#k2&)Sg+1MA0LttN3Dc^3`)b40fVxWNMG-e zXGq0cl_iKHk)Sdu0Z?W2F#Fr8m}n(?ZO9+#LT|KHN-uek&a`~KA5 z|8H{%$Sw?_JV-32R2JNncr>y``%Q&(lFEB_49wg6XvjWYJP-(1F<-|_n_O9b5=1gd zOY|msOYgg8P#pyQw@3kU9~~tacv$>D9u`Raf5C$Pv$@X)hQtO-GVj{x=;-4_;b$gM*ngltVh{%gN(dmQ@c#0gzr_^d zYAOPBqyXdtu=alzrT?r#|NSc%h&(W%MIXnGx=<`{O&?pozseHMD|BQZf5(k&NfBmR zOcPULA+aQ83P}poe~CSG;Q9XYrvLT-@w#;ep7L7q{rRAO5*L6;0(%0kRo{RAa93|S zKNzCJ%!VtYC`DMIqZLGclf2ymRM&5cDvD`aptXz}7~v=>%tlQbJf;}Y#f~epEz9($ zDqXxP_Nc&AJNcK98XF567YxH=V*fSUh7iKxq_kjCCMd8Wg@T*o`e&emQc-g-Qggwn z`Iu=aDQLhHG+g2|N`iE>zsBBxwfb=_gY&Ni6fB&K2r#1zKcg++s4fH+tN_ba!0hx8 z23iOo3?jmLwU0s=26Zfky3_!xMwrC-u6)%9US=tNV2K8+G9R#?1UySA``4)SYA)_&A?|G}9?~Hm{s`D0b34cZuwP$qpOAcHBo+2hT3SjvqDv;Q z@%QQp-&)03q++VCQe?;VIA1fi8=%kk5_$mIrkm7%J=Zr(88FhaG)nHd8t?=ACxBlm zNWg<_nLTv9dcroP6NqJCPmM$2xMOzzL(3~Sw$r0W04H$H8vu%hOU=yF(h0zp?e6Xd zP&=>EQE&GE@5(7)BIsAQ7+5(8L=|Ap4lU^cVk;sbEVAi25Mi+%$yes=&ZUIV7(l2c zcde%MZvbXKtG+@Az-M^CK8<87a0wD6-ygb03oripp-@8;8R8Zuf4s4kz z8eA>)ivgBVln<|0`bJh(Rn`nG)QrCbR#Mc})n2cp00v53b6Z#YDAtbv2{^p<7I1Gb zEG#T7FRiSu?Ck9PkAeRG^*;cN)Rq5aq~4!J|NAnE-$v?xhYY`s)Yg5R`hmC%zm3#a zu+LUK(UG#HeY^4c?0z}E$kH63%i*t-W~-r_t;N(Yto#w<%3Saso%R+BuX+h4;XK0W zQM0jkCFB(Gg)=q4)%P~P_7a3WECvsN3|~ufpZQ<5Kvakq>N-PJEEyfj9=%COU~)4Y z3~A2o2t9e7P=->EF^pAsZ?Z4*OaE$V5T3kPaui@LNT$Bi_Qvr@z;!l>Qn;Hc)wJ7z zr*f}KA3k|ZJE0vp!O(2QFQTITW z&?xj(wDXXzszchcsrfAr@_j6*_aA>2*;MO#Y|k@Pl2BDB?qOFvhHw8 zxpW-<{oL^9LZ%T_JVHkQf86$d3y$Mow zEr*Adb#j*$)+x7k6Uy`JcPrl3bd4v=)gozWj_L*p?>iWVF;*TmAUDR38fWDYj(+n1 z?Q34TNTt4V7dTe_ykENBHXblUOiS=a-B3!&`^sD(6%vn-fflOV6xcP%be=Xednh@8 zOi||-pw-Rln;xz_?%$v+zv<~o@_hw5p9YJ6$UG46`Km+2NC$CA+RC=tvv>$d zHkNni)R~UFNYC9;M=##PCgrobn%jY-53=L>Z!>N;V?FY!otd(Gn>u%pYP{9m!Sel7 z$Ec?ggCXaj;*{tm;g2&uqgbvl13@=`sw73uFVg3jK3gMk$_8a`H6d z9^ysB=gBGjYZ=8dWWR~cgBn=jfUO{WR)-ZBP)WX{6fEI1b{xh>E+u*S-UI!QK$BKp9n#27c$@liFtO zAe4{k^kMwPl6ffl0~oIk181XaFW%iqq;69 zF$?N2-FbAB@r?IWUPVM6;v9@k@C@87m!YY3Zyw*(Y`8?bXYMKQH{}PzC#*Ldwo)LY zmUs>kfMnB5MdFumhbc~)(VnJ_s+91ij;WZywvs}m!Q0M}j&d%TS^2f!`X~E+NDJddnG-z2BDmB5uef~)GSWkXSFh#ji zqtx>t=OnOzzm%l;;jDG>lVYLIipn^4&jWh$soRNViEKQv>A&~kv*p=hvUgNv?j}W3 zzR_-IYn~5)4(3rK(Gcqr`11StgvsuqtQjP@vgkWx`q{D!@GB$r=W2pQ8|C>g+V-jx z2KOv0B%Qe9MK}s6dS-)lh4b-*k%2@#?r0oJ8ZXpLKsE6(RTgyP*u$X({i3|)JMCLIN{8~nVN_URLzFQYaH3=B0 z-TO3*(s7rOK{T)DafqEjI6~lnF=DA^2%Q(t zWhI@ggdd^}cwa=7At^Z`t=!BvLZ9&!)WjMmkH6>8<}iOMsqIKmCeel*%}e{u(-9LT>~7v90E$7xK+mk$JYd(xX9@?k>2Dq^K@tGHN<{yrlofL z1B~K77^#n86ha*(TR(TZ$T~M-&wS6^xVtxart|Y5jN;9XqTS&AtkYrRLTJnVf{87{ z(!I+60Di3B_-gqp0fqQ=b*_t@@_~%YL08*qr_`Z1NVE^U8&%MVFe(nN8^|ylq zVlP$H?ehyc-kHU0TT{CECOq?j(tS>xT7HCZcrdF8hRf+sM(UQu5F{{C$0??m{BERv zo*gD=>PKi0Ud(PQGN>UL!GY=tOVszbyXtzLR^0zd7`r2*Wnh#>P?Y<)5V>EZBQE1j z6pH*T$Jys>xOBX}PQ2oKVriMGdP}OrFkbTopJAM!pXI2BiiGRkXme?fLI~b-piHNCWn6R^blO2VD$H~GVUe6=Bq+ayI+9Y5 zQZOK?I8cD@cr4ENm;pKxpaL1_Xc;8A7__C2Wf?#NatScImK`fIRul^_GayN#WcaZn zOpKG&vj!`|_(ZV^Ok4mfzfMbWi?H!Z3G;fF@%q(aC6|~ipS&0!T9nTS&F5~2<^S<= z9kD0@{0}fB0do>7zp&v}0T6B#5#$rG3Ky}_7Xb%#Za} zfX#8l)zJ{>c3Jxv*(fKuv+8m_wm@^adEp-F#{XgF7sW{sNC z>7$Z&5IvgWY&lmcWvH?KZ>&p+NJaMMlPJ6cZtS-~zGb?PI#$fpBiJt< z+<{MdI)+qky-TgSbcfZb$#dn2G>ufIfS1o2AI{_Q!soSPwWild+VnJDS~EN!ym}>5 z``fM0ac<`>A($6t2bZ5r z`Y$6GZe5>7ZvV)8II9AkaY8C-@odNVyMIl?_n`ZjfoAL7EPZWA0Q?xrnC}DHml0Ev zaHc!Z=j!1OVJ73zgdR(*N(yOQ?~)|RCt20j?*o?-JB{BpmZfKEw(%z~z>OFbsBKg- z$Sk|c64exdA48k@p_SIud&gOX5pwrc4uyc?d#wMvQb!hr%NlmJ@Yw&YsQn#8T7e(K zDUWyU(51BOm=l4$s>QKpFO_1mu4+c?JUk_-#x5T#;?FJ9@bYN#)~HJ|RishmX1grc z7_pWU`Zo7PB-r5lA1vbtMtY^$xza7)Gk(((?+P zJx^pTcq__w(8R7;H7~l95^DhOcS$>Q|Ey|O9qQa3e&`D#ard;9M?QRt7ORWXcOvLB zP8#Pmr}saY$LIG-IPv8?V`$hN+c;BNg%RyL!8`?a+_=qjS{TEJf%^K~*CbZEkg-gR z-X(*>?241mByU73BuhUV_A@qAXJAfr6RV`OmtDWhXcMsY7;QrR8qPFXP}Qu+)$ne> zx92-5y=7{JD$AC#YWtb#<4m@C*u@Eg0oTjU`2`wI?mI7-?-2}krm9i~#5oTLw6us_ z$?@r(E$!%g>AQQd7T6tfVXhnP^$@RXtT3s%N0)iVoUT+Td64VI z_s^qJpE|bG-w!yfPYRjsuUo}PeN$$l6Ic2&7fUv=4*OAOYoYheS$^$K;v34Z>vDLf z(@E&fnN~Izg%%e)$KG`Qgv>tSv+zAVOW)^gc+Cnz2j^<4UNc**i4>fzY?2x*CBJP0l#qN{KyMEc^Ti0yxf(|HZeP^E zqb|lIA7BuDte;`Hsyd~B7ud%syBUAT3)FbXE9)JjRYo4XdN)mq9XI@oq9R_uhT4Tt zOp*gN8^iQqzhv8HGL{#(s4*ZrLy=-CUNA@dxs~S&5*I_VK>U+?PzhYs;&jSc>4pZ? zWIv~;C9xy7;2HS(6FjF{%Q>ZZ(sg`3UoDo`fWsqTVujvFDrpC9lc6r9U?^=xP#@vs zQY_u`?#yy~hc2JWkvwuyT<5tcT8nuCi8Mv>77Y~v+HL}4Vb6 zg{EHHF6Y+$SfX~G{7kL57~ftvVd2w;@%!Q^CGz*WWNZ-vw~_dCxP5(p-@$r8Ef1{`WOOw2N1j)J?PKOJc2v!2zQ(n2( zo}uu3(Djb$S0j=2Xj}xOL0>Tu%Hsx+4AXk*Xp+xFpfPu+DY*-6)-?kp+Rj~a#S*oj zbYipnJDMb?SYzw6U((Q5S3b}cR37WP4N3QOsFHaV@L@ysTPT72@T10vTt}t|ehm?x zmHFwIX?WOszG!^elz?eIino`z)s2?QItNFZ2|g#%DHxLayr{F}FDXy;`o@|wyd(EB zg|sXAT|+BLk_@icUU!O*a1>V(H=)5^4`Qq-Mrw4PG-R(AN!lEzu49{T3TQ!siQD~6 z>K81iJT-Kilh#C$#6MOPQ4K0*_U6(g2rwY?v5@heEa$sv*UaY zM|Vkyv8^{Ev7wai(UO|n{*$zn+vQxkAGOT)Cvrj7RqD}4y^!Dum&=blG4^7kjJ z_5431Z5ztAv<)~dy{$=ySsA(BBj;*cpIq8?A>orASC~vqPYp#$O0&1R_NVj*_nhPg zDtSER?(HhwH5c=5GtbBF-o>ftbr1RWa*nj6bwGFBC!aC%PRNein7iC}^1Gog*KF@I zJzc1=SbUmfEYK+Yz5(x z)%hw-=Hy={Tn%BGYY*LRy~8<>P&_lmuY*IDC0WFQy+*#5JcN;3lBuc0$Jndb1oO1(S#^I?n7m7n3bJ*4$=5D!;vQI3}6Nj4Kj$3VLFjPQV->opw?&J ziT=3c)(|NCm+L7OJ8mDjo?-!<9w6jNX&6YE*vQBzv49ymBn23{QG8TnB-C__)bxzh zOss$_Pt7hz&80!ZDn=t^Ov|N2%cFWckMnCH079Nq4I!WfQ1tZ7eDq>m49qA7c2Nd? z6+pgcw97EC=$ZFx?b3EUP*#q#hhPD7Lf7<%q|Pq>SKp@r>jCP6~bCJ*u#m_HSE}K9wBC` zDdvy_IQrtYQR4RJBm(QCoKvM8Gr+Vi<7W$S>~iPS<)fTVVGdC=!S;%B(u&b;U@*tx zXTUt3czpT5o;`wdjxHZy`o56W1qN_1bORU$xNZ1&V*LZ5MV(-Lj%j|993PQ#2}_Ov zV=|bI%X(haTuuV#g#XQX^Z)Vx78tk5{yuKA;G+JH=RUfKh?ZCX+09@S(bfGMTBhU> zEyJsN?bfeQK-LGnQqxFU)lyL8@WG+a-MFo29}s=k<}ot$KhG@TdzX5-=+=#Jonu^db^KL7|$fm=4B!= z(@lvz7vkGMD4@jXU3N7iyK7}EgxZhaVs51z&A9XWQHRW=6nlV@aUe$o7oNTO0U z0vG2fQgIH7^g25(z3+egrlT;;>*A-I0tp9=otLr+MiL5Lfr#djI3>6=Hrd-g}+VUP<3W-621xC z3~XU)?{qFUSCr`s`vhR!3^K+kaB-= zbhGo$r8rhz%1(5-`@+)9qyIcjzRz&HHK&ku0cHJp7y{}GJa zL|@+D$)(X+znA2XyW$}!Df{6rHf~u<{9#~8Zz>wZE%!_7UZii~^KW$B(bL$t`?K=v zdN+xb{EcqXt!qtrAM`@k+Ai7FUwBBXUMEs`y4B>>V7>dG_rRme7MvK~D%sBu1j=UZ zN5vkDE)0pjqY>%hF*iBezJ?#?J61SRU;d<3Rq}i%?zgc{ zC|Nn)X{x2S^&N`cWOr|pymG?inG55-H`MIL3(1%6#BCl(m~5ZFksA6yEAZ8o^+(nu z@P}SKe|NEU?!m6$6pGvm-sNola56egX31HxVeQ8G9819$?X?h&j}9g1i0P(*%!ZHk zQ?E-_b>9IK+mM;J+(z#580yn~Dll%B%)z%BCwjN6{2 zlMBO7Vw9o^gx>AGZTY0ovOrh&b0>BZMb7x8N+|7Q?8f7glRw$u-(J%-6VY#A;5x;y z6MOO#h#Q^wENE)PO8|uuts^GLFdHhJmy@ zYB?$#M`sIlCxe?yM0!5ax+8+F2Hh`uZ8OPPr|gg8_8VvE8N%imdwm#jD>;5dIg}W7 z2}ZtsRg&OCgPFwW^Aof~8VG6ZxLwZ9r8%T!_BkVW6pY(LLwcRUv9D!%P7<(cjB?xf zn~`XaS7#5NeC_0Sn!%Pub0|uT=`Bg3JT9F$T7&)WL{{AQ1?D0ALFM&gx4R2uZLRRp zgizGm z(v3WCr`)MA$>OzrHSv7dY^pKU-^Jd&?8!**&aIS3ZU$23`C}0~w{vI&&S@qV4c+Cq zU7fsUWfWpKb&%43Te=m8d6GQ;H4Ghe!yAWr4$1hUGW)LL9d`}Om8>_EIWYEfku-CV z*pnpFL~UWo(d+uqHw=NzgMi;nJUrX@U6SmXe?cXd4m7jS zrIB{(#S0E(8S$Tjv+!f)KF|`pzT;`V`OV;m0)ES+fN(q-X)UaR->C}i^`LP(kMH}e z8|S^}6)GKD(v#D@GJqDZT0l+Jj=0O6U6a7`@Gb3wy?&9xk4Xo%W=!qU1ER0J)m$yC zP97iz`Ds3<#ar03y`&q`H1;veo3-a+q#NeT`kYzg=0Iw9zQRnBHV1&Nsjl2Bw@D$6 zlHxZZ#@jt0?P&1H8w&jpUwO&hZpRaE3S!CKN7w1sCCE%N`by^UoiVoiw`Qe%Ot$q* zdVBpnDRJfBNHYdE#jRJDJ`&{JP_lIqgS{+J$BA zA9M`FU;55SwzRLUMMvcGo?;1%9dTdu)#iA$+$q$~vAiD0=BE&r9B8LV0-L*A`T8NJ zUgt)bTiCZ}S)Sa0<%O;6=_{2Uls7{@Um_mOKlwy@#0LLaG~_wyy@q>b zc=EA3YR@O>2tKT3mX(xT<-BxW<-OYPjU{Dqg!~ z{uEcc(vwaWZ*%!|A1CftH#~L=6Hk5m@Vfo#{$(GyhBYkibO&^aBxsZH^2TI{z-#8T zJ$%!`&$Jjc1o0+lRDJ$PTGR)R>tJjMTFwe;R&c4jkVau;tf?q~oo-I4= z_W?`lj*T0Z;)Z=_d_>nf(#a>@)J;I%6*BPcHHXzH4JzS*vFi?9&>LUEKj*v&-8gk} zf4x5LfU4RvAU3}1^DEV#M0!o%)diWW;aJ;y1%5&sQORfMs^S$KCC^ZvjE)GQyjJGYo z$NT+e>i6fVKlf50^l31ewA*STmki+1!sL6>sU+vkh`r#Z?8x6vDQ;M8cf@dsAx6-X zP*4JecY=`>TvJGC=t=2Nq-=6nk;lwOhLR%VJwr)GLPw7VYQvAIiF!LpZhHVZ94&% zG9c`PMFhby2FN*3jRusQm|NkI`%uO{TFxmR>tTy=S3D(qB-%iG7SL*j!8u2P&?9~3 zTG$H?9-&3;$?=ip5yd^PSN>1r5y1h*?H}O~acVh#ghOC6Wf4{x^$oRG8?kVRyDhEv zqHiWy*>$va_e6F+=)K<_)0GQYG5`)y);KZ&tlF{95?@BWdNDWu_Fcl8)DLb}uvbe9 z>sf2pH$QEEnV;MNESb5j?*|ZruX16-a2PJqNS{;EGnJaeBSg`EJ2=Q}OFD<9-D*z`l&Be^69LenWsZl5Wn zJ!Hu^<|r4v&H#z$DGbK|NIVa(z3$ak?WaoE+ZrxPuQ&&Q5=aSt-MrNOgek(Jy@aT?9e z@C4reYKA1yDQSje$q&`^DY82V`cwt{ctn~vo`wdg5~n8oAl=;Ed%r>prF8s5qd~yt0U{Rb3Qlo zGQKR~^}}029kSNh*sb=?QrVe1JA~!|pYII|VU%iX1Ts88LZ>*!1@3%FcKL)v&`x%3 zb^S!<#kwY}Rr^TW9J;-Bma*7OKH&DE%_oyvMby;`Zi=_9-fBWD@ZX;F*>}0~OtwdL4%&Tb%RW2n`UyXxM0+h_bFP6;e<^U4QlKE7x?bH9Mkg1V6P^reJ^NmGGBOlL$ z?*fQ`7bF6mIk)ST9zD|AC~ za^+iZzz~8x3voi$(D%uw$6Ob3amGCGt{RYIKHT$B=*GE1;L!#nO=G#RTzeeQky|5- z^O9X{zUmc@+t5B{2`zl%@qKe}`f@lPJ=1CQTQYd6C7C*c{=`z3)QulIGdMOq_(F!r zQwIUsX!7r3WKrYL-PJ%VW$1Y7mFr)r?sy*j*jv1DnwVzkpqoGosRU`_I=!NTfm)74 zcl9_uP=e^giObQ@8ejB-8ccXn&>R6fc_(28r$AJf5^lM7_X&A^r-*TD+&u!k+DDHf z?L}hYnsJKMGXfZ{H0Xi#o}%XHMzDl94Lt&*Oxk1}CC~pz{wAi+xe1BO9al;%1|bog z(+~Tg{r0)bRT*T2b;8+6J*p^(!sf+v8Js3Hl0pPdp{jcl2j(q(v~o1XcQX8-(K43Z z!2tyj(7{ZWkp@EgNQc3xv7$%82o_Xx>Q? zyhpAJ9`NX73f%cDxxH{w#}^UA_~BP<4Jy7MX`pY;j^&(TSETYMTvap>Gsx|~IL1r$j5>;8(puS-#U%&VS{eB(eh`BF|sYJ>FF zlnz0|DnTPw7)1>jW$YL=qnNbgvEM%M;o}u$7Eomtk!6-U$E zshIJpTMOveV|Sc~?gZfrx*{S1A{Vno&#H>q#rwA+2UDE3uP#GCjRfQMAsuvD=e@@!?JX)bkZ{r0D%i$lZP zn?DckCOxZjB7MUV*$Y8T#*!EJD!yZ%XUknFd6-DsVk55N0owKoxJ7mFZQU17g${9zM$HyGU*> zQaE}~Y~eaN9dX;$TjNYmN|HS!3ubPuOb46v7V4UB{-T|MyGgg;CI?0^w z?VHDM-o2TK!AwW6uG#OVhyUQ{r@oo&0++mWX;LRRg9DxY6`O?%NO#pX+K`9Ve^ zzh>{>aRxjNxN5AitR|ZL=PF$_tI4tWw7djDk6-vSz6-N8Rmm<(&9TgJgUthZA+&8L z=_8xMRF|h6X)Kcd^KYDJT=VVrM<|(+7LnA&9N0v&K1#&PY-bE z3NAhnGPd97QI5`i)iAO*ym9+WN%_RVSub(_%(zc_1+EVjgZX{T{5Lo@2V2#?%(oK@ za1^S+%lO66uxRJ5C#WELoJ zmor@P{n~S9p=s~-jmov1mtF$`yR&}N?oS;876l9lY*yB!CLjD1*yEfHQlFcPJ5##( zkdW)&La7Ayx=a2i_4enGJ7Kbqx#~LiN4Yxxnn?|rdmuHTxMA3?ATlNW&|?3g!)_?* z9P;#qyZvBk3tMFEEAJXuzR%>XS|wC;_^TWhNK+HC9I;DjU-arcuR11aDYK`4*H~BmEI0e zac<9L8#fe-R72F>q$t$QMGRLGV zNK}f4X`9YjHb%Xt1ZP%_vCpz+@`svqJ`QO$QlcB|VVq~_G5Rc9@=p`{MDrCRnL3Jd z>XUkL%DaXH^+c?v?cX?YqVRcT-^DzRszeT69Dg;b7K~7Yo3ADzw zJCRw?FanB7o$BBlrz6z?vvXX1&;MB)qj%^#AYW3?tr!8%XTKY}Vw3of_qM-1YK#LIDd z*FRU)J`VE=C&|V{G6vDWtxxdbUfzf_=y_Ue`h6O&?fjs$i#Hx>vW67i)MOCjhbJT* zj=M8F9qE#ZFNWr`EK?I^MA*O;;<_oKnoRo`6bX&*Ok3|_2ztg6;UU%C#0g#J*}RN( zbCXx?dGcfBaR;qbhWXR$(`M4A5}-}5exC?D{~&^~69F?TDJ3=b#tGyvvlw<9V3j9h zS0od+qa-D!Wa6e&3Znw|PWDq&{5n*k=G2s=)N~BTYM51wTF8J}){R=hmqyBtMlFg~ z1N;$pJQ46JBbeC`k`~8^J~)u!0wpX3X&* zAaV+O0RC%1Vl02vB}dFL1$*5z za2K}@2iHwms~lN}Sl~QV^tA>i!y{rCxLh7t2SGLq_yaFGI;KP=1H&G$>H#(UVG(3V z|Hr?;MBo__8Q}rqexA8u4qz)u~9%y-J_xG92<^K5g~Wi z)Jy25Iv?ea(`h~Uy0)%6JHPREkc#EZSi#)qSbbBCoXgefzV@0oT^FA(eErgVfin6{ z>$~=^Ti1%&VPYrv_IIl$*=))FoL3h0Q~N!y{NIl&AM%ZY-zsAHMrBCmSuFMI?|h?! ze*+x-0aNh{sCw@z#0!R8Ebu6mT7=OoXm&$?IM$^Mm^UcIJi2jT}a|; zawUSe^Ku4l?fOl;ZQ#Hs)TTEM5vn4t)_#gR^5HYInN{Bhr-<3GsfS>{@uiU9B))t+ z#bzbBQjh4`3&8{Y+c)(s*;$h2VE8iURwrm_S9&7)gq=e*3An0-qXyXwx<-cRiFE|Y zER&$V+7~dwVnp2fyBmHi1sf}4d|$r%5-DiQ;oV!mMlL$R!}Cb{1VQhH@Fao3qjQke z50t$`0_5%itOmlUo|(zu`;^Zek0%1DMb z!piHMp#m>8c(1|gl3xe=Qp-4DAL~ee3Rdi$#Q4FQb3=#q4VbT zaLX^Km=N=zgatepO@51tu&TKfuYuX1NdzmAV8?h+$;c#325IK(@l|Ehr16l*C8 zPm59hQ;pZWSmuDLxbqk*q}S#VO{2VN*ga+HNu|n(b#n8Ba5%9uF^>o z(}vG8XGpla$oDT15#6_9EZJy-;gL?ohCZ*C^cIZXQ5Eo) z6$BZ@2`1JP%p!+dcSh{k!NgCBk|Y&(!VVvl)MV@mWPCbg!p3AG7GNns$;?M7XaM|H zR8(ZtwDgCQ2a1|go|;#cnoo;b%z|3do?6zGhE)LAuV@i;v?7MI()Qs0>!Wo9b`=i_ zz}Q9UIc4a1mFXod>80!#xD>Jfx68X=hYt}QMsdUA$%9`WOdc!p8B3IoD@ylp5djwR?iFkjsvP>B93G9Fa=KWLm3JBV=@2jo z`{k?32Z;#m`W<+wjyCXM=WvvQxYU3(QXTH$PnpGHqYhyC5NwZK$e+dL9KcQKL{_q4{`+{NN}`p0ABz9*n1=?fl8*ZUE59WTaJUC;-_j8t0wXv6@6C&m{Dqr9MdV| zU^y*;#j(&+hbstPohmY;|Ga{5KU_hW2#x7~+Q+US*t_Er%lRjQ`KQiSMgx*ty^zq` z5h4Ns2OTWQO~^9gLd~rw67>SAh4_!!{HJ9xmRQaxo0IR4^<+}B_7=~U>?_14f38Ym zR}gmR>@C0wqFzzFL6#Y8-B0G*0nTVcefdI409Zlz9h!Mw@JoDPxnHl2^P_YRmd4i9&> zjk-qd2Y`x#({B@<=F8@gTS0IDRMZo-O_6`w`Z%d1tHLx@NQbHOLQ`MM1c{p?FE|EYW;+q$NJ zB-CIvXHz-7VSBveyPLBSO3^eC3m6U33D_O?mZgAm?f~GP`0-wO#nO6*>WkKQRZlWC zZrr5m4-k-C&tyh^JeD@m$BP%g@B9oM=Vx;;iZ+P zy6^ivuT}25&e!=j^2$QCUw=#7+qVyyz1MCkA=F9d)%BTz|C3xIuSe+Dwfn0Ra=46M zY3Q95t(^G`QVDUXQw*x-K@ju>XF2TO^R37QgMC~ zmk&fC3=YU!%_O%OcW^oK`|A~rljv?6=WW+b+cxUMGWslEC8SBHc zD*U+)ZgN=%0^{f5gfxR((5#P7ezMOKn{-7Stsu55gn^@|xhaaL+^{mhw3o3HsU3YY zwd6-;3`s&-6cX{JTH{nLL2xln{4!PbE3Dhb~Mp z_xS0)7uQs2)tTu^45Ng%VIQfZnB;5fnfm4kl)NU)p7KWBVwi7;O6z6%U@dV$bDmHY zqeNHR^}Jt}mPmz}(i-O%lLz|yUIE)lhy%wKbtp!-lk!>|aj@95{(T~1Fhr+2XlKz_ z_7rFy(GO`eKc;bS$Z(`9h2xd5n`Y&T6U~&9E{EWKdY@!zNlXO3 z*+`6K$XR#w7Poi9UwHko7_5e#MeI(Uqi^tj6+iEcH685(GUvhIT+zxv>VuOOQ7%cazaeyZ6f3HBM&FJOVHb9fU z<#OQENh9(2!#u!AKkmH$?bFLQBSoH!r~b&nny4@fg#O}S>8lGY%|+~-`o+yPm$HyCZJy@QL_C zZmxa015e(x-x*_`yv!{6&wbg_euUB47Ju#Ocu|?<6|CB;=o_J~Ozr)FunHNx^O3#i zGJY_7aRe<9dr1sun;}cG^Bh$1B<@_y34hAi>e5{NXR+nX-zm^cMMMh&Xhss)Y(-wB z+0`njTUQOp%pRC6qdjITdzGqdYgcs2C>P@DADFeRGzoW$=r=LJ%VX;cdd{wR-lODe zhK^{=LY@1S7s0!cG$dJ(Ay$(|TTe}u{r&$$KLj}~=cE_kI(#{>4%6*Dc>eG*MM=f z7)R*)MjxFgIIbS&w7zeRpL_!$o-9N6eR(D|$L18tDBr%$rR({F!a38k@2e&f1tWS& zJWS8{%1LlLNRg&Q;oI9qt1uE(VS3RG@pA=xQ&kTL5F3~m@2s{vry$!jFKIwG7>Z#+`>)@vM1gd&wJBwE`JdO)s`PT58tqt0jb zli#*?d%nquSAI_QAozI{)Aw;lyn2lWK@&Jk4_ev-yTgv0sl9JXoDv9PyAa z)lCDRk~~gjJdyYUqT9IDMA3+{ieEFRf{j@eN(>N?SKXk3y62UwSO!J97wp;MUqI~6 zS!c9vmlIykE56_QIoUk8gum`06rzKKTMjxf$yN7XxS)>PGwI01)deABXC-&ibRr(- zexN5Y^GIdoY87_V9IjSUOku6e&4GcVxDBq`Mpd8=2*)W+fA1vp5iekQxP%x(pW$qU z5UZlgQ1o`JC;3(J1d+-*HZy6$xg{jFNE}4zrG7@Ar^+Jc!!($U2<)a=@N+Dsw*ml z5d@#y6LC!kBe09+&iy+#&P#Wz5G%sNaewjPjIeL|QT99rDE8xZF);zSA(H{I2ILwI zJtfd=lw?%2^fUkx#)tw64EqZ}!oW3{7J&`D91_A9m{34$VPzIbxnPgIB1pkgNOdRR zY&uG?uyP5o@``CtU^~nja<;d=xDV%zRHB2oO&AxAYvxIHa znOXkyd8=Jzb9?WrkqUbE+x|b4Z+Tx&{9E?=x1QlYX0IKku0(yGzx}IcI2zY|k*7c{ zme+E599~);nKom7vz+^BovF|=Q%_bks`~t4&+w{5ljGCc_s*W6dyDQ-Hh92Z`$sxeLc^udi@p6lgHLH??UczhWdkCkpkR(hH= z?BrR`s~#Ur{N&Z&28OBM*p?BHvjcOHET_D1P*iRa*G-yZ~WCTrDX!c#a%(e(g~MWxS}c5I4TcXw>}RH0ik zgw4Yve>Cn2wagl`dg0*J1$wm+k+~}New4`{I_RO!-)(|kgBLUhJ@t9JIq-}b>Bhx& zwSEfP62-LHgQzRWCg3BNAAt#j>v0pOA#`<&Zm>hNS?b;QszDKAOWLs=7Lx5AD59tP zDHY#+ahQO~BMpcu2}P3RXZ~E!>O~*xKAEg`&uUTG6iS59@<{k`-yAT?|)^b!djD#aK;y8my6{shR z;Ua@|aN}?ygX#$C(k|Tnj=5;zq!JP*c<)Dg)?XcDa=(8C066mKEAT512|fgL4B$I} zUCuG0sM*+P=;>(zF_eyu9z6aa=txTio_!{{!vz}(1$JrJ2Or?$&v*m7Dln?@n_U(( z4;QhD!tTZl+{7HPmpC!!RPl?M(ua)*fCmDIAHZ}2%Il9i5CO8o+Uf|_ zV-8>&;28&a4e*8ok_JFz{N;@XJLc>E4wToUJTB<@)nztD{q(mT^M!!RBH_Qf%v_^W z(oNGWGc!OHiE(5Kk3;sg5;HF4!ct&YRV}CuDQ>`C>S}I)*Vm%lLgenf2VE-BopOEM zhgBp#LZg4^GV`DL&s}D7{mOCBZS|(&?npQlZwKsRF})oromN4Rs|g1;dB}^VCuyYv zsrL*wv?hqvR8TkcB930)QbVAqwk&R3llJYoT63%F%z>+j@y2(}W54Q=q)IJ5u6h4e zfnciqAc2{&!Y(~uttZ3s3ir#}CVOS^dHErPf_8uC}e&S|4w;t?y?* z@t9mzn+G`)`J1|k%%8$W)j-Spq_L~OEhsV^eP^uawjyjATYWe=3{i$W;$%2*Ye9NL z1n+J1hX{}|l`z(}t+q{ew^MAde0l&O09ia-I=7}1(A@kr()sy(A#LP_>jt*^P^1Tv zTc`Ly$tzo>f$R!(^FvU5=<@*K#NS)X;>!40i>(MO&R}*H5hQ%E(>MJebk45hh!Zf2 ztBV(7ga=4`SHx85lOVUp_46%yh$Mp0ICvV$#oH59GR$A5*$MQONX7PEZcbSUEl50f z%kRL!H#5i&n5NXR-hCCc*sy!FIJ=xUC!8ZFjTer`h9U3y15iG}fb=T?St!ZpSwe}> zSUfCHeyL2VSune!fzz|~0@1kHOUFPS%*qWbYs4{7{%(t&oEzOy$^1p%A@Ouf|f^w^;mK?mM4?Bm7F1zsyKWP;5+c$ofzYzDwpKmv-2 ziUd}`qxT5BM1OgPj{Xwwz?w6KRkiTLAMxjcY{A&V#iK{cj92*{zvdYVcFjNZv#y9U z2 zu$2~7R9bl{CRbq#7yo1@kgoYp`1ATY>>;deo}8eroPOm!C|t~wo)_HS+})c=zPNUJ zk(z>A+H|7asxuP)PPfZ0^?IUijG&5mZd2()R}XIf!7W_Yhi7>eE--0M%*MrV7#!4& zihP^~rh3f)c2#_b(R}IrQ#FL$;b*jEB8eWx_27*cvVs|LI5Tww;Lj;Tcn|UC-kgtq z6)uLU_}9O<<@|IQT5C+9%gw=(+w|gYqb2G)STaHhUcGvNaY|E~K_+vikN1kScmmqlSneXYVZ~JWjS?1jB29#U<%i?YkMf7(SU#+$@qqHyx8@>)gnfw z6VkrxT^hE~FY;66>nG46_K8;E|G@huru)KkOC; zvp_}OqVHo9>6yLmqw z_!&OxUt)*wL&4AWWmwu_e>3)0PDTCO5B1T#@90Mx3?)ZD-5?Zm9EbV6hS~JDANC^+ z2?QhuR_+px8i7U z@RXh9N~gPx?QcFFVs5bN(lL5miHX(rwoTC1qGyXcDr7yM^n2z;g)UmBvaH6@CA=2A z4+eS7;QFV>hNDGytEKaSA06d=<-V?g!P@Gf|7juX*AbAp!7Dl27{70j%?l^1t?A3tkL=kR#dbt9s2LiWGiGI)hIrG_}<3y_ep-!AL@_`0_? z`xr<_DEq;eKS)UHfIN1NK2IqD?vj&zhCxKyw0n0aD7@`42T&oZm|OxjIf)N>NV2H~ zI2$5(Z~ijtf9O*qJcH4~z7O5#zxJv9gWc#){msXHYC{xBmw&YkmR!Uy{*#0hO>nly zv;UKXEVw|FR|zjal91T<0c37!uI(dgZy#oE8ut;!9&cw>K<38P)#@kQeD&t&aB%$v z#S`JRILJ_pVl}0-HTu@<#6Eu*ageFLQohz)IBcF3`Avs_0X-g0KpC~6*s|Tf?|Pk! z^PI{(RzLml2Q0WGJ?+%wKH)dNOnnoud0&`_!DX}V5@clLw-)Xp3~b-9J`w1(MnEc0 z-lR2uEg#*_&DPXxjc6(G8RjGS@Oec17K50z7+4PDkUkFHvXWVut;3Dt7Y0`3tF>S+ z9Ks95Bl0Wmf|RhXnN)yQ9EoyrLkQ*}T*F0TJRf&l0s=u8q9NZ>!U|tpAP^ped5k#S z#b*{ylX~VqVA6$q{ZzveB&@e;2|43p)*5`B;eJqX@@djbH5q3bgWhk@V7`7>5*hk> zsc?&KfAO#s=Tb__eo*a=b<34T1G-8e{!vV|5U;%N z!EH#XRGXy#-X&>$*2O=|;N2Nl#Kb1tuXa-3F6x zML;RR$)r=drMso1L_oSkRHURq5JWH#llx9kmn-%@``mNxH@@p0V{O+OYmBw`()am4 z&o8Ifj%AM;ecOL4hW;nP&PPN%4La9^T!8-_buc@@c{PI4Pu{Di)Mv!#>OC%vNaX7Cjn59>ad}x{fo?mcHY|Py+PRKAdS*%8mL5jfeLgSS zqBzqV&(3&}A1fJsO#SGSTVe@j`Mpn$8nm6NO|CYYUF4TrrA{6DvhwWt&9MU(o$L*> zfw-osPnS-5H+@q0F$xyQR zPls7Hm+Jh(qM=Lczs;flpx5yb;j5l!mJ!9(oPJ8sw`+4HCXoq=6|Lqj5=94lyt#Tt zYC~Q5rowN%jx$UNI;x+DO%&f3TqN$FCo4+6h`RP9&7zY{)%{Yc@1RG=d>EI7(IvIi z4EKJFbz;wc&?En=*YR(A3e8i?!uSFMhoZoW>A|98i72Pvp{$-(r}83R6mLacc3VY3 zP3OP#{>dg=+-2ASHyh$8m?5dUJ<0O+9_&%Hyh$g~%7f#Osm0{= zIB9>y#-N0d8TT`I5_mw^4CCQLmr%qI2!@ytMi;*S{! z%?>-A0UUE4%Ie-P5`Qg3r%(7={~w1A>F)#NSp5WM$jK@MjKU|Y5YQi;grmFOdIDTMzYi8LRY1=Z_n+$h8tI5ZU9#`%Ux!YS$5y>i?u3!DMDZkM z(VR~72jjw}Iy4&NVrlX)AyE2}`$neQO{{iFt&(rACEBi`o8`3#Le-7k#BM~y-PZ6C zx+NUVl^Tz3me);B;l7n?7<;EA$5b>KedxfWIE!n+BBO}p^=mZ&iwr`ift`w!FE=xK zuxqrdLt|uY@`-@UQ})OCGtcMk=KvP25S8jlV)$};C2jk)!=v5(w~_BY9DFrohqL@+pXjQZ7yC<~$n?eoVbO3WJG2A2bZTf`KgFaaA`<$SskXf?N*#_^?Ap}UkVl(iYrGz#sn6bhgO~Q=g@_eOZ4<=!( zY${`CIy3CkBjo)|RXbFc#vD&rs3dOyd%C+!@ro9O(^|4tF9jiXT71%SsFZviTM8m> z-wqu_y75yt{pUrdUw9bid$1Lni)0a=Ob?>b#K{jUAxM+B$?*zc;r0WekYgEBf<58G zBJ8e0p1jt1q4F{bY~*GsVxxYP#5~Wrtb#AzIT(E6oC(h4Oj<_$@8mKB4sbU-)gg_DX13Py_6>rC7IvY~ckdaX|-#~Ws3}W<- zcC$Wy(Yrh>EEv0nFBr{%I|>0^)wp7!{FZ$}Wbn6`ls;W>j6H(tCPH~{gaV*c7`_l9}z)!33bH>~f?iw=aOQp--b3lb|YsCPhBgzWfXT#C+b^?tsF zQmsk#{4=>(Dt=oVcjDUoD{3#RZ`T~VhXnzl9G~^o{E8iij|X^f|Qz*nOcY!eboWyDJ?bHej>yTe#$^e z${;AqAS=KiXTqQu9Y@+MQdF~RYrZkt51Uh<8 zQi)sNliR-y#?1*67v(YV;MI`g^(+Syl}}!bPuYY|&799jiO;WzUrdJIw}#)pML_Pn zfRc=Www=HQlz@#EI*d=#Qt(2cpp79qPg~1M=;AG*fHq+etc^f{3svNTwur5fh>N)h zvR%|jRn#t4^k$=&poEx1yqK4jguXqx%SZ}<=->~MQhKUrR@5#`8f7nIZzAhyEql{O zHo)m@P@~+HOL8G?^5L!uvd2wEw`#zDDc-PA46IX%@&v1+GOAw1&sjC*K03}X=qj+o zXolBo#&v6^BEc6yE4m#WvYpUvaJvI=tR~03MgXX{Ffsuji;G$Pm(tKNf0n6e(B8_x z#yYDPd_HV59@yp#0w0Y-YMYY{x-Zr>zt6Q`_=?SOuTjNgbi#H{*NxKAAD@+*{x?f| zLC!Y1&Zu?*=^X^>j6&)jh1Nd?pPR_4esG0H*N#RvJ&A3fj`K+axq%6ODT$#mNn!C| z#Z9_Dm(u<$Eh8bX*E}w*Pl`=!x?D;lcs)FufUY#=$nre1#hRe;_ zzeQr}-a&t>S?2^(Tfy$ygw)o^A@7)+PD`$OpFU<`R z`{{`&qVcI5fd{=3dg2j~p?K0MbIFh(NmZU=)rEk;f`A7>C}a0tbLnCw27WbL?WurP zW)95Pj+Ye~B~Tfr#ODSUqgSiAQld*>P8&HlSB#2N%`!Yve0nZf6J`a3JylPKalLX> zcM<1tN@9|uByyaQ1BWw>S$A`0~wJNB4dikoV(Ye^6x@FvN zS*gT1)7+xG z4=I$1_M{dgO05)YuZ!qOsZta{dDv<($FswnJSW6)A4k~rp=Gn@Ae1`=0f*vT>W)~< zo<+gWnA(=$bI_he;d9Cxv|*v26boIk9?+#vtoMB$95r(|pWmXwvihN8h()E;pDXR` zc))ZBO{0~TymC{ts7@?Xg6D&=J8c#(tG%68iBM^fiJr4 zRm;oHl(7a@!Nt_fvt%=4t<7O&yFgH7{Kkh(K0b&{>XPqzk4Med57VCOk|y=e9li%k z;kA!VoxTHu%OjQHWlAVx9Gxaso+J@RLiruPtM2`KbDS&}Jm2A1*YXTqH;@t^RnQ8K6u zo|nIt^vGB!qS7*SFN~5yJuc_@{j~Eq(h*&n)<-Ook}K8mX3V|$6raR<(wbcTWcx#RV>nQ@`-d7@w%Pyq2o0vScu68T#XIk+iR9@<- z@f)kM-{+l1T~8H@uybTCn2j33eMnxQ?#3r^ZR(s<0ckc_w}Zo%2NOp+R1Ga8FgMeW z#aJHCnvGuwV2(_iFX5WDyl}!KJ}8H5TuwHRE_zK%Jc)Jp%0b)o*sg{K9u^Q3;E^CP z2pROkPQ}1G4oC4BwbK$v$*;09+H&|u@=Z%Anb?3~#-BzHF9YYd}9{+}^|uM%T2Jq*I~ z*V8)PMivx9mBGb1Pp8;|Z4L9E8nqn8q+_^wS!4ro)XE+aOyD=CF7}0HjH&>cbBD2n ziK+X>jsAwyTYMK6cdK$s_>=M))HYu%v_ievSkI}1(7q912%wI7nvj6UNrUe!FPdyk z?ZiPKkjS739p>5}cXz^SwlKSMW1hw_gnrHFTG00O(@z|^@0mS~&8jcYsy1h~BkKHo zp=X4-;%*Wln|w7nGFyLsiHd&h>-h7|xLLy7W;d62VbcSt_JR-bS|f~B&U#U>E2-n` zy0mfG_e*~wBlrDu%ukgdL^ESH>syCZ!Y?Rs8FI4M2KO$%yHeTOf?sI%@edE)x!#EFP zK#Pdjqfd>8W$$trzl!4Fw@rlWc;zy_&>u3vpAd(p7Rp}IBgCQTX;sKQoS{ z)}HLH$~pyE3-#21PUe=8;>M*@ZSK7~2h9(04Bu4Kmf-i^xHlKT_oO>GQD!_tlJnax z@>cuPNcqDaExEl2-HsL7M~4Coe{>VkcJ9lELvke_eH!=w{x0w6?8f!ZM=Dw0-p8Ls;1>D)cGFnT~>SYQE=4B2V{wvevDYr+5Rx9Q#Cu9f=AH;ha39 zlBXBb6h6KzmHJS9RODW?;_|Ks_id@tGrjX4@d7@D2R;kJlV(?g-wiMdp&sbsI1CEF zJG@Cy=6>Ly*?BLB7UoZ176cOaI0l3Az5nPY5|eFo@TEV`K|C!&2Tacbs9&ha4)lPTYQLz7`EM zW^Q)=yqNj-QFZD*dG^uq@9jFI$gwAwP(4yO!tC?GQGNJ?S197-tQBe2Vjf9(Nx{M$ z&0@c(Vr1*bM8Aa?C))<(k(UM-Jsi7TUN*`RhSi2LFbZw0dX?Bj_e z<4K(&31_a7e2S+ch$bJpN@Gj1ZsPy$=VRnCk=0^daT@k$&ZNf(c%F@?Jz!jV^X_c)2kuq3;ZQ< zBjoqe6IwHJB{NceDUIu3_Q@HB8cDgnlnE0aQeK#=NDRkMnRWD8_0n05=2^|YS@-C1 zwcRr%_X!-RFl2>Dt%R~|^|JeYvj;P>hg-8pXR^mLvR4tfO}$y7iprWH$vp9QW?S#f z&)iw~bZ3b^XXQLW&VlkBk$i}SZBFk!44fsGR~bQ=P{{oyqB?iHC!cbvX>&msN`Dto zx)APKaBj>;>V0X*6Ec#~I^xwlqC#k1g!hfiEeNg<1dHsau!{x4j}JIepWn0&pjwKR zi`AGpen53+$1S~R)+ z2Lp<8l=o){P|#}Lr)Jgb53NJdF_$TiIaE@png56Bm#O`-=}S@Hu`BIp4k1n~ZR@Zj z@KNoDBQIwm6!M20mM0`O2F)QPr&!0Oq9MRLIk|cHpz8flIoK`(|(dEvS0`w-DfSV~~FLr|1O0A!wYKevc}C)5E?aL1jwSUV>i} zEq#;=50;#%cJ?EH%MxIFY;1KH@uPR2#SKS6*2jJ;;a zMc-SqcwZ%_F__HA@{mYQJ;ZYyJhsi}xDcbRyx>!qWXs?#!^sb&kVwzJgzHMzjZ0MkkSPb0q837n1uZ|PVn z4`Nl0UlI8!QnUr1fe{T#QIVqc@GKkvfI>r0lKjjbwP?i2^DY3F*fp$A&?HV>Pkzttcg(guKfrARbr z1CSX#U0wZzZtzOcxg}<%Xy`um{s{x0-z^$QN%TuO#!O~G z5j4O^?x4~ELQ;Ur1i(mn-yG02{41jH|B}BBr1Dz-UMi2C4W|nK90(A}AFtWi+7`>u z{@rYc@z%29M_@1d^V&0NskkhJ4gYj$Zc}LtH~>@)?qDPiyGZv8*wi4w>y@%%`)p z{z$?oil5K2Alu>@L|R}NuXE?~yKOQa#Nv1Nwi~-y#Qb!pz-(yXlqj=2VwL*~Jy84o z>q`H399W(q2~$B21pzVWO*j#2@-`}kP?+T?% zg=^gqZ>1U0$S%sYvBBUA%_+{U!=5xbA4kxefEH^4vXsha(?Hn9k(yo)g=;0@1K#35*NeTKh!AM$W`e3ZX#Oh0H3jw$nQUUUeq zMUBE#89{i7(n9Ze8EKc2af}$;zQEBzult$_|FWR~KE7=@;&=a>bGV%G*fTmr%?l4% zTKGaYPMzdp)3^I74zD2EL}hkMj9%#ZUM>y#^A|t z15*v4&0vTDY#9u$lMMqsto;4Kr20iK{$1exmk|Wk4$e3Zf)vM!8rSV#(uFrSf2W`{&6--5+bm zW-x11IFoV|)eR-qt^}Cj5d}M*LGj4H%q`x$t;!Y4dujF>D}8Aw1Hu~Q78Bp*ekta- zL{{;v7BLsomDyxB{d4Uo4A%hZj`R+%=G!e3;(Sm7f(sAMG+}?W#j9J+vL(1Gjb2%_IQLg`R*8Y`wd~kFG!G-EEA-L3-FAbS?3B0}8> z8uk)vq*!D{kZ2qg^9*yXaU>j*912y$Fn2D00m0XE=g6?PSKG*PZT4l#zBhJ8ttDc{*#>^P-DN|8dxyEMsX4ZeiCa6 z-Wu2tPPTdULyL|+X}o!;)vw9%fWq7yHsLaxAAqa>h?AgQ2Y|NLe9Yq!+1UU%v@;Q zTs+C*W5d%k1ZYT;u0`|Z(H3MDmz3t0$rK5=`9<>ElJPfGG|N>9#$fvte>foG1`HQwUDsMBrkTV|HSVlNSyxKS747inEMVKqIe+?<=bDXS2Jh7#!Oqawq~uo>g-&S!Nt1NZ_UAAGLGbGu)~AN|m*K9cHm9JVg^C-Esf z^E&fveWLIbFK>az>1q_av2M0@n|HDw@0obna~22ti%%-?um?WhXxd&Ksg*d^GP5fy zRe!Vmegug_1Yx+PJ792_Fsq+GLK3fdBLq^@`=SYnjG&5GSH#Qm{m4y9sS*0p_m(3j zU$0%}qmEJs9`@sGwEse@_*2VFOOIkoHj-IWOEF_RcL`yBLt`@4u$ZDG&9+3$?hlHe z$DxylTllLKW)POLu{S)YvBfZ%-Z0x;HQSRW69;y)qKP|A400|lKVD?O!C&Cw4Q}k) zowQpe>DqAK!W=Bai;8X2#b|yP*82P6Q}f$cPF$h^nymN zl3f#5XA1n|!jJta3x11b=w zGw8bwCDHuULta2gL<2igH@YiQG?KP!LE%&f=K^L6&sX#2kGTKc6&UPph%};yQbr}0t2+!;tvgyPN8#S z^?5A;Lc6KUm1fPe^5j1;3vLKM9(aCU;Q4_k`NQk@zZ8oBxacsW*{HEgg;$g>kem#n&%ScTBpSF4{j_dl~=U7h%Cd8zrYmf$- z1as$@pUcYt3w>!>QMQIvrA~t9?ed1Jm4WvRa|$(1r>eF$f(TZ(8l(PR7tB*F+G9f# z_Ef}Fc-hYly3P$2JYHB_(r;Qau#ejuUYp+r(s*q58l=8j6?4kKXAm~VZ@WD9H8s~9g9b~aJ*qc zO#l|8C7tCz+wi^&6p_s6L4~c9miz7i8sp*zV3pC!)1` zC$SvJ(^q_J|Fn=g*kpLK^Zwg_fV-spZ#n}X%I>`0zWSg|)*A=|L}^B_xV4J zor4xgt`a(Zr9)WJN;JQ~8ex>s)b#Bbf(ggpef8N}>T3zzQZKco)g{a)Z|SINOeh+d z_(mi^EdB{AC`X5~qoss?Sa#W7sVKWU2!`NM8}Ahjd;5TK+pfHj<4*GvTfK8xE;~h3 z*N;TB6I;CuPZ68ut1Yyx-nlq04ECxVgt9wVKx^9Im^D+*l_hn7Fefbbo5=2p6!{xS z42GLs-PMCDnJ(d>s!JHvj2w9wCd^V=k@&3IpUs+wZbZMTXOh?+#AZa0UB(OW-8+Kg z(VM|HaoHwbRRa`3tGuB>9?^rtoSdbIM_l)%vXM9ff>HOb)1o%4-LI>=mQjdo4>w)_ z(cRYgR@S{|NN{woIL;(WXrS6JdwGzfw5n=|rl6|6lu~G^zLeim>fK0|48Lc!_`MiS zTR4$-Lele=&YQn z0wbg%cmp(4IxlD9nedR)kPkXDCiDTXt-xI605Gs^fbTiCTZ1hx?hcA<{ zuyoU$BAe*KB=@>}w=RcKFLvD(3)+esOc~c29BxT0BW}E(u?pWLhJNc>Eo)#7T1tID z`eo|g)r2k_;-&BRFj^$#gBI?q9X0KdIJ0~f3Ff^D!Rn*bGk!T4{zm2lp^^f8do%i! z^r!W#+V5Ys8*=l$>^*j?X9ner(2GWu5O=3LDah%2=-(w%1rad#YlqimDu%B z&4vKCo^kNbA5a!3i%t%Q;;}P&1u_jnMD$#p5 zQHeD!r%G*#F@N3*hZ7f&g{$|nQLqQ#80C_u{Z?t7o`qweuVT`%5>{Wh?w4-+*XDFGqW{29ZXRPO$F?8T3K9-;9Na&0y7-@8XJuDR%;xU*pz#{_Bqj;G%xY13j_Thm8g% zOIS>a(|?s&4I5X6l@JRa@O{gn^fN}6vs>Spj{M@HQspXZ>JUxJ4~ebOshU4- z)z=IKR^kvpN&>;-RWO<`p6n!RjtPPd;lB@l8$84?hoFG?mxhUzj)h(5V({<3m9dW0 z+vdLu4TE2DQdsQIU-Ex}12WtmJfR=|{!1?SznMAwBS`gsn|>Vav9f9iBTXT}C)>9= zXHRv8cchG*oqiy$UmnH5g;=|r$Q2!_J%sLNc7XO=WcLK{gcPm4_Rr_KiGEg?;8~?W z!jE;A4IY}9NF;Prv$2mV9H z!bztrKu<+XPfJNJ#0}0kCVE;Xc2*`iV0TRXnD1q2s>N?@Xj2nRvg|f96n8)S~BR0J8>Z{1w$?^2T(i1 zWv$6Ap~$Tw!>#YZ?bib1h5?cqrf3W^P=py=;}H|#@vi3;mEi?~Yw$x(lTYO=-#H6D zYi&M{a(;D7eoZU>i{}Ltqy#S960k88@Tn2-Zx*=OiYDAH1_|-QKx>}Rc}*ejN)U1_ zd>#&o zc#>iw?Rg3Gq{{?0%U-=G8{8%vVlNwURW`=s>`fcFpeDI6XZh>afV)!wQ73^l;1BSd zj*2&Hl&;$-g|~t8R~hA|l5tZtv>q(q=sJR5vTHqEgE+M8+9=_^N$S8!LBR>vcQNGw zkX@rS*M@drLAOcmvd!+b%Nav!t{s7Q$KDZ?7^HPLW%q#(gKOc4o3)2q{s5o^-QBOE z#n+`HUOAmN%F+63zz_zM^#xRn1p1;*(hY*E$HDO(S~~%_{_w^}5y(gop%vLU83iQR z;78M=IPdgh33ggyXlzng0-8>2f1c7Y15Sd>&e^Pvr`bW7;MKZoYfB>KJ0t3H840ZGBWb?+0z#< zUi>dAuYuJ1@jpqeH}|l9l6Rmb>Azga9TcUmp?=QNBw+1nEZ56LlXoYxR6K{zF`B%` z43piCIa-IDki-@z$4;FcNUa%GyHW^s5K>oL-lDMX31q`NuH)e@_z%rVXnLL(p&)u( zsjT44T+Af#_}a=yI_L0M%zmO>ShNBkhr`$z<&JD50oP`1!(d+ykDo6SBYRXGrs6V} znT}XbgBl7Xx82M;_k8dr4fAFw>|Gw7LsG15L;|Z$rzC0>n>1YT{0sd^W zO-)@#Jc*SmyF+F2yzt(l&5PG*DT5J*GjJTcfd!-?$+>thEc&-}UM2*CG`M*Xte9W| z(j{mp_G}13`QGbrQrvfsz4fI^(oOUv=~Q2yzLsjcxnhjVi%rCym#(yW1=p>A!JIAX zJqGUfeW@p$q~y|MFhzZbRppy~ld+N#saQd3JcLfgy25O0)0~xGy&@Af>kNu@I`!3+ zIb1GfTx4YCk}Sz|uTNfAys$wN9$^_LGG#rsg>P}|8m`P_7K-N8lwO>GJsD@+zSAYM z+ntUXjA7`6;!;6^$bZCdaT=olh($Fg!kK)_wdSGzD&eu-bhRtbND)n?nl`v+U z=$eLWdSJ;K9TC58_cKQ~>~MaM^J^^1cSYM=ZPaOSW7*RKN^tCQtq9d(gzjNC`Nj(} zHuOXZULlcuJE8Kxs7mB%D0R5#n#lVXirIQq@w9hiTGL|@G}YHtTYLQG%V<49wbC$~ zu2I@vC>5w5cMY0toON$MaGF;<^IifSv|<2VUO%ES&r6kCsa*)M>6a)gaZenAmu~RG zEJD=;eYK)^nZwzV9BO=Rn!fwYFW*)Z`?yi`1lw=xYHZx+SIM&DeijuE1Z6euJ|g|H z)ci6~|8<*9pMPn;b>;Tf{V(tR_htJQtP>QzF@9a8b3G7$D|P++H{&MD*g`u6`CKyo zFfPAuhutieQ}z`Tk*iPRn$CUyvX^E1U8zdj=+;-?Bjkhqg)?5C!@dyZrF1OGBgS-* z_*Bovcrl4P>F{K6co5m7=^&xl*=v1;BH3g$LbF^kj&D7i{l4ZE=y zF(xKTATQ!VbRT&YZAn%BLxv{k;J42XoLnJGF^)z-^iKwVv?LWWy;L8Nnca``IlCHO zr!EQoM6OPmu@F7Ehf-olBs7*PVxt`zJkGBCS$aMh@4sfFUQ(oyLYA0lvQq?WcsryK z=8;@hq{(xpHI!84ttq{FF@IsbrX~%F@p*h7;f+ry-J*P|8}7wI-qIcBS3-#TsWb$* zc?j$|Pz*Up752-laTkmlC}-1gI8qg3jmY0-Il=G>Ty3Qu@5egmtx^}I z_X?ychTFP&l8sLHojH5$DB7z2?Qu(zX*{7NelKk)tmxXXFM0m^Ef7)csM6{<>RIvx z^n@u(I$R?%KWlSpuq#9Yk`RMvDIo9MdkIIkBuPv{SE)F0=w~USl_p8&vvJg4XG9qy ztZ6oVN;x>J@N~VFOoWSB_8tAGvo0GHf9Kygv>!II=rnTCsIJf~i#nHOece%2y@%}k zq1x=HxDscCEt^f(RCC*h>Yt_OvuLSx<>fb-8VSqG1R94BBJJsLa>qPeHZ#bYZDD$d z-k`9(4bAzNWTC?r2SmyDtL!C5X2wD3c^*l%qng(2WM*@{N+kyU4S2B7pyDYiI5r;X zU0jKyMmV9yrbfmRJN3|ruwOXK>oCtGY8$hKMY5_Sx>i|^QWQVH zKbJJh!uBy;En6y{mIoDG+iNPF024|wU+?|eng+GWA`{&3Bv!Dif+{w9#5KEi3sS}% zotJK(|NI@N`xfW$klntvWBllbJnfi_$VNjh-hBxr#?KQGI*kRiW1Fh7pC8A^H5PH7 z-_pGBc`|+K4pel^$?)2l0XiuZThG*%fy3sNPG`&104*_{OokNbh2%sJtn9v6R|w8v zQ;ql7_T?|1pLdZq*M(Pan|jx<#2{GjR+4;3(<-yDzfsyG|(_O*}kY+D-jOzCCcE9z%dN8?#VCVG_o$^`a(q9||LZC=ygW>?=2~>t*EQIY zZtL*vXPqhSH#w^yT_ddW5Y{x?VbPD?*z%%0K~zf|;*X?z4Y4tZQp`9MXg_y<7;{a& zYOzIbFa9)icdz_{oR{gNwyAsLA8P!+Z6i+kH@_)L@Qh|I`KAh~FAq2f&nso^+dar} zTR5=0XBtDS%cdl@&&^2xbuF$uG~M+D9lpw$Ef%HGd$rXS4KLT#gLp1R4{h4?h8wnv?#`)$|%=nK3h@aUlF4f38C zoItXy>(HU~6|6v+m{iE$c%t_E2TI}oJcJ*T5c4SE3t-ymkeE`)OZFJ&;{$K>`y70f z_cmaTr{KXC#$Bi7(?KGMd~SUU_Qhlk!k$Kptg+34K6nSIGQ|CCxskRl-J`sv!=aA;M0!kW9os7f)gyNDW>!pLbM7<$D0 zaH4B_US1Jb_PHSwWD&h}1aPm*0r*!i5#h)Pl4n9BlT=XRvUs~p?}#{wtEWB8i1Q$k zbUzid=g@}|1RP3fpiY&9gp?kAAEAS9!6^jg2Em6v;%`}Cw5)s}GmM^@gPsKjI#3xH zXc@WDwckwO2OAr3oq|({m4)HQ;lnS&;nNJR8yFWGkC-qxR?s)d*|WzNN01n@<%FV_ zu?t1(`)=5PgW#7s1}y)E7pzWp{tL+uEUggMsa;^Hgnj^~IA-<1 zKAznE`~;eR*!vK`@xR~B|G)S-Q2CwvE9w$Xk(iPSA{l>E03V|+G07Fbr=3+))llG{ zsQkKHe+J?<-luzvCg7%?Pxa2u^^ODN9!@chosI$8m|)c$VpL;1w(FFgl< z0LN15F%5z81qb63zUN>)M;H>tRTZ7;PW>Rdi^h3=ko@v})^ND0!F0khUjRKGhS|_0 z?T9fa@MQXGb8sh$2`_VmP8LHUp&Zjf*zaG~MNE5uL&59uxRL}TbGrI**x7ReRN0o( zMB%w8d5f9a@|gyQ`&YhgMPkotJ0J1A-q|90Ovb2Blpv7m_;Bt45@-CJbZm`PPmn<0 zHx*NU_JJe{tsEwIVY|!Rk-mG#+D)svH09_k_P%2Fm%o_YT(Cz=agwwad({~M>QW}O z)OlU7^6D&|H_>UGi0MdZPE*AEBpl%GGcGhLVJ82+2E{+n=8@tRV{f@BC}7}Vx%^t5V4~#%2sc~ zae3C_Wx~|f5~O=<2an>;VyfCC^|SJDMrxW66g%o(F1NG1!&JAH8e~VnB`vQLX`80S zR=Sb-pjzBsY5zV?sh8t8k9mgu23qB3ATbT%AgD_3*e?&g1Zihc;NLNuCd@xf0^Mbj zdi`bLHc8Z0s`lk+C)A-E;YMi=?z+9Asx^H@nMI=WBC-bM!<+rs$a%ZEr7g*&)5Xoy{l-T}iXq6=2I+oN0Y29kg4yN$Q!An_k9O{MkQ(V6yv$XHVP${yE2`_BRZl zzc#E_rkxEMFC8iS;>$(Hru2@1%ktvuxTh?Kam8s3U+>a-z4^9BBLtH>y7ttYjQ;Hm zpM2oX5@vO0I&3MXQ$eh^QSJ+8b#6f@w1ep7SC6*S-=zu^9Gvh1u4P0AVoSkesmLVL zMQOJVAHq{p^7MB7FZkjX)Z)nR*+zLrD2hyH;}3HNWGgSb8$~Ft#72gaa4c2shTUVB z-3yytGQ!XQKn;3+nSs#23GabBbBG_UCf#9!^-zO`mU z{SALmsZBrrfW3&7)_g!xJT8i{o1LATM@6MsHz9eHgCfN=f~te`C@GVelT4Z(suA@z zS@TIEo`sOIUcuWG$A&e|^8_On2AZkZUUp3|nxM-{K;Kr!$$yPrUO~*(awPvngagCX5C$fSaMuLB5qBh9(4Y<^ils5hGHMk;h0M z>->;%=@v55ps_%|4OSrXIhqBOwll^$s>xNT#fORIsj%^2;_KI;4wZ8Giwm`yxF!>7 z#5hs#a!t?7fjfRhrQv?udgga2A}OxNsh*=V_!RP_jSMA9c@)28_=wK<^?C7fDn!}k zdcx6arKZYNWO>Fg4@7aV3(wZB%zP$dsxk0cDGo^q5nOMoHK(cOed}%6q%ETduc+$Y z52|9*j({$cgS+vuRkqw;6nn>4q+Exq?4R4tjI&@hWPwYed}U_xt*T7&`D$m=k=d!X zgQj?~*YI8E>DgW7W>jIdn|GG-ypr0z4iZ7V02ksW!nAw6_Xl1;U-h|bb~!m~30|eZ zrOy)i7#{Z}8QTIuw?*^ZHBJfx*JMd=XIHFw;SRPBZBX!M>TW!-t{`8=vKQ}HP=Yml z>Nj8b&0Azf2_M|KGD)|OV%|aEi0vV7UQ54p>Dj0OMkoK#d_fb@>Oop!MdXzbE30Lq zFV`PFg4Be&5m^&NgKizcYy2`XE2R}aeO;jf(HC4RX+6z~ZjIcH^B!Gg`EuAR#+4ZR zgq^=@d1p{vr#>-lbd5{))6n^T=lHu4wohS3!y<9e)Y8#L-g^bk7sf?=dq(XFe9i3z zJFqkQzTOc}%dl`5$0J}2vSX;Hm%S3$K()#*X2XJ6Nf_3xOlpX^nV8n@EgzR-IOO0N zucv4F`W!xjjAXYa4_n9`MuL6cN#ho@+nh8APZQCQMPvV1{L1_5^R%?^xvu=QaWP^E zl5H*JV4S?v{h~R}Exh+Q&r%FNR6OaZXKS%wz`GJuKU6Gx`GP21yj905Cy3eA>h_A) zOSXvQwEHhKWs{$V+6So^KsQzRGH0LEA2bbZRy$?2%j~Lp7d{mr6nfx)c0bj-V3V29 zf3bZ`bn2tqr?EP|BgQ4nN6)q`uIsbkK3IN^ywY>+9OyGT&!8|4E`{&+kh=5TX*N>v z3UR~qQS;+?;7~9ff7@@u)OCioNM#sjKXdNuhSa0haqsbW>0jnsIrvndKOuIp6Rm|W z@P~vFky8U?orG1CO3;v+iJh967hPRTC-TmbYJ!~|5=gz^mcT9u#PTLT; z!@F<2c_s<9`Ovo!;)*NSGL6X`vV@={yR3I7BwQc1(;aHqYtIxO>5Fe20pb^yy}5fh z*?f2zHiCi#xX80m!VFWEv8w8{h`2EEL3VPSLIZy*6kC*tWoeqvi_D&8}Kx2NAEOt9e{Rm*$@qn zOo0ZkeaBN|C-8fjY^IaeA*FZ7e?xY;IXPi3@bnmUPlK^c>>! zymIsc8uapR^a>vIik|f60_fF(=`}*Y3CX~(!k`_+$P7I$tu#QtcJQqA;?W^Sa5okn zQK+mXRMiKn6%5shg6hSB1Cy0shE-6BRZNRj(unmOFvcGfZJc~;d?M_c0lcDU^*5lX zWTUQu(-N31%uG!IZ3K=-a5)052k<-bzUfI}xATKb%WuX0C)45oz~2K-KST5-dp;AJIT}p#T>~`5?%Dd!Y@);b`+`mDUe~ z*R0C_%RvJBOKhXjyb{xEnceWi)doG4U3WuXZ;qJNwt52JAG+|UNEpVCYBqt)R% zztZ@R4PJRD7$IiiU(KJ{hmfTa69vS==)ZPh{2<&b84B7ZmDq!En9W}K*Tk$0M!&OH zIos-aeS{w4mX6$I&*eYozXc{Fy#+zn$Ngsi?7~1;66qn9g6M(4i-UlF6Uv4MtwUi@ z7!6`#Vx2uigixk0SrN0wz%g+-T;a$tEH-EXHVK)~d=Q1-A<_=^c>ono$5zIUK~@A+ z3=`k|h`fDfx6B5M>uWmVDE=dBYfyroL7p|9_QC)>@|>!#Eg{s%+!C9srHnI~8gq;D zrYVDveKJn^Qdh>lw7VjPiz?3wrhBKU{T)40C;OaN%*ge`M7jtFE*)muWujmMYgj>) z;H#3LI86elqAlSHE}WF+a{7`@f>{hys6`Z{Y%9pzwmh)F;xeYXAKa;&61K(bi$yF` z$$nd+Zo7J!o{XzJmWgg9w<|2I65rgTVlYVgbEc~=HHYsK0$)bj&Cesw!r`9S6|L&q zuts-O>t?~WBECvgWe%y>^aR!^=|M>EsnFMC%7o%|OM?FJO_zs6Zwd9W9(R_W-$doJL*@7YJ^a1wOAKLBbh-wrbID83zZY64J0E#hEv+z@M%2M;5 zqvqG97SyK}yF@Kv^IALWxf7kQ)ck!ys zY6%dp=GO3I{L6hxS!d*D-aj*lCHvbPq^%%1=e-Ry=y6z!56~L);~dOi3stKRJSSUU z|~22o8sQ`W_}r^Bx`73{jMDp0~9K5AUq6EdaGjA#o<3)fMr~ zC7#=+$wwg+(??_XAi?R5FpSLMge9b3W($FX2j@jPtE~U0y7P{w`hWlbaU6TgULAX9 z3#F_?WE7Didy|w|*?VVa9-Cui?~IgeiWEsm5-O>r>HB=0gEZdnZ=dh?_xs&$zyGS+ zx%JoUx}Mi~T=&P)tS7IlYehGbx5ME;o=1g^Hf_r>wWf9$?|KbJ5%E6=y8(5 zRF!NCyWaK`7IAsQmRv}9{PI!pwyE>SJ7KO z92xx?IB&iey~d*vLZVs+*yB2h@P)vu@m1@ihzlMsbm+Q&Wwnd)sL1*00Q#F=rK~zT&Zza!F z;%%!eG3t0Cmex6W=xHgSgvKwA>DBlc zcoi5~Il<_kk^dkQuN;)MgcPw^Yb!MgN^lCxaf&HpA&o%y0~9~N5 zVdsAU>i7gq$JT||t&ZQNY}^+BDI3dKtF}8fBW}#OE4aeb;11ljJ;IW@6TyrowdLbAI1L?T z&+!Zi=kegHHtxo)Ua#?JJq1IBO&i`V-!0HS=L~+d_*g34M`8Ma`{=A#3Y*FF*AGiC zg^!+p^SyO_Bj(}58||=m%h@k)L;ZYXU(%zzTBuU9VFb;gSpiWc=kA0J<2F=4d2W;A(<<%$V$cZQ8^VF^!K zS(0ojKC5SCXU3&*K#u=?&@UyoeUQ_A|hxfOvJ zCz7P*xTr>X?W3I|JnSXC(n*Ew*v)bA?L^XF{sAEKxgd$Lh2J0V&VSOI8keAV2jc%#y(!87y!2H) z{otkFT6SSNo*ys$@3WQ? zJHr6o9L)y*8&YI;d6Z~bQcScpOZSjG>~+$NZUx>m-s5}rD9$E zBMw9|n3hL5UMaJ=Bo_w_uFYt@XO_lyUz??!Ev|RkTkrf^$K&^ji$TcGWv1&Sq2Rt& zhAIp0NFp^hg{JDcyQz7q^#e^3{sX8FPV1U-ii@LCswvh}jCITOXajBMZ_U!}kE+!l zPm`IszkZtJ)xJ*F+UPRY7`c3iO|HpxctGNSuhxOjW^-fyXFMEDz1{mC-?+SaNal*^ z_`GjA!IcSu7ax32Z+cR+pZ~%JjI(YIbGCnPT^ppI^7Y1Boc2RZ2eWqi%y1VYy}wV4 z0Nl-qZh#>jzq6P0kzxwF$ust1%8#b`v#3d;+L`F%D+dhll-^Z{w z=HNPEUd)%KurpB#L#ZZaN7iU_L)8VEEWM6@)>jDAjo5FQbP64|3u(dR68%raYs|81 zz2wMsUA5;$vMS{Ei#b`aC8Y?1UAP;8`zMm2GnF`a$IBv=Y5+eGJ9cm>0|G`U8zu;w z#c_lMQZpfGnJ`vZfT>JR4<-^&EzX7n+TB0K1!7b57s5_@_+Zh8mv>@K1q7XrXef)zz`Gy2d8`Gl*u)@;4ptW*5ef?=P%uc;Ro?;BP*J zzuVYY|8nKi_s?J9w>}*e&F%=aA{Iytt(;BqWJ8{cTdbU`@I^8hO)XmH9Q9*aRc8C7 zb|SAQLGc(mKeXB^Hi_G~ZwyCbVIWLhlGqxDHnTIk*ElTtjzaHhrR+fqQ;qXKJ#Ao+gDa=Lm8lFvcR`m<-7-5#PJMD8zs zoO9*N=K>}}(cyM3V&+4RC@hD;r?nB_pF}84V-7UEn;*;w4`@rfbjcvI@J@v$nE}5; zeZ{#SlKbD!wzl0+HL{&w(772BR5&~}IY#`W@?Dr71`~kqvVH&FC#6)?Z(Wxc%XXe z!VRci;uXSxlB(EPp?Nl&vKX6vE>cFA{eTz;5;M#KuEAow9LiE0PWg~_9Kvzea!CsF z2nq72$v`Y_X)#_!SzaItmlESsm*@AW5s;J

>K%m4|fUW|~50t_s_qfb`$qbzAyx z?W3Z{l|+rzL|qLa@wd4)B*pNk6u;Umsi!9CS&o%@OF8I6I`2!y+am9?vi|ju&O6BF zz?F0I=TFOfn97GZ$cH-}l2t`H?|3qcO-TJ&Kelc8^m;gz7<^am|(Qs=hC`OPgsF+(bCe=Dy73Jqst15 z)V|(^m3ISSw*#shqH3F8{2}bl>bO`m;9k=2>FMEJFaS~8(0x~n?)rH7`+5Xo<=tQp z5L7V)*xDh!kcVBkUwFigp@`a1AnlH-dlZY&cE`rWUGq-fA#5kLj00_V3Q%}=JWjg_ zAls1{0jWUXjm2xDf=W=R?7X0Ye1C9DnV;YJp!m*1boXOO+ugsV?XJ5w55U^(9qr&k z^v=YVynFEJ%ZHC1{xP}y|MHJOP#*XvLHW<5IP&zL*xlS3aYT0rKf!iicxJPvgQbHW zk|E$4wNmxTT7F&8z2Y*1CEF!zv&+K{P28JoK~k%94{PKOCzkZkK@t* z#FH;28{VkMAD?8a<5Rq$6RrPEz~qX4zXA`Xx;VMDjZw(&wiEtt4tk=Ma1zH$XPX<&$7+5hwC*`m_oj>Lo65maIkSs_Hc{Wl zn*&i1#gD35>JxHY8JUK8(>BTK`-dy?5hNq7o|z$+nMR-WZ}J&>vZ`2ZR7x|LR50A~ zv5Z$ggS;mF^n9Og@}!jy>4J^`E>W(kXfP|d(>_AAm|^cu7;2^%uD>xGMwq$2$A+u0 z*xZ`M{gIhzxtq)cGxfKIxoDY%VvBRb<@M}VgvWxWVpJfr8LeKK%vcKUka-L!E-_Zu z?m5=E(;%YfXBgDZfoB%O3sAx`@(3|;=w&HnvnC>yye9d9Z?g9ouOcFzwpdZ=y(^z; zBpoCZQ4QkoLKJX}dw#*|I-O6=Pp$5olx#1Mk&_=!BxKqeQY;ejXwzILJ0kJHX~ohF zuhJ8KSpeB$u~4^c*z8SQjAkX8D`G;ymsb?=50&Os-v{h&?T1pAU)4{UoDqymEb%vK zm`}cp4j~WeXLXn?l*wsYHCdcb3V4Kbx0t2SgX{R)^<@$J%oF$_d+mG1f~@@NzP!1$ zx+YkN;8Bu2ue?XXvC58q*x*7p%Nv!jQdW`r3q4#ZLRNQHbsfR1(81AIg|lJG)lIxz z>TQe1J)yW#vBQkC=gA)my}!=su$+HuhU0kdedYa63fx>!iaO2YcJ6Tr@(0R4jMG}l z>oT7eS#f)$OnaP4PcET+J=(%|!ac#^ZZx|SHDeeDu7BINoN3pOo6-3!H|88z8qJI+ znV%A~zy3HU=xQ%y1y8Qh;A@VOmT{>2&|TXX<-x{HW*<~fiF=RS($iVCTc>lWED+_r zOpCyUuhc$t-g542{rI}&P1a%Nw-(0=*MuF=0{q4uGR`w!-*F;vzrDM!eg4~rM>aRU ztxtKp`Sx+fcW-NxiFhJwqAaEEtC1-Uwy%sLew*6wANy{8hmoQb zKEG)HOgrL>OM`+psCM8c&yduG;c==dC{oXx5nj~Ui$}j$ns}j-hwLDdSw%6#bcUVG zTIRM0S7)U9lo?&POCW!MSqO>DYKY804!K897u)n|phAWQ;pVHNLlQIQA(4-|nCKLV zg;LGQs#gQ}B`**iR5OPge#YhD={%xI+o%S2&RP*H!jZ`;(pS!KM4yqtvRG3mQ<9PeDI(6Uc9O|aBIx)+PJb{@(OoUs9HyzN)?x$f?k5r>0l%`lZ50j} z;<05QiRg+uNeW$H{Gtl@%U_FD6mlCok3=YVO`he^E*Q`i@5a+r>pUVMhbzz_fjUJP zfP3(kW?Zeq0U7F-sAEg_yJ-~N83{WHw2%RNNP}>>$`f_)j*R7M;UyUcrxF^OR+mhc zpihxG%o%!9_J@5abK?{YL+eS^Hh(a(bBHcRD1{M<#fs+&D0imb$=-YO!ws{D<+14p zC&Tn|v*DeCp_4i+9a<%q=5y(kXgVLFbH*xSUNKu{C+(;8TVdxPEVF$@lX)+#zO?9v zOr$cp+|fqk@#N;@dVS+yxwA+A_P+*Kg2jtkYC=U_hFuwr!~{uQ%HaN>H8qcGtE z)RgIooJ30ch4bdA8dmKb5tOG$#C%v+G*yl?v`4>MQ|T*OkZ$>OchDuKCgX+X3%SR# zj*e{-Fq`3@EvJ znf=4!lpl}kCZJsas#YDvU9dQX76yMeMz}-v@mJ%lSTVJpRl1-MN=`O*mw?>ckqi>n zEGS@{725>&+ooMC?b;YLDZvKQBOT|a?9_ONv;D8YS^JLi-OKZc;xHCC%0GG)rXzdx znEv1x+OYrZU?1(kc!g=h6|!G82EUIHa7nDqO|kPl9)HvS0AII#sr+wk6NYxNYhkdd zJ7VF#@$RR^>G^S-t6p3EHUW$VYgFsK#Y6&~6BtlIGby0xvCjctn9!9bs2RE1gq48* z6AU-=EJH9K!2bdvJJ$MnuPIkVeIU&r2YIE1v9n3Kq(I$k0C{kS0DK zV?dpIwKB7+zM-+nr?mO+pv>OtbtbN>g@m}gn+NVv}9kHdm z+WH-VgnI%wx=4tG|PB)^Foj-lKF%(xiT+FRq| zm+|r&RC`#e?1%~3gv>?Fhyi#NV?d3iBYt{2-ETpiF%q?FFK_3ZpBc!149}YF4rXvK&I(0_@Nrzmjj}Z-$I)C> zfbrI=DI>_sfU%>93QPf4{C@E>BI)Uk4!}elc@|Ap$uJ)yjo;yiAZ75HkHS$vDk4Z^ zX66(25u3u`6nvC8$#TR<9=K+JdS0rniCtm19dRX3qEp+1dAf67FHfd>Oqfj;`~B0r z*~o69#mvC!(~H{%)Vl;ec6Ka0sV@sM+&_=1y!VouDa<85Y7fT6KN-yaG%hYZ$g=R! z!Df;6b|`HopQxkK^{nOH2$wnI$$K_A3Oa!>jdPMC zB1qEWL}jHFrwAOh4=t&xuDKvp8fhETP}`d8E^(@bUoXMvdfCn1K9gJh-1|F+?#m92 zg8gp?HxbF*3G4}kl}BuEUdw~$7zlb}!5RjFj{f{lK8V(Du|9~}H2shdVj!iaqb3!` z2l4KvyrR^7!j?o)i*Co4_Q)gGWiGk~tj)(z)QQHbZNP1+;nHWVzk z1)fl47lKWVXi_q{Z-;SEEZ&u{zRb|ioo zm5!mgEI1tsfe+&C!I6Uik|^|EsU!bnXr7JzBfT*+ppkB;bFEATrQY*N3$NM8cFgD3)@d3tV4ArR*)9^pyYOk9e2 zluf_KR5E?I^ms)i@Fk%hQ%}S`m;#(~?si(hpz)${2+VO2=6AG{$J~jFn!z7Ou$z#| zpG-!_4?)mVoTrQs9Z}d%xY)p{=|Q8D5)p()>4(csBs=dfS{8UTEQ1R6EP;Rtcp1Xj z!wZ~=05F{^RSJ1O#r77brrzU@=T>Ph-TY8*`wvE{hdn>={4mf_)=F{?Ic=|9HNnuHP(M# zt`tM03s&{Sn>tnxJhjKqjK)Q%lH^D1w*k?PN+W8h2mx@C0-lDM(JoSoalW4fS6 zH|;f%e6O!=DHp|2_U2X}|G?G)7`lP@dH*Y(MIPIl+F3-{aJrYrBLpQ(9HfKsc&_;#=wQGJL^R{z`%#^v!XL&?m1w$o?0$yr4N z!BatEprQ^54T_S!DjvH}BSPkk7w;L*YtfK7f@*py$PCF^oVloIv_QoH`>@iQ+PVu; zLXDu^J=<%B3#qR}uA+E%d3vY$ZUSF_ZG*@tR{(}*S60~m4X!y6*i z&3i~dUf}37$pq#IP7%3l;x8|0G&oc4*IQWNbO8RSrG{i{-!wM*XKwB2LgF|fsG0cl zu4D-Z=lVMtm3sQhk<*&ZlBu;Fn&2INgKzC}<8=Q}2&w*zuAj~Ft}^fJ@W>;}MRt*) zuT1IcyffoQ)2(u^%r(m#HlGx=Ouk~n_1oKivm+2^ew3af&NKk`{nE2d>l+;~#KzjY z;X;ZT1;p3Sc!o^A-){2G_@}?Uo3)9+LoS+Ht;nt_;Ot>poe54L>rlW=3k#hMjR8>} zL>FLdZh=ebf`O;z9)`E_Ss25|WS&LaJh0_Fu0A6*87p(B_*o1CKRq3MX@)L8QklA! zGycX(HCNd2rD9sQlW>EAgwyU#_mfRRWcQ?+o1BK@h?z|oBw2aW_R4vw*)gR!@g%|0 z%&tnurMc00yvP=P@0oPzDjidbp5gT_lI#%aUGMPAf>bQjYzb_O07RiU-+F=~ub`0F zQb1?HIy3{_O}s}wt`*%;?%Io9=DoMFRLXD$6<(CpPWLmL5aW*uMqY*gL0-TT(BHJf z`Y$cj^K^V>Ek>_WJDZH;E|qrS94%wLP5oP5SOYUJNEec=d7&>>Y+#9JUyWlfs&Q(( zbb!z((M447*+EA87o-ighe2M@GjRG~?rnV4Y`bIt9Uw7C z4Hteb(Lu?ulNz@30%UEuyJW!Tg}+G(*xz6~z>>s2b%0wM{1dL*B|68iC3@}h08N$6 z`MN7wyxkAoS}s3meX%J@jL&Q6;|CUJ-kc#$F%kQt;}WEa;}gN+j7L0~BqbdSFn5U} z%8GJE6=4=E#)3alhHkh$;d^%1P;wsC=QvtG2ZAg`Z4A=#t8;}_K9kDE}7Q89>u)PRwUT@et$_@-1?dsaQm zmS#Sjb*1*&yif{1#(TXm>B_X_y5lj}%h3S5V%0(Kilv9;7716$&eS^<*E&3%CX;M% zp6)pF*@U%KrVm`vMXFS^dfk~C$~(MY7~&m5CBvcfk{{nxe@>;MXger%uS_BB+?xSP zcCa|xwob0PJUsmLVU};kdtM~Zw7>L>e*;axOmBeI`)~m zm@#ZF!cC!PF2tsCb}mv9EouRc!*}xzG2?K^9AU>B;d!FosqJz2Z{7$y-j+hYCiUAwASNS8jjbpwodu zmexeUTf%dWP$>^jss!xKv8^>p9zg*LklqxN(B*FUWF&YM7}ud2^z_wDn6>jEJQ`xU zn_bZSr11`npr>XC5?lu3(%{^qC7yt8j?d5l4|wuDIL{&1A?a>X9g;O*Jif6+OGijO z`HESs(p1WgnomapqJ946W_HTLUIHG95uH!20uqh_^9OjqqDs$Uwi=bb3y-P^i%_RlM2 zO$A)gOOD~!ogVlU_PjXwz_#m9f3Vh|+=uS*N&uuf-m)GMwCB|0X<_$yo9T}KKydkP z@yScA-Nxfr*O%Wc$8yaoqN3HDlAih?=-x7M6J&5H_W+K@;*2@LP~ko1?{?O+feg}O zrh$w<@c&Ts{F}AN*3t3*IC?MzcL^6Q%Oqn~fOp%+bJ^ey?q8zk*M~LP9vxC7K)=0M zXNCzOK+v$j)iJ??9Svb)25h=_!UoF=*uez+`WRv22P}3$sk+m`0&C-6UM0}2{t`UL zNse0+x&LI@^>r3WL3~4f`~1s28x}UEfo101#0%wJX@oQzZ;m$L)G*9os?s2R8EOgy zBULcaY{Xr2LxAZ}A{{*i1=-2?Y}9dj;XJ;AoMHn633+*WN)jCnWmZXjgIW<+bK^~o zB>c`wT=->tcwJjxzep=5J;TuOKuO+x@zRPLDY`UF)h=Um&mWCZs1N zB76aLs|x}XlU=FrH{hTu)lq2)tmJ_Sf#6ZLPi6yR!h7Qd5eyRc2!sPvmG+a8K<8gv zJtv-X9Dta4%sA$KSD@(-mAK6`s7fuhAk7A~(JC)^dQ=t!X9l}_4iJbm}S{YlF{;=$_xnq5JJ9ti( z7SegwEo--yCE0#!UYDP&zqq?9{Y$m-k8YLhLe~pc?3X15BZty545a0FSl~_`#(q=S zq6R1zz#Ig8Np$X|f9QO+2iCFE zUM)X#KJOMUxM>f!g%5Qmhy^V?Zu=hjDI71K=Guju-!`LWc@u7O`(NX}?hE@KinJn< zUYr5q(|;>h{tqTxu9;fo_4ZexJg&Dhnyl^MZT~jm2*cu;cRHE5S?dCaBikpspfJG! zg$WBh5*CC}g<{6;yb!4cNRF_f0OUbH0|e452nC?k#zq5Hlmk{hph5v*0kSHHjDmuE zfGYeYrSAN7t1yWe-8Fd^W?%B$&aF<#_n!9vH-fFj4%$*v>0XS$4#vD+a5Uh-s!S9n zPKs0tdcJJ#!zTy~6r}LmeG!)^cnRp?d@iSL+admULT$g4JHU-V=PslV6&?haAbq0_ z22&sm7YC{d^L4BJ_}^3*3K~KGd}_7wY(rAiyYKmrxrNCj2g&#J^mE{F++< z#{4Hc#BE=q?MdLSj{iT-tv|~8cVP0K?dbP?moHHaPA6{wLWWW?;G+;S0GIN6S2z)w zo*@N{i^Wwbgein?E{qElCLx6Y%MSsSIbnFvw!g3U`pO zS-=1FRwh2+Y|2NcXeYg({$tksw)o8;>Psu?M<(9+!Z4*Tyak#y?~BDdhxNMvhMUmq Wz0t}RJB^(w{l9`7n Date: Thu, 30 Apr 2026 13:18:30 -0700 Subject: [PATCH 3/6] small wording change --- editor/events/overview.mdx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/editor/events/overview.mdx b/editor/events/overview.mdx index 1408d94e..819b0565 100644 --- a/editor/events/overview.mdx +++ b/editor/events/overview.mdx @@ -7,11 +7,11 @@ import { YouTube } from "/snippets/youtube.mdx"; Events live within an artboard and are used to signal that something has happened. They can be fired from timelines, states, transitions, or listeners. -Rive supports several types of Events: +Rive supports three types of Events: - [Open URL Event](/editor/events/open-url-events) — Opens a URL at runtime - [Audio Event](/editor/events/audio-events) — Plays a sound -- [General Event (deprecated for runtime communication)](/editor/events/general-events) — Previously used to communicate with runtime code +- [General Event (deprecated)](/editor/events/general-events) — Previously used to communicate with runtime code ## Creating an Event @@ -34,8 +34,6 @@ Rive supports several types of Events: The Type dropdown allows you to change the Event type between Audio, URL, and General. ![Image](https://ucarecdn.com/9621c007-de2e-428c-95d7-837615a37caa/) - - Each event type has a different set of properties. Each Event type has its own set of properties. From ce0dd007c0c1fa663473be835a37ee0139827f5a Mon Sep 17 00:00:00 2001 From: Lance Date: Thu, 30 Apr 2026 13:42:13 -0700 Subject: [PATCH 4/6] Change to events at runtime --- editor/events/general-events.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/events/general-events.mdx b/editor/events/general-events.mdx index 9092c353..5b25ceb6 100644 --- a/editor/events/general-events.mdx +++ b/editor/events/general-events.mdx @@ -1,5 +1,5 @@ --- -title: 'General Events' +title: 'Events at Runtime' description: "Using events to communicate with runtime code (deprecated)" noindex: true; --- From a99e5c2eebcac4396b22289eb1392362fa90cc10 Mon Sep 17 00:00:00 2001 From: Lance Date: Mon, 4 May 2026 12:11:53 -0700 Subject: [PATCH 5/6] wording change --- editor/events/general-events.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/events/general-events.mdx b/editor/events/general-events.mdx index 5b25ceb6..178a588c 100644 --- a/editor/events/general-events.mdx +++ b/editor/events/general-events.mdx @@ -31,7 +31,7 @@ To add a new property, click the `+` button next to Properties. ![Add New Property](https://ucarecdn.com/d4cd3b8f-3765-4c28-9204-e5daf7fff0d8/) -Give your property a clear name, then choose the type of value it represents, such as Number, Boolean, or String. +Give your property a clear name, then choose the type of value it represents, which can be a Number, Boolean, or String. ![Rename and select input](https://ucarecdn.com/73d05fb1-7c9c-4c9c-a17c-51781ef30d0e/) From b4278b3043dad8367cb4e7896302e9a75a8defd6 Mon Sep 17 00:00:00 2001 From: Lance Date: Fri, 8 May 2026 14:13:45 -0700 Subject: [PATCH 6/6] Add warning to Open URL Events --- editor/events/open-url-events.mdx | 14 ++++++++++++++ editor/events/overview.mdx | 26 +++++++++++++------------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/editor/events/open-url-events.mdx b/editor/events/open-url-events.mdx index cb19c8a3..eee270a3 100644 --- a/editor/events/open-url-events.mdx +++ b/editor/events/open-url-events.mdx @@ -4,6 +4,20 @@ description: "Using events to open URLs at runtime" noindex: true; --- + + Open URL Events are not supported on Apple or Android runtimes. + + + + For security reasons, Open URL Events are disabled by default in web runtimes. + + To enable them, set `automaticallyHandleEvents` to `true`. + + + + For security reasons, Open URL Events are disabled in share links and on the Rive Marketplace. + + For general information about adding, creating, and signaling events, see [Rive Events](/editor/events/overview). ### URL Properties diff --git a/editor/events/overview.mdx b/editor/events/overview.mdx index 819b0565..32954cac 100644 --- a/editor/events/overview.mdx +++ b/editor/events/overview.mdx @@ -7,7 +7,7 @@ import { YouTube } from "/snippets/youtube.mdx"; Events live within an artboard and are used to signal that something has happened. They can be fired from timelines, states, transitions, or listeners. -Rive supports three types of Events: +Rive supports three types of events: - [Open URL Event](/editor/events/open-url-events) — Opens a URL at runtime - [Audio Event](/editor/events/audio-events) — Plays a sound @@ -17,26 +17,26 @@ Rive supports three types of Events: - Use the Events tool located in the Toolbar and click anywhere on the artboard. + Use the Events tool located in the toolbar and click anywhere on the artboard. ![Adding a new event](https://ucarecdn.com/4ed6c563-4c59-42c8-b40c-f502d5a8e1a4/) - You'll notice that the Event is displayed on the artboard and in the Hierarchy. + You'll notice that the event is displayed on the artboard and in the Hierarchy. Give your event a name so it’s easy to identify and reference. You can rename it using the **Name** field, or by double-clicking the name directly on the artboard. - ![Renaming an Event](https://ucarecdn.com/4558fb61-4649-4210-9ec6-c828c48ab2b2/) + ![Renaming an event](https://ucarecdn.com/4558fb61-4649-4210-9ec6-c828c48ab2b2/) - The Type dropdown allows you to change the Event type between Audio, URL, and General. + The Type dropdown allows you to change the event type between Audio, URL, and General. ![Image](https://ucarecdn.com/9621c007-de2e-428c-95d7-837615a37caa/) - Each Event type has its own set of properties. + Each event type has its own set of properties. For more information on the specific event types, see [Open URL Events](/editor/events/open-url-events), [Audio Events](/editor/events/audio-events), and [General Events (deprecated)](/editor/events/general-events). @@ -45,27 +45,27 @@ Rive supports three types of Events: ## Signaling an Event -We can signal an Event in four ways: from a timeline, a listener, a state, or a transition. +We can signal an event in four ways: from a timeline, a listener, a state, or a transition. ### Timeline -Signaling an Event from the timeline lets you control the exact moment in an animation when the Event fires. +Signaling an event from the timeline lets you control the exact moment in an animation when the event fires. -First, select the timeline you want to add the Event to. Then use the **Report Event** button in the Inspector. +First, select the timeline you want to add the event to. Then use the **Report Event** button in the Inspector. ![Keying an Event on the timeline](https://ucarecdn.com/bd8d36f9-9cd1-4eec-9c37-85d4a0a19643/) ### Transition & State -You can report an event on a Transition or a State. To report an event, select the desired State or Transition and use the `+` button next to the Events section in the Inspector. +You can report an event on a transition or a state. To report an event, select the desired state or transition and use the `+` button next to the Events section in the Inspector. -![Signaling an Event via State or Transition](https://ucarecdn.com/d1a63666-0cce-408f-9364-826eed66b241/) +![Signaling an event via state or transition](https://ucarecdn.com/d1a63666-0cce-408f-9364-826eed66b241/) -Now that we've selected the Event, we can decide whether it is signaled at the start or end of the Transition or State. +Now that we've selected the event, we can decide whether it is signaled at the start or end of the transition or state. ### Listeners With your [Listener](/editor/state-machine/listeners) selected, click the `+` below the State Machine Graph, and select **Report Event**. -![Trigger an Event with a listener](/images/editor/events/trigger-events-with-listeners.gif) +![Trigger an event with a listener](/images/editor/events/trigger-events-with-listeners.gif)