From 8fab77c56c099be6526a3abd4e2e0008be9a9e32 Mon Sep 17 00:00:00 2001 From: velz Date: Fri, 15 Mar 2019 16:41:19 +0530 Subject: [PATCH] SCORE RELEATED --- api/application/config/constants.php | 3 + api/application/controllers/PD_Controller.php | 93 +- api/application/docs/sample.pdf | Bin 69149 -> 30117 bytes api/application/helpers/pdscore_helper.php | 10 +- api/application/views/js/phantomchart.js | 13 +- .../views/report_templates/JSONTOREPORT.php | 1376 +---------------- .../views/report_templates/chart.png | Bin 20089 -> 18735 bytes 7 files changed, 110 insertions(+), 1385 deletions(-) diff --git a/api/application/config/constants.php b/api/application/config/constants.php index 8c9bbeb8..2506c816 100644 --- a/api/application/config/constants.php +++ b/api/application/config/constants.php @@ -530,6 +530,9 @@ defined('PDADDRESSID') OR define('PDADDRESSID','pd_address_id'); defined('PDCOMPANY') OR define('PDCOMPANY','t_pd_company'); defined('PDCOMPANYID') OR define('PDCOMPANYID','pd_company_id'); +defined('SCRIPTS') OR define('SCRIPTS','m_scripts'); +defined('SCRIPTSID') OR define('SCRIPTSID','script_id'); + diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index d6dc7dda..a681887b 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -3552,7 +3552,41 @@ class PD_Controller extends REST_Controller { $data['pd_master_details'] = $this->PD_Model->getPDMasterDetails($pdid); $data['applicants_details'] = $this->PD_Model->getApplicantsDetails($pdid); $data['pd_additional_requirements'] = $this->PD_Model->getPDAdditionalRequirements($pdid); - //$data['score'] = $this->calculateScore($pdid); + $data['pd_score'] = $this->calculateScore($pdid); + + $score_for_chart = $data['pd_score']['score_summary']['overall_score']['final_score'] ? round($data['pd_score']['score_summary']['overall_score']['final_score'],2) : 0; + //echo $score_for_chart; + + //GET phantom script from DB + $phantom_script = $this->PD_Model->selectCustomRecords(array('*'),array('script_name' => 'phantomjs_dev'),SCRIPTS); + + $exact_script = $phantom_script[0]['script_content']; + //print_r($exact_script); + $exact_script = str_replace('{{place_score_here}}',$score_for_chart,$exact_script); + //print_r($exact_script);die(); + + + //GENERATE CHART PART + file_put_contents(APPPATH.'/views/js/phantomchart.js',$exact_script,LOCK_EX); + + $str = 'phantomjs '.APPPATH.'/views/js/phantomchart.js'; + exec($str,$ou); + exec('phantom.exit();'); + + //print_r($ou); + + $chart_img_path = APPPATH.'/views/report_templates/chart.png'; + $type = pathinfo($chart_img_path, PATHINFO_EXTENSION); + $chart_img_content = file_get_contents($chart_img_path); + $base64_pdscore_chart_url = 'data:image/' . $type . ';base64,' . base64_encode($chart_img_content); + $data['base64_pdscore_chart_url'] = $base64_pdscore_chart_url; + // echo $data['base64_pdscore_chart_url']; + //die(); + //END OF GENERATE CHART PART + + + + //GET ALL PROCESSED JSON for($i = 1;$i<=25;$i++) { @@ -4133,7 +4167,7 @@ class PD_Controller extends REST_Controller { } //Get Latest Version from PD Master Table - $pd_master_details = $this->PD_Model->getPDMasterDetails($pdid); + //$pd_master_details = $this->PD_Model->getPDMasterDetails($pdid); //Get Blob from blob table $fields = array('content'); @@ -4180,7 +4214,7 @@ class PD_Controller extends REST_Controller { if(is_object($s3result) && $s3result['ObjectURL'] != '' && $s3result['@metadata']['statusCode'] == 200) { - $urls = $this->getALLPDReportsSingedURLs($bucketname,$key); + $urls = $this->getALLPDReportsSingedURLs($bucketname,$key,$pdid); if($id != null || $id != "" ) { $data['dataStatus'] = true; @@ -4292,21 +4326,31 @@ class PD_Controller extends REST_Controller { { $is_regenerate = 1; } - //print_r($records);die(); + //print_r($records); $data['pd_master_details'] = $this->PD_Model->getPDMasterDetails($pdid); $data['applicants_details'] = $this->PD_Model->getApplicantsDetails($pdid); $data['pd_additional_requirements'] = $this->PD_Model->getPDAdditionalRequirements($pdid); $data['pd_score'] = $this->calculateScore($pdid); + //print_r($data['pd_score']); + //die(); $score_for_chart = $data['pd_score']['score_summary']['overall_score']['final_score'] ? round($data['pd_score']['score_summary']['overall_score']['final_score'],2) : 0; //echo $score_for_chart; + + //GET phantom script from DB + $phantom_script = $this->PD_Model->selectCustomRecords(array('*'),array('script_name' => 'phantomjs_local'),SCRIPTS); + + $exact_script = $phantom_script[0]['script_content']; + //print_r($exact_script); + $exact_script = str_replace('{{place_score_here}}',$score_for_chart,$exact_script); + //print_r($exact_script);die(); //GENERATE CHART PART - $jsdata = file_get_contents(APPPATH.'/views/js/phantomchart.js'); - $jsdata = substr_replace($jsdata,$score_for_chart,(strpos($jsdata,"score")+8),5); - //echo $jsdata; - file_put_contents(APPPATH.'/views/js/phantomchart.js',$jsdata,LOCK_EX); + file_put_contents(APPPATH.'/views/js/phantomchart.js',$exact_script,LOCK_EX); + $str = 'phantomjs '.APPPATH.'/views/js/phantomchart.js'; exec($str,$ou); + exec('phantom.exit();'); + //print_r($ou); $chart_img_path = APPPATH.'/views/report_templates/chart.png'; @@ -5346,7 +5390,8 @@ class PD_Controller extends REST_Controller { //seperate PD Scorable quesitons from JSON $score_questions = $this->seperateScoreQuestions($form_data,$pd_master_details[0]['is_otp_done']); - //print_r($score_questions);die(); + // print_r($score_questions); + // echo "###################################"; //Get Pesrsonal Assets Grid Masters Details $this->db->SELECT('*'); $this->db->FROM(PERSONALASSETGRID); @@ -5360,7 +5405,8 @@ class PD_Controller extends REST_Controller { $this->db->WHERE('isactive',1); $personal_asset_grid['variance_grid'] = $this->db->GET()->result_array(); - //print_r($personal_asset_grid);die(); + // echo "calculateScore"; + // print_r($personal_asset_grid);die(); // Call PD score functions $combination = $pd_master_details[0]['fk_lender_id'].$pd_master_details[0]['fk_product_id'].$pd_master_details[0]['fk_customer_segment']; @@ -5394,7 +5440,8 @@ class PD_Controller extends REST_Controller { #####General Form Questions######## $general_form = (json_decode($form_data[18][0]['processed_json'],true)); - //print_r($form_data); + // echo "seperateScoreQuestions"; + // print_r($general_form);die(); // - QNO (1.7) OTP AUTHENDICATION DONE @@ -5408,6 +5455,10 @@ class PD_Controller extends REST_Controller { { $score_questions['general']['person_met_is_applicant'] = 'yes'; } + else + { + $score_questions['general']['person_met_is_applicant'] = 'no'; + } } $min = count($qualification_temp_array) ? min($qualification_temp_array) : 6; @@ -5425,11 +5476,11 @@ class PD_Controller extends REST_Controller { #####Address Form Questions######## $address_form = (json_decode($form_data[5][0]['processed_json'],true)); - + //print_r($address_form);die(); // 4 - QNO(1.2) - Comment on locality - $score_questions['general']['comment_locality'] = $address_form['comment_locality_master']; + $score_questions['general']['comment_locality'] = $address_form['addresses'][0]['comment_locality_master']; // 5 - QNO(1.3) - pd location approach - $score_questions['general']['pd_location_approach'] = $address_form['pd_location_master']; + $score_questions['general']['pd_location_approach'] = $address_form['addresses'][0]['pd_location_master']; #####ENd Of Address Form Questions######## @@ -5460,7 +5511,7 @@ class PD_Controller extends REST_Controller { #####Business Form Questions######## $business_form = (json_decode($form_data[13][0]['processed_json'],true)); - //print_r($business_form); + //print_r($business_form);die(); // 10 - QNO(1.6) - was_the_company_name_board_sighted $score_questions['general']['was_the_company_name_board_sighted'] = isset($business_form['was_the_company_name_board_sighted']) ? $business_form['was_the_company_name_board_sighted'] : 'No'; @@ -5474,12 +5525,12 @@ class PD_Controller extends REST_Controller { // 13 - QNO(2.4) - all business certificate $temp = array(); - $temp['shop_eat_act_cert'] = $business_form['shop_eat_act_cert']; - $temp['gst_Regn_cert'] = $business_form['gst_Regn_cert']; - $temp['pf_regn'] = $business_form['pf_regn']; - $temp['esic_regn'] = $business_form['esic_regn']; - $temp['export_import_cert'] = $business_form['export_import_cert']; - $temp['factory_cert'] = $business_form['factory_cert']; + $temp['shop_eat_act_cert'] = isset($business_form['shop_eat_act_cert'])?$business_form['shop_eat_act_cert']:'not applicable'; + $temp['gst_Regn_cert'] = isset($business_form['gst_Regn_cert'])?$business_form['gst_Regn_cert']:'not applicable'; + $temp['pf_regn'] = isset($business_form['pf_regn'])?$business_form['pf_regn']:'not applicable'; + $temp['esic_regn'] = isset($business_form['esic_regn'])?$business_form['esic_regn']:'not applicable'; + $temp['export_import_cert'] = isset($business_form['export_import_cert'])?$business_form['export_import_cert']:'not applicable'; + $temp['factory_cert'] = isset($business_form['factory_cert'])?$business_form['factory_cert']:'not applicable'; $temp['cert_of_practice'] = isset($business_form['cert_of_practice']) ? $business_form['cert_of_practice']: 'not applicable'; $score_questions['business']['cerificates'] = $temp; #####End of Business Form Questions######## diff --git a/api/application/docs/sample.pdf b/api/application/docs/sample.pdf index cc4d879b455276e9661c760444eb1c50e079bccb..ee98cd04059fdc1fffc321da50bdb9908491e7ad 100644 GIT binary patch delta 19099 zcmcG#Wl&sE*Dgp1(m)6_?lcx8xVuY$;2tcvyXzsiy99!Jf(3`h0tC0b*pYwS9MpPv)5jGowb)d`#D*e2t|i);tNsrQCTD$-0WQ;>|oXajQd;tzi0;=yjg<%?~yx(nvcZ8AQT80v%U+>WN*yio7r{(bkr7IjdDX z(R)=w&WtHR5<01dope*aXjg)y8a6+Z!toyJayt^z3e|&^E9nPAg-ISwBXLQ@ggQ(Rq3UL zj*X3A=Z}fu73}Lk+Fu(Lb0R(~m6H-DLfv(?CqIwK#=xpBop|J^wQH_VYy21!jyqV5 zez*&~XBay1UDL*FaorH6yj7RM#;%U*6MJSln!gl-F_JX;rDEAJX-4~r*2qF;KeJ*f z$z*<3Op_paCI6LD7flJ2Ut#xNa$#L&jAED1Cwa2W(B>`y;xy~XM`#^?Fz(E^9M2+N z)i~-@&;9Tx`m!R#;#}|1jMJYSRZ$5fGTEJL+5P79aNpHGNms>+!TA#*ZB}RV4wYao z*u4P9!iUQ!BOmVoq5C)7W&+Dh#j_E%O{<1b`g;F0%K5Vj!`If~O;>B7=IFZGdV>9x zN1S4*-MgMb;g33`KEegT4d*s^O1VbHlkRPc zN%I>*aV51EW#lC)oY~SNqeEQjzh)ZWr`Q~da<>Lf0a6oWQe&7P?7f@x<;<+Kim1?! zP=g;RHWkVd<~=+K`XTkp|8SqV5B1lmK9m?2AmbhMH{-pp$mw$>xerHK@Z$Y6X7rrt z+}_MIzn)kpY;o+0QtPMS-Qtk{mFP{qA={q@lWDJeWD9NTf2d~mrvKyTuwM?w)~LLY z+B9UJH%VbA*hw@fj7hjCm`MgGjBnVIVo|t~6j3m1CsFn=0UnP3?-of`aQGpL8G8B@ z$;X{`?tkiBHbJfFBM0C33wcOKEqQM0tJX-zDg2PknXywiWA&NbWjjZK1u2+1_|Kh= z`FPP?YplK6znXjHYEdKJLYCj&Uqxw%K6${2bS%BrE?&~V+EDPF-u}3F-oY;vSrZ2A zesQty|4MO5D6S|LMUgXXYe3euUx8FFsu_?#=JAS11^#JMfzNT#4v5~FMG_FsehXZ5 zNg=n@U;<@bf3-BFOLoEGR6mO+U-~{aW4BiiP2{x^)fc5puuiVdQ1ESS!Q$5aD8hJ6 zfU-Z}C{j!ycY89hrk>0BuE9s!58n~cl2jVE&Qk9G^?13jDpg=<<$_;V zR4z4Ra-94;3v^d=xqt@ufA*>*n!_%gLj+-Sq9JQAuwOjhsHK@L0O@ z_P{#%iO~EAS^0bS)bn0DPUGr|91`PFlw{`yVE}-~- z|90U2toZ+5=>SZ7LT!AwT)vx$k{PYIGwq$4J~Y)ZzrUMvHAY%7ld_VM+%_|TfrwTE zcvp14pm?nwS^JNj?wk{K) zOK6`Jb4+L`f4R?5>Env3i($gkeec_(q@*k}``!|PCyxpSHw$HdnnA#{W7S3qK;IqR zpmoOr=F1zBucEK&mg?4#Mm+^bjr!x67FqjfS)h znyCHm1Z#^SyKtsK5QOl$t3VlYmc4tEq`uASw6xPw_k>#W=PzGg<`P{Sdfr%KoPgn3 zlWnUDcks$RTP>IorpsAK-9e>8F)aabHDW*(T~sg-=H#Y}nC3E^F$ zcl*vtO90hgTTp2$T1hta;^HF1TFY=-Q`g+v!2ZjFqlEvbX$KNXLmA?iD~4 z^ALk~o#Q{-PuCqzn24Ccxt_615=1kd`Cq~8jXra)eN$JTfBpJkQPG{mK}V2rRL@MA zKg@}^ta;>9Yn$%n)jZ#30thOQ#hJ`j8WjsjcM>D3z}*1c||XL+?Lg}Nz;)r(nRajqt?%q`M(mixcM?h zI|^BxL-lM;d(~77q$HE8eSL-a>S1f+a1kT`86U&tcE@HS{<(v*dT=`cswsMef`j*g@* zH1lDFH~b4oTsikmBT}Ew+s|Gu`*p=4bAl->Darbn&IKdke~6KfC_rLP-VW&I%*4A$ zC%JSQ0z>_&2_29U4?-s;H7~FISZjQ~A#U};bs@^=B+1lqSURWK-?jYi118-kDq>i_dT=N>h##!@+@G!3G60oUwJ-AYGamD=?y zo%Mbb&xJ_@*uO^Qqg_>gk{gH*-d9ms?vT-Dl{p{XzQ~m<|#%uBWK4OcUA>?z@V7JKJ@pRFzj)<88i>Q&4b90{E=scX9oYA`jlf?>; zcbjn*!`~@9G~mWj3#8v9OJN3|`ro!}eiozTcRQH6*dFrAPOE1Kpo8To+$9o?OKD7kZ^i>+Ii|N<~3|iROh3)>LKQq z&r3GP?ml0LigVuvzk`jyF+E*r%Qt*H?<1GjMhS3-fZpJ2{f)rRH}pA}qDT4o=HL4x z;Wv;1QJJvSnk>#%6l;oCNl-*Sr-4a*VFgcp`=c=lE4^?;8Z;R#e5sP zZ74KU7$`hsB^jp{dtwZ?vRIAud#%V8xqR^Kpr;`)!QNobzx$c&`O|*GwtGvx`|l8M zo5~eETs~GHCWKSCap=(T4tPI}NEC|}6O%bPz~$BSX7aA9c@^`WN&G_e!0u}~n)_c@ zcja9texFVk1jSWSfn{?3k#R=Bs_C1p66l&04TLuuonE)wneC6S&`PTXpHV_=FtyFt{mq!qc8TuS9)3W1{srZbg-bs z8Hs`LMdWqqaUgpQANeZmpy|Xu@>7n3t8h9?Oyt)y9%4cA#9fJ+q+AZKq{?$${5_WT zc|i`XFee^NT+HC{-p!w|L_VwD^1%JvuwYA1i014(nJD7}q?o%)AM^S)RkRKRUpp!r zLNC4fLi~_?jiQNg{j6M{c-t3!-7&J3CBj}Xr)b?jw}0!PTXo&vAXr@5YxX^uyO5L} z*;A@!`clttafU1>K%T!BL^G2gRdP{OZ#KG4R{h_^!oNfX%OQ~-@BBteeLBm~PH!9i zA0ir$r~v;{TJPQ8uYz*t{o|Wee9IdKJ{Px~eu;J4(OMqE>Z{2=+|qFW>OZ(;QG_ah zRl(T7SSU>|7Piuvg!_X{;*jbMo!kj+GUgO&`=A*5OAGCzSe3mvmHGY6c%Ua=<~O2=6TiB zs7=T3U;LJW!KXCFh#&f2!%c98F7}`EtwuT=q)q~Sqc$)Sq`yYg?->s;>orq*tRWK0 zTdxnA=}1bdn^h4%`6~Udx~i+)rX;oQXj+O;QgWJ@hi|J&$NFVPb2jvvR;$YL3*c5^ ztcV2{5`|nKai-sebD_W=1A`rEO5K$}F`=HiOkd*h-}67!zs0_vO&y^nyQ@Cbje0vK zTp;2ZukNWLaV$0$hy4^<*&94|G7CIk=HE;>)R8{v{+k_zmY(r4xbsHXdNt~Mdaz~) zOJ;;XrZ9B}b6arTZmcOO7c=W98rc#jceNwJf05pNO8!7b4&rQkT^Y!Eow^@!K*;tV zJex1kgZzQgo%CN}SZw+d1GjEb^Rvv!9WQPzD-*7KZj` z81n9A8*=)Fi>grVh>{7dn$lA_{Nv?`>ywg{)Er`cE60?ILy4cTxJjY9b?kpyZNl_} z8zdn7ufC2o=LUj1E+j7Hh8z*j8_WF8P5(F5`Dgkp`s-6!tByMXHmw)B-u#SZ?BgQh zvQPsYnrR?B7denMWdaq>hwCyIgij1_t;Yni#=zrT|a7@{j6P zM_DMpNSQe6+|@er3i=`Xw1)8mAW=C^uT!T-v~9U0k@D_aZA70zu?dUE=Zvv2F9^jm zw_-`|DPMNvL^d0HP#@4GiX(<8o%i1=8bV2_1S_NG>dVRpb!z?XMt)y{WIJc=;O*?P z(GQ;;>}CYAHUPEhq(GeBqH$g`#Jumo)WdBsJhG$w9HpW5#qx=0$E^!jpHERZ@W;IJRMxFQ6V>Jbu0 zK>}F!gX~ab3^~<2l_wv(GUYCFj`gC;k?U|PRX`tEXWJ2p`L)}eCO?*QphJg-5<8#Wpu{mZN;rICQ_y@j6 z<{Z_LYyc1?{##f;6mXR_u!GB$bA6Do}OODp)2WfsgcxBEci!j5| zz4iBYzLqH_eynbvknN(N_)d%xitjc_CO25EY z?hgZXeS<_ZWJhWlFjO#la9#s^*PaK1v)3cV1P>!qiCJl~lIj{4gCAs0>jBcZf{UW; z>06F8be<+@xr!YBi|t5qcfmW8=gzThp(G;K`D_DgcEzLUTVG3mp0O6Ts>{2ui>xA< zRSy}P-qOc3aP=#u*j@6){+pk?WkZ?MW&)xAsn>xfjk8HK&Fz*b4_z~D+A56^M_t^L98twRS-e)j`GFU5%#N22+OK92qH=`c`X zAZ#(InYg#Q49D(|xiMass4f#>y6};q&5bR_VMTwA z_i;b2)CM&eta2CqxtlIAW~!wT_FnC>+9cb-+Q$HYLVE;@Z{1}AiXP`t(A(95ukmh7 za#R1de*kN_O|vhaV4+u1t06E&u-BC;*tNJJ3c%!fo$U=C|G*9x4J(Pm5mt6x+VzGV z7{~8@%WYJc$CE&^^g`lDtJ!?*0{eH+wSn11HS*|=7nM=VSYPy9_a?Eo?AXD@$BT-% zxS*%q#SSQ$Mqb3W1`Yu~cbSpH&ld#h3X3^p@j5Nt;}=Kd*V7uPUj$S; z)rGY~JKe^`KDVnC4+^y1q`C5q^(i(d+Og$Qg2dycZs%)H@Uu&fb+3&$PbSoE;Ft0( zCb3mAWxK@xstk&hH#h5f`WP%0-S(Qj&S3IHxbfw}Hvyces@Mox1KzX8LroP9E|GF# zst@o>Dr|AeU|x!NPuGewY3s+`!{nrYxv*9|UUm1}gjQ<>`)-m0+Q2CD2*1w(>=Bebnd0(Z;JkD3R>v9*;_*Xk`b(ar+%Z+jXvdTg^+8!jnURtKPX z%6JGA;j>U+bzh)E;)lFOgH57pRqQYK-_h2NR&2}uZu!gPg7M)CRV@v8SQ z@&{?2vo#slFLsji2sdDlp_%Nh+&9c%Od>JI=ga9-Sd1X$8-^zT21T~=M|QG<@jQT& z0HdM$?FP#(!Ft(NTd?$Uzq zhP2b(+QQnmP3M~=p~}=2XfbE>rw4S>G13M@g|aQRwLY(1C^v<-%cL?6u{yX8-~ZGxhtpkw zj3n(IZ<|k`YOnX-jL6gsJQz@exvY~rJ-$r8zDKxzz;I|~%kB7@#;Wv`fZhc-C_Wr$ zYak|sL4wzt4ScSb-rgQ&{0IZIy_V_02w625&f`I5pONrZKPO+u(e`E&+goM}dhLz* z^}4*W3pLKRF!5JDcYTLp3rL$SElRIDvrvo`H9&#~i8-3=JBcJR#g7DbhFA6}Ru^*x z>E2Iqs3gFj)}BeHjl&(ED-xhmK!)!Mv<@$vb~rWY<4WGj(_SLurzxGhr&7=)M(`{4 z?k*0Gnds7rb`!&P?_rtm6*Maa`2qp0x5AvY>9k!Quzd26nOdfWsLqTi!jvUI$V+@# z7N>Ds8kLIjW!ogOTqN@Nm7L8#t-<1<@dq;y)7z`TR`@oFd_Us{ppB2EBL{7#^?pDI zf~Ze)=#~n19Q>M8D~Wx*7dBaRpLF3`LA{rQZ*Yvm3`fX2zvp@)u8Mj}9CP|*kC#%w zQJM`=XDS)FnQ!&VYmb~oWEiR9cJpn9ytprc!-e<2)}*JmIS<>wg+nXz3ua*MaFIZt zJYkQ=d8_G@9h zq=3|jOeS64;xWqkI?1}L@AOWkg|BbnYmb;FNc{M~ zTF}M22jf~J!_ZKLklw!C@r%c&4HIfcYHPlUiCBXVoiz)9f>R%lyU6sxZ7@Km3_{40 zuAk)-yj>{}8Ha3(;W|aA;2`Reavi$TODEhum@gJqm~q0F3`%bv{f%hZwTOFeJ-3Q; zbHMXIy~>I|2>6rA0F+RC-W7f>yndO6e)!ojfg1S<=Xx+Zp6(hrHq|hFw%R9PLoN8>cOYacv(}8f{&~Y_^y8Sqdow-rcj@ed2C2s2 zbB3T;dkim}!UkXG=WB(5ZpI?K;(+$UpgH_Q{#!YJ({NUVyavvW+sfN&8NTWQ?1FUo zhnjnATD_$2m)#0BB|E5`~@MIq6^YeL)ys;aFF9VBg@hX15*67zvh`;4WY=hcn+jVgrB??Dh zsiiWF6?UC5_!@Cc>kyx3;$`4T2)}oxYO`c;9%rzWZ-nHwt9p`vJB>^LJ~PoCvAwQ-i@h}y0r#8y9s7|R?Jkxs7%SJZY_RFhm(?axJwK9kDSi_?N&ldAbriqoP@v^Wim4 zZ~4tQiaCdf6D5xmmO{o~g^a=<$>l#-#d5w|ev+G@q2AlXc11yf5@1_!9=t;u{VE9f zoGeWOPuhD{F~0lG*JUH?9L{rgx6~smnnSDf@I4KXaMe zP-2nzUzQ1r`qhi+V49ljE`x``hlBNu-1SB5)R;I}bdcEj>1h@uAVej^)b{!@rKHk# zvNzk1YcXG=%mwKd?YKy(qUr;sjV7QXX7q&}>_w77EH{`bncRGI4o`^OA@KUp(V1qL zczS2@Z;QR~DLA6*YJW*e?Rv5}-CWNW>S=y792FBGOZgrK8fj>1HUO{waeW1o`{u*n zotE8Z^*xr|px_fKB>pj^F9$&*@AK-j1w6E8{io)frv4qjKLtMdK^2N)hJeTgtnM$8 z(wttk|Ejkm5;MNVpr|CZ<-0yB;-k;Lu-f{nBZ$$Zv{&g%bXa&X7=F>+p&o<*)~t4a z#(aRhuqQqKlh?OIDjj_Jl=8 zkkKpZi*NX|{*fMtA&mY(sR1x*69-|T$8+mqh!D@wPNuW|d^LWvU#OGYcny7!+dU=@ z`t=s&Cw0kK^@$@ChO1+vzZ3WIN>2*6^+H2>?kd{eTC{fO{W)l$_5H*1E&Et8`b)=? z&PBI0k66`iuag_6rR=(@T8s<(W>x!wAgzQ2(d?*uIRTb!XmF3K7jWA4kz(&MYyR-n z8Gm=d#CqQ1DvNAPOg%X;%zVuJN1$XKi+}AnF~_Xn%}NJ_^+i)eczJ4PT9&G6xnxjP zT8*`@IXvI^;`S$LSux@H zu8}tOn~$?StBw*!$v_mPPD&lG-{;}0%76$x6^wx_h(<(Qx&ZP@-G0~4+nHbDq z)%|-Z>KYwYq?ftP{rg1jD`FC`4kNuJGi76+ixCUEAk*nHP%|^Q1cUKlZiHV-j=G%WuKHNGi(}gxMrC5`AKyZ6z}fL{~F31t-+u1O2ucEZN!9mSDj~A zl5G^KGcq?7z(_=%B91BdS7n?-`-4qqE^%;nUU&Uy?f>107d`3=>b93%@^ok_quwa1 zpb}k)i&J_$qwg%W79Nr4BbevWBU*gVOm);J8XpT0wb&g$ej1yYgq+A149)?MLGj0r$qmHNU<_bDcAh5pT9hKo;4O z;Z(MB1&NkRh^fy&MWvy(SGMw3qVX&%I+)o%R$+1$=-P6!^~x{om4%%WB&hu}CbUB@ zUx~U~H)vUFf$E9)iO!ZjPyh*?x^~dh6)P{7?yHU$lZ)e3Db&yp=FUf4A~DT=fTNB= z-%;2TTjG^-m$T!^lGDBi0)waLNS{TLJI*8UK;kMSy56b8 z|2-`0tx~b}{s2y>onbQ-xoaoHPq$hh-sHPnq;-2#ujis;!Neao6#TXsyo8wavgAIP)a#7>Gx5A)HALBJWYjotwH{-*Iei(*ze!5&{-l3Y=3_C5 z;qd(>=O{*LN)$6vxzQ?`Eg%2W*hnpGQroo6F60Lby}~GR<4x~t@~)eTe8bVtg*&ro zY}HT)76tlw&f|THjfq{!ox%mv-v)N=Zf`qUSA6c}4DbQ`^d!x#t>0gi)$0n*$$^FQ z*wVBQw~DHj%q--Iwq#*`dqs*m#5tCMkay{At|qwS@lqtx<^!Wc)Rey%yv&jcZizzr z*mk0$s_WI0AEOL$?l&y^l)is`>ReW9Xyw=zA>&fW>V=Y2{8MV0@-<<*b)XgCAVVkG z&YJMByg358we%a)*cHQKD9EMla@=9d5iM@ zIfbE%Ij@6rLJRz~6zgu#i9j=jfuury2==+~5PLU^$@NaW;l5Q(T3TvI4I3}_4k>A% zatPr0GK372FWwR!^5aOdrbjn2H7@zZjh5F4NE1=q3Gj>DE0k~Yk+O6KV))oMt*`0r z<1v}g7Ma{k+=cNKRW;*0V+J3%?95vPqaW&MQDm{Q#5&Y zI6xnnD{GV7D2~o2i)o(r`mphLOjL9EQS@W4p-QjIQ*M;OvyMv*y7n3`l+97R97#HR4P7d>a~!l^k9|IM zTIO=}te(jmH80z=c@6JE)l`LnwwDJGPLHHdIY%_E1w;=d?&g?cKhbu}GNaMYNI+tS zFWPAvd*4GfnFFx(_WGw-#K%)OWq9qopQ5uMqf?y>ukjFxH0_(?G8KL3iugO$Zu!wf zKSUa~l-xGx!t3s?wiXyng-)Jzo02@c`k7ffR3K0#l4DF?Oo}Uuo(FjU=qROVuWP(_ zc|5hl;Sy1zdz}unR6MIL+YnjOoicLCQfGf|d5ms`1QoDM%A%!F8?c?ZkQHti@8$%#>JAm*LEkOS9T z^i>^fR#p_M${bB|%|KacDU`!YY;1Lmh9+fqr@Dfk9pT%1PVSf0@wivVt=n>&aT0{Q z{CfY^AKVTHuVuM0yla7CotEsvPf`1Tj!hS-*zq{+NVM)vg2zfm0NZ)c4|~ni!2HeG z^;?HBk-FO{da>LJyVKN`K^?6^rY6o`da&b{-K^DdE{xir=71}jf%DJpfz@99%E1^! zQE@wqvIas!yBG&E{qRhQh^B5k~sRbmF3Cr+ZI}PA;yM<-}VdN{W6u$Ij?}mfx&8Yjwt?+o|m$Uu@np zY_I6?OQTA!ngOaoY&&^53eVRL@qz!w{t$N9x8FiXDYG!`IAnC8P;LQ|?qUe|_+UlD zyN0ui#tIK+(kZtG*U8(HHU2gj>OF6^+xN6L%RD9+qb>= zJ~gik)2~z8JDc<`*H^P8>D3i=N0`BbR3KX5g6jDN@Z0o*7V18*by|#MU9^Z0d>CrU z<15Wdb6B2vHg-93nh6Q+!GD*^!%1RiML3pJ#cptYv6NP=l(gh%rS7!kU`Gg`VkIo7 zDQmetUezDQ2eN*swHG%!qN;7>D@Oy5&97AdoDm+yq0S$B&T$Z|R+&i*_(!FlaZ>zY zmUPGsu-p6+q!9+9q$gh!LEh=ClJCnVF%l%qv4;*x-$rJ zbMe)kSW(YgX2E26HBB#fk7ugNTxrU85!kft%F#FoVD=4X`|DT6-kg4D{Q1G&O@|s_ zdAc9379YOw^VuT|pp{T@Bnwm)`y#yXa}jq3_|nCt_)cjp~CgdGU|D{j6pvESdf1u3yE6<#i9DH7 z04K&KJB1N3;uB_avv5g#0-xLRD+Eyt>-+&Fr18 zMc2{en=*98#WUbm=}gP>_s<6 z&PsD4Hh=2aeDKktK%`J@$_!qtw0+eK9$Oe+ejd$}cvQ@Z{o^)-XMI1E(9!RQS0RR3 zvnAx7+#q=)9`;A(A~o;i=5zt@_f-0;h%72OOY6(g_S_qubuu?!OKd}Gu|U;Gq;BQ2 zUwvZ&7RbVbfOM>3tsK#BVvFD_gR4}L_xP*)+uy=WMbQ3WHls+Txi3L(bpizqoi_eH z%EY=NQbFf*1K^d&{rD3tqP;=l=A$Q-Q^zJv%cY|Hgtf~316dD4eK;`w4Q^dn3;hf7 zWUJ0aR&G(POVYB+q5F_Wq>As(>rp{(-1kg=1`5zTrf2)H)C~TESM!MlNK2pN`ezB7 zG!DT=xUOwGOVOqCKpZ3H{PKyydl`AHk}YKN4*b#9KWJEE|Nb#@YS=b4+D(%SbwMMA z6JvAN)h3x?y@V4|P%zMkfGH;P;Lt0~ndQ59&b-|){iSJT%gOOw2B;YeFw6v@Wt9P76A0=%|-N{^v@V{kr(2zz( zFe+?*J?B~00h%?xCc=%O<$0hX#>ziUCpo3*QThqNss8?6y!&{%9UQOQYQki}Gs8^mHw5f2V&SNPK@FTEhAnb|iq}>WaYQV5%<#;>{*^ zc_#GljgHE`L;o-uB3r;8ZXAe4qDa4>N{X_H42-l!Nt&R!AcGw#Q>T4<~-${HRIyikYnCOxkK6nG_F8^*b z*>?X7;362E?oXbQ{Bpo>Wh-YOvDjza!HEooL?g7f2q<5CIAkb!SyF^6hL3eN1R@dt9k36Uptj3Z(G5Jo@2phT*8eh+stRDaRu{Mt0Q+$%+38%emD+ zF?T7E%+g5lbd17_0+(A1sdbB&2nmK4w_kIF8}6^*hR^uCX$p0X%$WN zkwu$^9}1jMkJ zC%UitA*PBbC4)pm+FE(SAo2P7j&pwC5R1B7Dc#s-&!W5xE`Fk0OHfdQC&djn(QBDd z2wm|n1hhSEU|99~1P2qEKdJCgMeAB!U494`uNp196Ct1TPfFgz6XKZLUZ3rT%Yg0H zQsVtzm`?E3!{){Bqcf99TYt4#cO{X<*pTf^IU*w3L}H)!cvD^L%P)g)AW{D2A<*nx zOMe843b(H>bberlotjd|;77W4j`_*+dPoZpTAxi2vV(zw`Q`4SANgrL#1s$cDoTAT zDnV40(KMxP_wN5`&&^51=G5COJ;Pl3Yvwh`kvIqaa=_2{Ie z=srIx&?dXR)%0HP1R76k9bhUqG1I+B)dLj~sHYmLq zhJHna*Fip>Kk7-vj-)Zay4jwOTCASzCmB(Gz(M)aKq$XW4 z7lwv1B~6EPMbN z{Vy_i4_TX^{Lj0IWa@qV*Sziuv45cie#5}X6N~-uao<$#6z;bV{hMU>i~io;NZ^D? zdy$;riw0=E6)#AL3?B^EVH%JiuhUiy5AQ!df9L0D+g|+PnKmc9N`Wo-eqI*1Z0~}i z2J|;`-!HVz3C?JITAMsk`T@=8_0K-iJ9*JmAJya`$#~y2&aC%^kvku4rAwL9fw?H) zL92s{fC)o*7zzsb7L%FahP!@|1YG_cN#IL!$wV*8tgz?hBnfUSr%#Mi!3zG< z(ID%mjN~ex+B^Kc6E^FoAJ#xN5ov*WL&KmDh?`3&DLk|-dtSZ0%sg0Y;NL+g4B2g~ zeH5O|c}RrG-oVDLC_6FHM}#95fnLeT>R}x+bh(N1RzS%W)sy`; zti$suJ0kbuTve&%L3Rq4W+BN$e<7wtkDd0Sn>@P7Gxb%S}|J#zWI)IJxD*{IP2FwqD#nsAK!ed~P% z@~$!qTMEH&bvw8@dSAdOg=wxQ*u3XHqXGBZ^|5ZT=gcxuhaxT1kZE8Rmz$J_Skq){spX z_g%%&!<1ri_eB2-$jvfh%%sahSh2{}WoS+4PuRf3?Yk#TwI z`6S(An;#0JH@fK#k}B+4bov|&${Ttal|=oA#%9Wc@>5q|*7A;w0t_y~FCX;4KXruu zl8Y?+FNwVavc>X2pS-o|34F8+2EOS31SC&; zTfw`&UixQMRli{?#Gb9>FlnI)pm?7x;OX(a40{gpDyrjDwPZ&6A>vk#WO;?Y$jENU z8ty?^N;yF|2m~`rh0TP$?`AZ@r#R+HicJa;$Kb^1z<^9x`@vd>$lEVawO7IC7K%g@G?)#(J`i4la z?fZmgMk+RQ9k9h8NumHY0=~@}*_x5wB*UnG&cE;1=Ef$;5b_ZC2Zd1|37-A_exl9C zv`}n+761#=2goh+ZH{U)rw;t2(b>0?nT(G(4S*y|I=%`I#NyuX|3Je(7(P#c-N;Wv zgwj(B$<2)p3r+4rJiwc=dg&=MQx#wyU8BH$O7=DqMzeStE37c0d%gl$2;0YKH}?tI$4GzkS zg9B|XR?1k6n-{Al$*rAT$7;puKk>Em$HeCtX2n&Bb9o|Y2e^AK`n^A7fZA*pi6PlgXekekKrDI>RfOZ;0)h_MJ z4;DTMNNVHR|GB!LybMz!JWlCp&<$2Sh9k`?v@>U`H=94NudR!&wqe1r`YBEQ9ygEL zO7Ucy-30%-bX+)AMQ=qB7IU&ghQE7Q0F=anw7g6i6?V3fg**-IFta^@pP_-1j9ZFm zE|bQ#&+c9Eq^}Z#*~lvxYv2Bv3i}!K1lcHWhg{D!Q{GM? z1&r&b6b?cJPeewc2vV?DWEuA^_cH`xfrqq@W*vzlK(I2)*Y1_9m0<%XQ@@jWM&oxF zCFN1zd#W_9+fMl31S=&0mRh&oYl@0IHe zjVM7w)rP%J9~4BOP|SDvJbJ661+GcTqSZo|2POog{@_W5r?&C^;h#UtqXJkNnNNlW?LNW?cinOdaxe-f zAp!*jsK=3CM+>tice*$(3RVt@az=6eRa`HIr4Q4XPU#t%|12ClcDTemBNZIovW4{@ zf9jBrPW#PFVan``LjAikkPX4e61r@U3LwDnY4&HcUrQg5MD>~DG**#ESnh}g>R0F` zF++QI)wdl!zYD|^^{?HusAU$5=E$g?Q zj*c|SW^A>#yXsjphp?DUU_MgGe7$^O~&UzJt-;Ii<;RO z-C^cNJ)GA+^0ijqMec}l90FJburOFE<=4TsBn1*Lf*LzHZ3m!S9Qp?t#Ru14zx(*@Oh-WzrqjFsNJ5|8H`5pIkLD(Z<>NY_i>Ry}VvD~3^Ang=aRkTQ zemd}26lnP6d{*G|EzNL4futuBTx=9S`878iS=cf z!xapFf>C`ynQDfZs7_A&L9orun%N!JSTzW%hmm$gwBr1{G{y>f(g%j2k@58pQ?pI7 zAO%xUpxwda#9tEy!jQT4$QHBZ@VHUK`=!+=@>a^g>j2x~%w~zbuliD!3vV;pIU^zO z-mK4by)6L3(mBfP_he<1%?AFjTCP4Csx*w>5o4Oj zOhTJvCTSBgbIoT)(+K0(txRocFoYQ?VtvI5GrrY`J{F~NC~cxhG5R*itSOa`&FG96 zI<;GhR6?@sYdW>n>^c3l_pf_?=e^I@``+i?=bY#F*q#lZ?UWnXoWUbs>vDN;hC2&w zTxyvab>+vQo$edBi)Bq0Dxs{ht*6@pT+C4X0L9_mTY1h|%G8pC=Fy+7*GNL8lQR?( z?>9Zp>5yb7aX<8kau<1}o;#hudzF)H>hhrtT5|QhXOMX6l-}6QDw_r&O&h<8FN^Ab z-x~88$f@I3CD|OwlB;`hBCg`@Be_M$1b*9hX(R1LLg$c8U-S!swhDLKT$9p04mK}6 zK@6)evQZdL#L@AU(JcH@)s59V_6fF2+1R}&TpjZS9nOG9U>!e+-7WuAp$b8X`oKb0 zYyEu_j!*V(kOh@)HpX?R6e#IcQ%OY&`pQ7x7Ho4i*fxG`3pnPtIxO^RS^2dHbM9PZNz|`wTVqqu`)}K?;&}9xfy}DqoXGSce%0+73lgPDgWQ&YrfH(auIvUbtfBy)6vt@WyLbn2Jh)hR#U_`{X%)Y8)Q zOB#!59-me-R#QFIblkHBS<*a!Z}@E%go!ZJGh8xn$+=1=4lu}~TPR|8J2v!)<$!1m znLSIQLL%dICC+}k^aKI5O9DES3NuzdeFeIXmg+bRBOv+m`^dwb84F`rZl4$l$u4U~ zyiBm1Ag}n+3N5I$7(}0l6oJy8K6>>JM*tf_wg9< za*0?MGV?v?_`IY$kQx4jQW96q-lV~ZC=u+bA{O3n88$3)OyHR`FRwOP`b8)c` zJFyVtirJpJ;2DzPwJQz6#sdB|VIoXLYe`#(Uv=?#EjYfi%D8juhvoy_RYeals2)1M0}_O9QhvoCvJ>kD)|Y==>Zd0sv?C|PRKPT3<} z>$;AS(Ydjm3d3|FQ|pa2^!xO0$pS@pgMQ#s{cBho-^=HxS~@ZtV`pxALMg>b=K*G5 zTgYUTuwHu7LsZ?{zEre;&*LJY(lng*mX|{#WN&JfpWm7*#70BhBe2-Utmk@vrMCkA zH#D!o(FqEgU3II7jMMq6iox6+&~>}b7X{66%EgHG-wYXCQJ>g%d&gUun0VDtq%&>n z=_*H+Ny4Cs8w=V5q`erZJX=4cn`t1dw$ffD21vHvQBwV2{)-+X$u5Pw=xyseBez)Q za1+*8g@mjC&vY}_hq1-&&LH?`$|4p}pXX;P29^}oM?QI{!|v>cXT5iYJEE9{Z>-6PLh3nG7@FJUw`xj!g@dskS))IutAol;qV25u` zUidIJ!syE}6E#x?*{w+&^{kAI!777-b2AaTS}?ib(oDo=A&E-D5vDI(7!IwzArQz! zq6S8x!5SEqM*bQjlK%sv&^4YV(g9B?|L^@3ag9#)}j7ZQh8V1&UZ6FL2 zsh?rX)h@#@mGT*=#>n%+sNaX$^4i0wqI7HZ!(E`;u0wwP?Q} z3ijQ7w^NyrV#c}>{xC&Njj6Jz{P98cssl;Fl8qKwefw0PjkQ9NA~MEN@bgF-pSQWk zWLAJG+O-G&p?<_yRH+&|F?Ko5S+*3>o0L})_PMrrr8=EoS#v>p4QIwz?Y|O zzyAW(jy$BTPpCP14a8==`u72M2)~TGEn0r#{3cwd8R3*Qb|LTJ)&CIl(Ibw}I1SpJ ze{HGINmcamIqkdgEeQvC=hVnlilc1DWY8B?yig3E&y43ngwn;-%c87HlJ2x>VYeCf zO1UNSQb}q%n+~h!SpK7B19D)7SoB_#lm0|yxk~p!n&Kv zmze&$oX%puZt3F8_eW6i-*t+JbxO>nO>ZqL3de+7Tp(gGKp?Z5LvBZ`Z`c-;h8?n#SR$QP=hY#mbOWxPe; zyT2uSVDXn)nG8pjk)KHs^+cey%OsP4Wn;>Vvp2}S@dA4UjJ^H%G$Vhc;}3r&hjq!4 z`yIK8AY+&xV)=`RuH*Z`J$8%Gl9eQ0F~`$lFyokT2(M>{GC}&PJQJTt!&p?*qg0U` zfAX=^VXB6t*VE(S=&Enp-#KEwif^g}&IPUTixUvl%!55K#FaPpUwij|s;NjVq>8eq zH)fn{ypyiQW<$COEw>xu|7^UY*;#Q{&)J+)7u3(4&T3IG2P{BVzc$+WzjyW;#rwr3 zxkjiPV@B;Sm~6Jr7;7^#_i@i>>c-Zb+W5;GRP1PKGb}o*2IQxa+e@;UKMPxkK=?HO zG`@GGB9}R{dgR^bEaF~GxoMnWbvmzxo)Rj2bN3V%Ipt~hWxH{^VJWelWa&!qTksk| zG$AWSilrI~zUSA^sci$1mA~ycJ&d2QCNYNId3;U0KC|AM`o&o8Y^Zrh>8O7vG}8N% z6cOCxndKcD(riHHEG#are}((!3(&o5Si95ICS^!lobM{!yy^qm8Kh4cqV(Q2L(Qw& zH3{zj&hICuAB|6G)na76L)<%d>>?;DV06sf`kCg4xh-I9zOw6A?iW0(H#538Wu}vE zufJgKS}s*=y$z&vW(xE@=%pZ&HtZ6^3~s$9or;dV7*{|Y4*YpX(lmHswN1<-Vd;j6 zVS&T;SdI|k24~&a9_;&sE~T{=RZWf@4Ig)a@;a^qg$bTL?hJ(&k&T6$Cyo)s6-NsK zS37|AzyKfT|J{8PlpIn;!GBJD!uaZv&Q7Xc8Z@kMi}`3O9aOLqTk{Gk3p?yn9aiD- zB|h0Xg)mkA9cu9uc&wlbieTR(59cHfAH4|aGWzrvjuo!lwJOv;@ss*fsUlO4ewXvB zYHxUb%5(>K!?vX-m%~Z+hs{rb)55XlpNCm3ZQ&+@EsOLvs>I>vKPsW5yDAX)`n7^_>~4Wcr$>VQ6OD9iW9hKhDS z*edDyxO1i%Z72989Uw8{AJB0+zwMj7^loXLI8ZHAjB(o(lvMSU+@o>@@B(TjyT!*} zk5{a890dm~3VMZ^Ur1qC>6EtUny6_}4_Cd)#US>^U$Or7huV^}2=}wz>9G&y;=o5Q zHI-6~#EhO3UA@nApgy?%Esa+?r++{NE zI_82pg*ArLNW+0bi$)VFNsfx;^l{T`VSiGIl47v{>11MKLf@20?K=!;6NdjWQnnJ& zE(K}m8s+4D*xvWczd{E1$@zy)3H;y~hpdN6!ZM)|v%o_u6HY>KR-9#2Do%CeRi2xq`#8CYReJA?VkQg2Liadt+lRIhZV zQxEU;{^3b6BChhcrZ*TAh3fD$gCAvL6cTmBK{|9CE~gJ4>SW(@ByW$TdGGp(C}j%& zNcP@AiQ`-4yUBRv!h#bAPk|Q)ra%TH8Am2xK_LOvSa5J~wCW}3u*WAAlFJ#QX@4y^2qvC2ne>& zvK;XVDIqeM0`GEPUNOwOTuDkM1nDB1!ApV>DZa)}6BmVqTu!PY8=!xbOV6XCEP7Ae zX@DmxDF#N6`7v!xOG%kNGdwL>%AFh%!lY@#Yl9HN`Ge`z?;tC!j@Qj0mjJ)7v$d|Z zoMKpWD2HZo|FDv`Wvv(G>ttq4%8zf6KyRSnuMBbXrtedWx4_I4FxT-<<*N0|k|6Ut3k=kIJW10^=h zh#C$|P69|%wjCOxUt>B#0I+G6g$-W0cVXX`*H!UIgA>I(nr;d{$qQO8HyWbYP2~`| z)9%9Bx{{KTrhz53M#apGl+?KI2lfNl{r8dnAzvYgL=`6t^ZRxaAgSN9rv3f=lpM(= z__Lv`x}{NllBRXsV9bv=#nTgR1)6ez#9;;|>*@QOm*jbMvlVR(Af@s$R_c|e#K23W zKL{qQpTnMPsuJrBd}@pill@DSn%ZPxRoF)^X`Ab>pDfv?euRchs8PG>RPGK>W_AECqGkHXO<-wwaE5m_yPvaA4yjGF+O6kp)?4&haM&Cur*R@tG%Lw_H z+l=za9O2!BtV&b}Ovr|x@Ptngln)Iaq{0^~Oyrp|4;TqM@)DvtkV+yTQpo5?=&bL^ zQ9h;Ng$qV|ZMC5$PisFP#HGFq4RLjGLC#I#e#es@Qcz_nQCXRF8k5mSlrtC!C|9**PUUtjLk*%B7R6xNTfEmnrp4`r(v7M905$4Z9 z?IywAWwXku7CaYbB!Om@j7H&~qpe2bbl6Wq8t~hnO74c_z@rXB2zS#uc^xnv%uD97wzpAm=2;~DCds6;lprEL#NR)gmRm&+d|Qsd+5 zeRTM7Vy$K~#B5N{df>eYaiBGX7}JuH>aAz});!p$az=ht@geuu^s)Q2rm^xObl!i> zmZzpTi;7No?vNZvWss!&qzNrU*AJEHu!|Nl3tKI-2$E z(JNPQ_Z42@jX_4F=*#qh{qD$so|yYO)^qp1jR#uLpU4wEzS+tW)F z9N;(uzm~qMmScdtJe-eyvh&*hEwBQbFk>RC*{@65-Hh~S69+>DG4KK;8`_K2Ikh9b z?^i-jn$Me-B0hs*YYf}^f5$z{r~m&62J0uU;V8B&?P~Rg+^gq}Yk7%B&Y6dOY~HO- zPy#izDtaWfwW=QkW>*xk=yqMv6j6FFwp`tx9F~r~ku>6eTQ$98PR20mu5m&cgJv-{ zxw--h*53$a9|HPAGA!=#j818cPAy(@U)+vBGk_c1yeJp}QQnc)mQJaTT~8X;xCvFdjXD>X6B(I*=IOrR&~M)iUSI=JfNn0-;ijJ2F#S`sqI=I?U;{e6F%xEL z0WqHxhgXsL7EK!e!0HSfB?%P#TZB8jaoDnktjLX2fH94)EBT|of5PV73Z2Zlm;b;# z@#Ko!@rQl=_DuA&CJy%&p%Zc8GhAYJ+4OiEE_3Orzh@Bxh%tyqTxe^NlQZMyoIu^| z%)%k|*@tLnx~Srml+KF@lha2=LDsDh;$=RjX+FwG`KFIKnK-4XWnp3Hqw=q0;Gy83 zB4U;T?j_s5+eV5Qvt|l}{US)QXafV7K`3C}T4v)g->HuiMg&3>JhXh%@*m*A@UYOd zRWq-Pb>y(vKB}VDHBGLXE;8Cg2~fI=@qVSUuCeRJ^Eu~AapGg&bWtBiEqR9kCW39IdJEy0Yyd##O6x)+ima4~YpD0VsZTowF8}6+B!{ZeWycnTX z$&9Xqj*eSG<8Iz6f2%N`ou<2@-1qvNH!c=aGxzs9RjLo)o{Cbe%St2N_<$7|Hjn|| zbQiz0(V!6R4D+6MzILMk_WkrAZ$7TB#qZ{mf6zDbwyZX! zD_K6+E*o*Wxo9zuI`!9sp1}-=P-Rr>@XRGZU-m>ePKc`S8`1nl?wp;wTv}^k;aRnk zZ6;7uCMe_l%$#TfzQ%2!xA>^~;XbF5q26-iLp95XH_KgZ-?}ENeZ)Tpw3#{U< zPRL6;S zle^1LwOYN!4bCJt!o?)IgpAhEqaaVcQ`CkX=^PqsHr& zX7ov#hj$BijYLIN3)H#UK4=@L4NHxrJ%wy~eiw^h#&x?rb-g{c%Xy!!cB1&hy?DyQ zmBW5nTgtvo?z_H-BpV!*4dH6Y_%JWC`itzf`Y5@?@^6kj)oE25+l5=<1iy~jT4N9) z{07N8ONT&{RR=vfrpN(p08d~CZ3eG#TDh*-W@PYZ`FCH_3krmKa6s&6jm^a%m(?IX zvrNLSg@z+P$@7)xVqRoQ(ST?V;6E}hw&%2Up-vOIxl}<_J{~)(`@!sd(l7l-Q-GT6 zo_Ca+lI$#L@;4V_2owUMQvMH6!@-HI?Xc!LSuxPHDq3l1TL8K^?e{b4oj7^)cSvX?kcwo%d7FLso1=1 zTO+}cym7TD?-G;s3;AsX5|?7v)Ax_b%gcL>lWZLU%zPWQ{U1~(s00SjH@y|%$iR^9L1>?P)8gFA*Ok-G!u2`Y%KhS(H0|V7_ZPVnDM-O=w4MBl{cwj`VaPFw1XRL>SmE_`9rD zbJZ7HeQ2bbblRb#d-nTPqcjNwmgf`5O%%Jex8U3^vE ze9}~FGi&I3HJw$C^XuRHQ=d7x+iqK$ioUy1R8iMMOdSoUO6$h?ijLZQqZ&(Y=uX=n zPR_Rn1zJurB0;wxAPQ>!(e&z;N5EsDGIG;%rnVtw8hObXT^tpM zS7ET*d$THIraRJWGm__|?ZKX0pr)4`c&zMwi|*zL;R1<+Qz1Wi@Z9X_mAQDTS)^9L z0b*4jXinwzlOHa2`2_@gMXVpLk1uwH(G4^pVzB;d593rb`I+ikT9{AjgkdF6WyW18 zl)h&GJ>j9z>83mMwT+EUPIk7q8jcK(dm_9O2&;D=dS!8X+c>2b(ZR>MNjQr; zJ$8OxT4$In;Z^^WNn2B@a3R*CV_d&!_5A10pSz1e)Ucw%H!x|`WO)mWEb^aE}3qIr1wJv@y0^BrAQ85zwVff)D`LsddX&9a-+BoNZ%#i0emcY}7n=@i-jK$X6?L(d6D!_ZbN4sA5 zx=xo}?v*DjLG#}6SP_0Xe9*8MZ31{HgVdmMj0TNNvODCbvCO8t%;Ey|4t)xQWD=5f z1s5+7h7THx?y~6*fnyzoDuf}YM}k*Vnd+GUV{#OWI`7+Meeka{vw}--=~EKucxx*^ zZ!~r6ArqmOJY?0{PUv|Pxb>bQJ(0v&XQK@8vo*iyfAogEeXux5CHzioB1K?tghx`w z^tjtt{>AHfEi+Swx1w-!{=yx5R|=vE0c9y&bT}}3tY!&sJxt@sMxa8W;pyLEd)gQM zrCe($=A?P?Ja$Q{O>md7A5u0H6UR8{1P-9SL@{iL6t30w%g(^F)=l9E@^X1!IOoV| ze>CFra-G(AkPv0fg+CWjoQ1*KHfmkL4%xU(@nZKE_84k?Dnv>#-isTz$A?p-TN-lo zbI8$1-Nbplq~$KuDhFTKcREICQzPp9ww^?{Ju|_PqYNbZHUg9oRllh8yxx9$vx?q= zDhB@Ll+7es#R6ntUO)Bto{sP5eIik@Quk=(qGQxN-n@uJZ5FooooA4FKABvjyKW!* z9aEjVy~V2KWORg4MP|EP$QE(hT6<=5zh;B8ko?lOO)xxm@77lsFu+X4I(I92dWZf! z0HR(N#gVVX+%9k68RJG#Lh;9Jd&skiHROVzm8C^h;01`*LU#Nlu{1uMKFT>?O8EwU z;wwbGAW=8xYQ=l1H#&5_z(zKQey1P@;jy`Dh~`RnUhvN-o$a^`#-)clcydHGu!HoG*Aoe$XNh^tW& z%V(ZP?`n^YkXGMR1VYpkt26y3uJ@?Y$R<~iJG5s|5Oxm{<SiD+==?M7%Drq zbk}36_{+}RbEHz>8n9Uykg~$m?%)?ksAmS^(?j%cge}}Rid+Nt!k@3UH33IdE zUjVhIkoCVx<8tuc|I``p>O&Zm^LUIr@Jp}<<;A*jdAZ_nvi$RnS`^8|GDo7xiJroN z0P8W@n7%E$ivm0;yim0?P3}&XgXH2GAKHTtlnC90tJcmW8^5ylz5RzJJd@^+ zCGIc($e-smJzQDSzhj!SBK8plPM+>`vYy=pFLdEw?nT5ODeax!FDB@f(pnVodr=5y zkn?>f;R}nk`jg(W3B+Pot{gK0`fstJ$J*GhJqxv677Znx8$e>BdLQdih#BcTJ zBZ?iyuhY_@leBYsh>Lt3?op?fTLQ#^QPO2y*$2Ei2W*9Q=C#AW+>u)=08y`uCFz%^ zEYR`N)5wyIeJZuMgrQl@P&+sb zw~x#kVj4V1C~tB9dJF+#J8#dHkW8jGd!&>a*zP;SKeINmS^xMkn=9y4lj*`a!#7GC zn8$zO(^|CMTrhLWnV!hj;u=EAD>f@AfBmyPQ@`=cMwo&KZccVqAUArXUM78!`|-yR zVhnFN?vwX%&CkKcyHr#l@ybh|W8z1lLEYzrd)3z}Jrf`Ba~mFkmInf_vC%&!ckLd> zfDys>ysRYJu=YL5rZ1nTa+7)#lZi9G6LWcS9;Vzo)%-Zhdr};P=l52gRDZp!T8zv8 zWGA`CnYIR!@-&WWU=yG+6)?!td>IqYcS2C~J8J4+~rPn<{UxmoTiVYjP;C4W+n zSf8TzhNZd1N_TvC1rDZYUDWcW737r~Ho|VLtcv#b*rxE=6tWHDc%xa4+uUh*?dm3t z=G#|?liMTgmk7)*7%Vz7p^}%Y)V3L+_iLHl&~ zHLLtBQ?l{j7r7<;^>Ne7@E=VaZI`@Y*Tt zP&T2R7#?;~;Nnh?CZz!VnYap<`87-1{5)rUeE*&MmV^|?sb|Y|U z0IM#y6-}8k`ZkU=*^WcinQ^!X<_bfWr^-hj{B#<}CB@L`Ci za#G4hJ+;;uueGUd%Jg6EshgRRR}H9ZrReXDT!OrJsbI+&yY`?Fa}h19xN@{UP|d=} z)NVbTfTBnKK(+hHkYfX56+K}Ql{Ri}O4 z>5KejAsO)plP`u(lf=44jN$@~H@UfwpVB~>NMg!-9#RC-9wl$d1$1hpYXOGF{h%_u zH+eGS z-jx`0xP^Z`h$MJ-WQX%s^0K!un~pUyqb2@JbE)4uqX+4uWF-lHQNdYhk9G!efu?>c z{FiNF9AdN-HM1A}ivfg(Q$SiO5+|p1VWSgPbDGF!9Z}#)JSpQ&?o-!jsvKA|R|d6p z^a}I#l$PUbqzW>TyW*T*V5ehZVq!n)PEWn*oCT#!sm5fc;J(CpQthr55OYVkF@Mhw z3rnsF$YY{doR2!-X>6)DNx=%(aPzwoP8TGwrDEjrm`$zD+03122i&X|gzHN6jvmXu zxWx?0k_Neigecw^3LZui7=!W5?n}7&hI!rbq23{VJ>;4;>=g?kr@)Ub-WqTF<}z zNWBpt(5hF|F^R@81L7x3Z{b?2wF2Dz9>>g*^mmWr2>g!OEkq9VcmD!N79s{NIG2s` z_xx$UrjC%_X)&KPmBw4mzLhwQ>zcTeL`F3J3X2FW`sxb5Qk$(C>nCykr&xf@6X{xt znr&*w)*dbh9AvE)92`O|DO)6)UMa%eM(m%BKAZXU1HmSKwftV4fh7YW7ze+sP^(|? zufpSwT|{h^@Qpi`k}qn`m)BCWoQQIO`|gi8#JGBDOE-%PhWOAqkFie$w9d1}mia8Y zDbkXX)5s>L*b=LEl4yv=q7iz{btJ>E+Z2lsqnyIReM!kY;?18A9XBNnGD@iCWTX4A zZ0tA=m@XCb{MJzMyn#wew>3n370uH_U`v=RAV8@l#@1E1LHoqX;*f8${#@r2{;JJ5 zYgmk@^<(1Br$Lnug(qG%QM9_*La7WLx8*ZmS--iL=Xs0{-?DC{D|N^0m50|%<72ab zsL7m4(-*=?mh&Ka5E*OUpyc|?z`awyitBER4%|ALchhT#yD%^KONOXK|eX4AlfJxN9A; zQRM8D2P4hBwohM%PRT>x4t~LEbuReuG2%rG{^sKKu~js0j?c2ov}?xmbt9-;_>6d2 z$q#4*VFu3eoRQDgBfXz45SZ(0ad`@QZ*qz{iY#%;>@?wWpPqxJv-{e(V!y5(R&PB* z6IYr@6l(f3HjjLE8ZhAwY&G{hdN*kDt-626%?2|)dPFrsP7*U|wwX7wsaugOw_IxK zeJ{fD%wgy6%}VC&65Zv)#wR0YM#YQ0Z&LS#RQ`7KOq@|aQq$Tedv2fbhOL*H3JVsV z|UHlr;-MwS3Q&5``;^)ttBvm z(|-#rVA+Q}@0=AVMn9wt`Nq0WBR_}_&X_-ca`UPv4N!q9G;3c3YrD0qe$XYsFr&$R zULqvr*}1|Jqn8kTc{(sEy7nDz!a~K#&dEt+nq2XXW)%MB#=I8v$-!>*LA}JOG|Z!V zy$cC@Jo!SbR>Tb$nL~MY%Q-R^qk(zkkG~MQE1@Jx@-m!((fwLhX>~N@#$=*iCz0D& z`%Uv@Rv_|CJQE8eh46z;Q*PN)ryer!VsGo>9aH`}_`~Yiz3qH11V;xK>)8J8s~g@| zNPKE_<`J0N&eR~V;7f)&d`AD)B!~3VW+Zxs55F8;=`=98mdNPjv!wJq>NL3$H9p() zEJ)ix_9^k{xan6ouD>-jeWBYR=o)QCgC15BROF8$vwIoL)X~C0cpSUwB>U3c;B=-W zBGC3pf^Y0M?)Dx@$;={h$&Wg4>N7=~c4vX?V0{p81$ha5+Kbs~Hg{oD0m z@~F2kw#}dDh&JFbx?JB`_Dc~Oi5T$nmBq;8s>jRopfQp@Vl1IPReVhzpjGpH4S(Rt ziWtRf*1{~V?s{3SNylmk1*sFq^oh@HyL3e~fXO zwyp=9w)*;a%qcfQyq!A3`I=+|&fb}U#P_RsxRULgrQBwQ6}YHUFE&CK=zz?qX3jCb zD+pjQn(?$N@}g7c{qPKfuG8sMy>y0xYN<|LfvB>TCGxLVEA#Ruay|%_`*j z5=4f)?Wkas5(CT4h6elPu&|mKNXP&tiB89Q zBy{JSFfVwUr88b_IP``65ujmsU4|nUZzkUlW+3#;$KX<7xAEh+R#Kus%1R0fzju0U z)v9OJK#i?)uBps12_N6%Mhdm`*gg6Fn#Pz#wvvr9K08V+pV+=V!3Nv@-DjQk4|I`U zJEN$RFl|6GQ~e_nnJ!3m1u{Q)X~ASwx`Rq-j$c~IEf8p0lI~X;fGkG zW$d>1XDP(AB+%bw=>Av7Iu zyj+ZUBQrB<^-L-}AvHc3n=(bG5Ro(7rGIhmlhayN1o0aO_QG3zX_J-`t! zfHNql6B`gbDF-&Qvvmj%Vx<*SL?ZP#vX0Sa0>L=*X;Gu?0{ZSp4L5(z;nzZelQ|dY z#~t`SbZCswMX=sXg&Mwcm34=FRVg}qKTzjvY=1;wwnUBf4#o2oK|c+t7Zsz%x~4rErQ zv1g9_n@oPP1Dr*A;@a&h<{w;CEItwzL;4lMB@BIm4`f=a%?J#j^-eQ7md29pd}F`q znURrbY_bK919id?J#N)a`Cucot73XgXbg~BN3}XW^EYD;eCufVUVZtIk^zZxBW5`G1zv^v39HX?1PqpwJ`B11phClN>K+a^N?7tM++#+UL=MlLv$Q?3 zBxrS7ZS}b~GX#4E27S&d{@hjNn+n`Fca;?HQ5;|p`&kbl0Z%0P;~{gjqHyZJ+SuK% zLa^8!U|BM+h{&VC{Mn{rWfJQBAqd#&dQDzcO7R&2B3e6kUwpCuWDtn{jlkxzN2$Sa zsHwepV?)vk6C$IcKcp~@O*{8p((2e%{vt0Wg=*KQHT6?LtGVy++m*q%SO86|@2lA+ z$^l2dj@G!*?Cjzi%l=tE|ME*q36ZdP+IP5aaK7AQ;eChp!{1NDIEcopg=*xpGqno> ze;Ap*&~{utpWVRF0BkeXcWiB{+aK@`83n-sUxR}lD~x3i4Z~&*|CE9tU%I#!?m7?X zKYXQQ)a4ft;a9Ieb?qY<1W?vWs~u_uv<-_QFhHG-)h$;+2l@r>pK#$v(Vwx=k)lYh zZ{wT@jF|j{;69H@M`zl!C%t|=Ig8@VSk$)@eBEOP^|SibGaKDD(u6iI0S-#YX`F9t z3~|GgSZkUkx{nPWzbPYhGB6K0fCvAPa1ZLAQLolKf1M81<2~ozPDlBh)tsG z9`EXCQ8<7)E2>&9xMvpzn$T83(6vP?RSE&RyQpSy11!5l2Cht!IwM08|3Ovp4u7{vRDh!kT%;^DfRY zz7;HdUa>9^vUz=B4?rn2eA*iRtaLV^5y7;N-fs0!AI5E+SW}s`QpJ{#pkOh)>0GVQ zMlhug3(v^E%UvMayjDr=I-6fV9f;0!1dXr};74d$`|j=uloZFXBO3qUU06&{<*6*A zRBmYw3?k(@8t=`f)9=fMeEl7%dT7CSLil(wIXs+NY!fX9m?!@<;!a zbvK>)PT$eaXdoJoiA!AB)njK01?vdGiTxnupsKaAKLyaBf2UzKKwf0y)>rm_qf;y8ac*yK)WcT(f4uIC~8eGu{K zyrU8OXd(kxW7L6ddqtvcRGRmgK)TQ8>=Pv=6D7MCuBe8?9IXti3IeU!46B62Ki(cC zrp(W6Kiu%D0@|1^5wq0Vv`|ns8`hPCUvoKAAM(RN@yg!{2iwa;JFzdbaNaga-ZX;4lA7cF3d>U`SvpJM1W1&Cw-4c$Ej z`AIv|8}QSNISng4D{&h~7%@jL1BhhTdLv10PEhn+IS<9*#Ixg0_3w`-;vQvZ0z)8) z;ZI){dZ|phxN}PD8XR46Qw=%obe^H=Jfqmg9E6#L31W1W&hFx} z7W$RVY78115n=IvMG6t4+S~j2M!tQo>9Z7*($d~G{^Hbh;;GcneuoNx{pxH-4Fm_F zH`41QaL;K|n*agKXswuzn_5-sq=z`vy+mu&1=8&uUsd=R$Et(dAhdfl869n@2kYZAu_GFVmL~luA#1!WPGLTU3UDhvP>(rDoqvz z7)5tM-xj0A?%VDi*&-AuS3y$`Poma$=R0JC6F&@7(PAR5gPk55b6$S$lza#c`aQS zT?m^X#eXj9pJ1d&O3Jv7v7~^kW0q79}4?V$!$m0JTdW< z_YJaPswpU0r^~|dPZQeLzsa$jR6N{CZg`ZpO1l6tKXH(sVP7(HYpW%__wpxteo$+A z!<6-vFNV^Yd;FR$7db6 z`Dd*`j`HO3eSxU&5Z>oTgCl7oWoB(c4r2t^HgwwAKF;<1;HoZVn2P(952K32E?y*K znl%>-k>WuOd3ZtMXX%SKwf9>$CB-0o5!)a3e;8*p;3}L}yB~sFx?u6BWV7?^Y37N- zH}pTX7nQ4?&Qi0P6OKwv8@tNI1gI*WlfdBZuq{xD8+w2B%TqqIcRTqU2e@(8_)G~? zVNPa@nrW697{8=E6o=N{4ebyu5K;KR+szDUT*598;tIWX?+?;_vG;aZ6iQhbxf+RH zLRSxwWjm-kPcFvax@HbudxK8*EVX=fa3poULq0Y*UQVRK4B+>~@TUFS^0%W+VV@G_ zfq{kN<1Amye{#cj^A5ed)YFB1&z_=LMzhKcIdx#rBPeecGXwe|;Qyjir*)dv>V_1o z>g}bvG`l<5*=?xzjr=t#?eX;xTc1kv8ouRf7rNG)2}I0IUwARQpN-sfz&IYXgi&J@ zhW7!H;uAylRUx8ydi7So{%`!!yqnPuS;b0Rh?iEVs#jQZLq4Vm9_0KLJW-k&hu%Ughu5q)?1c zX+;yHNWvn8F47~mVHMYZ7e|Ki8+Y0s#3By?hevPfd)Qu^kA`Nx4|KzWQ;p@Ow6j0b zhuK$d9KQ(PlWc)*ePX+ALoJN8Q;)WytEXADzHMMmxx6Ihe?m*)4jTl?h>Dsr`+wNg z3OfTpHdJmF<+AZ+_wMP>ug#0mEg_@$&F?2|NiYMRa9)+VIWAhp%MdD&*t&4ZWNmYF zD$wQ8IAwB9XI+p=s+@Xa{@Z=*CY5ywp_Uuy2dFh7^d#L$1@fM+NzTwQsMZf`HdtEY zVaiT8t87Tk{?XU6e`jGJvxYT?omQPrLIk{q3cRtd)-0PyOi0ksx>_>*wAXwN15IHx z&JIH)?s>Cl>E#Ze45XB$%UC0Nj}zgL`Mx}_ExUPCmr>Ho2eUpcZ>_>2Sa!T`q_TRQ z|EnPX_szdY@)ae}5E{6AZ!c>KIAQBkU{j^!R-BJH3MWR7>upoqbpGij^9rkQ8;A|* z0-R6|ap8U)j-a2I8i;>wsv{}&n5lOg@C$Vbfq?!v*()XQ-etd+k@R~ESg$s(E<+G) zGN&6&yprZfpCU@syBffSDwC2m%lm#wbbZafKC>7Sr>_Aw(ShTkcWwvs(1DW+koXNa zfD)XhIMVKRDHKW{xwrly`mN_Cpa8S2n5IAzf+!eIvy9TwXufR&iHH>el?*WpG(tXC zZf%XW)z_BX$VA0%ex|DEAIJ$O5wekuAB{F|-7;qLh8R0Ti1+d$9z~2EIy1ovwa@X0 zAUu(Lv#}9p-$paUiUv`uS7=~P3^zNU$UeHPt2Q3%^biGybv6Q-mUciOaJO?bUvwMb z*iQdd5OWga!Rax&>n^PIj&7iJ=ceu$vn{sIAA+H2VUlw{H$GO&s%#k?N=2}R`9ux3 zS7|wv&DIjua5sAxav_sbs?v>2^$Na5~_5H4zBTHq(&+BNso3tn*Hf;RUn2Fe}nazwFUzbHT5bAAT@o zwf8T|DC3p9+dUY}W0iQqt%7N^(BVMTQUK}MB2KWLf(B;Czxqj!-pisMI_`PRjXR>J z=VN0sZYB$(h|!n!Mi(nsXlsroh4{56hj`8K>pf%lEI zld|hu`-zk5fB^$cqulLPyb}4n@n%KM?L+UB5UESJZ%ty}{zjvx!y?}T*wS7u%d*AZ zlO=INK>nX^93+w}_L3W^3R;$_wL>Dwp1a5cb0J?ruC34a+QeRBS%+H$JFulHPAu0> zf-r+R*QS7(s{^LcuESt^(GYk!b5slY$ zuTL!upa5@v&LOt==Z(L`<;Hp#Uzf~i%rJL@;sE()zW)6y5bFFYef7z^U*Ldmhqu?M zS(((bOGk}uqlNHr_3CMi%(RiF2|#O`T@PiL@E+!?UCyZr77Ed>o#(G^sBp1sGwk(M zu8yFWi$iR&Y7E&lXrgO>_Avz~IMyDknm-_GEVRt7$ zN-<;Oh$75IO?y77dh6-H!wIXp93-=Iz=Bu^R#w-Sk-jFhLQybs!P8IuQwO3{j_`jY zQdyW{9pWNf4tq9^ID^TcY@*lq{4+F&;%f~!e2p-l3L$lIb&;I+;Cw7vEYeAW;8pp& zP>baefLPOi5ecWkPNY~9$;%KxembeDj1v6e=mTs^@IalSAjSNH|HRdRodKc}dAJZx zjt#TBO8#|0inG8MW0>JdKAf4P4fiyKiBjwDI;qjafj;h7>iCt|nhMPLM7ZI7{|f8V z-0{09Kom4S9!iLV5MpOOF+?Bs*+2?{v1>M;5Q-&67&6i%Q6dk35Jk8G!@qC$;)xDq zH}1VrKs#haP+4SLUPKOf4P^sIbzPOng92!U{QpgR|NM4PCkY&KYFm|dNym?93~4Z_ z60CeHAoSbY`qfvDB5L@1PV^S0&v zXWWluBUm#U6+kfLQt#nxv(@8U5{}>Fm#Yfne~b4qR3&s%V^c?KohReVM^YL@V>tfk z!SkCS`Q)A^M9<>YN_#0yP5fQPckgWeG`R`17_p!5JN|Zh7sNjhoq}A`lCx5uxI9Ip zYaAAjOEq}+zIVZNJ}Y!^Q`_+0-#{p+EDT>zUUcCP0mjF?yDQ>lX6IHj43jGX%_a8s ziq1if^LlioizTu~7MpY8XcY6Z(sxEe3}e|XoaxE!Ps32p486AptZ&qf!>&%oJzi%1 z^1vo(H{GXkqwj@%$Vk`~GUhN6NB3{3cq2fs)Y@5WoEhX};Lm4nyu^+}$$ZW(==i02%#8{+F$g|tpjCXn z=6C2Sfp;%i+aYj&avFmxHj26vxj!&c2ihwOl7f*%O#aGyzatJBTi@%uV>W8nJA6R@LHVU1wdOwhP6%M}8CZ6#F3Y=FGvmQ{L?71sA@cWbtymjSI3l#i zfNAXB;~C_JdPD(w>b_tMPj|nyAiO%uYdL1U&KWW5cm=_S!SvlvR%5BC>lz zpF?+qwzy0Vu{AtxmJV~+;=^-T%nhKcL#Bz#^qQ_9@fTNJrY*;cvQCEsc~j3+!X9_q zeFah;f4cG@taw?qdlve;I3VC^k^5TOcBiJ_um0$KZ!OK$YH78d9gJf@{H`54#h@b7 zO6&e7SZt3xRW`AmogF5&F-YhB&5LS>ndn~smX+_MZ4uU;pjl6?8B7z0`Ku#~bsu}F zRcq9w*B!|=tKC-}a35uVbi%wb&0b`<39$zp@VpTP1jh?o+3Z$r5qxWRs={F0vam z|GcwN!Y|3YI}mai-NiHriD)Ji+hd*WE7aylP89?cjHTM045g&jQ|{s#nRwn|2K7-M z0AZ8Z!Wdi+fD1uaoMzGub1kHZUY`Rve=K`5G_-1{b>c2deY>_15Dv3pQ221?fAx0K z-MS&^iY6`Wj8|d5ESr0MzuWiNQ4DX8SE9WBD5kQ{Psa7>Iiox)yu^ND11#{>~DPNd491JWOzUY!{lwjju* zTF#@NNdr2J4D8}EUt%<+VY|f5CP-WA-ak-QT|nCFmj0P0`x*X?@YP|}|54go2gS8? z?W0I=cMUQ)K?fZ|g1cMr;O-tEFbVEqAh^4`1b2c5cXyYd!SCdp_q*SFa(-36x^?>x zYSXp%>eap1?tZ3wt!Ld`$7w?q0Kb3#epjF)ubiuMPMcns$a3q(Neml+{791;w;H0H zm$0g-Ui7n4xzmg@GliBmxwfgrMybv>Y1S?1YQ#*8=QQe&g**eDAH3jTZaF%`8B0I% ziqT`)I5K1@?G%ABB9dYV+GU>e$Wl2&bf^)XeB?UBeaIiDuVE93(%WqYe`q3~Jq4vN zBz5U$f~d>{YUkJi zP+N37wkwr8)BXB>wCRO5s$*8h7rlwWin_zM>f4@0>(O#F`n$iVP~fw};|#Ftky-!N z0xNx2V9SGVmoe=D{5DB-?6jxgzEg9}<^+DF+ib5`kGF@Up>=UAoc$xorXSw`=lN^c zNs*VRt7aG?dq`4pXai^YW!52fb^3fk zWDO$48UA{uqsX7gr2^nkSluPCP;ml$EBSb;*gC!bf3xMmPdOx9&59ceJIXu}7WK0oooB*cUO@wfuU^lXIk8#om|Og~bJKpaSm{P7 zt}bMVWAw>83EarG#F#p2=Ekm4x;ox&$4Az4X>h)NPISOF!h=|~XepdMJ^mAav{kDss}NO0>AZ&d-{A%+`A}%a4H}j9lPja0)_5=citmpJk%2ptIoQ1~g9f z3}cnKdo_;#)&~@qD06|jRE{`2Y|z|VUcRJ;s;Hy?{+rM7!o%?AV7HeHFPbarf_cJ{ zZdbw%URNKEJ%!_Pc|R*kcN+G%oZpYt37Ew%ZJd8#(~Vv)jfO4#UY6pn>9NWtS}~Lu z$M=ek37j}&hC%6L>3z-Q6oy7*A$t(;>=O$`C#cT%-@cKNBSP1;-JhIaR{2jP4KnOl z!EQc9Lyt(mV~0jbiXE=Li4nHK-vCsVB6+_O5FWXPjM33CJB6VG;6=3IAh`VP11{K zo=9|d5GVlK&Hl-~pZchyHKc(G{9n64i$0Wy;XIXOz}KQ5NZ*L7tEfQXpE4m&!S7W~ zlm~G6O$^ft=|uYlV%ES=4m4ydq~8{0Z&d~QYE?v`vFHhsbnQ4sh4e$e7O8`);crBJ z9TFW}2dEQG$h>a}UMePGpqf|=oBngfzfBJPw&pALdgfSr!SWD3>1;k8VI4IKdR$D93Tn5Wmj6f8pBDw+sU#yX6oJ z9xjCc(m{39#F{_9!0}6@WLi{Qe4s&$5=OZHc9ELvpo4}D*~;1)8jW1^o!`<}<*%)} zujw(QC&kcE-2PR}Bn2c2PZ8-N5cEv}<4!0l@xC}I&9aq~6m2+YAi==+{}!{~LBoM8 zlM9E0rmdcI$l!PZO!vm;CqP2!3)~(Qq=g?=86zE9QvsmQ)a-T8xXf5u zuY@(m`=#l7oH+UjL-%iy-Pw?~i=g;(F+P&4q%b=>dlfz@Dd}r^`dhp8E;9Pjlz{t1 zxL?cE!R_#Uk)E&*s_iDdFE7wu1^EJSwjGF2cLE#IGp8zsl3VicPXXXtV-c^WQz^!K zvI|LPY`73xLuB)vipNbcKKXQRD_orE+1Xh;@28^3KpzwF0Sh!J9|7QMicuK(NQ=|c z*XR^%_8XfXdmXq;fwBD^yktaRqDfv*cZ@*+Qn<+Avq>eV7F0x7X=z&=8hM|Sw)U%; z<3g8@cMd@j1H<`eH=9-p#)(xl;WiGy3u4(v z>I6@AD6m0VnTR6LTP>X&eyDSEg9hWdx%p6Qs_=uWQ}V#au#|fO>|cQwv+j9j%hz=) zCIm3ZG@_s08)G2rFAnIvHhh?ISmIq9|AcjPGnYAdk43-hmtZUHda#RlItZj(=hl)MWwJs#d^ZdTJo-XBK9=I7$M36*5$ zM_H;WBQ?EW5XXf30Hp^Z9^A4@Y6XdD1Rq$XCny({FtHqwglx03P) zg<6~T`*+xS1@29h8cm8=Zb?gkAD>V9V)(sL*DwwdqF`{j3=4oty2*`fzLb@c%ZFVb z!45X7@NdQrz3!TP%Zx?dFcL$9ye<6QkB9$Wa`>qgWU636y4hEk(EsP6W$rJYpMEv49dFFL=Tw6TU~M1WF!{4$$3@N*U^Tx@f< z^W9l9(lGyBe4iGM7Y`3!WOa;yc{wgn2b-^3C>$MU*HjtV&uS4lI^Y?~PC&yWoLH>g zJ*qGpf^Vokkg&qRz=)$p{C^9*|G(0Sn&Ey z`GjCjiET1bc+bQ0wFl{=Fj0;`l(C){z9ddK4H&PlAW>qG<69Hs#nF?3=W~3y+tuoc z5?@q>XuhDt-~~3L0J^JwrO|mt?v#?ux-)uCqNj@E-Y-rAmRMW6kWb2SL^gv3mu|8` z29c@Y&%y(mm@g>9T9U19HnL3hK!ivKL#Ao!HGo#RA?sQ1W~8h$ZS3#CKZLerB>lIY z)1zWbnafK0zAmk*_MjSKc=o)Q_(nz1GrU`d@cK462S^rDAz=j5S0+*%5(q4OL|6Ox zqdP?O=nG{L-c4T}6;}3}!ig{1M^|Dz>CIYXU^$}Fp~+Gz|8fhH`5cm8akePp;XwtV=wL zEEpd)T<>-s*`FzZ+Ls*82+oCx6mo*v(?Do?ms>)cmTtD#L$1VS+PGJe}|JNOHvk7@tbr!l*E{A|P6Rnh;80b+OO@me1x z(rkph7Ey$BHAj3D-Ui+X8HJUMnNC>@D!3$%MC2((l;M+q-scz!?#Nvk?fl89HKu*? z)g2h-)E#oC-M|{77PROMs60FG^r{NdveF<1B*0Rh$5v0!ANX@wv2YNRbsJr8<-jL zB_^mOZ-#DtI1Tof|IEC30i-tAEsc$cSjbp4Fxb!*GWDT6wt(9^*Y)#9p~FDlI)8P8 zha}^}VFrUwqLX$Ib~lwWlJk(Rt{?Q5(ZjK}rA5p!rK#CF)M?!lX==!hh2%-=3V`AS z0W8dkNr1r^Rnl-wHlm5Jk7AA2J~(4SBJ7|E?7e~?g%HPXRmUAo?&wFXKrY}6|BJb6 z%aMo%2UJC3dD7oGX2Tu9y9#NEcChw$L+M|^Cm6oO91c(kye!~#ZC|k zYi!+qdiY_9UDPzaomK>)=ev>N`Z4Eb0bw$Av=<-bDHKkVmhS|mX1Cer^TC#ShWO?@ z`-uqX^X7ze^^Abz9GCL(C@?kW#Vu(N`gt{Jial7SBuS)nh*^K?v0XZhp>W&BO-uXZAEG*7Z7G1%7 z;LhJPGQBCdQ)s$QTqTq^0iH6Of8huUrnp|DeoWa;u`;#LHwcRG{~qPQ$3v{a`}(79 z?x-Z?HwB~av=kM})2#ksgs{#2*r@gXsVQ1kM-$EP6+DbMCHrzK#EvEC*#b2+;+7cO`2m;p1D8U`opN21BEc*Hdt* zidjTAs$5KGj%e0JJn?U=$!VfPx@L=(x6sp`N)*E;QlIssmX_3WXvl@i!{8X;c=X-A z+J3@~GF_s6)nH6f4o37bRZ#svC16T6L@_UX$8tS=Xe#9yIB<~A@?n9R)G!%)19?1L zh@{k%hfJ|5lCXP5QYF2;*Z5>|2^&>e4Og}--UB$&QD0n+rni;|??Amc zjj^QEl~PW>zy;t8JUMH%)Fyyb{rnS6Y3|{h{u7L9%Is}C)twJ4d&Y}rO zrjpNZ*yke^>+s3a4stBtuu2`ycUMi<1m)HpRbP&zX-QU0;-4EZ$Y>0eLyF(J&rDX= zq`x`Rk+GT69%6e(1-%mup`3c95 zVPAEqY&`F+{S0{087g2&=h3=BTP}E!Q^Mv=S>ERD$vInQ-$cvZ4uK;rV%~=fILabN zg~}jLyEANBOdFC!lgf&WoP`^1p3WX#M!pIP{7J!SyXP6Kk2jIsa?KyLzSyK~^94=D zuXcZw{R$7?#ZRfmckBGN+?O@9xfGK#Bf6`}>yQy*$O-;d!)becyW*^$SaNmakqEfl zs(K@XEpG20xO0WYxI!r4si3!R7n2LfSf5bbL}+ae+f(zs9?9Ozbk>LzE%IzTGHt1< zC3$B_KrtBaX7h`ISt_e{n<5}`TOIj+Oex&e@|J(hErz=r79-OFOR z+Ar~d9UeM04EtI9#Kj}0$cJm8`ci7%-|O>#Xhi>KrRIxOA>*jAHaS6q<^O#dYi)v! ztfpY(Vgsc{t;urmfQJKuey{SlTz~VL{_iT!70X7#2nKRMxlsR`+OAAn!C_GnyY*i4 zC{GxTnENK2^38N;YzJ&ie*GB50tGQ7W-csOR#oxw^gf<)D6e+nT$!vs7uMpYwJ&L& z7eMB=e>osG3ropb*wkrFMaWfDJ-v#Om{@8EMOrd& zS8ClXT50~R)kSd&>et>e)gVOWbr<%iK)k|pbP(64sCc~0R26n~{~=*YY=OmzNDXQe zQDQB+Na{#eV~up!NQ}~)-X7}<_1Dt&LBp0HBPM(~8TOiw_OVS8h3zE9;Eyr^NJeX% z_L9FW8*$guXs`r1PkenC+;k-OeAw$Bx9|FG{6Lridis@ zZi!!rEvO&f#=)hWc5;+Sub!xuXQ12Y!-IX(?iJ{NqNYm0H_-HE#Mw7%1!s2N2D6OmKS#B&n$TVu!@rHW49~AaR1k@=@0p8wdN%ko!xoohn z(Bx!(!5b?7)oJhcvtzcpE&nd!@VK*I>_)n{vbH3wV)q*Po=+Mbv%<)0ad=aofI89j z@eplmw`z~n(?b4KRR1L5(GI}s2zolKU%w%*mSSQRwrUolehUJssTf7^xq$jQmPlFF z!IZPGM*61Po2hYQQE+Rr&VoyAYBWB}r75`q{VmgN0t>A`ZomTdhPiA6VP6tcl69eZ zlz%To4v0;0F`{Qo{*-J=?8)-oy6ffxEsKS@-}TKH1AbOGaF7aQ`ZYZFI#nww9W!2S zCz89)>_=>|Kv7tbu(RV(#F_5OiSQLSL7<_y^E%3pA3hXA++Zcb?Ty@l#BfCgNu{#T zYgemmmv=Tmot!63#otu@iEdMKr5scsiQMGj0diu;MLbjKm>31dKD7rM{v?s{uCT85~Dm(9>u8=L!-q$JT0I@>e>7l{=3nqBgYe>0fW6NY{YF| zo4cR4(bJxBya(@m#fPG&D!ygJc(op$tx#GoEdg%%*rO1v)ZgXQX|>-KE-j^A0=Fu z#p7PlIh@ZlF(}eN!w}xwGmu!-y(Kh6gbU+9oJ}J=P}JmW;^W~~N%e&7()Gga>z+S% zMGU%wCk4Af$v-^ZPm8;kn-LE-T0W#q+hH;(<~Yp7_E`o6(w!%{jh;B0tE_cjgbA80 zwpbn7D}Os7FnU24AC<6pqnf~l*3N#qtc%dF6hGG07T1)jBXHv}`o)3Wfj0m_>MB|^ zY6Jx#p!3n^J^i+T()Cu=k~;F;JQunN!dFqAo>cJh^Wmm!Z@Ivu!8!itT!3Ycrk%RV ze)qA|V)ff(1ACm0{i9b^RwZyUUat)_l}LT$*^{}6>HV~d?|yL31*jCVMxBK8T6!mr zzvP6?v^^jNoH%u&pk-E%vR^i8QZtLc#lnbKMn^W&BaUOhM1hA+5h~6UUO2Mr5??b^ zUT}i(?apVM#x~+5ralQ!B(N1OheV8JWLk&AUM)C*JgtXPbJyA!idqzLcSi{omOR4! zB(u}bEkwAq$XofvDCu{`dA0P$gRaahB~!fO$rQ(fd}DL!EXZqG9GIw-B1s>cDYxcI z6FUNn6OG%5ZsSYub6ie*9(A+dRzi>Zg;>Dh2CNBD2Elp@YKM7mUV82G&-z&n>2XG( z=mHZ->;r1Q+MMYTo+qbadLq3(E}FMeLVBG>nw(Zod{j;!emxc6$OhNwpa1Mk>*R?m zED8hnr2+w4_Kr1^^e0fm`$`#jE;ht@>7G$yewYQ0;7-BccuGMJi@*%bi|vN8g0_S2 z&xQx;RVvh5v$tf9$ZpuNMT4Xz?B+ZWDF=H*60E(+_s8ab$@5xsajUN?YC92=csOD2TWzAP6Ug0G zR@1FSH;3VT7yVJXfsEMsI8cVXxUcJTs-;rUGmWdLX_VmSG2M7k{=hcdJeQ$o98tU= zJTJmMxvhsjOqB6JiDo5acAP^`y7PxB5vBUXiz#JN{j!Jl2c+YYdDOqq1m@qY*ezs&cL7X`0no95KZ5 zgFcwDjCzBFDxH?<>@5LRZh;aKBf*7^Se4(cCQ3SpaR%lKWg8_{iO|sGM-_@^`}pk< zJp7xpyuD+lNIHeYdG!e(`*z_-kNjIammZ5mq%SW?b5N{a$L%Ffo!b>;d`oc#lX4S_ zqkK&gVJ$2s$U(&8B9R})@&9bKp-kqFVnqg4m*k2PL&UnDyl|e&BJ7XAP7-JU8osf;M{%?9?mfExIG>{B}6S=UB_QnH;sBa zZvz!#1)}T2)$?=|Reif!wM7dnpEX^r#O!rtVeTGCsx(T{OTS9r_p7z|actN6q52w( z!BOTTb@7#16DDqdIcnGQ%6{Nm(44zlnP(TW*hvbr;$&M0pB$4ZecsdTp_AI9ppTyI zwOM2F;6sc8i+T4g5RYEAz@W6mlZ)2X4>b7fjCA23+I4Jn9c^k_eP`@1ZGulvc1zM2 zK|KDwM{<#9?M=3S?X!ZEsK0#NSlnBQvI(AZ3Y;d(y}3ikTeDR5#~4O^_1dTG4^~Z& z#O!?^bjUSO5HW2W{ll-;g*w_h0{)F@xp@AAX^+w1xOo2nwOl;^F+;w;&G2u||Nk;W z{=du+$j$f9t*cfY1((Hs94M+CrqdWO6I`VPnYE_4%@dfJg#I+M!9qrn387P!i$2_2 zEkNqIL>GqfS7_YuXMB@0USVCqX_AJllf&z%L2ek|gxgYN=u-^R4t)9a&}7uC}<*sPsQ5Dg&8Rd{|U zgiz~ut_KOb#GlwL^Dc^o7CKFVGH~Ju%ekuM@!@bKx5a6IfPtE#F{i?-lF2C!4^;jd(h3;-+9ieC3B;vA@0)UmSGj6>P=W2lhl*L8y(dEio z4OxR1hYt@Y2(tU&cWY5ANA#*<%k*mvUWk&f?rK-i*Klu3xRwyxUmWbF;z zz9?K>x`SOx-7CKiwZhc9^~{N+`75w+V#bR>!_`4(1B?cMmma1`jAI*17UFq<8+)cn zg=q7I&e=F5xN()5F-e};tCZIT*3EiS@UQ62zH?dE_i$-3E30pWN`H5esT;tB7zLo3 z+I3-$Nc{S8mDYtUlSH=l;mcQNayB*kA*bWaL=rIVKvtkGu~IEo_YZM`&$R65{G3I2 zy@^u@VN8KEeIXIjs6~b=%4oFBGPe4%Gz#+jxC-)yx$`tM$+&ajYjCKU@9vU!RuwPn zy`F%?-L&Yv$*eu~AkjDFhvUffNq*X+FbHyG+;}v^&FDt5Wop=LXv~F`EHdm)+JG4L zp=_|<7!a_DP$w(_56UkJQn_O8e=m{+UY=QO@&pC4-8k|e>72)J9p>dWd^p3^nHI0H zI^1*^seex+d7SBrL8>T@YK)#R-?H8jurwWAMa*-SY`sq=J=))?{%fw)%#l|zOJF+`ehEv6xc4v>?#-^=UQ|pARSZ5(D1uk1opL-e{MZE)!Zw=~ zn^m^ofbB&DG#6d(dK2f2_F=0nHm>OF#U5zI7SruMVq#i?-_s}}SSVC<$;9c(1rmhd zp9?$5v9Umh76ve8x2a$&g5r6@}CK=hcD+LLy`qIHcI3A6&ik?RCZ;N{4QAtQk)^ zd=vPCv>FEZUIS>NaM`eU8g`ZV{ zLqA=vT;H$QnbmOTV zBAvw&FjPA-rX(z8X^qJ`RcMSI0JNXQN3^ zqrDRwv20=+F$mxtTrM#LN1_4dpu6kcH>#PFRp#4{<>|~4$y{2>hT&~}jbGshQslM-}d8gs~IMT_hKX;hP)cI_-wm=M7HfutMV2B9Mh<^l-amLOLP_eQSuG`$DR38 z#F6SfE_(jEo)_%5!xQru$p!-!8Aa zsNAS|V0=a$<4j9!WNs8@#ISyjvAHaBc(+3Vbwa(0epN@yB){6UPvA|5(xP zNJ97Va%(%L`oafe+i_eIu_0AkEozSXkO*Ucc=q7UJzLu`{InZSC3%avvw+pYBEFE- zIy)a7e%4^IBqF@gQ~@#m<$9{8`))|bdQwX`c=ti0K>q|IqW^6OFyQC~ATXPNtwu60 zySHwC#bT4lNb6=eLl@SDy~5%&>fX7^4?{!MlswQ6gP^pZQ%k^{D<&jDt4os9YFGQ| z(hbYz-u{-K3BPc#I-<}x2xvf03b!F^Ar74|F)EZr7gOk(b{KQCex1wz;G&q374**o zZ-bP?f$4I=b*7>H99<`{uPm*3yHXB*A(*PZjr~3qbRWzvXI8XK6Dav(ed{17c@Gjp zpQ*!#VhiCl$n>9phn3?GTU^|Mv)K!i((Uaa_o{HPb$mnmaX( zj&*QBKh#x{*3+_^0V{)}-^SAK=^Qq_qreSW&6ik0|Mxv2v^)9?nn0XwL|Mfr+Ca;uM`N5!GUshYJ)d)7t!r?+ejc0=g#WA-Qz*Gp?(#J(YN8tg3yYd}B1IM5e5PoL6oh zO_FUAsC1Y)XY_>?+CK~|R)L)g&FxgJ_(#4O?>VwJhZcjA6VH5ySmS4uo)I{Q4zd0Z zAQAMxAd#EnPml=u8zgdb{sj`b|IPsQzaWtt_%}%8}bZd#-s;}VqaJyy}Mk1#rZCD zO%(avQ+vDTIq}DPQelUABKo<}BaiP-0hHyV#w*Skg?yjoXy#tVzH=f0<5TNi+p~@7 zjz1^G5yIhMe@25*UAmB?4_tdkyc4(1M(XZ4lHR7ua^Arv1iZfY7{v^}{`Ht~bZ&7y zxjmnh8@FVs;i&%IxkNn9Bn-Wah!!QO^0Gtm-ZS2z&Gnea`^gPb2n_OON6nVxXERQ- z#HEd74Z#J{7fWo>ce;p!4eI;MYu>P&bHh)xnfi*N z&LVAc<8sgW`if2r8l5U4I9F~u>xlr9GXxp&e3qOwwmr}ILwArC9Fc6cfQD!xo`PQh zYbXFnU7WXpNO8w9&eNQVIp(<+!$2SrXb~2Xy%j1w;8Fx;bfyL11xkj-77Q~zlr-y+ z3N-=iaEgwcXGqH>c|J?$(c5w>&zdO+e;flXX1;s*E9WYE^(W=@V>Oxa8&e}KEFL3# znL)wful zLfRD`&2K4Sdl0A!u|~ACGg&l@HV|K1CDDd}09Tb!uXu%ArvHOoQ0qYcyXjso@5z)+ zyJicb<>`}hGqoCK#OQrTe9DUBZM&hjwTsI{?z8TFBW&~M<&+nd{^{9f&0oe;FLS_F zH>|Ihc)fqcf=iuHIo_S9?~#$6iS(0*Gb1S%6Eu&m{cvdG@!E z0*pha+bds?4K90@MyI+MZqQz_yjt#OhO{DF;7&0dxmaoH?%k37%^2(HTIjh(@A?B>`6XZB2eoT!9wsmQGIz0(`i5SJO(!Jr( zP*D_;R~pnW^)^~m_cG#Gn|FIn=|aDj5`^N*;4)PMI2m|kX>+3+5_j;S!{-!nE+`ty z+05U5)UUjDL7I2E_SlDaM%VueA0+f8yxmiWA&ejvHfUpIxI zhQMUBUa4u44A4hL&=CEum#0?Hn@E#F@h+`M)(Y?A0JqK@tX`az>I+)b{D6og<~UU_ z$5cXH+q1|sPQa^vQho#LIzN_>7?F5W9FkZC29`r3VR$5hIi%54A>NnXPmZ53PaO@- zP%II?%!x3%3JnnLxV}3P=&^cY!SR*7LFNf%0xqZms7*osF<4pd~cI3N(u<9rE4FC1jrNizM?2iR+_j;Ihk83 z6>!ea@*%&S{516-)46fil`)}_d?AjjI^&I1MApE&uFH-!kQzdtq!wsi57-Lr4=4=q z5B%blUQ~KCXeyUPv!EJi!b`ms(jP!$oAD@O6Q85AE723(QusYOHJBJvdcbiUOn#nf zi5Ul~Ay`WdQQz$;&I1)$+qkGkPNc%Crf|(NN&jST$PHbR)*MrZtCs6$9>L$wVfg@EXco94?9=zdng!@466&gR zQ6?ql+^o6Pa@EQ+W%?7r`MAksWHx9EAFW?sTemms?x58SWTLe#h^%x!XtZHl*)iS% zfa_#5XL{0~!cQD+>la<&TR+ylkh(1N>73S@Uj@%J&?`9NvNrsl8ff@q{OS}4kkk5T z$`kBvDjlTy)Hz}p4H1mQtwvK_pMIT;_`1}{tWrI5yj?@=&Wiy*He>9c@2hNuXElIR z14Kk&`HD>JCk87s>PH^4TAw!Ww>N3jJ)5G2NwJ%=IG

Z61T{oPaYNNmFtc|oSHw3 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 10, 'no' => 0); - $pd_location_approach = array('Very Easy to Locate & Reach' => 10,'Easy to locate & Reach' => 7,'Difficult to locate & Reach' => 4,'Very Difficult to locate & Reach' => 2); + $pd_location_approach = array('Very Easy to locate & Reach' => 10,'Easy to locate & Reach' => 7,'Difficult to locate & Reach' => 4,'Very Difficult to locate & Reach' => 2); $comment_locality = array('Excellent' => 10,'Good' => 7,'Poor' => 5,'Very Poor' => 2); $customer_behaviour = array('Rude' => 0,'Polite' => 10,'Others' => 0); $neibourhood_check_as_per_pd_officer = array( 'Positive' => 10, 'Negative' => 0); @@ -96,6 +96,7 @@ class PDSCORE $score_questions['general']['person_met_is_applicant'] = array('l1_weightage' => $l1_general,'l2_weightage' => $person_met_is_applicant_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['person_met_is_applicant'],'actual_score' => $person_met_is_applicant_actual_score, 'max_score' => $person_met_is_applicant_max_score); //######1.2 pd_location_approach + $pd_location_approach_actual_score = ($l1_general/100) * ($pd_location_approach_L2/100) * $pd_location_approach[$score_questions['general']['pd_location_approach']]; $pd_location_approach_max_score = ($l1_general/100) * ($pd_location_approach_L2/100) * max($pd_location_approach); @@ -117,7 +118,8 @@ class PDSCORE $score_questions['general']['customer_behaviour'] = array('l1_weightage' => $l1_general,'l2_weightage' => $customer_behaviour_L2,'distributed_weightage' => $general_distribute_level_weightage,'answer' => $score_questions['general']['customer_behaviour'],'actual_score' => $customer_behaviour_actual_score, 'max_score' => $customer_behaviour_max_score); //######1.5 neibourhood_check_as_per_pd_officer - $neibourhood_check_as_per_pd_officer_actual_score = ($l1_general/100) * ($neibourhood_check_as_per_pd_officer_L2/100) * $neibourhood_check_as_per_pd_officer[$score_questions['general']['neibourhood_check_as_per_pd_officer']]; + + $neibourhood_check_as_per_pd_officer_actual_score = ($l1_general/100) * ($neibourhood_check_as_per_pd_officer_L2/100) * $neibourhood_check_as_per_pd_officer[$score_questions['general']['neibourhood_check_as_per_pd_officer'] != "" || $score_questions['general']['neibourhood_check_as_per_pd_officer'] != null ?$score_questions['general']['neibourhood_check_as_per_pd_officer']: "Negative" ]; $neibourhood_check_as_per_pd_officer_max_score = ($l1_general/100) * ($neibourhood_check_as_per_pd_officer_L2/100) * max($neibourhood_check_as_per_pd_officer); @@ -240,7 +242,7 @@ class PDSCORE //######2.10 stock_finished_goods_enough $stock_finished_goods_enough_L2 = $business_distribute_level_weightage ? ($stock_finished_goods_enough_L2 + ($stock_finished_goods_enough_L2 / (100 - $business_distribute_level_weightage ))) : $stock_finished_goods_enough_L2 ; - $stock_finished_goods_enough_actual_score = ($l1_business/100) * ($stock_finished_goods_enough_L2/100) * $stock_answer_scores [ $score_questions['business']['stock_finished_goods_enough'] ]; + $stock_finished_goods_enough_actual_score = ($l1_business/100) * ($stock_finished_goods_enough_L2/100) * $stock_answer_scores [ $score_questions['business']['stock_finished_goods_enough'] != "" || $score_questions['business']['stock_finished_goods_enough'] != null ? $score_questions['business']['stock_finished_goods_enough'] : "no" ]; $stock_finished_goods_enough_max_score = strcasecmp($score_questions['business']['stock_finished_goods_enough'],'Not Applicable') ? ($l1_business/100) * ($stock_finished_goods_enough_L2/100) * max($stock_answer_scores) : 0; diff --git a/api/application/views/js/phantomchart.js b/api/application/views/js/phantomchart.js index bbd1b84a..a8604f45 100644 --- a/api/application/views/js/phantomchart.js +++ b/api/application/views/js/phantomchart.js @@ -1,12 +1 @@ -var page = require('webpage').create(); -page.viewportSize = { width: 600, height: 350 }; -page.clipRect = { top: 0, left: 0, width: 600, height: 350 }; -var score = 69.08 ; -console.log('score card chart'); -var url = 'http://localhost:9999/AWSEC2/sparqapi/api?'+score; -page.open(url, function() { - setTimeout(function() { - page.render('C:/5.6/xampp/htdocs/AWSEC2/sparqapi/api/application/views/report_templates/chart.png'); - phantom.exit(); - }, 500); -}); \ No newline at end of file +var page = require('webpage').create();page.viewportSize = { width: 600, height: 350 };page.clipRect = { top: 0, left: 0, width: 600, height: 350 };var score = 51;var url = 'http://localhost:9999/AWSEC2/sparqapi/api?'+score;var image_url = 'C:/5.6/xampp/htdocs/AWSEC2/sparqapi/api/application/views/report_templates/chart.png' ;page.open(url,function() {setTimeout(function() {page.render(image_url);phantom.exit();}, 500);}); \ No newline at end of file diff --git a/api/application/views/report_templates/JSONTOREPORT.php b/api/application/views/report_templates/JSONTOREPORT.php index 6c90b7c3..2a56ff0f 100644 --- a/api/application/views/report_templates/JSONTOREPORT.php +++ b/api/application/views/report_templates/JSONTOREPORT.php @@ -82,7 +82,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - +