From 7730ac7b000395024fd6e8e281d22fa3ca8ddd9a Mon Sep 17 00:00:00 2001 From: nocode Date: Tue, 7 Jul 2026 21:39:29 +0200 Subject: [PATCH] feat(build): add preflight package resolution and fws-dnd package Add preflight package resolution step in build-offi.sh to validate all profile packages against pacman repositories before mkarchiso execution. This prevents 'target not found' errors during ISO creation by catching missing packages early with helpful error messages and recovery instructions. Introduce fws-dnd package (D&D 5e manager for FWS with GTK4 interface) to the local package build process in setup-aur.sh. Include PKGBUILD definition and source tarball. When package resolution fails, the build now exits with clear feedback pointing users to run setup-aur.sh to build missing dependencies like fws-dnd. --- build-offi.sh | 25 ++++++++++++++++++++ pkgbuilds/fws-dnd/PKGBUILD | 31 +++++++++++++++++++++++++ pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz | Bin 0 -> 33134 bytes setup-aur.sh | 5 ++-- 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 pkgbuilds/fws-dnd/PKGBUILD create mode 100644 pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz diff --git a/build-offi.sh b/build-offi.sh index 336ed0b..b191dab 100755 --- a/build-offi.sh +++ b/build-offi.sh @@ -353,6 +353,31 @@ echo "==> Correction des retours à la ligne Windows (dos2unix)..." pacman -S --needed --noconfirm dos2unix find /tmp/fws-build/releng -type f -exec dos2unix {} + 2>/dev/null +# ── Pré-vol : résolution de TOUS les paquets du profil ── +# « error: target not found » ne doit plus surgir en plein mkarchiso : on +# résout la liste complète (packages.x86_64 fusionné) contre le pacman.conf +# du profil (fws-local injecté inclus) dans une base temporaire. S'il manque +# un paquet, on échoue ICI avec la liste + le geste correctif. +echo "==> Pré-vol : résolution des paquets du profil..." +PREFLIGHT_DB="$(mktemp -d)" +pacman -Sy --config /tmp/fws-build/releng/pacman.conf --dbpath "$PREFLIGHT_DB" >/dev/null +mapfile -t PROFILE_PKGS < <(sed -e 's/#.*//' -e 's/[[:space:]]//g' -e '/^$/d' \ + /tmp/fws-build/releng/packages.x86_64) +# -Sp n'installe rien (affiche les URLs) ; LC_ALL=C fige le motif d'erreur. +# stderr → capture, stdout → poubelle ; le pipeline sed sort toujours 0. +MISSING="$(LC_ALL=C pacman -Sp --config /tmp/fws-build/releng/pacman.conf \ + --dbpath "$PREFLIGHT_DB" "${PROFILE_PKGS[@]}" 2>&1 >/dev/null \ + | sed -n 's/^error: target not found:[[:space:]]*//p')" +rm -rf "$PREFLIGHT_DB" +if [ -n "$MISSING" ]; then + echo -e "\e[31mPaquets introuvables dans les dépôts du profil :\e[0m" >&2 + printf ' \e[31m%s\e[0m\n' $MISSING >&2 + echo -e "\e[33mDépôt fws-local absent/incomplet ? Lance ./setup-aur.sh (construit" >&2 + echo -e "anaconda, winboat-bin, fws-dnd, …) puis relance ce script.\e[0m" >&2 + exit 1 +fi +echo "==> Pré-vol OK : ${#PROFILE_PKGS[@]} paquets résolus." + echo "==> Lancement de mkarchiso..." mkdir -p "$OUT_DIR" # mkarchiso fait un « rm » interne de l'ISO cible avant de la (ré)écrire ; si diff --git a/pkgbuilds/fws-dnd/PKGBUILD b/pkgbuilds/fws-dnd/PKGBUILD new file mode 100644 index 0000000..250eb26 --- /dev/null +++ b/pkgbuilds/fws-dnd/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: FWS +pkgname=fws-dnd +pkgver=2.0.0 +pkgrel=1 +pkgdesc="Gestionnaire D&D 5e pour FWS (GTK4) : dés, créateur de personnage (règles officielles), grimoire, sessions, tracker de combat" +arch=('any') +url="https://fws.local/fws-dnd" +license=('MIT') +depends=('python' 'python-gobject' 'gtk4') +source=("${pkgname}-${pkgver}.tar.gz") +sha256sums=('SKIP') + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # Module Python (application GTK4) + install -d "${pkgdir}/usr/share/${pkgname}" + cp -r gui/fwsdnd "${pkgdir}/usr/share/${pkgname}/" + # pas de bytecode pré-généré dans le paquet + find "${pkgdir}/usr/share/${pkgname}" -name '__pycache__' -type d -exec rm -rf {} + + + # Exécutable + install -Dm755 bin/fws-dnd "${pkgdir}/usr/bin/fws-dnd" + + # Intégration bureau + install -Dm644 fws-dnd.desktop "${pkgdir}/usr/share/applications/fws-dnd.desktop" + install -Dm644 fws-dnd.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/fws-dnd.svg" + + # Documentation + install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md" +} diff --git a/pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz b/pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f3e3990c792bfc9cd4daba622461a5c50042383d GIT binary patch literal 33134 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%0AIQCN7!6t0a=mH0EuB>uJYXecHz38`Ke z#&qILEEC~#cdB_X*}BEbHx8nZ_}ik}F#ArWHI>)J$GA z<*cloV|R$uvo~JFTWED0_1w#PW7SV05YK@CC~XVUa7r#IBY!JzsM|lp)STJPA!|yF zBP~m3f$w%7Zm%40VOe<+B&Qp|d)#5Ccj>UV8enU)={g9N=EzzkPm?3k<9BPjQ4>x@~fqUM>H2m0e3D?q_rR$|Pi!F;Vek8|1r2r(y z0n}&W1^6iOVq_;`F8_c(YPp5+gD6k=ZY!WXUp^+n&q@?6uB`me6^DewKJ$zkMK;QltV$2~sVMGY)mc5aGp~>t z=wULD7;0J$l`A$gnm~Kqah9@d*QH~d@Vv6`4E4mm9H(%piV$hjQX|^Ay`IuY@#vzz z?CxAdi%@ieT{y)K5)byNm(({USF>YZRjo$prWpbYU%^L-AB<*A{n(3Uqq9f7l(KSeYV&Q5{XY0CB)~5G)e0cEq@v$hF0@Bs-(Y~|gk%!2K)=7N)yuVMO{*P3D z$lP9kj8gqyYooor-WK}5joa%|rpg%B$ z1O0(18t4y9(7-=^xeLSyjj%Q85KDQZFp0A4YzO{{;;xtVx`XbV7ZlKiX;#xg;Q1cr zwe`mnlC{%8;fF^c-3Ea_K;O4)5||1a8IQ!v=7YV!MdBwzEU|#Om@~6BO=`CrM?krG z&Dk<{vvi@mW?{U|&KZpt5|?bD8)OyBmrt{>`CdCKL6)P{-=uG$j0x`~^Z z(>U^A56rQSyb%B+kt!+eh2u$l?(36y4&n>k?fjH6h<1tYKDkLERXBfh(g1MrU1C;? z`B9m0M0^uDN5nUgSVVjixkY44!j~3);iTO)N>c#O?uxJew=~Ts%=y;Rqy&tt!{H=! zZc+Rg{Q^9$$lf5@i~I^ZoLu0F@j-QsE?OV2sI9NzTJr?1IOtRMPjhNChA28yd*S1z zr~FI^C@Q)BTI-H8TxIS5)B?$~aO+0A@}0n!`Xq68q~`GJEm z$k45Q0?$!ln+>_?oZ%otD(k_;7KKcR>fgYVofdQ!am+MDJ*Rzs6{7w%`$2#Sc})0w zLJzw>aH(~`fQIaON&M$ZoN1I-Fc!HBOfH=Gqy(+_XtediU_qZyu|T z0GE6Wn*kiaF$(tor@dok!$*;ypj9STUdC3v>D$5d-!rCgn}VI1z75?jVTwNHt(J56 z0yCP6l8*M*4`3dE^`S5;ctTE4U}T(r@jXDFAW0UiWhn5=!LzjT3e1i0HH-|MZw z%{1`h$~2^y*5x+)uxzu>#4O4;9IjxD_`gV(3^xaD1unP+(7=l*0NF#725sh|yqn5- zZrEXcKX%V6;KZ`m@5hl}KxPKWx4>r0b!8nMdXq5UPtu?N{8${utfWYiBaY~335rmYRyT^G#(t9PDj7C6{k?y-#ur`^HVH3{M z2+pxjM2)sOibs^*fc~)W`NJ?8dVH(L5#A0ZWS*JB*}FdG76R2Ot-)-utopYWmjim0Y<7 zX}$q@v+4AJQHsLZqMUN~nXeFsmc|+amBOS;M9pG%fMw)+NP^>`A9^g>O!|HJ7tRBm zK!vj|pqt0sK0Dx|{(CR$s^0ExH|enN?>l#H0oj5R+Gsk0D$m9r6+;S8C|i|+N#_v~ z5;uiSZfk`)La5uNLgKy~cicGJY0d~$qm-q*b(r@l-GfwDBuMg7x)?QxPhy4=0hxB7 z>Yk*UL#mhLfmgLf;+atKh;NE^N6LJxkWuC%l7;O!;UwVnaaqA^z`7%<9l0;^;=@gd zl0K!Dhbwd)I5`kA;J>iQ#;U_P=Yb?3z`u`~g!&<(63Wdkdu??@0(baxoY`KH;o^Pg z({-QR#&Yn!V+FTVt2t7oWC!;~F}O3Wpy)>`1e?YCp{M~1wn$O_i6^PvuVfQ5ZD0C8 zRrHC6nU1gG-YZHy@g&vfrQdZ`o{lu)Tc*IXVUZwwc=Ql`Ff*KdQRs*>yN ztThn~gBuH>8aRg7?fLq{bn_NIL{B2NsaCp^lmmqP>AN~Wc`kJ34wmkX{e0}kq#23F zK1f~_1Oh-sI3qvv6`1du44UN11S_V%`B}F+3C3s#dvC1Q>{DQ&LzaV}^8weoVK6oF zd^gOYJC0E=vm9Y5?3E!6*A<<{3>!^KB2=$pz<(KFSFbDAe;JR}E0!I|EAOv+)qyDfi7Wux9u? zaq+w>48da8%+d6pdsdEZHak#8%}PY8N`#$HIu;OVc);>?36b3~1HG!P-2ZY(Cr&CGe004;wQ zOtiDlar#%NQ15wcl>jJ?;1v5^nBdv;ZO4nn%mzSDP{|^!U>F-4>;0>w0No!0ckG6R z)6Jhj>v2#f`oNuF)hv3Qa2eh_<_7NhTme1PLgX2Yp6F$JFX znSm@B3okVo`W!l>;u3Je(SM9!<4oXm`^X-ke*mVVXP*xw2tAF|AH+ky1Q#m_V#?fr zlLrcO4rI&|yNZE0)3*UjR1=n*U@J$kj|q|~r|-f9oDo@2#^TJt`p^ueLKJOt7{(1~ z?M;9T6ob^b^Ygd0GT$$wWaN)s_S%Uj>@5T{4}_6b39F+k(a2WWRJj4k({3W76!ja=NJ(^}h9uV#z)DQL3s8a$! zQ&^cv91kVyIf{YH#0!ax;5&{BvVaGj`$P@_Sfa0EjD7I%b#V0_YV;Qw1mY z3?O@k1sZl36v(Z7i~PFRVJPN%#qeF}7a}GU1;9njv!NR6VV~N= z*hTkDWCUH_P|O_=Gxj0*3(2hmsPXp+?Q24_NVI!6O$(R$**}gh-N3mo-Q1sgD6eJT zfrdwn*y$sFgBz+ZnJ=hM`JE@I2lf+fB<)%DvV1JP`Z32_$~pi_W*aW@@YQxFUEC2@ zRGX&XL{d8`Nc6mmRLPTW7VMr!Cf0nHPsC4%k@Z%KRSFHG?^a3Q-H9LPdfkJEi+6Y0 z4UqY^_e#H^NY-lGdvBNZen#n4Fy|HqoaRU1-`Po+n!q?4LeDaEFMzc)M%z$FYo`Nw z-GULO-*wZDH_JNSw0Ddpo=)K=vw(-3*XSqcd#kMPEqmYHXgn@~4gRV_X4~v|TkRMb z`>gN4@3 zh%HIf7_Zi=|944{xLR9wv9WL$8?p;Vi#g_!cCo2ut6~>-io2MxoV1I(#a+ypOWH+ieO4cZlgavMRqMkto2-xa4fL@wPaiFNA668d zvkxndmiN&z`zS%u%6*hzX?Y*5td9~j&0|_YA2ac^a5iZl?U{J0_R%)`5EK@bedQE( z4oW)vU~J4Jx=T6AIJ@cAOgg+&Kjy3SVMG5Ro62U<4_o>V z8~Fob{%~9WVKa~X<_~xEAGR!ro%^MwpL*q&cHu7@g}-bT{<2m0%XZ-}25Kq4+$sF! zZqY9$l58m`LFuATlkQm*rQ&;SxATp#@w3RfkH#_O`$33>q`06XKbd}a9(9!#kAh&5 zWZy#l*Qe9B-8dS$VOKaha{T9TlIm|?W^?2623n{)uE!GPN!VO_N&$mTtCr%ieAKR` z7%U%c)Kc7)k2Y&5*2+g)wG?0FBQ6w5m?|G}fic2S`RGn9#ZLL?ZcT-}1i27lu-)Uy zkc<*Sc0r}Bv=OrWsKF8ht4!&_Uc62I!oHN^i|REd9;Kcy_*JN4P@hw4iR3|||G1WE zd&Q$3H$xqgoF>WIUxggifx4vb8OZ49sKX^c1FK3wnY>JiFOJw zo?yT&2j><6#6YfMfRw>Nd{;anszBwgGt?n6^h4BJXdoeZIdovVyW<$6AOP?E(InvT zOc4b${k7ARzVvkz*|(fmB2dZ%$styy^LzflSB-2ru;?f1eM4r$giH=s4mn0=Oe)7T z2nbCH_+ZCDz417@Bb%mWDb5#w8QZG6e;s}4( zcLpDk$SVs@6>wS?D3qw6dO*uajVXjq2%v7@l2evPYWT4;{Vj)WgCkl0!5dnZ$pn_&2}sc$4yvusA(=#G@)Q7_8M)XD%xq? zwgN$%I(7hB1Oj{k-z3^o1lPfzW0qs>1fcUJ);nEw9u2~X!tgO1(z>kOLUk&fyE|njXR`dT=3#D|9h#V8-q_6l%G^9=;%J zHT(Of*ARIvh;U;hMgG9k(HT82A~JW|$&(Z=1h-Jg7^*VJ?-^UThcpFo84(tfmM{B5 zvSlw%Bo94u)qEGuFDCd?chVs|Z#B2pi&*9e!=Qb{pNYa>n9#||a25#NH0{DoC)%}{ zZT2X+?4G3&;P4n2JQ1M|XrH*w2!rw|3Q8c5{pMEUj~6=w)lYPV{WY9^1){Pm8GCkg zMO2qZR(SscIN>nF4QV=XW`;oc$b?>C1 zps!CHYcy^;=uCw**nAQ2G<_S*VCMtRLf=}yXI$9^EESe`hWU3BN!ie62hf+y_JH@d zS~gCF<1NiP39AmY&bm~xA<<0-phVsV@4wU&(E#6Z%F@2Wr7e{;-`b*LCawdE|7McFrH|-5ecPFgGq+xOBa-r@iDiILo0O-O zg&MWQ>BQ6j5s(-32Oy{lIGlQS`p-ZbH;JEVRKfo}dLh&9z!kI6+cqU%r!Ivha`_uZ z{@9nVv-P3z6w0#Won=6I5< z{z6Aj1Ehq@LdS@gUAF3<(tQh*c0)}$$=W9%I70tK(MD1fC7Bh@qg_oAegk8@|D~IE zi-pbj3Is1?ewU-T$8OdmVk+R!^noHYaiL=`M&m*-{rB`d8Aqd4N75d;R7Gwo&(2*- zmP?$ge&jE}e9Z-f**tYM^uN{4m@rhxDEE+ET@L%`os;#YjFiqcH(lo*EnCq46fwsH zf-J^JFyrUAgV+ZG%As($u@9ad;iW=-oU73X%35DwD1WM}xUR%hoixsQivToGQ#J=% zY4TLKL_7g_!ZAzQMA(!z0EWa{QW7pZhaHnP8WWA8&;6uG>L|NTW)l4zuICYhF3(a# zZ>fxPmiCc(iXpB8pac?z)W~t+MYt4-kNp!jxE{%`z%RXr#ee1y8o7AS4P9h1MT-d^ zC5jy~3=noM>p_fl`-HM@fdex?)hpztW>bn6k#e_TZqK17HCb>4>L5$4PS#a>6JoxG zSWc>7)$_P0T!&IvW%B$jnU_aWj$ljW2)bv?5TF_!I$5LJl~Z#_*c6jamQP{DgF;dnGlX!uHB&Ril^lL zDS2ZyE3=xx>Rcfdz9gvU6cYukBFHR$hqI#>tp0`IWRyOqGG!yO|(0YH)JQj+w!FiF9j4IwNO5Coz^NBlPZA}fAb8&Fo^UQIGAF~d z^g$jAN_g&@fkoxpw}_y?egeaURTo{Ug#g*r!8!r1zZ{YW+4fLubxXY-OC(lzf^r^wChbv3q;?Y=27 zPh|_Z?b*W_1X5wv=W-+4MRIo+)i1-v1d4aeR97_sqJ1J_B@z0HMWn6WDAH94%{-Et zl);*3Zg{*iE7)u<=&>R;WSOf#7{_wzlTh=kv)`NKW$26ZvUUV$ht$R|KR`2x$8`a+ zfDvb(#4Efegug$Tt=RgHG)3414YfYD&s;C90D9~Wy?kUqRcbP~H_)~0cgkE9RwGvq zDfPr{+B_(Vj5>h@3>y`}a9xDh+^Xn}mqt2LAqqt-xZ0$S>q;bItgD>Gc7Gcfr z-;Ml2E{qGpc}?e58+d%hswgYb0Z9S*S6+!m+?M@Ph97nN>U)Gmj$fU}$3&CscCy{~ z&;3L?Znc}v4}bkj1{O*`nmMIF;wuEk2Qwd7EKYZg8);5GAC{PPFDWl7d#4CPf*&}1 zo{-o8>sO#IIrj%3MlEtXzk`Ur*>b+(>V5dasm~7L^{C7>d$61rUN2R`+ZMPG=JD%y zhtuyvFPo_m^+u*+KzaHK` znii{Swc9~Xd=y9MnJA)YHf-^pco;(3NA^D;O6pOD^n|^{i?pPpkr$+nS;*8a0G>IV zmKGE31shEQ3*3o-SyTm<@Bw(T5Q{YuXmatt8k<_cnZ}Wf!#c-zvF_4>muiWl!c0X7 z?BE^eY!Mmf0fwr>)?-Cq+DN$!>UW3y_b7XY-^cQ-sZiXFsQiSyj_nAthq6O7Hf8_! zc)QMFRE2}~$K)-3CaRtzg+w(lgNE}aEKk21pMlVZSxJ74O;IF9mX!2o1%lij5CCiJ zSye_|qodbhy|qHIoXR3fi_Cg2p0zzMOs#`qOL1@U+!wIE9kG%!G&jGHZJ9m$HQaSf%qLSX3iK>nw&2R zuc|u5o3R0Frv*!`W7ZStgze>-*Cx50vuWSw;^@naT=on0A&Y(1;FGEcXW@(xHjfrL zA?XBy-l6LjkxmuiL{tt^i5bF78WW3&u#}~4RlG6ZK}av2h)Q;cJJw`g1@}oAuV8pN zR9*Y^n1M=?EY2|Vf2F)P=aT>c5n~drCUQl3{M z3hy!8_nNMJTu%nc!StU4Do%pp`H+?6iho~m+6!{(iKEGA5tO)*JXe(yI)I#kZd+qg z@?@$$N@v9;CcXfG;UR6%3>UZ~m$W-J1)#eAa@MgJ0>!tYO4#R5@{uHyq>K6aW@`a~ zxU4%=tfs)|7~mnu81Mx!;9YOJoFkTk^1JL4xCty0$_2ORFL5KxV{Ju|fn2@-N~k(a z3Kl;5(zD+DDov<#E3RMDH@q98Y{9nzvzD8ht`Eo^5Pg?|zH=Nyk;{1Etqg$)@^$@$ z3Z5B)_w@{BIqv7#}vUZi^`-Xh2bs`MN9R;vrc2vP~Zw2-+)>^#sLyXK_aCtXQ z`77=Ez9`R@=5_EwvV$pB5m>rNU|CNiNVeA33lrt;MZ{N1_eldLrLpMznHX-!(sj62#{C>-MWj7S>BO0LAe4sJ?xbp1}hY*EHUDtctw>B-Q zJQe2GITBu79;(|WNx}}iWeF1Z&fMvL#@k?7WXw$p!0`LvxCAh`W3y#wjuA~K_BtRw zi~4pOEFmT{WQ2!7gaHG~3hSARH&em!E;B$`>}4AZ*o1*e5gy!~AY$c8AhjuqgUMFv zU{VmOnv8v}pn66{6bk?{@2!~w#C06P@4F#hh0+uOSD{bT4F!L8a$iHUc;usd1zwUO ze1e#U_NH@Y#|ewqd(|WH&e>wjb9S2+0_z4&7`@Zj;hzM7CL({206=h|_yGG3i$re} zh#f4vyOkE#oZrBp1Vn0H0Me|0cffc;^$;-`3tW%|vS4-`Nb8|zKA&$}tE@GrDy%FD z%juEfEsQQ@z|ywH-Hk~kCZ$L@WmBC}@hXVDF-k9n9_;o9BK4IB8960mj!cg{S1GNv zC3v`*d8Cq)M{n63V=Q_ZH<;S63Se;~*0?Hw*_i)e$V#nuEa!siCyb@?gKL8ps7U;Q za08Ev5TaZd{&3+Rw|jSPZLH5}a=~DLF;MnI#9oJvWipt?wmga0sKH?Ia+@w4N@Z-4)MDcBbs)Sr7h#4w5A@dkw ztKEuuYkoCNIo*kyfD?HCc4=smiJL)>3jQu7 zwu*2Www;L6FDL|kM)tVpS+;lbMMLG@yQ4Cdz+uWTRan^L>08W4&r}0rjxhB*5CM_A zwcn4>6-{L5RJb{rX|TYOGdY7BO##Qfh)YL(LX8s^) zviv#B9>xVkj6qNUj^8UfQz!yWOlF5nUbYKJ)WS*J$+?HF?nNozicsal zc=VPWDVnU4EW0#)uJwc^6u4*{AqElO#GBZ?2sQo|y~<)VtQRbQQG;k9mw!WSFFOO! zZgbdf6$5D-u*EG6W@ZAAZYxDzwZi2W2jAzM;Ml$&Fdna^;lP!M8lCg2q{$^Il!|E znOGICUDR1U^T($>-#c~B2Q^V)6-%9xn-rBZB{Lb9(%t4iv8?KCSydR_o=-cI%hPU@ zjAak_9#y2F>Zh%&hc^F-wOTi_&Ui4YuPa8|lyWFn(7h|mrovh2!C5>7qTpT%h_~pS z7Io61URyLwi)L^K*12@`qYwJ&zfM+qVQ;0qy1u%;*73u&n;&BxKDW2F@ZZ+$t#$QZ z`T0?6tKDv|Z?11_!}HcgtF`qbXY1ytlK)I#<6_78Q5bcjo>$y%*6)9ypZxxdCpS38 zjQww~-`+O%e{-|d{*kkOgL5eS{QrFaKl$<6B#CL`z3?2X+MF$Y;s_jYe)y}ua~`5L zo2>qDL+$@$-`NuRmLL4tu~Tv0|v(3g*0%U$=vb5C20y(umdehojxvDvS zNO#Q2*zU(yUSIFk)kA>8pg}>qPSlYhV*#Vtk4rg4?L$jvK2>OZ$|L3k1K(m{S&FD9DcUuhv!rkW+%SU({GaILU_Ig+F%IozFg7@)EbZ1p9WR42pG> zq8?S?;h}b569Cx*%1eeZcU}O%>Z7tG>BjzO?9_Qk@4T@D&reRAl@NDOSr_f)Pk!R8 z^o$>_)_5f~=jF@Kobj2*`~Bn@{d%wVM@rk;k{5{ndk&$W4qWcZ-ci0ebe4G3=6LVu z(cyD3UcHM`toQsFOSI#kvFG*zKYZn^^x^AztpWdsYZ<-nHHhJH(n;0+DC=u&b#-kp z@$Ku=*Juop>!T*dNoP!7x@VD7lekYM4^lJ+1||mSk?^aYUpkiTCieo6KbAH+iK5CUX7#C4UK`9{PyN%A^*3vxgqZVjjh(!Hr)SP z8?B9x_y7C&ob2;fI|o2&E?+J^zZ`k@b~6&R^c1M)J-q7i5`N<1T^cVv1W`BkyY!po zre4~kf>`5w`^C3#l3l|n81h9dlqY&GCtmpS-oB5u#8IgaGCTCw#DJ9`=tR*gwI{4d z%Uz+HM)#E$qcko%JOEO5PhK03;8sq*JojR>2?Y20F4E>bxc&!G?0d<*hp@)aj-tRj z4BSgU9DKI)Gwy6bY z9;~%td)A;u4dXRl-;XZt)z*RIY_;#;|7u?Vhw=H3S5_Q@J`e}*bGTKnz3!~6P)pQz zIB?#`-K56w@w_EMn8ofDi5@3X0dGNe@*KN0N z*TjPr(cMP+0N5|@o5&CE)wsIU7sLh8EO9D3tkVY~bLL&(A$0>WJ!mwFg3Cc90_FiA z+ndc6thTk@+_+8u+-*7dtOd)zgJ0mk8@JObw>Mke))r4$4B1E5aaI@t3s*J}fb{Nm z^G@5@Xv2TAK6~wr)?KYnmz2(l8jPG|UE}(lix&1-b1vcE)_TpkXp8UgFTi@uY}>*{ z*cewcv+YPVr|eZb_EzB}{-c<|7J1M9nZ7sh^H{FwOP!kO8S zZC{J?)`@~%Efp37rg?X|cemV{g9ELghhr4qs}22LFYsz#wAVjh!ymp_`W)%O7r)<^ z+Q(1jkAD9j9qjHuIanRur1o#-{SQCgPW6AA8!goTZf|UVy#L?F=M(35zxv<4GcWL^ zC5@{`n@s>rIx**;e!9Tmw5^B7~9*!vrqc$g8gFW$u{ zmQqFFQyrN4*X`c+t&Ojn&etvAC2qBPn=7raG4oK9-UNyoyCWYxT6>#6{Oe!#U_Dtn z$u%|CHHUr;qn_VK0C`w1TlM&a$t*efLT(sUJ6KM zG99WqzaQZB9#MoN8afdpoHgh8Xul!Ac^5#_g{hGV%;^Rg?}$|;+R9wvyGy%G-Z-ny zb4-Oso+M{c&*;AZK08h>fuwFsp1ptL$nM=^)3Za`mG(q+;t4)vd@3?UXRf}k;$5IB} zU;?cgm;(S{Nk_KH>A)HGL&{?2C-C$e5el0*dyvfE^+vP_7(YsH@9&duURuVFeUk_$ zydgzd(#EGhIQ4*!W+EvNU z6KM%%IGFwh(Hr5q00 zWDf8Vn`vFDocBNct#d4>j+i$Z$C*gTbI!F?06Ks-Fe@_5Bl3`49k(Nz5Nu#9OqIu# z*!ftn*8&#Jb;lFRLiwa&y3dMkW|daDUE1Js5cU&EM{wZL1;x>-sly$Da!&<&lH;KA`u?PkWMu~gqC)lMs=xa8YAfv#4tqd?iygSAxgYm1)uZa-jWU^ZgQ4ja` zt8rQ~Et{vd3DfTeGU*5=l#D{IXDDC>&nJXAiXjOO$-n%^oR;Qa{)ZTHUo$c;EgfT5 zz6wVjWSN(MVzzWXkqn8KJA7zAqx6=rV!X$s#c?TbSIRnL&oO$nuGp>ML4)Cd|H&+K zYwBD~vvkU2B7u=7QhlK(&A*h)n)#F5qp(dwK*Dl*Po`p5Z;rfC%?zg8(vp?mT20T0 zwh85BsOfi}vp9JB1h>Mi%=gP>qOT`Q1#X`#CL?z(laG&SuXvH8(u1Hw>+G3Q8kZGV zS1g||wbtFo@%g4{=D`W3)3^c-?mpmiF?o;obiVp;AO3~+%e|ML+*0g0FR_7}%Y6To z#UXzd9%t}aRn>o{-)RGfI77Gm@7O2Xr%jt@Q?>8an~7&@7rj%js(oCsW&LX1<^R(E zZFe~Lkz