From c62d37483bfc187ed2c57c7ecef0e3b96d689ab9 Mon Sep 17 00:00:00 2001 From: howardyoo Date: Sun, 22 Sep 2024 00:45:00 -0500 Subject: [PATCH] otel extra links for traces --- README.md | 23 +++++++++ .../CHANGELOG.rst | 11 ++++ .../plugins/otel.py | 4 +- .../plugins/otel_extra_link.py | 47 ++++++++++++++++++ .../airflow_provider_opentelemetry/util.py | 24 +++++++++ airflow_provider_opentelemetry/setup.py | 2 +- images/external_link.png | Bin 0 -> 71493 bytes 7 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel_extra_link.py create mode 100644 images/external_link.png diff --git a/README.md b/README.md index c9d7eb2..2fc83ba 100644 --- a/README.md +++ b/README.md @@ -171,3 +171,26 @@ You can use timing to record delta time file_name = 'myfile.txt' otel_hook.timing("my.last_duration", last_duration, tags={"file_name": file_name}) ``` + +#### External Links + +##### Traces + +This provide can provide external links in the trace instance view. +You may need to define the following env. variable to do so. + +``` +AIRFLOW_OTEL_TRACE_LINK='https://ui.honeycomb.io/demo/environments/otel-workshop/trace?trace_id={trace_id}&span={span_id}&trace_start_ts={start_date_ts}' +``` + +When the environment is defined, you will be able to see the following button named `OTEL Trace Link` shown under `Extra LInks` section. +![external_link](./images/external_link.png) + +The above example is when you are using [Honeycomb](https://honeycomb.io) as the OTEL backend to ingest the traces. + +The following attributes are supported in the template string: +- trace_id : denotes the current trace_id of the dag run +- span_id : denotes the current span_id of the task instance +- start_date_ts : start date (minus 10 sec) in UNIX EPOCH seconds +- end_date_ts : end date (plus 10 sec) in UNIX EPOCH seconds + diff --git a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/CHANGELOG.rst b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/CHANGELOG.rst index 23caa23..3cb51b8 100644 --- a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/CHANGELOG.rst +++ b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/CHANGELOG.rst @@ -27,6 +27,17 @@ Changelog --------- +1.0.3 +..... + +Added external link where a button will appear in task run view that may redirect to the external OTEL backend +using provided URL. + +1.0.2 +..... + +Bug fixes + 1.0.0 ..... diff --git a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel.py b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel.py index fc1cae3..7e55c8c 100644 --- a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel.py +++ b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel.py @@ -19,7 +19,7 @@ from airflow.plugins_manager import AirflowPlugin from airflow_provider_opentelemetry.hooks.otel import is_listener_enabled, is_otel_traces_enabled from airflow_provider_opentelemetry.plugins.otel_listener import get_opentelemetry_listener - +from airflow_provider_opentelemetry.plugins.otel_extra_link import get_opentelemetry_links class OtelPlugin(AirflowPlugin): """provide listener for OpenTelemetry.""" @@ -27,3 +27,5 @@ class OtelPlugin(AirflowPlugin): name = "OtelPlugin" if is_listener_enabled() and not is_otel_traces_enabled(): listeners = [get_opentelemetry_listener()] + + global_operator_extra_links = get_opentelemetry_links() \ No newline at end of file diff --git a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel_extra_link.py b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel_extra_link.py new file mode 100644 index 0000000..970d98e --- /dev/null +++ b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/plugins/otel_extra_link.py @@ -0,0 +1,47 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +from __future__ import annotations + +import os +from airflow.models.baseoperator import BaseOperator +from airflow.models.baseoperatorlink import BaseOperatorLink +from airflow.models.taskinstancekey import TaskInstanceKey +from airflow.models.dagrun import DagRun +from airflow_provider_opentelemetry.util import gen_trace_id +from airflow_provider_opentelemetry.util import gen_span_id_from_ti_key + +OTEL_TRACE_LINK = 'AIRFLOW_OTEL_TRACE_LINK' + +def get_opentelemetry_links(): + links = [] + link_template = os.getenv(OTEL_TRACE_LINK, None) + if link_template is not None: + links.append(OtelTraceLink()) + return links + +class OtelTraceLink(BaseOperatorLink): + name = "OTEL Trace Link" + + def get_link(self, operator: BaseOperator, *, ti_key: TaskInstanceKey): + dag_run = DagRun.find(dag_id=ti_key.dag_id, run_id=ti_key.run_id)[0] + if dag_run is not None: + trace_id = gen_trace_id(dag_run) + span_id = gen_span_id_from_ti_key(ti_key) + start_date_ts = int(dag_run.start_date.timestamp()) - 10 + end_date_ts = int(dag_run.end_date.timestamp()) + 10 + template = os.getenv(OTEL_TRACE_LINK) + return template.format(trace_id=trace_id, span_id=span_id, start_date_ts=start_date_ts, end_date_ts=end_date_ts) \ No newline at end of file diff --git a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/util.py b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/util.py index f8eb30b..f117ad7 100644 --- a/airflow_provider_opentelemetry/airflow_provider_opentelemetry/util.py +++ b/airflow_provider_opentelemetry/airflow_provider_opentelemetry/util.py @@ -19,6 +19,7 @@ from typing import TYPE_CHECKING from airflow.utils.hashlib_wrapper import md5 from airflow.utils.state import TaskInstanceState +from airflow.models.taskinstancekey import TaskInstanceKey from airflow import __version__ as airflow_version if TYPE_CHECKING: @@ -52,6 +53,29 @@ def gen_trace_id(dag_run: DagRun, as_int: bool = False) -> str | int: as_int, ) +def gen_trace_id_from_ti_key(ti_key: TaskInstanceKey, start_date, as_int: bool = False) -> str | int: + if start_date is None: + return NO_TRACE_ID + + return _gen_id( + [ti_key.dag_id, str(ti_key.run_id), str(start_date.timestamp())], + as_int, + ) + +def gen_span_id_from_ti_key(ti_key: TaskInstanceKey, as_int: bool = False) -> str | int: + from packaging.version import parse + """Generate span id from the task instance.""" + # fix: issue #1 + if parse(parse(airflow_version).base_version) == parse("2.10.0"): + try_number = ti_key.try_number - 1 + else: + try_number = ti_key.try_number + return _gen_id( + [ti_key.dag_id, ti_key.run_id, ti_key.task_id, str(try_number)], + as_int, + SPAN_ID, + ) + def gen_dag_span_id(dag_run: DagRun, as_int: bool = False) -> str | int: """Generate dag's root span id using dag_run.""" if dag_run.start_date is None: diff --git a/airflow_provider_opentelemetry/setup.py b/airflow_provider_opentelemetry/setup.py index 274b915..a5d1057 100644 --- a/airflow_provider_opentelemetry/setup.py +++ b/airflow_provider_opentelemetry/setup.py @@ -2,7 +2,7 @@ setup( name='airflow-provider-opentelemetry', - version='1.0.2', + version='1.0.3', description='Opentelemetry provider for Airflow', long_description='Opentelemetry provider to produce Spans, Metrics within the DAG code', long_description_content_type='text/markdown', diff --git a/images/external_link.png b/images/external_link.png new file mode 100644 index 0000000000000000000000000000000000000000..787b6fb11d043b77306876cee8e2950245fba110 GIT binary patch literal 71493 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

S-P2EYwB@lJ(uEYkbrLpwgehG)8AI7lCS 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�i~8>HcN)~lOXtkPW;2Ob2E13hen_6& zX^XCprdwBAlrcD)XP%^fUT+Vy6~73h>c?il4>9>xah%R_((;?vcFZpcLDEv2lF|ul zKnFotJiJ+0DBtV8UT2|GQL}z=QVjxV`#W1EDrfVf!QKv%G<-QzQ`O=OljkIKoAg>S z5ii*#N)tkY5sZGkAfPj5(1^S0MGd~c|J1JTJzOkQKvxzE7~qF|&JIwsg<^ zni#V5XJAFZ9_9_9PQz$z&YUjFf@xgqJ9_a`d3m&esTx6>A98yei1}%Dw|!VH=kra) zqne(sH(O3bd-umU766o?p#X`RyP(-#%7MH$5*f}AL@c3ocf-e9XsDEw#J(Zx^c}by zvD?9R3k^W`KyiEVCX3n?Z9k&I{q)(*H%ymNiKYN@GRwkbU2pK}gl`(ld7wvmGZK=X z0pJINX?hP=XvxTkJ`QHO|w|Ti1@AgF$ zPWO}Pp6`X%V6R~6?D5%amEcZB6uLLAeB)I%BdKiug2p(PK8ws~gj-=_P|HRTNR;h) z6RE|ju2<_-%YlDilhQCAz7dZ9Rao8SeW=!`8CchH(z3LvNyc6Ub^m~+$n6TZAC*O~ zh5mE-L83zvrB{csH^#cO_5KjaO1qOvZ(I?F6oYKVH~YfRpDN=*l+RL#M9?d*(kmwN zoNvT|!t+WE+^0v59wqt+bcgXn(H67gR~gg7V#F+JF21%~Ei4VkCRXS0>Dxua>@v&* zU?Zy?>}vmfPx}(*LEj2>4X`&V_n1ItCJ8V0`LcbYlvx{w&}{F17@AZlDD({P3ogno zvWVuzGMD+8Po{P+?!SCtgS;k2I>Sp^pItPN#s3fk=;%0(UF>5W*o6R@M@V?rI1rK84SETi#@n3Is<{*CVXih6%maK2?slVjQm zuFfrZHgT%O^m|*@i03aX*_kpYV)6^zW0$LmWOOEb| zyJ4@Ry7W=g-xQI=!OMW(8kC{ytIQfy01=}%SDrZFqig!fZ&hNB69rL^i)*Mc+8GLG ziN7_EkRM)|zCHPn8$@NLimNHSkOXdRjEFdA95cbvuj-g`TJx>E|Kf+oYPyuO-gi}W zQqHtgSh3|yQCFT*$>G4pcTuw!+L-&n9T9i2m{Sh{cS1C^5i_I_OH!zF`) zx9)z8rvbL85t0)Ndnf2Ybc|U9lEQugHOb3>#f!DnLwu~(c{+k;OrumK*go$yESfzf!1SiFx77q8>kACn| z%cMC*KnxLgb!PsJOL<=TqPlT2uBB8azOu{7fyGFp>l?Qk&sURpwKG~y^ljwLNEd=U z3HYnx4d!7q%UXpC$wJ@x;ud#F(p=N9bZWU(IE+}1+4l=kFRm_V$mgty_pd*YHe7Zg zF=hR=i+V9E1@+?cWY=T9qY2wP1e#T4`H*N|J_rUM_j%$4xfk7z~g7}A5Fk$|38$?f!b@bH78RY8EliA&- zHFr#j26P)IM^bMoUzF+&t{*>F=zS>oz89R2IRM@9TAw1pv?GjuU?kU3*X1lC2#?u* z0xk8fmHL1s9Eh_+a6-F;49h$v_CjTk2eas$o-GW6wKXm=YOh#3F}!em&jN9x_`=Q;M{L=t|whKQ>tr2rOlcRen8A7 z7^2K3_;v%8xEc=4m`X>>S~~*OOMOsG{BwUG{Qx?k+A65zYwLjDra?=&5c6mvANyVL zwtkhNaFwUm_XGzH8?S)G>gHc+FzdZ(YJ3)&6NVO%iT2?(joGEWaJY>r-Jxm?@ zVntyhDuUtYl}aX-F5_M_alne}+n;`|n7PC9zCN>d5I0NngMG$Oiii`DrMNDZM-98a zRRn3K&nTn5nTm1nPJ<@mpk&}NL296@h9epy57F9`$qS?Ja?k+_AjSUQ3ReR`@$@n; zJF~Amh7%TboA}{y{;>LgVFMr>Q(IVd*S|SIr>G$DeomMOd-#dW~xy z<=}d3XtgOOf#<-<3MBwa2sZWed~fJLn_irLK0_!f3PE~%!s7C!J5fpae|*13LvHyU zIyQ8Ga`Ao`+Jb10k;Bzx#l`k}*yMXoQm*mbngc>tnGf)|2a1+zg9PJ)fPpXeLZ2dX z>Xr53$w+oxuHZV)1v#(7o8i>)gI+4YMB5xO`%sh4q^95Z>AJMiy~MlZd;1QyZt*VS z)x!=>3^%gTm+iNiH|MuyA~;dn9ItCoYrIsble#V9G87|03HuLeF@koET^QNia#9i& zuqcGz6zjhVkHfU8bHo>bzHMdXo-TwWQcTS6=w|0ia%8uMR!DJlkR@4$Nn>gQs=m>n zj{fOZX;UKk34`+dBY%7^PPa*f*Ks6M@p}5KOo*ckKv*T9j%0$AsVPFQSx1rlz)7$Q z)dF%Go-@sr8yK@4PV7(_H+X6FFT`( zo*Km7hcLQ$I+p|ONl5)-1kfD2sq zmp42uM7pFF@Ln!@z4^q;_V#XibW_Q@9ng_<0nZk_L__O|m+nIX_`*ohAuCK6VnB{n zSlig0l2fbL?qtcj~PIv!ms~|y8P#l<3}fTuvvr1M-Cl$%2%~D!Y3yVk`?g0 zr4s%$A|E*5C1U7CR)4?k%O85-|5aUl2XWi1_}^ZxqLl;rPn^z685$sW zaodfqH$eC_s{Wu+{Q$IEVlrTa^Uu=&=~B`gs?~1|NRl_att~4DT27(4k+QG%rfaKJ zTaW`KLLpOIpSbL|zG*ahYAWPOQ2|+c4tv2jD?rY}T2~b5#@CU2S%z!=KNINC)qUs? zC%V_tMSF<3z2YTR={t7LV!IW)!5@j@@**8$qw9LxcQjB%NUDKz%1RFiRman7g1Q>L z?ro-HfJ{P`u=jQwVZ9eQ;xRozQHSDm9l{gOXIqOUPJ_>5^z_Yxyu8}Dc4j&1!A6!Hf`=@Hx6n}?2>W$MS1eTwnPhz5F&XV2AN31)Zt-1>HnGRYCRoop zEj>@K6dsok(G=1fqwoD}csVR*Dn)wlUoo+dS&OB*zXdwTM>FYD)a_T#>e-i+Znkf& z96O^!2f#Y@#?y^dbS7_L@AEP5j!qAI{)DEx98`02l zSyW;^3vC+pYKx6>M^V$EUzv43y|%nFL$N*R7HQSUt`o*S+v^PU#1V5u)_{KXeP>hj zyt*>3hzoLPxc4>gj-KYJGOgIK1qy|`h`oLSpY|?!R;}S4H0R;uvYETTUZ&sC1*D;o zJM4^Yd?LC))z_V$sd`MLn69&5SE?ekbhf;ZZ*ppDg!B90Ht>0t= zNh9l1W%|)Hs`T6Q`K6+Ego{V1P6*#`b|#99J@xB|FI&<0yGF?QyD#>+!@O$276%j7 zzkT7KOWa*ENM0dh&B>NcuG*G(^3#7}TwHJD3Rp?)2ulD4-LS@J)MC$o&$nff^ncp> z%CIQEu3y4H5kXKGP)Y<;I;2BD8brE7hE8dQ8W0Jk6r@X9x;qsaq=xPW9lASac(?!O zJ=ekKIbY7VbDituGt98}z3;WxTEAF^UYObkd~+0#m0x!}X3Beo&3&r*dk+qTmYxxN z#$&ZA<7yTgMAxy6lvWF!tvd}=Xmio^$XVI%Rc#N)8g_#Di|IlI#%&)4_6iM9J_Ixq z)z(a#xc+sidKDHNfC*W0^1%LRiw%yhM4*X0(UqhuFH+Bfwwhx(pd#GWZtG*RR6f7% zoI#evgKls1V9Os+E+G@`w+3S9C%!+b0|$YET=>+xV_}J0BfXyS?DAH%z;XPDjgC*z z{UzVJP-E`^yF5lVN;sl9ZC2@&GArwKhLlRahVA`r!0Y4m81e)hyqlhhIRVmCFtwTG zv3^rcJ>+odJx0ZZ$Fn|rVO`IXnNA7Yx56Qofm|bp_j&Dp0^;|tUQtX55A0k!{lyKZ zINUYek+X3i z8NLNpL9Ja|XaV9jj^`zyKFCv+4a zZDxQURADKY>KNJ<~DUF2WzqBlM#>oOm{;SM!CrgRy*o`p_Z%CS)^YdI`VLK zEY}3k+%xT)6E8SQl#H-1zv6GjX^3z_YrNn;p0z*#lSaFoVSzfh@^@Xh?bpSJf4GOn zm3gC`UI)Vnl}0IodV@vBO=%K_pS-iooW)tR648t)AHN6O>;kqAVX|~SoVwA=FVQ?h zaBgIba6N2Y1uFi&KZDM!#%nb%_)A%p%OnBj6ing zVosu;s8!ocA(a&{!nt@G)tZ}tT}1E9hV8A;nu?Y_lnk}cwjZomn%YxAz}daEshD-y zFpmdVRnUUD74d>>I@e>PwEsf+eedAC!=huIrFOW%?z%N&>vN_Zy`xcVppqsoX+3;? zvQnT824>ngjgNQIu`X@SHqY9;FD4s)jSFakto%+W?yWSqMXxWIdj0dm@2(!(UZJys z3X7e(+H*jZJ`{Df4k5B7UtrGHERF=mHF1gD!TlW!6~`VaFh?x3nD2ZVr?cM84W)`V z^WybcenG9>En@xw<|(j|MJ;l`!_LhGa%NO#Mu;(-Y z5kJ8M%lppTh|OaN5gJ!l-64t;ygc=}%T=X|h{V?t;KkT_j;0z)FC4E_ulMZVe8OU2 zZFigZ3zP~8Y}3wB&NJ13o~lx)<8q|hv(+8Ns3co7Rr?}{q;Fvj_K7v+=Y2f(^js{( zCg(56XVw~BhSnJ3WPxGTev}ZMbQ7b1aY6YDG9wG>Ot3w1L5%V-LMr%yK{Wdu%Gc9vo zAr=f6l)w8_Piw~8?OoS!IzD^Sbu0FCv5u<3Nt50gVIY;j$gqeKbGG!E-#5N>tK9Lo z+!8dQYobE7ef6t_b6S5X2Ox+NuRwS%m&(uI;9U{-O;c&|fge*CEz=~NHfGa95uu!> ztL-R91x#>P?Iwxz3o?Oa?}A;Au9)5Z!QQypFB=n89JoZ*sRydfvR(I~?o+zCk$0Ii zx+iQfLU2sOv13Y?B#u!4R%^Rl4N$~*aldX@{>-n@@4yUl5oloooOVCgR)5d3>{UX~VZ<|zOi>4pBZB8As8upg65n%xaL%7`Xct(&g)6dL~C@6Q4 zziVY5gOZL;wH*|xWvtIxM+&)sINez@O4E3rhU*SAGZA;$4D@zUJxnK|*|O%nNgUVu zZ0rqKn{Yxwbm;izf4v7Kg|t*Fbn8n!JKW$x)E}#k6dN*v@c&^*z+_I)KNAF5r0U;R zE;K}VnOLn0A9{|Y6>vgDFx*((Bur+CHvU{YJtBB<_pOi?bKy$WBz)9|Nec|S^10kacwW* zURc-<9fp=SKi4b@1+4O8sDx)DJvVFHOGoz>9z&6Hsj;lj-0BDsC1JjXn0kaz->7&r00q$HSHo@8DCU%isEYN zi&t_s?EL(s=f}(Iu?}oqK4(3UJ!nlWKd1+G=i^E@gGw&7%Rrxz^}pju63aqPZ=5Ca z?#fGy*^wPeE3j^w+^E8KQ0MjoJ|n84i!bNft%UWdPbZ8QqNT#tHI{+kIFebrTuu+U zaiF0zUSSypEB+=C2r1l_e^FO#=WhQ?M!VEFpw|9)dp>d!QuJIm%mV)d;PZPVv8WJY zw*3iT)9Xl}NA+U{lqA%c9^{*tX0Jiryichhc0kQ~K z?1xGG>8ev&Z8zD4yyti=&-0Q5TsnoEyT=?HfjV9{CtfsyO8BX*PIc8qy3o!Kl7Tu! zU662b=lw|qx#1hnJX2Y1Cacte>}h%`TQMkGF?F68q1WK9T<5xC9K?pif-d|35~WeY z#3dfv5rsSr?{8p}=aUxH+gp}TG}xBxF1clcz7yURs{60BKtFytmQgWYD4Kbrl4)f0 zL)VdX1aEyvILlYS2|no+9wXKad1j_GX?8;ZCC3ttfDo ziCHX!EPcQEd$OVY*Gl$*samNWjOv+?PHZmx@fW_37pJCrQ3h?#nR};295u z9?a(p_)dG)EIPqHqo*DzXO$$L$ylw0*HFl0y7Ewd*TQt**dO-fh09${bU>qt*YVny z!~_f5shWNPg%r;jygLc?fq2MV7jBcE2`q{HUviK$^GQLP#gkKbav)MNNr!5X-wz{~ z6}dR)^7OjZ_&)soj#LnD_xMX^eO-GCrrRv1`1*|=E>0Aq^i%F<`6L2}~KW!x;Z*h-%olXhV5v)+z+3oiC!=MiR*3Rl4d(b>7i z=dD{A5h4s^q1wC^2XBXozj;uZ`=+swS6poe&V=35ryH8p2EtIU<^hD;kh*r0SFP8< z@7R%Cvub#Lv=qn#@Lks?hN;TMbsN^OlG{Gqi^V5n{h10srxm?u7&^}$gjP-h!?~us z5VN@Sv=5}{+Xd?NF=_>`ln2PCmG_0YOG>j1hM^T%4S|m+zJn{sfbQc>?7*N22*2aI z^V2Riszdjg%)QMjn_+>0m$o;v;N;0|R)r<6(H<+)XKGVwmug<5gWz^k-qs6f4o{>dQP356_g#j(A?;WMS> zM0#gU4?NS!CcTa8}{ zEO^(;wLwyLXON(P1%ZJth;PAuAfBhD@GuKD2bEB z2vNGLw5QX9=ar;X?d^T|U>*QkDv{H)j9I_zk&18ntog*#46EThl&F!Qp~Cg)BvJd6 z{(*%xncn<%%Pt=RTdHD}Hdq44pSvW9VIYZ-znUcMsd4+h(*YHGBnM^eLulZw$X1Km zkG%F&9iN|+$Cfv4jWmBvs7n@t4G8fWHhFzI6pYYd;JdpWk`GbGeCu zg;RQW``}EX9WvGES-sN}IdC5AmMX%{5aBR&d^irhMgC=07`BIszJ)k4Q~+mXc9M_B zWdGAUY;gl<E4Qy;A^0dX59|(MLqw z)t9TWe^slqfN$$ny{K^c9R9OT85)3HUU`e+`413kt{ybMwp^3mUk;D|{ML;}fNK1_ zZ|d)<-G4sLi;Sjadpex!GCSj+b<+3&kcAj8Ve)b^{?7*kNElEUCLI|5W1Wva0%Y`m z9?t*u!}$jy<02zjzW0APJXgR|l`0vf>HT+%>^bC*Y(|WJ@58^Jg#Y=I|JkwsFAhv8 zNgTS>b-ZRxYyBl>IIAjO{*Y(7RzdILl|M0PCX5f~a%&Hy+t+X|&~93Gdd;j)R5Cwz zYnT0)3vCg~97zmWI5$G;szsJb#fj~tf;f4>Tub~{03#Z~DSl>2Gg_=4)o`*a-|Q#h zKOnAauzXSRndLz}ky&fe;-TPLEn0WVytteQ+ybGxfor2^7BV)yZEbEt4348`(UeFk z^(4tCrcsL3uuKnUV+|8az<&-&N(DTh5a>!K-G_r^;BU`DIWVNqe7|E zcv=amK^kbb!l%R1znYcehBSceH$&n>#uTi@eq5`isiW5$aX`?zd<-}HM);Cp3?n{c7tK5C5Tr+dWl0+tQ6^$Wt$ndnQ16BStG zYja1Mv@JD~a=s2E->CsNt(sfEZhxTWWX;j-)8!< zJJ`llsUoXk6S3^poFCj2!5G!E@kBK%($(HM%sJE!7^r;7luaC2Y&sr`8)IR2ex72+ zGEvho@qV%0WLDJEbhfGSQ(Xc#hj?fZRqnc@&|kIyL~xu$o}$>|relRFyYXL+BUrfIJmg#u#u{oB#YM_JNd%mTjnj?hKO)ahU2dW{c8lCy5hVh|qH9|j`a;*_FMU6a&sCpujBY%?tyKkY|MP_nu~vE~vr)gN zZd((yTLjd^wq$3FDIQX*yf!ul7iVoDzXr)uU%-k5x1O?X2)aZ;r6c63U)uI8a${MJ zq*t~(nf0E(XgWJYG1D}j5k}%%#gA_h! zpQv_D0Af6Jc26kJLvsbf~AeOHsjhE%!uukjXPRq0vk+ z9dBXf8>$9Y+j60ZwBQv8WJbqGi`Ss^Tr-|;Q^Hyup_D?kCgOJ3@s}+&VA7$R;y8Cu zE$6@~poAMfUAcDTkg?|0TVx+c8|ZovXLJsCUZYkLg&Y)}SDq^EQK{z-e@>9nBrxwE zA>V44ZokbZ6?XD7E84{wYIIzFHBdw~reHku2EjEMMChGznpJm7>ToLBH4LW9%f?Wr zzn!~9tMa6TS*uRI3gaYh2f1*k9E{|IsXQ^{tmpQsd-tm|h9^76A&C}b(7#7%7_bAc zkzRO~J5?wa?DHhtJUljp%UYdFi+2$$R-gMTxBlLGmfv&m74ul7qNd?QgF3?$(X+Q- zvy5}g951b1qxc|QEniuetdVr7c9Vr6sr=&)?v_3`o6)>@JwEtMLp6_bS2APq=+Ye4 z<-~hiaW1HB_GbY(bs}Tz6Wx~rF7@N|GqB2l)LveZ-BB6Px6YDSvWw)g72tQ?_H7t$ zjDp2gH7pAn1@GPUJjtPMDsR70pkLj@zxSn*ixxLjtW{bz`~iQV?xbk3emw)_M1vXJ z-+6sNqBEv`aAwPv7A!Q7Y|HBb+AXR2%%tnHTwo>a6=$~6%Eqh1Sy0bx@8%N$UkvzG zO4%rcPb%b)j!7SNyF6a4^K)*un0-=DLEU|^7dymR-O$*J!w_M-Fgy1O$9qmKUGAo()0S zlMhE8p0^G!w?=`sQsB0JEbqg*k9QwyjUC6hi*-)Js>gpn%+u$7LHW|stuGQkZFy{vp6LwFFZMP(3MeM?v8#}|7@9g4KhROh zaMeGONY{&y_3d|Bzd2rZ^bQs_5gh_4?2dW?6F#D3d}$cDr7`oMIRga^$m-{!pC)`Q zd=uQtkBtg?z)JwIG1>ZN0BG#Y3oi|>l#MM<*xfV7e`B3^ zuvgdLDHakg#$ond%}M)0<||gK>JjM~ZD>GYB5y~Z7`jLCNUaVqLRRLcC^sBITYW;9 zG=5r&yTQW9`RaSy6%N;0n`uv#&BqDqr_Um$d39~J?#Z>27`f*v+G8VhGRB9O?@09I z3mFy$4(08sWHQ-JmAsU?<=sAIP}`|GusxiO+VyO`-gW8%PwYA{uzRE=yyunabTE;l zluEo&pOvw!(qR z*nzxk)}q*f^mp2n?6CvGcitSVs_(6v06K#ItXAxxj|oXT{Bgb81~)Ii=p1+f%KHOM z3S7P}pZ^44mita5>!SYHbw1K0Y^hJ_ZNGxHnktW0pYsIVB&!^SmJ?B9BSI}ze=$OR zRarK@e;M!DJP7$~jbwchCzZf$tS6D@XH{Y12DwZDQ{#Ak@m;PaG3N>OjmRR&cI0Ed zA7{J)RV{B^U5>!5ra+B31<ti4_er$i+E@ca!DA3AjVH*zDrnm6Adk8(1W)g(71 zRlk=ZoJD^#sqI6gw15-{R#&9YU6CKiMlS*)pL~>t?JRrF>)qeueAh2$%nJ-(^hGi3 z+2YBV4inFhU2;dF7FCBB(-o!NonJRl1PR>sPY8u~wF>M}5m?aUkJx3f#cO*r06h_4 zv6;M`oZ;1!8hcKYst|9n3Ey2=dSPxFYDwD?oU8Vo8i*^~gcz_9NXp6X<_Bj-(+`5% z(2)~at*dmXTkQKa;FkWGq&;Y|5=p%Qo$4LE<9pC5y0lTdt`8KHptY?3J<ibQVM8%<5E$5OKK4+CydiA*fEBvTlN@*;i> z8Y@0qJwJS+Q}B+%-&iz)cMx8)F`8drt5l!5Jm#tKp0$O~ZL^@let1eq&75I~{N{AX zZK6D`;AOW+(xs!;iDr$iPTRtG4;;bmC+7W;;_2}Bm9^@i3V5WH z;*}0pF2ra8afb^_GR&m?u&~T-!?4VBP^z>pN$c#O&OglZZAEGVDd=g61t9G>H~p2< z7i}&2zrn5%P_9%meSnoL62h-TkWJ#adv9E?=FZNk!xmP| z>GWs$U#9vrS8NUS2q8}9snwZ6{m>pAMahEQi8NgWbx=XO8qH>%V+s{q5x@N`TCi8@qT0UE2(=% zd=aCj$X7t2*<2rNNDq5ZF{6Yw1u6bS*3N~X+{9Hrz)B*Ix%!b_#*+3bVvp^d77%e^+=)GJBz?+kX+q@Q--5{fX#1LwQ0Sk?}P z3{S+{+VXXc+emB4S1VhVAB>XT9k+c03!eM2o&^&X`x%Kn=#f>Wi0-Dvj9j0mDB{MZ={pvcH0X6B6lKn*m zzMMjcDDEwDYJo<$-ZiqYl|82imn-AoZgxaXUku)i+zv5)meY{|>jmCfk0!q9Oj7*J z%V;}cPx<$eS^D9Fn@k${Z>)pL1KO(!bwhnKiz}H1ln5lLJdQa|OjjaMO-gF zVQ!D0j!Hp5h%~5+f~X6b!x9_qs0PY)rTM*W+8#faxYXru8_6RpoM*mnP+Eg&-o5 zx;a+T(3_PpeAY&Ct|7}+5q@0SiI}@M5b~MZnyHjv0E{0h>F=;2*Xggi&1t`S4f|@x z^+a6vzj6#NK*sHyBdT=*1#xc)%UoYR-$vj0go8)9r=(j!ee9MhteX)Ym9}VV;Slbp zy!BhkY;?ai6e6MLP!h&)`RbP&>t`ZI;sm+q1$mGA#q`V&qh7jj)b?0Nl#ZMIzC07Ax5M*#j(SSgK)Y<71%9lF(8&25-;F(_0_knq0$ zuKBYjH^*PyPjXeV!dJJoY%hA3c^vnD!p+={K^Z7X(e)i|yorra?G>`8O7G1X9dKa1 zNijX*Vl{fqdIhq>vVL-U1(Kq_UI;Qe7DPpE>$OH(>McvLMD>k{+G)FhwD!6ZL?9vQLxDtG%RDC6|irFU*iR;)TovUS;5pI4Agk;pdzYmJ02t z@FLx>ukOf3jkr8j-k^3JvKYytTQcB^8HD%`Sj2{el5=V2?EMX8;OY83zsbIOVPC3O z=ct&H_t{Wqg!%rOzzX}W=D6E&=x4T15+2WTA!~cB2cQe}rVuuB|8h=2g!k~z2L$$L z(J_rsa~{au{rRW^$}tF>KVo~f#g**zDnF}vetktWEWRM}6kBTH)XD8~tp(htA$ZG1 z$)ap0--LGOrKzjU8Q*`)^%4Cw*Y7l7z97f%v76pIntdR-zJkYYY>yznT;79Cdd>P~ zwVPhM#-@6G3@#UX=c=)u$|L!wzdx8}{gw=Edw3hXQzb?>{`#N)Kp{A4U`L-b1-AdY z!8Vp39;hqu@MA8AiGP74&;OXFR2aK6|Gfh6*}*_|_W$bF_+8+NRX^%4KUm7c0za~n LFJBai8@>H6==_3~ literal 0 HcmV?d00001