oncn-bwm-1.1-1.oe2303>  <@PT@7!.ܶujG7od!![openeuler@compass-ci.com G7o ~}c1L.x!7L*QYRUPU4i,I}~ ԡ\Ľy6!]эFȊ>z)% kAw1g]٤cI7fS5Tn/4eYA阩V9u/kSe<*Œze)dXe_~d &y2@$3ib< R g𷯈[fpb >0 iX4'`%= d6GU /y >6_?Od   n U~      Lh(89:FpGHIRXY\] ^{d|efConcn-bwm1.11.oe2303Pod bandwidth management in mixed deployment scenarios of online and offline servicesPod bandwidth management in mixed deployment scenarios of online and offline servicesd! dc-64g.compass-ciGPL-2.0Unspecifiedoncn-bwm-1.1.tar.gz0002-clean-code-and-use-securec-function.patch0001-adapt-libbpf-0.8.1.patchhttps://gitee.com/src-openeuler/oncn-bwmlinuxx86_64Ri id! d! d! d! d78086ef79bb82936a9834d2ca40ec89e3ec7de78aee67ef0aa839ac8c9421bd2dac2c4d18aabce3067c82d871027ae1fe8c9114911edc7574951b8cb94b73dd4e171727dd78b26634ecbdc06f9418c0cfa1479d4d852f580409a5ea8cef661f102b73455c3b7e69623babb752333ab50c1cfaf484d7c86f33d92780b931b002 rootrootrootrootrootrootrootrootoncn-bwmoncn-bwm-develoncn-bwm-debuginfooncn-bwm-debugsource  clangcmakegcclibboundschecklibbpf-develrpmlib(CompressedFileNames)rpmlib(FileDigests)3.0.4-14.6.0-14.18.0c@cccs@b@b@JofDiamonds - 1.1-1JofDiamonds - 1.0-5JofDiamonds - 1.0-4JofDiamonds - 1.0-3wo_cow - 1.0-2wo_cow - 1.0-1- clean code and use securec function- update oncn-bwm.yaml- add oncn-bwm.yaml- adapt libbpf-0.8.1- add permission to dir- init oncn-bwmdc-64g.compass-ci 16798927171.1-1.oe23031.1-1.oe23031.1-1.oe23031.1-1.oe23030001-adapt-libbpf-0.8.1.patch0002-clean-code-and-use-securec-function.patchoncn-bwm-1.1.tar.gzoncn-bwm.speccpiogzip9utf-8c96217bf7bb8308dfc111b6d351502e4688590dda313c7747d128ab10d1aa9f04bca4a40e6dff5eda9ad0f30d1b166c9c7011e855063a157a7cf59cb2f31f364Name: oncn-bwm Version: 1.1 Release: 1 Summary: Pod bandwidth management in mixed deployment scenarios of online and offline services License: GPL-2.0 URL: https://gitee.com/src-openeuler/oncn-bwm Source: oncn-bwm-1.1.tar.gz BuildRequires: libbpf-devel cmake gcc clang BuildRequires: libboundscheck Requires: iproute libbpf Requires(preun): bpftool Requires: libboundscheck Patch9001: 0001-adapt-libbpf-0.8.1.patch Patch9002: 0002-clean-code-and-use-securec-function.patch %description Pod bandwidth management in mixed deployment scenarios of online and offline services %package -n oncn-bwm-devel Summary: devel tools for oncn-bwm Requires: bpftrace %description -n oncn-bwm-devel devel tools for oncn-bwm %prep cd '/home/lkp/rpmbuild/BUILD' rm -rf 'oncn-bwm-1.1' /usr/lib/rpm/rpmuncompress -x /home/lkp/rpmbuild/SOURCES/oncn-bwm-1.1.tar.gz STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'oncn-bwm-1.1' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/0001-adapt-libbpf-0.8.1.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress /home/lkp/rpmbuild/SOURCES/0002-clean-code-and-use-securec-function.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f mkdir build && cd build && cmake .. make %package debuginfo Summary: Debug information for package oncn-bwm Group: Development/Debug AutoReq: 0 AutoProv: 1 %description debuginfo This package provides debug information for package oncn-bwm. Debug information is useful when developing applications that use this package or when debugging this package. %files debuginfo -f debugfiles.list %package debugsource Summary: Debug sources for package oncn-bwm Group: Development/Debug AutoReqProv: 0 %description debugsource This package provides debug sources for package oncn-bwm. Debug sources are useful when developing applications that use this package or when debugging this package. %files debugsource -f debugsourcefiles.list %install mkdir -p /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64//usr/bin/oncn-bwm mkdir -p /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64/usr/share/bwmcli install -Dpm 0500 /home/lkp/rpmbuild/BUILD/oncn-bwm-1.1/build/bpf/CMakeFiles/bwm_prio_kern.dir/bwm_prio_kern.c.o /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64/usr/share/bwmcli/bwm_prio_kern.o install -Dpm 0500 /home/lkp/rpmbuild/BUILD/oncn-bwm-1.1/build/bpf/CMakeFiles/bwm_tc.dir/bwm_tc.c.o /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64/usr/share/bwmcli/bwm_tc.o install -Dpm 0500 /home/lkp/rpmbuild/BUILD/oncn-bwm-1.1/build/bwmcli /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64//usr/bin install -Dpm 0500 /home/lkp/rpmbuild/BUILD/oncn-bwm-1.1/tools/bwm_monitor.bt /home/lkp/rpmbuild/BUILDROOT/oncn-bwm-1.1-1.oe2303.x86_64//usr/bin %preun DisableAllDevices() { local CGROUP2PATH local CGROUP2ID local tempfile for NETPID in $(lsns -t net | grep net -w | awk '{print $4}'); do nsenter -n -t${NETPID} bwmcli -d >/dev/null done mount |grep "type cgroup2" >/dev/null if [ $? -ne 0 ]; then tempfile=`mktemp -d`; mount none -t cgroup2 $tempfile; fi for CGROUP2VAL in $(bpftool cgroup tree |grep _bwm_out_cg -B 1 | awk '{print $1}'); do if [[ $CGROUP2VAL = /* ]]; then CGROUP2PATH=$CGROUP2VAL >/dev/null else CGROUP2ID=$CGROUP2VAL bpftool cgroup detach $CGROUP2PATH egress id $CGROUP2ID >/dev/null fi done if [ -n "$tempfile" ]; then umount $tempfile rm -rf $tempfile fi rm -f /sys/fs/bpf/tc/globals/throttle_map >/dev/null rm -f /sys/fs/bpf/tc/globals/throttle_cfg >/dev/null } if [ $1 -eq 0 ]; then DisableAllDevices fi %files %defattr(-,root,root) %attr(0500,root,root) /usr/bin/bwmcli %attr(0500,root,root) /usr/share/bwmcli %attr(0500,root,root) /usr/share/bwmcli/bwm_prio_kern.o %attr(0500,root,root) /usr/share/bwmcli/bwm_tc.o %files -n oncn-bwm-devel %attr(0500,root,root) /usr/bin/bwm_monitor.bt %changelog * Wed Feb 15 2023 JofDiamonds - 1.1-1 - clean code and use securec function * Thu Jan 5 2023 JofDiamonds - 1.0-5 - update oncn-bwm.yaml * Mon Dec 26 2022 JofDiamonds - 1.0-4 - add oncn-bwm.yaml * Tue Nov 15 2022 JofDiamonds - 1.0-3 - adapt libbpf-0.8.1 * Wed Jul 20 2022 wo_cow - 1.0-2 - add permission to dir * Thu Jul 14 2022 wo_cow - 1.0-1 - init oncn-bwm ?Ժu\T[8N#5twKI#1 =C7 ()Ҡ( AH4 H)Jozs}~8k^ 7: |xYanA6qc K{r1'v|\6 I!d=AN3#d!>29GEp1 ٙsA\0$.r?)]'78b||D d6V0ȳ|8o `C `>HKNC]Ր %{u}5*ZZtN6:dU#!?YDZxf1# >+_OOKȌ< "%,~,-- -,-N"B9PWWG'?If?B#6/N@NPG㱝(|pf$H7gG9R{ U0Ҙ{C~:J3);B='|G@{<_4JD'X9C~';a9a[OR*E?=O38CZZTNiW8)Bꀥ/k:A$Z{=/r%2Fl|x!#4*~ry$Ǒd"=XG'8B-+Q/)==,lD{'ءNyڛ:p5$6/dW`Fd^<,VFmd+(.``%gEGG!m(lj Rl`Q*_,"CP )OENi?c Ș_ GAȍOk ~H ᥎*CυW\iza%许8BhoJdPD]36LM`n)2NHevw`9R^8I >@xr?spy8yy9qqQPO#x~%#x,Op@`Ghr7W(,G y,ͅx,x!|A(daiB,= }du(@͑= ^P@GXOz @887-dvPU |۩frب@{/|^ɿiY-x[w}_h6eด6 rrB@0reQA f||ÿWKfyu=%mPqu@HX}72 /βO'ȍNp&HdtFn#"j##|}?vF44u5ԏ<(a_0zTJBK8;]7\%lNEqY?ey)tcl,ȃ?7T3;3_X! $}d-EGD`Ⱥ.Q|?=A#2lea~,Г*?3LFF xF Hqf|jh0q0*?AL?~e= Mj]aS? AԖ0}aEhT nc\/"kiSvtbF 6T5N6":돿]v/͓ 19f!tQt>~\1:LVqb>BȎDXWsm+lzR?0" γӯ; GOE A׸TL l] p'C]((C8 }0/KM5-B4< ;DHyZPgS,uA?oovDo";C+8bVQ>jPN P]0 Gɩ5(+upfǞ߼ك6b OrV) oa\ȆيC# Cc)5#n qCJ*HK ٴm3Y[;N\ $Kg di~ם"Κ?9M~k!FS~s:Q}># //#đÁ Di卂BqB_0qQqHfbB Rh1W,x6^0  )q=PWRrm"C1% w蹆)ڭDk6^r mxn+(YI1W>!~ Us]K7%]-v~=;X X^Whհ9UE']2`~sǧBdһqك=Lw]H"TyW';ОTKhOFf?nBض̞:<5\Εt~SCsԮ'+m ރΊE}A͏_/ycp/k7c66el[WqomE|Q4glDz1;ɶ[#rCThsu_LDI=Yc{L^HYObPRSscј㋱͌M*py}+U0D&Y+r/ Ze7rP]4L񡠡{[ tw5m d!G= r~su@"(wE jǞcwXN61ܦ;?98XQyME/_3MqO:S0s|Z޺ŀOPs%Ɖ#hz:Ӿy5&0c庅n:iI}HjOw^^"8|Ô@վ3XRڲU;JYj >c XB},k,],1m0If~vDޗ6Z.:1u- ">i-7N{e2' 8W1[I>࡫Bc`fͥP}y^QPyoҸ&˽Ï=. zEىu/ 恆^+ɇ:dH)Z5fAE[Kڽ#dfn%o4~IU5K[VtkqՃm *W&6{Ms26`Nq`RHMB]۰3lS犲ʀ0UGꅕ*>(S3TaG4./hwԣ4œ7Tba'tez]ֹvl#j&|Y_w`*L) 1s*T=xJ5٫Hmª AѰy (׻g7aYKvc-/_顸 /Bƾ)߬B3}%*)iRà}GmI˄#F|K*;үR^* /sL&+ԧ)ЈX}W {BlC)ߥrRKT:ȹݤ=֚8Cmjس,:y2I>E* 7e4!}to7J1OHXPJ#%`Q [3 B;32gk|}lH ^|@u{Pb=B }E7˫T\M>.ċBeԈn h ߶>l6or .9#ps9Sew){P'K{[[>_%`3y}Wn (|gdTL[-trhSvYUNbo *⅒_# Knm7SN&HS^וj! E#NoMG()xbϏIGtXE1#/jf/ kWƟs_ p:0?`q‚J:Ŕr?n|ڞYX쌙Y)iL2^'7 ye6} 'E{ko)iFVqV'ƌs_\cM._R)z|2Q.{)wFٚ2XULEJәHءkAŃQ>w_nStK &.`qz:2 R9oTCIKD.Js31ܟSۨl_;X04b!Lm.N a 3?fѱ&(Kkl=u nyoظ}Wj`^="5a ["}ߕl&q=} *:?:o>VGrueQyGFfJ0xZzmj0Z2 JsCw5/3?t jl+[^ I}<e}'k6>=ȕ+FJx*&F.A{TۑJjMމr~\ʽ/xk>HMYTmv[ǖQ6jEXNfאJ}8iff `Vxvy"M-|^;r |8Jژ֥XfrP9;?2Ή;`k&տ :'XIR980Eȳ65dȆ\=xG.ϡ! 7< l?GiЎW(ѬT6;4LԺb\D=tߘ`fdcjv& T=X$OnACwќ(km<;21AFGxVg{{6-s@m4צת"U$$W1u깢Joe6QkK6:Hh^og퍬 2h}D.5Kd{NK[LeݒЩa)ՑYY1E8{ت eQ\kн֛#~F}{h5ֈ0KghG4"GJ0H3S .m45YvhɮkQJzB [@=~B濉bjӻT\6O];![횜PN߷ yWD);>桑Q5l^ # zY=TYJ;\ǜz|~+ ݓڰt ArV?k%}1xOAi`RӪW޲ Y wu @yiJ-YGEi88,ǰ.H>ڸ^.,6 U aN"L~Dt),KqDt [Kyw eld~@yӓ0UӲqzZZLFsZ/xJ/=0+m$zq"o\V ҝT_kMJw]m=K0VJѧux.%XkC8}BF vǢZ(Ͱ$e~P8(b8@ g;VrIhC^v]<} ׃(i*GX;ޓ^\)v6*>$ qi!7RK%[Po5H+X4=蜚jTtLFXpC0Z@ġ`onvQJؠa;tS=_gd>]¹\BaչIrl 쳦wEN5q X v WWfWYR*:}Vjpn2(}Jd t&5KīVM;0eHx2rl4֎ u)Zz; ~8s!Ψ{\^[7^7-*jiG%03%zgij%DyN<齭UK8b\o2UK[e֕*]u˒42'Rm2 7JHERz5T3&D\c4!Q:.|T8㼧;1$ǥC!t>v˝oE4OW[>nYEHQHMLVݟ5yltva `Ѓ'I)J#tkwWtL1Jpc ?q3m&SܻN?XDr ~ͧ B& %L}2Y_1\i.Xc)ŸCq[t>*w-C/:zH%bUK^dѨ2}f1siH^Wt3Qʥwf^H?Hl4f$ tb7 z6y U-;UsEj`9e ?4>gh$ ގNCC])cqw0P(/64k9'bG:'ٔ.U(Ec6ǘFQXDR(t ɵNEXڡ9rNEN: h{`|\;`_nq%6׭epw'~6!9mUS/@?'M~ܥ!u"!,põwf ח=yo8C"8}0\0xI[YȾA3V>[|Y9 ,ND <;ܰg r--\Vѣy0"FS04z$]κ=OT>7%~AZ(.Q,---Xk#zׯIF,w@(5C"$ @ڦ!}=݇yB+Wf?A&Jr\qǯdn3kaz<6ZfhI3d1bD+ɞ ~iY-zQ0YQb>O0~Ee<@!R%d}.x?u3&6w3Xc]I0yр-3[?C;ۮĢM}o^JR%(o /E_bk'ðoһOMc]lʙKnaC2{ᷥPG"m05zxF9;w#Q0QG]io2(T9ӸLT Xy40قҧu?m"B)DE$-y,V^o[l"),3QN.VK0tV 7AKws >m n/!ٛVc"tY6*q[T\/p|mW" ܨtD2a3DPy(ƽ9|^.ks,c?ə-ΐ,z)OҞgI#nL7լg<#3|'a5 !;pv #fs7 EYOJ3 ^GR!'#fMc}:bbhWi3saPMpoR}CYQO KGױZ{Mg H]ɼ>F$Bui9%h&| K$ 4\ߘk47H qL혞2*7ΡG)6ds;]8t}[A:[ªnkNQR7GW5X] k!*ыq5IZFv9]B,s7pXlw>Ɛ/jI)Ֆ\]vN5yW%ƪ ſ>(gB'".zXc˒nr4;3ztsG$)U'̒sftn܃eNԘjmXe}8zmF?5k}hć#?[ށi2ҲfIi2]ހ<NGcY.(;:Uڼ]Gwީ.VA}xqtUq " '=s X :&/ lf/~;0]T8ἮYӫ IbdiKzr h}ix^`cQCTbsy@ШP]ΕfWd@mNԾ2R [q$fΖ՗;0 |{8)6T7^xdyؗvlV.% \n~ k?Ր%y"6W6BJh(PYJ\K+0s'"+B>'ƕ6V2&x52\.,43iyIdr$01#P¨Vtڴ wp:4ʄW a/{"/ am;M;HvĊ3 #up >n׸֏ū`/|զ'1X) uiv|̦1u /j_ }0\ ߶0&>MmoNwhV"Xѓ;>Fj늉o\tص2+/*2r=?\l<_r, o-ðkݭdDoUasM*bHrcYb;..!_x_8ݲ38D_ޣWY`}cDO"aDWZ x$(\@rbSJS$kg<.C}lTVkhɻa^˅J|Lwv.{_ (21mZ/\4:@83:Zq75<8^&Up{l X ͧϘR?{#C]xsJrVYs7xPT?paS[nh| SU)RUJoh|0lWLutLo9oYU(nKߝ,,ڴ}Ɍ* 7sahg3/(¡i~AGّ$n5e-҈;yW+nbsT\(k|Ify%/ TY\3NY8&0/xMmI/\20eLx JG#Q韤h ;b%AdDhdHǪ_,YڴS{LVrl׹szhhڧ_?D.t ϐZ@v 9 [n[ :UNc{`ްaqLZO;4kD;M1WWUbP'Nu&x<[L!j,ꡡ7YdgpJ䫕,s/DUJbGy=PűIԬ=X>®3=fz Η;.$8/F}K{MiqwR`uX΋&ְێ?nn$.ň-9/ kf/uO}Lo6ğ.[g\TEJ_"wLwᔀ;J`eQwH,T>ADcJ1 ߺיd8!EGOJr"keyFЯ,,w&4t̷EJ]#f @tݕP7pR (Acz_9k~105e!g'2c%["$rb<9K~QT"fU;*'yl{ 5_TWFZ;"܂SX`m CV.CrMs7?/T(Ԡpf~P1s0V-ɑ}ǥ)$;f~.^G]aS2Q4x+\I[mIr0Ec3Ȃc/G8 w T~vlO'Aݗ;MMFD/bnU Rk=[G1`OV;앜G sfR/QΙzFj1iW+};4`~WXsd P55k1BE >1\yn1&17 xg8AB Y~(Ȑ:oBdqoWJVhD:!#VqOK:3yQ6|g ws|ťTёi3e;՞t',t;! Dz5%QŰ(?+7 P/Y&h7^Iy_9z9#{k;H{¨k W&@so|WrG+ҒD"4rw!Qq{U^[YJ>ƬэԥU #-k)6)]K̯j]¸шx/fmBD8d$8'ulm0F4]zjjy?kyyE;;$ou0H()@"k? h]^禧ėB2M֚; }ikUhGEEeDo_V!wLPm|XRr"ZUAޛh/rqxNAS9Ai:c %J"s*\uh稍=h^&"W`b hӰ.2`嫬l2ٜO8'`@fgZfH2P.9W{しvݷlbsin]"L^LvZ;b#^?p]z-՛j-^v2ވEZj( >%j!0}׏J$5BPEneSy A 44&iN9X{|pА_]E>E[לὔE2r[WWE2HCԐtKH#03Ct H#)J#]%]҈q9>w0fKă^%I?g fZ9585@ܨpU0WJ}:;\ j&1rvZɛ^bJ#L0]ox mDmkϸ|C_8%4L\Iu9gjTJ@9cqF_U>,541J@}/[S0fw'cVu/vun- 1ߋDvԈ/P}F xyLsVߏ3&~',N :ro|w@tKw&:P*)>쩥j!O834pcIhSo}\D䎛C:vZxl>'qIw8[0-:l]V^bUԌYnTH$<#l1cjV|0Z->N-t"ؠ 3'4$ F X߁tjkFD@sӮXM7fhIԑXLiR&2BmRhz_7/}&0YDRײH*5WLmtKPhl4pP{9R'@+0E2`BR>9`5-(FPB~Ił qMufq5c k@ ءcВo5R5ҫ~]4v4DuIP֓r]_}>'d& M^fi=Eޘϫ%pgzԠ&߈a9ͻQQ=9ٗ\ba\ :(W A F ]耸t̡\m-?L]5Ͷ"ov/ +^?{f3IK"d2 ea;$vў4{a >oc3qkJ A^*_j:D5(Zك8.o,)|t뀿ڗJWqgK>4ofMxc|G`qz9ȍII`_劓'Dut[Dk.k7ycOZ1}1%"aݴx3?]3ifI=," A %), ID* /_L5ΖfR`:?m/e~=1_+7BD{Oɞ(w}mF^?cɶ/qk; GcO1 : ;;`ս0e?z{0I~.k_녏aşJ971|l'lh DfXK4kQspsO!lEnMp~ Սq.w%,޾ Vo5I1aԊ W%|*dѓZMEpR!L䊯R%GV9XTo\hJW wCx/5e*3[**!3iEҙKuN*.9f|.|VkUW1皢{un"+M t@ +P$K2R)Z݄o'\$D`raQ!vF P݀w}[ƭ\ Odp 4[cFג%2 H*&{gl|-ZZeS MK- .Y|.yL0ruً i҆G}@_uNwP1Y!pr(R}>G)#˧QPL 0zSAr$b!'XmeXyI,L z zPJ`CcK>t}H:rf+qN5 ֣ є%٥f[Z6' &&a7?^Ms㸵Yl D ؽphv|u:3 Ѽa|͊5xi &eiym*?Qn*a##)O[w[GƞQ.zBS4 ^r%4has/8moEo0{2ӮlZZ$ (`p2 +뫭A^~<^ohF)PdCpYJ,krA+)UOm&,10!m2 lֲ$H$ʞ/h~&3M6}'(Lx3nixء̏ujcsEd,1kĶ4$T)-պN}8'Aq-Cijڮ%B.S5oXǒpʚ- 9ޮ' T|f|iꫫ|Yb1h 2t͚\f,8"Whҡlv1(1}}OZeZ3GgcO=l]L{F+3X Z+n4ZpwfҨ^&*{r ۙ^ƫwu/=2o1 S[^_BgGF?yA)2RJء(#孻 oZ\<9׼xs5xs@&), Lg7u*77W-N9'ҁ`=:@goύcvx] {wBq 0^"+`ib_>ܹc/iNٱ\M!q)a6_z#,˽/H~;v|.]qAIyvmvB<%t\E, f"U F8Jnַ_KxԨֻ50I8*~AC|W#f)%.nS?uե'Ug\IoԦ%_dr$>GK24z'irlaL:$=92!`s2[lə2v 93ݭ.)ZFq=YTy:]<"[qwN܍Ӡq6(nǜ=\^$o M{:n9srG=Y 9_ıxWRC9'Б2^m.7;kB4CflSK2h0Aw~nMůW>v1wkcK T= 0Jf[svt1qf>m&,q ̴uuMCqZ oz$(}\siq>-.vlL˻mrK5_mONUI2ҫ tu|5)|&MjGG90DfcnZBBW>7!v$ Ȝ c!Irے%3*[M'֩T>w5@V1V677H Hz`opm<*- #^<]-G˝ҝ}`mHyBب$%~+uH"2)ZߠZ3lp;Vay]9f/0~pC z@R&U'{JpT%,ln!+=>!V?Ӑ5?,ϹyDUh% ZU{|Xa]RkMޝMY/ "mxeldmh t<[@[rA:C.k)z+YAU rsSU 5mMzڀգ-W-1z=ME bWk ^m#vyԢdP y@8u$t4M_zp6 k8Tn'wEqI2O.T^#Rxc1C-p6p?K ]!k}v;>)-t^KֱvB[iIѦ6;R77P~턊EspMrv4PCS/nbk|\cA ^Fƭ.׍ Ҽ2xc)sY)ɱwcУ^>Txp}=PF;MR}MVƌ`YNhO7!2M x)UZvڦEbEL.lT7sã6&$bE]Cfj~6!ԧmZȘQ垠kshZQ2eķ&0+$h|snsBmI|36Dž\ŖZpKOCV\Kx (ӾLb{RΠMX{ti.LZ_axJG,it">"47g%cFe,3Ua)K>Nyz1-q_F|S1S%<{+Mv!۾ z"4Gw^齐TmvL}G?E.Gf%̝'5->*a92&N 05er|h~~+ȣOyYksnǖTAqZe[D]po3NީMO[|3Jz Hl?'(wژȗ;Nc%jt} VCX9쪞b]FBkS\ ZɲLB2%< tt($OtF.W|ϑqz4ⴵ0pG>5thȢHobVMƘl7ȬT:miK]jVxU2wXRe2C}V(_ôƜgS>h܍.a]딛ŝHRϚ6:cߐ0_+KM8r߫(i29RZYȁuI|k&镺$8*6Hڵ}ܺ'+Z̘O3l(\hɖ+'ve\TkT$‘~aݚ%pSzxrfɮuO}3OI[̮9뒑YҟG)DWg>o4Pio$P#IZ̒O ƽ@2BD3Ƀ-]^[n ĔyD7g0u_an/y@P9}'TN%m涀3 Gny ":GB~z֤ԝ{?}0k3M= EqãClVPXG/?_+0[$ !-jg;GdF#ր/K 4sr 6ۢ9u 6'-&dEA6܀?90ق!V;{G,2s$WqPH0gFvjj `ۣ(([i :5=K: ..) Bpڞ>E"hwn&WcStlxڣ(K0C.S#_<pZ zvhȳ"D3~+ (}ZpӚ8rL΁OOSmζPwJ^y`@} ĩ(hxZcb&6VgS&@] T?4`Nh ˏݓRV  0,'1) +:ԑ_4ف{t%br&(*'ߜ2˟)BO}D0ӧoy=vd{Z)9-Es 7m:?;n k)i V*@@No/u 83j2HVN>c;qΦ_f?NrV7|'.rNE}ǦFXзϑA#b\g @mK{)?)p* Ӳ3Lܸ̩ ^3yH<_iCj3a|N>~RTwic( ``ٿ= U lH:}`&gNe+g97s<mM)EYM::X؄