From 3d6df66b24fc69925ffaf294602d0e145733bb46 Mon Sep 17 00:00:00 2001 From: MoreAmazingNick Date: Mon, 18 Nov 2024 16:42:04 +0100 Subject: [PATCH] fix ubuntu24.04 compatibility --- doc/01-About.md | 3 ++ doc/02-Installation.md | 5 +-- doc/03-Configuration.md | 29 +++++++++--------- doc/04-Usage.md | 11 ++++--- doc/img/director.png | Bin 0 -> 46759 bytes doc/img/image_a.png | Bin 5320 -> 0 bytes doc/img/image_b.png | Bin 5700 -> 0 bytes doc/img/image_c.png | Bin 5864 -> 0 bytes doc/img/image_d.png | Bin 5533 -> 0 bytes doc/img/image_e.png | Bin 4902 -> 0 bytes doc/img/image_f.png | Bin 4836 -> 0 bytes doc/img/usage.png | Bin 0 -> 50896 bytes .../Icingadb/ServiceDetailExtension.php | 5 +-- .../Monitoring/DetailviewExtension.php | 10 ++++-- library/Lshw/Web/Widget/LshwHardwareTree.php | 14 +++++++-- 15 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 doc/img/director.png delete mode 100644 doc/img/image_a.png delete mode 100644 doc/img/image_b.png delete mode 100644 doc/img/image_c.png delete mode 100644 doc/img/image_d.png delete mode 100644 doc/img/image_e.png delete mode 100644 doc/img/image_f.png create mode 100644 doc/img/usage.png diff --git a/doc/01-About.md b/doc/01-About.md index 9b1708b..4d8d989 100644 --- a/doc/01-About.md +++ b/doc/01-About.md @@ -7,3 +7,6 @@ Please read the following chapters for more insights on this module: * [Installation](02-Installation.md#module-lshw-installation) * [Configuration](03-Configuration.md#module-lshw-configuration) * [Usage](04-Usage.md#module-lshw-usage) + + +![image_e](img/usage.png) diff --git a/doc/02-Installation.md b/doc/02-Installation.md index a61482d..17ec6a2 100644 --- a/doc/02-Installation.md +++ b/doc/02-Installation.md @@ -5,8 +5,9 @@ * Icinga Web 2 (>= 2.10.3) * Icinga Director (>= 1.9.1) * PHP (>= 7.3) +* php-json -The Icinga Web 2 `monitoring` module needs to be configured and enabled. +The Icinga Web 2 `monitoring` or `icingadb` module needs to be configured and enabled. ## Installation from .tar.gz @@ -23,5 +24,5 @@ icingacli module enable lshw Or go to your Icinga Web 2 frontend, choose `Configuration` -> `Modules`, chose the `lshw` module and `enable` it. -It might afterwards be necessary to refresh your web browser to be sure that +It might afterward be necessary to refresh your web browser to be sure that newly provided styling is loaded. \ No newline at end of file diff --git a/doc/03-Configuration.md b/doc/03-Configuration.md index 79b6518..731c038 100644 --- a/doc/03-Configuration.md +++ b/doc/03-Configuration.md @@ -1,26 +1,25 @@ # Configuration -## Module Configuration +## System Configuration -![image_a](img/image_a.png) +If you want all the systems details for linux you need run lshw as root. +Add the following line to your sudoes file: +``` +%nagios ALL=(ALL) NOPASSWD: /usr/bin/lshw -json +``` +If you are using an enterprise linux like redhat you user might me icinga instead of nagios. -| Option | Required | Description | -| --------------------- | -------- | ----------------------------------- | -| Name | **yes** | Name of something | -| xxxx | **yes** | Description of xxxx. | -| yyyy | no | Description of yyyy | +You have to configure this on agents too if you want to execute lshw with root permissions on an agent. -## Reference Urls +## Director Configuration -![image_b](img/image_b.png) +![director](img/director.png) -Some config references... +The module comes with all the command definitons for Icinga Director. -## Director Configuration +Just click on "Sync to director" to create the commands. -![image_c](img/image_c.png) +After that you can create your service-templates as usual. -If there is any configurtion inside of icinga director describe it here - -![image_d](img/image_d.png) +Don't forget to add "Run on Agent" if you want to execute the command on an agent node. \ No newline at end of file diff --git a/doc/04-Usage.md b/doc/04-Usage.md index 8edc8f4..7c183e6 100644 --- a/doc/04-Usage.md +++ b/doc/04-Usage.md @@ -2,12 +2,13 @@ ## Module Usage -![image_e](img/image_e.png) -Describe the usage... +The following commands are available for this speical rendering: +* lshw +* lshw-win +* lshw-unpriviledged -## Monitoring Host +The rendering will look like this: -![image_f](img/image_f.png) +![usage](img/usage.png) -Describe the usage... diff --git a/doc/img/director.png b/doc/img/director.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e4568bda1086f9af2de79d643bfd94a65d3b31 GIT binary patch literal 46759 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 diff --git a/doc/img/image_b.png b/doc/img/image_b.png deleted file mode 100644 index a3dffb73e61facb4242d5fb9d98932ba1a07cdad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5700 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 diff --git a/doc/img/image_d.png b/doc/img/image_d.png deleted file mode 100644 index a64be191f28ea3cf8841207761d85e48587e6971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5533 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 V6iyU70~`=y@O1TaS?83{1OU{sDkA^@ diff --git a/doc/img/usage.png b/doc/img/usage.png new file mode 100644 index 0000000000000000000000000000000000000000..0da313454221fe1e0d7be7bcb11cdfad99ce957f GIT binary patch literal 50896 zcmc$_cUV(jw=N2T6cG>=P!SOM2}rjQ=~h5d5di^dB2`*K2|a)!pwdJILWY&$rLMd!KX9{VPw_TC>mjj(5Cc%r_4o=<^>s zb%>3PjsK3ptw(HZ2T*Km9N9cvz>{?PcV{-X2(~-7uA2thu1?*LvuV#@g{M@0S@f`U z?%qV+W(i}S^IG1jc&B)~;_Q7s`$d)5+tMdlN)rZ638%TAQN)C*HPcYLZzLQqTv|!r zQ~kDb*xS)YCZYWGF%Q0HH<#aa48LiiFtds%rqt3RU&&BLA)WdD?vB=Ip$WmdpD?CP z+m@D`q8rE^KNNN2+e5jJ);-dRq3eYA4igwZyNCaHyjpm)x9j_=Q=Q5`Kif9tb#{ET zeQ`?kpT$CoI4@m1ACk7l_s?py&0d~N``CDocJNQN$9pp6TjK8Z*yb@_{%+>@At$5c zr+P9@D#NhrfBr{RI&|7|y%0)w`6y?WXQ&~A1Hf=%y@ z*7l5>v?bw&zXv65`|_mCqG%T8$p(vAjD`}z<(O!ZOS-J9*5P89TTOe{MC`80F*3g- zrKO#mppnfNIU4)_9&@Dby)2m?qU0OV+HWSuf^u1+ggh2jW#M*X|ILpaXy%Q_aGO+p zX^g)~(00vAPKZx`2EtaQ_OyG#;!yIy!Usej6=q~xA8M2Nq)A!DnsLMHQ;=BumGBGr z=-;!TiQ>Fe*OSMI7xVFED(o&S#Uwd>NZlyyP9G3%*`6?W`qllpq;%??;f&2YOmOub z&yt=E7-L~KD@_7#U8f?Wf?fEjT@KnAPKAqrm|{NrMs_<=Yu|c=)men>eKbBf|D{uX z@nJz!&S}z8gNR()-Cb5${7;s>(Xtbzy(0eEM3zoUC-vg*HCx3W?Om2nKMK)JDQ;hK zN9Ko^NX`^(IXeT*g%ygfYW!|*v37SMAhPS?TdQbpym1duXAPpkY8%ryusAW^xhJDF zt&kXCrC*IG5p8UeBCxJh^nSDpGgf4#TU#e6<^b#3)34YP2S3_qUmT$sZqv`|-ZcoB z&-@Zjn(~=w$8D10x%;w<*Hb}T9d@x|-=+z#oI+`fn*lUTZ<$jeL_HBduB|oM`^7-UEK_Z_hK_p|w10Dv0 zQ>E*Nm~nS#?F)-Ykf-LZ=oz!UYGWOtflsZNF%$%n4n8w7{PP(yr1{aOj` zi*moRSmSXK+BEO-A*RZLI*g1;yr~uVaFtS&!TKAan<@s4nVxwUiw+%FV@=F}s~Bin zTBxQgYb<$=9jiMg%SEbi*4bB+z<(GvLwTAa4z7>K>ePBOoYi|QMw#6N+TRV|;rlh> zQgFuZh9Kyz=Ud8AzEmsYX^?DF_DwHgFL(2qL=W`sMI7ip4@*&_Vt=`zHV@tO!N9?|JOj?#G<}Gzh_XEc?e}J!E zsmvx-+)`Uxf$hNt%JS8Pd+OitYfts-nXb_g(vp( ze$Ze15uH{i#mDWk@Jr17{t0CcIOXc!84Mp5jqgW2M4>UO=w!|h*v7+lSlcF4NZGsx zq>yN9nab~*dA}e7{UlmJ>{;;{+S45C$0dv%D*to+F0Zb;-q*51{qFA#60`)2tu+%_ zn|!ry@HhJ|n|FlD7-}O;=C9@vJ*1WQwIY&T2yW-F?^9ORJrQD}TzEIfJsQ^3;t?W> zNUiZ_2yXrzMO$c|<47c6LBOyaS{|2V|Y~YCAg_<;Od<&AOR0cVn zLwTo4gKHXGbfy&!^r(a>bBEDDA?X&3JzsUCPi|f9`qv1nTGqrh5yCd;I(0JuBV>lq zs+2=+6_k{F-$~H1?5o5GVt%+#(Z##&;GVfOrq4FhztRf1{+%`qS35c-IxLq+1sl#p zzrR>82~zkh4vo{Q*hGXYW;gK$uRq2P&MZ8eQS=?NQGV&MF<@s`NZW;LF=9!J%TH!A zzoetjqt(FjP5bG4^nmbp9HOmiV5jpOUP8+0*xSZoHe5ecXKg=Vd-H!fJML|FZmyC> zWls~UpC&R}>L|HQ3Y(L5MH~vKT0}5v0W6Xw(+fjJkaAg=J51Bc=1aZfJ z*Psc0x*NEV_OvPX#7BP+ed{-Zl&8BnI`&LIB`rdm8y)jzk~__HQued3Bz=@ANx!-7Tcyn#;X9 zmAuFMR4-xE;s`OO1?VUwmJ&uE_Q~Xb**AZvzi#yPYEMWQ%)ZOFC(3=Zb-n4GSY84m z7J8K3NudXoD5rHX{B|a@kKjYi4B}h>Z$6nRImU~kq2Gyq)+ml(|W+!gZC4bbz_ospWWkx#T$*2iJ@xAcS7p6$lb=5^6ZOwCaT z;Uv%B^q?ZrP&KFc7PyGm0h^1q_6q|+9U6HQMKMsaoUQgu==tvcaP!PYOP#u>FMm}v z$z5&|tJwNN5knbCzQ3eEO&kk5FKK<%4Q=pvUuVtUGLRLfG23&ke@$g+SRu5}0kot2v0GW}PynXW|G2A0FKJT|VgafGk4_Z{A-xKvB6t}l$ zLCx)ds{V&Ih2;Jlt?HSU+ujYJxOT?usXzT=uQ&ex;bgaCqygso6eK-+fQ{{p0;e_b z&oL^358$ySMFJzx)ZYtac@5(99TY(9n6g zfij#@r~G@ebG0QQFs-S5TwxXF)F z(*g+Q%C9m?{BcP7yTxcJ@iPwW=G^1DDX6s59JMzg=RP!9WInB%?qm1l@ z!g~H-F2L=C#q-GWHl98-p|yd<#GfgiJU9+uO+JE~OAovh5DeZ@<AiO}+Cu2#_Ov|d*@bpn{8qn(8} zO3&MdCtzh*wKizMJ$kF!?-K;oey3Tx?I*&&(c>c55Crs8Z0dgCPHIx8lh_1^LdZQ*!0 zXe6}KmLM9Y8><-J|~W?-DR1&g#ggd zSKY{t-Box%&Ps>wyNz_WZzI%l_YavLJ554sbu0B`Od{Se?a9o033h^Rk=MtE+90^Q&!zT%5wf8iEbmI~o%GxrnprY*Ui1G0 z_v6aIWL&sn+Z?}l`qQPJQwcrM->UKO3_{d1nrs&lb`;px%>w^43IA$){>OIY;^W_& zn$5qi`~X~{)`|1CvC!oI&uqrOH$s~NsABE3w6wyW62)nM(dqZ?F3#VPlO>AUmDAnM zzoi)eZ=oD;ex&yEpG3f+q~3swK``M1wkR_dPByk?<>cqh@!VshAJ!VwX6Y2bl$E7B zoq}LG`6oLC?;@3ZH4@L5O6{Bskoa9yJpj2b54N*OfQ5V-&~teb1*d?NE}%tDqmqTMK+zZ#DgAoFM}20jZUC zUyAh$^RLpis96t+^@i(-Rnp5X2AV+k0(nsNX<=T0P;Wx?%|CndEC3w6ant?>JH-Fk z<{BRM08phaIAw=_#?5kf=LX}LtIVx!<&PL=qy2DVITwY|vRLQem^V!XMHbT=>@o)v z^*=E?B$6MpV?(O44^=~(GoagMaJzN1Mgo1ji1`sJ6vxhX?M*~IDLH(kl`l}k@iWAd z`GSv?diEZ~R5y32#GHF#nS$!C)4TM!gl6N*;Uyk7YWGfo!>iFwccd<--t($|O8Yi1 z8{76@2fUP53!H@?H)iP<-xX$KCRwsB#EgFM9QVY!>qBk!c|6SO_7}>hUA3N6Z8;Q z(THf-&u>1Ik%5`V?c&vDiRY^lrCzavL>@D#d(06E)!~qhbkmRv#H_xa173-CgJ}a6 z<>~6X2rJG43%Sn^FTH<0KGb_Y?w2rCG57_dXqZW!Fhy|yYn?K|&JGF{xpd{3tKPn| zisIveXL-`@dzeQ$_5D$9e+@J#XY` z9uV7=YZT@ya5_T1k|?s%f@KxpcH>9wUtHcer_2)N)#L2}%6zKH5QRvySDs9&mPTa^ z4ZBGiKeT)2L-f}VVg|>0KJe$XKISFOJ|4X=dvd%qOy&=X5`V)~SfzQ+JWB%aB zQ;q)~v}pWySn0n!m+URR=xR({+^R=9-2^-AZ4`yJmDnZcPpi1h1d_yeJFK#H zNe>nTH%Dm7nA_T#R$1M#x*iNl5|;JVylW;>WuY20orGq!;5G#j#}~Q5-JofdRF>AD z!dQ_GAH4|W9~NllRZ!cO=DsE#w2?UK=o>GJ{l=vE!8>CStkAoNq!{B@xS!Q-i0W{O zuDe^eZ39_8A@_^0^vAf9OfI%@w|Q=SNIO51do-Sui|l#my;dr}+@v(KL->hK`ug-n zN#lwpMY+igjzn^-aah*xe$%4S>o?=giD8O#>S(}X;iBLocIp1jd&1uvW`FIEs=1Q= z@|Z~^M=e3e#lD|?qXX+2;DV<2#kwl+{6$m!PZ3s%tZxD~Io#IAK0kU<>ONs{&*1Ql z9e>qtH7K>2hVu%}3uDnZg&$~hr6#nLd$<|ab!^ge264T-Xo> znI4xaMV0Ttw4WX0j9Qzmb>UcJ*89+JY;euBhIhB)XpU`tyy1KY0-d zLleG7I45~_T1_Y;m$q<)DKXo^A4JSmsK|Cs?TKLgWCXJ~@t=&QOK*7E;2|N1<#0;$ zHiLLY)RQ67sFuUvVq3j3e-KYHUs!*ej-Rn04+9LV(bdZ{6IxOU|uJ57+>NuJ)` z@BHNzsA`{`X~*SAlX;SGs(srk`kh-)*@K@B;p-=Qpr30#m5EFkA^FwA=ahon9_B~A z;cEN^G@;E`YOaas|CfZ> zNxPvAbFNKyZL58`fyVd5Ecw}eGu=39rz}weUhO>NX@v{B z>ml0)CtuK31)urCJifRdOCRg42$972nu$pagC8721gxJp+qs;X?ktXA^*D92>~0bL zXoZZ9UKL$SAKW0^3VS63G{Y8Ay7fA9Xk|Y-bdvzJtVf7yy^BYe;GAmkj2C}M!Xz?~VHJy*L zVS!4IItjPMrtgRH_B7^=Y}663d|GS4^gt#^Z2BVM#5}fG;pp1S*(ZoplwNUo=Kz6I z=Tw*OMWE9wF%nnxsCJoltH+#HN!W6 z;T9f3IT=e9TG@4f=54;2)lFH67=NHCZG8U%D1GF9e#5tz0dxAE*e6Z$t1nNEJ(`4l z-kwPM>NXYZ_*_w@D&Z7F7cIlW@T25SpF1)3g8D8LJzb$S3WWFTyl=T4FZ1|Z4dU1R z)|*^-ck_iI5H+9o9K~bJWSv{Ifb&JJx-tPTO4$+}e3%;`TwQ4G=orx3^jEb~M96IX8NKgdi^4P5E9k?h>td(rdAe?a1vuyiHMpu9UnY%< zTLAlP#0TgF-kQs7*siPX24B5YuV0|a@i!0wxfM7pVD>F8s<2V3s| zLf2Fd&Wg6^%!U7(>P8<~;Q-?t!}a0FzC$Q6(1IjdGP<#DuT5-p{?HS}Sq+xpa)S=3 zNq#K6XDdM1W6JXf3;pit%!h+O>BDT}S7ZcGiTjS3pyLHo8c>Pot+@9t-JzNi%}omePXtcu`YWSNde;wT&er9{sAN zM%jMmv0rmFvoJvk3VZw9SIF580beAB!scVhn_DcEzs8YG4@?MsQ_B8ufH-1y*s*)B zMr(;Ov`0c`l=mJ<_=d@>;;=uG+W5P?u96z;%|QFk^)knICC{ah>OrM$L4Vy^Ne>I0 z_uVE;EpK%dN`}fj%aU%CH)r|W6lmB?*<%{&rlK`zHO#a!4lwgNoY<*tZ3g+p`1+CP zF0Pm_1fkac%JjW=(Ap(^gTrDsR}W{ji>!6Z+_UE~`1+}eLS&y2G zSrTyOO+oWqR(^tN^lR>Ikd@>G`_|c`vfWZ9E1T=}=EY_~%E}eu}+-EX2vFLrXeFh*@uT9m< z+J)`rDv?N}e@0;eIq|&O?B~td77j5#G@Ym*=70X*;<{57pY@O9zy1z~{&}=Ib`-{i z6sZ5dih3yw{q~vJRv-VzzSw`uf%{)C)FZ=*x2o9bjqB~*ax_!<{L%^`DNmf1?KEE_ z-3GecjABO$ARbI0?F1T8e??wt?3X!+2MKgH$qII*(ejQ!(6%4MbhQ;?SkKX`#R)Dm z!!ZjxVjPx?Cy2wpz2T>=5g`vVbzyq_#}{|zIGhGy^pe9Ka(H}%<`uh{_qpqv^yW;s9hg98tcC!RAtHUm88{^=vbd}TZIR=!3e^Yrj&(;W13|356 z%k}2mP*$4p=#GZw{i!9Utof)bId!u|u+QO0dxhj-{6XpQw+?p6nY^LRgyLj+nq^MI(aPK!I zr+Sw9zD$Avy*(TcB{iuJ@hM2z1m>`K@=lPN3Jp-Ll)4siALwJKpS7yVh}y-mG?V& z$nlb&^;Nbp6Ew`qx6U$eLuGX1U!7>DF-=886YP$1BlE?$MB!xMui5MBfuY7JvDE&t zM1L(>o{h`*2*w2W?F>YZedRPV0rP&M69K;SQx53e_V*Y86b-C`F+L`jrKJcC6R~q~ zz4}q@p@f}xhYebhC~;v{Vs9?qxw3A}F=BL1g!z%^FsO=itIl>1^`#CkK@j4v5)lj;WaF1!HjZv?L(ss zL{OJYI_&h2nh2NfxQgfN1a2$@y+H-4eE3;)mUxDE2wSKxkFm2XSTg&D5QuSlhf{HZ zUoL(fTJ;d-?cT#~PK2D?6^=q+9Un5^zGRHI$#ovl^bgQpzwlP(mSnQwHvbLrC7eo4 zHTAcq&8Amzkz zSzlcsO=XbjXPm$?*>xB4S{4sQADWs`S1??Pb)8Xv2Y^26Z%Zu$ z@<>&U%F9+~^Pjm9AHx%ENZRND(hnT)~5MqW42_uGrM)aJkV zUw~;1e@F_cMd>)JtiCSJ*?LHRL!)H|!Pwab?dj~;=mffqRmv}!Fhh~7iC1F3stO%e z;=g?Vewf2V5T#i=^Yewf3E&ZeZ9c_Y#|mDzBRNE)3z7L3rlHR!g=~xS5-uQu0HN-6 zA1`V;UPmPK8R%(arfsJpIP&izQGq=tTgQS)hcQW&f)uD4X;O8#rZeti?cCpd3NrY* zmQHQB{70pZ$zz;q!_mQYhfmu!UYEO5Nc84Nt1rdcy0F^l{Zng>Dn9#@HT3IVt=k5| z9Yl>-7{KwT$j_)X(pi`0u6)dfL+b?ttW?+-*pPsbk=n;o0Mp_f)Pdn7LG_O^J5Cb6?*J5N0NYh7l4 zguA&x+-%3B$$I{!*;D0VVz+CjJp8PL7pC^#R9CNPUTJknyqSR*sryi)ZzJtw5cjI! z)$Hlfkt_Bbj;r|REz~6mm)&*e@RnNfYV9K3Q#RNe*ovz#ZPIgvtG3e6rlXz)jeyAc zDZ5V)wcP;+`;`L}yLpuTd7K#Jh@zkCz1N&`D+jHoGJ!BECQle5&2-}IRDTwdjrl>q zuug=wZZA7s7ppr+D99dgD$DxVMICEMd5HYh=z@N z;i_;!luN`59BjW-)nsSYB+XNts?sZ)3fGb&NT*%O?jf&?fpd5m2>Z5}@TSj6!93EKHW)eE ziGwx~=j)*@TJMJ|JC6Vo4qN(D-vjU_UM^sFh(p?%s}|WoJgF-Y#rct{k7H|Oh2*Gy zRWo`*+ji2z&T&s!9};Kj8YuzQ`YL>rgG$13IRxcVE^|mD^b6*-G47aP)StPm3PuOB z;%5VM>k+H&Ps?2m5uwwQ`yqS&>};xV@#7G)WpACast>XmLd|Y|iYVUBZE?^vgUS-Lj^={kLs`dZ8IkR%W=2dD_k4wkmy_ zW6~LzNAeGe?@|s2ey*Edy#N}fpP-7N{6ZR-=F;Eo?fy)G#`t{NeQwG)$xt#?$1YDN zMEs-Y=PUNesS`j@v;00lzGR8>=Ct|#r&alfP5mv6S=q-9;OizY-Zc=*K9qA^Qz>8j z(jwyQj(xk01lOYN>Q1h}TdG>@b*rhxoES~8}Cvh5HW&^?%EaTO4aCCyu`JuQ+r0w-*1|->7*s$EiG#6~OTuR-5xCwf{im3HJY8 zNambTJeWcx9l0dic4imX`g{u!9H+U?YM8bJR$4qW)P zceTMk6w`mhYWHQo^^i_Wvan}H(gYuJ>%G*PC=)f~74oazup%_fQfIIjD0BwU^DO}< z8R%)5tk~zK3NUlc4>|FD7rmQpl5NYU0BpXvmI8b{z7+OZF_C@9*Trcid15nd_=8g)EgY@bnN?WBSh~K#T&++a6rK0#e2RUl|I{dN2Ny9Yzt{D=uj%49)_-Y1c(9M-2QrB0CoGR z7Q~|8+9JgeYzGi}3B|UFazh`qt?j{D=IwV@#gR)c;2wL%!Qy|%YyH)%A2X&cQgWPe zgz4iSZ2BsTF)F6t%F+V#Q!+E2>)!;c^n44~kmmzi%THD+^7)Qd!U?2nUt9-L+xPNg zceyiDqq0PB`+nCmLBmG0g-yNcgp|W5h7+sBQr)D=ekJ*4#Z2^Qj!*Xp1t7Wgw#jYI zze(<+A(vDgRsBsTiuKxyHW%_EI8dTD5C1 z26~zwU|(z&C~96WKMl=D%F*?Gk4wG%6$)fGxF%wXCOWaVZQ3^p1OX(~ObW$YW^47= z(f7y5>fo2V_LlUL4D&=0Nv7q=QI2lF8M0*#TJ|-a9|t67@Y1V9xxKLK0-u9a6l2q! zu+yrY8r=>@fNtyp1XSW9!6+-~Qju2pLvB37#|3KK-xO%!jD}v@UN6205q~6Y50`+J zM!HL%*0!y8Jzy&=FaxmWK7-|$*o#&JAp@^^IXu7a1>g7D^Sj>P05K3aPChRQg3xA0 zGXw8LV;q~Q`e?vXSCgop)9l688p68ZzM;9c`98SQqM&y9DOz1HYl+=_Su+&G98x+IoZHkX)W@=M1LL z(%Vav%G}KfQ}E2FwBSHSa%FpyfL)2iWmR&Z*L9Ih-!?l(JLt95!>F^7k{?@kc6v?- z)<3u~J2|xSY8~?wfhMpDr;L1{DBd$+*yBw(SPkm$`NqM$_?5TPZN~rOSoD(r0xC>rOfX@w3%>hvasykW@>bjT zD}LZzgaR^k;TZ1HxZi!=W+kf#xpIe+{O*cEJ=cE^ieS$NutDiw=OCC*D>#o5?!Yn!O*xZ;_-7gg;$>E^2op|K5&{4O09 zS8W58M(A-*)%m#&4#zJ!EZl8GcZD_X{2UX-b>tH26Aer$Q}mv2bLrMR6xkPPv#e?F z{3?-EKlx4fMq<@a0+$*IIalf#BCjYQ7?LN@sGD;*A#!Ql!nowl3WThOZNxTDcXXdB6)YCEH)C`=fp$(UgsCFnA{- zqzTM&e_5j3#<6C$yCFnaB2Jx=^|nn1QK+vqnHZ`+3Fqt4XmeC_^<{Vm@gHZ701tC`8a^fveR{*C^5M?6Ka-Xx~sU_B59OJjVnHTw0j@+j$Cv$rF;iIV6Gyb0Q zkjXrpnb^76=$2vLOVh5-7BN=UxR8U*G*@G_cZd3 zLp~5t(z6=FHiU-HN5hYw2J(_X$r0|Yp5ktO4!knsW4W5M{%<&~gCkuNB4^4DCSC(`vK_)LY8n(?nhgfE{eoL%Toj602+kmj^TXZ60^7K&P%7yl;i zH5Hs@>-E^uHS!_ORvdo%ft7neDuG;OWv)IGe#?FA;5Ieg z+Hfd`(ymsQXBJlV1}XK$FQD0x{F6MJmB8!O3I1Db8_CZA{tTYi=R%bYj&*9K9k=|ETR1gzSj@ca9XeaMcg=~ z*C+m)I{QoipSBGZ3J2EcJ?iQ{tFOLXolAAlCpfMd7^T2Hm+u3ZU#9OF)ZDl|Be1o@H>)yLIP`bn-=55*OD8*{ZEKDcw7oH7Nxpm6=gyQ#9Xx(t? zbYYk=qwPf39=_pT8LgXtNxIXWULecVbgLQG88&KMjM1D_&fBMdzK9*d4eVS)6& zaqSwd+0PHfC@XbcvhHG=a-dRN>rwa|RC56dI>?TE9=k#)U6TgvmYL>R0B5&nSd?uG_5c|5%V}@D=_T7R z{W0oYEBN6&3ZH#MWoJ2FcJ@@#y!TC)eA5gE11{^Sb$|e2C$=N3Vyr03t>`U8qA&z@ zJ23X(HO;f;F|%s;3H^h_-8Fx+UqsyEC|%~^3RIfC)b!x@7q+%hhT{GBIs);jnfB7d z0T9WYA$D0ZzxarVyF>Lr(^N;vdeyflSi!j@=9pna;s!IU>RV$WrZi`q;3FSLJhKu5 z21Nujc7|B~lg3_%$Z`Qhw}0mWxQ^~LHHYXqcF9xrII!bPJYdb*Gf38z>yK0C*l9(3 zJFky5e|dLI5VbM;Ei01RdRN%>bMyBDM#rL~4_b>iybWIU_kyXpYDgDNcg`mX;bm?W zspU_)CeHAeFZyYHN^Tk9Zzv=@ox0}A__4x`2G?iluN_L!m<@}O@aFaHJ5YXhjz;GiG{?tXPG9j8qe}AzKZ&xR3ZK>~hLq5o1p|_r;xi-PnxF;V z01Y!QKW-ME_EK>*|AtpCp80sS0ZJO08rk@r_gSt4ZuT?8D&`5r;w5hlbVUGV)B5gs*x%L{=Q{Y$`Eyofj$MDGtM_o2 zbY<`9lSH^0IiM{K9x^U{=uL#!$nfBc%EOLfXP|9?KZOn=Y{FRWt+^8XbMl#6DH-cU=IuDY<-+J>clE z#NXNIPX{K1*@0ksFw^H=!j~ytbR-ZUiy&7i{J|zw`Tx@p_1@`!MoTXyIW;%d<3H@a z$h7KXjox2DhdvQ8k)l1Y3--NzBr`qr1v6m7uCZVFSwc|1gpnma>;fhj6M#F}p46{N zn$&@$h*%l0OzZJ8Y8@l_B-Khn4x`M|hG#7EYh|qeu9+%rIFoyzUb5nm zR2hG`=dYr?)MImq?3-V5XD%NfX5L?2zv$7AY0y9f#Mab%y5dZudxC9Xy`%VS#82kW zC_h+<00Mk(Hj(T3aEiZfIt@tKjA&RbjHqu4evoiE$NqNEuDGQ+$x$34{i4uTM9{~% zB~-X*&okx{Nx#*`WM+)0gIF`DJOxdtHXpcjeT-|QEb$S;linoF$qk!c1>}6c2@`g# zIcHizVv1*kH^*)2df1h-R|_H^QoQTa2%+Dt!GtKOaKFK^iC6m7;9|V~OjxK5w|KZs z!1oLOy)6dcj`dDD*{ix=h0TV=>6rR@JW+pinr}F4*_YlXZs{)xen^lhDNiO!VsJXA zff!qq^e|LTK(d<$3nkDRlV+dP8?hSxo&ln`IoQ1&|-wPEye9LC;)=TOxh;>JZ-Q!@3_|(hcm0HS&^2Z&d z+~0T8D~H2OTX;Y3`yvY?tP+|#ZcP6=?^Jb5Ok7T{YV5cOXm9wO{R71h= zR7}XK286rQ0e7rW^D0QnCJPk2_JiR%9g3R!q3ciUdl8_lsb}5RL?gv=;S=bYhN7(f*PeeUy3-!2Ox*D4& zk#Cf~UBLYG^Ps_0^eq0>Gs4aFHvWC`UY(%nxF2p=9AOo3_Lku|ZBYk91@hx-F4zF4 z%+*N(QvWxHvcv-)$KwD{#X6pZn1mN$RXP{CCVmC{j^mZpJDvRV8}KKr_y4$-^PjrF z|H|2}IE*4G5Ei=1kNNz3WtSkH@u5~)+p@0a8whCcnhfwdAT{Ko?x1h+F1qeKGt~(5 zY)vXaRmIoW*DNj7AmHh#d%7yOf~Kod42;0;N1g(*Ck@ z>pkEGz*cD0QP}0=eaR&AfRoqS+{4dMd_6Vqe~mvl{B=sgBnDppNtBnA*DvE5FviQ) zyfkj|Z!9R~pDak-AYMMe?B+uoSwyowcKWPYg zb*#uzhXP@To!*_gj9J~#NaPB{M$ozYrp*~914qY5 z4E7<(A)lAGg{_HVp(kIGAWw+_Sl_nSm5MwDVa>m8Jc1mqRy!WtQphXjnLhtbFX~*Q zO1|>?iO~&Nj-Lh0@3^_GsPM2oUl*J?63eB>N_w&6Kq(S$qsv`Z+`3Jl>5ZpW*Bc4* z=xbtgP3>YBr!UPCVfAzPpwd8sR$wDLTNxDSmdzt}Z0%fe*--S8E3KBo_4lIKbycsv zC@iqze&au-8o0xdkiGn|1%V$c#Cp11dA3YTn@j{9c#`ZEqPrSEvv(K?E1Fzi*A(d; zexc>Bec5wtPH9yC$--WHEfayWRx)QE+43!6X)RJexf%Io0Zvy}aLP*7t!C;#Y*P(D z%lRE1fqTU(YZ}+9o=^vV^ld=0{4qPIdu(6}YnPa~eC?UT=MP0J;3rN62H_l8ZW5^coFVPfSJUEt2h zD+ge&8ZWU2RO&(EH#?@r#02ln^-c5gs`XYu|GN3CJz5CaS2&o1TPi)qrDp|poN^AE z;x203_&PQf6Yov$9y=*vL{Lkj<7)D;#bW~Wu2EaN^DFz{$rAdH<0^g{6mnBG`7pM+ zeLJADdMQH?S-JsIo195jgmVH6R$HW(ZgpL&e!OkFc-l9|aP5pwywYdM{wY z-2vPv)Ey@2z1^VOn?I%av`3kZXN)EV? zmVQwsvX1`^Oi+aAv>04Y@k-OFpqk;9VNhz+lv>SnGZ0u3tNgB{d>P>R-*7S^g#|ZiaETjrR%0ijh01iKk_UZ2XPM7@UJ6l ze>U{#A8_d&0c50Q7pimbw&ySBXVZnUc)Nf0=buasm7}AAmL>(~DjnfJdEw?u{WgC6 zrI~)UV7qBQedg3R@ZGmeQrIB5lmoN(GSe=D;6w|YpUX43Yyk*mL;NE{`y`&cB!`-8 zvH^A&7PjS2_8Uh#d($-_sS{71+k*Pi4-L<3Y*%aaztLE#@vLJ$5FZNjX{V*q!w;~X zF$$5NrN2#gUDdOUkE@joNdZm2pd>v%`>SBZl*jv~-otVQKW)F%?4I$v*izI)XEVnT1XW$b7z0j|1+!x zA!SlW;$U0V`zQI^?wYiG40(p)lEr%z1#pFgly({+iy?qz?gZxe~ z;lg+T)Qh+~U!_t9$ISFM+P3W{`(>#kl3HF$&Jsu(M9RD4x&!=#KBLXgN!xf5sUFrw zKu1ryHz~EaU#O5|yC(4)sn4>5ymJI^zBqPfOD$OA1~-1;b+NhmUWaF*uR(JuiIVBA zm@3n%f7Zh6856f^9uqCU8q}_wxNb#@!FE_&9b=Z}yVu$19qHfG@k)>t5`h)npKf}@ zT zzq0p_=UbTWay7jEfLGvrjox9DZ9OLUjRxjx{!I_1!+iZ=(5rX0^+RXsboZ!5;pv^i zL=7l2xGoQO&P(nt9}e(#mZ~m|o4bhxgn49)YvnNZz9T;bvi@GO^yKjv2%^edLk}6; zMdTnxYi9fy_0w7(JNQv8P3&xz-CDE$KuAvgi6~l~Xj~?9q(DfAk@UP;5qc~`ah47Z z`EqU4((cOC*tf`6ZL3z)+m!pz`re6tGKcuuQJCA`bbX{bHxMTb_8WZ&JMLvSL?&wZ zr|OK|YThI;*hkhWDY|HUhiAxUsF)2QpEUlGVw|u|q&#$IR9YkOF3j~UeHK#(F`M5KhG z(tA%rN2-eS5+I>BA%qr^KtkYdzuzg}J?EZs$NkP2H-C^3GP3qsYp=EDoX>pbvmK8S zbZ;$R0X{5H`K8X)=u>mRq9Ss&9Xaqp08}CMNW5n$>afOjyZ$uY1M|=SH3a9y`?~v@ zw5NE6LrsUc?X&K@d^c*SF?7`XH%C32V&9&Hu;Tpd^pfuVN5$q^p8+3nC6h{8v|%4THIGd%ub*E3tP%Tw{Lt;$wBP9?$;Vj%!DgEBZPvyWIJC=z7n1uO9$pfR z)Y&>RoGIA;Ml(l9$*CfA+wNjGx1^@MF3V?+$=5-KFsZ*9g)v;!h``=5D#|z~xdaB> z!;lx1gLr9EChA!rM!+Aub$JB&U5FFPDTDm5)8iS6{U|&1?{Y_<9&Ozl{&L`c3XT0_ z*XsoE%bL_Nw4IH44n!OC6WzA7CD(-RxGLKL*-x5MPQ@X}Q&``EXacjDVl*6;wyo3bG; zDEEJ}0H&aU6j-Zidl__STnw%{BC=sOy`iy%eNT*UzTDzpLK9V`_fh>OxhBhBTrxc1 zaGpEv%z)3aljXJ6)n6e0hmVvmR&64i`21yVGP&#KbWaWs>L_ zSgA*DEarE7(#-J!-O@S>$&n`(SZfyp$JA!9qUwD1Hs&NlptNu2ZJ<$bP*=m(23dXH zdw0Cv`M3o+O!G>`g-7e3u0WshPDaSSK|&qD(cEsH;1_3y5h{v!2JY=8hw)<{un|{L zAztc0FhAWG^6bogN98t}E{a=xzL9n<@~3HAeBq4dzMmlz=;JA@{Ab_@Jq-;Evf<81 z+F;*qK7c@`=gSS+M5YnFn2e81s4Ld*hF#E*SOxNN{k4g;mWmm4Rq=hlEbfvvw#xf- z?OSzArz;MH(ial288x0n1No5MjSp`zH?O*PeqldzO7liI<2Q@~l|L=9j&?nRW}Isl za9H&gS2=gtG=r4NpA%?Q@^-|ikh{xuxR?8!#PIMiP)hvTt^C@|Gjfuu7FTiaU6asR z<$`&g=q+I+EZCy6wazQ|l&oc??O=b!5TQ@Kl4b@VZZ|q%bQyDLM zy^qzb=yz&j8Be5Ke*qh*vnyL-pxb=YBsAaCQSN{2Mh9Q{X!5 zT1$R4|CW|&cK_2aV|;ah!@a+?QS+cY!5%uZ($=qel=Pq?EErkw)CFGa=qYX zcOx(>jZ5`0e{${i_eaZEhAa5wAM#>rfOtaZgVaBLf4oihHmcA$+$b6XBP%-Vl0Uf? z7L4aoqpwJ}ALuQn5ZA$Lv)M zMU2)=!^&;Ov)ln2_6ttd(shsBvR|KA&usLRlGg`V6TUVsz}iEMb7~{N^OAJsu=s*R{6|+lu_zt$OV~vrM7W&Ya)1^I99c zgF63vccO0^kwzFBU`@s7=wv~yz9GCQPtctEfsZTE7SPu_1G#3EmJX{pN~Ve)PtL@I zW1(x74fpF6nNJFlFD#<01`)!|7hhB+XMN{cBd<^g4*zUudnt#*WRz#+rD@KUEr=Xh zFQ5|f!hc7c(3(ZT4_PNx_Vlbj=HseADC$7(jo1{WS(CWsO~s~>^O0HatLdSsx6WF6 zjaFjprzgjh#S&^E<=pC97taJU8HLt!gr8@_a%_Ci_aM6!Qj;FsE`hX~4oM7}+@9BZ zKG(^YbMf^%d+&HNB$8UUa53|Y2c5woW(*=Q%uizFCCm6=Q5_=k37fc)s$c+XdF z9G<6wMO-I=ddoE6E$F8*($=3}TWmKg_HtOD zhtLI(Qi5p$IlvjmG7wd)*-uDBZf>{E=rx?IHpU?Cw6u9PnR3Id(9g+$pu#h?;8WzF zxnnegnH3;l_!nd!i0^M&XE}%BeOR;{`QA{BWli?sNNJ$yTTjEUxn^6Dp9PkSm(J1S znfl(C;{T+sPQEzR&+^@vTWPVE8({WMCnyx%peWV+z8YC{a2TJ(-<0@8xig`Xeas~4 zA8%LyZk@3Bl)Jp zzqsGHR1fHs05npIyG?IhTAw(egpmbhmNdfwaI?aVd7o=n+`T`z8hdEI@8GVMZ1zVt zOFmt{^tI3`$-ci|*>r+WZ&LJF`b5tAp3j^>`1ihwRb|ENXBfBrgk5(=h#DGu*N5L) zRIlB=`lPR&P0=m*k`Eea64Exvi8g4q77hqX`J&<&+!WvXdB0Aa*L}wRSY|lVW1FYc z<#uzz2pT-OU7|DGn$U9B+iHMlHu&@m_6bZ^(K~HoR0dcxu9Xs}p%U1PHMgj<*eI^= zep-qOLw%!L=^XY z@M)l;PpRv%!YeTxXOM;`O&v=vpW|xgHdsy zt7xmrDFJymC%k|y46;_r0$o`KkfZ;W+<`q1k{$5$@mH&TIM(6;64oo;Ssaj@@KuXs zk#GR-LTE7gu|KaY^oZN)?c-lNCRBe(x3m>W3*1x#Z_34ZpE+GfHsT(EnV);q(~PW8 z{Kj*p{PLr?LgD!mpE@c~k6eyuwN*V&IZC0%Bl?xe*@CCgzoqd?Ms2#&G%nJSD1AkF z-;84~k&_e{D6x*#-}HN9wSfDF*PU3u4(0}GSJutZ@`>5pbnS-r0NlNe-Eef983Akt zt5lea+cFVE?5}ISh9*o)Ud`_?<%$dQ`9r6#9l_ZYeCUA+Q6ft7ewbGH-QP6Zb}VFu zmTr@LksAq}lfxB3ARZcn(}xt(&Pz+@9>Lo}cpqSCy_mVHh8+YabZkV3qcwTAK5S>X z&ijCP_57>O)6gm1kmb5{{%yw}zhHHcVOo0Y@rzTkhYDJ)*G9Y}(2@Mla1=W#{QT?( zAX)Hot?%x?NFTPRIE^oTs&2}o-yJYMX2{5HA^=wGCGh7a?LVhdH|M_3WMLECtGOd` zD<&^MR0#p6-u6Fk?>;C=EVbib0OC2WKYs+pqsGKgw$VpD;ikGojc}|80I1 zDZM+O&yrYULJFTxwN#!J;~NulS2X8vm_lXEBiT zUU9k~#%LxIxOD+u2JAs~APrCYnH75B8x`&fwC<@6w0?WOqB1*Kcjn=z6O`^8=OL>PY{T~ zwgl0sGXVH_*FwUup0h=m~msvLyBzouzum9w` zIj=GMOr46ga{CA*5r43s@}-Bgx7=1$S&W;UUS!A=c#=kUe=Yp(ef$|A$8@qjEI^U> zHfAWVbJX}O)+3=DqIOBk1r%OF+;HZd&d?vNf=arhF&gysA#n;nL{7 z{E23x&U$S7Gu|S9$Mp;t*U%a4-FNDM6wohVH07!BSJX!_btAaAnu>|=qLMg}mdi1| z`5_afjGfeA5T!_8y5X#reJpsU%k`+V|hW+bnL#PY4#-V>vynWd)*TAziH zg!5aTjyW5{Q4aBoT*+S>k}f6^cB+I? z1Q8`h{y-03AKfCvQx8_^GS8Eg1uU3%RII3ogC zfkp72QwU`MXXNR-jXVtCKW{2CVDHE{KhJuj2oMHZqW;!q{6EVS{=Ye14o;>5F;|}^ zNLZ0GRza&E%A+vB%RfJa2u&$`c~md2!}cqeL%GU@l`{OnWAb$Fqu1s%VJ>Fg>dSSc zpy#&=qC~F6e7)?`@f(Xpnx7hHdGggURLW#OlDfV)T zZA_e;6onI~tHzGFosA}6#9uLSI;AU2STcmGuB?ovKX05zjuAHG_&R0G`L8P&tbb#-GN(bqM0kydEophmr^mjr7sl+~a5xr&W zpsP^GSE@)%j{dy}3D1vQ(u?98<>4Ed(!m)~94KN-;?)vTYd6-DH99`0ng58;Q+U(8 zHxPaoj|d*9>nTaO2=rb3Z{M$=GW^0E^@Jk+6kGG6{SCOivz7A4g=%hoRG-pk@cqS9 zCRamdwD4`Lq*YQt6E$SEJ@HF8T=`wmwgRcV($W4GJvii!b~az1$q7j0n)p55Q22;? z$Ql!NcrcpBi(3CKq|Da7SHSM?8Z-p~H!6)`3%+xhE?2FSdP%OL-Rj)%)$M$NEB+hx zZ!YyHWU{1$ivK2fW9@jCO)B^ zmkOn_X(t@}2?acg|1O5b9Rt^qxW=$`?ioF@w?fd}BCKomXCPd5yp(bMLa3s2VcgX~ zNX?(juH$Bd>4VyXx6ivJ40SFzb)J1KCxjx3sn0XGk`Yy=XRgrCkhklpJy5L=n;0hjk+jv+i*?%yUVEA zVz<2IVrhe!X=q+TtX^d%-lTahb;c|dN1Q3>^D$R-JUR{!jsw;(#~FGu!^Wt3;^+2y zQF!^NoH%_TQ6!0tQTKBCx_bTl>(q>(opLjcmyeTMB$e{o$16|Hw%LbdgxnO!!9puu zwK|Ok5p5)@x0h@lnx6lCt`Jxi4qIQ;snUTSb)Zf3+?0Ni88A_^$ zAP&_^W8OYoGBCQgYiEJs znV%R|whnYo6_U2+vu_*fl>=NOx}Bp3^D4Isna2%qz)$IvR4@HiLZ$n=>HnkO1EJuy z3yy1?3yY7yYy9OM8?L<8F!F%$-|M~={k6!j$Vwec*`Lkub|_kN-BY zREW8Bj8~nFXrti3lVz>#@$0H{k#21VH<~H4Yz=p|%;rntmEDe#-NnMzRZ#Ed^qH;mJEcAF#lTzJ5tV*kvy>6Uc%{Ozu0555cZZeI3wswlouQ z??zD`qx3(0`Dv12Gvf*?w?YHk+rrbmq@nnR;-!in$5)rijVKRRaK2ygarqo_zsyRJc8li{>X!HZlpC;rU+&T)-(wEOBfxHLs#^1}YfOvua=Xs($gb@g zZ6G*q<(jJ8aKHHeeW-ITIpS^pZOJ2VaC|DrYVK^Hep%P(vPp>KuVt0|WX-~CNN;vV zL1~P4fx>t1#gSMS?ID@9x0s%PILGAjCG?L!+=EbxN0oC@+SK3(OA@3IBex9xP717O zkAFJMy1m>~C)+gB)6Cabw+L*5!K{^Y*g?eliT;miTva=aO+}TBUhlokt=A%5XEuY; z9w;O?C60yi;r)}JT2)#(y!w|i_g;u0tf?T_AnDVkdV9ti)oN>^!pwg4m4vXdEz8T9 zX^VCdwgrNDLb{tNZiqo=Ebp#$O$w6?zgW+q-AHM$0)N@J#9yhNFI;;FZ$pGj=B9F9 zkmj+^2E*bDcRG8XdDgWP|JAqdbJ&B}SC{=gxhv6b!OS_Z!_~L#c#jA3Te4Pneso1b z)gL$Bw#axVBqWkpna%yE{dv~BuKZ%Ft&`7m<9vW(BIU zUV(6NnxI;L%Ij<<2WBibSUeb5_*k>Nc48Og=ooJk8b~<@g)RPxjz8RgtbXrXp&-Kr z(esuV(gX0k20S4v5>>pkHb0gXlqT-uI+q)-tBg5e_f^ykr>k4(hRyVT9t2s0iqKYdUiF6P=d&WTc{ z(4!UY4Z!;D;2ebPpX~QyVK#eHZ1ggs=dcCaBeQSWzliXS{&eOLOG(q&RTzuYhIicW|Tx=jghOQ(}yGAo5_Ba?0zU6-R4sY`_4%!69&71LmOXNqH$m+nwD zT;#Jhu$ht zgpihdeUEk~pap%~TiNC{%;KlN;AkOehSe^CDd(3QJ(@81cde+P{G7k?6SU?7c5h9} zO$7n_y+T5FK08eO`fa7q^Y;?B&;kyfJb;L3+G%>(x|3pSSXNZ6UgDwRzn%0uDi8h= zjp^FI{r~4Z`v?ByP$a0~@J87QNutcSbXNiJL2;ZpQF#8~3rJOr`Cl8gGbG@yH%}sJ z-+T>6SGKZjyROIsrog+twm7j}XVN-D#S%&`KF!hwtw7trc(w5zJw5HWPTbW`(0^@6 z&VxFry54c43Ex>asV$jA>+#d1psi{3t zQL2CN8+Ip5oLNe^)i6sT#J7G#=Eq(f%^+sp|Gkm~(UExrz%TOiO z!e}mLf)->7&hXKm0FLaL`az&+ZTiqa=95FU$>TktOtXjL6}7S8NIa`()||?%Q22|8 z2eFHlSL|}R${3+q_1=6J=1y{-(~653pvylLK-noRp9EJQQ2dv=eE7FvO_)+e5+FnQ z(&q1stg^PTob1fxbbya>Rw&wf)Xpj^V2Yw})Q|=i7WimF!MG$&sw=TXgCO>G2cqn$S_sGzvahBZ$C)1;X<*N6uwh>y3H2b zLWT@AnU`PdOPHMkMN12(JqwKLvM?xm%&(+qtUgWZU5*!KE;r=~Z+UOu9Me|uq->M< zWc(J{ou!quIDdZfoNCB*wQYt*T1vP^Gut8VZ1J*OLO}?K1sM0gLZ#XB7|zNL)uU0? zh1J3Buus(?hl3b*LMMEO^<*j89UA=eH>YNTSdc9}l9K)BC6d&=-X~z$;^Pu(fz0y! zhB6YxHdylN>CsKRS-OOi(e)MfhA;e3P|z@PJwFn%wsz2GFK>)T0gjcD$t6_bPVZbK z(F`_SR9U;TdqS;j%!cKwJkQxE&!CshdB%L%4EES2p&b(aO<^V^E2r&sH9~X{0mE>< zyBb@3r?4z0G4AU|pahqlFriuHmz;*R=_~Vc13WfXDXwfaT`RiY|m1`d`m?N*7%nE{LvC%%@b-XR?fKu6=pojC>?fcpe zjtiEwFtgTyzV)p_@HqWntynrfc80C!y5OI##9@EbL0j-OYpd;!ez5DEzhC+}{l~k) zf7|`{F82T2HD;#w9qcD6xcY#+pPbMVZK#V&J8&~0G7usICm3iBUtw$mgXPBlzA-@z zQn)&oO_FV%i6p+3-00O_X6Z^RyNg_?vsPw#!C&Ed?+EqEw!xrx8zu~Eb5T9w((%&l zAqYM{-UitQXCDXEN7FtIwksnq=T!F)ymCA;$(b2z{B$oL3b=Qk3gsRRX=RxU-hJvv zqzNVkhHytp-rjn^e#VFJ2@bh(5&lJMbF_}NI)qwBCE>rWzmKub+`fHbJ5JW&euG{p zjxrowYzu9;n9|M*n~I1h2yVXlrmVwfVu4ww7jRdzn4b-% zNoW3K>*oYVSXeyqVCC+4py!vRfo-mTn-#8>wRS~z4V4aaf}3j^?k@&8+W47lU0Msg ziW)ddgVeH78|oOLAx8--DiE25C_kQ8B(DHg-1v9k1e#@K!VYnuGH4>(kY{@->*EMY z%p*i8IPf#VGgw7N%fBPI6gu^+1f9N)V+_1JGWCFX<}L`C4j*GLG~aPLI^IC{dD`)A z#vcwNs`R_N6U}0NI)&^E2H}M$LX4w=fywV(_J4kxhTF1ZZh7NCKHlIg)0^PRTG)CB z2HFZAO|*1?FU|jsSj9&B8dg;IuNj;qFSwmyXL&#MpBHU%@#BVXP%WnbF|_&e0e2+_JL4^h{Z$!g!gztC)BDp+)xYAQ zdk>Lo)Km{f^_cj{$xnZ{KzaZIC%3B8Qa2u(u1@^frM^ns)LGelnkvlG^TrJNBp&j9 zSC0lCHc@o@$SX_=^hsRTBz59OAJ}cFyIPFP^&L9pFa~btl~x;m`xOIK=EPRJ);rQZ z@f(hr%GkbIvg@`gcH9fFGd`T!vl{l-Wi2!L*f98>__Xr8Z7T~6S`Jt=G7G)za`(|r z2aX9#Tf8f4C@#>`Jqz_ao$`boUiQnyb;IDAxTU$%!_nzH=G%7>aV`A2-8q~~KSK-( zYn@59pYhK;GK7BwkP19|ppBV+O;XWzc1y!tX9MS=JEeTq_B$#1OPGWM2#e{0lU?3c z|2bEgi-@3vpOdoGpb|tZgu6CO)h(Gt^Q}WrNU6$MDId^amRtNo@bs^xXfU;aGw6B8+KZLo7@ ztm)!zD`%V;H&->>v7Hl|f+xuA(3-{ZStmd}l+`ZW~(6L!O|8Id<=U@_ea zlTiTAlWakVYkhJ4qot#JUmr3@e{L}!lB=#p*(uk%;mjZYL8jZ?T)Ouu+a8T9#+j-H z9W{(X#q*0MHO-f9tn~)uY@Ji(ol8kiEpWT32Sb%aR0*9^w&{Fts%V^_xi72wj_T;m z!!7K?Jy?pU>;>gFd1>EUk~bRsQfr-}B!9QXv1>pdM+PDgS-SSq@7h`XhmmlfcuDu| zM|VsUdZCTlYbv&9cD_hF`@Q@7RC^TDzjN4GX}s7a6t(9oI9cWF7T^81XU~M5r`wr* zINz$dRpar=B))Lst{Vz0y(!=4mxY^-QKXpQ;YwDlu9UuQXq9C$6{ZGke#kBu+ zJQ7ot&6eEsVfuZwf4ff)h=g7N#oae3s02VBpAt{67L|KYkJhyP9&8n&r`gaNsrWI- z1+Z-LOVcelR5wLh_u~{ob*BOR!7kvX5?_W~;;+VlN~u^_*+h-aQOW+Zj6kDo!n3%v z!{_7WNd${2SLMNvy6FWokL;|9vX|b-4|cRvIJcx-^n>A*JL%3om^W4mYxm|{q}oQd z8^Hs&+-^ENVO=Zu`C=q!0V~FoOzT`Y*Dn5ecRBW&Qv7%7! z(IaJarP35Dj>H)1-R#*I*zfi@BLC*gDxf;b` z3(gzmYn0X=k@LGcllzmEo#%%R`RMwipdju&_J^|3C5p6+KT;G z$D3In&Xe}G+JVjr(94oWVSIZBkj1li?xVl)!*Pw)!44Z9syL@ zV5j`SYJVQ(!2ag58ErdC59UEmD(*2h9+xUl40#XDtCaFcMhmLH9zP2yF^NT#%ie`f zML`szW7j>u|Ei4m2&;Z>2ov}3@6NM+E_|5Wumwga*I7*8&C^@YPms5djw zd}gP(bjVU1_N)Ya)8M`KQ=4;Hx-2x*gn*T zXK+*#A8o$3Z@BjJ@werAj)zTV>1YR^;f$d8R;E+8AhBF|3gbfSlVb3c%jDwBddX@j zj@=k3pI)KK)@a08Zp7SihfB~K&`$@&tD_=zvWaomydDn_R=*${65glfnMON)tI1zX zl`U6dZ8@IQF?ap4;h(m;xv#`R7{00qnsumsv!>nG`y_A+K6~ zy%2AEJ#48u*gZizhn;AAX;(pAAm3UXRIdN5U>Z0|yA)Mj;qPPqugQt7xu!Q6H5@#` zdnHT9{O&JLJ9gG8bHl>NA`?$VMV1Qgjz%q>4)CZ_+2mC8eb{FR^WuE`wB-^_XnBbK{r*);-6E?dPA=F23+)>PD+btnSS=7RaHZ{ z;?j64CU}yijHLR^XGLjuguQ&<`B)F4XwPe7y9A+LyGAvMuV2&7OI~BL^qu9CB17T| zsiUi{^@W$K?=o3TAZL|^$*`u8Lis_THdeuIWLC&aUC_iLWwxT$s|Y71I31X6Kb2%# zX@?%M;Iy5+95x2)DZrAvq+jB7m>ycZz^;ugpW>klrLMVkNJ;{*{#<4RAvSe^e|9#~ zE!g|=z@YKM=8@3R9u9~s+pHsF3AI&}KT4KI8}NHsOVbe==PiA|N6W#zB$}FjdDm8D zfuhsg_?=p$O!;ftA@$%xhofR=No${K=ULxrr-|Y%2$*r;k(?00wZXxD z{;HSMw@NPRdDhdh+iTDD?oSlQmBScPsZSTm$e&RjVaJ`Xhd+L-`a19tPdv@DXXXIV zx{i%)1BCrIS9yiq9S30COY5`I55KRkJ#lSH5w)|rgeY^{Yfbh2QL(v{>4@o3AH9|n z{+mBI0c>)QAd}Sf<-~Hiah8C|C6(_Zw~|Lg6y18b5ct~x1ff^_B?@8kF4N&lZQqGf z`WQlvLGoF5I))0fF;G+Uho9YdRGu$|74m_o&ts`5xq3c7w}qItJYfziqQ&}zF;M=7 z4EjOig8YbhG|qV*S)2B1gR$r(Cwvw5nvei;&AFj7r#9njR*{_AGs7k_p)sV=n`4C4 zZo|u6{0EaX+4u;xACgoyH2cM<*}_YB)(F1$He=A^_~%-lvagmIK3UXV=h@jdEqK2l zMqZR!&{MT$C+b$wULVZl$_q@xaaV(zZORmjiw?w~XN2Og<|n@W!3sP-;mr&ZiJ2sC z)#mm}o|BPZ`+YXQgje2ivFooaKF2z*e6L?rlXNW(uenJG zP`Ln$R)On0pEfw3+N8gcR;1wkHG6TyqN}H-M+2$r4YqacwcD$nc6!z3%0J#xZ$q_m z6JlJ+%``}*vfdpygW0pHw;S?mkE@RR`KK+xsNSD-(yz&@Gq14pz%ATbLUxKEJ96%R zcJB7~F0;=TIIy%!x8isr`CB$ttYz&hP&jm;D>Xb=9lvzTYc56t7Se&`f9_&hZ~eYm zK1_LLKZlxaH3e)OM0~XRpbV?xi4WzCe`XWH@_SjoL)#8jFo{rzEYP!C?3wDSa`w$c z6Px2x6TDjnejpsno#To3t$lvG#x+wd(WJuN3#Wli#624kLMwFZM25Tv1VHpuqW~<( zYO9S!^@!T~qwVD0Y}+B{vHktGWF5WzcCYX6jp*o30nmZUy$x9&z~8w7_*qK+n`q%9 z^mpLnHQ*!gl3@N1f8WZ+pd~w}4j-dXL+C@z(kcauD3iICTA)8bmO47Dea6eHh5~t41PuEmxWD1^}T#hjv;64cyOc-4O zIY|QPG*4cHo6%yn)#QaGDKyz236?+z%3x*XiY@H2%FfYT{<;P{KkLQA`A7gnE;tF| zZlx_I?`%*-MLhMsLpQ0^@=>yyQju8DE516(iuQi5(kpj&-}R1P(7X;x{LYLW=2TS8 zRwQ4-<)$eDiI*?u0ne6k3lEGcU2e*}<={4U`Vs$ia$Ts(e`@1S=yKj5sk1mxLMIfX zWEEV1RVzze%+A&WfV_);e_Y|f37XXq1(U&$c)9nsUxSHo#%|~@1D`-|giZ4Flo7WZ zyF|Y374iOf`PMT?pn4H5eP+Ghd)mqC&{dJFgOH(Q>mF-S-q5E-jJ*;@NVQyXV=Dem z&hqoF=qW@`cn`$Vl7$8+f_By`PeX^DO0TmL>sf~@SLI9v#DGPszE~E2xzA5rW6>`=Tww*4{!^lz)0eK68>32*G>bd!Ejf9v1^(-BnM^l0(p> ziCtxHZr)E7ZSWpeZ1<TF#bE zQ9K%P)74(;-hnbxr0pP4(e~FZDet0kEtIaRMX1Rpu9?eA(EU2ZXh|@sx(>vkY-4tK z7s3Ts4i!(rn}u2ol0PM{M)QPRLk?Ttj5+^q{)LoFKh;=~l>UKCQG1xhzxylPd>*lC zFFWzAe1B69|L1T4RwTg{0w;Xo%(Y4I`#X~KzazQ7#}L|c88zMml?8((EQaM~1}pDF zntjw%BeB+7O_%6B4fu6aT!Y3mDs{6XU5Y9hLoah19i8FPmzz$X`P_>1uVI197M8zO zI&;dl&mVRzed%4YBV_tWVYNeY*XGNoVOUbfXgZ+;KjNtQK!mcSd^qINJK*N8T35M& z$PtXViW`-mNl5cu1PLJmmn5U-Ettx0!|}1L;5(06U>4qu8(k2DS9)xdVvu z9rv~IbP&=f%Ph^{XN?)AUkaM`Lad0T?xx|p87FF(V;6IRz-HYB1Lkk{YP%j5mLtS2 z@P@v+Maa*#@Pd)|Qp9T9xGpkV-sdmh*2Qe=&BxT_`sExd?e`R=uhl8P?0rC8==v%X zEZSWJotr&PrzCp`^_}yLOgu{u)N=J|8QHw%j@T-?8g6m3YqP*=k}5{Mj!*Em%i34A z1q(dkA3Kw=c+YXk7ZiZ=?V3*ZK={))6~7aiJJ;Tsz#WP$fhOo2(~bb~_1LHC4-H-7mqK^5gZ?0eL!gOI zol6lbBka{QCB;OII42#ukxQulT`go`?~klbVAk0GVjjA)7ZMb|$1lgbidoP;n$0%% z9DQxQT3Tpw|oKaeV)bDlAfz2g{4UV=KC*1VN zPfw42*~W8TY{07Tvp4+O({ zNv)Br?eJ}_e>Y>#lYgz}$G~Oa5gR+$2lHocxd$H5o7e&J3h^ZINzHENguu5f{Cp{A z(}0oQ<7a?6ofx!G6j&W|NGBI7f{6#GY^`fsW%(ZP2)HjuMH9+Zh5`OrFOb|3b!cX$ z35Zo%<@{K`PtU3H&oWx+MIJQMCB` z{6e~HF($0CEE-oeH8mzkBdbQ@V-q{w_?|CsRTx95NomN|*6N?+uDhVh^WfiWe5-hYKg6gH_!$Vu*7Fj> z-FDjt^O1=578*c?OD+_YY-L6whLm>}&NsO_E*S$F#3g9 zD<;`Vh+>i|KXgwPDOI+7-2`=e?v&e`P}~^9%5rU+r$U%wg5_*~X7?BmzSQV1)!ZdJ=qj z>p`?#pF4+UgFdxwXd~Y`;5}kAKC&_9bqR7i$m(9HevP=5!c7>gxOsi zKCQWZtFFx6c~RM%FLyostrC%^ccSN|m|{ zWkQyLk*e?jkI6SgiNWBZ4|v+1O1z;lG+q6aC!-Xi>N@*w0CW3uN?pr9f{H;ApLRpB^b&$Yfx2KaQ#B?$Zw}Qq6IqI0tJ5g2phR zlcYCm;=}JS%h5cRh43Qia0A9lojh`j0CzMZ7+( z>+@K#W=5Fdk@sA!3r&*fnw6COpo(@SOl+FeLwcT7T^@;&Cj7h#%H+Z)`G6P*OaZnN%twEyLa+NHGE^L#Np(zC_n)$=kWEhr;+(ilxHe@U$ni4rEnT0 z+#@TjvVW%bt(@32ZGC+3Tfh$-twuMx)7>b{Rh=T0Vt{`lILyW*1kJtok5`+s31yop zzF5~zN&HP)kN>O1j}_JB8d+apMd2>${i5ItpATG*s}r;zF^i;wa$OZG*aEh$$Cmpr zmj|u)<_=)KU~qBhVgm9Cs=AA(i7X8)URWrwco#PAwx84cmk}~J9m+lZpBaLzgntum zqMJYdKTihvUzn;`Hq;z#cW_~4t|hwyplDJ2P>4z}=JvvB053=pu8?R|^V(VMai7pNDZ*^8`lC=qJxClHdOXahN>lVn)ymIHx(vPp)0i!-?=2+Ba(o73PZ8l^1OO>6Ew>LFqvZj%2h}tBnSb-J-xad0Zr!M%OQWFL+W4TK zE^VAkrgpR4_ws)N(3!IC?zMRM0c8YUjL=MQD#rbFV&dAHP?uf@U#p`D&^X~V;8}fi z6m*Y8(eT^HhhqPUg{&)U@-O?N|NHWTdb%A@aJ-|*^zPo-xJwGy37UJVPuU;&ab1U) z(U}N+(SgM8!4jIMP;#M|3X>J(fE>X6D6aMc*np6ujgCs>9RE#snZR9JS)Hb&lEA|h zI^lo1(exS*r6| zH@%h0?@BoXl^&K>g?Vdxm`%-_lt?)%x9MH|*6C6ATX8KO?|<&O2vG8dDJiZj_Fmal z=&Jh;;OKuGEq!zGUo8U^zbvgB8ukj@M6A`szbgx=hcJ(~w%@7tSj7GIb^&~*Y|cJ5 zR1ReHB=Z|?YGb3D!g((WlKM{3w+ZZBa1%8`78F4S>**DZilRP6Y#%R69%8lp3H|UDV z_1Jam6?pS&rA=%Vy$RFM(+{lv-?DMZobSfaJ(iz6o`6Tv+k+#*b2=Qst?~lyfjpw_eHvx>3HqYxcE^y<_7+3wETF(js*eEYUDq*3E+;R^n*$X%QeT$!I*L8b$N zBtBH)#k_`xg*xQO{1H21W#c@SFX4|C_hDUlrT!KQwm9ujFkUlDSa zljGf?!gsZyqsAY}bbm8_dYpj6s{aYSz$&mc;;Y$RN+NqoD+2!n7&=z}=P50J1C4)A zarqy8{$G@q3|h|zlY3R8QbWiAjVhP|+|t5yYcQlV9FFsz+;rXea7^XzBz5;L$dZLT zeQj!|848Ps1_MofOacYlGVb!m!mC;=qwp5#tG&;r8n9a~1!E3v-&m%$C<gA$^Wm2S5pi& zn+~_atH%zv&XIWf>2@_2V>vtAivhYn!!*`1IbCq%16*llVA+eKt#NiM;F4S74fnO4 zodN9AG$CO9y*w0f=lyT_*dAf1fL$Y0eMG`H(e?oU-uv2_kH7w57FzGK2`!B%$)Az5 zaBFl!KNWCiWU>TGI#ie}g#ptL54JiWlBl^16%LX&%KWOr9?h&7^h+efKH%wk!tONg za;TtpcwkTwC1ZZlL)fh*2194ht$Zqs$ZYlu zwrF>lKAa}s;wV>%f5W(Sx_jsnp+q4I6!YPZw=Fz3$0sPV#{3`I&0hyviXs}6H`ra^ zVFUB$2*6D`dR+5fsUaSXlU0ovYz^{yFi(=xo&P*~AA;lv#H05{Th`{pTCqNq#j>F* zK1nmFabqe(>~HOpa8G@RL+Z&DXnR&rqYOYEhz#FFgAX_1l-B= zXg1_76&c02Ma!D!*eiwlYXuI{n_&A)20(L8s~fy5Wz&kH za-bH2jW1+*B)q{?dGkG-Z>%o21(>%x`w!>0fR%-OJl0crQ{Bd*q7~TVOxPP7A`d_5 z_LoQ-cWDjZz*#H^ZZ%aFiRKmQFaBmON?O33)sk@F7xj2!I`0q?$AzU@p1Y@J5pI9t zEkO>pWFh}w#hrOH)baoCON3OCHA{*j5lM}mQj)SHF|tj_ZpOYFBC?YZvL$=Agc;iy zSw`8W>}G5kJ7XJTFoyfl_j~W}d++bw-#Pbpe)rtJ=A1cm&b;UId4FE>S{~2mTa;-` zvE!-5VPD(biZhBQHJHZA%|Fs6rCp6)q@kxO96PE^jJ;~?Wi6;bhL=_1@RC6jw@rD+jh_e+<{#S&; zT}68-Ad$?H0@nL7%V^Bm$xy=Rc+M)}p&cabYE5Yd&sPy#C9|(!x(~cg|?jsPWL%i8{d3|YcdpzZ4)U2 z6%pvmgE~P@MH7zZj*fX`+C6d0LSDnEIKH*77r4>aT@Amg+2{y}yO?-tsisduzy4lI zc^Gk4xagMQj!($-)1GAu&M{aXVW=aocbX*T#jlly_PFr%)>Ece=^84_*EAmZCpUY} zLDF*Fnx0%%#Mxyz_!0CvtoC0PIN2pE;kmmvb4VGTZawlAfk3nI6#c63`X$lYH$1<* zmSe}bTi*NS>K3=yia#%H&fL_ZIv;*5WpIwP$M?GHg*fWS7p*1W9q%U*(+p+)@V>CK zTHU^&-#dIvO6-#iMc4&Tm}IZ*r~R=NR%I-cUbp;{&pG3RtE{1%{2e~Tzv*{s&n9pHq;L0F)!8Y=oM57 ztgDDB@wT8zm(qTyr{qBop{d;!hnBGLq~Yg0vG>km}9988mnZWFz%cm^_@u{pi&I05h| zavDrq0b(Z|MemnoWth~Fo!zl1IpAL2UH;e1^C%krzfUOt?-^-6@XRVeoiXbeq>K+< zFRgHPauY%fb~dm#Xd9Io5(XWG_rBIUY>D9PXEWOXp$HfHh&Ow5)baieNht5^3T%^3 z?OWb2j*-R4tB`pLjF|j;>cvEc!l#j%=&_ShdxQ~D$g6AyF-iRii9dD8Po~~>W-U`L>6Cb=JGI8c zdAY9!P^>H5bLv!p46Yg&c3ggS26?2-+@xP^2mdilwqs5w`0@v*hlLFfzZt7)9t^CW z9(jx;iyFIbb*&LK5;z$$<*iHAKd>2A#_df_?b`RDcpmDR;52vnIt;hn{RhwGWd&XB zXtSzcV;Xx$NM6kx;rLSzZS%`(`>~C$k+*=`?*fO}{-OhVPIO?Ih|B3*?GZkM3eawO zsi@bRdo^61>PjY+zq-0ajq_2KSZ;PHPIs|vhb@qYa50TtlAV_QLy~c|G@&>3J!2MGb}!;fqLSVO zQ=?|>t6;g=pWnhaXHKdzGm1w&4Bd%Kk+6cWKe0&IEd3;~$~vnJH43_ud#-$%_otUZ zHm1qP^484$+g~Mwer}(QrmPbT;&!u)=NGdzkxeg-L-xUo>ea&s2wM6t+IvzJ!dBhZ zA(v1EwpHtRgh5|q=`qa)9y?>8+M9Ul&j%~G>QXcE5j3yhj2m$@LHQ}@o+@st)#Ulj z4Sy$uP!ZGWvp#1K@;grW*7GbfmR;syBW~^8M@Z3^pRQlM2JMT!Z`YhpnKO@;AguXp zniO?(Ysb6ZfGZMTLRJ8?JkcUtm{P%a>VxpW_2pms~QMI(!K)uD7huzpDTI8 z!CROywcTcSf6CaE^8v~{%ZhYKAjd)-g3PQmmvSyR=DIf$9UDzdQB+|!hmhr#Sy>E2 z?KhmM3vF%MDHM>DNTkXcRo%}hsYgc=zb56&sXdWUfhq%dC!bqmiCaGU;eyHB-amK9 z=G&#rKzpU**1G2jsB>*Mg2fpg^lEyE93RAzKtbYD4`a?{c!!j9C41%HT%Gj|(ddse zA#r#i*(of2hL5V(=~oFa!xr>&Z#?>dQSLcT;ot!R@hZ!|%qDT@H&mtw z{r1A2TjZl8_;n!=%$Yw!##NLz>>%-~v;Ee>c}?Y$OS@1;x8o3J7QKt zn&2zWma%fXUL4Dl&gf+8WEErvYn79+uD^gyUnU2;Mw8m})Y2}+2S+z4Xtj$ovsqHFJyB{xLDjs9=>cF$|*tUo? zR)cX~d318m5J_S&$sTv(_E6Z8ybhQqQ8e$iVjCA*wzirW>)D2MeAdsENceBE5; zLm#{>*+yyS4_4gTaAOChxPuyuCZud-ulXO^ZMAiquD&Gvp=NfJR`lJhDDwSGc{xKu4&l&YLX+#T4U~v=q6|BN8CWNH^;gsHwsnZB-m7{A07VN5%o_hB4lidcq0#qk&zKhm8 z6qqGCZLC7pR3+VLU`Ki0n^qlepz){m1sn>+(h5e0)4WXlXYght$v)nD^yiLl%UkCI z>gXjGY)e;#Gc>rN-_K_)3==}=!*NIu-Mrp>qr_u^wF9}lzizD4Km=UI{d!Z5)QMW_ zZEFf`{M2Mgk50AzEa$VdSedmb_+)qiifXy-gP8Z0UAup-7S*WelG3CS(Hu+j$PQNu zOy9ZJ)m^jDF;`!nlAY!^7Eh_MwZf2``Z1L&qtM?tZsWy|Lsbfj+gpKO~0Fl*B-54<-Cnuok!@e zU2CnrRF1+`>fp3`)GQx3q0TKc3_wnI&k;XFruK9; zf)ZI?Ozh`5tKEH!7dlxS_rnqQ^`J9s0+%wv6YY~9HozDCk}86`=rj^I%y+kKXF+19 z$LqRC<)3ISnYpNp`JV4XB8lguf2YS;J!!9S3M@M!hnd94N?Lq#|AQQUxL!}npS8+U zrVwQ&GLT*{uerdu%8WH@rP6rPT;QFoQ!=7zl2Yx3`2Q?BJh2cyHtbX%aI%MlGuC(* zGybLbF7M&eh2PjSuNmoN^+1HkB@3BskMIY!i65fBjq$XoE7iBC%p7yoSvo zo4lh-Fv8~OD4rMVZFxBflU#Z=`JMAK&KuAAVu=-4w@fYW~VvMOr$dpRy0 zi1@)zFfomtJJ{C-fLx%1oL=P;xN&R06^~!|apUrwDU-kG? z?IFKP^~do|rxel~JF8|t`Vv*Zppfks&W4Esc&YTs+$>!ot~gc6R-U|`{PXOaoONHX zV9Gkhe^d(KufZKCQhUIW5JbT39qk}*qAA5JMygFES->(lztBAakx<4;8OwO9TSmT_J_RP*W z!28NzzCyvj)44BGpANFsf;2Luxt`P5;fr{(i>1udniH4qPJL8|R&}wYnT{o0ddgY@ zUvGm4eBxuxZ*Xac^sz;k@0EEtitn1PnyAbK#(>7!dnJ-!X^&8!xK=C&8+BDCf4?Or z<}LdF@3j$2kvV7cdCol} zXj9%EoB7O;I>T(r-v3>y&Z2$;;jXi-9czK@(3vm|cBGvfQ2=53X_4-eZP%;#hCbp7 zV)Ds7y&Hyq2S{bh98Ovsm22a+8u5_5n^)#Dc0WC@5uVrbJ4u!UWGj8B*p4LUCb~hK z-~h?gseRtc0gL%nQ<8NdsMmVmw`|Tys@#h;`iJj`v4(=zeA~JWw>Kgrjups=(l53# zo~yMm))K{kGu0AjE#wp=zbS$KY|LW45BZE;6|v)zM`}IjxMEIt_>OByOwudi87058 z@^_j3c*@A=MruGQmuACyr^*+9$JXtJi3g`THRKDsvn}-r3)Lk!=>_?h7$eN9El9@~ zTqC1XqqU-;Q?Xanp-olvtcd@?Lj?)#{E1d`DOgg-y zA_L=~{JLpW!&i$`_PK-C#;sq-YBN1-D~kn(W0aLnl^$ONRO^agx$np>vR^cwFjg~r z$_5IehE1|YW~id>zajaaW9yRp%c^hyhrQnz$P~0EAF4`Qb326Y{F$VvAJD=#4tmh*Qt8JVoyX2_ zWnFk!N_UJ2sF~M;_0WHSbm$$Bc}@MaLSOt|qIvAtLh#>HiC?S#*T0Ut|3^+m^X~}l%c=AG5F)$PNj0}!JYC(P)ofJTdFW!yu&(*my zIzXj7fihQpP|*eV{eRO&$ClwY#Pbewrd8EzRXf_h;HT|Jc52h zjT<~0n1OPWFRW!A&Sw=pIX2S~(fKH4ImC5R>vydYL?ytjrX0*`-H0P?X$&bvsucuoa;5Duw23BmjX#f$^cr@rAu#o^QGS2<7 z86^ZVl*h%63wU*iLfc4?2KYX2U81+8}olDLc+Nk1W7C)3m* zhu%kcgO`(R=UZmCu4` zW#KiiM%#7AJJj2n`gplM)V^f(B?#F;eeJgc+f2T0SsG=lo$j89xi4vgf<+S}SdR}r zyaI3yv;A^V(PY%bT;j5x%MOr}frrHw>-IrZJ?Q5;9Wg~`QVjfhC8w*`G#FnZTRdb_ z)F*KK(|nmMqotc|K)BMf70esFTMRld^as)2P3iLy6j(IOc^{`<{4%0Hd;~u`!tT3fbBQ0#}Ot@M2XYGxZh^8NP2|+_xpzn?6O9_qD zYl$kyXx3!1BxeR2;$!6s`JDsWl)OnA#$G0iAtP^j(wF1`Y-L7%`Omp%sIhLi+{JGu zG^b^)Me@hf>lT$t!PHR@P4(0Ze*vyq=azX}OE%4vbA?_OHPL0Y6mE<~tDaEKjkqtj z{Z*$UWBn4e`4SvdXSBbYojYUCwuSo@4Kd~Df^&Uy(;EyiLF6;|OqRzG0Wpwwl;$du zY<7z|*soiNTp%eMCOv*Z5Rb*_N=srGGhwn?igU)@F*IVVGaG&9+5&`4sa|_L<)J?a zb)FyNOvpZe%X0sjR%o_?srHI)l>JsaPEcK6Af8RUv<*I6*b>3znyfGixzVzm`qqoT zkS;k@!rFt+uY4H5EiO?Vr>B)p5Iq#b3w@rG1|nl0R!H&k*|O`39*{b)j{VzR@8%F@ zC7q~?eDb0t+i&kYDpNIUaN7^hCf26bEnkc}7H|o0%)vmeME^*{`=A0z`a3IKvW)bw z_;Ectq(mnUhFafM^J&I8Kf{-C-M?pCJ41IJbYJYs)uwD(>PXM`af!^v`v3``=yZCi zlSY9Ho>RO2j5)%gpGn@P1ubpU>oXeYN9fzsE#yl;rJHxKGWYUF{LI`Sx230iU`dy@ zueO!dHNosb+yDF+IPkb-(pTzCmQfNdAe%}xX;2MMSMTvHsYFme2&UBwiWzLRXU1=j zMi>d6tbR>u(`hW5kDz2M*_K^?w*r?%arW;^bk)IVC3Ei_3#U5dXMG6la8&C~O+Vv` z%(+*JAd$@pw%S_-Rm7-l{gv+eQ6uzmmD^lmF3PTa=pcWisfkHu*yYHdLzwetB|gO| z3p(E;_noo{c691JA5^*A(KfUp`(&-jc{nP`q5sa7rRlsUXzf`G#!|u-zK;2%QvzS_ zFQnogRvmgN&7w%|H$>bKx-2NfRJJKAdnJFQW4OS<)B)lUgxab%hX$?h z))Q?98TkMOgms2b+kmU`sTv|CqqH;3$@Xy~G%YZ_zHI*afoZ_=riaD{qo8#A6QH-K z9R$X@E#AFzV=fYKJc)tio&WQG-1IVU0)_R83*Sb`ko;@b81++Q*I>~_v5+SbEeKP1 zFus+|%s%IrP_xNtvXE7%X|XeRNrZM4CFDw8yIMYc6lo><6GJy_nrc<&AQQy`qn6Nn z1v^1Mkl~Z%V@U;mo|z#Hk(^HGwzneaez8h|L|AB4c7yy-x@DJYW)?MN@4D<1TZ8n6 znckf*jY_h#;hYUy$A;hL$*{RvazoYkxt%i4%-TrENBy2vOnK#^+X`lXq(IE7A24lw z4(}usP>r%W{3IW2`Q;6#u9EDhi#iKz4-V*I7rUU!Qv9m7$fV+-Qn+&6#UfYN{VuOY z-^D*i_nGvdr=QRvl`svZw_MESjZOmoSo{M4%dSzccC0}rbHl?E0d_|_9qsOj_7|@> z0E~Dx>19u|Y&p;(kMa$O>U{!Phc@V@AEmULEah% z2ZV(T&&E@{G^Fjh`w?b!VvBwSaXiru?Cc98KYAXF@JiN=#xFW(<*`o8nK(z?IIM;k zPYv_MkMleMf@7@9FR!rdteeo9`Mkow6|1d7-#}Rgy(=Bh23u17n>!5v( z*7{iHe%nG_ho)-!uDf@d?q`>5B+5a*_$^7PZPB2S#Rmz5!1+Onp173Oc3>Y;4sRG@<69ufQ|8s<* zpOZ~_+6JNs1vUah5>UZpDA9V?w}z04cfsz)5P&=kxm3UY>o;BFl4uLW#I!qj44l zw3D)2m;sa-<4q6o;)!T{eN)ezP7B8o+~gtw7;@SDcMrps-G5A^)t@|l2rx7KoN(bX z5Ip!gVdm5z8#=IaV@df_GjTSvJ2O=5=r&CKB@h7bRn*N&%eGS-o>GuQ?n>DRVC>G( zlQ>dB+A1a_sf>z~J^aWu$Cu}S6#vC!=CS8%TZZB9rE zc-FV+3;@Zb_`O2+JlG7bYj8_RM^A?(&}z?%E-n`p0Pf$Yb7A8z(Q<7?4>MXYGe_pMwe#T z{i*sE)%LtefQETJ5A=@dFHQp^Tu4rrJ`NaDO`A8hAa+#{Jt0z0^8p;2^CNp8EyVoSed{+6gdf$G3pZ_QX2a-JVT}G{jb1d(()x?85ol)6Xoegu5y{JZ8@j!9_D z^ZJP76-Uj))0T|`WSuvps{sgUeM-M~(s=)b(PwMqRhJUrs6Q#-X3H=D4^oW_X`SJ( z3RLOuPNn@*EHpu0`v-1a`Cs2^Kbp?|YYU$;))aW5w^ypAJ*=r$)i`W$RH1QiHM8t* z|6Ml;aFtv;*qLA7Tr<}lw#9qEl}z!&70_gtf2SbT{0mlZfA+6+$aX(SZNkS`4|*D$ z`bYP^!Z|9qum>>8gTU@@f#Q0`X}vV8>k9z6lN!eq8i+3V#7lFHf<=@+RCE$MTowo; zh6W<~qkJ+a8{CPC?$3sJ32C(XbGqCwq89M1%# zDt5T6UT$W`#D`(z)YHG6iS|3l+_*(Z?Jz~MSJ)qwJ8itYKqAH^8w!0*IEvuZB z+gZ%snNbAjyq>T*jKD2|FFWf^fIF*468j)@|31stPA{e|AJ}%iUo}{}{g;__052WK{%VwmTDW zQ}bsTSv^t3r}$Q{vFDYZz}~3?2ADEenNj_65?d|Gr;aRm8tr_?z3X@*BrB}>#`HE4 zO`XrB|A)?2smJFZgyHw`OY?mr9`vpW<4t5PK`H1GWt^KP?4w2prZfmlZl9DNEZ*P1 z;0i{m8Ai;%hA?$?UOFK&bMpO7ncQNc+a2sOKM%|$YUp7c_m1#?>#T+_?)_{%usPiG%{RP zd!Ul5BM@nF_|$pg8b+}0U3ncH8*u7*UwEt#Om2=d$wZP1D$zm~ zh5wv^psx9`ydRlig}z<9{e$AZ1=+hJforG?x{vSFS+&~sOgD#Lmwst^mFNdgYKmFB zzYFawkzL_9Ea!j$4_x6k(9G4+N}S|myS{e-3#LQwyhxH@|Q&tN-N*Iq)0bBzJA*w zcqu7mc17fxCS8~0%lq}5UWpaGA$b8CplY@567H(%MJB8Zr zzdV-$hY5HHMC8l--2_?!w0(0^J}V23S~Y4YE=}uDZm4OlaqV{>q~6V_B=1%74?Fsw z!6p$?+Hri+j!rUO#Ti6fVW}SH1knzovJ;?_$8;0__wKlVm`tmFXhrDuSxS=_BK2V> z?e95C%7w2khYe1|KUdM{#7MBEe>UTvMG3nQ-@c^rz}*?j$M;FrUBfeeRwnim*4azi zRp7#?>|sP~J_;Loz`SfU^hDfXcKAfbe#Qb`R%?U&z~RR0TSHmb=J$kLNMRK=0RxQj zFem=(fm$C=-r8LXF*gg_#FMzSdCE6akAxrxh^*}3Kr6IRc-9@z_PrWt_GL(_AB9BJ zQBALrHLKI5sQ}S+M8IhBd}a4dsj+~2GH85UmKEZ_2+=9y-jA`x)E{3@`d5&DhI#ca z?g!?~70Hb0KPl;-ahDWlZ7zdysw<7r`Epe(?~%0?W7{+a5Uz@@W2fJEtAVA8KRU9N z4p}*3ta?Sqoa$lwNxx&eRX{i0X3gF5{_C@<9TnoWq@NqRfWUY(d*3}ER#G=&Wk;h_ zSy2O}aDp+QY+4+uh&4KBveWvdGU)Z-fPJH~AZ4H>EVt17jHU#JYcW*O8Y@?vk%=~S9d z=JknQ9$YP+nlZxh$y!E$h}(Sy6|jeV##|+9V`^`lz5d5yzLqy0P6fBpE<=co?^^B- z_E^nigW9vpCKXPuO=`rO2U!ENWu5pv}u>hxSDlR(wu~&e8V9r}R2ad(loW1A}jbp>q7w(?6#N% z!+T(N3mkWt`&6XbWAR;rTA$tStSH%UZ&goHH~30ka_gy7UMMMZ1lj0;J6fE!4fsG9 zM5e~}?|fyQq16Y3T_a<~*QxYt4z!2jU_FIGGKsfDffm~KenZCOV> z>hoVh@CyTKtQWc31f*ZHGW-kQFtGuoQ%WcLir@KvVWK=%vhcqp=#<5>cV?ihS<%VD6`FbJJ;~hp4!x6U9iEMI;Z5Oc&k}- ztmk)(Ddzfc0?mcyFcklQDl~Lm($6&Cc@$+3Z_7isR3GXLo-EzkCw46H{AR!~jzqLI`e7WS{86wpMa& zn?hs&wP^_7O1T5t_&`Ns_x|uubn9IKQmUQhWh=wE-Q%VW@8|xmiJ5MgX-o)40CNYT zXcL^ZvOzo0o$$2-j)P6eS_@HEH57OU6rgB2c?g`YLaRWBdLMpcfgE6+9gd4a?9HLc zMqla5lEnE6#*_%y#iR;xj;fn>%!0adoC$`}w_?HI$n3|jlMm!}HC=WqylY`?KiA@crG$6x__>(jvt=VP0R?Kt`G0wlf=y{-9|rO7n@<@$iis!ZQbJE|-jaR&lT z-Ty(-H(hG0S4G~)KMdp-3Ot>dZ8+7*O6R3x=rO04BY(6D;33U4r}P8Cuu>GzfC*%z ztT-RlC5=bERj2t1X=h=$m$7$cDxUU>K$x#&R)AI~3cjoiqZ+?rQUH+(~J zt^;&t&+W%mHTw1^tTi0E#2m&PPQRy1HIF!0gSVgFRLkLDW8NG~ z8y$tKdgpu+BT`PV*oexI=7>qVD_{A9zkjj_KKH)Ga&VH6`Yqvr{Y&=hugcK6xe#=2 zd6|@L?k)=h@CX;{k)@skn1JU z>#Ga~Qj~;NyR*R4J91su+@(MI6?2n&dR%;$;MSba;weemXc9zk#Ozl$jWbMHK?VIe zeUk4*#f#IkbT_#7VF}LM&rqp_o4cf!(%!%NKB@9q{IV=lmC+h^Lrk{Mxcz$k+GyW> zcT7dpapCHZt>Wpf-Ji2rb~Sl{2AL=t>d(C1xY7>+olKM6wD#P*C)nV#T!k0Bl`Q+%JwGQSyyAZ$rb9|YP-WDd-u3;SP!6>3lR z`rHaQ8|HovC}%;zQ=pLLpHRO8(D^a4rZA!+ZefKKHH1V*IIhgi3zUJMC@2PK>XYB6 zq3H!bIxy%o^>Xz`L35r z6wb6KNZ!aApBGXwZxDiURrI3nQuK9hz2NO4zbo2xYgf0wJ)976)o2B-_$=Ves*mtV zulL%DCtMX=yu1h$71I`A}5p5 z(ys{D4vfDvDt-F!-1O?y}W>#2u9 zK-b{dfz;8K`FqIT?w^CRtF!M7C!H6TmPHkml|H@M5>)B7sUCqI(6%FVu;|}p;zz?S z@p^sF_VVXj?_Y4GUhhQlxH4ZO-u6WM2(hu;ua#MNZ0tW_Ke<{iCjTl#xM?}cH^CHn zsCDVPkgg6*LbNm^R`^NYUXyn@hfm!igSXPKu?s$9W>0lZW zBmF}={Z+Sl!(|F2o3@Qhc0TjF`Rs#46`>Pbac(y#FfR|M<9-)65SY13K+~mceTIRe zvL%(KZFk-Lrg%s7>T1)$OM33t;aca>(!T)_)Uk^S=f?ccqh29MPLHd&8$3MR?k&fb vABli~>u~4XUy;zU^`h5*J0-_nYqUd@j1W8buhNwseL_=R=RvvJ%aH#D7qmyy literal 0 HcmV?d00001 diff --git a/library/Lshw/ProvidedHook/Icingadb/ServiceDetailExtension.php b/library/Lshw/ProvidedHook/Icingadb/ServiceDetailExtension.php index 7eea630..f74ba9a 100644 --- a/library/Lshw/ProvidedHook/Icingadb/ServiceDetailExtension.php +++ b/library/Lshw/ProvidedHook/Icingadb/ServiceDetailExtension.php @@ -20,8 +20,9 @@ public function getHtmlForObject(Service $service): ValidHtml $div = Html::tag("div"); if($commandName == "lshw" || $commandName == "lshw-unprivileged" || $commandName == "lshw-win") { if(isset($service->state->output) && isset($service->state->long_output)){ - $test = json_decode($output); - if(is_array($test) && count($test)==1){ + $test = json_decode($output, true); + + if(is_array($test)){ $h2 = Html::tag("h2",null, "Hardware Info"); $div->add($h2); diff --git a/library/Lshw/ProvidedHook/Monitoring/DetailviewExtension.php b/library/Lshw/ProvidedHook/Monitoring/DetailviewExtension.php index bcabe35..35b4735 100644 --- a/library/Lshw/ProvidedHook/Monitoring/DetailviewExtension.php +++ b/library/Lshw/ProvidedHook/Monitoring/DetailviewExtension.php @@ -2,6 +2,7 @@ namespace Icinga\Module\Lshw\ProvidedHook\Monitoring; +use Icinga\Application\Logger; use Icinga\Module\Lshw\Web\Widget\LshwHardwareTree; use Icinga\Module\Monitoring\Hook\DetailviewExtensionHook; use Icinga\Module\Monitoring\Object\MonitoredObject; @@ -20,9 +21,9 @@ public function getHtmlForObject(MonitoredObject $service) $commandName = $service->service_check_command; if($commandName == "lshw" || $commandName == "lshw-unprivileged" || $commandName == "lshw-win") { if(isset($service->service_output) && isset($service->service_long_output)){ - $test = json_decode($output); + $test = json_decode($output, true); - if(is_array($test) && count($test)==1){ + if(is_array($test)){ $h2 = Html::tag("h2",null, "Hardware Info"); $div->add($h2); @@ -31,15 +32,20 @@ public function getHtmlForObject(MonitoredObject $service) }catch ( \Throwable $e) { $div->add(Html::tag("p",null,"Check Output unsupported:")); $div->add(Html::tag("p",null,"Output:\n".$output)); + Logger::debug('lshw: '. $e->getMessage()); + Logger::debug('lshw: '. $e->getTraceAsString()); } }else{ $div->add(Html::tag("p",null,"Check Output unsupported:")); $div->add(Html::tag("p",null,"Output:\n".$output)); + Logger::debug('lshw: '. 'falied decode'); return $div; } }else{ $div->add(Html::tag("p",null,"Check Output unsupported:")); $div->add(Html::tag("p",null,"Output:\n".$output)); + Logger::debug('lshw: '. 'something missing'); + return $div; } diff --git a/library/Lshw/Web/Widget/LshwHardwareTree.php b/library/Lshw/Web/Widget/LshwHardwareTree.php index 0eece8f..f479553 100644 --- a/library/Lshw/Web/Widget/LshwHardwareTree.php +++ b/library/Lshw/Web/Widget/LshwHardwareTree.php @@ -36,6 +36,9 @@ class LshwHardwareTree extends BaseHtmlElement public function __construct(string $json_string) { + if(strpos($json_string,"[") !== 0){ + $json_string = '[' . $json_string .']'; + } $this->data = json_decode($json_string); } @@ -72,6 +75,7 @@ function convertBytes($bytes,$si=false) protected function renderNodes($nodes, $level = 0) { $result = []; + foreach ($nodes as $child) { $result[] = $this->renderNode($child, $level + 1); } @@ -84,8 +88,14 @@ protected function renderNodes($nodes, $level = 0) } protected function renderDisk($device,$si){ - $desc = $this->renderDevice($device); - $desc .= " / Size: ".$this->convertBytes($device->size,$si); + $desc="unknown"; + if(isset($device->size)){ + $desc = $this->renderDevice($device); + $desc .= " / Size: ".$this->convertBytes($device->size,$si); + }else{ + $desc = $this->renderDevice($device); + } + return $desc; } protected function renderNic($device){