From 860e7a3afe22e906f2a882c1ae2d3f4222c55294 Mon Sep 17 00:00:00 2001 From: Dhivya-SF4094 <127717131+Dhivya-SF4094@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:20:04 +0530 Subject: [PATCH 1/6] Fixed BoxView in AbsoluteLayout does not return to default AutoSize --- .../TestCases.HostApp/Issues/Issue31496.cs | 70 ++++++++++++++++++ .../Tests/Issues/Issue31496.cs | 25 +++++++ ...AbsoluteLayoutReturnsToDefaultAutoSize.png | Bin 0 -> 43513 bytes .../ShapeView/ShapeViewHandler.iOS.cs | 17 +++++ .../PublicAPI/net-ios/PublicAPI.Unshipped.txt | 1 + .../net-maccatalyst/PublicAPI.Unshipped.txt | 1 + 6 files changed, 114 insertions(+) create mode 100644 src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs create mode 100644 src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31496.cs create mode 100644 src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs new file mode 100644 index 000000000000..10ad714ac1fa --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs @@ -0,0 +1,70 @@ +using Microsoft.Maui.Layouts; + +namespace Maui.Controls.Sample.Issues; + +[Issue(IssueTracker.Github, 31496, "BoxView in AbsoluteLayout does not return to default AutoSize", PlatformAffected.iOS | PlatformAffected.macOS)] +public class Issue31496 : ContentPage +{ + AbsoluteLayout absoluteLayout; + BoxView boxView; + Button changeBoundsButton; + Button resetBoundsButton; + readonly Rect defaultBounds = new Rect(0, 0, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); + + public Issue31496() + { + absoluteLayout = new AbsoluteLayout + { + BackgroundColor = Colors.LightGray + }; + + var label = new Label + { + Text = "The test passes if a BoxView is not visible in view.", + }; + AbsoluteLayout.SetLayoutBounds(label, new Rect(0.5, 0.80, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); + AbsoluteLayout.SetLayoutFlags(label, AbsoluteLayoutFlags.PositionProportional); + + boxView = new BoxView + { + Color = Colors.Green + }; + AbsoluteLayout.SetLayoutBounds(boxView, new Rect(0, 0, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); + AbsoluteLayout.SetLayoutFlags(boxView, AbsoluteLayoutFlags.None); + + changeBoundsButton = new Button + { + Text = "Change Bounds", + AutomationId = "Issue31496ChangeBoundsButton" + }; + AbsoluteLayout.SetLayoutBounds(changeBoundsButton, new Rect(0.5, 0.90, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); + AbsoluteLayout.SetLayoutFlags(changeBoundsButton, AbsoluteLayoutFlags.PositionProportional); + changeBoundsButton.Clicked += OnChangeBoundsClicked; + + resetBoundsButton = new Button + { + Text = "Reset Bounds", + AutomationId = "Issue31496ResetButton" + }; + AbsoluteLayout.SetLayoutBounds(resetBoundsButton, new Rect(0.5, 0.99, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); + AbsoluteLayout.SetLayoutFlags(resetBoundsButton, AbsoluteLayoutFlags.PositionProportional); + resetBoundsButton.Clicked += OnResetBoundsClicked; + + absoluteLayout.Children.Add(boxView); + absoluteLayout.Children.Add(label); + absoluteLayout.Children.Add(changeBoundsButton); + absoluteLayout.Children.Add(resetBoundsButton); + + Content = absoluteLayout; + } + + void OnChangeBoundsClicked(object sender, EventArgs e) + { + AbsoluteLayout.SetLayoutBounds(boxView, new Rect(50, 50, 100, 100)); + } + + void OnResetBoundsClicked(object sender, EventArgs e) + { + AbsoluteLayout.SetLayoutBounds(boxView, defaultBounds); + } +} \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31496.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31496.cs new file mode 100644 index 000000000000..d777d869ec92 --- /dev/null +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue31496.cs @@ -0,0 +1,25 @@ +using System; +using NUnit.Framework; +using UITest.Appium; +using UITest.Core; + +namespace Microsoft.Maui.TestCases.Tests.Issues; + +public class Issue31496 : _IssuesUITest +{ + public Issue31496(TestDevice testDevice) : base(testDevice) + { + } + public override string Issue => "BoxView in AbsoluteLayout does not return to default AutoSize"; + + [Test] + [Category(UITestCategories.Layout)] + public void BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize() + { + App.WaitForElement("Issue31496ChangeBoundsButton"); + App.Tap("Issue31496ChangeBoundsButton"); + App.WaitForElement("Issue31496ResetButton"); + App.Tap("Issue31496ResetButton"); + VerifyScreenshot(); + } +} \ No newline at end of file diff --git a/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png b/src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png new file mode 100644 index 0000000000000000000000000000000000000000..68e2aa97f57ca8d40d062fa8b57a75304b435615 GIT binary patch literal 43513 zcmeFacUV(t^fihzqmCltj3O!^76g?NMFgb9j!07xA~h&gdha1)We@=Y0qHhCS`d(4 zBBCH5AfbfNBHhp-1p+B|pZVSIKHt61{pa4lJu?q5A;~%CefM5_t+jWU@M{LzLR
b$O+v-Wk?i6$Hk%$W0-2xWJ|3inR=uged7LPKsbjZp*nc2D>h20uDq@|3q z6`6*0?F-pnfGbn-@(y>A@|Kk3^lCp=|Kk>e{(H)G#Gm){UKYTG#Q9oNIY =jY)gHdEH!-8GHxab(Un zO+k_o>&}Lc>f5~$g7f#eY&8{|jw|Ce_nW>HIY@DeGUPx{Ui4RfCMRa9i=re?Tpfr{ zf9BbhBwCta`MjyE>IZFmLVl*O{+qbZl8-XS>nyb_9lfT}=l?XK>$$cUMoV8h^pi8) za+^5(&s nJQ{US{6-KF_C~7xr=e^QMMP)dMmb z^9VPCK!MhecyH)RBumpyl1^wb+vV7!O&=@R@haj_8=!G>(b%4r-=Hz^-uU?<8myiN z;)-C^*Bk=%!GIzNm;R+f8)oo#SDyK@o)V}yCzURTYuK3Km7nfsAN@D|A*;uhS %>!euRB>2tP4y#oe;=10iy)TjHg9iy@2eHxw z0J-N}TeQD}pK~Q=bJRQf%s{<6FtaXK1oWb|RkwPF`;`==f>vhw1FMnZy2#zjPb8l^ z>E JoXOX(JNm*3h|f8{ipe{X6xS@oDLf417og z6O+ED m$LRa#YirK2)&c9vh2V}z$~n)X)W5T}N_cEx@2GAyMZB`3ys zG?EL&IgAQwTz?U%j@fN~RxR0U(%2xXa5?pHHTZ%FY$qCr7O0oW7LGY$4<-H_J1=gj zDwmWvW5l?Hj~#__sJH-evO2b;0J5r1X42o`=XetPabqq@n5Y>R)m2jL;#Yan&MY|^ zu?<5hQ3o_0zr9M`w!HxOD0OyJq;tq9jy<_p{n6J_rZlh=7{Pe~H)`S%FM+pQ*I3&4 z99vHd5{|3xZ;izZ`kYwcH8}Gx+M8Ijv- EPyGF+mkJkDjK4;B)OaOI>#q{jA^pku9v*+xn1-V 4ByL|-2t#aZV}2F5*Y z52RKOHZ+jfy4G!tx;B%$_*_`?X%!rT>#5 3PFJ0d9vcstVHnK6f*vN;~eDD|K_*5^A6v#TfSFn$>-`4@7l zLppDOZ?-&w4#hs F{))6}c~;uL4~M|TFZvxnnv z%%#qaWT+<6+NZ?V7x7&+laxyZnRcFjf*tsnwf?Th8`}Ge(eJn46E@2Jl>D=$k8N{x zn{weNTvREh&zIm^l;MSvIb0ni4Eh51LSFhby>G}d|MqUJa5xo*Q}K&L)yh_+v!d=! zlPs$w2X*%yALnjgLmh$rIsd#|kD9i&*Ms0#o%?tdG>AlP#T48Z)ohitvj=zmh+m(7 zCAt0C#~STBuRm_6+_4#qDV;mLo}8YE;hSc7J3r$_J6HS1)og|fW~+92a>3qi^KznO z@jiJLgUPCNxS22Dn7>Cp%S;Xml&@TMJzKA_c(G=9EO_Rv0N9CMS-D(X_)}kd!`gJ@ zRdbTEp;y7&wGHgY*_mvHvo{ tbWAoh`LK%j=S{p?{=qzPjSto%wg$tCpjdPQBki zyuJz)OiKLe%CLb?9<~_$rmXyzRW+bZjN?yZ-Cik9oSz08`6TMK#&R9DxDm=4XNz*_ z$j616c0Lp3wLlA&t=J{SUxnzyoV^`C)tm&5pInWpieBtzqd)KHE!_P2c5h{6quMt3 zz2G%V`Tl90$w69!=oukLEucn!fFCW)*AFgvGT7S~3Jsj5n79=D3Q;!dc3s`G{Vq!N z3VN81#GwZlwd(j0L~qVz^wvV%-{&cl82JWWS_!`f)`KdoqPx@tsz>8cNtTY2^8QO{ z6iZ*e#Q j6;+CB%s#$9BbOy>T*Zop)LWj6WZ(7S8sw-e#)5iZ;#u`W0r}AtC zlt{1a+O`9kY!jzmVBg=CmwBPlH{=v2pvKF;DZDd1$?(mK$c4$rtM^?wdd*jpTH7%j z)daJgYgUY=GnANlRQzSHkk$5jdo9N2NC!<6&XUhT$4PM`%oI2(D(s=z13!42Ik@|Z z%ET-|-{Pls+(GQ1$fUGTN^zls(Lk9Sz3Pe3lqgMeTOW{RdpxeGi;=8MIUVU22{-q( zr_&jXR1-oR-p6gIWjqiaCscYA;Iav-wyAvjp+!-}(F*omUG}LdhrxlYb(}@_63-I> zzpZ&gaP!)5{t!^)qi+uP$4p|E7Z*fDyI#5MXDw0Zbg6}`qKU*m_cEQq$M!07I`QoZ zERq)pC|uA}QHq!1_uJ~X-O$%l|IonlL5L<_Xo$Akwty-)RS)9s?JOa767oEy)lhi- zN_3qj2rez6T(D^-32Iq}##41Mbr US0wXqq=d6&!7 z6UYv2cyiCZ?(njfX$$xp<+J1CEpWPfjY57A0;A6f+yf}Sh5(BjO0D|X7M5#SC;VuK z>#O%&=UmHsE|n6df&n)i9F^$Q;n3V>8nXl7HC@vA5OGPlyrfVOXDJD9T~(etKF5?! zXOx+oXfz?B>#h#tTe&(ly0VOH8*2nHgUu$>#bJN$m{x%T6z+5TGjr?8a*8c9JWlnb zzD3!M*=F{`>g#6UAc#9{>7LLum@iRW#<7P~#Id2V?>c|8Tzig$7?;Z-Ya(fe>Vp<7 z`8Hg?>m{(M&L(Bbr^%-&a((l<)tj=WdZ-JS$`#n+ojDumL3ZI<91q#;YK)pw)=qn( zGss}urUC ~8Ne00?}7NPx9P@SjrbyEIW(Nf?b81>i9%u6sCH;ClUZEaliX)z=;Pq) z&OtxoL{gh}Yai7W0HefQ(#NhnFYccxPeN937Ei?$rG5b`NH8W8&f_6fg@EfVB6f^O z5)V1QZI34P&UaEP`-#popJBf~qL_CIXMsV3id8z?x?1o4h4+J73=1m3dR1=7d4-L3 z4_Kp!N6CXeeJy{od3gY2xm?s6FI4JLYpS^BvQIs#m^h*B4-wWDt-#Jzm%f}~C*Yn+ z49B5|hF4czPCvx-Oj-^VCW9T6dzZq5RYf^Flc;zDese1Oeext-cLd_t8=cE`8h5@z zX?4R6 fGV8oO1-h~E)GI43I9-}=VO6<*z1cqRqwg8;pXVjUa#o-+16h$jo&Di@Zye_h z@;7$E59wgPkSUW2C0PIE<1MhQ;zY4g%?l@2dd4`RysIh)%1_|H1{D3?Q z_F&S65;vUXs?{`$G?BPw?XJtN(=#sutRGA-Kz`{pJ|##nDFkAJAk)A3rhl_sShzsH z0)PIEy!{*R`zKHN|8z+#s|kYZrY8v9na;tEV)lEmVW;H=@yMG7)$k68NIvK%A%jls zkP>}OBuxZ~9(eDv_TkUdoSG%e3KnsC{LRfFQ8zwTe`f!tJOl!al>iZ`KP4ECer`DG zY+`@W;|*F(5JZ0NfKNkAq3E-t(Od9oP`-kPzleE(-+zngvl>*nT43SM=_MG!%{k8_ zDZei#9mgI&9^2<#D40o(2jVLhKo(AvVSNafO8zA;i~#7jDV^1?LjxZ87Y T%4g-d+3#CZt+9Tr27q5`F_1Zs>E 0CW)>n>b^lvO1Z{vnHpiImNG%6{Ha?)L=_u zDg4L1AnP+D{N$=!Q@XOZn-Y4McMnU??xsHk1Vq+9e^W>#yxh2n6IHNLf7dzFa>W+8 zWQk%ipb4!(jI1n#ad^P)rEtUxcgHr%0%!M`pB8b!mlSQPB{S QQW)4^_!(9!W|}bZfx&p z=3UIZkbE6+8*4%8d*36h #$zE?=?QrNoOT;v8=gk=i0z=q6HeXAK5z zSa$Y)vn&cBe*66mb^22tLs(A^`Dr(C(r{GA{h0e}S0+6m%_Kh${D^;&S>W>=TEJ2y z$fP=|smaJk>TB052(zUCeR@D25VGdbnS9Re@1VEo`IAg7S)wOT6?)|EPplTqDsb#4 z*hKNwQWC{t3r-v 3`Ks&fzY1=FNO7NTivx6oOmunmD#M7r z<<;P;ID9iLCoyf;6^B8g1ia(5UJZ~Nx3g*a6$%BAb;2PmZ|q@-zP8iKpG`oxKVHKo zlLG{#wS09fhzv3lxu}v;*K(I1c%gwI0oz>-z6p677{P J$^ma zJMbbN({`5d1~WM-PKxSaX1`Z=QUW5y8@6On=|u6N!Hf`A%Ac;@1FmA)Wvh953rM)- z_jd}LfMWEyXE7PKDz}g1s5n-zm&VN{@d5MwlWcQjI^)~T(D %zH1O9Am}}#98Spf$zJLZ zXN ^3=!^FIdUxvm-l0%Y=@?wo}b{fK-ITUBSD#n5fQ&fN&>^|vm( zL*(f6#f5Uvsfmf?JbLOUY~h7CLL|ys`+m=+ry2$ah*X~%Y kqQcoe+o$T1aV2hbxpbC@dRQm zBjMc$9K7G@pc&&uOj;4GHONyT%KNH(fhiNgNmK3oA)9$YX`*rcvqr0Xp5!^;k3i2_ zF0hdyI2rSp1U9YS?CWInhJ@H@94yq0=~P8*)J(96x-Lg|md4#W@_VK=1=eDN`}aLl zfj|6y2dY@9xl0KldUU7o#P{^2qljF?Bue0!thQF`p=)efQ>8#VbojRSn(b*@zAbv_ zK+MRi vf@GG8>^>1LL?@q{hNNMRZ(@Ygc|Rq zCSr;qw!(6C1|~*dLU!fV{>V^x#DUGN%?Q`A2KQ`F={Mb+t!J?yX7?@r>>PrCYG !K&)`kN`)}_)Y`$9tm1C7- zyRaJyF9W*KEXcU7t};?39>i3dzO`e)s=|E;mcCSGx2NY;>6x>a7;fBgSo4vg*o2S< ze B#L3(UWr26+V^|K!igFul{A8ho@ZCL5>sWh&FIK8|vd~fW4EbOpmunr8w z7F^r96iHUIziYad0rjv+ wNUNwcTXmT3%!?zejckWRBtj~P_8?G zn1R*-tX0$JRsfsd@+OpnRfGM+0j9D)arPQVVP08*XE86?RY4$SgVT3<{lP5KTfNG6 zQpSQtA64kldmXI(+0>&`v)XZ$k=E!@53$*lY_x={=yLk~78{HqdJl+b+?;!hgGn~X z4dwBq0MhW9pYJAH y^RDgzs!kTmK%Y8k_v# ByaJOEN{2|J@(NND#w|(7LL1JugSk{0lSYlXTRF5~4 zIK-NbPFLW)y+uu;+GYOgbxGr17Ut`A7f1ab*- H+!pE5@7p7--wArhwe19IMvxLSm39u^%~p1|HwnaVzS0%UOhhLQ_r*kKc%NuV z;TG34oPz8|7_vGba{KxRIMeZj0%F7ZF{OveS&b7^y2G!l(pE#~=%-^rP!BwTX2}A9 z(|+H>`?b*_Hr*H%;A@$1pM(5z5#h^5k1D(Uww}wIB2RKt HIc61@>g)$38zxnZhJ1#BwYjZByBkc)0+(n8qn0GRNtHF z7uPIBva|quw`nkvn893xPD|_@gBsi;Le(4!@UO$5Z>eGS;C|iZJGOtAq`Zl;U+ev9 z69+0Sf-RNDqm2Zlus)_&*Grx+$CS(Qy^!`)e6&jB$`nf=noKC+mEYF*xYq~`LXIG} zA@bo%N}7ia749~go#P=I9f&R^yE m2NA@i z#xW~2mYWZZ)B#!FS?tW5x5VvfNgk6V=Fu({!F3snga*GKu`)e6K0ZRM>?s9}o1Rhg ztQglcE%I`>AsgspDVY{lf3IQ@u!`U5hyk!Pg?beiYEOgoN@LmakWwf{<$)+#+LYWP z&fe7P!}7FTVus9G0MO>^|8U+3;$m%4MpiFR{^=&bts?-U=Uy?3HdLy+IhHn?!3K_5 z#OaI%pwYw<{Tvr~Osmhg5TTYtSGtmbO!44bn*zziMffvE^BldoF Zx*Q8GQD!^6Ye)CEQgdTkSa_cH3 zFZWj!05$+Wj>Ztx36Lh_Qt&mVU@hd!YTf>e52%;W!>FN2`v_TGG}qVr>S;NuV|5bL zj$*9-miUu`m1}WK3ZuQaajs8EKr&e>i0mjUtoQ6|9>#rcpbm&*5Q0_^mFFY7(qa}; z<4ycoLHu*1E^^0e2xJf{58<+IVtJ|R^dh!Z;}9~G`cY+%0w1R@Tw67DvXtMT#lhaX zcXmF(j!-v_y&qYUg4_U?P-Dw{dgA_3?^(crABUlu?%Y7~JkJy5xKNVGA5n0J1F=@^ z6xk5#F3eJ^0!?uj$dCcV*_Qo7vso?Qn7aSYm4`8?3{*P%VI+o8=)`@hqyw*)Kaar( z!~fXvE$Yx6N+?Zjm*~NyT1+~ $y~;5kCDAG ze`bkPM^O1(65qMYJq#*%Y$J&7u#|jUPWbEE#d*RmA%C*h2;|>c6kiUGfe0q{T@#h= zCuM%yYoC)yiK=)G;38c*p4sWp0vn)Xs;sHdK^0r96W~?vUY~$YaN`w>Ugz}xT@fDN zRD?C lb^A@I74MYI(*$vW3^Q+dVZl>#k$|-@l^JISzXuekG>-~)=eRhU zO08jEcQZ$rN2aL|0+>i^09zf@ftvtN0;UkTn2=~;J@>Spp>#A 6#Q+WK%Q;z%v}V5HE?aSqeDO!7#Cb6AN|rCU}3#etsZJ#K;dj{ zq _;!-kx{cZaF|6hzrRD@)g_mDMNjGLI?FF53vnkc ztW+J;d+^IZ>x7y08B5kzOFJ!)TR7hIkEP5ezfI*E1LJGH!BsjpB&T^uX0ypZkEz@u zRJT;`tU0D!Qsj+Ib;*il_F5~;*V`K2J!DcV97t}>-?^N}I!&|*E z>UUcy=2Wm8MuDLFgTnfDU%sd8nXR%X5DNizG?TMKM}P#`i~yIHU1QU!JqSOim*8rm z)_3*5I*HstoRPF5f$FK_bRpNQnp!w3K}_@f>&+<66ymw4(}{yAc!1ay6iPTRu^Vda zRyq-?Xa^DqzzFDTvTTiQ=lckn=Jqy)4-OPo=-hVXw~aGS5_1wffpBP3iDqswoA!5V zXkT?7a$Ws$QMd4)Bm6ZEornv32tcctbf+aL=cdRFXJ6ZjtuJ2&ZJyhBE3ks;nf=bu zPkfh=61iUBLI95s%D#dx830wcXKwx^Te|XUI`$%Zv40n~FSfT6uH-V+Stz*tXeev^ zVNsbZl4KI3+|tr{Kzv>2!NcW4qp2GwXiGy8n@RDdQ(>Rc5owA|J|B}fPbCj~VeR69 zFe=Ki9a4=~`=86&3WsV3v=)$~jK45Ju~eMM6~RJ5ITS%NUI#6{RE9oS^f1n~#E-{c z9m&SC`LSO!1RlV^NC<8~O5R}5+CWASHBs<4*a|~hJ=5qW>(S@q{M;5f`lJF>lb>|Y zgaqDmT31CC`#N<-19v_fUvV`3_p%{-+fl3V97Xx#KFu<-&V=dj{1P3?>s2q?XvX jlK_rh5G?1%PrXi=qr27h4inqFBZ^TG@;gT2rf z_Ex>;^P9c*J=-B`OZ>~}^3cN`El6YJPC%Ql3@8Geh5RXVu~GY*uuM{dWtAx6pOHTY z{D>JWtj^?f+_So0=8IL*K?Fhz{t`4J-uHXLig44SwD0=ogmS7M*x7d4TXLSN#~RQE z!L~zEM)3wIik_o5F1p7L$$Hd `6=H~>G2Y>HR9og+49$E&_x;)59+bj1>Q+%>8r1zc; zRS5g9;86mpn%c~Y5nAL;Bg*_FDH5ecTvS-dju3q@Pm&HKk-6fQzO-CYV`*m$SlkEc zWb`c{FcqOXM)+7+*|W0TVtzR4&13zJY0oi{6d1_$Pzo~oyiHs@AYa^TZ1`HhefAvM zAo9e!fd#>dmI}HVFL?VooFEm1M Y<$rJU& ?_AeO}D zoSdL4DO#2LhO|K-<%?$?wmCDB$almiLe3Wc-dkvY?bXDAA89(1v8JJfZtw5WJITNN z5@K%9#m4!X)H{K<%Z}n!)k7jV1zjY-zn`B!I(JxM52SP@l)Z}afteV=q#ZBu#vo(> zAlEu$jM~7!qFj6!m_6JJv=ZKT5IF?BLi9ePR8a1son>E9Ay@cy8s1VYIJAHZ`%OSd zz4Ii;NLBpd 36bY1}p1=@gaemY2 zkxc6-klZA|?#c*!Q?yT?%h9d|#pD+lGW_eHv?_ZG>bcRKB&>Mi#V1g)QV@XvBTpa{ zE;rN!>RLEU>JEyAg9`8>s32)`4H_o_Y3UUmwM(rGz>p4#pWj~E`Gbk#+!HTCgT!Z` ztT*sH+8h39;*|tO4grP9T~uJbQ7X5yFcY9DQa>TU0l7U3u#xsGg+3FXeE>*iy1Zb? ztpzd;2i3fU4vSw^H3zw1%D0_1rSYl(5w9GlwXp{G8mHsa;%Fp@Z)4J{-JZUG$FJv_ zNi3znBl)&EL%f#XvCXLBW#I|jG(7uL5rG_D#W6UX?WIkDHPJRy!7paXKyb&q{m;YC zj4oa=564LY)@FIRyr6Q-)`-E{5-@a^_zaYXSZXA=MLi$^rju1}FGL=eWf9-i75$3q zjed1?{Lyj-j`ls~FX-3*4s!p%7sd<@L@DJ8x$4pVQb19NqM~m2QLkGBQ;qXS)KtlK zS4P4&C+OdVcJ%WNq1_IMo7q|HaEoB3R&9`YG&x46`^J#6QE59n?$W`L-((YHgM%4C zIIrTkl_4PMfymA1rl*T0wfeyr =x>5J4_AKP`*lm>T+=Dk zR&P@MS!KwSmD(MEb;@?pN _jc*@aI9A9ekDxytUVZWqO-^SL$V7q(~6V z{%Iccv-)75abqY7orKpF>x19x_0A}t)ASmR$*%8on2h=xK$qTLCgRJi6)a!H% Ce8t9EdipNUu-8hwAkL%+l4AzPU^P%>%IBG}IsvCo0um@SK2oh2PPpuiYA* za?`lza;t_8WX6U{<2d~WGC}nOx;apywTTP1o&+hE6#Tu?*}zK2N|S#G(Qg#cQT~z8 zS5*SonD@4}&x1*a&Y5_8d&|D@P+fev_&EUJ$y~C4I6;?^3k2(_4?U4m@qpI?*t=^e zRs$&X;83oz(Z%>%Lj7s2)5XtI*coYy(b|r4bJE@&4FEU)X>mT)_VXzL!h_Eb=u6&~ zog4Y*ODEx@+tk6CT>;y;^fEmTM+eE({1^?@66Fa8l3TUH#zpyDU?K{g&%ti pS$C?Iyo(|=285%|a<$XMh3mNOUI<1( zQz{0$2oSeM2W2N0>BUzfq(sRQez}`neEomEJ^`U?dQ-X3O2uSVcec>si_iC|rDL(1 z11{2-G5`s0@G7&jF|;jns=1bnNf)-A1qfv!T?1&{eRqwsmv`A7JA8?9`dbv3>Hv3L z)B7cW^@FU>b=6Xv?pb066XQ28pyy?O7e5=m))u1&(`BMmPgp5l%-Z1UBEiUBayu DbNSxto9mkoVLl0HcN6TCZbMGv%n~vL_@X7?0t2SioW3 z+9Pc6*_BOLahL1sr@PYQb>Uw}Nh>(rGiM5C0L+H`=dK_jLpS#U`PV)F*FFE&J^%l@ zInK{(BCk*B*ybgL8ek#Gm}$wID=TBMf$tw+-M;k*>n5CX3;e|jw8FZ%!_Uplc$mRI zEUeq#ZvW>ecTB%w|L1!gzndo)t8g*k3lm&c3vOxzHxn^&G6P?*c)58Y9NfYjJiHn_ zJR*F&BHY64+}tAE+=DM!fqVErHh|fiTA6$N?;Cuhin0eAJp1Pz;8rj*XSfl};eX%e zgz)=!unp vXRtcnau>YeZZ0XSU9ssI20 literal 0 HcmV?d00001 diff --git a/src/Core/src/Handlers/ShapeView/ShapeViewHandler.iOS.cs b/src/Core/src/Handlers/ShapeView/ShapeViewHandler.iOS.cs index 5059b937e484..7b9b56296373 100644 --- a/src/Core/src/Handlers/ShapeView/ShapeViewHandler.iOS.cs +++ b/src/Core/src/Handlers/ShapeView/ShapeViewHandler.iOS.cs @@ -60,5 +60,22 @@ public static void MapStrokeMiterLimit(IShapeViewHandler handler, IShapeView sha { handler.PlatformView?.InvalidateShape(shapeView); } + + public override Size GetDesiredSize(double widthConstraint, double heightConstraint) + { + var result = base.GetDesiredSize(widthConstraint, heightConstraint); + + if (double.IsNaN(VirtualView.Width)) + { + result.Width = 0; + } + + if (double.IsNaN(VirtualView.Height)) + { + result.Height = 0; + } + + return result; + } } } \ No newline at end of file diff --git a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt index 7869f46fee56..455d0b46cdb7 100644 --- a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt @@ -157,3 +157,4 @@ virtual Microsoft.Maui.SwipeViewSwipeStarted. $() -> Microsoft.Maui.SwipeV virtual Microsoft.Maui.SwipeViewSwipeStarted.EqualityContract.get -> System.Type! virtual Microsoft.Maui.SwipeViewSwipeStarted.Equals(Microsoft.Maui.SwipeViewSwipeStarted? other) -> bool virtual Microsoft.Maui.SwipeViewSwipeStarted.PrintMembers(System.Text.StringBuilder! builder) -> bool +override Microsoft.Maui.Handlers.ShapeViewHandler.GetDesiredSize(double widthConstraint, double heightConstraint) -> Microsoft.Maui.Graphics.Size \ No newline at end of file diff --git a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt index 7869f46fee56..455d0b46cdb7 100644 --- a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt @@ -157,3 +157,4 @@ virtual Microsoft.Maui.SwipeViewSwipeStarted. $() -> Microsoft.Maui.SwipeV virtual Microsoft.Maui.SwipeViewSwipeStarted.EqualityContract.get -> System.Type! virtual Microsoft.Maui.SwipeViewSwipeStarted.Equals(Microsoft.Maui.SwipeViewSwipeStarted? other) -> bool virtual Microsoft.Maui.SwipeViewSwipeStarted.PrintMembers(System.Text.StringBuilder! builder) -> bool +override Microsoft.Maui.Handlers.ShapeViewHandler.GetDesiredSize(double widthConstraint, double heightConstraint) -> Microsoft.Maui.Graphics.Size \ No newline at end of file From c358da2f2fd2fc272f7790a1e2ba94d32328ce16 Mon Sep 17 00:00:00 2001 From: Dhivya-SF4094 <127717131+Dhivya-SF4094@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:22:03 +0530 Subject: [PATCH 2/6] Removed unwanted lines --- src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs index 10ad714ac1fa..252a675afa0f 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue31496.cs @@ -7,8 +7,6 @@ public class Issue31496 : ContentPage { AbsoluteLayout absoluteLayout; BoxView boxView; - Button changeBoundsButton; - Button resetBoundsButton; readonly Rect defaultBounds = new Rect(0, 0, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize); public Issue31496() @@ -32,7 +30,7 @@ public Issue31496() AbsoluteLayout.SetLayoutBounds(boxView, new Rect(0, 0, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); AbsoluteLayout.SetLayoutFlags(boxView, AbsoluteLayoutFlags.None); - changeBoundsButton = new Button + var changeBoundsButton = new Button { Text = "Change Bounds", AutomationId = "Issue31496ChangeBoundsButton" @@ -41,7 +39,7 @@ public Issue31496() AbsoluteLayout.SetLayoutFlags(changeBoundsButton, AbsoluteLayoutFlags.PositionProportional); changeBoundsButton.Clicked += OnChangeBoundsClicked; - resetBoundsButton = new Button + var resetBoundsButton = new Button { Text = "Reset Bounds", AutomationId = "Issue31496ResetButton" From d31eabad03733f8dd0ff217d738b2c1893d03012 Mon Sep 17 00:00:00 2001 From: Dhivya-SF4094 <127717131+Dhivya-SF4094@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:22:34 +0530 Subject: [PATCH 3/6] Added snapshots --- ...InAbsoluteLayoutReturnsToDefaultAutoSize.png | Bin 0 -> 33600 bytes ...InAbsoluteLayoutReturnsToDefaultAutoSize.png | Bin 0 -> 17083 bytes ...InAbsoluteLayoutReturnsToDefaultAutoSize.png | Bin 0 -> 10409 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png create mode 100644 src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png create mode 100644 src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/BoxViewInAbsoluteLayoutReturnsToDefaultAutoSize.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c579f38df24fc42813c96d7541a945f6ed83a9 GIT binary patch literal 33600 zcmeFa2UJtt7cUt5X9F9(SwNI3DpCU~0tzai^r|4D^hi$#vD4ubq=*!i-VG2sL==dK z^b&fcmk?rTfrKP;uK)Muy?L|NteLgmn>A~V`PN5b?#;RP?6dc8|MqVmLa5 ;U56Z?61H5B}oeUw-&EA^uH>e-q;0g!s2!{>zB|GNQkX=r1Gs%ZUCmqQ8vj zFC+TPi2gF7zl`WFBl^pT{xYJ!jOZ^T`pby^GNQkX=zj$xdY#hV-mZ*VclGx6Hb#LB zPS-yb4IPDzCcS?@`HfpMA|wRsKxj^n*07}9*zW!zoKL=aoigk|h!W}Q?!L3d`ub}B zq_o|p9!`?`UgH2BgK-@$mpv&}`m?XUpI7LT>lt^=(eUx{fyOv``esOVb+TOp7z{Dd7&@`un|s&cXQILj zWC6I_rp=Yv@Zpu2Ht8VI?;8T4?(3UkkKI?v0fi*LnV;{% qa;G)vu&XtP}C _6$ zR9;>_6if2pled*&iu!Mi2RpPSDeeeL2J5oX?pJ@bu(0s(VXW(5$w|)x-dhnDm6%)6 z7nK-m7lU-zE9YWn4;CeS*~a6|-r7_S+VV%B))xnj?#5D$l} VZ;Q_1@Eg1b3M(WQH7yi+VCB?SvCJy3`8` Yd|iEn`<-yAg1F(n-8}aF&BSK%f>2v5 m*w^WqB&3lms^D0xMr#*Zo&m6irpx4<0xse>6UqE c(7+YCWJ^EI!PVhc%)5_J)0cBIv`f(x)N2q zW}b?sUvyTybgB9IuKi)dI|MXOb+u`5hz`m@n9(_6&xXKe$2Z6UY`5>(amUPz&yR%m zOQVAi-o$=A@A%`b%a|B{zyg^(X%;kXHZfA=)z#VAIor?bUQv-T|9l)h5>i?Fdywd4 zr>m=5yV9;kTOalS_mz7$d%{VRIrv${on@Jnl=SK2$B)XG=2SRp_c3KT+gkJFU*}Fv zfODgP !2=8#b(;AV;AEvB1;^!PHN+ zMFznm)825@Bc=jgG#pWeebCd}L74B!4*zC){!HW%Xr)f+My)bAOGCK)jR3~#yaMnv z=MFB|x$Vl=Ufri|&?d1?9jVGsrmmNjm+PR>=$mO8aA=mfxw)j8Qa@kc=6W>Kp2KD# z76-6%i;EGoNdf^xX?kw%*_pQYN;&($@pTA`t~HvN8Eybq4a+}uGwI@4UU^&fsU9Lr zc@LLx$Rr_}0H$CM)>7edcSa%{ }^HF1JXg9W(o$sNkUUGfh)d&ZhcU zTU#5}gH*q<+G8-eI9RFx>;)Z`u`GLZIiXMux%%j$k`e(p&8NabSyeSPhmlHzg4fJX z^UwFL{7g}+AQe;YrQtsY6?7Bw`}qYzKxD_;ocEmm5!W>^U_QeB{f#>uu5>#^)np5; zudhFt3cH(iGt|nXZml{iGiEZqyJ*B=dTVn9z0}m*)pb}_R<>(oL>RK@`uaNmg@-qx zDb94HiS6f=nOh0m0ai+SJvpbaFj8%)GQA^!gmW=V) GbuWejPk&5Q-Tzz= zdnHY`aeAfTX0kGt$P|Sm%apB4u~@8Ybb^b(+!iT>?mfSCGgV!MSJv{_;b~Hro0}Wt zU02Y$b{zwvVbtQDY=eYXm3{eU2_iauu@{`$8+FCd#v`^kXA|IXBfp7W=cs8RA;8JB zfkhUFE99fZG(~}XL?R}ec}T5sTyL~+)|dXBy`Mwy$#ss(ZO|ZnTf1 pQV*>Y=9t&J)t7I a@nA3IWSg8rdtzRQ$)lf{<|qo!t|_ z6PjE^5dl}Sy~oJ_S*3ZO>rqCkF8D5uSd6fLI%!;(`(iXtQ#c0J&d|4}m{#vc9rLH) zh(C%B87+VhgohrLYzDbmxHVpuOw*Wbjtu9s_5WBoIxsLmMn?lfcW80~4<|3xQ0q&0 zeu5A*2kTPHW{?jfR8rMJToG%h+`PQJtZV(Tm7_hgEx6{6xZO;4PH}N`p;ZMhHQ1#P z<}p-u7J%*1!wD}soHSP6*-~pj9vvuqd>5Dn!(k~L+VPGfw3ey?l8(YH;FS@(_VYFl zd*E%7b+dXe*Gr>)nt>w$y$)0+4uyEFCcH2T3ZP7FGw$ubSoRDGO(zPpgU*m{q?G)fz# z1}U{Ct9WV6;_meL{rd83BOlMmFM0LpM(pXP+JKcGa+-sKg94BXxQ f+&rAqnER~!7s&Jr$`5-f>c|)e;Gt)BsFkW%~AR(K(=U*WEufw2*azP z8QxpJ_Gr#29MHAaPV)AVFQ{1DjPteW!z=MfQ_L-F67kjwZ8K|M*;Z{?&-fX%g$o#TFshSwJPn&~B z-dd`=hevdREi%_t!t*n!D^74Y?h=$yfa?s_TI gFJ<-lkQ6$*WGWg|GH<+fMB=BKr`~}-K<6}Zuqf^F{Dc` zk*MqB QC#e#gV>uL7*Pz34`VdKrjXba`*0_N8Vgfr284W?jIQXg!cVtu z-J%URL^qW^?g?Wis|TEiuDQ5S`M4)5Q4 R##bPyZA$3a%t_HTH;%M6|C=i}4FSR;qalc8yyidH`YO$&RxyRVN&&2K3J z81gK12jGUoB88NifdSBc7fmKMg~AAe?hY9-K@?(8;l^eSiRF$pTx~pR(3s*kX0bJV zuh}Y-KrkGHnDkg}RVA8)rmrdEK@Ou$gv;|*B*<7C;nvu=2bgX8Mh%n;)u^?17fZGn zxOBR)?CLYKcXFL_JU&;8kE%QM9NbhS@?4K3_O$pniC5ZOshc53+B# zK97zyTYbsp${I+HG#WvSucFvTfaa3h$b`I^)^FvZ-8jt?r7IecK_K}|i*ARqF!1`4 zxZm!8oHpq>+t}EE@S3fjDV6LCH1G?qBD123dIv=FsKpZc@yDoLB5J;nk-Eua`#~;o zly==Qx>Ar-JPQcM C+o;0 z95l^r_OWxHO3dqBNm;uP^F9Ht%wPVnBUQwXIYhJ{EOBgl?gK6X@!9&{ujJplt&txS zd!e#Ly14d^>*GptQO!hdcB<6y!MgJDOT2Q{{Arx6*>L n99Q28FNiLnJEJK*OTk@EBrqpgTJiDFvV)49^4 Mqx!vXuvmfnv8d#bHO1mgxQ@@m{j|T^XHWM%^fYex*$7N<^osO5a;*Hj1`_udY zaih}2qvHJ8uP3mthxv0e>YIDlqAK*FqZ{Vt<{;`}yOxc^DS}uz1mTl9eZ;HDrRHH< zl4wP{kGFRt FVk#^PcKA7Le`Q zItG~34_`8#K8Bi%w{oBNvDME;0eCX2v(pF6zc_K0!C;Ur74mzT5cO{I`w4~;1l(nj zMvp6c & zHCtfZp%6;}?Mn@qdH2ZKS!&qJ0n~!DaQsHNqvW+9)*3NAJ>B68eo{v^!6uq4LSzMO z2`Of|uLD#8r2N|*5YmB5UTNgDZ?%9#ySCaH*ag=3Qlxl?2+?9 D>LRP=pXCzX%Bm{wU`v!{Kb! zb`1^<2?8D%3Ssg>Uw*6aXk9nJ-qs)@Faoj H-WvW&rBaRP94X2D$-fx2W|!c<>-?E I3g_T%KBHI%UD}F>-w2{@*F02g?I(fSAQb09 ;*13~%@^9&7UxtQ;EX%*xBHs-* (-Bq0IfE@D$;~m=3#4(N_K{M3EwJVF17gK)Y?%W~0=WLWbRI3eDfC z0nH_l!z4w|reWB5l}|uYD5* xB4MKREU z0rUM$0Qjxf-U%DkUseOtB3tGZt}@eCIn=?@**rvN9j+RJ%C`4ru5F783)Kr5sBD8Y zx!Z{ kW44qE0@-qXyavNzyDaJXPa`JbJhOVatE)cL zFuY@Hd`M;Bt{6akn@b#9!|F~jhHhb$rC6UR^G^aYp}J)cw`c^&w2*w0tclS8C1N-R z-`}SI#s2~};?0k$F`5EDD0XD!W{I(&@P-tXS^&0PV`HKKmBK(dpO7-O`a_|UM05fx zVRZNI-7OMGp|%z6a+YN|{Cpr~bpgTbZ~_U#t^WHmewGf tP8`mH7jM`T8m z{F#&rZpM>LI9v%(IzaC3Kxr;YSmg-#IAUvqX0PuK$P(7XYrZ=ZND_wSpDIA@VCzQ` zos+=rIoX3^SdzN56w0L^gW|R6qZx?ODrfFYy~THL$Jb=gMSGC`&7O90LJ?$@i;r>$ zZvomq+`i{jcbp0OTtb}C&%I@NDrf_B+O?aB=T1N++T6lI7^IJZ3>Nk(6ZisQdAijB zT%9 fdkZszn{41%+wAN8WvD2r;hq@%=1?%V$I;)dTbZEOw7QFgU0? zqXx>|tOoZUHAqz#0Q!I_RPJB{HkkBlHe1pw6Db&itzh<}@dqcm{93E+U_yP#e)=9Mu&1gxq3a L1f7fYq^{Qwlk{!FbXt^ ze6!-HkTd%qWJ(Ky^CN*e(*#U00Sf6R4z)h!vX++C;Qc*XC&(y @OBINep9PG}#Ld@aAc$yGi z;aBMz_rq-%<(nk1nv?a+rEo=;e(+Lq0uZp!Z^7IIfU@CV>wztmfv6b>ihz8ETyfpm z(Ij)?b0S#}m*wi;TGe|o6 zW!>@2m>AGLBAT0 M5mOHz z8Y`T%**u{Ein9CIz6G7zq#UDkdmwx&_$>6A*9Qiu1EC!Ys1GDoKsaS-Wi{DnW*6y{ z8jv+)pc}2%5$-vy&=1K$rnY7U=0?62gX0@p2WNl>HPjrQOphs27tSA!yOM>&;p|Wv zKuk?Y`CL}<`6wcQIH5G=pI!+Ef}66>f-zK&F{yacY``^SiF03`J>N` q)Yc+ukY!46t3xKxLbNnh)^MSX*V#jT&K6Rl#^@6&z8K_6cxZ$gY z7H0&1ns67H#nV?K`G@1m?=?Js^ypCt@Jv3ldH^<3rb`chCK}NSyS`D@WFqx}>d)U9 z;0>`9#RJp-!F&^A{x?8?H!Sb=obGRN&Id5>>&uHl-UYflP)ww2oWBCz*UD@DI<{MO z5b(RR%!;K^p;Mn0t0^x`T4syyL_0 (7G`89s9Q%L+*#y1J#g6H(FFytvnF02A+3WV-JE1xYq_m_kjYfX-s#vJtZ6% zDBecU3m^#5M=|z5vC};HVrTyGgCK~U`G5R3)B*1Ad!$Czs@$45SQNanDxw*r&Yp{A z=WN_X3Zo5*wzjJRZ55Xml@D>qf#-)2KELM1>ad!?X$NLQTmD05fiL7wZSXsT=73|( zDZ7A)FWsfH7|@nr3GT=Yejx*xK5_IrhS8J8djip&aRWiEqc;QoHVFvBnJfx0hd?KG z1T4%M-bXdn)%KvW$GQ!dPmrW}l3y=esQ1n+tg5O~?y~bR`+Npn45U{+1t&l|6z+e0 z8TQk~K<6t8d4{lVcvi# eGafP@%NN$HBElQ8(j1Ha6cx^1hci?hju1SH6|t>x}ED)MoGY$=xIfmwy~ z$slDNz=2{(K1vjBIa0rT=NY8O2Dv|e9BNbJySC{M)Lq8}2TBx=83XvkM4J*x#yuhR z&}zdTF`4y}ISpgS;~-g@Zq))I)L#Bya^2TPkgR}N1c5ST6_Gaf^(Q1#*!;0@Gsvi? z?C0ds%16d}v=qyOmzge*cy=Nd6pHfgX`Q{j-ZrxhIlwvq2R7ynFhjHGa<^gAbqke5 zt+qU@^`()6eTiX}RsYpOpaT{T8c%!`cF6h6l2_?>pdJulsefd%NTsom1iPRBL;T7Q z2T{1UP-_YtVg^I~S_+ofFtnfeLw zZu3GQ_Y4N;??&e60dhqXxKn-A8!VvN>dPluYXYR6=Y9q?wti&W&+>31HwmrV|M9bC z-^R`$OkZ#BTai1R==S7pgfjoP@iou@aDWsDLdTan6umjWxE`!EaPS{jpI}TJs$46D z@)UU9P%kV`Mr%d^?ez~A%9r!nzhhiHJ>n5m%L{|xgM6gG9Eu$*D0>q@kqH!61t{dj zf;R3W&Xz;P3n*FktT7?LO3si!Ik87` lF?_3c&*SoG2K9YO&E8KR)_< zz!*VCbtaF40UW=1k657L;vFW7iqQmWhCL{e053fX^(6q7uUCHP@98@aVFClkU*zyW zIUkf<5m1=8%J_kbA`J8Z>~Q-TZ_nO^^ppi!1{%_(gjJr1bBU_+gJwiDC {VioE)n&jgt0#GB} zcRBkG;0?5@4s;Rmf;qRh#%_Bc-C==<3$;NeKm%UNmr&acCOHvqw`D(ggRkb+yYmu| z#?`pep=nppxV~Bo9Jvu{FhcVQGBB|E1QEple)*0{-d<%|AD1>Q2>D}fcw99^3={BM z)BfYH_`-N1|17 C=c_|Fm*Q$YBf8fLP%WC%IGbs@*A8st zNmY#cT3P%8P1^Q<3s$+CoVI`x=m0F)q&Ef1DTaC%DMH`^L{pl6Gyw5rk9WXmgWz6J z4@XhlwKiEih)p$D2-CdkL7g6EU0()dK_F(^1A(5FF2*_o7ObCaD-ZOcP Q)8O+ 47K zCv6 kz4j0`M?`qAw67s3--crsSTCVjG;a zn|N)uv_g6DMPriPD3IeV3L;FG^=|bc;RK+O !WJXD^d`c_4h_q|KUHbdueh zZ};6-pIGeHQp`H}Bv7aQ-33VqT|nDc0Z=z{z=b;DgAxAe<*tJh$C^isK`^F+zH57$ zrWi071bd0f2>YgrN}Ed06HxUHHbz7MpoDfNfVKhY^Sq0TOE}<{5S#!irsLq?0D6@H zU!pGzY@We^n1($0 NYBXS+0T4fMV?$C|E$Vbw1A_r+6APO%cmeEs(4V z4X=!t@R2`cvH&_Y4%!Fs3g<@-Hf`jTgAX4o9-Zq-hq}VwCTjP6Ylvh-h(!UKQXS(^ zbA)8qXIw~J0p^9Ic5qK$Kj0JgOgs$gF#YC M9Eg3EizT5D41Ib?^Hc544|8 zs=>q }2qApB`N z7%W556a0kD?-d3=FC(|_0Z;#?eu2KZ=kKBaA6mnwFBJxRZAyN(K2SN&+PKFo8o>Oz zo~%B~3mP_ksWMMbm;n%om5hqcvU*4mk&bU1QuJ$niEzk=Tfh#yF#^n@%9s)gyZ1<) zS+_>3OStrpAPk}6A2{#DO(+hU=gWhig&o-TY{$Kws{T{48 25mmeIS$5p zxe1Mvma1+;X@T+gYrq3k*&9|JCaClOIlePs9Yv;8ZR<1u*J>&yS=oW}K3v_&_4M$k zwVS9wYUaVd)B{hA>*?LEAHjQUp`+WOqxO?obQ{@S_nrbF8hV`%7l0W*{j%-c)xgha zGo0kM;}U6Uuv0IfcNR50GlpVe|HgC}JbiNo-1v#xsqXpf;;@XVm816_98!kq{4+~} z@eBW#PyBx`#QIE7+hHHN*$qmmp>~W{x+hOgcw1R*y&$o&`%=aE zi9^7I5lKN6L$SMHFHU;G&Mm5MeSy<{)%i8A=H9hm&e)3>zp7hSo)T)qOmdhU)(jV^ zSzq7eIJGD8w#LhVO@c?WZ=0cf=Yl=dSG)lzuQRA%cV1ZOY&)T)rx5GIEZUeFpn+XV zA)N!AhP7rVPoBQbZwGc1KD`3IFpU2an_V2F60}0L3wzg-y^c&Hu?jgS#{&HHx2POq zDQ#)ba2~wH_`4>X;-RC(nhP4G11iz=WbXRbRAd`XjI-i5F-JSvml_DW$M4C-1 kZeWV)&V3HO`#ivFLMdoEoHl~l zP@*+{qnn{(U{CLV5fz3R_q}a7I@!VQ<5-rz-^%TAqcvyICs^Emja`$HpX!6WN6tH$ zj$r5_h>jF#hu$0`g)FQ>5XX;0Rz@s)*Vc{~I(O{mDJ$N*=Q><9n}-+c={!{W@MgF~ zIPW#qTq_E7^PRc^dy}(@qFHf9IY-1?nUzDaTrlG|U$$K~VX-kxD@VlSnqLqv=C?dY zoQtzHXF_N7c(5D;X)S~a44c5Yb@9?AFjf~$lRf6qltnLZp6@Sr?%2mu;x?PQA;$h? zM`uv?&$NY-ICZ2jA3FN<$&<}dk0US}ZFoM;@3gHeI7ty$&PninZib2m8taBz6GvUb zhu@D43v%Y@oX>>HE(%k=UXa7qWSJmPGpo5YI~Kz%4=z1&xor
CiO9RZld$&*7Jso|O%W*9*}d0*QV4hu9BtS^eGTaU0` z>5As87kIv~sT~j?+c7!Zx13#FLwNN0Oi(4Tr&3Qs_Q6cBQ~kRT9U@>On>=f(ZGaf~ znZ)7rMZTXQ6w`fp fVwKO#aJzSCU z>@<9k#!!11o$QBUdqp=+x=_QLIHbwmzJ47m6l&2!<(Lp@(?Xs8Vh!|hHf=c^zO+D@ zez>RKwQFU<%EFu_&8^vx5dQ@lj@CQr;?PpK-+tmHqN@vmFzlhP$!qc$6x3+Wbi5at zBt%7)udhE+@fWv6tz?5O3M(%{LN+AvD_{?)o8Gl+>dXrH)d1}zfu5|!V)k+mf-{=$ zu(T*(1ca)>LZ^u@Z-9Pqi`rxtMAb#NQw>!B#+D5CWZhm`VXw^m46_SjgqnL1^AZ)% z&JkjutN{jgNJ|azt8k5`a_0I5a1~V@gpEFVj{OLFb{c_N+z8#^!)%E$YdOUF-&N*b z^o5X+M{a6IIm381-I1fw>oA^gw_&~Y^%QsGbE}zERbECuN_YfK2uoB#J&btl8nMDB zw}q#S`uRuFIRu*7kq6vYuU*}ln|MXfuuQwJz(}u9D(_nkmu%lhyG*NmEqXWG(xk7U zLO(YsynOwilRK|yM_d;_azk7NuX(2;c}o0hbBjm^!DqU<9o>%Bm_?Ij-4}wUFT72B zTL4$svo;!?UnX%rFT+k61~ZFzx&wBPFJ(BmwTou2`!&t1u&RLWF;w3AkFt2KV~@+e zgUZgt<-TM>R?atE;lA1#s@dIf+4p&v4k1PKy7W+0_V0hi3oIPqo4@Ovk92?d;-Z*` zl0Ne}s@l8K)b9YLc-EGA8PBQedZ^a+{$-8 Oyv&cI=_|IG?ab=?yIR?g*8YzS%6Y$qMQ6y-`NttKGus9yQwZC;=&X1Md7;bUyQp z@)^UFQ$vpizSt%)7f=kZ$?{ePm;MhmyIb0$tE3ALbC!fJefV-NUa+suMCn7hWyPaU zhhH$}@*VNV1T4#(4?73?=}t_@3wV}2LPlaSSMBdSdzxNQ^a{C+ouuZKH&o_&=a;{{ z^?oh)`Hz0QK_&%WaM#Q7qnh_0JR|?QYI93SsrSp+=<13G`66m;xQXi?40h($0i$iO z0qxS}$Oyu0cMs0@TYoE(lO|N*+}kM7+_B&z r)8naI>Aq_^uA`%qCBqxu7j)&B z&+6B^+$~K_gAdgXyIC$!_|nSuDV3Cz@L(q1vP0F1ey+?$&hFS^L8l4C-s5d*{bu7) z_xokvK}uXN-!E!5F)hX7_{jH`7VLseSEbSCu|PH=AfVc=q I2L*_J@c!}dAm{f`cEBI3>fju_dIoKrS`~?*tc)qJXW8b zm?%(ty-sxTdYGffll=tFo4Z=H3!hYvoUD4ct3G;*_*L;BnLMw1+P0(!I`QY8rSfX7 z_RMT@V{VV$Ej1_g* @A|BS+sAq%}l5@+enh=HfJmX#aK?O;=i zMoVRb+WVv|Z4x^tx_+a7LmwBNkbOEr^plYmqou3M$h}Ao`Fl)FPGDr`22;Sz_Axr< zB6?Z5uh@z(5H;j?SxlZ`if2>h9UUF>ZJ*+I)5#w{?m$ZYBCUs=cfPI}DLg{VtE bV`IftlP3q5q@d|u|xe^1%p zd{8Xo1PjSOj17)nsOzZjH^3JvTun-~QJY`t(&`0^B%W)Pu#WtlswOw6mR=S&ggfV$ zEVzq!q1?@8{|kmM@%I(<)Vz^*Cy(&4oEwv`Te}qeijo}&2F_!{``20*e3~_E)U+Qh zjHX9)xQdP4nbaN0^V76B34{GOx@`~ai`>Ylbp*k2GzG43)}kjh$U>-GN3cUe{Pa9| zTDnZ}yk7Vi+NembYR$XyQo)y7lbvihk9l^vc#A!DE_8ORGfxp?MTvcz{3(GqP{wK2 zS@6<_gp84~Blp_`T?k8cj+S;zmv6l|ub0?52fA(Kd&bN2=jGR>RF3c!Z&J}&n(U#B zO)saM>I$=uYry#P^=iQaN58m}cnVQjEP~YK>o@iKQEBMHo*OMmiWH3-cS<{T1UvKd z>p1~Fq4n}+PELy42haYl4X(+*swJ4iToXAqR+3BGVzjBPE?cD?8_)z$vm|h#cOXi| z-`pWf-S*y%aXZuE9xD0LTsm>)41lH^-62*?=RPq^0yFuDL_P0Ut31L%kx0tdqE|!` z#~NQeoTHS6sr~M9|6Z~C6R$Q_?c$; v+UPMBHpcBA&I49gbODTjm)OLp2U8v8aJZB)Wjz>j5?2t|?ZlY88D`(B-8N6iE*T z<&zkVE0-iyL=-d9`r0-Z13dWtQIh-qUA;Kl*1w0p ^gux6==Nh)bK8NqO8Edt? z^CT?3c%$w+dby~1e0;|A*V^F9Sl40z^%!}DOC+?XYW2Wm^AKUU^e5Tns4rIOTm1JN z{i4%H1x&o7W8_5S+TCcx8H(w)*RuKj1xl|a%N{+sg>Aq4SUEQN)7##Qldm=KLaMk6 zq8&a$!2 E|WeAZeYtdu>M{ z^4v9Qw5$=TO-slEM?Cu}((;ll=!~+3C{Kri!lJ5{RWG>@=gybfon7?-c{Nf@;d;7z zjdow2sfnlI2V4K;6Qe;L7ab-#PZKYesYXrQye@r%TygD(J(i#9W~lkOb2>;mNvC10 zp!n61z&(62tZ}o03&W#{M LipU+dm&3Gw(GI5m(0OtnxlT-p0WSRyX@iD_{?^IdyJ z#zF&1M?dDO)^o*){(8o0zT>5i);E {0bsRLj0J0dZbRGimZuWS#8|O%HXO%e@# se{Ua`KaNVWc?%r$3_t0A~q>M#T%}T)t&I3dQ=+|6YIkcjK@-C;U31olf)M8 z2%F@Yb3bd58Mo`sH<8`cJh)6WHq~HE2#sodPB^UWgRg&a*mH_%5@Y&ZJh%LTqm!L_ z{2hLKW7}nnUqEo_+iO?tV@_*cGD|r*G*`}6%18Srs*lLGbH-;DKDAT6^;MxOo4Let z5=e||WI3$*c^J&`*&h<88`Yd|L*|VU$KaE+Z`(c!_wW%rxa1d$t$RFNbl$4FwBr`h z>Xi`401I&ynzG*82_O%}S$%nf2_4 ETb&i92lTo*aE1?yuUlsen z_8;Zv {E^fvGkZX_x* EgDF?Gos`(3C0=kRSmMI^W=o&x#b{mHzdQOaFkg{lLp3T$^VN zBn>R=_BUL4=D19{hD5$L-C}1$|7VPRMvR195mc!xPEJmqTC~2!P4bfjxA|e@os+2& z>~iKZ!S21c9DH=3ex4DPum;`cB~h?L$fY%^WUrEVE+YNjB#nx3&pS8%T3nl=_TjC1 z-GQ%3ajx(BDK+VZQN?cLnRSiElbajX$)`?vc*Nft_O-OJbF<>1Dlglb0pB85m (7!iA7~rZzJ-zF+g~C4q__N!#Kz#LUrsnMXM~DN7X*yn7}IHY%u{)6 zmu+`|WWytX>lj!XQu$;~=qh!QoTLGW-i1U@9W<&9Q+Vh6SVqm-+QMSclz4SE =PccDItMPpr^%trfnanMEPKs@nH8B*K@yBu&5Vuo#Bn@G}dxK_;6+}ww3(fW!n z3w-4_-}`6xSs&GpFRYwG6&dTy1mxqxDjpAJbfQ!8P5LfeIBm7-0M`>ki&m7wyjhRg zq%N1-6Hd!yFyAI}EbiPE%h`FTQBB_BTY>KBg~-{5ykw@d?1k*xpR2jpW3}HF)-qc$ zIMpcTlCbFmltVDLF`%LEXUCs^;|O06MOD_!za|gy4%x>3yL(|QQ>!Y4`-UYJnbM~a zErxJ;!!!^^p*|K<2I>q315R60`ZLjQ+yYP*9h(SM+RZ9aHSitxKtHY- 9KXU4rkpzlmMdu58gxv20ns1@i z+$3?<@*v`0alTn+#~@KW3z2EhEv8sbh^#cJ;9hiF*{WOndh}H)X@C9Jl4QQEuojcv zyLxugZT*(qv`;C*YbEW34lii0e_4*EGo@Sc3FX?Hko8S=?b%?4A-iYmls3*by&N zF+?YrxRfD=Z#$rVcCxEo-co)$0luAd(fuV>#OwFxdUJ->GZuTOY}EOmjvao{<@>bd z=7!E*-EZrE6>x1wq{gxp SIW$rcR0q2y=%=8pmg3*MFtP(?D4O`-80?-IRc=e~$}{!?sWe|a*T@r& zR>qWnq7xQ6-zZCDC&z_{mu_dVdZ&_Jn<_;hXp*aqULJ1)BGcq7iZ02%Z|PE~P-?C` zT#;u+ms9l?zYTr^CC{eS?8L$65uw*tmTBwNBhfXkz>U`yP-*ki7Cpu|XC4)^{5*nK ztyKm0Lg8HE3%!o-Z|!95URAhS76>gB6u81Sx85T?#$*Blklz~`uB5+Sy-Sy);O^^Z zOc*4`lzJ)d>d!5Va ?=4SDJgj?<(wW1<=fZ){ftD)jri=~ny*Q(q%MjN_#6BH zu$oFQKkq72h1!@?D73&^fD+*P4;#e?U25{qJ?l1Mn(vN#7;q~V*qKE>C&y6|Y(rL8 z5453}N83=0HzO_$RY|FVbG8S?dUa8Bf)xDJU7X9NlzKs~wT<-ythuXg1>a8${jMUn zTgJke?UN!?lM73DeZMgcL#vbN-doq6TibYXh9myrF5UM z-yeRmv$rVoDJDU(?hB|q-iw*$nXDL27Bd>ww#zYBiprV;JTRXgA0-IZ>4WM>+B4k^ zYrZ;afPZY5wxnHNA+4%&G`piKyj1j3ROxMsrC?{x`!*IRcIP*hG U~n|Gn?xfaT4-1D*Wc zJ};UXd-^s;M~yyE&-=;2UXe1N zur?EHXD*9#X{|nJ FN28y=7i{*Kc;uh}6U-zICN8_ljpcv%KUY!|i95 zazi5@lB3j+m=+;9?T;rKock-^1lGcRPHz_YY7@?=o;Hm+)|Hj1k*qm9K(E(L>l#|K zk{f)OKl9Pq9A5;^jEjpatlWqlI%1(vAKQ8ul&8;MY@en~e|-DaSVYCwn!Iw$(9&AN zHg#d3C~nJ{A*H5fC3*A+E@*{ILLz&BdF~)|RZ+o{9`f8E*1Ou_3Z`BK) Ab z%Sy*UjyQJivi3F5shlAk;sMRkXHq7~-kg_jE}5ye6f@WO66D}V_zWsRCsS${;JV-h zCnt>$d(&S(YFIJIxn194umXgME>ry%MO%{|s046|p_IAyE*LD<<(Rd>sOqeo)ew8= zoNN%skyYzl$lh>? =etJh280xZw7eG`rqwhQ_0hq h|Mw$Ur+VBq;sM!fSClQ3%etG&b7(DJ8tD3zow+(hPl#~WD zQ~^`JEOEI1V&j+u?CDt=^C(Pe54htTaaEj4lkyW- =k%Y$642q6 zn}Qe26$5J*ZFa+qAAuJaAOF1f=dkvl!#f$w$1`sgR;OT3uU`CTU+2%W4#(!GPE_!v z7@6NsoIl@fPX%I?qXVrZ&T^eBI6XBrP;(6SSq)^#HEP$Z`)9$lfn6_4B*Y|T`3P0G z=o&|Gv5ppJOqK2wg%#}s(^;l18v-lra}oRmpkLwR8JMyC|GqehfBulp{{zGSS*HIP zEBJSy|25%avS d_wQWt)A-0VcaPxonUsT*_~yJKfWUaGusP%XVX6*C&&i#O7Wmk zwr}Co{L({e2@J;bR_noojHWSd0CuTOt)|X{#V-F`gc @X2q_ zWL|lz$KW&=&rX0hm(S)thGGJWrUW-|t8ZhH9{xEBgN~9fxjW&G!Lr`Q#-@Y77zXiq zc^8BUol!abs066DL%I+61VEnS^PQSB2qlX6@!w#uBhbh10E_((XDM)Y!|qP{@xv~I ztn%j(2VDtz{J(~Kf3EgFFZ}ZDsn8}KPe({CqGNNL*SF{zJs^cI+VFxR`3f-Cxy wWfXiF+PiS_;OBbOT}; zDq$z==_s^_H|NJg9j2`dow4gUa~W0NtqeAu_z+EN;|_xd_Kr=PsU|Sd!lB_r4tpdc znh%{HyEk-Q4s=3{xBmo6WX`Ivu<$X^!U1>U0+INsU-j#9Ek#gY47??zDZ1o7&DiAP z;@Y>bAib+%^i!r-n^}b%g@V=to023ha|1V E6$RsjTVDyfQ 1p+g`f9#Z96cB0vC}$`wd%kn9x)cp_Mz*54zVP3;pVs9>oMRrONB*5E(UD< z!(z{#7J>VY{FyXE -9Cpv?9ItCaH)7uBhc5}CYL-wB%IoxjW1VgW#N={j0%%M+ z*`e(A^T}UG1s$NCoD(3zhD_#vcR3_24_H&wJiq%FxtW(f5t9OGREiHo)fbb=LW6o^ zpp{`o0OhLFuXYCQ8<%M@jL@*0T)Q*!mKG`jP?ehz5TDN10TPd|PSYGH;`L&jnVY;- z7+KPS;HA$ML%|isPcgD8Dk^6sBuqGsX`OaL74x7)cm@uij7dX%O!@seYu_pz(3 G zJH>wH h4Ueu5t!-9=DQGW{N&Bw Ja zBrm&B`JENKO8)3OE-P{4tkYe^**L#KTm1BlP+yf+rTF}JO~UGoZn*djc#ZF!j-nK3 z*= vN96G8CXpk%o-Fx-xz>4$=x1m+s=Dmy)iYRjQA9 9UmjJCO72y{Gn )_((Elp1O?b6vgbc+y4x-cK~?>3ozWrH)| z4$g_{Qs9Q}+k*Y-9nLHaPz5d+`*8^w-s9JgTo}s}GPEkRy4V$R1-;r=Vi$Hm))M!R zN!pT)_>KQ_vo;|1(B#_x&` v+Ch8Xp$Aon^LrY%Lq#Le>3SM?>++By|1vY zY$5NAY6W+NYE 5Pb}=rP&v%C7F{=P%{NIDJ 6y%~sa({ppjZ$PLvQ&(q*FR*o5?7`iAnKcI21Ny>^7!X3e8;2_v zMhz0)B5f)nQe`9wBY2n9rGAUj |8>iV`OmYTJ=v~<38eK;sE{CsbMF~Yk76J>XOGk=Q69@ I?tFXi%r|p0!!U%L 55?z?WDf-O?o0w+V=nn zu&+M~L4!4^ZYLrR5_z~UmPv{d_5P=5i@^@zV7sJvaNqlwccWHqf~jol^%Xij3f5~N z_(k58RfX`6iyQMV9(Fsznb^s7GweQOlWvmh-c{)~La7(fJl6M+nV{T#2I6a3gO37E zmJ`j3>-snE?mDbjAy-IU>|&a!G5~U8&g4_faJ-Z4hDgIr``sU^Mw5yOeP8#je+c%O zTtW|51ZjB4T=2uZi%v-Rv??`3W&RYX!BbdN6v0$fWW+A1SE-@M{;qnr5*LQ#kz%k~ zdS6r-{EOc3jSkQLWPtu@XHZbQK8(2Jy6bO#t`#}$6#^2jFQ>lYIGKrgL3@Y=FI$Hf z_u#n2q8$YyNy_sxqw@eKgy8U|^(M>P9k)wfJxKfx!U++?*{{`wi}^jX532eomHGjP zZxwK1XPUZ2I6%SVBYJf4`_+fL84|*l#u(dBxM2CfXnj*ZA9}yDVU;m}M<;c^HOJeU zHif-dI-Cotl`}4mj@XXy9qtQ99;M~S=C=S6uDd=RJbI-($u@~Tb82b{jq4P_6vYc< z?w(s`kRvz>Ctr?r zW{oBQNB6DB7ts)|Z>;_pVgwhr_S^izLY6=L_U@4MMx3o{s{J$kuJTi;#(XngWm-mZ z`x-AeqWL)kPoZ+lskcMF{ 3rZSlCn_KYtMEltgB~Xtiwtp9tZe#8blG9bWSL`^<5$(KLd010& zL%uU_gs7%opPCN)mbBe-9uH(xQS&z=TFx%Mze-#fFA?6t_t|w?LHehl_rdz5k49lu zc~+)m=AW&nF2)AxD()+oGzW8LhDHb2cNnqVm${4lUB$@>TS0?mIklw(XtC&Ld9ye! zTfZ>~UNVJfggLl7^ragXClUUDcorNgwZv<}D9?tzOrq`3ucCZ>4h-8c5kNwIfIq=? z4YUqaM~+!Z4qV0Ne~IKDTL{S5H~YO(1$@9>p5W(m8MbuEOMAj!-tfG$a!csQpo~6p zMC&h$3|Ri}Zr03|PKR}Px~amb)zfAJgip~!1e!N4M3lthj9^Oo3UK5`iuiQc9#9`o zm57v$S+)eCUQVAn^{TbCHSQW7y0AVfmI4fN0#3J*$=G(4o}-+~Be$WZ3G;mnA1O&w z{{E9zBtengxx301+B5CsBPEtuC=YA7{!Z`TMCXlwuGMSd^3#eGlF#8GpL;z=^PrJ& zo%|LlhW^$iffaVRr+alrp``=D!$?Y5#(wfE3%UqDw5LOrZO~u9 + z)XV1SmYmw!-1ppGc;Abo3q#|*nwQ}{zH9U(rud4M#`xO^z0|b}OzqjepcrGs2_kM6 zAAB{iLo)9X+7$P?p}PDR2nmJxPnNPaDYJYoviIJW^TFV_1*Wz$=?e?>;l3Pl6Q~^- zs1L(^TIV2^Qc)8G@=@xud`uHubdW#?@b52OUIY49;!$f>QGRM-g^!tI*qDLc)2-K} zt<74SjtB%rLsM}HaRz58x4Bexc|7MI3orI7aX%QW{HkttS^DNYdCYp!c0a}6Y*SD3 z8FpIxXlYa+Eu1<#&z8w1UH-l9k}ma><1#lEN2Po@`^C_eV=H_-{B9ZW;aGEGuc^Jp zqU7am+zgiUJIBWMS 8&=py-$hdhD*U}Xkqedxg7AsA5 zSXZ#qWp&Ec;kE%9+f%tL6r6xB$;p`-c3KmZ5<7v0Zf9W-ldq6KhVg0WN>f7`CG3?n zWBD~ot04o2@;#=p{;OBnk$x{bCZ%Mi^J; d1tE;N8)I4v`+5wW|5_RD9k78e%)uTSD)1o_SK6b98?mVRxj{HkN{t zXWBHWPLEgfe{*`mvAXh2l}DbAYufTO79IY+UsC_1B0~=RV?kdD{(QlMDi@|v-7vsF zp1GA*qA53o96q+M;crEygJ&U+Sfg}{D_Co?I`NTjslV4yjp 6F#^+6$Eu=(PqJVx!jz2HKj>SHig!tA^swm`?g}Z3oxi*zQ-BeLwh_L} zZt^}`k~88bkjQ+KEs$%*w;V9bM`p$z+iV{%pRU4NJmy3k(7XVi$UUKK2j3?C&5cQD zkD?SeYu5n7b0S$lLq`ZkW-to*zJbh@6>CGFzTcMZmQFmt&2^y_A%PSg-G>L5ep>6! z?y5YL%!1nOR-D-pKP}7on7!Tf%najwp5NERnfo3(-n7aPM