From af4cea32f387a20b61f9275bf8a2998045c92a7a Mon Sep 17 00:00:00 2001 From: Sayanna Chandula Date: Mon, 29 Jan 2024 17:12:20 -0800 Subject: [PATCH] thermal: update vt prediction models with higher odpm average - Updated vt predictions models with 15 samples average for ODPM rails. - This reduces VT prediction being very sensitive to power changes - Remove other ODPM rails from VT prediction except for VSYS_PWR_CAMERA Bug: 307824060, 322910529 Test: Build and boot on device Change-Id: Ibb285269d3da86e3d331ea3c7c5a3cd715da0ba2 Signed-off-by: Sayanna Chandula --- thermal/thermal_info_config_caiman.json | 31 ++---------------- thermal/thermal_info_config_caiman_proto.json | 31 ++---------------- thermal/thermal_info_config_komodo.json | 31 ++---------------- thermal/thermal_info_config_komodo_proto.json | 31 ++---------------- thermal/thermal_info_config_tokay.json | 31 ++---------------- thermal/thermal_info_config_tokay_proto.json | 31 ++---------------- thermal/vt_estimation_model_caiman.tflite | Bin 3264 -> 2985 bytes thermal/vt_estimation_model_komodo.tflite | Bin 3264 -> 2985 bytes thermal/vt_estimation_model_tokay.tflite | Bin 3264 -> 2985 bytes 9 files changed, 18 insertions(+), 168 deletions(-) diff --git a/thermal/thermal_info_config_caiman.json b/thermal/thermal_info_config_caiman.json index 8e0ec843..4cc53ba3 100644 --- a/thermal/thermal_info_config_caiman.json +++ b/thermal/thermal_info_config_caiman.json @@ -200,8 +200,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001 }, @@ -956,35 +956,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL1", diff --git a/thermal/thermal_info_config_caiman_proto.json b/thermal/thermal_info_config_caiman_proto.json index 1a29829b..55df6211 100644 --- a/thermal/thermal_info_config_caiman_proto.json +++ b/thermal/thermal_info_config_caiman_proto.json @@ -188,8 +188,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001 }, @@ -978,35 +978,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL2", diff --git a/thermal/thermal_info_config_komodo.json b/thermal/thermal_info_config_komodo.json index a8ae0d80..92245e4f 100644 --- a/thermal/thermal_info_config_komodo.json +++ b/thermal/thermal_info_config_komodo.json @@ -189,8 +189,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001, "Offset": 500 @@ -933,35 +933,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL1", diff --git a/thermal/thermal_info_config_komodo_proto.json b/thermal/thermal_info_config_komodo_proto.json index b68a2ff4..4168688f 100644 --- a/thermal/thermal_info_config_komodo_proto.json +++ b/thermal/thermal_info_config_komodo_proto.json @@ -221,8 +221,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001, "Offset": 500 @@ -1067,35 +1067,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL2", diff --git a/thermal/thermal_info_config_tokay.json b/thermal/thermal_info_config_tokay.json index bce8c545..6ebd76bf 100644 --- a/thermal/thermal_info_config_tokay.json +++ b/thermal/thermal_info_config_tokay.json @@ -179,8 +179,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001 }, @@ -909,35 +909,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL1", diff --git a/thermal/thermal_info_config_tokay_proto.json b/thermal/thermal_info_config_tokay_proto.json index a1d87fda..ec6f759f 100644 --- a/thermal/thermal_info_config_tokay_proto.json +++ b/thermal/thermal_info_config_tokay_proto.json @@ -167,8 +167,8 @@ "VirtualSensor": true, "ModelPath": "vt_estimation_model.tflite", "Formula": "USE_ML_MODEL", - "Combination": ["VSYS_PWR_CAMERA", "VSYS_PWR_DISPLAY", "VSYS_PWR_MMWAVE", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_WLAN_BT", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], - "CombinationType":["ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], + "Combination": ["VSYS_PWR_CAMERA", "battery", "btmspkr_therm", "charging_therm", "disp_therm", "north_therm", "quiet_therm", "rfpa_therm", "soc_therm", "usb_pwr_therm"], + "CombinationType":["ODPM", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR", "SENSOR"], "Coefficient": [1.0], "Multiplier": 0.001 }, @@ -975,35 +975,10 @@ } ], "PowerRails":[ - { - "Name":"VSYS_PWR_MMWAVE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_MODEM", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_WLAN_BT", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, { "Name":"VSYS_PWR_CAMERA", "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_DISPLAY", - "PowerSampleDelay":7000, - "PowerSampleCount":1 - }, - { - "Name":"VSYS_PWR_RFFE", - "PowerSampleDelay":7000, - "PowerSampleCount":1 + "PowerSampleCount":15 }, { "Name":"S2M_VDD_CPUCL2", diff --git a/thermal/vt_estimation_model_caiman.tflite b/thermal/vt_estimation_model_caiman.tflite index 4a8e9e5a36a6037dc50ba965afb6b40efcd94882..0a7f7fbd1e16e30b81067e702f3238e9fac19c24 100644 GIT binary patch delta 707 zcmY+BeJs>*9LK-Eb58DJ6hoYe%|obMBFFFhrA+ik9yk1BXn82p154%MF7E1B>GWf* zXx*@uKRgsYP51fzG*L7vn_M%iX=c_snZK3nBNt{-lgu5VyP{ytVkzQT zGg&M`gpfbaIiDS*Zzh*yow|#g%uVEMej3=WNLY2d54j$b#J;O{ASbJw*uCbhA1#GY z-jmlj!`B^jQd@{ktb%CMK`5Snh0{W%aA-9JFCLcbU1alMk$G}b^E5mU&nL4<8iih$ zErUtFa-f3Rpd{Ir9ewePZY<6uC+0+)e0&3k8KOwQge!LYcD4WL=oGF^=>*2RfYyGU z*4OMd>+fegjZPTq)c2~g$$Cf^Z79xT7pnWfsPO~O<)J9g?r~a^IEFnWR>T-r2R(Ki zF1itfAI#X0mTrX?MpM&~IoBlYE?N(>H?=VD_Xh8YH$s6>uyM<^5v=qUtBDB5{S#+MYMm_!XwJta!EK;Y9stvt0>p*x1G-f! zxg>G@g@%vbqmD ziPwS&-ey+geIrI}_Ipgr+^VsMsS{@zIzSt51T|y?waESf+vYfvyXKEyYj7d`F^E^_a;3O8= zGL6#kSpJGN#Ce(=mb$os9!^gG6DN&0k@!iJ9)6eD3nS%jNEm zd%g+dBWhljm-{nJl|XnvZJb>cT-$Ik$RTBz0s*tYd?~9FEfoKHuhTC2SuFNGWaA|p zMM3NVNtEmGy}7xg0#pTVQq-@ykALvuzmk$X3aoUEDw&%jkUW!S8$ z2&*IEi*|ALCp}g%!&utAkR#cyBIn1s^XLBT`FNKM3cryQ{Ry(%DeUI2xwst@yTMnVO(t7fdRMPfs@ICgi77%!4k;Y`Tc7R0pH65&`o$rb z8jqmu1tVB8TE)E|$K%De4XWtMX5#oUm&9+2>1#SsgJCy3YHL&+pE7ok-nlcM#$Rg0 z8fPcS5&%CGw?kQxiF7e8+7lf^VgtvxfO6MPy3D2|m-BLYQGG4RQXHX9Q3*K~dswxk zMo-fkyz8vKRb;l9aE}xQWdFGV^vzUav~8i^x+6*H#02Jx1JsLrU33$dLnI506sBj8 zzi1|1`Cmb9au7XPwuXylI{-cjq(5Y*qQtL*_B%1%q? zJe~pcIl6J{w#B_eD_6tWoLe|P=tue8ld#3sg+&FiAl^3xy8b*edA*Sz+PYT#`I4J> z`pEZmV__0pe-WVR6_(Z>_v56_yP#C2LZ+UFYxia3)`AhZT#|JN`@uNVl!u^*%A#FbFwB&{$Ijq%+zFPpV6j7t?{W$ z)9IcmW+rP=Z0pn633*w}|Aq*ILLRUA#41FN0G5}BhMJR}6MiVeh=jLZh(*soR{sLl C2%*OS diff --git a/thermal/vt_estimation_model_komodo.tflite b/thermal/vt_estimation_model_komodo.tflite index 27e8be989f01c4279cb34d4885b3d48642d52eab..970a2b65fbaf43da7246cdfa4e8d5173770d534c 100644 GIT binary patch delta 707 zcmY+Bdq|T}7{<@{wSDR4MA7m}$-GR{G?Ub_@0=;4>|#sBvLYLnqcn?3XSP4q$}A+9 zx&kkGNz|HY63!r<=eV?_@PcMmcA+dN3!rUQ$)*SkDLG8pkD$c)orUwSumjX;V@oG_A7gH}KM^F?~7DOLKU}W;@C; zW3}0M0DwRag)s$6CTO%*`xK_beAq7$5)eu-$ zX<|CIq4lfIuua1NxmjD_^2_ZcrYINnrn<9(Oa@77@W; z?m9Gzw?gBvrW&t2NRwh<4+G!2V4Ak!mQRn6ypSO-dm5o?qM7}c=|bMU24r2CoFo;V zK$C`f7{l10Tqlwac*he%Ng9ec`K2q&s3X7OS`@|%;;H8MP*za}HK%IW;LKPuFzf}D zt>@VAdqRRn6OcJZgeDK{?lftBDv5T4g&krDW&RGVc*k_7Vw#5v?fKB>O$*G5l92+R zUo8KY9Hk@&;p5hgNa`D6R=N8V;n)3WE<^%BYcv*>O4)?Ce(dU(kDY2i;;B#tdTjew zDc34cYO>9nPfKIf2EBP*yN!~v#VnP7cjsM@HhpWE;3eBVQ#Bk znnP0p{W8HUr_RDCPPYhGi-J>7s*~)yNzL7=_2-4bdaE$c=RcQATsi*ES*l*3zv2+U IBnlU-Kd~+u5dZ)H delta 988 zcmY+De@s(X6oB9BYSju<2`Lj)=9t@%N7x2oL;KEqAQTD|5D>~>;Fu!INTwZ*IyEhV zL8S&*v2_C?sMCxYRB8-D-+2#Fs7)9f^-;y7Z+&y4PpOO`c8H{ltdv>QN&E=K4kVB#>r4fY4|%-TrC znLP}Zd+czdBhLuhv@i%5Erpv$9gvqa4d;F=fhx_f$j?56aCEHv;|k{ zDzM{mJ`RkS9hdKQK%}IfR;=F+M-*o4pKOH_F@Ai_z~{8mT299s4mmDfXaRlga(*gl z0^79%$Q0GU8rvQ^)BOXubak*b*f`FmB*Y2hOCp&s&YTjm|NIj3Cx->p7oks238S3y z;`V)5%^4h(7%qMyKyEMuQW?}jPeFIezotf$k5>>2kRhJ(E( zUef1QtzPv8(|YAPPJ7>n2Za=lFq!oIU@iAf@>M)ty%}uA#6w`aRRyvBQE2y_!P$;| zbX93BeZcT7nrHiIy)qF`F0A67_32Uim6cYryWy`Vukbm~x^VVL0*2%t!yS#+=)KmB zsF{p+-1{ySwj8E#?tCh}z3hf6QcJ-|%M3oK@8$x}TOq@_ROlM~4cW3fVQtt+!Pwo< z!K;dH3cFt4fCWKs@qd>e$G)A{psC51!AH9QHavo#V$b58g#e8kqA z3*qfewakT}%|c+v3}@=3n5^L}jIv31XJ-OK6AN^~r*8sjnnTqj1>RW=_`B+3&R4k~ zKA7K2HxFHh?kiVw;p-k9G_?IeS1%jG%J4Jr*`+Cb_{pehDD*Z*J$@Hm6QStxylBpC zR5XY^O5``mkZ+vk2h)1lMUOU{xGLK=HoQE6UUZ8f^OKh4oCf=ltV}{GEZXHy#i)_L zFUAUan78|Agf8h;yN^pe?6P#rLsPReb2AImb219!G@0osF}d>pHniHDnC$qMJS{F> z`$99+>X(u^DKV*qv00XJx#6|{6%h;hEk5n}Fp;GzEP`CAOix}S{!)S<#ThHEC0>j6 EFFHu3?*IS* diff --git a/thermal/vt_estimation_model_tokay.tflite b/thermal/vt_estimation_model_tokay.tflite index 8ff47161a59b645217260114c33f5ed257109521..6ad2f95adb6703abecea2de9b3f24f2262baf2a1 100644 GIT binary patch delta 707 zcmY+BeMnPL7{>3`Hn)4TY&t(O{Agr@)UYU1w{t|LlnnJB9T`GFqGn-bOH$iP4UNic zGitO*V_Fkj#uiw3&zWuEXCZ@Z%A$}3rDY5=bT!vCiRgvj!~5~Pe?8U+V;CJzS_A}P zXUQkq_Lg#{+wR@nVBiyko~4;3o3Gu^iQ+!+noBtjE?4E#rt(TSlUf}wQeEct`zu+z zKEIzw5QL1yc&Z!C+E;+Cy$jS=eg_vkHW0fA!DV*?)ZeZHrSKy3ez2j$m9-z5LlCA2 zxz+Wm9Oc&A5xw{v9Sh4wzBhcVjGcyd$2^D;eM0+&XH%D+xhM6n<20BEx-Y_sK1E9+?sf#dlCp$ z%?jWaa?&L|DX6UYKJ@1W@@?YuqM~FJdO{E9yd<#fB=9BSF4*l>qQ3v@=&#(A~3l4?h1Wg}|v;?4Eb#*|j9|lLBZN;}pS`Oy~m{&N&MBNc#hj|=X zm!p{kLkGfpULupK2^icYa;g{1jBB!su{26R?{+J?IU$DP&q;tJq?kUQhMe}3uu66X z230=BO_L^I8*9OVLl!(IF)EUBuVU%Z24HQk05e-Uz(~_!tXtU4oXZ#m%E2@^>i-vM zmOLbrO_mVXP?@hOk!`gf*eJ5eJVySX;UG=D2zHXJNk9k*9;*baYb-NDo4F&Pn#&=z z67najo2X<~bEt$sX)#m=WqAf_S#Pbjf!d+7l_^yQkBkwAoZ@)`s zgcS2cq%Gu8OZ!4Fc#7lsd%<7`hGEZe#E(S~e(NGFRyo1jx`i0oQHIEmW8{hEwME32vd1}C~9oMOTL+b zfu=u^@7ro*61nkR5HO_~ULw}K3n}qbrg*lvC`Bpj~s~7fNYJkt58bqh& z{IJ+}6FhJJ2+h~$02DRwB;5&T1RubGc#8!1byhhrtB5a&RV-2cGu(YEpWXX|f&P9M zNhs2i42y`1^mBK`?E$X+C!K1sA~ z?j(B5>5$Z6BU~3c;Lbo7%$TEzn)xQ`#oeJykEIdMrUKBZuLt`TH+X!7=>dr#Z0U2@BRR>1rWvE|$ z6PXf@qe_XBHWvP_2W4y+;NE$N+{hsDi6e+M4Z%A*ouJxt15dU_(U*2kB1iDSau&a! z9pZNMUo)IvH;g})I-GY!G3;@DI%L@WIt`Q0DVCBXD~Jx+IwBb!m=aX-d6A@g`6B0Y zgz22G7Or2B*qEZ*JZ2X;xMBxM2_?DPwR&xdrXas$Q;t@n%G3-03#iovncK4-(pxuW zsUOIErShR