From 6cc4021017097c3f8148b57e932981a183466188 Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Fri, 17 Nov 2017 09:43:18 +0000 Subject: [PATCH] Framework/Uiauto: Add support for Applaunch --- .../com/arm/wa/uiauto/ApplaunchInterface.java | 54 ++++++++++++++++++ .../com/arm/wa/uiauto/BaseUiAutomation.java | 2 +- .../java/com/arm/wa/uiauto/UiAutoUtils.java | 35 ++++++++++++ wa/framework/uiauto/uiauto.aar | Bin 15895 -> 16894 bytes 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/ApplaunchInterface.java create mode 100644 wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/UiAutoUtils.java diff --git a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/ApplaunchInterface.java b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/ApplaunchInterface.java new file mode 100644 index 00000000..4b2a499a --- /dev/null +++ b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/ApplaunchInterface.java @@ -0,0 +1,54 @@ +/* Copyright 2013-2016 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +package com.arm.wa.uiauto; + +import android.os.Bundle; +import android.support.test.uiautomator.UiObject; + +/** + * ApplaunchInterface.java + * Interface used for enabling uxperfapplaunch workload. + * This interface gets implemented by all workloads that support application launch + * instrumentation. + */ + +public interface ApplaunchInterface { + + /** + * Sets the launchEndObject of a workload, which is a UiObject that marks + * the end of the application launch. + */ + public UiObject getLaunchEndObject(); + + /** + * Runs the Uiautomation methods for clearing the initial run + * dialogues on the first time installation of an application package. + */ + public void runApplicationSetup() throws Exception; + + /** + * Provides the application launch command of the application which is + * constructed as a string from the workload. + */ + public String getLaunchCommand(); + + /** Passes the workload parameters. */ + public void setWorkloadParameters(Bundle parameters); + + /** Initialize the instrumentation for the workload */ + public void initialize_instrumentation(); + +} diff --git a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java index 912c3e1a..5e39ce15 100644 --- a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java +++ b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java @@ -85,7 +85,7 @@ public class BaseUiAutomation { SystemClock.sleep(second * 1000); } - //Generate a package ID + // Generate a package ID public String getPackageID(Bundle parameters) { String packageName = parameters.getString("package_name"); return packageName + ":id/"; diff --git a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/UiAutoUtils.java b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/UiAutoUtils.java new file mode 100644 index 00000000..a3a88af3 --- /dev/null +++ b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/UiAutoUtils.java @@ -0,0 +1,35 @@ +/* Copyright 2013-2016 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +package com.arm.wa.uiauto; + +import android.os.Bundle; + +public final class UiAutoUtils { + + /** Construct launch command of an application. */ + public static String createLaunchCommand(Bundle parameters) { + String launchCommand; + String activityName = parameters.getString("launch_activity"); + String packageName = parameters.getString("package_name"); + if (activityName.equals("None")) { + launchCommand = String.format("am start --user -3 %s", packageName); + } + else { + launchCommand = String.format("am start --user -3 -n %s/%s", packageName, activityName); + } + return launchCommand; + } +} diff --git a/wa/framework/uiauto/uiauto.aar b/wa/framework/uiauto/uiauto.aar index bef2216e7f4692423d34651d320d9b5d00cd136b..f2a6d4a4ed950397e6c81896f1974ac586ffb084 100644 GIT binary patch delta 16400 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 delta 15383 zcmZv@b8z5I^zIpZV%y2Yn%K6JiEVS@d}G_TZB1<3wv&mCeScfKb?e^UQ+4X;uG8nK z{-?XDtNQa52%75sLs14C0uBTO1_ne&>rbM*fB^V^TK@wB6!=eNx&$9lakxQ1+66&C z;6Xq@jBN~^olTt?tPGv1|3W&DYtC2yG&5shW>pDSu0mx^NlPzAW&JOb(((r<|BI^X zoM)TX_bHd}Mr%Av%=mcASA0TdHAzX#y`z~H=7r%m>tLCN~zj}gKof7dO_mQ0<68EC^jIMmx6aFjF z5x}FE#cEnK)31>A@6oUKMFK9@yw+eoqG&AmB|^u5N*hJ_=rkelOWlBLAh( z0ME`NlVAFq!`opamiV%CxaCkOn;7>IFRNMkuN(rKcfgmAWqCL3#!rb1arjZEwhs|U zX=8Ybk02yR6h#SPb^sda zF@0BAxNYWjj4YBfJHihibUi;bCVb*B9R*|vhBnyHnR*Hp3YAga)Kt8kDtj736r_x? z4ie@aV&h>*jz?vE2dErG916J^ZhDO{^HzU%l%W z`WhU}V`uIl$Gd1B>rA9{gPZv!Nq?{=#KvR+Flw3Z7}flK)#`tHNJnaff# z?ig10&{^hWBJZC5Tk&BHSj*@oEqBM(&uWEdsoJX64)naPIGrcisMTm}P?-jvq7W;5 z<>*i3PAl6l@;cM)pG+YfE23Rg2>3a|v+>klSj)XpTa2?1=%eEar$8{dEf4aE*9jZ_ z*`OIl4ET1q;wsC}el@vwWoQul2uDX=RX;xOI=1SX4`S(BUU7Xy z+!w+YFIP0ddj!%{MQX)wjfM}28v{&+bH~#Y2KZ|EV}u71hM zHwbB*MumyHW1+lQq(BSf_7Emt%BdnQiS7g2Xr(@e4XD1iKq0wvw*&z$Fxz~OCwY-Y zBh}ngItnkTHE2p3;^yLy_h+}#dK!-w(6L3z=_i<-*xW+Ha=tBnF{1YW$OGk;p|(|* zi84}TQ0t~_sfT)6S!4_e#(iv;2a^4lhcuVl19kFv2^QE* zZxk#NVISVWo`o}%LM3(_bH5=QCq2ZQ=Izt|eW94ed?T7Ev096eaQJnl7shv`Z+{Ek z4M`VMVw~prZT#x=R=LJc735`+49ejgZp0_)!ZL37AW8qzLAK?`fdlLG^{{k@MYdhi zsOPk|y+fzp1mIu)mCI`VpcOlTAXiC7$W}f-e}IC(aGog}dhlMrDxoeR9V0a+bu)si zPRlfr>0R&Za?_Lxqtb3yNBKB z#c16+XIZo?o=c8fDXx%VQ)Burvdt;{(P-N#%jM>C1q^IeytxVg8)RhOlG+>Fs+_?V zQ$?wA`C;}CBh}8A^Yg6eef?=UJ5pL=%Q3ULTIXmJYs<-I!=z+yqRwn`D7Hx5rFU6} zgG&})h{)L~QS>C8PH{fCo1i4KtQ9=4?(LE*pcmS;-yU6y?OZ^O?&r?|0ts;atQuE- zowW*cLjb}>Wt(b!k>9kj=qH=V&6qLqX=rfrWp93IBwcV~5J3xP?<96OtYiJwS)>gN z76}S1D!JB5a8}C)5B+m|X)J$33+F1Xli%rmx90{FhFy~wX0z8MnI6=_??NJbEc}^N zt-+Ca__p6kD?ddi5MqakBkdEl-_M8C%4SxH4uEeHm@x=mVBk~?4|98A(t`!hd2>h< zF||E*)*a4kU%CIw33r=AL^sf?G04LtM7@O3uG9pJ56ZiLj>(cPbqP zSwoT|g2q<#Onf^|Su-5jie*rxNyg5q@3hz?0I-JC=~7A8x->^ zX@gj=CpvPx?h?e3n~LH<@6fg+O1m-wwrVOpJBJ}&3fxEYi>zrue|+c1HmQ{yJcs@z>u7KV=~OzDvFnvz zc5@&tTHQs-ymbS$abV>kY`b=->BMXoJ6((Y z(MqL7LYKAjuVn4b{y4H4^ zu7KqEDX?`Dj@4*#I3kpBNk(#i!ZHv`*L{A9Mv z9VOa)HVr3dwiGrb|2*-_|3uPa;NV;Mf%0z`+okuUGnQ%o5d4`s+uDgk3Y<2@;&%x2 zoM91#ckQ4A^W#eh7GlCDx6TTk;=R}p_N4gUWAcK-<3&tkUnQg+bbLgoH*K zQQ{5lj2z?!1~%Vf1T!o@E>1=@ z(Q{p@GtO`#-f+gXAcTXk5Gbdt``_hd^)kiH{UT65{Z6F$9XkK^EG9prH#5FxUuLg3{}K2WTkxo5 z{pjOlB&>2Myx!~c#zbi~w-%s(NSq2{!xzq8DJ}<y#&8%Kn8=>li_t+BU)2obZhX9l$f^iHNUgsbEBv8?O{&7&3nF2YDp2`+9l7m7u) zD1;hA;Zm5~9~?oN-VNVjV_w>W5)O1 ziCWY1q$a1}#DfUTrh%s5ECMjZk8v;YT%lPU1Ul2tvV?s!GzxyDM01~qRh(t|<-d*e zqeV#!P7W*>Lw}ZbTFAZ+`9Y$v%)*yT464sv49n|d;VJD(X!oZbZHuH@T?xTLlNs4^F{~7sYUVJ1V7s-S`tgN_*bptAaWIfmjjthd}2oaoJ#L3b` z`7?n#RW`VS`-42|n!3LNB`)pxA=Ez@n&S_`9R$z8-oWh^V;nd>cN}Uz$TkPXfI&>3vOA)u;uGAiDPB|f!iHzyBJypnGC)ptl35?3Bo$&oj^?>kWQ%`CX@e?Oo#JUYVLL2xUMnjeTGUCreDQ>(YhatfL24;yqu%t$ z3@m^`7CXMVuv(y^D-}{5rdbl%+4O-7z<~GY5I7>)#gHRWrf3Y23uUu4ggysDMB2C*4PEna6(MzoHwilaOkgI%v6mv_Q=koxd6u3IGS z=px_OUOKgC6y)7TPGSI3tOaeS$KO{NCv0?>=Y*o1ldZ(hV>ppT;_|^6EIFe9WI%j= z?6vbObZg!YnKr6N+|xx{JLLJj6UhWg#*k|}piyg*b68As@GtRptbNeSbyQj$WZ(3W z6Tv7Abh?OAH96&%plV`qRV_WK8$#n1Ok^8U>>MvTKLr;XoPSCuIiUs@6JBlEx0%on zWL-H%65%V-gezE-PTsG#aUK!_OcS!TrffQzYUp=Bw&M>dx6-2H1(**bW@;6J-Reh3qU68jKytTV4(zvN@z@MAU_3A?bBDq_JxIIWv0+WOI+Wcr=#fush`H4xQk>q z^?_iZ`9fdcisobKns{kn1Nz+I5xG5X@RGS#KQiRtG?cnwez$on^B`ONhZOk1GmC*#*&fy{gQ@pJch*6A}@ihB6i9Gxp;M>w);WQGZ>;RA3e5!*wHJ2Ow?b4!X%x8t~j5o~#5~xICZk<~? ziNW1@r?Yimx~%Xta!er1?ui27h>M_TDL9hfjaH}sdP)faYwRmk>kr~h+h+C<%Lm9u zn8WbH8$UE4Qf>YexqW8@_wpBMO(L3xWC=5eEf9E&@6sFsemL~CtyXm7_k=p`j017RQLP4jLR=$v#b{evz3>UWQE{i1T;Vs~%}SfO|%A0r&M3m-*7u#Qk!N z6nrC^!}wSM{_JK(hlj_1?)2i8yHxqnggpo$+TyT8F!V+q5{Y+IL&c231cPB>Q-*A{ z;_*HwLK8H$RJ-uGFnz0q``Q zg#bpOzH4MlS)h^cRel`bxIh6pQ3=8vBc1;1QnCX0@TZ0eC6HUBiDBNrPAmsY>jGHR zb%?(t&}-(zlts6*)l`JPjAp(n;t3aK#MxR&{eIKt-!M!4{H3su206~}HScO%>xbZlNG7#_Y#xCSTN~ND5ttwO8=kBDrugtk zN_byq(7T8BqDZ-3I?LyXOFFD_)l_XahKDp>+}*|hi6NIV_@uwbmSN@_jCkI8oq==(P(_?NTo<3GI69+`Ex3O^eydRN?jTAtdI8K9B zz?-<5njpwx@Z|KM$3!b^=f}r6w;M-R%7Z8)6-8l}#kp%~El4 zU_k%CKFAKe?Z8x3gtYstKvofk5?;x17RnzY-f>LC5VI)W7oOGK3(0S*fP~bk_*;Fb z#S?Bmg~f5UN!_Z+vSw)!-3-)jB!DY)l`n)ka>M<>?WRP0pQw;7;Mk9w{>$h@;VNW( zsQt$!Z_TjWC;$@o%?RA9K2^1F1*C(gK&m}F?j#wP#o9fZF|Vr=qVHAjqR?D*~w;wvZVW9dMc=K(2rK}I9d zZV{es6h+xq$;W7bo2#86{fWU;J$bJ}lI%L>3lmKG$`T>yq zDjVAJMGM7rtEQF;MNTyk*ojIT=LYIlZhd^f(qgvG)7GIz>FmR%9iK>!2uh^h(^ufs zX2Pj$m;1xVY7H^!tDl07mvek?4||1|-skSKUpiEK**K#g_Xv2O9_Q4LK3;o*BgoZ# zMY}gTK|FVRplt1S=Ks5ECZ?KdE?wW8|0TAaz0i6;;FU_$zjTK*HLBtD!Kw$-{A}0=Giu`~b^~z9?RGy@hxA%=#@yBVr+eO> zH{_<3@;2g8?2c9KR{PTX?waXlD=4yFuTrnmCDQbI_2ydd+yTwk2E4`;nlPM`{~fO& zGnbR8hjY~sGC_J^c6cawKzH@k2wy-JP3{#Z(Rkkgb+*--?-$Zlo-^YzDoV-qa0_w~ zVh(Gy94~;lRAu->JV5k74N1h>l<>%UMSe~Z0f}mAP#%ggPnYTPvIqu1M03cONeErJ zs(129&Ilt}=%*!;r*Ig+>zX`PDP=d5Ha7dU-!E#lQHTBH2u#OdGt(Nms=xm1SY4L0tVoHsJ};QPUU8RNP@U z^~Uth#bo#6S!>`%mDNvjfoBCJa;%v#@Dd`%<+4IX=m@BotSEZ3mI&Rrl_JqTdhK#4 zRt4Vn!L0d4z(#l_k~N9+rY$hM9S9RSOb_}~VRUS^I*DZb<(0?oG0aNdQCkh(pPiw^ zi|}r_%1Sxy+tK#3RLxr;;^^HOA?+9cQ>ho)O9l4!(lJT2iPC{u1?G1yt-+Cun8J-`zLDl2OmT2Ja2bm zS2ILYFyMVDI_~?I8F|@BZ!)TI9he^Wq68iWr2}tk5j3D#?oVr_uSrud&JMCJ2GA*2 z>;4)(ZbKmfnCTyxOu1w?1SNu#dhyk(P^z9qj$z7hKG%yG>F1NMDzU`>TuMj%T}h;d ziNuiaWp?xr4&fp)`WbK)oK@s#+E~(K-ByIVq*UqRJ<+nQ6X1rJiDA6yeP(lCgnJAb zr&p3sL~9U1^L+jlb4l>S1~TKfF;KFFGevP0NJ;wi%>$NVU97d-9JXk;hsG z$0kOFbYg4j~Y%M-`08-Mn@?!m~62?&I=1@itt6BgI!g6n9XnuG_EJ~R-$MW>5uR*hTGhY zyOL4wU!Min&J($g_8{8}17M9?2(x}2S{QCnpT$MeY($O0G@l#JfoO=cn1GA*Go_RV zT2M)(?lqHhz%|0MlQX&eK4D_HQ3 zkL%~NAQ$zAz~7ht9d9qmNLX~NR0p{<^4CFu%ujv#6rLV}(fHpN0yDpcW8R{h@W@JFmTp)jV3t}y)xx5}jO|Nx7O|&ZY7J;p3JexC%cQNU- zw}!TJgk?>ynsL)2bAI7S+U$Lf>4q&OCXdmyFoOB)A_2`$4Y>Qv_y@s>$JKvCcswE10fF8XUmnAE4s(heGIqbhII$ty|7_K0NSVdZw` zu99YcsXk~?*ToWvYnd4pZ0H+zykbRO)4@?9BXt za*77J&AFArhPF90Nuss7rqph)pWe037d6o*P(&lq1gS|q6++Ycow%~@Sgnv({-5pB zG$ns;C*fX;0Bav454f<0rRdv#!_LU(2H1$&x4Kv?ozreIN;&l0Gbq_&#C$PjCZ z=tS>)Pdp)%wh+c&SQJ6s561?z0ncaUuRb2Jm6W9*1bh!x6{vpWSjwJQq(N}zRx5@- zv83?I2gHzm&7qBmSO4nq3TMmA;|z3kti|-DQ{P`Y6a=jDJ?X)x*JXi}=92b)!qGHa z-HmZ3!F1|%W3D#nww!u+Q9|EQ@`UJiK1o?A&xlNL42mzUmFm;(2$~wEF0(<83`}1C zd&E8i;7&S@%xs}4ol{z`c!bvEa*U?$JSgH^XJ*FbL$(aLmn}`sN-)D6gxHz*k5-O^ zP*|$t?#D@O+UPH$h1;Rt7I@u3B0RJfclRH*EqnL)LS0jypyt`ngnbbL-g?n=SRpC9 zpd%_ip;dqK4<8zRPA#XXlQNvkt+2H*zyeHPfS(6~G1ukX3nR0PN{5Lm;;tzRBRbdI zx5?F7m(<74OZIfP+euo9Z-TU> zS{_5VKRAzD_s^)%x|*uz*!;(?0@6bWMxd9OlS5Egx~MNX$9imXRVRG~8Z4h;*14!N zf#9eM(^hQ$3-r7+XTxvd${yxO4V>Ct8`-5?m<<%Anz@y39Jf$)*pZmbs?rK|L9&X{}Nc6!#Hv+=v z*Jwp<+>ydBuNiD#P{QkKtH);~{7nKAeg&Exu~pJ45a`D;F)<(SMJ12SHRWWbe~hEe z1NPdUJbyy=;5q5WB0D}u&rxi}<{c5RX8;|%`Cv0aa7Ur)sSU){L^u!iqf}u4qD^Tz zhCNIk?&w_ShftJdT)bIk`t83csOgVVVc3rIx^$tAKE6JpMQBZ(o(f<%%}9?3H(Jv} z@a$|EcWxF^%!CL=p=U8?oHshS5&3_l?@>3Z(3SA26bU;166131lG#*^V*o6creFLs#|uV zrSJo$FO!P#tid!W1sYD->N8d2 zgKaxOsop10U2mQ-(yI)pwpX%Odsu^QFyk;=_Xf#azCak{^J5n{K zrx*cQ_Po;y7q<5vYjV=6%*Yh&XUVc<<{{(R_H6KTDN>=C4sclYMH%*iCYfV2Z}Lm} zm^@ zv0OT`0IzjKZ_HKXEh!&!_L5eT^2BN~kx%}MMG2yQ-dJEppH?O=fpl@}^JV)#)L*uz z8+24sBS-&6?id60vdH0|&3h{|@tK1Sa3OvEvzmG-&a?%$Y9vl7nA86<_A=t&Lq~<=H$x)<1}M4w_|YjuNH>l~K{_^^XJzT*p?h zrKsU{#jO3jIzcVj#K8JBt!g}OR#FZ7yK8Z=f^_^(EL#B}mm+DKO8O}oy0pxSj*VA; z8!MJ(Iql(X_DFpqbTy>@Vk{(1&5DP9SkQ)%6)d8x0V#GRlb4}XY=$D;J!LzzIdgP6 z$ParA>)Y(;1Lpze!?UMh7p`0X#Bh3IQn!s-qM5s0!5(JHn@G(KMSbgmBxk~4_Aoc< z=yvl9-ERRnpbGS4?G!JhvmLti2vz~^DQo^SRB(H5U9Js zORrE@Lw3F3(pvABpEro^+Jx6@1IWx|+70;lG;V-6EazAO#!mAY4Qcz#2M26!>&;$L zKr)e{>S0l&b|idD;%;(va4!X}=JPT7pz+02Z)g_narAj_4dBkVq!bK+Rc@ZAi-VWe z;IiHpN!XdXy~N$vQt;#@Kw%hv>kqX|yU zED~qAf*9)?$$Za;e5qwBDj*~us`gO-E(drMo%!H%(|MRDW4`x2*m%_LC}hiR=xql6 zwl(jFA~>}}(KIQ51!$>gMPwGfIy)1EQUe4%DGJGCgJqC0aCpIy)zIu>ry8l=Ffnjr zuh-Cx6bOcpOZD<*PCuyl^>d<>-ZrriiBCF35mscw|GlwnO2{uJX_#}r9jZy=Dr%pI zg|(O$Y=V_W2(CnY9?)lihcx)?Qw;8k4sE*-L0!8uenOxhX62C<}fCQvqk4hksA7 z3SpdROs^uD$KV%b{vMQLr>Ol)82QPCKN5+35CigYg5 z&8H$y;;DVGPoey5{h3T>T?Ej5DXw=C29m6QyS@yDkvHrkCV(BLyFyHnTu{CZk%+ZV zA=eFz=hV*&t#m}_qRvyE$1Dsne3t2wjPMKnL|gLRb%k*2ZwJ=Il6&#O;>S-odJ4ln z!ouK@KM~CCr?2K=7=p@V#5T*i3_EbZqS@U zkcLh5*vPVhtY4Hp>Tr}8f6$_{Rp2U$T;=5ssH3xuj}@f$v>9ZRz&R@afbsXYnadFC z;Q~U%ltojPvh}MRL0}ej z@3?vkVa++Jg?A7r$4QBjlo&Ln)Vm)_dt#UlOhm+M<^^I%8}PQPh*6f1t>0D)7goOD zZ-C1iB26I&;_^rLsZXqagLnF{nfVHPn&OMXIZe)MU&sjla4s<}c}B?f6`XOGD{goE zb49GSm27KO$}vcP$g{tps-u1Tgq?CZB5sI}-~!t4SmAA^dpI+!uMkYJIK~EnVV*ll z%itGSx$C!=lhnfCutwjQ!VPS31!`N{d zZ^D?Y(QsWnu_Zo6#(tXSsws*=gleZ}VyKGcXxm*zC=MU&llp?LA&^hAj9) zd(G@1Xie;yZQ!X|M<^3T#IbCOQOjp@~h@Ddzp~{8E#REELhfU5j zVLhh3j8a=x>J#XqpEoNo;O6A7@gJ2(tm(BNcBt2`@eFNEB?VB7oHkB5k!^}h_*5f z0kK^uPz=4`K#V_*Zbquoa*Q0!ni$i)c4<6jA6=ZX!_*U(^ws9DBi(Qs(Wzt#YdwUe zT}hK~X9hhbV>Y2x+{C-H=DG+CrJHV<8hxy|OsmJF!qo=4#r@P>ebDbP=hnXLit7#p z5TG6-mY48JclrH&Q41C!gr;{K=i!ujKLPyX6l6zlA(y|6$1MIl2@DE1O=1dFU9-{U zDuwPcGdr(^-N&jUs{|1*W}+TBWIha{6B(8fz89nI#t0XL|0*shb!c}oL;9RC7x^+V z!FD6y_-lrj&a=$Y(X8e91SH$M?dc_d)Y184&E zg!xRl_Jtu}@7r3YNnIV;$D35euCQ?5G_PF-BP+J)@=h`Ih4jz$p*vxT8U;tzWV*e$ z0?8(Od;1r_y21Yu@}8ifJ`&VJfl!F?hyIlbFF6zTS6PRMajS=0wNHq|*3-Zl&a;xE z16IQ#=(posJ|$ucR?n8m>29946QHZ^#c%BuH)2bl%@HY5a#wPbUnS-vz$7zD*_wgE z{@Sd7 zmEvK3cWhF=+of~gHOi&B2>IfEN8Gx=WdTx0a}x<$J9_U&f@)6m6LVeRWWXt&a<@i4 z4zpdT26UON1%iq2%cV*^aQJD6QLz##CYk~cPZ5JYW{qouV-yZKwIn$kN9;QZQEkMF zZq?qmD64%0%Mv3}t&mhr2u2NawwA17FG6!3wH3l_quK#NlpXf1BPfEip=`~G_ZC#l zhdrLb8=kbXewituZcz0}6oAb}Qjq1glX!ZFi!UIdZUYJ7q8%@5cC$KkSA{sXqe;)B zH{Zi26^CZZn27YhP&sehC~Rx~BUr8&k`^f0 zE5xZzd4_n>UWzJJ=zW~9`x!GbFJ;yhu}r9XF^=QSmkirA&xMI3_8g>cpPD}=4rQ!0 zYP%=NLw_`t5f;J=O#Js|E^ONBK-j@Cx2?l0*qeDo@EVo$12lY0-M*bF7d^L6mat$D zhh;-D2!c_fOolei;+o~LI}x+?RiM>3-%kke<9TR6F$`7r9L&@~BVTIlx`kJ>E( z4`FAuMnaK2kskp(#bLRV=7h{Vl1T8N*-MaKr6()a6*El^bi{bx)~SVyEs2#hCs;!h z`B*3USTEN4;U#=scY2?by597hG2o1TzlCkFB+%r30nYkeY%ld+>rh+4-XNfzV`ftqwoQkB zH&rvzIF86ala70UjrkQCUR!L8y#v|2$MXT1QqpQ5swkwMFnNZ_)w@+Ad(G2r5pIUQ zx7mh$4y)N>BGqgl)hsafkF_T^i$mu+luW(mu`yw`1KPSKhEJm=hDYlfI_wzDvlrf@ z7nlGmMD|Y78vD&$gjT4W|LiK>h&Q-X-*A`z&)#J0SSRfG#Yd7MSegM+h5?jfn*~Ao z%(&t3`@##g?7hyr%u8|NN~Q?Sx1VcJbJfGhUYW$5B|x1#AG2vp;?Dh^L5V#8>}mn7 z7JJ60cA3Q@_4KaqOeBmfi#2fb?mA?*2+(7_YH>-w^NXNKX$idhIWC1Y`dRcT*{kfR zKnPg5ucRz%W}maS7UX#Gob_o64ALx)B zJK&Rnwanp;kn=KcUfdULDQiaIIC!Dk?(gGxKH5hPjKnN8{UZNmqg^vdU5SZk2OtpN zL38w1-?=S5j5U(-bb5P01XS zx;31SWjBVY$RMZ8fcO2mfCM+}8#xTHHS1m6aeKkZ(3ZZvp{&fB({6MsN6po%t%@n7q>8I){n&s;P<3L15l<8`aw(vMRm@^1{N2?5lh-}l=t2{Tg<%g3wNh6 zq?y)ByI9t%ZcKF#n08s@6tsmEO1$%0SrAqKX2Nzg6u;HZ8dDE!^Ri>@yKm{WY;ZAT zWz}*BR|M~UU?mt-?Z{ApeFWLwt@NDb$zUB`iAxO8TonPjIf5H`j6xxWGk~c+&kbQdYmJUq`#Df5tA_&IcDDtr*ZpROGqf zwF3I-`k2fL@y9stj1)ms?O*T3(QdY=kN&e%AZ{5JYmN>()=V_64-8c_rw5$8E=@iA zxj~a+IJpOI35BsCjIP~0Kww7g7$e@o*|?m_&pgkpECb;O zlE;jyPBSCID#&RsB&ySsX3h(3w9#9PhXe|Kaw_wiPk=nR)^q$Gko@|acd+>wy@e$*61nqRIo6IW7b)jr^|aM76kcXOR~uVr>$?FuwhbMsYiKVNt$+vr+T-qNEM|&i@YoyL5`_OBdb#Nu1XVX1mdoWWPYrINOrGk$c)*-!3!*bJQ`VuQ0jSY!C5% ztK+)xkHbkB!J2#Do~HS&OJb6`<=^la#Z;ZG>_x&g0vizzAO`(UdLtuii2P3Ec}>XB zgagn|&(iTaePte>(u8?RyurL%Vv}cR)N5%3(kPq+do|7%k&o2<^_Lq5nwKmY545#+ z&&8hk4PgvTXs57qBz0S&X!_J9xpYQA2L?Q#cwQgI-w)sPYb;psE>{;u-Yg{q1kc)- zHL-`8*nPYf(3*iG_K`yp81Wp;OPY{cB`#7fxgrz#U56?47SgXS{ZwF(tYp#N!=~Ek z`E&5%pab$vwEQozPDIq*TjEI2wu#aH)!A#-2vvIGuiy4fco?p(^;7^hz zk7oqD)Uo~M4z6Zd02mu zARZ<938V(IF1ye4tQWSEnx!y7W5m%SnmNc*GGkt<#zV`L9%kD3ATs0E@6HQU2Q_hO z$QR;(HR8}7QhZQ2Vs6w%f)l^QyP=suv@Q&&&h~x=Xf_sjGz#}MSL|%`>(#lIl&!H@ z1?-L$(Cj9=C?TF%83Mx0m-@{1RQqRf&CuC?fK7rIzWU!ct$n{*0Ysch>7lWEK7U?C zsb&+7G*03Z^724r8x&VT<@tXLE`)7`{&CE6qg|clW?O z07QP}2K@I6W&b780Q3c*c**^H^Cf;Y6HPt|C^h=O)h>QjE1la1ec7C!d`8AmUVcwN zKilil0A#P`g)EQy=^0x%zI@^34B+M-{z5MNWD9~{EKpR4#UF>1ss0oYHf z+Vh>DuSTlN+Q1~g*B!ppZ=v0pvz$9_MzH$T?q`mJfI>|3o!o+uhknd-V!|xab z#M=>!r{{_NXF=z?FUMy9^nb@#TLnn}2V+f)6CnS;byI-ke>6ex|CU5@L2~y0rZSN^ z$OT0IQLX=zkpJcX8%_TIGg4-7ad%Oa0R=+`|6hQtj36GUaH6>&DewOn{GWL2|1!`5 z{oi2O|I>zE2v07H2L!~>(!_@G|0v4*j|hd