From cd81e722e42260bd0eecebebde26c0c967fda5b4 Mon Sep 17 00:00:00 2001 From: LpoAuRADev Date: Mon, 24 Jun 2024 12:21:08 +0200 Subject: [PATCH 1/2] module suivi cordulegaster version alpha dev --- suivi_cordulegaster/config.json | 18 ++ suivi_cordulegaster/img.jpg | Bin 0 -> 67170 bytes suivi_cordulegaster/module.json | 6 + suivi_cordulegaster/observation.json | 181 ++++++++++++++++++++ suivi_cordulegaster/site.json | 119 +++++++++++++ suivi_cordulegaster/sites_group.json | 45 +++++ suivi_cordulegaster/synthese.sql | 88 ++++++++++ suivi_cordulegaster/visit.json | 240 +++++++++++++++++++++++++++ 8 files changed, 697 insertions(+) create mode 100644 suivi_cordulegaster/config.json create mode 100644 suivi_cordulegaster/img.jpg create mode 100644 suivi_cordulegaster/module.json create mode 100644 suivi_cordulegaster/observation.json create mode 100644 suivi_cordulegaster/site.json create mode 100644 suivi_cordulegaster/sites_group.json create mode 100644 suivi_cordulegaster/synthese.sql create mode 100644 suivi_cordulegaster/visit.json diff --git a/suivi_cordulegaster/config.json b/suivi_cordulegaster/config.json new file mode 100644 index 0000000..8cd8431 --- /dev/null +++ b/suivi_cordulegaster/config.json @@ -0,0 +1,18 @@ +{ + "tree": { + "module": { + "sites_group": { + "site": { + "visit": { + "observation": null + } + } + }, + "site": { + "visit": { + "observation": null + } + } + } + } +} diff --git a/suivi_cordulegaster/img.jpg b/suivi_cordulegaster/img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10915601228da594d7841b575b027746be3a0ad6 GIT binary patch literal 67170 zcmbT6Wl&tf*XD=d!IR*cUrQ!^XzK!hVX2i-Sk_l#r0%DFFcy@iS5)VlrX^0#XW6vga?z$;k;xD5)r3 zP(6D={^CEAU|>Fu!NSJJ#>Rg^L_qZ7|2h730?6<%ES^wcV!Q%8A;Z8V!}!+=U<3d# zuphJiPs0BzFrGZ-h=YrV|CHdd1C$i-1OpTE2^QvmvVQFC_xK%vMTY(Co*(%fuW>^D z)n)uC1&hEME9yUJ|AXxR4lMZpi|oI_{x{b=fDjYoaq%$80MdY6_hXv=6>)L@Yr?!&i(r&YqUgh{XSkrn!X^)ora2Le5USR8W6^oQezqvvFp$9F1=hx0M z-O0}oebu;c`fy|6Ej) zO?eID298_;)A-}Nie05vdXUOiLl%(5Fm|kefWQZL{cTm=O${FY`?|kpHwc;h<`o$# zS=5f3ucBj^e*a-vPNZ9trdt213HgE zFt6f+#mJUZ5s@QJcuX^r?PY(Leu&2Lb{|oj;JWUAp{<7HCX=??-Rm^0%``L6kPCYA z{nW4+EEs@0v}$*RUhq5m2DVFzR#_|e_vw<#^y8OSI(*kr>RkQSI*;~LR||SwP%jnt z7h28D^3|))y+N!o!|L0h)bxhb^J$8sJ{b-wVmVuAU8_)ZnVJtGW}y1(D{qhNC1PSc z_&)%sK22`X&&B=qM)$16{;6Wh*0yui@!D~CUt6c0 zWi~Pw7RnTjxgXo#ERAb~(@p@RZ`%Fxg-o>g8LQMcpOsLzOJzYOR42Jkf1O|Q(%CG{ z%*k+xg$)lOsiGQFHAv zVX=qp77x*qpi%yCf0IOt9%+o-v4F_0iVcjWATI({k&S98{mP>$c*oMR&U) z2`nAzo%3Ddi&W0$lVOG35mQ6!xAl>7Z?!8;g$_cBi^*GhIR-{GEE~X^J^<`SFYU73AxqA3PXi+kC_{l{zE!mf(xhJBGFRZ_Ql^Oif zHRALSa1t^iux!rNCUaY6>x1-+N|cGI1!HBmB4}3`Bc1kAM4ka$qn{gcWLew}Fu&na z-4*b;XIo0ex%P&ry6{xneA@f72NKeIalu5#xCy$omQ03z!we;sCl4(J6E9oi>-Jy_ zFh}m^M?3pJtY$^F(~l#Nbi!g5TXi0nDSVZ~$vP?Gn8R{Z1>u2vPvS^$t+pfgTLsM+ z!_w;Ivx-g;e$Xz}a<{A{`KzGYJ^o-nJoZf3UyF&OXIta%TE6>6&%ys9D$oJSQAp`9 zyGl@BFpQ;T20x12mo^kZNAM*s(&1w_umpf;*1bS zES9?l%_4|yHSgXT3`mR zh<2*rmD27Upb}wTZiQW@p$D=#(UHa~pl}4f%A^F zi@u9B65L$+l9Zn(efhD|l6~uMq7y`U=t5q8-5!@op&3liIYDKbkYn$VBI4A zFgEDKRP#ts=Am8s-TmZ0WiBj{8&z`J{EC4$vQxv|8K9Sz(G?7|L%(K2L*9DOz1hx$ zh@YVm+y4NE_|**^sJEY4b?V3e_SSxo`8w>$%iKWX=xTV^eoC*AKd-o039(0>h*_uW+2Z)zbrJ~MMW@`MBzE%gt8#Eq$6 zdNnxl)>(=r?d90d)S(u$XaN4cv7rqr^aCp(nNGCGUlU= z#TJBrT@XUCrPV`dN?OC|wS9tYg{@^68| z)2$AnthFZh=_TW*8{%B>B|n1Db2eNLJm4D@GmnlE;Rlrg+aU*u4>MPhFOm#z5H(TJ zC@qVjzZ0r||30u>DHoc8*LUl(H@VkKG}80 zV*s1oZ}Aa~!U>ZjFl%-ovV2_un7U3QppK%q$)ue4hH8=U~01UV$w zPBXb#OqQC{30FTrck5YcP7XE)?>LwI zg-Us()w+SHgyW_Evb7inE^i(2?cdlU}R(jLD6gt z`}m~?PZBA87d${epLzIq49vk9;q8PYw0(Dj5Vb(!Bxs2bvK%f@!6%w;wQk+hOhN;( zJG|JJRo1N;nzrhbq*P^-hgYF3`zZs`KsponIb6NFDWjCnK!oacn8equYQK->MZ<8f z{26e4Q}n8{iumaHbK#*B!<^D;rI<`Rw{qQ}BR#N*u$k3itT&CN_A}<#R^I%4vzfB% zZ1Zq-LSh1s0_&&0%|$_t?A2}VC38RBFu#N$1wJg&E3gvty**wo2u(m`oo)PfcyVsC zZQAS()A~V@TG>`W@Fz&;02<`Ue{5kG*jsZ8msnrUbJ|klqOO~iz^|b7N}^7^WER|Y zHTH@NCzN%s#;cuf?{OM!v@j$Ue{kQ?5BOo$3NxyPUT)+&$*&pn7(ZR(wo0fM&!U7Y z7b=jgJf6St1?T6{O*}~+gRQVa-#H|~7A3}bgrqvG%@c$rZKT4Ov0;dG^_S^%l&0HKxib zUg?F~n~|KB5oT$y2LR)^pOCVP5_bZHzF(@|c(R~5Jydq>O24eTvhEHbQ@GDoA380;A|Fj1y6 zkmo9uxiwk8%u?pLAbanKDKy4w{Y$GuzckIE6fM|&o~pnNUL*(HeIqBZqxS=9HYp)o zX{1;7W>8H;Drr}rG2+9(uQ+da^4FOw6xl z3l1m6F%?aU`S#M)`>*tl3e5@gmz_rm0@Tl5QZ2zG;SA_1PvxmB*T$pI6FJD(7hMIj zMR^k(g|H#1EzGMAf$CFqyf=*cx}MrGA672}qMR-3&_g{^ROpLU9@y@sEyYgz#DfO? zOkGam2l!Pw>3fhWuN?XqJA|l8n`!lrZP3P&9gSm-VQ2cV+ zu(ox`b__@DX2wzd?U>q&ZPwxVv!ZI`M#A0uTFYoUcR>xu=OYZy-X>p20^^&%6M2I- zgV$ABLoeGZ=TnzRM6qa=Y9@zc)1*wZ-x}5b%4^ClQo0hBAgESnJ)@qgAK0j(M0>|c zs$)jp$gggA>cbq!lHDie#4=GTr+wJ9b;%n8)V2_RSe*ozi zA4HdraLq}3Vfmr~oZnEH{->SU*YThfJ37>;xc5D3|Gs?x27YPC|HJgmB;I8LBfcK8esXV99Cncu^(o=6^yn}8NEbDA_H2>S0FDKF z!K0V)%wz)@C#CntCFPNO-^SAXxvX~mij42GEg^F$P8P0bzC)7`F^?+Bu6E2;bmDi7eQomX{#lVCN(Pi_|Ho#33aZR`RTT4Txh zWGwOzV6prTr4W=Ne&WG91_)Ld%TGu5^gS>(pR||yn3c>L&MM;155C1Z5)omaiq7e; zSNCvi7CWBXT7K=mn`Zfxg)mgjUrQo!GR`@+7cqI`VlYx%F8}NYxyN0g!>S8Fvd{PI zRsyYUFRMN!Xe>RXK)|AybjJ7Vt;ndyTHu%p3bb9gV5EC}MJkrcO=bbUA&c{ZSE-tP zURv&Lixou=d5Q1vdkt;O*4bOk3qJ$Xc~Zl-5A}`lS<)BQ`eDU?9B7aWnqf$!5Jy_* zx?6M=F1xczc8+jOl_Rp~c9-Qjg~z-H9ja?g-EjS^S{rSVKUi+ZYL6PY|7 z!5L(NwdzxAN#C@UL|G6|FmQ29ymR%rvOPyQp~m2DLZN~{@g)nXoCqCp7D~6B^|zl8 zlA0x1PEHTMab7Q3P;_jHSQ1^8qWolqDBJT;auBYz)LAAagm5Pz+&wI}&i~V>o|^nJ zX);je%M__Xp3PvrhlYn`#=d@iHg8Q(ex1;~UuH$}ZrtXnlr>%Ky2$o#D$GKs^r{rv zx9nKy7ykfZQq<}DirH(w66Olnz=c|bFYcEy=z_)o)5ny)Oa?8M&B^#0qIu7&3XA$u zNw;auW9ii}*6D8$DG`765V6prs~t;_#Hl_1wihc!#Vi%U6vj;X7?Ou8g3fJ_t+|@k zmmS3rQY?92`?1n`kI!;)W%$j*&HX0RhT9&n_kv(If0=mox_@$a*I1g9UbkJZA5IXR zSSMcUYgiuCn)omkU$toKl#p~h;z{a1%n`K!f$H| zqB!lfVf0_N9Lp^~yz=ZI@qK5%p&Lc#b9Gr=@W8Mac}i+fGA4M6^E1}kt;Ge$1-L^J zcC-E_BAJem4l(>K6{N@!PjhAAx@*l0o96V*hlcn~F1OnDt<nmbUf2)``tnZixZv zpME>NGBrr5Dl^c98fe_g9X2`u@u07*n})RXb>zofy5sxj=yAl{D(K&%xys|oIr=j#hafA zJ+Hs05DFjCkk-E`6WUazuhF;qHs3$K_!2ijbT`m;!k3YW>_b8yU@;ma)k*W}s?SLZ zG#Dtt;iVCf4J@AEp`lv;y6_|k*K@cB_jg&ZP5n#wmxif&U55jeA;(P;c8;}9Q4QH= zl8-mEWH7vE*O7CCU;}sv^4`X2lU1FntY+4HdmY1e!8g3MA8%=O2uhaKnF}OaDdWM1)?b4M$nogM(3a77!qU zEFVP|Ev4;vbW3yKi|d`M=}3i3r_B?|2Aioss!A;`o91T>cYZ1$bv|QIm34HtCR(5} zPx!MLXs7VhcVz&Pq@AAmEWJKbbsk>4pPmL;jPusXuwh`eXx!L%B2RB~lv`=TXa=Kv zL*KnflC-uz$qqD>oC>q;#t?VaGd=OGX_=;^<^Oxf>~sUki-n}Z{qd`dCGd;C!y;Cn z;Cf%*u5m}0Tcs8qU)C6ZvZDA0Fq?Gk&ivN2H~Bd^i`eVP1iXjtA#6Pn-S4VqocMOD z24zVQ9%3vxHoEF1ddJDlpFQ`Gv^gUjJYy+3x}Ltdr865*pEbARnV2_UM;QGSufIWj6csPh+^h<<7wQ)`XCd_7hFYNW zd*gNA{V8U_9JR@ALWaV=7uW|yTS_2O_m`P`%0tc^=tI5T^7dN7Dt6YUV(z|gS9%xs zaA7T}zX;XMM1iE&s8konS6%!3v`%tl7z|a08ck?6`U+L`UW}QZ6y@CK6ovQm^76g~ zDWmH82rMjLa}D5P{sUBl;AMu~X$AIU9|s37s}rR7ZF$N-tuKFQtn}KB^o(C7VpoNy zfgRNYNWnqH@p|hkUDXAxjQN~GH2{DX=C2!PklxAh2i-q_GF<&DF3C`6GZR4cvRa*7 zp#GzxOP)_`d;{j08>_dLa>mZ;T=Hr*uHobnw?q=B+S`?h)}wtS_IH0?TVVOmU;&xU zIy&xkM2`OHMwuGdq>kvCm(q6Cju_EV69LvwgX&w6#Q>T$f1W!o6nS+x&*mi5pvj!< zt&eqNt4pyv00Q0de~Q9xYgFgfvg&9{SC23z7qA!lP}|%J3(6!95bX{%HlAsXmQ*pG zq2yWglrpgMl{Z6SYM*G=%)JfT^N*G{iB-Pr4S# z@SdMZqbDdno8P#^UmzRa>yO)(y?i5TzX5eQ#Mh%Rw_vJvlEJzMS4Z{f#WA$Iq6W{!V=(p3PFZchh39FUl54eFU3|4g{9CSF_vaHltPnVW#1~P( zlFpWIi#4G?(65W|n88kA=4_#(u6+X=w+{aB)J*h)5LUxQ)iRdGP( z9O$&d>#!t-fH%*S2H4C~h6%h;n{I%Gxj|&x3jP6fy8<7c$FHEhc8%p9Cg**`b{b>?~vQxAkhFS10hdTwqf#rfq z@*x_;_X@XC)}}ZPiA~ts&tV>-V?~Mwzzvc}9n~su@O7TTmO-((?k~T&*;^d&o<~T~ zzA*@VtJys1%U&{^Kb$PW@G;@t*ytqm-J_jNxxg$+> z^Y`G`@53#FAoBPrG*ibrtj=CC30m%zBISAXxbqwi($&BTrVzHbe0wJ=bKuD3y{XPC z9NNuRz_raECA=<{XrzXJ)FDXrRv$g-`J?_AM}N8gGF=J3+7#>X)-Ifr*!!nyq$Ix0 zZu<*#Alg&2ra4*9AAadoNz|(FoahxGR7RxJzQQ@D(e|l^Qn^v|h02Zp$n~t!b>uG* zdXJ6O$X;|IYqZq!rdyQ>{W-1{YKOWUo@hF=ax=QGb-wt>edA}c*aHFQNk-wh5+sQ9 zEomD9E?GmgW0`ew;ZKDK_#i7`8MPuVy-sxeBBp_|ZbQu4w+oItR`f1WWDjwR<*Oax z$szLk-f&wvEdqx3nRd)rsOj=0yE{eqB6O7g@8)2|3NE)s!2xYjl+s^IvzNFb^!N-SEXnZ>{jAN zcBxx8r}j_e4z-KoOC%NCEOI%~1fq4yliXap=R9EJFfp=t+9#f5v%vYK!I54cV5A%F4br9YmGGb9I;>o)O8y?j;lrD;Vgr*Bx{=*|T~Cp^E)P zMcM=1unAA{&W%%ytv1ZAzl-w<- zof9fgk-)8ao$p$RLWE7~Pnv5PZagFMT@Z?Aiz-*O<+U?k7rY4lS?+GvB%TzG)4GlH z4AS1CX!)U@+QIuWKRDX7_Iqolq#NiPyWK0CeVvt4v&mW&#&%Ysggv~>fe6s3XQ zbQjf%wbKQybt^B!hjm%G8Y%cqVpi0Ee*}H>$o2j9VmiLdHNrW++@Cx6*d4lPB8Hp)$wAk=iHO1{s&{!YGPqb-C4+?@2`N%6Fsu z$lWEShho*B_T6s-b>eyx#GHKYvArB)TKQc~&i=$*tLa77TW+j3GCm5JX-PZYDESY- zabahr>gahH6&g`4V)&D5fMHd8E60(ptg|G6^4feE4|l$4pXx~BLgd@imUjdFlI1mj zmlZa(5|-6jqSrLZ;3ZWyM*~q={y9ZUi=wBAht35in>ptBkjN!kDtepqr!c)Aoh=Gy zTl&L7qs2?=gi=X4xgb4GKJ4a%Kktb90eLkW=Mvh7y#zjaeWH=HI}b*6?>rQummUQr zSrBdM>!D-=Vzv)6TZF1+!bvY!;vL_xVlZcu03V(GvKqUI`O`HG`^(9kwSk^&Z-)Ew zZ#O$fyerI0uLubOpDfDn<{U>xee_W-4^{pS0SnvnwNWwih0jMiIq>T|0FLTQfE z6&$qxzU<^7)Sme>v}2-j>v_Pp`ZoD1v()pi&ZjWyb>>QIbe<|E5~q^0Zb99$R9}x9 zeZ*{Q+u|`qcN0GuALk14vo3`Vw;xXp&b81Xdexs{IHAf3Yr6WJjpqTySQPs+weC?y zN{U>FL!4XisKvGM*#omC^AtIG{8-AXgo+AYd8ipD*F{KE4p&T6jLK`)v3A?EnO2$G z28@$mbjVVh`3BcBQeXrE8geEVvoh0cW!jW35bXt}uCnb)4a$NSx}uJnQYpT=*a(?% zX2h~DPT#XFwho?#WCQwqYJv-CnG5A*Cm(2bi;&3YuxhI6+6TJbSIeUmz`x(xZP3zd zXM$7QI=k`424Ih2z1MD%YH8Ed-)@6cV=_Uxux_JbtZ0+->cm!s!;<~*V|!ez z97Du-zzcVihEpa}i1P^eNq=QP2cwW8!}OzO%i>j`b?q+JfiK57?bOH|WONagjHk#x zMT2Y=cl?eGQU8*@Z`P<=nKfia_jJ9K+e^qyLx*`rkPL6pqk&imCVNqx`0#pADrFtm z`?_1$@h!31B7^(|W2m1ZZus%tXLma7y(a^+#EVb-_%+>mLK?DpC&vXvvc)5Myj(c$ zb_c1LF6i8hDLKEHf4l~3r#Oy#9_MN z=&-m*+77mh-?6K*uLWF2B#VM@wPPAC2%X*uzU}<_((3EW5!}h#s+y}`V{h(%KXC3y zlM5I<3&7ZI4l8uGC!0EE9I(H!QxHO`V1^`4(V1nQS4*Io*F{^^*P5`Dh3DncesJ#1nh~4bed==0>(AW1L;oj(1Xj zzD1F`J^57am_6-l94b%xACR<#QSqjQ2E_7F=wn zF2gNC8|xv_F1F*+-;9X31r|o+KSMk|>DP{z}T;)r$KGJOV%Ey8&uX_6dXL)>0iDF>$7uWW7$$AN_)<3UJo{>L#xaR!l~aAH`u?^Np-D#hfa423DsSz79HOr|Le`GWK42}C!gKY253O0ZJsRxW)! zuQ}@Q3FTXI@u-(Q(U_U*FsKFj8z4k1I{-CtY7l@AlA&88e6)a)C0=i1IowG>ntni{BYR(tuRXM#Kl-#Y>ClAZYODY-Q!}Up%V3w~}8b>QE(dyK? z6I`>B77_@I!mTTf-=~{7oIC47hA^T8oPhq!T-*N5rE*5!JLYlw3SVi?6YC)}M`xF_ z?qJmeS&q%QTAvLcGddmX(!Clmd$(A}k0M^lk!V_hovMP_gvFX`jN{PF-~8R_18AP& zg%z~4V#CDomoJJ#Ih zJ3wH5wa#4KRGs~R2UfipihX9A!eE?ejn8=?Bfb%@NhYw?%o)-{1@(I z2&enJTEh~@t5fySX?)yOsv?HCcx|Njff{Aep7QGbjOPHAf=j1|!pN4YcbJE!~Z!6y3k33fpJrBZdg(49zfc z0e6E$yIsn(I7MG#|J14~djSDR^z{(jpDFlEd#ZlH>u!maoC}~MZh?n8Du*k6CCnUb z8$R8tShDLuL4oizwn=_Np=`ZQr4i{u9$pqZCOCTcsk!aM0V)`cqV-Bpv15sc{0dq0 znGwoCmbxo^EGu}XI4yDTjQH*8Hu|?hHIR7kO;dZ(-Aqz!hdUjFVvrp+{-rGqBY2_8&ZnIqSRck?a@hRq8H!#po zbGGh23{~pMZ>#Y>iK<9Mod-z*V=sLe?Qf zcM;5NoJ3JDMCqU;TnX4y|5#vUxWs=Con2znmb18yvdp{}^8@6yYl9VM5=%84j)zD7 z=t#OEEyGr&DSe#<0xd2Uwsx~&B)TpO3kz??s2;dEjAI@IVpY-5bufADP?a&}nDqW~ zYx`~gm*rKPK5R;V({Bgwfe46&fNM`r9K<=0Q^bLs^DgP~XNAJrFtsJeoGoiAfS5ej*slFQxyq(0en2a&b zGqH80!w@f^BuSEl^4j&Y-PMm8M{tL=uJfwT^$Yvr{Xf=ThLJZwaJ-*h8Amh|T%Z27 z+DtM^#N!3v-aWW)dCpAmU+0`IFaa?kNxR+U&RjNCpKF$$t`EH%5Y-@-9<|MbCg|EL zeUH8lVL9r;L{;dTXX*V~E-dK$`Y`R~DA70vBJE|P%*I8}kaN$njAXIvpU!C^McFZ} zh!FG5F;A~k5=?5q7%0mK(a<=yAXu;Z36FGK5ZC6#WZp|iR`<1T0> zoFh-6>9Jbxx^e$di~HQm)drR9{xZOmXBfw8z3~u~a`GT}4O)zAhOUl3#e0W@`Y;TDbQVXitu9`$Fw~6aboUf2B^i&%2rSWR?D~mb{aLlrl zmyT{RS$F{m87`3ioEe|~3Je{JZ9A0Py1z~;hzS74#9#d+6vj+w94mD0_MM~=70=j@ zqWyk0wW8bIqP>T8{rCBuS;uq$N8c3ptL91eIJ-Cnxb2%!emG;8RFWxFmcGkK%&uEb zg?kY*dv4Q~1@RDe>r!&x!bLPqj= z>1q>G%dc0>prWE6*H{&u&uc~$%H;*KEwM5|I_aZa3cz|VU*F*nTv6#P@0G4&ym^pu zl(q@1=Jc;fPpmJ^80n(P{M5wmj<;i12cBfbTZtb*kr(&+*KW7ZaQ^`MxI^-a5{s%R zZS8jr<$Ghv2$Z!kYJ!YeQEEFINqJ+O=q#io-)_DJ{*GUH`1p`Y)uZJxf_UXfU;}CncG_LxSI(2H|D8^xN^N?M`-_d52+WEB~ z`x8rnuVRDlq-_g#e;cU3)cauO5+~yRRc6c|$ljm6m6p2`&9 z#3Tn0y5mcT7pbMBZ-^TFVD5qp$MJ?UZ#j6oQEjywOt zyujJ+FQqZT=~t$c!v~qB>Pve*KmA{!*n5=^WmQfJM~WcHamo@YlvVN392?Oc^rH0p zTgT*zURAQrQn_V9`Tmjb%X9x6nRpbN-~-YRD0P48_HoX99&v_wv;3F>D6A|-dutzM zpgvQs-7Qm0KV}EA)_G1a@zEAQffeh*mDmP+j)w3971LdfqgTbQJ z?2~RSM8bVf=PR>Dj-nGB5?(_P1leg-v3{b81?v+_I=Mn>YOZvu{t-KpZEL0GF!uz;o;vVIAY01+r4Dm>(7=TYI>@ zS5saK2-}#tdo1e4o{*D3jyF&-WQIHzT;8K~a4(O$q}lkmKeod-Y2OVt7_-s^tGi~R zCL^!g*A-wVI^mTms$rxvF+bQ7HxqPc6V&OQCueE)?r>2`XWfi=zDfd!nCgE3=&Nj? z7ge2b8h-52hI3p#d(48j`Hb^bTQ`?StSmypIv>n_&vtol&l1aW{9Y+9C`Dv<6jutm zIsX8wdYC@V;^|3#X5~*Dxt9G8pr3_jO$v}`L{M!Utv>VffDlUKNIbVkwP;QYj?uIY zLZQk&o;o>0k(W9{L9a@vK0PtT!H{&Z-4iz=Hpa0gwZ3^@*^tuq{d50&t~x>!`TOyH z=RMbp<>zB<-(?JG@xF3iBz zM4Y%-f+4U&wb5IQUa{`7Lq$Ka?UG{k%cEyILT<8{o3j?}98|7IuP=}vJ#a%+B}Q%! z+8JLq4NCBeo*(#?Z{_aug#Zcpxl+-)E_DIeZQK3%Cp*VdhQ zM*Hq(E*i??rZ_~MF)1eUF`#=eI?qSE<-2#4(2-cl7VV_DP2WNl<~5&(OECO$yS%7o zK)($z`(>MBJ+1t)Xpk`Z>I=!W#q((X_4Z|2hF>~`X!VitJG+`CS^7$71A5s}fKM@X zkWggX$z>Ck=a&oqC&NF}idR%lo;(8F0^CBkHH#jQ^rEiRE;C8*{IRkj>wP zav3i^IhWMy_#cejF7nJFvHB;BbK$bJD3bo_r@J}>REnhwt#)^%vukNo-h9Eh?Z6$Q zFP9}V^;4~rcUmW>_DT~UoLl6x^ro_L?t|FoKf`?dFvx2+qwC~u>r&v)4qLqQ{wawsMOHyE$>B)0#nL#YGqb^H z)E&33f6~CikUwRLKFZ>}k4EMh{7J~bPzU-=%tkr{4G=(Z+>@`enp~dF;9|WD^iKe|YBa z+UAt*kbb66__Jip`v!M?Cam^OALW{aR0SQJ{R0?fx6bZH*)q}cwl!8QO5`nESZ00v zkfK^cK(iX#4^^T193SmHMRCdkgaIMf<;q}M>?SxS`83O+nb(IFlfDQndr8T%naW~< zh(XK-ppbr2PD#$HRZkcr zsT3YhX-v)`Gfn-_NZ$rNab%Q%P;E2BTm&-#$Zf%D*)+saT1?@`y0);H_I^89l-@QR zJ+}I}#Jbk-Lyiz1v6$9B0Jcq$EqK%mQ$%p*xj|p0b)_SdHX#XUI@5eq7wUR;L;rPM zex{%ygW1;18rhc9LlbPIm-}s?6D}Bnnq2cucldR6SyOvxmr0yg)5=~UnCaa2vTGr7 zk`fz~o+&JecRR4xYPz=30^=_KOP78^LT*)S4U5*~)o`J9HCFssCJzo~V-i}vzuyl> z!9tUfxEAkZB+CgqsCJbT-m8D2?*2i>npzMn_Vvo!q!s5HA0{Q8{y zx_AqKIf|n$c-Bx@I8?AgXGwiL;*IE`|7^qzd7W&zyOHy=#U%RZoSLmYii})?ZXm53 znEoI<-W%WaF!qxpSCdndlvtOcW2xV7zfaKiGtp$wa}M%rOrCvXwPn4c!ouTt{qsTF zvyrzL%&9!XFNoD?<<~&;>+}rD;zjbZPqHcq^SS;3X2_En^5zoh>C?6ktqH$NCyajw zx!_~n+Y~Ok@T8piHV%qzpbX?pn?G_dgui^;SL7oo^vF`2I#-FOSN?3WjDW%g3F_y2 z&7ARrB^5+=LAh&S3*AkaCn>fHFSBIO#?9B(D&E`fluxdK>&!X+Vme-Hq9jK>i(&)o zw)AsjrZdIlj7}pfW;1SWV#>Qr@vAJgzL9~j5y*Fc=|Ugez;mkU`WCQ-I`@j(VNH|B zs^tULN})3YCUokhkI?CtPb%wVzO?}7Gg37?^4)#G@Jqs(BdNhsWfy6;e}LvJ*?|{i z5H+2~QQNJ;rbOl3&~+}UA&=a$Ic7Z@jTTN}?QO@8vjjX#CL`JT@etciUyEuGbfov$ z$mMsP&g@05x-S+{BOh^;=@{xaD@J-IV%$KPmf8$b+QyQ0Zg1hae{-~6!+ zn`q zfW-uoxj*r@VD4Bu95I(l^P;b-=jYBRAofv`MptiZ8(TG=S$NhaN+{uI-Ycv=ys9UU z*J6;NlP`X>!Jg+_wh?)JoYR+!8i1`za{sxx9AM`Bv0a>&H~?oMTL=UT9$vOTtw9Mi zOtdEKUbWk$;QQDtutjqQFcIx$wffoi=hjRfRKH5tlm82~exc~-Nnr5}P6dB2<`f`y zzJv*^IJf;4ZZR7jrjRV=@|W4Q*zMcLL@WY+R zTL!yK@zRTgu$U0e4lA@&#{EJjr3a)b{Ck6|f_mY76~!qbB}m{WG=uz1yEwe26~GXf zo%6+5+ZH5t;@HKAKX2Vm?~42fpf+ZoJ0GDL-E`n)&k833k~GmICcx>OfTu+W#r9;B z31nkPAnlBq(39uaF(|Fj_d_!p_-l+Jg(D{5lMG#oxXh_0DR@ja4yZE53VAd6Ib$<+ z?s)H(-mT2%QNFosS#41#x_h7U4rOs>ys!KNiUW0hB`dx;&!ltQI3{wWaA>#$54)gt zS6m-Ihqp9*f7qGpw)jJK+Mpvku+{#ktOZ-3jl0?frtefM_n*)!_tW_P9Wf)?XeodQ zX`gYE;a{iLboo2~7XZCLLchmM*XaF~lp1^q6|^ziM4&3i3ItFGU}4InAvTZC@~^S}KYrI93it~Nv%8!7Ys8M5qtWb~Z&Cf}U!-H} z$?Oe$OXF|&D0jsV5b6@Xk8!7XX33Dp9lgD}%*)f}GDrz0{sITJa^dUed4;D!DlzWO z9BD^$%lt*~>sjy)t$Ct&k4c+GzPA{j2P##gW0h>=h6f#q>Fr##j-R7xI+T{Tx__P_ zJR-0RAF;=90q%O#-a7c5;!lg3{F?WQb${(WNn-LNa)KbJ3BUnB01Tc0?@#c}jhgFL zZ1Z`tNyv?W8;KdgC-kq;Fm!Pdr5|k9H(P9QPEft$v0ucW3Sw&=6T}U5YiyTtlv_JH zfNoMef#ygQ{HLBX=uLiz>Hh!~J{tTX@ccG@4AO4(hKe+|j^*JjlAI5ju2+>rltK$Im z<8MxS;=EkfFQJN*C0=cEzMXweiZxv{?bOTorSS-Olj1|_J|MM*3D~NAsiWSggF6#| zb|}f~&P{qxgnl1sm)17-MrnN0k0~Gu(Mh=R+m5|>uaGq@d&NEqTldtguWvNzVe%!B zBvZAEaL01CMmXaKr#0yx0{;MgsA=QCUN6)w^^3^>T{~8l1b1?dkq}PJ-FAlBNa$<2 zjv5thDl)&5A=J{$_h~#k4~KNS*rS9f-ocqUW&rgExc2&2o&CGaxJZ~`mC8;dA3ht? z9Z1c3E}`)U{t}Dp+Z|I)Zx3tmlHOaHqmErU zoCbxi6~iod0kM=|8A#3sMQ;sK8><(%Sv4h z{5mhUdPejvhJLgdT)s~XzLJ;{@-n_!;tBVSkKIHjD{`w^sia*J4tYn z{i#|MY?83`Z1hln01wu(KV@w{PrUHAiY#P*_?ud4X(iRHt-4s0+rlGr+>OfPKEpV! ztH%(uD>+S%ZmH>jqoMx*KJ~sWa@3PIg3$P9;~mtu+U~aJ_h`&nVOPe_r>{X?rSOZx ztAFrUM>AbUk?I%MN6fbvWGEp3vmT@tCmlH+_2pj|E-q7CyZcKt;iB4%?pTBh6-G~B z00ZbN);7{%b({!1SovT`El3#f;9np(v);s`vH}3xE=uf?JMcFW0o}aE>Tw39a|g>8un)Jt)7XlO>m3mL2}dG+ZFjj#Nc2abCOu+ z>GY_=zumRieGy|%hUGLn4Mhe-mXe8f9qz0nBOrI}T>gV`Xxe;Ak}A&2x=gnonXbcB zxV7+Kg)D55+4W0>%wh)sMx&5UdlR%{)EeS-ICPzL51wSv^*}=Xt_bp{01Ui*ZtQZT zd*-*3=y%bLlU>WV8d_=&Q2AvP?pI-)4st&_;5GjMhIX2o%EHz$8*s-U;CCY*%Acut zqf+o~#8TZN>N-rab9HHwBlXBQE7zf~O!#@>om0mV#WkdI+t|odeWpl&K&0p8=v#`F z&2MztT(1!Cp^WtslomppOt$ik76{tJ7{8wA~2_vWZRE04hwDVkx^Z#yVV3} z`)%VwN-E?P9C6PEwv;sUIeE3ZK6dff!@ExtYw&8i?9HeV43I2qDN=JL{{S%aoRZI+ zanNyrMOyf=s7D^Awz6wB`ZVz|22F*Tm!2`7$23>SV(Us3r5Md6=*s3_Y3g$y98^j1 z55*6hZPqV8^mEshYOER(KpTfVSE2lLyma`5;~l-VtHJ*Ok>0$XYvz-78+WH1el_S) zsmmtUc5p%1&1>gV&US;_sI4n2$7N!mo_MV9u^Fc2ag*s=nm(7#ACGKTz0Dq8W3g08 zYBjE;0f5GFPtxYN5;5d~T^w2nmnUc*^`WQe0yxf4X1OX(HnE$l5~i7OV{NQ{Q~Fm& z8t;gH8RD{L)7BXoq&OJ*)NyM|Zzj@yU+)_E+L8CJk1A>1w0akXZ$8H&py{8^y;DZi zKJO;HA4}GuStDhUat}W+uTt>7sFz4Kuw#xZ7)nZZu&>bQ{AuB+JVU0r*ctKOzFG0t zg(UFh^oAtby|LQ9z|&?~BictFoq6}f{{RNZs7B7Q=Wy&RrAgD3`W;l|%c1hFlj5cq z!WkUyKnEthF4kzZizZeI#E(%fc%gIoX4faw{9a_N!~D7-nXTw|uf8!C!G+v#nU2O3Z>jZ15}1?{w>(KT{i5 z1RgV9h6fexW639|S+%L_);6zaZzR{EONCIsX1PWtHIR@4I*+L!c5Y%wGgx1Gw{_&b-&{0i{)R^4N@F zj|RFA69&1_c<+hL)-w`UoxNn$bbSJ;1aw*!Ub0w>}=dYp9r^Mz5TxXkh`J+C=xcn-m zjmDbS-b93HcMpKv;SNtz{3r3|yNz`t)RIE7$7cq585Bz={{Rp_U!_pcZ0v2XAW80R ze$LP3s>>qm=bVs!o$IkxR&S}Kq>?tg1L1VMx7E$;ab0Gt#8SaitP-%2I z3~rKmR%7yqgqgJIk8R)G{SU2Jywu~q)7MV%J*05jO@kh#Zr)|HkE~|7k5G#XoO<%7^QHd)gaI{uHsSOur_-mM8|1T>Fi3IHlO$mKSFao0PNt8! zSLn1iJ<8I9fL;JbjaObRDkVk=iW(al>OpBTyinaI@h0RF2H1jl<^Mp2Uua*1h^rjvaDB?Qgxx__evp>Vw7p7rxaZl`P&}?-k9& z7U+zOq^khHbIP8CgX(LTxX@C=k%qTj?Of1_$wdN#XjxZ7S>%+XAWMhfl+ zp&8@7eMcw!6g%SO=YZ|BD~(#t%Hzo}$*n_ci|L0WC9||P58hP=jPt9~}%-^y9 z0Ehk$=uRpNM*OmMFBhaUXj`KbxzxY#e;Lj0j9vamz1;kKC9Ho_r zj^$e<93F>*$FZ(UT(i;qEvKtM%OA;vQVCK=PELKeHQ)Gy;z0PZ;tf|`w3W2|I!RVL zL2?HF03{Ouvi97?jynQ7*Ur8^*EJ1eT$&lK9bOkJ0Z4V;w6TSOjpNk zOtB6zR*A)YRhsWw(HaX>X{VZ18x(aJ$^KQ$cyqyHRBg8sUuZhaW6Oh4w37oPfUY_o z3HPqlMtS$eb$T2vr{6}&9Cv8Y?YM?O2;HBQk6xW?)xcR&=1*Ik z(b)1yz9DNq2W>yY-a3X|PfxQ%io;vBVs7mt1mnt+tcU^s09O8(1OO|ueM%Vgm)1qn zc!NU)V~<<0%SNP~!EU4Fp?rL}KQ2M3J|pRHYML7t@?~E*$2GGd{n#TQueV-(tHpGk zE5v>a)o0XvA*xMhAY42PC;H?g=2lbk$iM8cInPS>>0%*TJe7!)S3}x#f|`=6Te5`Q z$IM=1Z1nzrrCp0lZ}?aq61h#w3ThCo!!H=*5J2?L72}#uk8I=ACARSeyj~fI$!<#z;@+mjwo@yF1fP>!Cb;lKE+JT-Hywy^|ua9PKDZEt;akX}h}2tG=MB*@3+ z3KR|8RjewFNX`#LXQ}NU3w2Ff!u}$-@fL}3G@IvcRTAO9dLv>{#4Azrl?v}^Qhp2A+gMur^J{0J_UXK(cw)BiiFPDwR zLgby?oP5kd`q!XXthznXyoNa5Hp)q7BAv3vbGaA-H*=B?xb&|!tlde;^tr4h%6y08 z=zp_(QFk5VN%kk)!Y)dVqaga@`d7XDBG7F$4~6#{-HeLqJ=$7D3XHU20FbdKz6$Uw z$-X-2R=yqaB*>2@rKQXPx17c05ROUNf=MNQ={+;)Uhn%jc{*RhRZ5`FvxVDxw z&r~8nGH?&w8TR(4WRt%^t2ri4c$n*p$Jl6=?&bO_h zkZOV{#|jAJ(D8%RS7Gq(-Zj-O?8+9sdrvko886Q4p~nok(47g}pw+Oo+N&6?cW+-E!DW0hgF z@J0{5K^?2R@lS-~)ii6nQwK2zRgP1&+j8=Ro_Phj*O0!KAA@`+FNbZWxR%yA-r^}P zoFj*DyO&_dP%+r@NjMp)S{+U3dMCjj48^Z$t>P=jaFI!}J6TC8?6?v;b>MOG`kMNe z!`2r%w#iJeTiIn^Hw*j5J&KN)>5TDS4d9(Z<3sp=;rn<_BNobwyFY!&b|B&m0jS!65AbKbps#;hdxrQ?{}=El8$)PK{%*D~6ALvZYIf^sX4l$2#SzU=dP z^s$L!p`5N%1iKob6;E9$Br|cR(e>Faq{{WJr=m%7R{p_*w&+6+h#FYa)l(mdAOtV;7L@(hef!0V1{vMtiPf?si~infOv z55vC~-A6o;O3v{TuD@x)?anjJYiOSd{v+Nh&0%pf4ZE=w{s|tK-PXF>JE(3Xl&z#{ ztr!cmV2^$~uuYoQ@53_u9XRboOIR5c9*2kmTT+L>&YZ|4ctS{yyzH++x zi@*TLt&@!B@~@nDiOIGrtLk{vx85bZ)8}b?P2p`u={&-0?qQPFc2GzM8R~J<80M%+ zYvL^)^4?bPyIic;{{WC})N>veC*{cFt$TK*;H!)EZBlJRP1FQtNMnyt)Aq?EXZQ;S zJzE5Po}RVD>K_hd(se22o5Rg(DS>1%Xt(5fWE0VHgk&CY4=e9kePS&*$uH~XjkJ-= z!|@|Rftn3XZ**zYe93=o=%YXFV;`+(K@NrDjJ<}XWpsMtDU_efIjlWFt~9$lg1Xh@ zb4<;)EpFHSV8F%+3U~({`c^&Gg=ceZXLWJm{WnpxU9M)++sc%TW1gMQKQ%bfr5STZ z>-zI4c0HFs(M68cKQ1{O*6rn#GDC@Rk6&u}{x2&)d7jf<*L*Ph!ovm3zGNrR0U%`{ zp1}64nLKghohIH8ZghVWMB^ouO|*jpk_zrq`3mcdT$j5qze6c4bUOWWMzEG`tr{}p z<^&8@MaG8|5y|#DrnTR;N6caiGIi`!{{TwI zo8r})$jLpywS0f8xkilspjSk2_1UCbx!zn|Ngd#p;x^pUZZlav2`JcoRVnv8lA1CloDy75)HdVX&x{Ou;_9R$}&&q zUN`Y4T=G8B+JuqZUXXS=j4Gpa*uTS!V4l2JulSnJ!{6ESeTMBJd6N=7jql#z<0Ek$ z{VV1#i8s!-?HXMhvd3;6S0E2@kL6QBk2KObqwh0^yt?~z(lHyG>FeIFczeUoaLq6J zwA;%_I5m4m(WY&)wYp1^00r>h%N5YrSwEj5&tq`bd@zD7tQotLgVU!K>q+}Kw2r3@ zF3n4OjY`hW&f%>snk4~JG@Pq$ZoZ1Q4XwnmO@9Jg z`D#pUbX6INIpc82;8JQj=9UG=m8#6^1pff&=q~pvZBdRo9!cw(&BjYa*^9e1d}*ZU zmS1C%D;TZhYmlsMSisD?Td6`j;=HTH44N!(i%W^tHetV*C|8nP|nc^;wjW^k!}fGux{tJ0KoLFH^w(lZ>d~C zcN`Zs*Fd6tp|*uM3>&U;2sB~gO*#7%qUGE33Exg_Y71{benVeJjyybn6Ws+wA&%owbF(Un<%qjWhI61$+_UKlmtp*M{YW*Toasc-KZ^ z%DTpv3ADY9LBMHXa1n{?@{v&dMgIVTl4`f+TTcaeb#%D#fv9TumR9Gg!l!8C)sND@ zDtT^qh@Y}?a=%;Y_?_JJlD*HRe`)X9Let<6hi#;S-aGwr_jlRt<#G}<9b|lSw*6{7RyfMttv63*a&~zYR&4_uSPrASF=2C!`?2@=CVs46Zm%5U9{Rl zNL$O8XZ^9s?t0fx;b-uTt>%qurCGF7LwK@z*8}&<8XSc#dVyIMKMJk&OCL8))G*8U zR$;e~OxI!IKZkMnMH5lIyOK-2{#wHhSu>u8A9#CKob7ecS4{fL!KGo-MxYpmn3R|1 zBhw=Tw?kbfpc%B!Ete}WEgX@PxO3284AG{|S5BYXA z*?31%g5SgTu%b1!&8mo(%lnNM<^X}}Iq8v(I*PUNBI?^o)AcK%<;7`iht9Z{kC&W* z>Hh%MuO#?q@oP)*mxEhU(=AfQTN&lFl@ZH%!zxkv>5zI31}eFQ`JOL*4`@0@HdLC+XC7|uN_2jX6*d1G~Vb>bUnthLQq*jQNFZIoMCFUkzAqX4n# z>_u{78}?GR!)r#*HM7)=Y~vsjao3vYt$bkK6KylZR{CpdZ){%D>dG^ZJ~jl7eLyE3 z>b1iu-KZ>i;F|Q^3dApm?qJ$?%9u_-9%eyS=ia`54OPafv(U~mZ)4FsC*wZ_{6ar% z()Fu%mU#Akmf}^8<~JAxC5+>1XEiTt<~=y*KD|Ch_*dd<%@0hu)l${uzp%7q zx6^J@%#ur>yJH&(EKoie;~y%YTK7Kz_y@)w8Suc5Sono^;wIW1B$~+@bjjR9%2@6P zaP8Zzb;e59LDJ~;d#m5IERN)iaf}=scj@_8n*3n6hA$7Sx`a|(TUxgARzNnNVV+Od z)|++lW5e2Bur&MKYRbm$Xx9+mOt6ASJs6B+AIBBN{Brn>q-j!ESjTr`eQ|OAk>!a5 z$ndej1(e`!&mWy|V*UCui0^e^wXo6rU!}pTX>N$;_fB@;j{8`8^rF0{!@f6@!82VY zy{uRE7Y9FPya#AtPS)V{0Fm#SE8#w&QR^9KaeEl|Bk{a~AB>(mL&kN>)1P1Thptz| zx}md~v%tl4zY+*fjh-|a;kB#G_x}Kv?_58R6#ndW55;;gm+$1f+0M6TIjDG~$i-E+ zAFoR0^)C@h*_eMp{7F+g56>!Hj!Hel<+_L!l!G0M)MWUNa{HLUbX4+yXtC@ zTLnO3>Rb`j@IA#`)9q)Oo2YEy=kuxT?ZnOHs(G?)DtO^~b6sACqC)d7I+>;+(WkB-rviWh%F&w zur5d-epR`p_;&Q$kVUnGYx0wiF}6rS4aNY#s`}lSwSws;)m`L{;DV@CG8isF{43_? zT~2J~Iv)$_8nwg;7`(QIK{7OIA!fr9$mP0q{OiyyMyAI)3X7GU zvNoYSH&-uVXL%&D2;ebFRrd}uH!cSw*R@dbhNRK1qHe7(Er=2Ck~I=4kK!3ped+o< z+NF)U%LV*bFAEqUhT`9XcLfBMVa_|_)}ir-_QZN!&z%LG+;*?$Pb@OBnMoV46^9r& z@7lSlM^d9Bk=3;=KUlt$TiwL!kboj52a0`p zfTGNqaG?v%Jp}d%U z@m|NY6W9#!K=w5(w^~KhGF(~QO(c%YnYEL68~{|~Bk(neuUhKbrHQq&5>22vBIR${ zR^Te0Rwg|2(=0RSYt&U7t=fV8C?b;$BU4 z-`GAEwzWfX;SUj8378=L)ydtH@`L5M&(rHsQlgW#uln^RnRk|2TliR+JOu*bBviV$ zTU7)CLbgK!NAtyb_N}IAmd$R{=ogUgAeH+$ViMqBqI3tb;?0b4wqf_C#kmW0@7n{OsHmzZ27Okm7Cs`zYw;{e&zy~BA z>?>}|z_ME2#);xRT_bdJh~`0p2**2mV4CFZ{2_It-WC4NhHHs8IFip$k^&ba+UoYXK{5E$B6aYn8L=O z=R5`HrFqwiwEJsI=@qXoU@{_m4HL7}e&xk!mRCE(NmP09I8-PSRlKJ!#SDt95XY zN2yI1Xp4{HJwWHCD(h*pPjw=-_Lm5U3%*In9QGV@QRzm~8K#InW)3(d zh6Ztwj(zLajo$l@L_~fY>vs$u%Tq^ia07y^>&9{gT)MN<>@95cEl%e0-%&{%>VIgJ zWKFyn$|xLn${E=Wm!-D~BS zj0`G>$s}asp~$PJ&p9q-u#?wQqVV6t!>MX3JQsrU%twIt4ypo!fswfO^slaeW`BlS z1o-h(x_zv(>7}87#})?cle~J64gs&2b$=1bq{%LkVPzb1d3!h@DOJEZ_2>H5-^2d^ zi=HL$6gLTDs{s^?=F4w5EUAD7au3Vb`B#s`7;IKA2Rb-uS-;Dv=;7rEO7cC&;%CCW zFXK1GjZzi1TS;`=DAr5Jq1dIIlADinfJZ*Q)$*Kv5sn!Lh$om`Exw_3XEl&eOCmT{ zAMapfdY`R*N$@Y@W{z~Na__|2v^Lu1?dwkIEA2BVMG*v2eUAY9*Umo`{8441>eeSp zV;q{2HPz*)92pFb%Gl3bFdqDRSCPY?Sf^5WN{QMDEA+ozO))AhbEmo9_=Cal_)oz% zI){hW*Iw{msct8iMZ9p^GBPH#bNoY$$JZl{Yr-#eE2gm#rORseE(o`2$!VZCkoCH+y4N@CN5r z@iw0~j^b|&XvW*^Fvog!NvfzMl(uiW$Bswd0R7tId4*aZ?HIP8lK58t0Psf|QGV<- zea?5_$HTZaJ$p*kyj?xch2Ukn`#sLOZQR?J9QiExDx0`n&A`oiZ|!06M$XNxXVG?A z*|V%xX=K1gVU1NlKn4id4;&tQ^IpU8YsZ#89q?RU0@1ADwYHQCd!>Z{hBU}|5l3^J zf_?pK;ctx#X&uF`l@#*DYc#^(S;lw89D_Wspyco?moLOs%`qzxh+MYWbhm#dRO1>k z<%_>_&3+?l&wX^$MA`D>LmGzRR~Z=YI*Q)#?~bDTHk}Rf!2z}3C))S?(j#pF8=PTE zl0V)w%O45H;tO3$8^Y0@$YPZ`j1CCTQP!Z3;r+edt8Z^D+}9B*?F%BR^NeSY&c25c zRvhk>naaDKfe*&5DoLQzG`J_#ucu)gNdoZBdI6rb>fRHE_ePS>QfL%Mc&hTJ%E}9X z+#F*)M-}86AME>}mGiFdF78O=BFGRA(>3*9hU2r3!wC57c9? zwrk9#^=@YxJCa3tYL`|sN?&p=#)NRnLuYa7I&sB$N5pG1wa|Qsl?<}646NUFKV$1& z+S+V3w=vlq#}tvbmfL|WM88e@f#T&+PXWw+fO+ zvO==7VExuO1pYPDUOf73te<97lY6QoDZ`Y{OkX=sfU%x}s z1cRSrUc2DfZmuD>nrVZwMU+{Ua?R5?>5vDvYKY%+czh?6{?obF{5f&qof7RWWVpc?e8^jidQ;{>CGYl`vgirjW9Q7BRI}SBAg#G zXl?6gog|u&@OG{~&2i=3N`x}+3V>sRGJf~dp4HCkKVj6iYg0+6N2@^sshQ_8sU+k? z%g`zLh{4G8^ts|h)Vy)4O@F57(+wgvF_}z$U^zc{_HKG{(zu;NP_}iN3lfnCoTb&G zWCoF21A==T{W57uMqcY%ly!O{i>+2EfZ(vow_=H zdgiO)KNu`NA-Iy}8&DhV87{^)ZZgF7&OL>F4R3iB&cGpGm71izBtGdqGNuk{C#W9S4ql3Uak;W?%R`~t#FU8&? z7TRgI@aByRI9po_c;>m42q9hF!vH`4;a9(Ux8d8nO$$`i8&s9_`0gN**{;6MWOxFdtb}Y+M8-T zr^oO6A^5{u*QS;rmyumNO)b{0`=s^c46!-yjD0KD{15OCP55KrtLvW;+1TG-$fwJ- zjAAQn{o%kFa&gEw7_Y37I4tE<@)|^CP@9``4E7-B9G>0liujSDTx*&Jt0kOG438N&nEfTWUrtF}r}hb8XIOS$sI$>uXK!Y*(WjtA0;r>NaD6BtP<$Z&EwqP*C} zrD1zEZv0J<{{X_|@tg2=>(|5o045%>{6(d-*6PkTMjP_tt^81s{{X_@@y2=E;tTwL z;7ius!o_u=oQ$zReY#hTFLMzuR&Yi>^En%R4NbWX%x1XX66n8SX90dw(2Dep7UDS> zpkuUWA5%-OXbX34@t;G3iuCAW5}LWvs&eUL=j*#xx0`yYkTK+Eq5OMRmYt`^DkQfK zOib7q&iOyt9@W37XisN!>dTcJ79y&{3DV;cv^%4Jm1P5vGn@n1j@9ecnsMfVchcyZ z*G-P%@uVx5_9#eU=%f$;e@x@~*MFn`0HKocEv1ZUHw2GlyIF{q$19y*794sz(6}97zGB;r+W3@0_w|e3|8~r$cY&a z6)HSvq9;_7&>>8kuY!)^TYT$9GnCz*6Ur%LDYKjHm9a z7gn0J&sDIJ>J8hk(n(=((V$RN$i(p6^VE7*MW{8+#g3_JS_yZ>zDZ8y+DhX9bDjok zgt2Q$p|e?R7D&=o#K{mL+ni$@_dk_w+N^gPb=9l_;wz?hGer!<6dCWyA9on93Teq) z;Z2@l;^=N{wJ0xqkr^QEja!kQe0Im{RrFivF0L+Qzm6wRHW=nm$_L&jp6B{kTk#i1 zwz@YLaa_t`hAvsA$jQO{@%-!0E%f_%CW*u?bjmloFU~;6THb?s|DA^4wX;bsUWpa&7(C zU-@P@{0=izHLWJoNmsOam4gk?V3&1a$WjM5^shob>eTIwQ`F({sVtLcQIHuFWA`hZ zbHMih02N*!fjPM^W4S^Id+Sr`@#H?+t;rb`6nq*f`sh@{FDiI^vn8 z_;sha^X_j<5ymk4LdJt9fu6biMR!6`NYY6qq0;zQM~?c%9{X9lw+Pv6%^XUsIR_hh zbU%e@>RP6Y{eYJ->w28}g}5u`Tg>vPlLdE;tAZOptuCJqk8k1KN=-9Gy45uk8yO@^ zQzIzO(8gEbe4w`mvwkA$nzz{W`&F=uOtFCZn{F-x;2^@NRL`jI+PRc@na;FlFXB%T ztG|^CYrbTw{{Ss63VnDiD}vOcT|s1DvD(-yc@1);`J|E0D}qndny;v9msi?^lNnJN ziN}>5a6Y8e5s9X;FZS7)fhT~ya(%1Nr%6XfZldjb71u|-U$aK~mDHz#8bm^H57V&6 zTIsZnFHn~0-aTcahS=mt_R4ZdIURannvYKK>7MolH@A6U*$V112e@BTTR-rIq0!g< zJ5XkleT4m_;QsLEfIS6OYLSkN=b4kJUF&f}4DxEW&m%K=F}0ae!0-t>{W}Ck}+Id-+Osb%VASm5vNm>-&o#tgJaa2? zpO|z97^?RA-Q06B&E~o(zz}U=^c>aKyPHyyBWI@FOENa~XI-EWdgX}p?Okw(BSyV7 z5%g=Fwj4y4o?=96{t zHcK|q^cf<1IYU9I-+tr)5#O4pq}!W&bi32EyB#Iu5voYZ_KBNw0g}fU>V0d| z{1xHYbzM_YgId*f3!7MM4bPU7EGR#CszE5BjzeRuWlcw&YpIId@)z*Vv*JxpRI?Tq zQIM(jol@P%O~4$eZ(c_O`P6q_6SvV?6uP;$cw-=WD;Qw-9AuvL?fxuelTEjV+ScCI z(MBS(wi^N<2Op0eeQV|~9&0aseKV`bVc)Zpg1q+iTKRe` zx|BDNzM>G8g`*6?Hj%@2J-@AaSBTbKQqC=0-XOk__6t%n$r`8t`VZ^PbUq)|1^%Bc zzn<S;+JI0?Bd@~x+S&DKM=HwlF`d&t;QQy(?A66 zCGZ~u?(PX7;D&Cs=30lxo1GIyJ{KBRpqeC6EV^Cg!T$hB($!AY8<3NT@&ZYmh526~ zWb@NszPYGHKZ!1$O=9B@XRcc?Q*v>T3t+Du;vlIRBirI|xC~VB4!$l|SGrH|eqS%d z?5S1}k1RJiO+!|_wRx{JN$1t{wNnYx^$CyLtv|e>o1agXOrAQ|i1@!%i&gO@oQTp! zVMbQ-M%fjzP8fRQkHWn(;vL1!zO=vE9$lUL0*QTUcBI3A3FPDb(n$0*<-RzxYwPP@ zwxo8GtVKkSs8l|fJ&k?-4aHQ6<<3_o@NCjvTDeClBFORrdHGLo%!=C6UB9*?XK&-$ z8`in+1;?rQdKrA{8;grcau(tx=*kH=_53TVv(wh_TC`HE(KjX3r;3a+S89MnU<45q^P-0!TmybWqg+wS7LC^65N%ZMYZTgb5HastD4fTzUyb(z5qsl7ZGjqu} zDsg~1k}K$62-${-#2d^Fgo-S4y90K8@sGe)fN1)bsSM%+95&W0GG|=*vSCAD^NN(G+_|oRtBd!`pQl2NM&NKd@kC>1chu5PnmQZ~rFSL9sAP>nUFJ=o z=bpchYWfdD@uXfc@J*HS7~{BSFxE z#vVCWIFMr`j--EDrQjVuRQO-u$FmJODQdeBKi5j0OO1hO6IOI?qaT;&i%C2`(?(TFPU)B zv0aknKbN}-PC4n0dVYAXW$;IbZZ!QpAH$lA_7|4UB$6mV+RjwqG;B7p!(*S)xX*_k z2|p9o&&5`kX&ueIsMD`fX-0g-I4n=2aC&F2rF{+HzY1AtHZfei=(_U=C+v`!M+XNI z94X~UBy`3rEIl7*8!b0FQYF)x;{O0o2V8>OY8lA6wu@r0!R6B@X&m(9*jFdd-k^tF2`GVZe#`CKro;p zk=*3u@GIbNh+h~yP4QD!wz=2u{@E-sh~q_Fk)X-RRU8A)ZopE+Rg6=%tl2Ft%qcJ4 zX&K$gVo4xevYHk!T2QAObMR>nhEb2ZdOS|J2k5uFj?fdb^{d~z&Np$}J@Q>wB zAxQVlV*F0JlzeUYfga2O;vGYg#~*2uwe+R?W|Z-j+~e~#=VMncChxiAOG%t3hx}X` z`dfJp*%A1!UD9tO)+~f)20%L3hw2^^me*RAX#P{bHR@gsV6a8W^9BcB(z>g~MJdGA zYq5V;@VL5CLVW$W>sfL5MjtKUxQS$e#tN|gYtpUbN#P6!9{s8fLrz_dAnG|d?OeXr zPefzP&mhz^>AWb~7;zKx!&xW4C|+X!|)~>48Ou2^5{?%fyG)?Eq>f`5AkO2KSK9$8@q-Il{(b8yolF8(&%`{MXN9@NV zdq2<)cs`!B(rNJAN$0c@+-bAN2;K^=`5%_tat?YPYm?Gri${f;=gYLZSKV(T62ST( zKc)w*bTWOm>Eybdq|*d(Di~p4&fAViV~z;Hz#Q{l4CAXv^Y$I%X!P4Pvy%|P8(Xm+ zgpH(RcO#xpt$AEJqgzXL9le8m@`4&nM87u~_4nyswCW>YL)cl>=wK2`vZN3Zg&FtLr?SzEnMqfNJVhIGHa{{Tc)$&L)h zxH%*iJduw~R<(@QaOpO1X?87hx#BWO3hh&p4>C7gaqC=eg9=<~Zns zk5SlFy(7R@nr*$6%G)fLD>4R_W#1toww_IOI)0}lmyXu9xm17xZb^)1IT#ou^fXCs z(pcC4<3Jq0Zqz0ZJj)?eWkptFyr}tdM_gv6GI3T3%F9u1C5{W7Mjlu_yh!8I@A3H> z@DGUEu+%N(gLx9drZ5;0za)ao>M)~`>t4I!#iHbPc z;uz;W2XXFexsSsl>RV}URFfbe0l){Y0QyyVrm@lPC4r1lg>0l_89DSHTJ)ueRxNn?&U zR?_NMWI10bsOyfck6NjyU*Aon+=sMS(iJht^4uqGq+>Pb)N`pNW0G3EOr1+pFEj1PZG;;$e(f;6S=*Y1{YyY2M;Rcl$-E;SY>%T-M0X?&dbHComt zk_VDTz$eR8kE;{LGJnFodNlo#xwLGN5Yv%vf=K>S3>g@8P$GuOIt;5EK34S!87K#~GC2Ag<|LA7wF!~% z3vCjBYfQTKbB~eUoX5H9WH|?x&F$v5lFcpmUJOb(VoA6 zuEJeSbd5JtyWYlIspHe)RmjT5JjNf3x{vq?taxD-_ZANdjmnQ9RyYe9p&fbdML?4u z5?tuEQF9fz7gBfKG^}44{{Vqw=qsO@K{=x;c5Sme;=he9v@I2F$RFAhpf1_rQ@Vqk z@_$P3+s$#c2nX8?2XklTA2Ng6>0fyGqxLhC;va!`rGzQs&)v1X+*eGgAS|JhWo`fq zo>$ZGubO@~e#gE(_(KTQFRZP#tqhWnscABKkigl%NjMCLrz|nfGgp;oIesB~6+2G- zdioubp;8N(^*rapR<_eMzMpLgyVNhHOJt04Kx2Wo2a}RND%rmHR|kT8ef@*2$^EBi zB1tH@jmi+iu6>6UW5Jp(q2S$9!+QM73^74CBW}`8_YsyOs34v*=yB4zABny$v(@fw zHI-$!n$A%BbB*he7;)1pn)-=B#$M@ES>W(wPUOh!^XH1xZS=dDje(&bDh;A#eh9?6j74o>uMe#oGp^Tl+CbZNo^=M_c z)M9V7DJmXi%G?a_%6}XX2lJ|zz7f?XiVK}PENzbXtmFaNap}8)KiNLK8tF9+K3mJN z5}4+`}?2M-ts#DRG8gF)ao%h5Y zQu|W5xm_w70JE`8KF$Xg_RPR5d1%Cx=m{C9ZFC)b#ae`^rYG3%ZWOWF<|dSP+z%M9 zRMet^Y2vuDf3Vy}xEB`q#Dn{!baC!#SG>2rvwIzE3wx+y-EVmoRBi);kNhlg_fP9y ztH(*&P8ymjR?_F3Xq6&iSMVhX(ayuUuwajCkKx=KPzVg1anK{kAv{VadCU3 zu!d_=tQpTcfX+@o4n=zgwD&qZa7C@NYPvgN7URnY8R_RJ``=!k)rtL+JZ=8~5)Ur- zPLcPtGQI-pgx4#ux*w0V4P)W`kK0?z)$QT(q>d7-Snk@b zx9|s#TDhj$$hMZTr|#n4zheBL@&5qVuO#tn9S2gl)hzeNrTwE1YR7HGq=%@-U8Lt7 zMS5p}d|hL%C9lq=@BUfE#$P?b{+(;ncB=(a9e)EkUqjI}eP-I$dx)K(h`qdups_oS zGPwLeK+x+UdK&KrkwKM>e)}tz!@EfUcTPct=#Of%6u*OLuK&(*HyYn zX8zLDrF)B+re%2mW-L_Wh5)eVJ*xiziY)h9$YW+M2wyCLh8W=I*ZJ3_+vxUJ5wom; zV_%f0kLDveJf5R9=3Xp{^3PC}Liv%VQ7{67fslVHTFDv8IZ~(iNIchdp!_rc0EK5`=g6i zX+8kcv`9s+pJ5HPv}8%P6difwlhpgxN5t(eSab_H;|(GS9x)q#t1MJ}*z9;5)-~Eu zcXmaqoVJH=aU5|-s*Mat1EY`u9nZc!JJWn;c$T_ukr9LJ$nMiLs-c*I#Xvd7MFaDz z`YqL!hLV!qN|wxHDj_mqm9Rk_eQCFs5%`-$k_FrSr>4rvT2ps~~#LaH}&*PgZMRrYCI>ylQv-D!H2v~rhd zZ6IZ|jmI$@;IYr+ zjP%8JT5hEr(U~88#-Ot-k>CK+CUNqBamHKe*1XMh(F9_7V+m_6)@dR+01uRYXBfw= zcYYdI(EiVG;jS)<6ey%&Bgp7|1_n=h0Mc$)SwKAj-RuwauJIO0E()ZPyUiq#1>N!|$}+>${{W41 zo-Wd(yp5&~4cu|J+9V@6#~Au&rE|yKsGA}ynb_p~EomIr3w1d2LLJj=asnsQxc0A2 zw7SGCZv~{L871?Bs)SaFc8rXXoRRrgpJ;HRyS344Nc^=bncKW|+<(LKuEBK+o2g+d zbs2vn=i0dooDq(C@Osy@m6_{83K6-Z4zY86a9$_!eD@KU%7Q={{d)dY(A(R=VmM2-de_rdewU^(WQrx*y|MuL)Qpq$Bbwo)wR_z{ z;wu|raSM(A0BDyf7d#wyZk@RIty{?+_R{IKS4ko<`PSB;W+?eTFRPs61p4p=Q@GYH zZ#4#EzfO&yUzd+Hxj#_2>FZf@HKEf9B@+UF49PZvWxc(ULkbeH!~3Z62@BBfKZ);L zzOA4QHhX9xfk9BbBJ%Bw1D^fQHQGj+KiPEKd2OxCvbvV@hW31NNhdu>{LM<98M4&8 zMF-ekT{0;5D@|@eS)cxSfY}2BCm?%P(U!W7QRa!r>3R&-cM`SNB*W*E{nb)IAE@TI z?-eser^jrKwt2^z$EG)Y*!+!qwa0+;`E`4bKR2%(qTz03XU6AjouuQPzMZSfJWb&Z zHr{)=#4xO0a}C=-Q~&{w%o^yYXC&rv^83e)t+-ljQD<%> zKg6flV~?#tq|Fc6;*WB>EPp!sU~~C%T?UB_$Z2owqmS(FS=InHf&c?5eNNw{aaF1B zGm>nJQu{`m;ay8omR4yMUd=|`tF*XJ`|CXZ9V-V=zPRw8hhmZdqWWnBnK{76J-Ogu zaqC^Dh_sm`@UDqr=BfVEy@pw$BP5Pya;?}50bX748^i-pzPPq5&|29@VI~}JX#wXy zh^~w^6<(xiy|-pj?0qx)I{yH{K>q;Y9oCMM@ftBMlF^?hRJ4Jb;wQ)eIt=bYGtW_u zhQ8?2?ldom8XxxWg|$sTRkFR0W6cQ@+FY(a{B!%wc7n0hVLE zuz1J=)4g?G2l(0JUxBxB{{X@#uS=x6N(||4-eeb~WGhJ&0!HAG)}obTSxbUVOxw>yL=Y-^WdfUN#g5mTUCnN# z#dvVjkV~S*{XS^{XFW?dJON)!{9E{m;oll~E^iQN`lo~EzR{$MR}xujLhk4HGAyqe zGO7>=482bWrFk`T%*QX9!pfD^`EKvoS)FmAN~Wow2>cuUmi$NYD(h5+@&?jBv0gEI z9pGiSj53#uBuA-b1df2?t#q2#fxJ6Eg=U9Ow<)Yy%;|qTav2-XLKG}xpx!}{U}P%} z_3Gac{yo^+{A!n5@U6|tczR11^j&9EwU8*5Lgnq4k_r9Z;0p|J*v}Q_z961I0r>pf zg!A;>P!J;$?{Ri|G0E?eH-ES7T{Q7ohAL{UZ*?@9kDpY`YAST&%MHxUGgh0%3S+#H zp5ijG%`%;=g+>O_I%H$>Ij-MLxRTXcZA%Yf5_xf5sNfG-2k`o5r{`RK=Z7ZnFNkd} zr)GO?SeWk;A)h8w zygu4Ym%5glu-L+;6JslFjk(LTNB9mv82hAy)2(rumF>USMd~-%brqWiIiov~n1Qj^ zImR)^wnY^ArDbzs-b3j~mN-Wg}YZ61GWG^2kpC zTzd=*^%d6NGP5U{M1Hw%f8l#rptfnX%Ls^(p==w76m=?pjCBD|K7`gTpK)n(ev)Z7 zr%!vB#D>!48aQU;a6!fi2ddXgXRS5FZ)~gfSySemO8IhqLGBN&W!`9PEM_so7xqgK z@8<%--GK+p3)g8qeLDKq3S6$t=9H9~%=|>t)5VfoY17(8q+Y=pCEFbH#=Vm-tWsQa$}E=&-Zpq>>?)yd|f%g;-6fTK@pY(z2FUF3800W_^SP~eF3NGlHJB7 znHD6t3W}w>l0SF>=nqcy?4J&#xv`Af+?gI08DBP5aHTs1B!GJTe;V*l2mD*n@2!rR zByw45O8Xkp=>%-5M+^9If-}MPuW#_Z)Xi!qTXmOWfZ6#%gUH?Lc|7%`{L#8Qjbl_6 zsvbS-8x_parUzVit_Q_aJ)27`u@KCsqTz=gzLncvc!6TKWoVXJ88TCE%aO<6d9E{9 zvu`YF7yke!m^WHkNW@4NoH---cnv8c5yNhZ1~AJmcp2~v0?UCXrO0!~ls zUn=}fw!PG@t}Nz-Ufv_kv;eaCoE*15F&#MI^Tm4#_^Mm)?AwNtIV7IO-J8o8MPVAN zDCeJ1XvimaeR-(vE&gr~UTfx~ zCkJLkWZvf`t_(8lJZ6f~zOdaO1#|AgitUV&Lb0py-@(ybd`$60;-@XD-7&|1-#1#| ztZl`fp#}~&aU{TkKh5%?14QM?8+LaStR(!BXfQmZO&yEz}c z^facpiY+xCxcxor%6xU=VG>HJ**(pAr;7X?s%g3poQvirGBA0sB#+^av*O!^V2d1m zOUT?;bt)|-bZN_Wc@5^NJ;mnW3m(S3PvO^!8ANfr6>tE-tgjY)H~#>HPGv@rJe*`M zE2Q{;;O#o<)ZNcJMLL{?-CZ-M&G8oEnzB8+LDfaXN(*FwGg?}vkq)nJM$x#BO6GJM zTX;gOaxep-#%s2)xA{R0mBnRFF61~!@E;s}Iap+QglDcza$0_lBg(Si;OCB&^#1^e zG^lSOISS8?nXfa{yb}I)_yVtfeJg2SW@}DqX(Nm9{+_>Tkpz6>o-3$^F=9qndh|Y( zp=05hESS3}%YJn{w!gdixfsV4jHH)Cv)a;8vokF8c^2y0>rL9w?*?5x&H)2BC{Iii zoxKkoD*ctt`>UwZGabV^iLLGwsZqOtJpmax98>faTREAF5s|=dg0!_JwAJJC=T=!G z8H(aFwa}4{52vx>iE=fm%PGaJ8Dh=iXr#Chtmfbcc$9(VXNAY7y+^5At>vmM)Nd86 z2w^X~hmaARpG=Mk>T3&7*QC>Bk>@`v0IPEk%8bAOfz;;*J^FE5kn7eHC)l1ww6ZwM zNI@b@Zs7L^88yi1NotOGt#5OPpY2jyAy!#-t1i+umFKDVz^<=N(o*V32ibhMo-9P5 z<92z$1Kax6oL(Q(wFZhrGD&dG8s%aHVKdZ@xW+3^_QKt+A4`r_n$k25u|}tRzd;(f zKXd{KJ%IzgddXf1p32rYGh&ikt1FvWnXTisPnz`r$;aLD`sCzeJ+a=c&n>J!XScJv z`#vq$T+NKTwgDlFe;*mi?Vc+7`BGb^r4Brc2$fdf8$<0K$82`(o@X(-H zmy?;-ncDO#aO#HF*#WhZNdTfN%i*s0P9x1pW?-u-Wf!D zlGwAz&A~hz<30H%qEw}2BI3y8zn0Nuu~>w2&zz%kvOMzH{#fr_uZOjmbuY8o+cC2i ztgc&bN&(N}PdPs3xJ#?yaUb@KZVa~=+JyYRSMybl~AR11Qk zvDg0qtz8C-qg>rcXN+tBe8|h`k;(1Sx{nL^QQ58xP{7a$0_~BAISMn|-nu&|?QDEK zcBBNnWsyMIKxfGSDI<}d1##jr4hqp6u5&sDlMK3aAxID8jp2y|WOI?}&1-3PSCROA z#Bj!K!aA&?Oc1+@xka)}^c zuq4tWEG~S+lcz=bwQKWd=#CCD~Ow@I4J42BfWYn~4WR_^8$IB#zlSC-xO^NrvuZEST@j2zd_{{R%e z68M|ouZoU~;~NoasY4K&FD_Mm1ZF09_Jl;SJhe%gRDG1qQ&A1 z_iHt`u!b0#-I^kxD9Yh}^D`bY4oMZ!imM7x=4#@Bq`D5FZ)I;JD|K%x-|13D zhY>ajmeA*&ryGak=qu)`RCOl#jr5MjzlJrdFBVwd+W4Mpc(37#O9xZ(n6}}B!#E_k z%Vc^GD`UdGFild*&|O{JSonrHyqn9Y2uUW4DcDG0K?Qd81cRI&Yt4L5;sL8%!Q!h+ zNs+v-v+78#{%JmuS+0K2t zS6kt`kF-K965(1asQl-4e95-}6(3Rgb6nQHqi)r%#f!z{LR2NG`-(`<1a$gz72@IQ zKWS+gs+_x=THHRO)3wT!om2o1QR%naHKS&`?u0iksOmR`1pNI*e+r#+xNp4QJpG#P z+~s4>%^yq=>J2i+H=5|%&lpRI8-RHXI}!dB+fqyHlPPmO3yb0TH9L!Wq6RC6kSsD| zqKup$P<;(`UL91plHwcWSneZlEv$gZkb%^Hd4HFB?EDv@O{+Dk$8Q`r5bl-QT={SO zI8r(9lj&MF-WiVK&c-;UYaLPtVZW-p3+G>aol{L2kho~RMJyi6~dJds9dZc$& zckz9rSc`OWz^nVV2Om6n<6#7Hc?W~daEqk>0A#dw*R1PnBNVfdTj#cr@&@m(L-=>E zUkzF+(32Z_oc^h(YMLB(i2zFriMJ?>ulhXs>$gAZ+>hZtwC@Z2O0<&3D`+fkEG@tY zi3*7dxHw=y=RK;xBmcy>qe16J&pJgUBU)(5^U{}Kr_#PU()>xN*xwrsO2!+}BW_mO zGTVh#U2@HF0E$X+WnGwu|>QPBv();gs#)ZHjDw2UTqG&t@vK{ z-VGC3Um9s)e9yDo+z&YrcUgy0dj=ITntn!-M|Y+8n0QCU`hKeSPi1W!;V#)D+&rcr zI0L^K^Cq(1d>UDR)=OkM5DiNv$g%7-=3hH#RFImKugh zeLDCAmn054;N<#Mzl@PyYo8DP9%}Yc%-ZF(%IGaLD)EN%2tZ^DpOsIPH)E;vHMN-$ z?9R8~?}zVo?}NS*V_{*XD!^lS*4u2X@v}x4k&I_eE7FSrCt3=UuIynd5B} zMX}SY^i4E9tWm=(UUM{RQ~|-rCnKIaoby~ImbG`O>z9`Lg`l&#R(5!ZDint0R36wM zpTpL?tZfc>x{Gvl$3u+OtWCbA%m>~X>0F16wI#9B0S+Qb>>{|4}sJg z>~wv5%5A0oQab0YdDW!|>|)zmqt)6pnL!`VG*>;R_=YXHGAS78nk$pr8S}H!{86pP zseDH9d^yX*tlma{3EWeytml$cNF>-?<2kQ1@vgdbKaO5CSNUO+UcKwnKWKXNjXLa2 zZj(mbbp&>;F;Q@>DRoT7_IjNMihMnPX``ew-K(PxpW$33j*oL{tOesBW7~{Y-o1Ty zbm`{IU02_XR(G8Hc_0FD#d{ExYb7YM%_7MmIl%PIbwxrtGd^a-jcp+$EGh^*aaMlb%9v5Kb`;BbEn`L! zI`2G>daQ4)qg)vR`g2=zQ%gZzj*{uy89wzNm**ZvM^jMAsalrEkx%1O>H3h8O|Yk$ z4{=#bl1(95mF2cZTwruLs#59Egd10I_4TcL$ZjE4l*T~ooN-X;@ym4}3^1dTTDfHf z&0^I#P1-t{E2b7vwk&-|Y8y$KM!->w{&laaDTXiI^&BW1=BQa|x`dMgC2h^l+;kq4 z{;MW*#|b@(>ETIc3}5C#FhdSLn5ZWBZ*0-Ix0~!!VB`heA0r1Uf1wrDT}L&Qn+YZP zvACZ~qhqQ?b0JXK9Xa)`D$)AAn(8{ZcS1Kg&$jA54Y-!^)Pjnu8{4Ut6V3+l!zkzI zJ!?`OSeTM4MvmeTvgULlOGmsHeg-mnaa!|jX3u-&DJ`wV7_fdx2H4 zjtCr#itB_Nq?ykxPDcCf2+bs6L^2)3vFGLQS*_w3EXqJww0nav>7MxdR?eX2U68ok z*z(a(U>-QgKKQOq^GTVceaa*tpPT8$dUWH`LWRzv*Te$m;v%hyw+*8w9{hXey$`|n zs+YvJ=_HH@)T*3F&Cgzg(!5(qg5n#c#_hoHNBGyT_*O|^h7z#0=-pmSu*(vAd*|2E zv&7Toj)h5eJ1gtS8rB79m?eQxENpp|w&1Ff)M2yl(x^{!CFZWTP+NocILKs?N;X@t z&!8VpY6&$7r}BeZvGXKrf)&B}bHMua{HeA#7c)gJ*q0ZDogJGSKmdH+hXb{E?hkf) z_!)C6Sj5+){nV2@EehO~*!_4Q4sp=Yr`toSOB!HJ6id739CN@QmTK(R7ZOJlUuTS~ z5V$gP@`H}vqt>tKIt%J@Nb)R}?HcXjuzhpE=DMiVRO6}3iL_^O){kp7u7^C<)Ab~W zC#MAWrs_9(SiH2CO0pL-MJ7pxJ+Xm;56pP)+M-fb8O15dmM&ZE*O3{_)`BS7XLk8M zUIsJi&*@nDZj*7XUPl}-yITp1S=;R_@-hB0I`t=S*FKe_CA_+|+D&{__O2EPv*nEA zulKrl;=ObBeZKI_zALe^p6)Bp5$boXrrKFR!Q_EeH_a;#;R?KD`rubCBCEsEl}d5D zMNp^hr)JNMJWcRl$NnwV_3e90@W!#NXm+cN=vw(w zWAP7%;oOD!JFaa*(i;kc>c>A_;*%B9<G<{WUtkU9b zLLV_=V&8V#X&Zx+f^sl1SlWlfX?_`a_U}x()om|gw0PmUzO@X{$2d^N9Fg~zp*Y7{ z`Z{^O6B8~KKP#8M3B!I##juy4D=b}-o4kt zKM<^ZeXU0~+AYP6gYUApGAQ$=2bqeV$~aN#OLi6K8jigtuQiZwDp3sPV8K@}$P1rd zNo*hP*Fm7!TS;-O=(kp|%D0*C zwdT0F8E@T;5pA5Rf!u-?Pr|s1%d5{3TETz6$&zGAqHnxW`tAqo{cErBb&PhpmBpoo zqjhO*Zwdsp^L*IBB&i`^By`6I73caZK9gxCl4p!VYQ)Dm2j`5jJPz179cvsbUe8uk zZPZ59yqkeMC=}ceF8&z~5;?Pg-8cvNVzS|}lSS2**6u&F`NW7=@Q~+|7zeTJYJ1t@ zvAUM++sw7NUnc0W&l&k!@ag!EO21_^cbZMck*M4GlDe$6_l3w|AN4ip#!Hv_{G)+QS zZ6~*Z)$c81204R&uIGY1axx8f6JJ|vmhUaR-a;571{Gx+NGvdT>MOy-Q*o*77hTS2 zAvE@fSjwqWevVo;1LohJ5BtB;y6rE*zuT8lv!S(~-T4YZWRPP#{{VOSgIHb!vbc)= z3xu~;P& z#BD+wMzowqa)G8xgDkWXQV%0rn{eC4Cyaqp5y{6%&0uB=n{j(YP%jT+ZT)T4P= zo$${YB)n_RGyUPm=bu{R{70udM|BnCGTtn2u`Vz&zKY(RMhWWiHkcd6ki|SKMgyGkKMWjquX_nmN*cXUQEe?uuL0Z(BhHE`bR7fo(4Q&)MNLK)%$N+9e&tlzc#r!>gE{`;p z(cb-;7E=pFBV`Wm<$8>UJvbPzMDX^r4u#@%hfs^`cMF)}RglJ;N$nsUemE7|E89az z9^%$lx;C42s_E}8me-82fJ;5M-#Zs!KPc*cLcMxdk!wB=yzspD_wvBe+_SvHRMHOk zpK;Ic5RQW|jR>n%08$TBeO{ty?fR16b3c-8?*i zSg1RL4lq+aI#uZP?-tnjM)u#snz#HVdL@d*aU7w7UfHmb92Fn|E((K#gU&sx(pSRz zU)rzrJ4qz8y;N9|dsPSnHzRU=*U2M1WaFsoUTN_n-qXWACbh7>y*ho9!e^KRY9J$qnr z&##!<{6v-fVIAG=+?sMP35PIs&4sX0A8Y1D_djiOp=FH`IP z01!a8S|b2M23(D!Adg!4SK@W3l0uEp8v0X7YkOY<=@G!@NS4YUn6`N+3FjxiYv!Md z*NnIBi-HLzzC}XST3rr$%I!0ShDEcDl|Tol6^W_pg`{9#807Oy9m7b|FC?FOMbO&m zPV5$7ahmoahf-H;l@4WMggXAxLbuoJT6X>@@-g!b#8)*gm-bm4HU~AGb8wKHvu3lF z4iA2#jVo%;Mu*26crtPIqP&9VSUzSEumu#qvm!%|r`Z1h9;UT_iGDIvWfKi<@Nw5Z zd)9}-{{R(zy3|@s=gmWof1P>P##Nr<k9%>T-^V;}#(r*b zpL*rR(6r>6>Tt>}JD*W(hG@>?k_CCkh`fCkhkYfp#zxb}YU%ttt*)tK9LmFy&2e8B z{3j*#pWCg*SvfebI}asJr?ZyKBWZj_Rma8US0NPt0KJ;$^>2(9u}H!p^v6o!cQZ|m zypFunZpAs*V;HJt$%6*xNrBwP~(O7b>mqR~yFKg~<$NY~!X)a9?E&AtW8Z zjN-SWx7}{1Jb~NNx@Cu@6s(QmN)~z@#+%|j%AD|90#t$Lq;d|45hH<7sDSI(Aq zk83*Q;5P^9U5|$^r-x9C#C}HW>0UKje$ILxby%p&L+hpTwR$!pi<5KkZh(zm=jaJrV1j5#GiW zFFxJSxdm&GVzM}H@igf+46-XJ$oaea^ILZMp^;FTWMk7A9Ov+?tz*OMYp6KJ103`3R&Dgh>Zb|@ zF`D*eNh?{6K{uhjV|Mow1c(UFKQj#Se=7Aq587Y(8-?AvZzq-@FUZ8Zmx6>e?GRr1H~n0g%j>eq)r)E3^{HQXS^ z2m(8DI*cBzPG7?;O5mP<`t{`0ugbOD_3)8Y6dd#F52>xw;j2qn8FUC9*5jozsJj{bZ-(_X$9^zpAg)AukG%k87?Ft zx1)EC+#RDo#GrFtCF4y}#x;XV)1;HjiXig~hRlz0*)kU=?-F?}+>=yvol@@CNqtJ? zNdf_9V{0RTmTE07FWZrBN%J zz8?(^u?@Aa@9-mH0|2??W4=H7_3L_sfAEjm+4z#-{L8yVWH#tNUnRyFP<3V)4WIT; z12yJ;3S$q5ZM=&{nQmeVp$OZ&Ww!1;`6oWr>e{61q}jFA{E0Q>nN?6Sv4i{(j=1$b zPt%I>@zQ?PB#tW{f8)!PMRBVVz=x;FTFFoyWPy zKZR+uo1?n721Y!^5}vIY2Wa{a=}30{irzbR#EwA0!64)2C-Og)T|eCcI~-aoE6|QpJG3yb;kVHY_)q>+ql#}wQXaX6D78#Z<7|)&Kn$| z9*3v56~Ezab}29X@nx9jkIHy&dwpTot0&DCvrY8vJ=w>q5KV8;~Q$UWHh#Cws>~dOIv>|GBPTx#iRLL4cXc; z->waGk=|*KeRYp5qm~%hGnQ@qw>J7TktuGJNz6g^_vVj=q^5 zwcEpSBzlFUvf1Q4y9m$_S$STkpyS@YetzVvOmDFh%`MH1n6lgUh=%MjAO##1Ber-S ztz|KmNTr(8tlE^(>~KKBpCxg?yRXIL_Nt&_|9lgYwaz!1s)GoVl$lQW)j-U>H zmCfo_{{Y!HQbiDvgpq-gcWpfZC$QxHRk3E#rHQ)|`LSG;`)W5+&=vr6I2a?)de+tM ziv+gUD{XAk369vL4U{-hk(}@cKhnCLw=PEsZy?cbjj)(Sr*O|8>W+Vh*f+0ZSiUsT zRFu}NB52klx>#3+l|6Co$@Mj|bZ;pVyfM%ll4D+1AO zIWD=zN2U)`T@)%xljlsR>Ur&@lu_zUeJXKq>4lX@RzugHP%&Pk<820L?9R8PUnG|P zNJ9%LHxL2e9R_&yz^u<1X|w1yV`Gyo#LMKdUy|L)IbUFTBR#>b9}RejTwlG*Nw#HG zK1<=FnUoO6A79Ig_i0!5(NYUE&Q2{h&K)ODYa7_&zMN)AqkZf~;uyI89)6vASI~bC z?i<5)HWpqXw~`xMdqs!$rCv8bc~NpdhalkK_U613$6Dr_W9QFpXf*4FaU)wQs4_7b z%K_J|eJ7#o;_Jh{A8le3OZieMB*_LhQxM7Eueh(RkCtCe|5Q2IYB@Mg8I?;#E-gB!S57 z^{z?2NOLox%ar-1^FwBU+zFaHi@91xTxK;x{3TCctzvk);oM&kCJUpW(seY2?iSWb zNP<$Je6jiy$rb9}CGf4qt3e&u8&y?S;X%Ypo{oKbS3Rewi%?r@*viE(SLk+UhF?tA zoeV_a`Qr6PN%K8U2jL&>1+9E9x=jz<#vQGLvb!K8W>kA@YlN!S2A>!4o@`Eebf zlaETT;r{>-TWS$3%l8<5N7B1%SrTZ557#xos??_WWQ^lc!*qCui!=$L-c)Wm>IHdj zv1@VXNH(&lJ?rXSTf^e;Fvj57>0D-`;1ruDVCmRbbsSU^_ltG;o~O=IS-f%_oF1If zUdes%V!J|8|n)(;vuZ+g2r$WJppB4cJwRrgKC$f@j zV;R$QojYpNwzo3_2#AgDWa-DP8`VJ@s*sjShxP{vO7oGlS2w(Sr@@~P8SVbdJN(JO&34`{v5BK+ zTy0^yMOs)eFsX-GKqI?_PZ>Q>@cwwC^h; zkk>r++ybAkYT;hSTZx&ZCpqIIiu8?2{@C?w?&;4;#WvATCQ}WPdU0OLj3~nAM4=c( z+^6B|K@8i7$mzl6sr-KNm;54s4d=0ne=h$3Sq9NI;E@(HBV*~u{0h5`A4*oiKP-QE zl5ha`uaG`Bd_X=p@ulRkNKJ$X?Di@SM!;}e{seMNt-x*x=I%!BETqdv9ITDK&3E-K{Ow31v&F`O$$Y~-sV;UsKz$6z`E>s++gmkYkp z8G_9qmB2j+ zn9zR?4ngin=C^csUJoMP%jCA11-!Qa@E8I{-&2jlJpm)FaDFoT9+iE2r^WKDZRT6X zSe>zv%BVfJ0)OCD^O2LSR^}~S=d_!aisB2IQ}soh@B3YOOJ8of@ z%qlnvtVzi~LPykAJ)28$8>oLR)Cm+1?=LIQ;awy*Li0BwHj>)u0wDt=u*vD@K|hsi zQ%81ZEgjA#=K0`ux-sRHaD@K=3GMx9`8P#Dkg;KaGl9)RsmAGa$nmgf#tOG~$6WeT zG|P2t#UL0=5Y7GG)!Do*QfTOO*se9dvzRdVR(8!9R%{7&o@4w$1bf$4;CpLLMoIL0 z$w;=jgvoB~2Ir5XAt#|;ohzL1?#p}0+AOrfKRzV@+(0A0!TFgvW&Be=m3A7&gL9_c zTWdCKuME;8_OG-U;<_Le4gSQS?I-)hde%~W%aQfl)XGm=9TX{XCA_dnEOO7Fw#lZA zhWnTqa;~I()3>gFiAb)Y^(i8_w4I92EStQ!&Q%^gxeI}vr-8@TvUQDHOT4wvyl6%& zarR9@7AFzL&4ayqA1+*V>`AH~6YKoj9pGgm=}D=vNJI zbeAH~NG;^Vj~)XyeKXgudhWEC?zGm9+D3}jHfb&)`Acoc<~I70Sbid*(mWy-Nx#t2 z*vNdecW_Y~X*s~}=~}v#jii?G!17#LMR5k{B$2k6SYV73&lx>2*0rs&wt-Shq0DMu zVASmFcU&~^N=bEJlq2(#k@rAsj(tUE+vsTwlE#ueZKtU)$&rR*!20?hb62PHH4BNE z;z(?tZM@O>XUu#9g1GG21M#V?;hCd_7Bq+KvSC%&v3#BZJ-Yst=cK4*!tvA`OCY2*;t)O8WFaQN4 z`;NKo?OZ>Ed|{|s-!;X>vs~QC8{5eD50zt_1Dq0Yc^LJs8r1!*H+P__C2Jmz_Oa?J z+I97?^Y;~DjIHZ>k3c)A>GZA#T<}zuw~K8k-45~O++*d4u1}Ote%P+F?cZvI0`EG8 z%3KBk)@D!v_Q$WiURfa4t!LBq5gB-f*4m^hFZ}c#tWV@?=9OMn>~X1Bui#lGwb9fn zyt2mTQ)U1vibm4S^cin@;XWdGPS;CaLh=bd)2GcWravTn(9f`Klw+iSG2^!%hoWh> z2S>h@ZrW672k+!eD?DFzHpV*VgNlp97SAJ1WwBmsrB5yqm_={c;q8)6?))S*M#+# z@b0Y~%2-0@4!)lB`SwQ6NMCPS!TBY-blccun3alk7%kGiMfhLhsh2i4B&#pnC%t_IZ*d=rye~DGDz{LsP>!|X zVdd;9I&~JMtu@O%xK~CTj&tN* zh4&2SB=)bTelL7Hx7Dp=b%Zy5dsoi)-WzQW^hdV~jw+=UD6CXn&bRcsawe**j2X< zooma)P)-h3)ZYiJ53<2HGBlM{)d@F0Gw)P8=z$E^Z+udC0&>1tv+}D-( ztK%$ow+$bioMd9UGWw3BEG#`p@@jkKoc3{`P;tj<(TZzXwvUz1wS1pt@uEw+xZ{pa z{c~R9;5})zD?seuI}Dn5smhu)m1LK?cXv$$5$yP;;5}rwze>RaZBTEd9>SC z#s(L;ub+HT;|cF1WR1w(!C-5{r-zmzrl*xD^GNBuQSm=xI>!93y>b5l@UX5f8w)8X zHN@)E7GiQ4j~T1J7}J{NmvG4~iu!nA;YymaI;q|$@AR!=>iNStVl#nWi{aZgnSmgm zTy(B`!yX?3FiLPetGBw9*vj3EJ9EXKy6(#=u5)sLnsgu1@C8Ym1p>1=c*|vvPkL{fhYY`wRFR;%qlJ z`Zl0^3wtRt&n=`0Eu4p`W{9%wKBZU>YW(~7jr%nCTf_b=v(WrA@g;m~G-c%0?yYP* zt2;QC_*Ow92_z&Rlyv zwRCe{9Zy)0SE)Q$a%5254hlT^GfZ}y!)#Rx3yFg)Huk5lblkK+v_+!$UP5Vn!q?pWD?WnKWt z?Z#`9(QG8r?gWvQj%Nl(5)YMBXB>W2tYz&fv9#o_cQa}dEt=baY?8z&B?{+$K2X2x z_dk_+j0I5zh-OIkED0+-hXG1F?-0r1~Vmi>0X>t?na~=oL2?T%FGwWQKnx6B7Or^b%%d+f_IyRxHPMn|?`%12}Aa;C~V~Vk_0PFAC{;UY8Z-lLfRlQpcM|vQ+|QVV$EK6mB~3 zI6M`tFWM8p*S;q3%o?;;kS@95=|0`3`BwW!1Q`+7l1h~s$EX#;e`y^9Tib7@wV;wV zlIKQ8F0c%iGTI)E6C9GGA3%7gDg9!cTpgshMv3ftpMmewTCv2)W4nvwnj?&>WBFG| z-U&ZE+IuQ96lb?*Dy|iQAy4oV`5ykY<=SQC#jV14g2GWWC0Bi{cp>8%$Nx5N99BNL zc_rj_$!j!sYPRRkNw5T9V}-!$o<9ocH623M_TTsDueX(K;gFu{-9fK4@fNcsiliog zx5FAVamOLV!#z398y|%^H8r5&d2}V!t^-~Pr`-?)Ac0#f+54@>a7}1wFr(Z2f`N`UG>BsK!RIS z<{3AsbOo}#dW;YM09|ojI-PZG8sY_!r?y#kC_q|PCkHv>zB#W%_)p>#*6r*g)?swL zwFU>eo=knJ-++LR<7FTZr|b1ueAP-zO^xYlk1YMJyfF+~KZP|%({^eRO5SDhE19B^ zODeVwdZyu#$0NOb{qUYU?SJBiou)m!SGJFK9oJ{ev>s1k&%J$b`%q}Ic#FdfkXpUW z(A*$_H@5w}Z5w(J12^l|yqn>LrH{jHKKod{wKB(%O{c?dw|WCeUSw0Xyxumd;Pg^6!0T6hJ>h$6jV$UG_HCxvM$YAD2Y;NP z232flVZr|ZCcLH(6KTF5wYvL9h^Mt4Xr2h9a9o1AaK@^gG9ak=4ojGmPbn#wI0 zKbvtEF?o5%-uc5HQU@9Itif;R>O$f;pZhP&Y{N0wGEUL;!RJ3*R;7NKls0x}ByqCYZ1UDSWeGxa^aX|1VTUTE;h zcP-_JP^)c)-JWACPg9aXA6mz^zI5FZg$Zy&<}rJvN&II$yAXZNb4FHnHK$R*n0_;}ib)Y89J>FT|qc!M0Fw@paRGxV}*D-sg ztg(5*PPs6T`2%{&OK}BKa0K*Td#@!FqMh@=COFgk6E6)-s8hDTFOtB2dEG9eR!#Euc5NZET{dP z(RZ>ow{p19THj=mU_4}C`q!)cD)A!!0BT!#=W2ox!LK845-r2F2uS|CntqqBohMRB z)&Br=&GQb~uRj%ra$M_klB^Zf;!UrckE6Hp;MRgl2GEB~yz!}YY zUx3xGrHP!D8O2*}JDn8$=4|QO8%1vF6p}f{E6x5T+DQ}(CP@Q=Jq>*qr|7~)IT+jz z73Kc`75qAW$#4Q5xz9@Ts%bl;&cs96&gk)P4C<}FW_iv59jn*8Kd(KUD6C26hBf0} zAJfZSNMp$=-NkqI^EJJ>-g#b_{&mwjYHLHfF!t2-K7sImiiFC8elTmN)ph3baIME$ z`NzUuFj%fYX)po6=Doi_)Fag`(6a-KXWqG>+#7_CCi0~-BJ*Col6epY9QWqA{YHDw zv;yqK2VYwB4MRo3L*$L^?SI@s1JSG=Xl3;^5$T+Mrx}MIzBRJu?*|o$!zMnp`KAZJ_n9lk|HaCPrbv^%eCO!K>f&SP_rQj8~zVzjZUFQsp-O zC27xbr!m3C58bbq^~;YU@=e@rJPP|K#@0sTNqwuhZ9VJa&xz2zj;S&MfX4$h#g@Kl z^7S%`yowgN)Gomdln1|R^nVHIYmp}2cmoyYei2rYkP(u{*1f~Rb|5N}yl?=;d$_s# zIN2RlCCeKly72v{ma4v(&mAkkKWHC_lK7KW{>ani-J@yS-a@=AlCA?jdx4Up@vlqx zx#QvB9}C9~yo(m4sg{a1&J1V=%;S!uAP;lxUnpu9L9F(pvpmh0PWwkaeb4f%$?$&C zUs#-Hpq7FO}vL}<8DVzGJgu&@U4x^G2ChiGup%ug3(A&Hh9~W zBO}_N@a?)o_NXphj8Z4=qm1=pK2!AP`PW4dTdA!yTW{U@hxf!_dJaD^Ut=nC+V_>w ztZud=wbndK;walle-PeUX>)$%t?n;nOH-T-GUskHj-wUcSzMUETA|dJlwrW%kJ}+E(F7NmLRGM%_Rn zxlMOP@?+b#JY?(x?L=m7xzkIc;j}HqZQ}( zBOOS{B#v->>yFm6IAIxr2|T%7j`mg=MJE6g*Xdhd4E#X)wXMCZWmgWG=FADvqdSAL$zgP$RnWSbmJAhs%SCj(+J~D;TRT=amL*8 zTBFpjn8x;Ro4Im|6_ zENsdmOl4y|a5Kry+VqyvTJqg>NXE#aQ#4T(0Jy=)VtR3$55~Oc-kjW7(I0fl@Me=f zm#kdaB$591HM=rRlG};e_yGFt{OhdMwD{xJEhWC4u5GTMdubzJs~+XcDJ$RQGIjQ> zON$ex-)WcfPA#tPE(9{VC?q6`cE$T$hfSkm=x?M(*fPQ1O6{cQ=gY@MP=fcY4a%VlwrdXQ_4k`t+0+rx2l z<=yFwVuEzW=&&%ZeRn1@4+gDjx`IPAHA@$kC)Ts?;EPSw zt*#^_Ln|zE@>?hPS-popf%d0P66U$AR-}3j=BeSko4E`|9p$IFvD!#66UEd6KV8ZF zdhFTi*1ikW(d_Px?vH+a_9}M>ow?o!;Z?moc&&|E&MjL_Tf-yAbPFz z+Pu@n9vPR#AKFc;GP6zQe)$P08wFpw4i6Q-;ZFuxG)mH2F6@2v%CP)F7_FPH3$2>D z)8-Eu%bRPmT}u)PA&y8V9rImq%;e|fRBP+5$Ip5n!JS6`08pOXAGAXgZEK!^xFi65 zeXHF3JK&2AA5YT_%-(F)s+(ekw<|FxBc1`l$*UTlh_y%<298U3kUq%mm0Bev05At5 z{{XL9i?4p=i(NvbD+YX!ciyhb5@ZODjM zEC;`T%Ch9vOoa6$XAzsrrh;Ewn;pKEZ}7XmbU ziA<612#JFp2Lzt{SBjk8h9<4_qWPJ_?`@QtI2+#dCYV)mQQn%WCrQF%?QT$Z7xc>l!#p6&n6&mgE z;P(4N)K+?XUPqG|&#phtE8*(SbgIhz&puO>S;^d8Pv>m}C_Ic*GFrTehv;}6{{k`;M$?X{>Am`%gYZw{9NG@GY+6sc*kRLf zuSor%{5x;s?+?eXX^0x~CCi0gxauqBJ4@%YyjdbAD%t!i=}(0IG>2Hy-oob?k#>^D z+wWq$N|E}lT{dSw!!BOu%l2Cu;0OKN1IRv=?H>(S0Z1E_Mn!TT7CaLtg#1%0#~E8$ z-*WuD52bd03*jeEEKYsu-QK5m8Mk|$w{LWwT1cdO-xoKG*DW&T7FkELjApUjk-w!-v zBBXIi^xa+qEFuZnkmH>3UYp=p<&r4ep4sEQUNSe2GTid&LCxIyI^S0NWMt=XBd%*B zRENur-Fj`vHG`vSQd;dvI9}PVg8Jz$EL$7`F_B(Enwqy$iSu5^32Ul|btZ(dP-`pV zev-G^Se-^rFn+$Zo3BYdmZ;Lk2?}yJ&1_Gp4NpTVeqzJ?n&X;uDn>%qEbxde*=8$@ z5O9AA_n(7u2;)V_%Kl=!hHD?Q>Mz%m-|JqH@YelpuTnDGLG7CMu{NnknCZ3E+4N?m zW-oNFx=+i}zE1ef;Mbn~v}^NjCj+g0ZKGVR)}MpV%U)ISD@PNvkhwhL9qYrwRQ6Sq zAw5r=JRjlqhT(of3Y=!WufzI!!yf1PRR-e6psXDaLl*M_sxljpc@&x}8RwpxfK%HyXXY$`+0Mxb5X_tT@OX zgjP?0=NB5&$t;aDyMr@1$y1({nc@$KdXBNC+*yMavv2+Bf)xT~>GN^JdyH45e$O8c zy6h6jnLJrEja{g$EY5a>eI4w(Q-PP^8Ww~%^sa_ z3gBdO#zksPtIMXU+MrWv$YQoYIEb<3PxSn&!oL-Gk-F#u0!Voc8A*l})K>uO5qf zSx4F}_CXuRmdi04h#vVIA9{)@^Lxe+PEPVXdtA4U;g!MNDLb1O@BaYStO;!-({6(| z%kzaR$RoXWeju|!c0^6`1C7eQ-Twf>xjjnOd#jaZk(tjKKd1DsqNl3mTODrJ(DcuR zdaU+(nF>tHxG36kM}J!S6Hm8_Zw>C4Ni#lU5Hz1CW@GZ;W2e1%2g02a;vG@$yta7I zqLp4tF*xJ#uclz|@>%Fp$utqisYKst9FN{)@TyO!8-M+E^LW+l>RlYpO}Ar@@eDKH zM|o!~vAnj{Vd9!DrPz=h4#aKu>q%j!!+WL0dm?%8+^7MjedOhH(EVy}5_op+O}_F- zSk9r3KWlRYYso-+k`6P|HA}*JU7K6Xpn0ilBipLGmQ?`cC>g-uisGo(v$>tDbMr|E z@R_lRR(7?HSne7AWdU5NC)BW7Zi{stj;zaY8~Z9>-P*}0#>|XuZ)4CC^r$u4<7;`Y zX|?aXTvwzRpM zL)2o1zYk4h`xti(D;d76_9~>Ni5FC5; zt!dp(=;)O?w)u=)1! zxMPL_xEZwQou2Vy^I?e$Qd_TCm!T{E(EcCFtXN-9HJygh9D0?SdGOD>A83U2QaiV1 z&wA*sA8Q_0{{Rdsio$rZG3Q8kZ8_{ZQ@kgtOKFs1#BR-I>KdZzj;=O>+~Ym!{)Yhh zjsQIeHJ`F>ha)$Ny)=%SRFX|X)Gi1NG18f!_-o0V&5&ZQSV`u_V{Ueyz3Xx}SkXp3 zvtK<~%9`Xy1#87v){f;YE$}#OU~^e_8oZ484ae58buC!=%oU2SPMs>E-H8dwBRpq4 z>xLZLoSjXF)VE+WbB@NQU$b38Qh1}d^%4L@V92IM8$rf;R?e4aB84n+F^-kfX1s#M z%YO`5T(Xq55h?8%Dg2FU+xRxh)TDyu?h-oem#zje$UUkUZXVYh98%4HEx_dM#c9vW zvlY=RXm)Z&Q0f=X2OsM|$i^|k)pqb^jk#oaB)Th{eWF%yzPx7?kizZG@7A_0;SC-b z0L7DKWMjkal6oTu7AY(8^@%` z$_QXbO76hM^%IjlDm0t-&nxjg!u_6J-TGHC9mG!s;w_02r|t$QTxHbLTuFk>hVRzBbH(}!w)O)j@*=$Xw9yGY{V~?P zS~#Z_sjO-^?qfv>jX@(Bt9zHr(CGaca1opP8VS2{^ ze7W@L`B%ElZw<|@NY^<`t%70RaRK4YenQl+W!KB=eO={mRBq%6NN0G^o5 zeIxLr!+&Vg;qz5b%bnQfxvv;_J`HN}IpIa~1LTZXt9&`PHdcZ;2GXnP&30A9My)kr zQK#=ak@%BGODINza-(mAp-&tWp!R1m^{6pM)c8ePSYH+0AwyD1;kymj|VDI!i+()JJme-JZBV zO7$?(_LL1Gx#E2r;VGC}peG|8jb(VQ*UXWD=sVJQLhEh3VOwy({3}mg*&+tUaz6_2 zCjFg5IVO)ehfNXPF~`fA`WwUl00r#4QK8uQBJMb(xz(0C{dPhJnQvgO50a-DR+WH2 zc;HA!-LH;+XfGTO4(MY^vbgef3(^a^5*j#x>&L0%^RCzSGX1%9ABP%;h^@XQO{!mC z>z7c>d`FM86j!BlcK1NV;ut#{YUad?a>#L?-kmhZFq9hg}`H_UB*)nD*V zTdxg$zs0`{VK=%IF`4eP7Lla7w#VKulgz1%oM&*s``x}bxX|U&v^$5CY?;#saOWS= zzghL4_$WWYO(y9r;_)@ksLX-)>H2i?r#*{p03U9(;a{{D?Irsz>eg?pr-Ll~dE!Y9 zL z&zgBTJwl-6ocjO?{44D%>l^Wx*?1RCbNN#=d9?Ic$Bh2vuy23~Q-M_T8tMe-@5bq-jja~>hn z-L8ucMo$2H)Y@#$%&Is5`qx{mX#0L(yyG>OYp1L&xF8<6trjzq7JHZNxlwCNv6AlL z6&EM^S50~0)>~7#8MDWH{{Z!>=YnlxYor7YPgd(*g{o=srI*S+VmpfR<ol zmS%vH80sWWs&Ur2>s?9h<#-j6-J~bYTzsmy#|P8=Yu9k*jn?N|j+a92M{uRq}!>vgMCXowJY5 zx|v<=hDKzJI#6>_H z7Qy#EpIY>c%-0&BmfCiB!hMx4qYPFojf_YiDBYZrbH#I>3>N-PwhA9>dL zg38y5Zi|?eReyGh$C3szPfwWsmB;D!Hqq+W_ED4N`Dt-1d&;i!m1b;pCkx-bZflV4 zTk?*VQLx&~@)pB(3)G&Yk6O!XdpNH&v*oqIv63mJ+E^JKK>>j8lx_HXsS8GuM*hjgT<9dz z9_vk=^$8v=MhF$HrA7ipkduZ|Jy?Y!(2#o9CE{rYt!D5GacL#9`B!SE{anCg>_5a0 zP~V?9uB7;dwFqFmc;kvoHr}@R1+qA0W6*nhfNRgZWqh{_9rd`&5Y2F@!Iygy6#J(6_(?RNXpUmFD~QDljc}Kkz8@SjyU%p&a%8o57^{ulFya~Oab!S$WB4_R_I6L zR^W{Yl(My*^ZwsRq6rH0vW6f!s(9w_xJabtZlzWHCk_UdZ zEsDRCP_H%fHK{coc5>8&tmMiUl6>c`cXg@kV0k1MT<4QgHkw{STd!Vf>^p35Sa1hi z@;R?I6BLTl2-F;Va4WpJ zmuD-+J@Zs`Ci`WZ9Q@elG^yfe&$$qvzj+@%P373!x-rH$+lnhk#+nTC>TK|hyz|?ed3@ao#KY|)knvT546)jdPUhnoG&Kh zYaY$K?LbDu1b<52oSdD4H@WCu1@QW^qk)E8ZEl>`w|G}ncZuxfZgI2|USZ(bJga!Q z&IWy}zqXB57_O7=j27m-7fw?79;~qZ)b6)NM~*H2%LK_FBd8g!E5kZ~x4bcDf_SfE z@fMR8iM%}61I|%_fz5pLH1p`X`oQW-ESNp0i{@Ofa#dex2A=5l`|U&iB)DF~`FF1x z*FGa1I`~5GlxM~>fnK8wZGWMcA2HjEXBn@Uz9vH@uBbO|131PoD1|80ZZal~R=v~P z{5O3Tr#x~Y-ILR(uSc=8^5bbxV~pVTubsXQ>ry0}WjS5g9M{sCZOX}NLh?5CuRf(W zMouTWP4g?BIq?eln&s90nf&X7()9(mxW@6zah|5V3*wfEEXdQtl6&K=cooj6HI2im z$ZYgK&Z>-kq*^?TV&;+V8eX9t;4qfzK2hmTxY5irhfoJO2E5zCek77h;giS!8upkZ zOYJl`!C*SqpI)1%bo!iJzVDfjt!4CfehF3WUOxJ=L8uihQMYhSdpf7ut!Id+BX1S+ z_l<2^P1apokDH3<%BRhGWKnkadLKo6J=aXu@eTX2-n$PKc$(Km&~CLWxi-OV8FnM7 z$6@c=@vj2-U9CKOLpKXppR@q;G8Bz36&%S-DN>~YEv5J!0 z^c?keJip>5xqISGc3bPmjqdJS%n+&1maINi&#(jY_pWBuJdna@oo8}323{~nP-=tR zOLcbcSnemNuCq&kY7J~BkBAp&c07^S75bGbaD)^V$Y~C;wrg8IJAN6C6-Yma^{(T< zzYb#7udE}MIi=JurBH2V;iF(lc@O&l07tDi!Fn7%Ce-G*zh}%*R($VCDB0epGsN*750jY*0i9NYEmK zo`7PwPY^^dGsZ&wc=xW;Ubx#HGuF7dZfJ&+3AlEIZNF|$UoHHD8*w<}Z@r*3bO1g|7I(wb*ft}~+ znxW;4;P>x}(_1~3>fG+fZnc$va9OLY;+ z8sKjy8&?^@89dift2g#!#?Q_!sPM@pss$mKla*ZZ5CAx=e-6V7!)}wblUx~EYm0c4 zmDr%|ZM}ArwB%M6wXSWuk?rGH{{VRM$0WmZ73dePM_F$nmS?p= za~|D{Sd{rl>z+)e>{SJ8tygCN-wnriq1rgqbl%D zTdsEJjsfQt!`l6l9aeRk)z6nBNZXfj3d%9xfKG8ow{P9CwkonqmL+>jdz*WSWR_VO znn3bG2|Je`dmh-$GgGm2UpbV0mgYr#vtZ{31dl_<`8Ckn$qX^Ewgsf}cHH@d?oLhz zK7gJ+l~mfpG;a&5OBUbsNXX7m@t%6%`t%s3^_fRo9%`ui9A%tsXL_U|c7!P%OJKfKWcjhrkWLikSbjgHQV(p`R~DsK z2_%p@$~X|*4oU{>tU3H^piMN}NiCx(X~OxI%N{{Q&&)s1wL#*~2AxkvmT#6FGG$n% zY#fy*hf(UMzou)dmM7mzPeydcrQW8;hc6=5EWzFyVA~u6oDgyTHQ2+W2;(fn-o9h_ zN8+FOR{lJjK-Q#mwKABz!a-b?7;O4``&ZYO%8=QXQV1Y(pVU^lv|R?5N3%L5SxPD= z7pgpVu18AcueAd55!G?hu6Tms=D2Xjrxndy7v0NaBN!al&c-*~^BZN8alz-McGmtIRe(3B zrz>07lDNZEFEOusa;BN42r>vCDaTsqKeG~O@HjQf>Uz(YpDnO+k4lqA@qpciJGmIG zVHjUgy)@`-U0J=DKQ>hUbe5OuB*yQUaZ_Dt(N6&?!_%HCoRd&krq6PC1lBcVqW#dh z)m&Z;r=Fd2(y}Jhyu6*+2dev3cD)RzoaB1eZRCu_hfsPBwad=jt{1saSh}~Ffebfi zoY7oAiY}#!McTk~){6QXH03BKbFwtdBKvhM9;zl^H@ zjyy{7=RewaK;!+LE*JDm}g_c@(&!!l_z8Q>ff zo;p<8PPAcBy|6LSxUWRK)5f7{QLw~}it}#~=&z?p%mLZgrF_;W4AXLn(PcPtv7RTq zTgX|rjydP0d0wR_moY2IVh~q%GBn~}uTRc3d$ub=#nmU_1fo7BV>#$4v*xnVkUyH&I_k z_)^YII_~1iP&~zAJ&k$i#?1%Kf0VVf@bkG1s@mN0-wSCoMRYvD zw2rmw+8xo3+{Q@@jg+bO7WK~Iz2jV*F^~9 zrVoF5^FNE)4(SA_Gn0|Db6rl0tBG|0Hw^XntmEmEe@VKo^z8PHd zEeiQOF`~_=TpUFVWw3bMdk@6oyiZWLxYsp{%gd?padh8kb|mn92heekYV~i7+J32} zX?lE1V?26PtV>=rWJM%^aDloK22T~^=1DHE(n%y{DmI>fhZx7@U!&!8qsZ&6T#MUQ zb~j%SuRJ?xq+jc{b6e@Upc7i^7T`Qn#v5rMgN%X*BZ56B*8a_>#PP!@5QZBX-O2eo zb>}qS3F}&(gBjw3ddt@2N?MX_r-lH;JZN$ntZB0QOBV4uMGHS zqsIt}2$7U29$_t=&HfeiW{Yk1TM@@N#%tj*^_59kJqW2Qw2_PAi-Q`u9FQ_IUSWNy zI>_vueXG#CQ96j0VrFdog&IsD{2=hnLY zF6r*AO5pFt7aY~4@U+*`E6BJ{rFBuM?B`CgQ{s>)N(F zcXb>$Wr6AI+PwPjUE^--ir$NLP@^tw1@Sau=*F>}Z9R`#^{<8c5=p0oxrt?tRl}o> z7pM4xMTc9^~-eHq&aUz5Ff}Z`W&Z6V3_cG=^55ktue+9ftExC1<%Xkh-vL;C+ z^%)>`s(vfJlH&3I0MO!!Ip6@xxPIXS<0tA*LFrl6TA{Sj(M$>&-rZpnDLH|hobKpD z3<}KEHAD7=@+NDQ3KwgzAgE)sen6kbw^8Pm*|jy)wSOZ^eGrcMXOy!72n9gFB;bA> z>laY_TsK#(=fD?aZMY!^Ic_@Ct8i|li#Cks%sbTW1ED>0RIe<_y1jL>Jgji2W6tA~ z)2DIBuPuKP=LJW3TuCpCPc)Ou<}Um^SPG|(KhL#I_Rl6#(6di=fFwOak&LqEra!<| z8(PS-5|BSnEHi>m?DL=Tt$Q0;g1RH9nHk&5>ZmcvqF(GwZuTXT)>+!rJkhDal}H?u z=zluY)AY%0V2X5&t>?A|OU7mAV{%k`NZB zj>p=$Yn^3J4fuLj%|~M=Zl;8HDQ(HX09K}*;&>pDPX&R=t_J$~nB`j}^{mv?WR6U7 z#;=!~Vp;SRmx*DT5w*Y=&f3YfhDu~nH+P)T9Hp{9Yi{lc_atMdSul` zyl0aH_wQMw5TMIv2dzdgzj#k!>DsV+i0WauW4zA95C&&`Zyp*W(g_=3%(k#mwW)KOnehjI2%JL4-PkFR`f`_CMB zm>!?nw?mKm>h;54z_#~AlY_d7EA0BRj)P3Tk)u>6x#qKcLKfyZH>l`M6jv=op66T- z0`bgZ-r?B>Fi#cd`h?EY5KkSy8Yr$R9}!hP66S|ulTOUUoxQ8P@YR|}xuk$$mN#NGxZoz>~y9Z@!(r0{WyD6SfMJr4Rivzqa>y0x5{9ZhpT34C3B;qM$< z!EDFMx_>FxIQk#LiYe6iiK)5ob6Lk8sBR-0T0^;qUTco{t!k2K@)A0&6jv7Mo+Q2| zeAB9bqRk?Ym~PKL^~rdjEULM{z$S_-x9p?6{0A`{&2JzodFx)a;C*U&Emw99-;_~B zd2@<)GsEtBwwwNu3kLv73j8FmW|;%dvvkVu3{3v z^W3ACoz(Em6*j0Njm&!EA29yipR;#|z5)C|({DU6D?_FDh)Z=ImeKsSET`sJ+dQE? z6pxptO%zs{JzA9WnNf_r-d(zMJuF05vrfm&*U`1EkG&raCj^0x-~D>%{s#Dd();^P z0kZ;3{pv)_ut&5XT%NR1UwfNQQK2qYdHY4P-MkB>#SF>^bDH(m{oRNQ>@)SEiuh*R zdYp%u_@?RQoT)r#AEjjJwyP-&-kHWIqOhp+MN4x=^3_!~^&Ds3vi|_EVYs+PXKWMq zM@lHKTMzJ~qKW7}7tw9wjW9i{vU@nAg>ZljQAKAjiJgP2=KBd1!jY0#q#a}cVwTfWn41Jd2~YTg<&qy zhCe$ia7p}VqPAQ7f;*Eos`pn4k;bq@`yyo=0I2CGHz_={{YuT z6?LM$s})U#6%sB_fAFgETca*<>S&_5(`c2ke$hgrk;fH%Zk value.id_nomenclature_stade != 7 ", + "required": false, + "min": 1, + "max": 6 + }, + "larve_long_cm": { + "type_widget": "number", + "attribut_label": "Longeur de la larve", + "hidden": "({value}) => value.id_nomenclature_stade != 7", + "required": false + }, + "larve_large_tete_cm": { + "type_widget": "number", + "attribut_label": "Largeur de la tête", + "hidden": "({value}) => value.id_nomenclature_stade != 7", + "required": false + }, + "exuvie_support": { + "type_widget": "textarea", + "attribut_label": "Support de l'exuvie", + "hidden": "({value}) => value.id_nomenclature_stade != 12", + "required": false + }, + "exuvie_haut_cm": { + "type_widget": "number", + "attribut_label": "Haut de l'exuvie (cm)", + "hidden": "({value}) => value.id_nomenclature_stade != 12", + "required": false + }, + "exuvie_dist_eau_cm": { + "type_widget": "number", + "attribut_label": "Distance eau de l'exuvie (cm)", + "hidden": "({value}) => value.id_nomenclature_stade != 12", + "required": false + }, + "id_nomenclature_behaviour": { + "type_widget": "datalist", + "attribut_label": "Comportement des imago observées", + "api": "nomenclatures/nomenclature/OCC_COMPORTEMENT", + "application": "GeoNature", + "keyValue": "id_nomenclature", + "keyLabel": "label_fr", + "data_path": "values", + "type_util": "nomenclature", + "filters": {"label_default": ["Passage en vol","Pond","Posé","Accouplement","Non renseigné","Erratique"]}, + "hidden": "({value}) => value.id_nomenclature_stade != 16", + "required": false, + "default": { + "label_default": "Non renseigné" + } + }, + "comments": { + "type_widget": "textarea", + "attribut_label": "Commentaire" + } +} +} \ No newline at end of file diff --git a/suivi_cordulegaster/site.json b/suivi_cordulegaster/site.json new file mode 100644 index 0000000..7988a7f --- /dev/null +++ b/suivi_cordulegaster/site.json @@ -0,0 +1,119 @@ +{ "map_label_field_name": "base_site_code", + "label": "Site", + "label_list": "Sites", + "genre": "M", + "geometry_type": "Polygon", + "display_properties": [ + "id_sites_group", + "base_site_name", + "base_site_description", + "type_milieu", + "tuf", + "altitude_min", + "couv_arboree", + "couv_herbacee", + "especes_dominantes", + "type_boisement", + "last_visit", + "nb_visits" + ], + "display_list": [ + "base_site_name", + "id_inventor", + "first_use_date", + "last_visit", + "nb_visits" + ], + "specific": { + "id_nomenclature_type_site": { + "type_widget": "text", + "attribut_label": "Type site", + "type_util": "nomenclature", + "value": { + "code_nomenclature_type": "TYPE_SITE", + "cd_nomenclature": "7" + }, + "hidden": true + }, + "id_sites_group": { + "type_widget": "datalist", + "attribut_label": "Air d'études", + "type_util": "sites_group", + "keyValue": "id_sites_group", + "keyLabel": "sites_group_name", + "api": "__MONITORINGS_PATH/list/__MODULE.MODULE_CODE/sites_group?id_module=__MODULE.ID_MODULE", + "application": "GeoNature", + "required": false, + "hidden": false + }, + "base_site_name": { + "type_widget": "text", + "attribut_label": "Nom du site", + "required": true + }, + "first_use_date": { + "type_widget": "date", + "attribut_label": "Date de création du site", + "required": true + }, + "type_hab_larve": { + "type_widget": "select", + "attribut_label": "Type d’habitat larvaire", + "values": ["Source/exsurgence","Ruisselet","Vasques","Eau dormante"], + "required": true, + "hidden": false + }, + "tuf": { + "type_widget": "radio", + "attribut_label": "Habitat tufeux ?", + "values": ["Oui", "Non"], + "required": true, + "hidden": false + }, + "couv_arboree": { + "type_widget": "select", + "attribut_label": "Couverture d'arborée", + "values": ["0-25%","25-50%","50-75%","75-100%"], + "required": true, + "hidden": false + }, + "altitude_min": { + "attribut_label": "Altitude", + "required": false, + "hidden": true + }, + "couv_herbacee": { + "type_widget": "select", + "attribut_label": "Couverture d'herbacée", + "values": ["0-25%","25-50%","50-75%","75-100%"], + "required": true, + "hidden": false + }, + "especes_dominantes": { + "type_widget": "text", + "attribut_label": "Espèces dominantes présentes : ", + "required": true, + "hidden": false + }, + "type_boisement": { + "type_widget": "text", + "attribut_label": "Type de boisement", + "values": ["Feuillus","Résineux","Mixtes","Non boisé"], + "required": true, + "hidden": false + }, + "base_site_code": { + "type_widget": "text", + "attribut_label": "Code du site", + "required": false, + "hidden": true + }, + "nb_visits": { + "attribut_label": "Nb. de passages" + }, + "last_visit": { + "attribut_label": "Dernier passage", + "type_util": "date" + } + } +} \ No newline at end of file diff --git a/suivi_cordulegaster/sites_group.json b/suivi_cordulegaster/sites_group.json new file mode 100644 index 0000000..b3415f0 --- /dev/null +++ b/suivi_cordulegaster/sites_group.json @@ -0,0 +1,45 @@ +{ "label": "Aire d'études", + "label_list": "Aire d'études", + "map_label_field_name": "sites_group_name", + "color":"#FAF38F", + "genre": "F", + "display_properties": [ + "sites_group_name", + "sites_group_description" + ], + "display_list": [ + "sites_group_name", + "nb_sites", + "nb_visits" + ], + "specific": { + "sites_group_name": { + "required": false, + "hidden": false, + "attribut_label": "Nom de l'aire d'études", + "type_widget": "text" + }, + "sites_group_description": { + "required": false, + "hidden": true, + "attribut_label": "Remarque/description", + "type_widget": "text" + }, + "sites_group_code": { + "type_widget": "select", + "required": true, + "hidden": false, + "attribut_label": "Type d'aire d'études", + "values": ["Espace Naturel Sensible", "Natura 2000", "Réserve Naturelle","Site sous convention","Autres"] + }, + "medias": { + "required": false, + "hidden": true + }, + "nb_sites": { + "attribut_label": "Nombre de sites" + }, "nb_visits": { + "attribut_label": "Nombre de visites" + } + } + } \ No newline at end of file diff --git a/suivi_cordulegaster/synthese.sql b/suivi_cordulegaster/synthese.sql new file mode 100644 index 0000000..3123262 --- /dev/null +++ b/suivi_cordulegaster/synthese.sql @@ -0,0 +1,88 @@ +-- Vue générique pour alimenter la synthèse dans le cadre d'un protocole site-visite-observation +-- +-- Ce fichier peut être copié dans le dossier du sous-module et renommé en synthese.sql (et au besoin personnalisé) +-- le fichier sera joué à l'installation avec la valeur de module_code qui sera attribué automatiquement +-- +-- +-- Personalisations possibles +-- +-- - ajouter des champs specifiques qui peuvent alimenter la synthese +-- jointure avec les table de complement +-- +-- - choisir les valeurs de champs de nomenclatures qui seront propres au modules + + +-- ce fichier contient une variable :module_code (ou :'module_code') +-- utiliser psql avec l'option -v module_code= '{id_nomenclature_stade}'AS id_nomenclature_stade, + toc.data::json #> '{id_nomenclature_eta_bio}' AS id_nomenclature_eta_bio, + toc.data::json #> '{id_nomenclature_behaviour}' AS id_nomenclature_behaviour, + toc.data::json #> '{id_nomenclature_obs_technique}' AS id_nomenclature_obs_meth, + toc.data::json #> '{id_nomenclature_sex}' AS id_nomenclature_sex, + toc.data::json #> '{id_nomenclature_observation_status}' AS id_nomenclature_observation_status, + ref_nomenclatures.get_id_nomenclature('STATUT_SOURCE'::character varying, 'Te'::character varying) AS id_nomenclature_source_status, + ref_nomenclatures.get_id_nomenclature('TYP_INF_GEO'::character varying, '1'::character varying) AS id_nomenclature_info_geo_type, + 1 AS count_min, + 1 AS count_max, + to2.cd_nom, + t.nom_complet AS nom_cite, + alt.altitude_min, + alt.altitude_max, + tbs.geom AS the_geom_4326, + st_centroid(tbs.geom) AS the_geom_point, + tbs.geom_local AS the_geom_local, + tbv.visit_date_min AS date_min, + COALESCE(tbv.visit_date_max, tbv.visit_date_min) AS date_max, + tbv.id_base_visit AS id_visit, + tbv.visit_date_max, + tbv.id_digitiser, + tbs.id_inventor, + concat(tr.nom_role, ' ', tr.prenom_role) AS observers, + tsc.id_module, + tbv.comments AS comment_context, + to2.comments AS comment_description, + obs.ids_observers, + tbv.id_base_site, + tbv.id_base_visit + FROM gn_monitoring.t_base_sites tbs + LEFT JOIN gn_monitoring.t_site_complements tsc ON tsc.id_base_site = tbs.id_base_site + LEFT JOIN gn_monitoring.t_base_visits tbv ON tbs.id_base_site = tbv.id_base_site + LEFT JOIN observers obs ON obs.id_base_visit = tbv.id_base_visit + LEFT JOIN gn_monitoring.t_observations to2 ON to2.id_base_visit = tbv.id_base_visit + LEFT JOIN gn_monitoring.t_observation_complements toc ON toc.id_observation = to2.id_observation + LEFT JOIN utilisateurs.t_roles tr ON tr.id_role = tbv.id_digitiser + LEFT JOIN taxonomie.taxref t ON to2.cd_nom = t.cd_nom + LEFT JOIN t_source ON true + LEFT JOIN LATERAL ref_geo.fct_get_altitude_intersection(tbs.geom_local) alt(altitude_min, altitude_max) ON true + LEFT JOIN gn_commons.t_modules tm ON tm.id_module = tsc.id_module + WHERE tm.module_label::text ~~* 'SUIVI_CORDULEGASTER'::text + and to2.cd_nom is not null + and to2.uuid_observation is not null; + +GRANT SELECT ON TABLE gn_monitoring.v_synthese_suivi_cordulegaster TO geonature; \ No newline at end of file diff --git a/suivi_cordulegaster/visit.json b/suivi_cordulegaster/visit.json new file mode 100644 index 0000000..7ee19d8 --- /dev/null +++ b/suivi_cordulegaster/visit.json @@ -0,0 +1,240 @@ +{ + "display_properties": [ + "id_base_site", + "id_dataset", + "observers", + "visit_date_min", + "time_start", + "time_end", + "quadrat", + "temperature", + "cloudiness", + "rain", + "wind", + "data_abiotique", + "physicochimie_temp", + "physicochimie_ph", + "physicochimie_conductivite", + "physicochimie_O2_dissous_mg_l", + "physicochimie_tx_O2", + "habitat_hauteur_lame_eau_classe", + "habitat_hauteur_lame_eau_cm", + "habitat_hauteur_sediments_cm", + "habitat_substrat_organique", + "habitat_granulo_sediments_majoritaire", + "habitat_commentaires", + "data_labo_DBO5", + "data_labo_COD", + "data_labo_PO4", + "data_labo_Ptotal", + "data_labo_NH4", + "data_labo_NO2", + "data_labo_NO3", + "data_labo_chlorures", + "data_labo_sulfates", + "data_labo_cuivre", + "data_labo_micropolluants", + "comments" + ], + "display_list": [ + "id_base_site", + "visit_date_min", + "observers" + ], + "map_label_field_name": "base_site_name", + "specific": { + "visit_date_min": { + "attribut_label": "Date", + "required": true + }, + "time_start": { + "type_widget": "time", + "attribut_label": "Heure de début du relevé", + "required": true + }, + "quadrat": { + "type_widget": "select", + "attribut_label": "Quadrat", + "values": ["1a" ,"1b" ,"2a" ,"2b" ,"3a" ,"3b" ,"4a" ,"4b" ,"5a" ,"5b" ,"6a" ,"6b" ,"8a" ,"8b" ,"HQ"], + "required": true + }, + "temperature": { + "type_widget": "number", + "attribut_label": "Température au début du relevé", + "required": true + }, + "cloudiness": { + "type_widget": "select", + "attribut_label": "Couverture nuageuse", + "values": ["0 à 10%","10 à 25%", "25 à 50%", "Plus de 50%"], + "required": true + }, + "rain": { + "type_widget": "select", + "attribut_label": "Pluie", + "values": ["Pas de précipitations","Averses", "Pluie continue", "Orage"], + "required": true + }, + "wind": { + "type_widget": "select", + "attribut_label": "Vent", + "values": ["Nul","Faible", "Moyen", "Soutenu", "Rafales"], + "required": true + }, + "data_abiotique": { + "type_widget": "radio", + "attribut_label": "Transmission de données abiotiques ?", + "values": ["Physico-chimie", "Habitat", "Données laboratoire", "Non"], + "default": "Non", + "required": true + }, + "physicochimie_temp": { + "type_widget": "number", + "attribut_label": "Physico-chimie - Température", + "hidden": "({value}) => value.data_abiotique != 'Physico-chimie'", + "required": false + }, + "physicochimie_ph": { + "type_widget": "number", + "attribut_label": "Physico-chimie - Ph", + "hidden": "({value}) => value.data_abiotique != 'Physico-chimie'", + "required": false + }, + "physicochimie_conductivite": { + "type_widget": "number", + "attribut_label": "Physico-chimie - Conductivitée", + "hidden": "({value}) => value.data_abiotique != 'Physico-chimie'", + "required": false + }, + "physicochimie_O2_dissous_mg_l": { + "type_widget": "number", + "attribut_label": "Physico-chimie - O2 dissous mg/l", + "hidden": "({value}) => value.data_abiotique != 'Physico-chimie'", + "required": false + }, + "physicochimie_tx_O2": { + "type_widget": "number", + "attribut_label": "Physico-chimie - taux O2 (%)", + "hidden": "({value}) => value.data_abiotique != 'Physico-chimie'", + "required": false + }, + "habitat_hauteur_lame_eau_classe": { + "type_widget": "select", + "attribut_label": "Habitat - Lame eau classe", + "values": ["0","0,5 à 4", "4 à 8", "8 à 15", "15 à 20", "plus de 20"], + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "habitat_hauteur_lame_eau_cm": { + "type_widget": "number", + "attribut_label": "Habitat - Hauteur lame d'eau (cm)", + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "habitat_hauteur_sediments_cm": { + "type_widget": "number", + "attribut_label": "Habitat - Hauteur sediments (cm)", + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "habitat_substrat_organique": { + "type_widget": "select", + "attribut_label": "Habitat - Substrat organique", + "values": ["Absence","Traces/présence", "Majoritaire"], + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "habitat_granulo_sediments_majoritaire": { + "type_widget": "select", + "attribut_label": "Habitat - Granulo sediments majoritaire", + "values": ["<2mm","25mm"], + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "habitat_commentaires": { + "type_widget": "textarea", + "attribut_label": "Habitat - Commentaires", + "hidden": "({value}) => value.data_abiotique != 'Habitat'", + "required": false + }, + "data_labo_DBO5": { + "type_widget": "textarea", + "attribut_label": "Labo - DBO5 (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_COD": { + "type_widget": "textarea", + "attribut_label": "Labo - COD (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_PO4": { + "type_widget": "textarea", + "attribut_label": "Labo - PO4 (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_Ptotal": { + "type_widget": "textarea", + "attribut_label": "Labo - Ptotal (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_NH4": { + "type_widget": "textarea", + "attribut_label": "Labo - NH4 (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_NO2": { + "type_widget": "textarea", + "attribut_label": "Labo - NO2 (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_NO3": { + "type_widget": "textarea", + "attribut_label": "Labo - NO3 (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_chlorures": { + "type_widget": "textarea", + "attribut_label": "Labo - Chlorures (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_sulfates": { + "type_widget": "textarea", + "attribut_label": "Labo - Sulfates (mg/l)", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_cuivre": { + "type_widget": "textarea", + "attribut_label": "Labo - Cuivre µg/l", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "data_labo_micropolluants": { + "type_widget": "textarea", + "attribut_label": "Labo - Micropolluants", + "hidden": "({value}) => value.data_abiotique != 'Données laboratoire'", + "required": false + }, + "comments": { + "type_widget": "textarea", + "attribut_label": "Commentaires", + "required": false + }, + "time_end": { + "type_widget": "time", + "attribut_label": "Heure de fin du relevé", + "required": false + }, + "medias": { + "hidden": true + } + } +} \ No newline at end of file From d7a399076144e0a3228f32b8fc58888000c244d7 Mon Sep 17 00:00:00 2001 From: LpoAuRADev Date: Mon, 24 Jun 2024 18:46:54 +0200 Subject: [PATCH 2/2] add readme --- suivi_cordulegaster/docs/README.md | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 suivi_cordulegaster/docs/README.md diff --git a/suivi_cordulegaster/docs/README.md b/suivi_cordulegaster/docs/README.md new file mode 100644 index 0000000..a894c0b --- /dev/null +++ b/suivi_cordulegaster/docs/README.md @@ -0,0 +1,80 @@ +# Documentation du Module + +Ce module est conçu pour gérer le suivi de la flore patrimoniale. + +### Aire d'études + + - ``sites_group_name`` - **Nom de l'aire d'études** + - ``sites_group_description`` - **Remarque/description** + - ``sites_group_code`` - **Type d'aire d'études :** (Espace Naturel Sensible, Natura 2000, Réserve Naturelle, Site sous convention, Autres) + +### Sites + + - ``id_sites_group`` - **Air d'études** + - ``base_site_name`` - **Nom du site** + - ``base_site_description`` - **Description du site** + - ``type_milieu`` - **Type de milieu** + - ``tuf`` - **Habitat tufeux ? :** (Oui, Non) + - ``altitude_min`` - **Altitude** + - ``couv_arboree`` - **Couverture d'arborée :** (0-25%, 25-50%, 50-75%, 75-100%) + - ``couv_herbacee`` - **Couverture d'herbacée :** (0-25%, 25-50%, 50-75%, 75-100%) + - ``especes_dominantes`` - **Espèces dominantes présentes** + - ``type_boisement`` - **Type de boisement :** (Feuillus, Résineux, Mixtes, Non boisé) + - ``last_visit`` - **Dernier passage** + - ``nb_visits`` - **Nb. de passages** + - ``id_inventor`` - **Inventeur** + - ``first_use_date`` - **Date de création du site** + +### Visites + +- `id_base_site` - **Site visité** +- `visit_date_min` - **Date de la visite** +- `observers` - **Observateurs** +- `time_start` - **Heure de début du relevé** +- `time_end` - **Heure de fin du relevé** +- `quadrat` - **Quadrat** : ("1a" ,"1b" ,"2a" ,"2b" ,"3a" ,"3b" ,"4a" ,"4b" ,"5a" ,"5b" ,"6a" ,"6b" ,"8a" ,"8b" ,"HQ") +- `temperature` - **Température au début du relevé** +- `cloudiness` - **Couverture nuageuse** : ("0 à 10%","10 à 25%", "25 à 50%", "Plus de 50%") +- `rain` - **Pluie** : ("Pas de précipitations","Averses", "Pluie continue", "Orage") +- `wind` - **Vent** : ("Nul","Faible", "Moyen", "Soutenu", "Rafales") +- `data_abiotique` - **Transmission de données abiotiques** +- `physicochimie_temp` - **Physico-chimie - Température** +- `physicochimie_ph` - **Physico-chimie - Ph** +- `physicochimie_conductivite` - **Physico-chimie - Conductivité** +- `physicochimie_O2_dissous_mg_l` - **Physico-chimie - O2 dissous (mg/l)** +- `physicochimie_tx_O2` - **Physico-chimie - Taux O2 (%)** +- `habitat_hauteur_lame_eau_classe` - **Habitat - Classe de hauteur de la lame d'eau** +- `habitat_hauteur_lame_eau_cm` - **Habitat - Hauteur de la lame d'eau (cm)** : ("0","0,5 à 4", "4 à 8", "8 à 15", "15 à 20", "plus de 20") +- `habitat_hauteur_sediments_cm` - **Habitat - Hauteur des sédiments (cm)** +- `habitat_substrat_organique` - **Habitat - Substrat organique** : ("Absence","Traces/présence", "Majoritaire") +- `habitat_granulo_sediments_majoritaire` - **Habitat - Granulo sediments majoritaire** : (<2mm, 25mm) +- `habitat_commentaires` - **Habitat - Commentaires** +- `data_labo_DBO5` - **Laboratoire - DBO5 (mg/l)** +- `data_labo_COD` - **Laboratoire - COD (mg/l)** +- `data_labo_PO4` - **Laboratoire - PO4 (mg/l)** +- `data_labo_Ptotal` - **Laboratoire - Ptotal (mg/l)** +- `data_labo_NH4` - **Laboratoire - NH4 (mg/l)** +- `data_labo_NO2` - **Laboratoire - NO2 (mg/l)** +- `data_labo_NO3` - **Laboratoire - NO3 (mg/l)** +- `data_labo_chlorures` - **Laboratoire - Chlorures (mg/l)** +- `data_labo_sulfates` - **Laboratoire - Sulfates (mg/l)** +- `data_labo_cuivre` - **Laboratoire - Cuivre (µg/l)** +- `data_labo_micropolluants` - **Laboratoire - Micropolluants** +- `comments` - **Commentaires** + +### Observations + +- `id_nomenclature_observation_status` - **Statut d'observation** +- `id_nomenclature_obs_technique` - **Techniques d'observation** +- `cd_nom` - **Espèces observées** +- `id_nomenclature_stade` - **Stade Biologique** +- `id_nomenclature_sex` - **Sexe** +- `num_cp_tamis` - **Nombre de coup de tamis** +- `larve_stade` - **Stade de la larve** +- `larve_long_cm` - **Longueur de la larve (cm)** +- `larve_large_tete_cm` - **Largeur de la tête (cm)** +- `exuvie_support` - **Support de l'exuvie** +- `exuvie_haut_cm` - **Haut de l'exuvie (cm)** +- `exuvie_dist_eau_cm` - **Distance eau de l'exuvie (cm)** +- `id_nomenclature_behaviour` - **Comportement des imago observées** +- `comments` - **Commentaire** \ No newline at end of file