From 5362d21d41ce64fe5dc6c40f1c7a20fc1e626885 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 20 Aug 2024 15:10:37 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=E6=95=B0=E6=8D=AE=E9=97=AD=E7=8E=AF-?= =?UTF-8?q?=E6=8E=A5=E7=AE=A1=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workorder/FaultReasonWindow.kt | 14 +++++ .../workorder/TakeOverReasonWindow.kt | 14 +++++ .../workorder/TakeOverRecordView.kt | 34 +++++------ .../workorder/adapter/OrderReasonAdapter.kt | 54 ++++++++++++++++++ .../workorder/adapter/TakeOverListAdapter.kt | 5 ++ .../src/main/res/layout/item_order_reason.xml | 11 ++++ .../main/res/layout/item_take_over_record.xml | 10 ++-- .../res/drawable/icon_take_over_record.png | Bin 0 -> 25971 bytes 8 files changed, 116 insertions(+), 26 deletions(-) create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_order_reason.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/icon_take_over_record.png diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt index 50ee45482a..34186efac2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/FaultReasonWindow.kt @@ -22,6 +22,7 @@ import android.widget.ImageView import android.widget.TextView import androidx.appcompat.widget.AppCompatEditText import androidx.constraintlayout.widget.Group +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.iflytek.cloud.ErrorCode import com.iflytek.cloud.InitListener @@ -37,6 +38,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.tts.base.SpeechUtils import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.workorder.adapter.OrderReasonAdapter import kotlinx.coroutines.DelicateCoroutinesApi import kotlin.math.absoluteValue @@ -88,6 +90,8 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener{ private lateinit var tvUploadSuccess: TextView private lateinit var faultReasonGroup: Group + private lateinit var orderReasonAdapter: OrderReasonAdapter + init { initFloatWindow() } @@ -131,6 +135,16 @@ class FaultReasonWindow constructor(activity: Activity) : View.OnTouchListener{ rvFaultList = mFloatLayout.findViewById(R.id.rvFaultList) tvUploadSuccess = mFloatLayout.findViewById(R.id.tvUploadSuccess) faultReasonGroup = mFloatLayout.findViewById(R.id.faultReasonGroup) + val linearLayoutManager = LinearLayoutManager(mActivity) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + rvFaultList.layoutManager = linearLayoutManager + orderReasonAdapter = OrderReasonAdapter() + orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ + override fun onSelectReason(reason: String) { + + } + }) + rvFaultList.adapter = orderReasonAdapter } @OptIn(DelicateCoroutinesApi::class) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt index e5110e6f51..00592cdc3e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt @@ -22,6 +22,7 @@ import android.widget.TextView import androidx.appcompat.widget.AppCompatEditText import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.Group +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.iflytek.cloud.ErrorCode import com.iflytek.cloud.InitListener @@ -37,6 +38,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.tts.base.SpeechUtils import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.workorder.adapter.OrderReasonAdapter import kotlinx.coroutines.DelicateCoroutinesApi import kotlin.math.absoluteValue @@ -84,6 +86,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene private lateinit var tvUploadSuccess: AppCompatTextView private lateinit var takeOverReasonGroup: Group + private lateinit var orderReasonAdapter: OrderReasonAdapter + init { initFloatWindow() } @@ -123,6 +127,16 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene rvTakeOverList = mFloatLayout.findViewById(R.id.rvTakeOverList) tvUploadSuccess = mFloatLayout.findViewById(R.id.tvUploadSuccess) takeOverReasonGroup = mFloatLayout.findViewById(R.id.takeOverReasonGroup) + val linearLayoutManager = LinearLayoutManager(mActivity) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + rvTakeOverList.layoutManager = linearLayoutManager + orderReasonAdapter = OrderReasonAdapter() + orderReasonAdapter.setListener(object: OrderReasonAdapter.ReasonSelectListener{ + override fun onSelectReason(reason: String) { + + } + }) + rvTakeOverList.adapter = orderReasonAdapter } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt index dcb6d4d8a7..035bc9c793 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt @@ -2,6 +2,7 @@ package com.zhjt.mogo_core_function_devatools.workorder import android.content.Context import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.FragmentActivity @@ -38,6 +39,7 @@ class TakeOverRecordView @JvmOverloads constructor( private var takeOverListAdapter: TakeOverListAdapter ?= null private var clickListener: ClickListener? = null + private val selectedUploadRecord = ArrayList() init { LayoutInflater.from(context).inflate(R.layout.view_take_over_record, this, true) @@ -62,6 +64,17 @@ class TakeOverRecordView @JvmOverloads constructor( val takeOverReasonWindow = TakeOverReasonWindow(activity) takeOverReasonWindow.showFloatWindow() } + + override fun onSelectRecord( + takeOverRecordInfo: TakeOverRecordInfo, + isChecked: Boolean + ) { + if(isChecked){ + selectedUploadRecord.add(takeOverRecordInfo) + }else{ + selectedUploadRecord.remove(takeOverRecordInfo) + } + } }) rvTakeOverList.addItemDecoration( BottomDecoration( @@ -102,28 +115,7 @@ class TakeOverRecordView @JvmOverloads constructor( //一键上传 tvUpload.setOnClickListener { - val takeOverRecordInfoOne = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述1",false) - val takeOverRecordInfoTwo = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述2",false) - val takeOverRecordInfoThree = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述3",true) - val takeOverRecordInfoFour = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述4",true) - val takeOverRecordInfoFive = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述5",false) - val takeOverRecordInfoSix = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述6",false) - val takeOverRecordInfoSeven = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述7",false) - val takeOverRecordInfoEight = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述8",true) - val takeOverRecordInfoNine = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述9",false) - val takeOverRecordInfoTen = TakeOverRecordInfo(System.currentTimeMillis().toString(),"环球贸易中心",1,2,3,"lineName","描述10",true) - - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoOne) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoTwo) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoThree) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoFour) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoFive) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoSix) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoSeven) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoEight) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoNine) - CallerTakeOverManager.insertRecord(context,takeOverRecordInfoTen) } //删除 tvDeleteSelect.setOnClickListener { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt new file mode 100644 index 0000000000..ce91fe0d25 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/OrderReasonAdapter.kt @@ -0,0 +1,54 @@ +package com.zhjt.mogo_core_function_devatools.workorder.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.zhjt.mogo_core_function_devatools.R + +/** + * 上报类型、原因列表适配器 + */ +class OrderReasonAdapter: RecyclerView.Adapter() { + + private var data: List ?= null + private var selectListener: ReasonSelectListener ?= null + + fun setData(data: List){ + this.data = data + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ReasonHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_order_reason, parent, false) + return ReasonHolder(view) + } + + override fun onBindViewHolder(holder: ReasonHolder, position: Int) { + data?.let { + val reason = it[position] + holder.tvReason.text = reason + holder.tvReason.setOnClickListener { + selectListener?.onSelectReason(reason) + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + class ReasonHolder(itemView: View) : RecyclerView.ViewHolder(itemView){ + val tvReason: TextView = itemView.findViewById(R.id.tvReason) + } + + fun setListener(listener: ReasonSelectListener){ + selectListener = listener + } + + interface ReasonSelectListener{ + //选择原因 + fun onSelectReason(reason: String) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt index 5bf2d30005..5cf55c2ad3 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/adapter/TakeOverListAdapter.kt @@ -36,6 +36,9 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter + clickListener?.onSelectRecord(recordEntity,isChecked) + } holder.tvFaultStartTime.text = recordEntity.faultStartTime holder.tvLineName.text = recordEntity.lineName holder.tvTakeOverReason.text = recordEntity.reportNote @@ -82,6 +85,8 @@ class TakeOverListAdapter(private val context: Context): RecyclerView.Adapter + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_take_over_record.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_take_over_record.xml index 3963cc4126..480f87411f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_take_over_record.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_take_over_record.xml @@ -6,13 +6,14 @@ Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91mY@Rw1ONa40RR91mjD0&04ghCkN^Nc07*naRCodGy$QHwS5@yj_c^DU zq*Cb#2_%pZNJ5YVLYn|$5b5D^rBRXY@~M12^j$#wy!YyRkL#ybeb=Y=>g6e&sGveZ zt4L5o5+R8MX#xaD-vA*Ym8L3HNu{dJIs5&8|1ri~YoBToLIMHbJZG;t=V<<8%rVEB ztJ!PsJ!$`c=@EGAFHBd>uWReucD?4?`c-pn{o+zvKd*Xexvig*8Z@e-2w>JK1n@-;OEA2r_jAPqWuePjua-8CD>|`=| zplFjeoep79(?ObO3!Q$oB?S*MT+y#p`;uu}zId`ccgb|pE?K45%ihwyJ|QLl4Hd`i zhk3lGyb=|fFa5*G)*t4$|Ij5Chcg|>o-n`Mo~D^URdao^ z2Dzpu4f&u~3|w0!M{hgZhUqq)Jkp<5IxB|ktUek&=?3-CGd^0SZ>(*i{L9>Qa<<54 zZEo#?AGX72#c33dAI#=EUq3y0d4BnoZF%xj8q@)-DzzdpA}7a+Ne;SmOMHa19VeRF zCF4{|{gp{Z&V(E&r4v}e87E%KbRDbQBD?RK%+3Af%icQqm(uw`t{LSIYgo3uL)hu}xq@JLrLuJJqY|Qe5SBF{K zPT9akJ#5rYApOfldiR1}FMY@4sxR>fV@8KCDZwh4{Sd@H<`Xx`SD~;5K9x8 zqDr;O%%EU(>M+sJLQO3-dO}z>HajKEiXI>Adn2YvV|Nl$&y z&lSR3=Qg(YzVvkMLO(!7e*a*U)80H?z4_Mms^#hQKgr{VL_RTjvn2);6Iz^}ATU#< z(^AMRrc!-)wSvIz{e&$U5&<~+E~#%yPbfH{SU#8jPCLSGeVbgVlm6eG-`xH}3AR0q z-M6nH8!b+P`dn#RM+VNYnTQl|OPlrv*yCWH@X+3u4q4ccRUPd-tQ zvi^Z{LZv>v@rn|Ohvi&_QgzUWry_k+XA?QF#;cvB@jLC~0JQ1I{$x7+rs)5DvZ=jY z33i{ps`Pjm&V8-C>&?@(OSiWFs0nY(L>R1%?Bg3R$K0ZoR6 zVwTWWNBS;fooo-QnKaAJ3jHoK(usr}>qI+MU11-8Dsf%U_-vgUG>|{IeX0G=|M2IN zJI4C=l{RCz&y}~me){aWx%S5j>e0k>*ohrfy0Zy33cM%JBMMmw_9V$EGal`l{7P0# z865oL-v#}#jT!su*k&ea*vFj}^loE?ujqAN_~fCbzHqM4J-J_g$)8QmF#SHXaV+mE z{`}b+r$^`<>VGJlKUqGFC!K_%;Ixx#WzPX;;zA~5Gl5De^>?2@{W=_#0|0j$ z0o)T2?{FYXr_UrvGIeV{w1-6N@})1mI2;bRrKNlQAvK+TaA`7m{m;B>@{LsczE|nl z_ty`NcrbPSA zo7c2Iyf55rjk#b%->34{*H2HHpG@B^^T!iBCTv{n;D}BiiJk!JFux||gmwMod9uMB z$(rVwLtg+)wEoJz?UsDuW*?|o`=JjN97^faux#45vuVo?8ME}N&JiRJEc-Q*-P!-J zDY>uC%}rkMqIXR`pD5p#iZ|@PZ{_W;pT17_qs~{bk7qgv9zmo~d%{(Z=}b(>ppiv~ z1ka~8smpXaVM;&rN?X*hAqZ9iCuZ8W?U6p#4W4mwtwdsCy+o$i4*%y~- z93ehT1_2tEqIDUpk}dn-7p-hnADNZ3Jz)=+VQZ{! zq>=r?4Vl?7-BtSv$NQ&iCqMVnx9JAO_qdGx|DKqB=NqPvU2b|`OgA}MeOwe!CzU#` zA!nnKr1&)f=y?)pAgupkFlyx_1yG0}S(Ae7pbsAlQB1E%7Vt`)@@b4P(30BWXpH?) zH*Kx7AN`WI7Q$V>?1ilvZ9#^g$eUC4r_(D%`KcGbd-7QUeb37G^icSYH%xy?Np+sW z{1C=XFbHynPH|I6ykbQ-YXX8#Dp-kW@+acfNl4_uJgu8yy(0R0JtZ*P*T)!6{hKBX%K3@P@!5G|(+rcm?Dn zp~GZQz^jR&8Fb@fsOyIZP5{$_5q;W$wtM@t`XoSTXgjihXZqnUeh)s6^~?Y8M}CEy zvNdZz7@|(wAH48A?M-e0doPw4@4aXs9`{}TGlk~mn290h)OdBuppV)apIO-+G=Wsx zi8qqYL@9m^YeD&yH6{y~kw;?l?%PI7)y5G-1e)VerDnZM(7(KD>F%l#5i$NW7&$9~aL;Y; z@fC}ERP&SeakD2hqdq}FF8BPJQ0oQ2to{s5nu*`# zg=Q-@NgV8t#$yaX%3pMO)kIfYiQ4@a&1CH7%amd4#t_ZpMuygC$3;Du)BNG3@m|HlX;|2_WD4+%yA ze##ptM%EF={;$xtWbr{#+c8RI@t?A3+w^ak!;be|Htw;++H}P7pUzF&3vt?x6I?mR z7^_6WM09AIZ)OOw^@I=v2PY;H5qM*LQv%9C;_A;R*wFQ39v#7a^z?ubJ8)MZyB zP>-n{82K;Xrjr-0ooj!ZobS52M-uDpuV4BteHirT2onRPIKXZV2?VWVXoqYDaGYoe zbv|ta8Ph?hOGCwhHxZobkNLFIFXZ&H-K^2KFW5I^;0*qie)tI;yx^l9bWge%(I4!q z)p5}&yZF+J&}AAX`c_!@RfkJ`4hH70BvLt|_QkdjTmLxyeqnUA5#^yfbMGt=Kf z<-0AweOEon9cdr)u|#0VX2?4=E-#LV$Tj8$upi1&RR8@aRJdO?VO5K_9kh z6-bMRz2v0*zz+SwM0?PuSCgYSYgPB(5sF*N;b)0UFUG zBo)Arjd0Kwmq6&Byriade)cA^|kJCDE%_H1xo!R}LWLO5cvCGqPWL)S(@%mHPHT`rtky8CiNJU(D8mrdLYP3&piO`>I5kNjGu96T2QBrjqqgmj z^g|}GZ7Kqadq#nUeRTBl4nmE9>-1+tOHCvs!z=V1n_c=J*df2te(?tT!??qb?w`D} zjquKJW83yO?e}pbCI8GrPt95XMObc+*?Xb~2kvHZtiDrSomc(jWHSALCmdyhs0uLG zqecuGp(qS)pn0gFFGa==Ku{Br08onWKm;wd!>Hs+zdSMD`sGkym;JH6X*2c{1zddA z-yk28Tb|-u=nEj_!)g4+*8m>tcU=S#L9Ztu@}Xs(dx2x5v=LHb&e%^q>jW>Xuk^ob zudrW=>Gg7Z(evIv`QSjkYpoIbT~m0+uS_4TyT2D|Ec>GoPUm1ev&4uX%0|w2oFE0Z14TQ_*uLel zo3GMGbgW-=P)tVv9ovZ55B`Tl=!0!3G@_I%Bmcn~;vWLi-@nak&cDM_@OMe=ZEu{u zU~W47NDf7wjt*<1HhhY~b3mrihL|)3z)RuokHjcz03VUu0DcUBAWokNOIZLU99`vle=UZu{Q-j@weotm&l>G`P z0S)XK`^E{GyQV+#W$YW^-GA(aeWdAho6w;l8)DIyjO~vwB7S?;2gi8bK7If^jkkxe zwF~>hSW6!jbk$G&A^zomV9)rEP8N;e$bFWUf1~<$R^!>7mUsTg>9N!K>6c_@H4foq z3@HPQ10%WtA<@7$HTZnp%0mV03LJF>r1Xl$A`>4c9|ZwrmD0D741{TJOVPfC{qBrt z#;!>*4x%xx!W!(WrE$#qZ>Q3}T?t#|)5yLjkvOEiuyfb-iEXUB8BA57o$;{EmHwv; zV{!m(-g)|RDgFX_!2wMz#jKSwYxj(BhOfk-ThBnqkidoYTU7g-Kk`* zconDmc3SrBn>XR_Fc|k&x25U-k~=@K)9_Xh46%YX(|yMqr#~*^XO34Y1Z+kl7(3>v zhM@v5&X4&ushyt58BU}t1WNzTEl@IW4#Z3l73kCtOE%l(i?*|UdyZ%Apa)O%(pv}m z)~$UGgr0U~7H{|vGqrtDBT_o;+DUkpl-#7_3iHWf7qn0S}TGCbhFoU1mCs<>ZGy}OsIiPJr@)* zHj0$GdZpaDL$u=Qb;RRZ+i}OFefy%;uG1aAEqd^GIqj2V;Xk$Eyczt}b0VO6KnaXQ z4KVdF$`PVNBtKFhY?Nb08Sx|jXR+8hMWTY~h=Tr*ryl zg&aWbVVD?ohGt%^q8%6`koi@3#Zt^S3L>}=nf1zJf^Esez_B* z@K5hc;3@hCK5)_=q&J`rcp&oevb@@q$s7%W?4H}G_P*(556Q%_kb34rlgDb4bS7zY z%T=vi{mIrgUKx7$GdEHC%=nL86^}I{l~zhgcxgm3}H6tFRK2z+i_xK<4noh9j`qH93M7 z9!7G|mIQ&)Ur!hZM<7{f8OQW!8%xBlhXj0AXy~Q?{SR&Jp{M9KOZ1(9P7;79?jRRU z$f0FKJ874GbgA9?b$vFO zq!$ypar`1l!Y>H~U((UCur|_?Ncb}7kK+eI*Fji4qh_qf`os;{((nFAixN9Y*rbQ7 zc8gyZ>v>Ed<@XgZgdVRsrWoIn6MV;(Nkvzv%Wv1HgilxB)x*bMbqh&yDvcYiCvK=9l zTrKYzop4awk-mdN1fh-e8IJ9UW(Jjt2bKCJsNEA7SsM|JhU_1F9*|istB^B zEjV4AwoTufwyn1=wmWWHZg*^6Y+JW1=~lv0TfJ_+?Y(}Xtyw?c_R?>G?X~}WJK*rS zHm6@=0@03QgbCpc9B<8VKq5}2(uX%~-#D+e%Rd^oFhW*zWn$ogp~6I(lH(4z&a)B6 z#1=DNw6pYhB@LJ=U}HFC%H3kS9@&GBXkstx(-+75_=hLD2A(auT(KsL%dd23Y%H9u zWa`P02?Jd5AUVmL3F_#dLQwhyG7$Rwm4ihy!LCbd#Fu;thb{0pF&8#Aq_<|T)*kun zd0q7ds0Xf1Ojh`1hfL^(ajxC+t>t#Z<=fgfFS)f{d)cP8W4mrt2@`kF8T=1F*x!sL z&g#_*?eOFFZ$})zZ#(RmwQav6Bt1^5a>OIX4<-_LA~0!3JXyCp9;{z*ddIYF-yHt> z{7V+%@Q8~QzqC(ZfBeI%8ce$7Tf~Zf>Wvb}G9&$xiGYcbI-wo<@GAb$)tOsrlUJ(s zf4M)}*o{#ihbQlR-rGyL^_xayT*_wwU;m#e)^02LyWZJI$8WOL}1FYa{ zsCI=qGAirwI1*WWk_$YoR|Yopbgmt6$lmSI&pxajb;{bdO6PeoaE*w8+JW!^I-lAp z{??mX``n){w{5D+Nw^$GqsF_8jP0AcB7R9juL@?>UXc)TC1h(}B#`K(7<#+n8%z2| zn6|5){*iXHdJbP{Cwg^Td;1%vPmvp+gc1%#-IvQ4U&JG2%6OV$6a!!m%qtmm`V1;% zW^9D34no=Q*r`*4ic96G@0364`C2)&Vxf*0et11_e`v$srd8q6^S87M&-rG%W9xR? z^6Hnq;d!lw2CT7^&*?v?QR2Fp>mu|^NhpWF;8EoJNfCDU1ZmlhxQW! zNve+Uwr`%a&;7|#yX{(#k%^s{O89{m&y43x|X6Xp&2$f%S|^nisJ zdWAjG4`)IcvR*&>^p8wF6_nWSbSRv(%*DQ3FtD$b?)aH!Ek9;JRJ%lZkSs%_LSyTh6}*v1xj}I{S5h9Z*s5Uj>C>DC!A3 zK%#9SHt40WC#0N6fmxk&Hf1bg{n%qeKM#KzAc0=B*R(zECl}gY{(R8jocBf>Px}Jf za?`Y(`@U=2*Dt+M3mu8X;SMX>s6iq)ZnWbB$u10gwmrykhkYX9F$jwb;b?;hFfS4) zl3{LczCHNi2eqfY_JM7mLpgLBK5dk;@I*)dj+-X!g5O_kJGMw4b|yzyM46Z;NU4K{ zSr;`%dNvpXPCW$6|IjchI?;?)oskU_|i|!Hi3FBzxh< zH?~iI{K~exv?P{v!SE`QtBDc;?Rh0gsLeaUke!fla0Oh@#D;RCr^8169*P&NGLVd^9rS|c+Ufj0acyv4Ir}quq1dnR4wBM1sj(_o7yX1Yc zfj^iO+m$vxmoxS_e)2WrXRqZ$#MYya@n{=!m9~UYIvA+Aq-{9@i=D8{5Y-W`{-RyJ zOn*v!J`U)T+}7Uw=IPww8>bsY)q^9Wg5eTPN5e4@#gkXvP^ViXjZ24uBZH$sLq7&? zAmfxQ;FiLs8o)4-_t*8uk32IDCz#H0yS8q)(?0Xzo7?BlxjI*<2r%Q|YL4K|X~p4k zetur7j%XwoUb5=Uc@^UjIUhsBdvKLR;V*|jIYd(FZ#h?{Wvxsk)3WHxI_F}=BFQ2I zk`xbY>^%P2N48Ub?m$k+0uxIzf{$#fzVNL}?c1M^$@A?8_60Q^1oNe)>YivglC(9rL6uu|6zb){t!^qG`ZtEcU_AJa;bZy3ku?44C&@|(`5 zHncCFe+^p3ccQ2_QS!`Z;>;_tBB7K%^U-$FamLkGD-LN)9`}h=>x;ig8Qh|fXiLj_ zNJ}?neeO0N7X>65Nv6|z{gSYfEfY+FlGB|Z{e9+)tJ?Ohi|whud`O#k7GnB*;X$}H z7$SW9%jeoHmn^pJTjFqyc^JV(FrBe9UPU}&o{$1X1^@LI@h$ zZrQhu1E2JH=g=46^~BPu@U(&|XUh?Jkp2wiFyp8XBoE?Lzc|0?~2bsF;_&ZCLV8vR(~F)v+c7yTKlVVrhE{B+*Q zau=EwHilZ2JU~i`AY}YQ+9MDa@}&a}t_w~k$FWa+$R$tkjWbZ%!jf}nHn9{aCl(2y ze>78QI5l(^*T{1|w!LZswEpS{*HKr$Nr@295}9&kLs z;X>8e!wzP@anZJR!9QLZK0BE?XX5Y{C)gy{!orYPoSdT{s~5PO$dgoIheVSDN-idl zl}dDzfl%_L|QK$pYH<6g45?f(Fh9*g2rskp25mK&Gb zdw=&!ZQIrzmhlRtRf(%N&ZD@}ThNu>ypB5y*$0c2%LznV+2Zji!N?o$?6wg$JpmA* z>4pECQ!#N0s`{*0oLA|k_R^w~N{Pf(;nLD}*NcmbZBfrSPdWFp9B)UhYOns|6WjU+ z$f|%D6IQTM{hKeJwom`ocKJ{8drifn{LCxRk`MRNzrZrs3O>-xF9vMK1ZZiOK5dwZ z38~s9=lqWJH&3>-19jVBk@&SEHa0!;IO$0hb2~z-CJg->$e^?c}R z$IsPzTy(V(YxOGKK3KIz$+h7ADm~0jvT+-MTMhHn(r4vb(CSdmqa3Zi4LdqksF*c2l1V7KrB0f3`N!$l=k+AJ~2)O!Hwb(R;OM5 zFI(CT-`r@QxvJwliu+K$7o|g=+nP+@j}qOhmnNP=A@bah;#|w;UFhpYlKIexzmA3c zkqqlYC0<-zhHTsi)43XWwoOuFTZxQ6*mr_)PmDhHLms^AuiDfuK4Wv((l|vT1THad zon!uc9cDR>D%SkPAr27~F*PrN}pcLi#X<|Eh?2V;o5Lo z^~og_uUOjD*^3=y@&OEE0`SP_YcOHWPLxcUz_Ct48F?H?efLE$jyWY0L&7(o6ics8 zaQC_2Xtgp{ZiEA@jxg=Kzq`_t?Ulr<2Zuh+r&hN$^K080tx&79QaRyPu|l!x=yrov zKCf_@M5K*_<{_vz1kg4^diJ&Y!X4u8 zj>nlp>3T7J!~p#wM@&4As3w*w7ciuEJe`P=?l}Skm4ZM3hPiU2=oS)e^h3S|GSG5B z2n!dyD5F-G3v${wSMnqnb`Sp%ef~3;sb@f$FmwF+rT))S<`| znTI1MkX9yYCO<735SyllXE+gl;1_mrPVJ$FJn+1z2-hXYfh>Q%;VQebJR}$AeM+c0 zRI+;FKdaXHr(LBtps^KW&7lUiwhwrcc7%CFM)A=ZC?Uhe9FBY8o0>Ieh=l)9N8d#I z=)Mij>c!fYJHC8)&$i)RVxILkUQu&Y>+y>v|PD4R- z{7-%JN4=PTxU>3bNNxY~o-sXSVQHH(OoJa>5DbyW6M|v`X@rg#0SK@3My3HueeOpY zXD1yCg`Ch>o1k=69R?Q_=!2A45KS*1=^(56;!j_%I#!^0B^2jWtX7;~c@Tg@EE0I;@PAPAuBK#k9h>ggtny5 z5#FXZ#O~Oj`UZWL@Y}R?8{}IgWSnz35s0Z)D85mh`$k;#@}~M!s}Oe8Y8Rb(of9j} zhw*g5PTc>51-;F4N1O0qFwf)@KlzQe=f*(V03aJdO$5(bwWX3}Hc3Qe4pSea-Tp}5 zA_Xv#(QuE|Nk==*dlpi1fl`S>E8I<98VVzXcaSH^#{E7>BZmHf8&;6v&vXSi-e==R zq^R1v4}Nf*{|pJ7!&9~SM!kpjja#)c#U+27t7zp?GSyWd$+fUbC;z%#anMn7ZU3Vt zZT|<#o|229$Z*s&iOcrgG`L%j1y^`X z^JSBE^TpG)@p46UyRe*CaldQYR{7o+_qC?FnR@+|o7-l6WPe{hPhU7*{4gYE?soz! zEQuI*^0me~zq})3-b&uOXQiM@CmjaMBTIP(>5}u|00pnJ%rD%CRcbpA9VcN<=O@Q5 zXfQgzA_{tGLT%PbCKOLFtl$9!za~0NgxNu+WDyJuc$Ik8DLa8?u`&TZHx<{cYi%E` zA~n(GV;=#%uKvOnpRD@?oE3`0p3kvX>&b`J?T8cBv;&V+B5ATci72vyQW7IN*{70> zCE!O3i`^z|b~LZ#R4EsF;QK!})>Pu_L$bODb-*$DpobnxTwYw=HYw3=ym(c+_S19i zrmsglrwfr}-nsNX?iHWf+)jF#pI{1HY~h^hee{(8YxMmRJ2ojgqIqZ@8_|`32a&=h zpsr)t`9J|01q_Rh_;5VeX1ZsckmCeB<0Y13VY{|}+=2*)mLnJ%CrvnF^Z?9}4R8c6 zjboRdtU_};fJLi8q`bH>Y%HkdMM^bIE~T~S?tgzyW(^dupjKjteASn4((M8r27TC@ zYy0fKsy*y+2e!jcT-El|9eU#fARUJrEcd|_O>Nt*2@yYZyhSMN13@Pz$fq?RLYFS+ z-ily3Z>+7=C+t816@fXOQyqAmZXM`#%nSEwo3B~hu0D5LyY!q*ZE1t<(Cd)KIpO8! z-_joav-(2n)C+(D(py|d&bJL0auT7#pjO4HR_d_BX+^B`-KdP?FZUvcGK`b4MU)t3 zv_c+f>7cI`oTRw7lMYnr%le@UTF&)BCOPK7Nfbod6x)uz`9bwI!)RHzafnG;q2KWm zvLIIKv$V6fQmEJ8k7LD1y0AsU#6wR!xNW&bH&0KvUpxA7`?iCRR+8xi*+mu8?cjLh z6jEOdk2A$AC&|Q4?ZIy1lpl4`5Pf2%QJ|Esm>&EKq?pH?w4{XsG7;W=kD9a-j#}GJ zc==j=#&D@!cGl*0>8HQlj(yTWAxhlFu?y(7{}BuAhA-R^zDt0ekvsW)j2QQvgdwi9 zd(4SV48qv7WBxf8q#ZV)1s+fk)A$Pg$e&=R{Q3nEb@@>MfoP+E0^}N{p&jGYVAKc) zL*I@F%MOh6MX-b6oVkz^8)tiw#|;oG)q`=9zo7SB?vG9uBzq; z3JypIc*~@I;8-9rsRG5qz!cj$>gf82vp~N`=qwo+=2`_UJL-nSR3|MQ$bP4Hx1|@n z@c_qm&hp3vQZOZNa|ZheZlIvJ0XJIy&9?{nE>^$U*o8wq+ zniCsh@1nucs`(3Qu2ksx)l(*P*d}JxrQZbzTI&1hh+wSO*E8se1{ECeB&30&Sd!434~gF+F>0tRl+#E8UW~`W|0mfQGpL9P)dTpuwrqZ758>l zDY0Tg0tfl(yM_Qx5a}3`%|HWxzzKlVae`P_66ptB0J6k6)wmDCLRkfNj0d@qKkC{# z{=rfySIhs((K?hDzud7NAnBe#a|@G({z?V*C_v_5oWP_RiG=Z_n;W!%AM^tm z%t7Ca06O+Q631J{4F&hk*`Q;g^-L zmHseH57o6~Tx;XFSQS#@7|Ak_T+Bo-@aY;4rg^GiDf+erodS*5Sf<+WM`e|6$HcSt z#7|1{o%jTRsx%n1P^|g$eM?A{J&0RmFlKeZq7T)t8ieVn*Zf=AGPES7Lt&e&>jn}i z;;RlqY@!*CBv=e242J=-96@QQDx;{=w|np{Q~Y#Wdm0iX6lb#D^ZcX?cviN4T)kz2 zfve)g%aIdck6jyT_nAEXg)H)JK~zBw{FE@SW&LCU&Oa|Ao4BEn z;}EaQ7?X_(^ePOy%D7!L)q1a8&IOZrQ5?T$F!%wo>1D3HM;3w)?SsCL;5R^Y*_!-@H!lB(F&f4;&ro+Ld@pyE=Es_j(r#_c3krT2Ip15Oo!c~=l%>)d^u>kVchRvtJT3$|1frkImpVJNj)D==83-GKl19}>rcauj zskVKze(EMt7z)(PFDC)!8Az>U9+X!ubKH$h0$H}&8g==mMzw*YI3^I0$toG;&QK?g z`Fq&x*pg#aY&~YV$vIb;2qQHYgewY^@Mlaj&smaEIfjsyYtk=0YIj!Burbg!FGz56 zC4_4c0J4;8;mA;Bt80QZa-!Y1~92x6}OyIeVH|dZ+<$|tmIc!tlc=~`62^P-S zv_|&158bGbt>38U-1UWMtLNIj2kqVVJ7}%GR(nl5;Lx@0ut(@g&2=>ZYNw;INGQ^c z2?=b4P_)2~I-JVTI>BfoRD8SU4SLXHJRt)EQfyY}h(Tgp``J76-CWz+<{P%PTQ}U% zHr;T0+p%p~?~~5Ahdlb=_W0Kv?Dsi=Sy}G5Mc#96rO!J02?@?gHO!hP4EK2%`Q{{X zA9MxPQiI$&lWMs{4eA3UuOn|Y*iGxt7hWaI!=9CWk*3tZF6`Ir=R z%Lp)ov!1Bbw~Pp;DRJyi{WB){m-4nt<9os=*RMjyd^W32X%c1Q{r$ z`f8aDjUbKavtso80N+*TZf;*b`?~hE3$E4k{34={Dgx-+#I#-Vxo@>&PJL=S;Gr7G zF3N4!^Zb?=iZ6#99}4v*e7M2rR1%N5i$`{XgpMW3d2B-K_E9cbHO$X=;bQ9d`A1kZ z>``eRl~_wt9}4YAxD!GM+hOF(D4|ZLgfMO+ox|z+_#+`P#`@sdyO0yVu4eE74Eh_d z+tv<$bUd<)TVV@8enEm~uk@D2Vje=nh&VRpdQrTKF1V(BS+51{)j#&)N3_Si`2KB; z?y%Sn(aym7%FvcU$A{S9XSE?A?|#~`dJtkvAyT4#tA@@tJp_2cyT9E&@mCkgXMBut z^3M?WPJt72ok&3Y4hx|zpk4UmrZi5GAH0ueAcY?^pXHhRc2$Qo$r+mszb zHytug^uR=?2Bl{7wGZC%Ej`HA)&&m?$y!crp6q<+BM)nrenC&ssnkPm+!%5KYQi|D zE1&pa%O~D#`K+P-Q<-tYGj2YW9m?efQ-^Z<_&>|K?cuN1h7 zW1jvve)2z3v?dy70zoZC935}PkfT;l83Ecye5K$oxZ_d?CToMfZ9@osonuYfjbRw^ z1RWzGXd}`JB~{_xK*x>H?^eo_)Mvug45yQZmJ4+M)u5K!xAm}Fn;e9erR;ofPufEt zegAgFg?da=#d|&i6k$iO_3RVxLF(Bie}RWq!EO4`#Yg`1bM1@g9MWF;<`eSp7;1g& zSd0Ixvs3V4B*syy;>nVSZj$<2_46lx^Q&KOSAFH%mc>UP_`nCkJV)ka#YKFFDc_e# zY}Lm+;eLkN-RAmB^ii?=Lmu^bX=`UfGv*2ouo++YDlunj;6qg1C-@Ypm{*-jw6JAr z*LP22k$H1JBOnpsXWVyKP#wjWgG_ zY}}zoeF;Q}&~W@s(5H8fU*}2Uab$mxf+tD&Km{M35G_7e$OkOq#Ro+F(u7`f@rL%c z|Ly#C^OgRDXao*B6isY2bF$R2U0AfW91vW)K@vbq9_n;%x_Ghuzpwn4cJ)_pkWD@j zq(iq~@@o>G(&6!Go_gi^{P++^`Yk!+k2uNiv>9^cX3IBqcD!MmS7jR~=Jo?m988mG z*1XwAsKJhm8MSFz+jEj*vVK^HXKK-q%XZ9v=p_E796K)Y9)lhZj*UYLb7Bdl3V;OH zylC5q4UL?)HhnR6pJ(>Tu{ulqJE~&#VtRYM~wazymcgtNgja)qLt$ zpLSleYOl72k5!Re`V65zVkH@W&QO!gVTZ}ye9Il}t^fPE?dzZBgM5KKw&9_P9z4g; zZN~_@SrGwN)snmBlUv(ce*RPK)|Yn@z)*}4(=5H+DQn%m{rtvEVJ)6Y`wg$rl`l2GPC*_ujKhg zbm}`a$|?O4Z@a|7awGvyqtwt;N8BQa8B^237&62)&k&GjhEl&|LOVP$298LPGY-q@ zGkRPVdJ%BY^!V|Gw^|0dz(Fa8E8)jK|3O-r;+yu?ERaxqKvk2I6UL;mA~@+tJQ7SV zp3r2%mll`Wdw%mX?WW5Y8L3V;>{R&07#LU!qxzZ2akROG{DFV-sY$i&qSG=u#Lrr~u zp(q9`3Dv1>18xt8O1Kewkn%;Pf+JB#9PCIU6U|;EjXlM51boj!mV7QkJ!w~e@us#_ z_iJd64?)px?dT`#8;RHHewDwEfdt|^8un^yS+(@D6tN=2#KotNwUTL)`8;18BB#1~ ze9wRR*RWImGcY@jA2H6V@szgt*`|NH&Z++5jsL3OG@N>cs^{-Xe6LbU8j^^W3BT}h z?W(sY;;$S8Ap)cz$-aG%7$>_}z3jX#qA{5fJZLd;O`x8DIN@pc@2eK8!dksZB37%l zny}TCU_RWyS0Zv=qjMY%PkcAlmW|um`+nmheJ=v`u@%F1t+vBew6so_7gv9L*6@A5 zc2V1M^ERK9bEx&9O$oe4hvU8?*(W8GYE~x_ZS8y=23b+pv=g3lsK*r^?7Y2{?{{E@ zl6C)SWwbAH)>rrVl=BqY_TDlKB(#tT|LIc-!<|q`&aU+X%hD+)j0haLeB`XJXV%XlvO(8hMn*KV@kJ`q=fII-rGK(ggT@?n}ps-&Vu zF241K6?E-htK0D}+5Kw84b?CH?e&pV#EA$gE>1EIfeMn{vZHcLJYM)1^OU>gn1&2& z)j35TXV+!G$#=t@Y@wU_gS<|yRN^dQGIufRl>jmEP^4uiL)(0`RA^U%gy}&a4?|XU z4Kj5?cO+|qqy-YI6gmo+UeH)gzWo)x^D2Eo9@}gsuvR~@`)l12B=AU1zFY(X!D`nf~Q#m-|8!NBP%Y&%7`T39U z{92r#bC?yblZvD!nK;a4g42$3zW8Dg4wv)k2j44k(yI?_Yx7xu;8&LGF4*2S-*ks# zLozvviUDzmo~Dz)#B^DGSMl$-nMt7wTIv$&6k-m*E14v_kNTKyooTxmnMkaqcAiCg zLco$%8E`E%kSr5?4@j0P5vj{1)96wPS9Qt6BoP#a$ovQjC)ErlzAKdQY1R6t4Fa*- z;svM&EGkzdM?H0+9dx9UN^O5H6^9~C)IxrBQJp;de8-pgI$V-mN;V%BkyS!&zkRWN z_PsaSRN-TmHr72!*;d!_`PcVs&<{B2QR+Oj+Llk&!LJ0)HeXnRefZSu0P>Yl9{8}; z?WpJS7S`^|mp{Bgu~J0X@zB%NARmDvt?-SQhNl^$QT#z=dSb4^M$8|K=*K(_-A=Ct za-OTwkJx}qd=Qg+%B4)K+gdwU3h|XKB07lS?oN)NWQh@2fW|W0bv-lcVYP~A!56{$ z@YS{~&P34sAyg$8Nk-ya@r4`OhRby4x>hZN5X=k#D<#z0rQWi6^egt#XZDO>y@^&J zUzzEE!DRXbI+MvOn9p&T_)IRZbPMg=(=Thh!Arp{OnIZcw^{lWb++n<2|gif7c&3= zB+*GkK~(j=%d`{Z?F6q@wK{6W(qYgmV^1&=i7$3zTsoAI6gnH3m*0>6#l81Sy!~B4V>4A;DoK@%K8A zXsl$K|Ax8e%wj-SpBUwKBR$DANd!a zPTu3NsH;%fk7Uw0okmMi5faJ?zpz)^_h_u_y72X-Xa4uA<%ixwlwOTZJx^ft;bw8H zX@>#gbcsr)OEx76H(o+ry#G zMhe76VlZJW6Hz)LSNaCm#!}W^*>YbSYJa+!#L88`C-T~3Zv5uvcJV*(HU@Iz!Gt1| z!}S$E4|^7e6B3l9RGmo*&MHmrg6@2C(!QF*B^@IvwXrU7;67nqBu5ojOjgzrf5hewSl?p3PF!s_oB%b}( zSM>W@K(O1yqr^0k*OxQBaK0UOl2!vAzv00**`antXp#4YgLB z%RhfZTV%h(P1}hv_2`SXicB1TCqy9V`vm!HPe5OF~?184t?TW zJLVO;e}Vz4TlLK~|NM?C91m7?uA2Q#fDs|DSxjvl6>xSanCd>O!h?p0vJ#A}d z4a>zc!7D84k}d3_DdIaP)~cJ^r{&((KJn>nxf->HAdxT~z1W7w2qds#{P%yNeqrO6_ncJNJ@1dM(|t0&S1Wb~b_n7{?Y2Nkwwh#WyGk7f?fzh0 z-O>Cd(=>~xK6La8VqB+s*g+0q{V47J2enVrr1TZ*rKeA}3$tGx+EXDIL>sRN(k7|A zcSu=1gM<*n#fY|{RF(U|9qXgZivwG{H34oUm!x$VV{+KzL)wK)* zsxr81%EoK;)!0lfhga319|^^m;u2W4K(JC^pMpO}{=2z$!mo(yM|Vu#<>unkx3r7S z{+46nAB6JZFLpMs!lavU*}1T!h2Ayc_uSZLcVs_J*q4}%ZWP*hu+|e7)c~`;A*>&o zh`B`LyhkX9iqsPef)qbMHee+DP+cBbIq2}*f|l|girTT7l{Nv5cHkFo^l*I8hZeZ8 zV#S1!TyZI{z1!zZllG7AxL7L+&o`j}K0c$HuWTIilXLAyUa1dr>W7oUPV7l|!C}#V znizlOwpJGsg^L9aZMWSleEb7zTpWjHzV#&^t13wu6TQj_z(b1I0YFN`Mt3uhf9-sG zn106O&dRs`WqbSh|GZfG9LCuJxVn`M{;=uf1)Cj@os*RiGZl-7HSzZl#9KKOk8ey@ zyW&)`{ip*k3%tTK2K0$?XH;fJxV+HbCpVOJLa`A^+EKxT*G7os5tf4%Xt*B++3s4u zCmmQSebCuvuOo=H=XteaqIGETszneLTs>OVKJo=Ew zbka`#FY|4m2dQtn>8E&+L`+moRvyA+bMpgsWbLwMjr^tcAab&=4kr2FK%z|8{^C**3bUQ>`Sv7&>J{0FO99~#$cHFVpKKPrLv^#EA zmZ2#~}fn?Ig*au(zJ3(62#_@AI=gzUkn)l86Rqr(1O>^yIGI|r2O;_Wu5j^>I%Aw2m{^yRKUH>dah3SiImrpuPwU;q49+qW*`d)|ep@%f&ce8C^CIDN<^$@GU! zjnJ~Vh6na{G)K%0@r2I|P@?Uo?veg42P{(wyH<^LC1l>vVOukP_$M2@h0t^ z{zMNaS;9wGPqga?1h%!Wo^?|@;$a82eIFQ4UdCRC6GBW3YPVJEE<@Y@m`OWQKdQ+W zp6zo#=?Q;}K6b_znjQ1B{o7%W+WlqQ*6SwihOgYwRN$Bcdr@)8f~xBiTY`8)MGcBSgG9d8Ap)5Rv^+p$_-+~Ii$X8Udh7^R^Dn_qhyL7chVc>&^c+>`1)$) zxyZvH&N;s6WsLz^Ii7r`W=tz~={p=Hqk0eJ+>_6qJY`q>IBx8MqXhYFeQxTE?t-0? z$uu-1RY+9&R6-5>9KuK+N;p6ET9hE#n>dHiDx}NzWqtR#?_jfnNM(6W-=U>8hs8=# zeu;QVf#w$;zIe{H?UGO5&`y2L(d`j0+{fSR4k+-wVA}Rnmm5{Dq<5w7zQG&Hmwe#1 zcFsF4Z(DEY3W1x$Bo&81&ZQ!;e9ubfRU{VYSaHS5xmBFi*?DD1tX$z&?el${8qZ9- z##O_}@phRJ-?WNH$`?Le+S-qQyP#Iq9djjv{%NmS{;W=HA5)X(8Nk_YA=esKCDFPZ zyM#)BYYX4KI5{uY%i_V804&`x~8!R-N$ z;|C}Ku=?OgIaKsO`>wYfp|8JSNBiB_ZxKx$qx~`?^PI$d_;#)uYIfRfa8uD@VR zhdJt{seW%+Kak1EyjLx?y^677aW1C5e^s6�MrsFDBxEL)N#Go_A<_*faNubFlKQ zY6gA}6rM`B{9{|%g?dJPM`Weq9+~9* z^QQM>O*pzr|7>e)zCb-;C68J2&X(w3NtKPCmOmQg(MC9ZHzoV>$g* z)1Q_8d+fZ?!^`NSn#nRs2&f%62XBgGDhSBT3~YtI`3UfDJ&x&0Ne+1&M)ZUozq!2V zllny^n646?U?drd#V^P!5y4G;eDL8!ky==o*T>ioX%9JhKiyW)*B?EwdmN_k#`d;v zP8%O4z4E+``VoK|eA~i1gcIC>h$NREtiDPqpFcT?)aQv)uT(rK!68s9841M6I^Tt` ztYw0?ZYac&X$94!fRDB%X6YtLrY9MMkq%*68G)4vg^Fp*?d2z*Gx;m}yDKZPc9J{o zCDZx2b?r-T2G#F?ZSi%GLvvq=V+Z>mW?l4H=HS?w6rNFN(j`szkfi5MsB+=d`& z^h4fC9w!({rElR_6y4`sS{+!uIQQawrq0{EkI5ef?)UW6=8&}S{q|}PICh_Q$V1k( z1NBQ0`{)~O_BwFVR_m+q{WcI63p%WEJA&`F;;p33*DtnPuDYXbxZ?Kqt&2D7JFa+$ z3tQo*zfi7X#(-FL^x|A9ZX2*-ae_`F#YsB%s?3v&S1HR9Kdn-Zd(;&o#zA1HiBI(* zQ{1Pq8=0NtMJR04C^idtl&^l{VEs7R>AIrYL+N(+Ak$8N_4LPdPIESHqEJcFm1VRi zfV_&tOT<2)NIFxI$srqKMt>9xgp)^u^9$^7D}qV$39wcsl8GeRq2%)YE)q(&Be+!o z4Ovz&0%qSGIk1?du?<$mI0xdlm#s(N*~qz_)(@{5!+VQyh>gQj?09zBql;KEF|0JP z@^DS(rxSemQ$lgrywo^|&XL8OUwd+>L-Zgume(+V(ck8h7awra9j;6PhY7Ng|NHU5rqAfG& zewxh*9@F4>HIwYHGMXCt*5RC90(q!g@?kG-rgG)D!Et%rJJ-xs$8HL2G_{d((9F>OsFbO(rM#Od^NIck4+*Em3csnu)S;EPSp3meELfQ|6{x>=Mm~4F|zKxWssGJUWF`M zqZ=ax1_Lt|jgd-o@lco8ka*Z&g8}`lsNqPoJYQ~x^UMV=eRfs8EE-Z;`k<~l83iz{5-s`1|y+- zM;$%=G5aJa)=6aSVkbi)YS3KM&Qf%D?Q6smJ-ard#aM#gaRpHA!W`Ff>6cGAYx2Lw zv^}-&@`?qB&W-;>UxDx%4f@f87X*PYP{KPxJyRImAQ94i6vzgGwM;MR)GPfN*wEo- zyw83(A7Nh9;r%v#_is)K#(4^dN3Ow`P;Ry^O*qkyU%(*gI7~Xtv_ko}nej+|kW%wX zSdUBXs!1eVsl%XCD-(mA2%DTM;fFu=r6kfRx%^WtAK*LbXlq5INXrQnam}PMU6wq4 zi)9qUKdpSZOd5$-#=_ zD?(N%&aF7HXC>ps`4)6mH~o~IvMK4-HeKo}nN(^cPa;v+l_I&EQc4olnNY~^@-tpu z$w(rtSkRqR!Q-IkTOX>u^05LNM+Rii6GQEQK*J&InH_w!$Fg)SKBJ$iMMFrXN8fniyQlY7iGKH2VXw@H7Wis(-1>t$P9o!McW)mCDFhS3HS(=KD`JY z+M#dSSf((=@P(Rqz!;H+Cf^>&kACGSn%5(eCvQ=3qY^$>jUYJ5oN%I}n=ky~uNO60 ztCRyiTroS5R6a9On^i{%lL<9Wvf^>QhaS&;#mRj|AmYNd#vhchPFwE8SRtibB~yG@ zrll-mC4=3NE*{b;l$imjp9{exz3d-ZdWL&bOPmbDNnYM z2WB*we77d*Ul4K+d9qCH6k~2ak8-hjmh*B@?hb;%uNFixV zZ^9mv>jdFSP}f^?x?JR}i5`CFAn1Ck!_=}q#Zxy>>+ZhAa2#O{Qy8b4=Am#1o9G#^ zXfq)?tnp_Vtj6OQwOTPMcxc4uA!8B|2P1aC!3=b~?)KFWNi*CFN;Z4^kQx<1^khl0 z=R`stqG)4&(yrCBka}AGJ5MT1%-Bzxce(oT%coCKf}Abm{9vB-2#|~Wv@=OYd?ytn zp@@!7BpMC{y%MkV=~K+7E&VzidKhCq(*dp$f{C#g>X!{aEdiKlJ~wj{KI@gxv_aOZ zmuN}{+(3$rx11l!IAzTmFWl~5!R!)1O zRZBNuEkhcY)uDxKQL!EVCpvZQuf|wmMy6=ADdT?Xe^NiX z_A*%@nBP?yd;DDi=_!c))~;%w)I^>zp6ou!b~W}~Pd1}sGz7$Lna7)=sl%FrzMZsa z?)j1_osNZi+5j`bO51kW7|l_{KIXJqrTuaVAAC4A&|p76!f)$fX5@<<73O#aEB`S` zsj0zsu+W88?ku$)K))2f3lC^tah|+ixV-g%s0-2_$9oXzwU}I%Usgb6bZMK&J}WyU{NZ#+#mXQ`I+5o!K!B^2SJg%vz5|wyg&-X=dbR7s+E^(HR%1 zU$wB7AN&vd z7Alvzj7PIeeOxK~5kH&nv{EV_{TlL0+PE*V4Z8R8%zHAaupRS2>mDp0ecALey4QH7 z(D$#vIw8s&6OyB=V9oI5OLr`TACs6=M>$tF{6@x69MKZPqLx7@_>r7}wJZDGw)Mi7 zj+0pBKi#rFYdy!%{U63u_PZVXZzOMuPTlP$PN$_%^#|>tMTi}ifi%++f1`YV`V-Hd zd~Swu4|LMKdjM$##NWSU`pD%;`v(o}FbCWbK#0AZ5l7qM*62%y^AiG32|3zomA)e# z`jA{gd?W)kFe_nukg?@Xs2XF1zD?Lc?5waawXu#-Bw`vH#0w8*`rCB^ZiNhj!dRhi zBL3$1?Fw=*(uQSnV|`e=;f?7M(HH2qXP)xO$(P3%_f-2HJrs_edhY3yFYC*IPthb^ z>L_R=I|YOQ5V%o9hP~Nol{^U|>ymWZM9TVwJ@k_@qmO-0lIzfS65FwY!yoZ1sjWKY zchzuRY#*8Gs~-EKZcpOwKgjW_BrJX4Jf_66Tr%OgpS2`+Dt2dVCvgz8e&J5qrP_f{ zxwn!Edn40y@A>kvmrU=cdygN}rP5;wWK0vIA0`Z|IAUrKOzf$(;vnNmljQhnu>x+s zHeT_liy#3k1$NklHSj}lWxr&0Wj{0$BmLdk|CADcjNRqLc6-c6CGlulFZm{~kR|6B zzhy`5pzL}p@z3h1?dSaHrzU)P{=HW2wH2#8e$MHW4eMGvRg?QqnMz`16f!78XGoAB zT2{@{A;?2J^h?L9j%Aq_5^0!}Y?)RF@JmO{n4R)vh5lf(w5>6#Gx8t%6#I}qRo{%{ zjmOM5P(z0@>;EjRRyU~D3-(MK(pawdr|qA%>6!I=JE^dDuO}8pPCb3HMPD-fJiQ0< zE(cE$86WE&kqWdPS>JaOV8S|xY-y~Q!QcVxVnIwbm7ga)z%+DlI(NnDRr1!2>o7;0wJ!i57 z6ZdwhvEAEtI{q0inZ80yq&8L>zh8sc{S(18c3%gi7o z6VXtQnl63lS&Xv_T21m;-zpeY8Dm%`$eq{iAa5gC?a5YRkT~eCEW4vi?soa`x|7eD z{P{|qd$T_igL~7^7+dFE$1535(|{ilt5Uk5i1j3L^n&iKXG5(S8Bk+(x=bPLYSIu& z+>jsiX%%*fS;h=_ntT!JoU3GDjC~&3(y>rf>85Q!G4?1yqCbqKhCA3TN217`Hn#N?~9+V_6%dvYjTISie5eO15l_jtWcr$eJd>TR_>!HOKgi$q{j)n{^3 zK4hYgSiAzuhfOuzb0Vot#}k(}0ekD<&NqVqf`js%| zSppwYgK?@Ey}?$Bxhnfb^Z2rpF28H_KJD?}kEFtl^1b}~p4T7$$tj;xdy7`C^*A#G zH&+5hiKL2itmHd#DVgnXJaoW;9Che>vJ=b9v{Wll=#K*8Bm_t_10fOkg>4<=l21hm zyNNa87tg+|l!K{K7$pQ}l_Xj;Obey&f8$Zyuv;BV2fE~R`f4rjY zY`;c^Lh7Y{j8C0W87I()ys~+zp4fTa$!AW^T*>%;^}jFYSi2kSvpz66^VWs-NM*xs zD4<(Cv6(Ei<7Fzd7>6j+MRSq_&sUmV3`Wvzct|QH%>@xpa`GhKd494q=!ny@+5j66 zsZR%8ztoN-8}u#A2Klt#@kH*l6fKz6ZBQ-j|XJ|I+<(^}bV|@xtkm z`mpHl=~ECdmXmxgK2`*xo5_Z^UL{P+!FVFrq+HDgBq!tSidM8pEQ=r*>Eo;zB~rqc ztOPqIG#A$?s0#D?#|*HMIMmUdp;>N*w-S?6hD znw(f;pT-!4Us${JUrZ-n*~z+ON9094och=L1l#YNa?ZrRy*%RGr6-=4)#jc z^*A|Gj%pXl#GUzV^7qg6y(ho-gilVc8j0U$n>E(^tb;2Z;|g+qy8I@6q=5v}Z`fyX zro?b+;;19FvZ2Z}$=2!?8YJ2Z+GyfKXAen+3z9D^x_j#5DzYRI#jZzlW-Gpa+o=7y zuJnHYzHp^CHY0JtI{ zSL!1I#%!XBCZbIvFqF^e4#&G!FSqwT_MA!nDD}YnL2LEc{h&F%JAco7&h!|4>iyZe zA9ku_o~kL_pG1ktjYJ{=>M%5u9GNI%T58NDQ4$@z)S=xIsBqHBv0V8r+D2WJ{Ij0o zJX@b5KSQ57)&r40JjG-F;Tg{CNZ$PB>D*I4(@xS#_B0LjX`1gRt6oRq+}WGo|6hA& zjDs)?L(vwAF=BxOu#f|Qm|3|MC+mP1fjumo0RmFD^1hRnfgOnmOHm!iRu$(fan!~! z;0Yiq7@4EQi|qN1$x=P(^xzuolZEV`=pESAHGrvEZ>n>>Q%aFC$^2Dj*FJl7Tz2Dj zS}nL($kTC;hUZwJXRtkkZW{qPqz8wX^qo?|3@%g1yj~$WvcZOc8z2W}%s^A1DR7K6 zjPBKCb*l3%2Qn<1;wXxlkiO mio|#~(#~JM@ptAg4A=|%76mCpPFimO0000