From 01e3e6d44d6d64c4a187785486f5c956d434f297 Mon Sep 17 00:00:00 2001 From: Alexander Pankov Date: Sun, 2 Jun 2024 15:45:28 +0300 Subject: [PATCH] Some drivers for imx225 and JX-H42 (#1409) Co-authored-by: Alexander Pankov --- .../files/script/load_hisilicon | 10 +- ...25_i2c_dc_720p.ini => imx225_i2c_720p.ini} | 2 +- .../files/sensor/config/imx225_i2c_960p.ini | 217 ++++++++++++++++++ .../files/sensor/config/jxh42_i2c_dc_720p.ini | 2 +- .../files/sensor/libsns_imx225.so | Bin 16710 -> 0 bytes .../files/sensor/libsns_imx225_i2c_720p.so | Bin 0 -> 17980 bytes .../files/sensor/libsns_imx225_i2c_960p.so | Bin 0 -> 17980 bytes .../files/sensor/libsns_imx225_i2c_dc_720p.so | Bin 16536 -> 0 bytes .../files/sensor/libsns_imx225_spi_720p.so | Bin 0 -> 18212 bytes .../files/sensor/libsns_jxh42_i2c.so | Bin 0 -> 20384 bytes .../files/sensor/libsns_soih42.so | Bin 10444 -> 0 bytes .../hisilicon-osdrv-hi3516cv100.mk | 2 +- 12 files changed, 228 insertions(+), 5 deletions(-) rename general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/{imx225_i2c_dc_720p.ini => imx225_i2c_720p.ini} (99%) create mode 100644 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_960p.ini delete mode 100644 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225.so create mode 100755 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_720p.so create mode 100755 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_960p.so delete mode 100644 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_dc_720p.so create mode 100755 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_spi_720p.so create mode 100755 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_jxh42_i2c.so delete mode 100644 general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_soih42.so diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon index 6d668c4f..814fee63 100755 --- a/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon +++ b/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon @@ -89,6 +89,12 @@ insert_sns() { insmod ssp_pana.ko ;; imx104 | imx123 | imx138_spi | imx222 | imx225 | imx322 | imx323) + devmem 0x200f0000 32 0x1 # pinmux GPIO1_0 [SHUTTER_TRIG] + devmem 0x200f007c 32 0x1 # pinmux GPIO1_7 [FLASH_TRIG] + devmem 0x200f00b8 32 0 # pinmux [GPIO5_1] USB_PWREN + devmem 0x200f0138 32 0 # pinmux [GPIO0_6] SVB_PWM TEMPER_DQ + devmem 0x200f00c0 32 0 # GPIO5_3 for Beward DS06 + devmem 0x200f013c 32 0x1 #pinmux SYS_RSTN_OUT [GPIO0_7] TEMPER_DQ devmem 0x200f000c 32 0x1 #pinmux SPI0 devmem 0x200f0010 32 0x1 #pinmux SPI0 devmem 0x200f0014 32 0x1 #pinmux SPI0 @@ -325,7 +331,7 @@ insert_ko() { insmod hi3518_rc.ko insmod hi3518_region.ko - # insmod hi3518_vda.ko + insmod hi3518_vda.ko insmod hi3518_ive.ko insmod hi_i2c.ko @@ -356,7 +362,7 @@ remove_ko() { #rmmod -w gpioi2c rmmod -w hi3518_ive - # rmmod -w hi3518_vda + rmmod -w hi3518_vda rmmod -w hi3518_region rmmod -w hi3518_rc diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_dc_720p.ini b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_720p.ini similarity index 99% rename from general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_dc_720p.ini rename to general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_720p.ini index dcaac08b..642300cf 100644 --- a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_dc_720p.ini +++ b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_720p.ini @@ -8,7 +8,7 @@ Mode =0 ;WDR_MODE_NONE = 0 ;WDR_MODE_2To1_LINE = 2 ;WDR_MODE_2To1_FRAME = 3 ;WDR_MODE_2To1_FRAME_FULL_RATE =4 ...etc -DllFile = /usr/lib/sensors/libsns_imx225_i2c_dc_720p.so +DllFile = /usr/lib/sensors/libsns_imx225_i2c_720p.so [mode] diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_960p.ini b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_960p.ini new file mode 100644 index 00000000..5dd30332 --- /dev/null +++ b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/imx225_i2c_960p.ini @@ -0,0 +1,217 @@ +# Beward DS06 + +[vb_conf] +VbCnt=10 + +[sensor] +Sensor_type =imx225_960p ;sensor name +DllFile = /usr/lib/sensors/libsns_imx225_i2c_960p.so + +[mode] +input_mode =4 ;INPUT_MODE_MIPI = 0 + ;INPUT_MODE_SUBLVDS = 1 + ;INPUT_MODE_LVDS = 2 ...etc + +dev_attr = 2 ;mipi_dev_attr_t = 0 + ;lvds_dev_attr_t = 1 + ;NULL =2 + +[isp_image] +Isp_x =10 +Isp_y =20 +Isp_W =1280 +Isp_H =960 +Isp_FrameRate=30 +Isp_Bayer =2 ;BAYER_RGGB=0, BAYER_GRBG=1, BAYER_GBRG=2, BAYER_BGGR=3 + + +[vi_dev] +Input_mod =2 ;VI_INPUT_MODE_BT656 = 0 + ;VI_INPUT_MODE_BT601, + ;VI_INPUT_MODE_DIGITAL_CAMERA +Work_mod =0 ;VI_WORK_MODE_1Multiplex = 0 + ;VI_WORK_MODE_2Multiplex, + ;VI_WORK_MODE_4Multiplex +Combine_mode =0 ;Y/C composite or separation mode + ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */ + ;VI_COMBINE_SEPARATE, /*Separate mode */ +Comp_mode =0 ;Component mode (single-component or dual-component) + ;VI_COMP_MODE_SINGLE = 0, /*single component mode */ + ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */ +Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge) + ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */ + ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */ +Mask_num =2 ;Component mask +Mask_0 =0xFFF00000 +Mask_1 =0 +Scan_mode = 1;VI_SCAN_INTERLACED = 0 + ;VI_SCAN_PROGRESSIVE, +Data_seq =2 ;data sequence (ONLY for YUV format) + ;----2th component U/V sequence in bt1120 + ; VI_INPUT_DATA_VUVU = 0, + ; VI_INPUT_DATA_UVUV, + ;----input sequence for yuv + ; VI_INPUT_DATA_UYVY = 0, + ; VI_INPUT_DATA_VYUY, + ; VI_INPUT_DATA_YUYV, + ; VI_INPUT_DATA_YVYU + +Vsync =1 ; vertical synchronization signal + ;VI_VSYNC_FIELD = 0, + ;VI_VSYNC_PULSE, +VsyncNeg=0 ;Polarity of the vertical synchronization signal + ;VI_VSYNC_NEG_HIGH = 0, + ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E +Hsync =0 ;Attribute of the horizontal synchronization signal + ;VI_HSYNC_VALID_SINGNAL = 0, + ;VI_HSYNC_PULSE, +HsyncNeg =0 ;Polarity of the horizontal synchronization signal + ;VI_HSYNC_NEG_HIGH = 0, + ;VI_HSYNC_NEG_LOW +VsyncValid =0 ;Attribute of the valid vertical synchronization signal + ;VI_VSYNC_NORM_PULSE = 0, + ;VI_VSYNC_VALID_SINGAL, +VsyncValidNeg =0;Polarity of the valid vertical synchronization signal + ;VI_VSYNC_VALID_NEG_HIGH = 0, + ;VI_VSYNC_VALID_NEG_LOW +Timingblank_HsyncHfb =0 ;Horizontal front blanking width +Timingblank_HsyncAct =1280 ;Horizontal effetive width +Timingblank_HsyncHbb =0 ;Horizontal back blanking width +Timingblank_VsyncVfb =0 ;Vertical front blanking height +Timingblank_VsyncVact =960 ;Vertical effetive width +Timingblank_VsyncVbb=0 ;Vertical back blanking height +Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive) +Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive) +Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive) + +;----- only for bt656 ---------- +FixCode =0 ;BT656_FIXCODE_1 = 0, + ;BT656_FIXCODE_0 +FieldPolar=0 ;BT656_FIELD_POLAR_STD = 0 + ;BT656_FIELD_POLAR_NSTD +DataPath =1 ;ISP enable or bypass + ;VI_PATH_BYPASS = 0,/* ISP bypass */ + ;VI_PATH_ISP = 1,/* ISP enable */ + ;VI_PATH_RAW = 2,/* Capture raw data, for debug */ +InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1, +DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1 +DevRect_x=0 ; +DevRect_y=0 ; +DevRect_w=1280 ; +DevRect_h=960 ; + +[vi_chn] +CapRect_X =0 +CapRect_Y =0 +CapRect_Width=1280 +CapRect_Height=960 +DestSize_Width=1280 +DestSize_Height=960 +CapSel =2 ;Frame/field select. ONLY used in interlaced mode + ;VI_CAPSEL_TOP = 0, /* top field */ + ;VI_CAPSEL_BOTTOM, /* bottom field */ + ;VI_CAPSEL_BOTH, /* top and bottom field */ + +PixFormat =19;PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 22 + ;PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 23 ...etc +CompressMode =0 ;COMPRESS_MODE_NONE = 0 + ;COMPRESS_MODE_SEG =1 ...etc + +SrcFrameRate=-1 ;Source frame rate. -1: not controll +FrameRate =-1 ;Target frame rate. -1: not controll + +[vi_ext] +Width=320 +Height=240 +PixFormat = 19 +SrcFrameRate=-1 ;Source frame rate. -1: not controll +FrameRate =-1 ;Target frame rate. -1: not controll + +[vpss_group] +Vpss_DciEn =FALSE +Vpss_IeEn =FALSE +Vpss_NrEn =TRUE +Vpss_HistEn =FALSE +Vpss_DieMode=1 ;Define de-interlace mode + ;VPSS_DIE_MODE_AUTO = 0, + ;VPSS_DIE_MODE_NODIE = 1, + ;VPSS_DIE_MODE_DIE = 2, +[vpss_corp] +Crop_enable =FALSE +Coordinate =1 ;VPSS_CROP_RATIO_COOR = 0, /*Ratio coordinate*/ + ;VPSS_CROP_ABS_COOR = 1 /*Absolute coordinate*/ +Crop_X =128 +Crop_Y =128 +Crop_W =1158 +Crop_H =562 + + +[vpss_chn] +Vpss_W =1280 +Vpss_H =960 +CompressMode=0 ;COMPRESS_MODE_NONE = 0 + ;COMPRESS_MODE_SEG =1 ...etc + +[venc_comm] +venc_chn =1 ;create venc chn number;(0,2] +BufCnt = 1 ;network meida-trans bufcnt + +[venc_0] +PicWidth =1280 +PicHeight =960 +Profile =2 +RcMode =VENC_RC_MODE_H264CBR + +Gop =50 +StatTime =2 +ViFrmRate =-1 +TargetFrmRate=10 +;----- only for VENC_RC_MODE_H264CBR ---------- +BitRate=4096 +FluctuateLevel=0 +;----- only for VENC_RC_MODE_H264VBR ---------- +MaxBitRate =10000 + +MaxQp=32 +MinQp=24 +;----- only for VENC_RC_MODE_H264FIXQP ---------- +IQp=45 + +PQp=40 + +[venc_1] +PicWidth =1280 +PicHeight =960 +Profile =2 +RcMode =VENC_RC_MODE_H264CBR + +Gop =50 +StatTime =2 +ViFrmRate =-1 +TargetFrmRate=15 +;----- only for VENC_RC_MODE_H264CBR ---------- +BitRate=4096 +FluctuateLevel=0 +;----- only for VENC_RC_MODE_H264VBR ---------- +MaxBitRate =10000 + +MaxQp=32 + +MinQp=24 +;----- only for VENC_RC_MODE_H264FIXQP ---------- +IQp=40 + +PQp=45 + +[bind] +ViDev =0 +ViChn =0 +VpssGrp =0 +VpssChn = 0 +VoDev =0 +VoChn =0 +ViSnapChn =0 +VpssSnapGrp=0 +VpssSnapChn=1 +VencSnapGrp=1 +VencSnapChn=3 diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/jxh42_i2c_dc_720p.ini b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/jxh42_i2c_dc_720p.ini index 8c2a5f65..c5204028 100644 --- a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/jxh42_i2c_dc_720p.ini +++ b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/config/jxh42_i2c_dc_720p.ini @@ -5,7 +5,7 @@ Mode =0 ;WDR_MODE_NONE = 0 ;WDR_MODE_2To1_LINE = 2 ;WDR_MODE_2To1_LINE = 3 ;WDR_MODE_2To1_FRAME_FULL_RATE =4 ...etc -DllFile = /usr/lib/sensors/libsns_soih42.so ;sensor lib path +DllFile = /usr/lib/sensors/libsns_jxh42_i2c.so [mode] diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225.so b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225.so deleted file mode 100644 index d7060c9412a2dcb99773ec18acd9b7602a699bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16710 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 diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_720p.so b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_720p.so new file mode 100755 index 0000000000000000000000000000000000000000..840e775f2c4e85f7b5c33c6b785da5bab4e00bd8 GIT binary patch literal 17980 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 literal 0 HcmV?d00001 diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_960p.so b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_960p.so new file mode 100755 index 0000000000000000000000000000000000000000..2432be56592b6d311b2941b68a93ab5ba914f9cc GIT binary patch literal 17980 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 a>C;Y7I~w$p)2;XPG=4{GrdWR*z5fB$ud?$1 literal 0 HcmV?d00001 diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_dc_720p.so b/general/package/hisilicon-osdrv-hi3516cv100/files/sensor/libsns_imx225_i2c_dc_720p.so deleted file mode 100644 index d92ffb281b7bfd82b460acdaf93045d304602467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16536 zcmc(m3v|@g_3!s@W|9mcBohb_AmRW40wiGwQ65GcAUvW0QwYkxqLbGE(U8PE1Qct4 zplFGrqSaQLRPj;Et+Z05ikb>qsL zd!MtS(N~(3W+BS- zG|X_z&mhc@uU#VVdqkq`a76JF$4{8z0J1{EQIqe7>&qeEavJUfqroJbW$0jVZO`Jisl2lNBuzz8rBsG~U2-{k)9 z{#kYR?YOacd2R1_sFwdsE{=dfc3?8ps&A1|w%^%MKNt*#g5f}2A{b(FBI!2mO?GHT zaBkab3hide@v@5s^-eI%dP~IGb~D8Kr**Pa8{Br9|2L7-(BF@VL~5-9x|vMX5Z0g4 z4xpmHPPgp))TdYcPaI>WzQ|-t)%4Z$cJ&HBKSCY}@48n%wgJHMRaoUhI{p)(A zmq@r%{{ED|KqK1D5B&nPQi^ch~fwL_Okbhm9z$%?b*LqdG9BD1r1n9xY~Ob zdXP@XP&DP&2|rBuAzPl_%idGS2MOoT)Yty+I6uq{gde589s8-h@~7i9vVQEQFimLv zdWgR>qP)X<eY zzi582JX9N6UQt&csx6v7tFpQ(R8&%08M4Ao9}+BEU7`j`Dl4u{EO%ye7ENPH$FaNnKs2PU@t^`T%*N!eAQda14nRY^s4 zS$(CHRaV!9q^6-B^+-)84ac{pwtBh4Q^a~{sH+TxYNTvsbscHc2UnHX23J;>ha9El zmDQysm1G%RQ)xL$6?HX~YFSA`WxcEntt6h3vYItAFF!cHFh7{Ts4%#ws*aM>&04nn z)QF{(2QioR81eY~bmDN{NS6Ok)(2`K_Od+dE zPYtpw#i@>9SxIGODfu`h!)C>i=UD{Kj0l`DJGkhKVVBN4O`x4zL)CXkaBWXw|>i zrsXzWVbcJMw}xlibgE6)+BAs;P{ViG^r%hMQ~mR7y2+;HOp@xq%ci?++Gf+eHr;2_ z{Wd*d({7vYVE$1%J8inlrn_z0X47)!Mb%qj(@LAx*i`pR8lG&^70i<=7m$uCL!?mY zNa{@~o0=s`*?cTj%0yqRl)5Y=-ay)*NGWx`L@9N+R4JRDVx^hPeM;Fl9VNX%I$Lj-a0?WrLTel+D;YrR1+bX@I>~TWiOW_cA{6>?r6w^7yciJnb1_PkT!^ zzWug#?~&)i{^2YhFWuIe`10mX|MA^nhfj{+eG$Ajf|m&X>tiS59*N+)Blz|R{!j#e zAcEf)!M8>5yCV1<5&WYOd}{=MPXxaug5MOuH^OHJTEf}V5_Sh}YZtk#-5uD_=?)aP zN6VrvKVj-Wyl3L=$^MqGD{$wBffmX;6i>*@JqADG%JJe|C08Gk}pDq)7dwac{a-xJ1O_ZHGF zC+%X=ZiDJNKTrD}{+f>^q`!oCn!Y<=rOObAo#$%_&xEAc?xBXc$MqeU-&sTYzTD={1ZnCP zUu&1zzmasLu&~oB^0dd_+F{^-5q?q9+Obi?q_wMtG<^q}J883yIN~fc{oA{~CcP%o z*aCD+q>@H71ekS~W_~XZ|dfN;CA9&T-4gWQK0{l++f5OMZZ-@T^{zLd}@Snlo z2Y(;@VfYR3Tj4)~*S6RU{{g(F)db%KKOBB7d^`M9_$QUL#F_=)g&@UOrJ;B(;j!E4-X_!r@|p3~u9fbS2V3jaL(=kO`; zyW!*Dli+^`uYKx1sK(QNw$t|evF&$+{{6V^cL%f)y>|Q_v;CT(2a$CgZaLobac)1i z#IQ#60STZ#7yxwLNCrc|FpvVy0&~DzFb^yRmxC)n5Y&LH!Oy@$;9>9t*a?0Mc7Yc_ z!X(y2kO=yN0U!ws1Zm(OATEpb3(N;4pcGVrYET320Y3ph1@{3LcJslbjAb2<#)Q@` z2{4XjUAM{#PD#30#$$CJsV`(6WSmD8w{~P?LPb7ykGT6omlSsN7a4E(XLZKO!VZ@2 z>8`-$_6GyZE$tgR<7eE(TwB!fWlzs7?iqJ~=s`cet#!l~Jw4M^AOG~QL_61U?b>S=Q)OnPxQmod4JFu=Z>TqjU#-GWPf6x0`4@w;fYnHUH3wzqu znQNEU@7s2Ix|XfRrna@@7Iu!p=FPOTj+-yh(Q)bxF#g+_gQ!2zvXiFx_J)Jx_g^XP zU9Q01a4dMTeQ!sfw!N&Cd&6$fSN4W?`}TJ1EZp1SE!-QPF|oBPm%7Z8rp{g1&c;qQ zvJZJD^1_6s&Sd;j@!Nr{Ym@eeWb*qsveu8ve_(;Ep^oauv;He0@;`$7SDN{2?b<^e zBd4`X+pp0NC_`f#w#n0P{NyXJx8q4rQ`i!&2>{ZmF?H!X?M-1{TT?hmnpoGG!YTfy zus_fg-bGn*uwQ^)fPCLb8mZ7Y{BrPHZ|0M=lzaxTw=N>zo7g+QLEis*tfwbi2NL|c zwBtQ}Xyc?7m$Xrqqu`)jo*ut+26E}YI;IL+J8n#%zxtThCN+f{v3q~wLGsrUz8?O* zNn6<`%<4=EYz%AK+J}ZKV=`G`O-eE zeOvpu=5d2tqzRn>`80A#+uz#Zp`2Ron)b#{-DgN{BkjR>WL%|yRHf`c<7H8YA+25P ziH7Pt<|%CL@?&E}JLwW{AnETn)-%S}hvNe4!)YK76az0v&RrkQZeJfRY+E0$^sNsE zD3_ieYMq(;-NKgeeKYP1@1Jy6*vQT6wDy$6?To^quj%@n*>s)Zv43? z>;HruY-Ge2cBu`?ZJm^{pp{{^s7r0Msf~cAGc~WZV+rx=iSMBrSm zw%8+n9e0dB#)VM+o&G%?Pl8?GY2fUybbNOmwZ@B&@|cIvw7HKmMU$q}#-E|1?VE?b zu5+Ip?fG~svbKLWVTtf*goV`>{K)v$u1=fRHhs_LH=?ic-zL7c=Ln$nmulyiGIva+ z4pcw8oxNC_^*chxzV;!l=QzfhKewsdt7DGwmdtqb(Fe_asg~gkZV6*b(@N=;*52=! zmXEZONGmxatpXOdCVpq;fZhDg^zb8j7XxP-&_3xU&zdh`9@jdrza)1|_-6F{{^rhT+O~tbzS54z z&+wt;#4D%HbUz&<4|S`K2VK?k=CaogyvW?#9B#7Xu=g?OHA9Qpck4LS-!ehMbWh~? zrQr92UVcl*vPS?~o)ypl&~j-xk}2Cv+dkhphBlI?WU~x+c6-b+ZR}2_9GWN1U%su& z8Z}gZ2MPI%%)jbszGvHdPM(wPJZrzpvh(No={k_n%g@R4A@aH%^!^P$u{?Cm#1$36 zimWoZm_tl|goi&=TU%W_LNYA3h{I2R{`@6bS?BnzLpXmvCxaCwmHvw_8euD$-H;!0 zeZgQb3Isq7$Onr-DX0c(!7bp&;34n?_&sx=`lK`~eh?g2Z&Yv5B5$C=MKFb^yP z8^JcP7rYNVEKaFl4pUITHAr@3GQXamQA&Mnu0r@?NcEFH z&;@3XKo|67(y9S}1?RJ3Jq&!Qz8igb|U*qFxr_zSGK03CNxWI) z7d(|mJ0)?IxnK{6|iraPhEoW0><;jtP_RU{=Ufl3q|f& zM4CmcA&W)UUji-_xp4{Ki2g_9?jMLea2el$mQwGRQx{i|Mv!_fVIC=ES5PLhrkpVw zq8!Uaj1|lY75t{VlJ>ufbDm0(2~~{MYSOG>Q&7t|sKZ`8?RkyJm8%%Hs~OkVGM8UR z8(vSp`XOoDKwGX8`D{I7w~2XUBjf5O`uWYoy@lV8n`wt;k=t(*Iq!DnmOCiRR_2ns z>Erj%2kzzf>Q6A?edufCrBSsr?Bj?orWWQB4(U8xx47uT4Lz4Lb`po&9 zG0s3|wjtqphU_db`s|_h=Fr;OTA;+&L ze7zy>-w6GYAw9Pl^7E~R6y9q{{Lc*e+XIF?@rWTm*>1?~zc%FVCk=V*8SJzfoHrXX z^A$txJYdLIe<8iM4f&wmkkua;GW0MypHrrP;eX7Ki`*`m#gB=C1eYuy=#s6&Tyl`j z*qAhz+>+@M*Eud}KF=i+X1e6>^IY=a#V%QUiA%1!+$Af^U9#~im;AccC10*_$%X4& z^3*1mOyA;?H-7Ar4g5aIf5atYA9qR0Q!W|zyi4Z)!6i4p>XLW)=w8r{UbjnX`QV!V zjZ1o5Zuv)FxBN57Era=pyLhZyeid-bsOfImIm<02^W8GxQn&OkA^a-0Olxq*9N0xVb zr1OYJZtC&KlK3cDd{&hFFg;2Ro)^VfkCNESqU7T%qvYS$M#i?aC@Fj|N_HKIk|I~Mq$WknxG~XEHZ@w_xG-9-y*yf$)I>}5hG=>A?r53)ShU1E z7cHLGqvgC0qUG^#q9vFRBlA;ZWX-e~=~@sY&E+w&>e?82U`vc7JQ5?%JsTrC4#vob zpTtP1oA3X_yfS{WSJqtQ6<@hmK3nURs%` zGVaPgl6WKX1AXM}=laO=Z}*X}zwRTO`1n$t9V?G7jFtSWW99rUvC{l_tep31tjzul z|AfA>CeT;5eZQ|{)%BH8clDLkPxY0_Z}pW+j`fvxf1Di5i<7L1I62xJC)rQL$=?pe z$*0HTq<(ZisVwLxhwA#t?|#~k4gdw8hKopTtYQ z_m}d^`pc`g_m{W!^_QEut@C$21RlD2fUN!H0C_n)Kwk1E$<=%W+<#A! zy!DqPxo^Ng8N6_yTy*8{4VQ=0&z6Ln&z74%I9rC!_R9;~ z{BmQ|2&q^;LRP*!Lhj8RDTnVIDOY_nQihd|l4CEAlH_wzrLr|uj>nCb*RLHdhd&xE zg+Ca>L^?)X-y17So)|09wV><0bo+@p7?ug1mRr1nKssOU;kc z<+_9nNw_ORGEy?-oo$(N_QZ*D?CFVe9fy}ceKR0sD<;XIZzi!p%98ff$#UK9$@1pn zZ29I$wsbe2Bafw@E4hCWkYBL+ln*B zu`dWXny1&Z4X-R&?XL~hRaZ9XCw@O>&tR9E2mW4$&!}6ns`NYSs$KJ9g5SKD;A9%x zb`G5n`TjEd=78V1klS0h1z{~t*%{JDQ z)sJn3M1fTPMMIOYg9(}7X3qol0a!VL9fE}Ii6ntUFc^4IR=&`y_jdSwPi6+FKNtkm zebduZJ;7qX(|^5h=(slQ|G$P~yEoPE_)Tq?d z(PPGp9XmEHZQQu=(d1v46 zUcbE6s#)y=PvE&}z+1-d#^H^N8@Cx3H~Qtp#)pj7gx8G+8z(ki-}pNtr*Wjb()bG_ zt?z5b_QuhT>lz<7G8-q#{p+gOdGdRtv9Y0eap62|o4K=QP4}nGU9fnZe{$yJ%q)La zATW7SAaIU9EiY7BQBvivspa}tWvHYsG|twZ#~81yD66gtUUN<$5X=fpni9y)nljFx zojENt8w-=p37nfX&7T$-bw&m$mxM}6E5sND8#QC${ApR|&b}~Xkwiy%jXp+yPm(dv z80=0qhPouPZq3U2l2T}WtwmQj+=`OA6_Q!LrV15{*4IiVc~n1(so_>urg>p2vp%#M z-n`6~SzB%1@yQIWur8cgI>D0K+LASvj>BJBhDpqotgI-L%;nXXu%dE1NHWW+SFQ|I z;YS%VOX}-uD@q&cxo&g@r*ncjw>=VcPOxN)(YeBsb!M=}z9s97V$BJbY$-bTGM#&= zI-afY7?bKfW=qx{W6fQb+{cvlo4F-h5q)WnY(>;L&I-3CM7@_|$vP8qK665jH)Usj zaoabJb#7DVwr}q0JYdN>voWtuaAcj~PC9q5o6K%zMoZJuVRzi)%*mEdv^hsR_b&CO z^6B(<+x4R}vc_+;%dh$gCzEFm|D3~m=4iV<3}$TYwN82YRb<9@>Q`sw>4ZD73;AN? zIIG&=yrzCiguGDg*|MXr=S7yY;yd-FD}e?%>yp|FMaWM4cOv3nN4VCn)`P(cqWN*! zPgk;AB4h(uqw3mcIj{UWLU!ygwVIs}>t3!8`^iX-eW$%BiG zT=n%Hwj*o$OLRkEIxBrW_jcq8?5TVJ567O5b2=wn?dchwBmWS6mFMB%=&y|kSAG4a zU^%bcjlRl{;^FA){X!>P_0uEd2hmq~3;vG2-b1vUm4E$K;mFUSuX1F5jz)y5ef_TC z=%DNxS@HGWp(AU!-b;66 zjj#769a+Qm-nk=dxZaO+WDVDQ>yE79dT-K^HC*p;JFNjW))L{NFSYq^hbT$eqCnD>&Y0Z+#9K)F3cXMnx9a+EiYQ8jF z?VI-;pgO)(HoyIua(~G||EqNCUc1f*38ugGPsg9?JM*dTfajv`$U488_U-k8Q+ioU zc;tK=Va}YNO9*$?8&1P|u0(d$6V2~6$j2 z2>D*(dzrsB6@=kX45AYL9Z!{nsXdOz%=umWpUM{?>v%b2%a+9+pmMudH24~L;&RIBP{_Nn)*>m$3nAhGf zoV74mkiV!1;pD53VExJ#J+)f+Y>Bgfn)!>05GIUwsC`Nr&?a#MD$j>lh-)fe!Cm zoC6)pkQs%;jZ@;(RaUREGGAN5%NBh~V%l0(W4=eR1Z^gLE>mYdoyn}>eFBdbOg+x3 z>MM9t(@?`t6g$V7;X231%)M0{egBYOSF@nHqRxKBWBbflURGol*p~A`)Jh3IepH^Z zs&rP_N{2nET35=ujeK%O?OQ!%_JX_<{lw<;{%66A`T4U@;q_3^Q7Esg4z4JvD%W>J za|IinzW@tiq}W)}sEX3Q*@9X$2vhW*4R@@b9v8l~6Uk6w>E%-YcxJ*PaaF&}tX z&o^v)r+wUFzY4M+^_b6!g1w(Lop>rjnNKu7=V&L|w|4@k=GS^sbf(u)Cvtz{J(Bqt z%Nbs$JjHU-Im4rvZ`B*kHp_Y8W4(B>D#Y$jbhX|Oi|kHqJ-%}C;JlD>h%c9 z?8zKVp87iJzdbZNnJYUNr#yN3R@uK@IO{o&{Y=ZY5&5bs$lPK+>oJcB&iL5uTd#@i zH$$g1edOCNHETUlvlBgeGLPR}oO8PKiAP8-GS zSDdYgE{Tc}Ku-kJU(YNQKGt_#;uWf+Yw9>#Ry{q-Q0RH5<1lTyN&MFn2-VZ`O@*Fs zs;o}!;bs1&R=t@jvlml53a@&4!r|!6f>+ym&Z>JDh33a`s;7=m>nHSd@2BuNnIcT} z6!{T)`kP*{%{t;B#L`i!dqyW+-3usAm+oR)PxGz6Q5Bm{{FXgwkI(I)&I|TW)eaO$p8VuK0tu5BpDzeYHY(MPye8WVJS7a7Qw&OkcImG7>uhBN3~_`Z!p>p>x-}Xs2dLknv_U7{t%!x zQXSNlNFR^|)C~qbP3k}ULo-M==+-4!cbgxEujN%200Tf8aGciH|Ig7hG6bz09_r;cqJ<~Xe%t!Hf?t;34j zul;e+&sU9j@0AbIcWykC{_v38i*|e&T=x3Q9}O)yxaF?TuDU1fg~?YvcKt024rRaX zkyY3Cy7cM;!B?-peQVm2gCZX+PX6724DG8T>J>=d9L)T@31Rg z<%?Z>0NUxR8m#>CF6n>S#Xfi6QTdO$#6L%v<1{~?D_+}wi%Y-8S31J@0dQZJ_zi^Z zp%ZGK=`G!*5`BXi3{5t#>K~)iSn;WH3%s_E#dnh)2$Ya~FRCCGa`uZ(-o5zTL=Y!fV?p|3l(ikazOCocKbQz6|&c46yCC{8s!~uJTD}S+pi9 zp?RhALzR*G$nt1IEK*-Oe`Zx}O{6qjUKO$8jvo`MXbP)>a8>jo1YH_J%j(0`kx;Z| zSuNpCYIkTwb!|haArcF%tgH`J*H%WPAyU&&TOV3pRa+jeB55=xb&atGS>8B#(y5JA zRmIVoNW&uLYcuI`l13Zq$a7h^u_`9jk!rN5S5ddh(Y3NZ8jEyhf2<~1R#zXbi7k_c z7$vViR%>}xxZ?a!Rpi1*l@+0u)elvi#U6TWM#_RfMam%CSl2&I`>inHQS3s3f$=%y?mB`Ai~bXktuQS*v?Fkjc%x|S>;rt)ns*)hSsdD zi_}Q8wjxF=RMj@nM_iKik#J?m7VNApf*jkOMyRW=T`r9cRgp-YR7J}x@)~N@Z>VVq zMXQ@8O_~yFsEdY9m=vtj80H!F3A!F<+rG}<%2(m{W#Oq)pM^Z8J_}is`b?Co)o0;t zR)2)ZI`tXr>(ytD*`PiH^&0gVlP&7ADBY|+i}q&qS^VSbGse^K`!VkQ>NCM)s?TDd zr9O-QVD*`B1M0K!$X1`ZEk}LqnxH<5dQkmr_E_pO7fn+iI}6ok15%_u6Ur?0nJee2 zKb*BdeHPCW^;!H&)o1QoqCRuZQuSF_%hYGisZ<}kSEx^g8AZ8&H;NuVFtj6opRYAH z;cMNJNN?TLn)2ZjiBCo`aXq`Kt@m>q+CKU8v4lgv@1p=&de#vx{zV(HmU!Iv2g#MaNupm5Z))(Mw%)sf#Xl(X(81A#{;!NfZS^U`s+| zQ>!<)sa0grK2Km%D|Kp2ATH&l`EB0db^Cq6jmRu&r&d!_UfS5!hdNi^tot#9g6%A3 z>*>eE=q)B~r%wOOR?TC2ulT;(hOKG+t$+J}oX7UjhHL}H{pvvqEcrmFI)Cs-O=&hE-Zs7Z#VS@ zo=%|ez+CeFe54^U@?MP%tMRkgD1Jyk3nCw+d@An=UT@~f@JS8$wcc_G+57^vgVJNyE-~V{sI5O z^Ut%@ENM@o>^YQO>p|#vZxqE6+DO4_vUnnL z)ZLYNq{ZfOge?tjNh~eVI$xJq0-aQ{snrLqeJaTx-zF-u^_j${1*w0dtIuxFzXrR`M>XzW;3B%O2CQ(UP zN^ni$AoX__`FQY4$@2~~&l~Bp^e4*g3EZ$>f|r_k@B8ktIs&#{)w7QDEu{70zt1@K zW2g3A?YG)z)n47tyX(M@{RMu;B=bXVdP%z!#V6)2h>!FI;`^+*;rc`!I(_u7%dlVP zh>MSOyjwQRkZaKOG3$9LHk4wk&NHgd6S#i=Ty#p&b&Nm8bJ46ebN(rs)#}!JHhMe! zzP1tR@%ClV*_rWu9e$%NlRD6R!sO#8AGP`C33*~hkoPt}rrjMtOWm#tqgB=~?{N$ly zUgu1ei(-R6g|n5(-$As5y3GAM+mO^2+DrS!D9X?aTGzi3S{`Vvn_)JsYr$ZfcG@Bf z`?ddQ`o6?zAL45=@fq!}?XC5t<*O^v_F#@+{HWf+(%h!(o3^B}a#toFX3ET|oKr=Y-MMsDB z9dkWnUbOPnIjz~wm$?wy%2(T@+0K`K25sfLsWlVY$u|pH%b{(){hu8j_Z;r%CAW9Y300_4r7ydg|=Fe%2*@+)n>SM@OoT9kpvO?SBq?)+jgyguy@Ai);C`ELoJX z+)k(ES#76_+IeKz_sC&uF4*N^{1c{g#7^h|&{`+k zq0#f+1n7I9`#`IXIJ6(SJM_)aYG)C&&K0T9snF{P?*<)*UJdPoR{d8XV?aLzy@GJH zp>mSebb@xoiyc-`mhy9wGb<=n>GL8(R{8f&LQuL+Dp+`2*0eKz9({3jGqaru{kjz5qP~ z`gy{igZ4u|K=|)%nVp0`1D!$mcIe+ir$bM~h9{u+LvJShQRvOkEzmom*FtZAei&MH z{tlhLgx0*82!9ZIDD-oLZ-br&T}k-8(2Jm#Lf-}bB6KPA9njiN#n5qR?Z>mAe+u0S zT?qXXXsw?D=$oMPp(jAMKnJ0-p|6G3v~#fkYG{G>6aHi9-q0z~>!A-p3-o2sY0#fD zrY?onF%!bqblM*;vBS=`!}cK8WQQ%rZ$?hry}=GE!QX*QUD4wQbWU1$xZ~ZTo}3P| zCh49`&**xCKA<1a^=c3p0`$E0R4@lj0zUxff)Ka>{0!U)?g9^ihrv@Ig9W-5=neXS zzTh9=ZIH&IT@2=fFenE#pcdQ=egbXD2-pq&0^S9OK~FyB zhJlG-7B~|`!D_Gx+yNc|e*kZTk3mW|&QHK3Fb6CJ^gLd#G=*@m*9GC&l z0Wq)<+y!=l*TE+so%5HmU^XZNtHI4+2Y4AA1ZkYjj0JPSGH@B#3Z4Of13os&+2B;L z99#+R2Y&>IK&GDIfTds!xC{IN90L70*ZB@u1~!6+!CRmkZ8#B}11i6B&frY#PVfaN;oR!S4$fw|jsq76-p#Op9X^f#0 zsdKRUB>L;gj1zEGA$@|c^N+#(Y`G)fWj|cRSO8n5)Aln+HxqloBeST7+0@;s$jqTn zga4Y#K4c!{{vKz4r_uL{nWN@Ymmsl#@q9XWEG6hZL*%CmMXp;!o~3+AE*81;OmLRS zs>UQtv;YF3u&75cL{n9x3NEs6u2_C1W;1IhHZ+te_sE%unah z{^zq-uHqiAhOt^po^@>4>KO+O=!?;w7mA#>l5yL_xW0(_>tfpQ68hB-$>T?~ zE@kYlW8S!oadid#{7TYZ#ay_7cGxI#?Iw|vuVrqzj8Mip+eR{GX(* ze#>3n(;|7#Qr_Lz{2b%v1;*x!jK7yf&fX*P(yQ3@7wX}!l<_V4Kr8jyE|U8W`5wUj z_n7Yvau0k6*^jBS|E8?}q&*LdEa)IFk0C`#hRjJZgWMb9pSGh#z#{K1gxUozyAKa<~I4SA>4 zkfwJG8TdXjhbYr$gnwnoXPnAXcD_e`QSXtDS9#=nYdrGEdXJoRjYnR&$s=nyH<@?0 zN5(wpk-?96WbBh3ng4r_T=}9$-g=EZTan`nxc-nwCVb(M4v$y<(ZegBW_qRnP_HZ= zvwo% z-IHF4Kj)P<|Lm1QzPulM-z(>SjxL{1diZ_PZ?I2h<@n^L0-t0|_sRV%?A2%cq;$DY z%40scag9$ty4oj=Ea-vzeDcX7J~{L|pY-43ljVHfwSDN5D>{6#Bt1zM4@r_APDqkH zCnqu1lO*+=BzgC|B>Cq>NiyxnNpknCNpkA8B*}U_Ne2EgNlM;MlARwWNvS7UvNMxq z?C4~vn3gQBd@orp`a!ZRsY{mHwaN1Mjma|mzGUh4M6&q)lq@H|lPnK@ku0H%ZZbc+ zo2)vqo3t zuS}5-R;NhTjVZF>!4x^|zf$C^_7vIv6@FHCnLoL^T(_XRj6JWr^tv4W_U`i6C%Vg% zf9)=xf8Jfzb4gNLkSY%@OqF>Tq{=DRq{_wzQ|06rQ)TuCglF`SRs1+*>lr;{QbP|J zc|#9rdZdR;e!YjB`Be{T4W!AQS!psUnkI)grb)p=Y4Vr7X>#yLn#4x+l&a#MvbUk9 z{QB0O;(w;6y!C!h8PzXc_J22BMxB=~Z?~k&fL-bGr}xsOXI6&%VOEBu*JsFUTQVf) zj~U|mDnph}@XL~=e%ZUhFZ&<&%M~B^<+0(tWL;@5X}_YEy#8n}srs;&+%l@SRPv$w z;LB z+5q|B%mLE#_5qS|aDXIE8Yp+IA1L!*8z^s&9wg_i93;=~9wZ|M4VLYYL#6oTp>o%RVUls>FuC%bVKQ)bK%Uwfkjs;XOLX~gseW#_ z+>$p!-oJi?od3lL8B{(}zItw?WKGGIs(7{>NgE}9x@eTV|MyW+a`tE@($V7i?ig9} z&=^S`n}NM$QupHta&bnkWZaM|xr6iM zjjeeyEI(hq`c1xEJU1w}z7~{<6%%Fe7ZceaO_J8^$#U^yljXI=1@gs*1#)2H6uEE0 zR4IC4sytMCf^^HACNq9BO{&UIl*`jjl3RA3B=;^mS)S-uC~xmBl%AKIVxD`|aGxEh ztL6SVQXg2kB2p9JK06SO1nleVz=h$e#>j9vzMOU28K@371?nRWwN;IJ=N$M3VJ^x4 zJ+0xDsdTfeQOJJm6fo2bP7SRguc!vLf0L4RO!T1+RVoOBGqaYB)}+ zSgqDMvR%@18}CwZ^g8@FDx8dM6aS^`*R#v7j9i%C&`>9*bJHDgxB$OLsI4C^xt3eR zrFUT7{3Tpf2Ns!k{(*V?@E{tl3Y>o0a9fCd=eO?L8u+#bzO8|8Yv9`&__hZA&(%Ov z8sGjs^xB?peUJ4!@6YiGHh;6)6JLMJ%KzqX)CS@E07qZuZ`C;FGIrLS=&-=>;Uh<8XO9{^dd!$HIXPp; zjvF^_{P^(`aO}bIaQV2Px{2y0nQpS_3M@Cpa#L-0g6*btx)W{pzm>0(zt%y?sfD>Y zBL`&U6|N2iqh+DO;edHkm z*Y|ndc&vG7^Wx^M#_7!g`Cap!Mm*zB#vRT1&6hO)+9+%uA%AGT*U0JdvazjsRP&nV z2aUYueEI2`8cwh{*KBTXEL&VMSAV~um@{+cNr9XhjnS&g`r6u9Ab0t+$x|m)Or27m zTN$m7tr{DcmRFD$l<9gF8;*p_qhbt!OqxB3y~XS3sE!jW(|7)O&Dp@=G(Pi~@xw_|M;X!1n+Sc`p}bQbosBBs9p}h@V%LWwzsoMK z%0J}@Fw9R2#6X3O=Id5{io@KQ+gpJ%tP&hi}Lb~>j$cDeLlNc=PK+EX^k+AxOlCvbuPXPeuIl2hCb!j6YkVUO6Rb(?A13dmb1r$i!URh*~M#q zhh4nJ>l+)(+38(;84>y>#d3E0x%e_7^o@(3aEj&sI`-e+3QDo=}xFC${Ji*JMf#Kmj;VHdCQ{(k&1o!wq8UgHBUz6@U9 zAX(1JpX1q1{wasVS9>+RGhgcN@;1*=-YVtM1S-#!hxv9=L%A91*a`2f2U;J`z&rDy z@-M^de$tU|gW#Cfc2@gj+Uu3JUl}pZ`lmZfQ{GzUh)FTy{VsmL>bISCOWhN=-)tT3 z63x3@xi(I_wKf4Rhl})G9_+>7B1Uy$c$Gq{n$`!Bq_h+x*euH)o z@!CJih|@P+yIk_Bf47Sdz_-Hde5^YSmH((qy#Bt!ahl)wF8o}0_Zzu#cweapYX4~K$7l7Ceuk*!bXifi)D_-;W+Iu5N;#tAr-Ea1|aysTs+a!4Ro4sl9 zg|7NJ1Kx2u?Ja?KziErY>wKx>SM9mfC9nBk0q=ejcRRfM4c`Os?l*V8aitHC{v{W$ z`XqlvZFMBSE*h@k^;~{^q^`ChUtcao>nd`WMeD0qhU+8wwT&@evmuH|xV}2q5vYpR zG&bc{>-!{js`(A88gx^e&+&79MSU!qS1Z}!|H&L`$bpO+VvWm|pab?jMdgRgu;zYQc+u7SH*j{%Dib4r%XA%kom$e6t1riuL?zKV)d)U zdK*~TSY5qJYRk{#H66*P21)LUF&_XPlgxgsrH|$?)Ozy_s9Lmv1uBrYFAn&)rWaTsLu;cUCZjsmy32vENBQd z)>R^6g>b18i}Lu<9Tx6tsL5M4FAp`u<~7tUsEsz*PcH3{>B}puCzv)rD?-u3(F#$1 z`pWW|71a*eDeAmvv)&}~aE_`9g-%^Keg5pw>;pIK>NdqCOs z#i08&q5WFVe#~jU0u3Ge*tD}zxnt^VwXQ0UHRGG!4m$5Zzv=yIr}>>PRn6zJ&b87p zk7XSTzTu(c*DA_gXfvPVz7w@OZkN}rcBo^A4g>3ns7q1TXQlt@q3_XTw&r8rs(!6x zZqx0@w{|-B3*Js6-48RZN5}5=IOf%-{UG<4p7ynOzvjK7{X*A#CTiz&^aAc^h1gN% zLr|MGU*>+p%VhJVspK`Rs%C)V$LcMAg+nc`Y0O&@Zdf6Cm8)tHv;0`SLfa*|L^>r_hYx63nXC?|gi*%f|YvebH1n3cf%IR5(LceDmQPoF~ z@N+g(ZU(-dRVsEttDNTN$jyOP-Fo_>doP9V=N+eV>Qs*-=bTR#I7Shta*FvbIX!Do zZ0P(ZwPX;HMJ_qr(#-@mhB(XZ>3$*1x0T=u}_ZV*}9YQaSS*Ajr3Y(za7M z#kIhZ({G2ZD%Yi+HOWmt^{PJo=9oK)y(_fiRF^v4dunpjm`>$#Y+5~yQ``yARflJ~ zy5q=cgvx4LIPPZTiueZ6&#a4q=IaM^Bde_V>h`kfe3d@!IMt(0_o-%`m>jE77pzW}Ogbonb}4Q;5xo6KuHyv>Nhi$Qhpp&q#R@;Q87?I%;#My}FAfAUfACaM260r!>jd-rjv(D2H7a-0;tUx>y z5$;-H2L9ID_)^fhHoh420>l!;GZ4>5JPXl8WSEIa-%l0LJbyBvOTO#~3~WDim6(J$6;Xxh3TU)k!-Q8F{V z^7j{dwte_hZr9`;o69Cq#=f8(wiWw^fqg<>=`#cSgMod(y0A~!Pi*h5`#*D=*;78~ z`Rax_$AA3mDf_p+KIM_~YHr;3w!8aRX}tW)hSzp|`S^FEpL%-Xtp~P$e%0&q zUUZ00A9Me7`~ADizVOo}kFG_0>*jO3yWY9%#_J~hEMf;H1IOny%#s^H*I}Y?e3Jhh?6+f~ zxXI?}-T_SXB8x8-{{hPJBKe782^8MM0u10{^&n(!YhszZc~#xB0&Te-Mk%KAS%Td&BU*66w@G zh;%<1_P0nU|1Q#BLitU${yy+K!7F=5ke-JBNQU>*#HGk*VqsPOejWT%v~TBcLHoXm zh3|yTzXy7gR)68^4)=$JZ$-ySUoaF8^@J12P`qPhYb4qq>Iig3LQ*!q#Md<#pn*Un zd?OS!3%>4npfBVL_jgB;u5#HLxW+1LWi%KPU47AnuRE6T zB|;P}tY111iL{6NLy0xG;#pEie6jFgD1!PVLtO=GqdMz@abI8FW)E_O6ERD?)JI9J_L;1nh6^KMS(HY7Iwx}Elt3y4l5Vla5NXFR@w*Spb#!*qSziJsr zXqP(B|31pSu3s-%nN>xOFU=P^RvZto)g$4~uG&PDG|`{%T|d~{P|x|qG;80-y+RfC zcci>-lHLt^CNBOvNwHx`lVZcPn-rUXJ)~HZ9wNoUyO$IfgMFk}+xC-Uvvq*f6k>=J z3(i4OY!IFz#ir*FX&u&dQf&O5Bdy2Y3G^(iOD<9@)D@)I%v6$MgEW&A7c!Hy1pbp^ z!&FU*jn;fp`0FOcTHiogEkq+JHfT+x*l>ABu{O7nqCU$>agk{!#TxDi zQf!FUkv3pmCdFnhNQw<;FDcgY2q_veM!HalBq`S5K~gu?S5jOvQlwamHr5Mj^UCM-^?AJixvOLJF?Th zcYF5m8wYX2(OTMfUe;g>XgSi{e0_zAv%5k$Wq2)*M04mXwvZaebkZMs^ASw?etI&I|r+ddy`iyNxX&ZU5>u79bPLNtd%IO8mWEQ(wJT@BF8wrI^zDw} zyI|jidGpA~$Sa3U!`ef(!N#kY>(rZx`pA0hfInW=W&dr+BizGBgnP5)OALOTfbKpo zeD=qZ7<@W}-Wtk@eq}J0E(-Pc2pAT#Tp9eez_&nfAz*B)|0M7z;0iO+=0xk!x0Hz%ixEy!_@ND2I zz$bv`0G|Qu0Gv{{r|y z;CkSn16Keq1b!a45x4>PC%_%Ri-3Ow+zi|T{0y)cxE1&i@CfjEz~2Sl1w0G*N#Je3 z5#T3)9|leU4*~ZA$ABLPX4~EX{1`CXc0KUF0PhC&1MdT-{Q&USZT(K*uK{0+^e*6k z0A@RcfcF5Kz}>(P0K0*EfbR!pyY&L^0!{*lfp-G4{jUf9ysZ-j{w(m#NS_Y89XJJC z0lW=(2>2}Et-v1Ovw?2~&Hz^e-wez)#Ej2u24?$z0O=cnoxoQEe*&0!mjizsn7*w5 z9<U3?)2((8nY#hhlXgOrdVJpUU z67}<-ENd-Moql*M`$i%rK$%uQB*zBxnMT?@Mv`1dMxY`e5K5w;J* z_Td7%hGzF5+UMX9>gBrg=n(SH9NLr<=EmH9q`Od#aBa%HH!ppJW3$NhM6McXX~@#h zbqrx0g#O*gUjn@f$hcmWm{{+?SAy>V4TApeOsskHdELOeI}Cfsw-z!NY;X>&V_wM1 z#HL&m;(W;5pl!pOa?6J{<=R2LpbbcG6q|B>6M4}tX}b+-(FPocBO^k*hKuy%YJbX@ zFT`&WF9WMP;E%KpGcfr;mxV}}p9cwbI0Ww@ZhLWMwn%KvUV(fiSZiGF zdvn``V|XUYo>Q96u&;#4^=UQN4=gL2&b;l#t=Xaz_r6q#F?9lcYP_&ATZMIOGS(5U zlib4?{&dFlY|Xy=4%Q9$&NS0qlzZ%BZJ7gsw#;ixe_<=~$-NHk%!iF4riX_c@s6MLv?*!Tm|n`|4_ z*o5x)k;XBK+qqHbRkxzGfU3en5`E6?8M5ASpnH>q*13BJ~~7P_C(@V z&TU@9Jm{BKSO(}sq|HS6!{A3;#aYOYu&j9%=?vFb2Y8OxC*K))r3iK=YIfYn|2%ZP zpe3+lLibgy{}T%IOvrx#y&x#B%~jCLLa(Gi&jmT#WDu158t$Q><`X&-nWqFys+*WfH~)z>~zizuKm>Eyx_H$nDc`74IHDKH`ZJ}(-4O+<_{q5 zMtll!C*nhhZEuf^(6_bTvA$Knw!q*64;|%&Q;nyf_yA{MuEMV;AszItF!|4xChXE z{vquBcDh`nYEWn+qClLDxVH%VFSN^3UR-O@E^LQqP>$XXdtq~Lfz1lL9n?M44)}|8 z!)k}ge%u$qPXYh`8Maitf2h@)<1<)b^JVzi0XxiV-BTg|m$m#)Yxy}Acwej6^JmEa zJ?L zb=Yv@o@!b;Grb;lF}c=wGX{1`PVw9`SaXHF5-|Wn~9a6?T*kes!D#R;z`+MXM=u;>92Yq;a z0@kfNg>%^HYUVQxth3kRzDblCLniiTffm*akFiRHdv8X#{VfKbci{1sRX3A$Ls`?O zMv<>&*g$>CG47|Ca=oUm;chh@B89rG$=nBgKk#g0O=k9jR&$Plbm04d?+50yhdFab z>xQRw@Y~-a{c1uP3a1wynwmBYk#g$wrT#+Hc~sAP#9<6S;V{w3x;l}lkYRcHF#%XY6&J@R7B&m#iS*xS6{Q*wBB%-$*Acb zoHuCR5Qq$fEI7MVB%)zF#5Lt(Wpi=8J7)4hxS1H}>Ix+iXaSe$?pS@@60x+oea#Zl zwrbgBX8wV^{@$W`UgDxsvFaLRjm4tzq}d&fo5|jA!sJ_v*`gnBKFnAYuTnyBbA2xy z#;Xbw?=Vd39foPW!;sFwukp15A=7@Z@h24R`t$_`&3GsgjSTQPzj-RNbmINl4Xp1x zNz*P%J&-rmivUx-Uog7^;YcWmTA?+xoZ(tZzX1eL25($MY2H`%XMxvA%u6r#BXlM=;iV zr~iC!B-)PmA$%Nl(**fVb{Xv9HHP>(C|;omyh0a%c!+~{dm#K?vjUXg#PS=e6Hq2z z3(D_S`ECrKE(koo6L@wKwekYLpTO_$Rj5Fv{;x#k(|?yfkG2~@VC~K^t1i6glA7AO z1@#LX8Wvr;cyVLn2QItp^2;x8YP#ZzE3Ulq%B!xr%H#1gBeWp2BD66qVOVN~WmZ@& z!wMO$R^fwoXwQe0`LJr$s{ifs*#^r!jqYl*(zQ3eEfw>7J;tQzv#RTxmU{dtD>zD~ z%`mIo?(3|ucro*gy!7g>k37?8JSJWc%Z-m24R5~=M>XsYB1L8U+Z1Y_k)bf zT3atOt6K)bkzhO;O`0`5jSDZW@49qRXH761Pj0x#Y^-glb&KW;kvR|wbcTh2&)7uq zqK+k3iwVUg#w24}QH61)akjJ4nBm}jioDG)GFjlH54}b-YHRD{e>^+t>FTQMiuQMh zd+Gx5K73>t?p(mfRf*a)*1{)>9c)MEyCsIZj=}Ayt*Bc7+Fn=hJipsYtE+Q3P{7Ck zVnwpioZl=p>f9{UDwyTE$u9tl!rd(XlX~%M|6;|nH=OUCVK^t%+EwG4FV_^~rYU8U z^XG8bHhUl&Pi`We6*)YPoa4iTsK!{^r;RCG!%y8cb$ZX#^+x+bb+K@uAK%T_#Y3@Z zqK==dhhtqe-QjrO`anEX7ad6Aeg=cYit&(!Knmn^6dAyWHP;<#?U0tyb*mKKiU1f23d3DBGhqDe0PU|XdL7V5*dNeq#tGmwQ4Y3xS z)=9F_1gEtN(D}+y2FPihb{kD{iWzo~$h0Ey`iLJ;wI@$&kyq`--AEUB6_kFN-QG%n z$Zk*Se_JVoQlG49Ujyyy2hTHwGE5RrYrF$zPqN@EWHSRzvh=Go{u!hyUg-~Na^_d< z&)tz9JojxfOcFVbSNY%6%88fP6FTv!|4OHQw;0j93A=;tlXDf1^EqxXbH>Tm{u1JewqgY`@JK?}vbAgJh8M z<@pPlY+t{|vpjEpSW5lF_IPG{ejMeK=S(%gZyCoQo}H3G=8tK-9|E3Tl0nLcG~N#Z z&qB!{<&|6@tswoKukm-HeDb_{s`mD3azD~LG=4Yq$* zWch;{|7+MIKMc9D*O*@>q(0A@$sq0Bt?_;cc=k(%NutPsvk17!Y1isApEo;JkoI^s zPVpR1do|t#pJ};a{C8cYOxdca}e_ zjo%u`$rr(Yj^C@mzl2HK06p^8fUnHY&vM}d?*`vw%dZC?0na6n`dQGO;ANO5ZiJk? zoFCJ~&EQo~^OgGq877H4A=i1@%TGtF-w%$HU+puwKJJ5jzrF7y&-`xNI!`-)zaT&5 zUQO-?Ry$JW|8`y`*Kf<-9FjVB z=z2|gIe1k+%4dOB`y%r5!K?Nnf0?a+80C|11-}jLVcL8Lcy)cIKi7lT?G1vz9oH|V zpM|>GAMh@mJjas^l3%FtehAe5gLmH4ugYH^O9bWB8h;D@u><@0iyF^+_y@r2XG0$@ zkn3kvng4lBPW}XVuAhEjp5>e%w^ZQdxSFH!EbnQ1??pLzekY>B9DqiRr~MCs*UzT* zg4fTM{%wK&0@&Bj!hWGZ{;0;Y{BLQz3I1o`^|P$_2q+&YFP2+GD~0Po0QAb}&J&(b|Xh=V@~Cmw?yL8aIMZV?E^x%d^Jf&$-*- zeGczrPjyF=*pT4E2Hx4!b;Xn6+Nh`s{7;t9j}lN&B013AUE3u_4?FvkeLQ}Q6TqS> z$V1FgpM88dn2g2~zQ6#E+(!Fi5gY~%);2C!v}k-K>m;==5RV5o_(J{3_y!@*KnDl< z`ZkDY=k++5i|m)WkzJEmhm^-;lczZ4=OI3vcZRq2De3N@kV1a%gJkQoA08Y|_y%G@ zoDh~NiAZ$4EFz9H>!h>P#F=4y>tcUcW9LSiT@=2}!J%vQZO*6|pV*AegD-}XVVv%^ z%M1jAVSden1K0G$htHW3qQ{p=u1LgI@o=y_M{cJy_jHZn+d`;IAlzl;XkOph+SR9E zUNssC=1mLVKrnnmBD@g&S!+XI;-lf156Ny{GL%RPLR&+klNE003;H7cgD~RrEnVHb za*1!rsy3fb_}V_as(Iy#RwUyTyh>DMvgZ>~UvHp47~z3;>uH!Tj6(8Egl^=y0b3^B z7@Lf*u!L_}`!y}i?Y?W4E?u*v!`IQ=(!K;vXog2^(G>I8=Z58R=46|FCfh#8JmyHd zeO`V{1|GH^dz9D~pLBG4+>gps>Ej-hw$HTt#{MqAnBvDjgw8Ya`2+Czv5K$2@&nH{ zk}r1LDzHh$IR&qNFW^)^P>`=^{zSj^dkE@7ura@ep!_(+vFtH*WmD@1zU_H7<|hxV zvd2B?Zfh6(7=oRueDkSq+vIeWh6)eH|FK_p7%ktnJm$3hNww9hWB-tWWkLO-f^9_q z{RP{GHN5m+0Fb{tk#GCapAxWt)(c zj(&nS+MKqC4XTE`8eR5;8~T$Cn|6t!tfPP*dzC-e2IOEpAyHh|k$^5StOT?dEork+-bB!#g+X@p&iX z5OAU1Jf!j69`*Pflre@#8`LG`zNyCMsmJG|jC?Ps0{244^{#Nga>~}D&6S8skI(%W zPsqojkjQdL*B~lA?spl-EBC{;9_!2dG{$Z+c2F(^z!Ou%=Z}o^M+JpHiUdCXV>|G< z8-Gts$*4=rxE_&@(WuAgfmNr_+XOk=j(YNU&2WzftZb69KW;~)f7G+?Pu)_FEQ2cd zGr&rZ&o!Ti-X12{LD~Hrc-o~s-fySs;is)bqV#qGGds*!fqHy)rUGS*4}e5VsdlfU{Nq&6^PRxM0x&Z3s}LB5II=MNuQ5G72VX8`|*odc3URK|lu(D|TB5S1|?hmIH<3QluT83R{V*Pa6P)BJ?jj>Iu__??N}x@9R7R)?bJ_sZ4?Ed^ECad(KZeG$!>~Q=3d;~(#+iM`W0S+UVrn?eawC3GWT3x zV{vvsw&Q40K;k-AjE->w_x| zsp&J%D3sMP{l?4B*sYsIt8jal*SUQwg6_qwE%lM+KntnI3NnUgBz)f&I5jrw*6$5J z>4ISM3ZLKI;EVX`BgSfVzkSao4Zg+RR{u$XpWuvKR~V}_d~l||lO8xjr|#m+Q=YN7 z(XeuPs5#XDO)m?`O2n2mCtT|90@w0k=Abc{6f}uboYYqE-zMwHW)O4#pU9*wI5Ad*puNcmX&-9B0r$;#j~T z;y45k6USclE^)jp#EIjeJVG3YXdiJL{2vp?%R)bKyhsd+MHBt+S01(Onv?8*>YSsN zc%^2EcWHy;o8s2~7qqHh!59C&DLL>@oyn?y?9~ihk%P-}aA^*fbFeK3TXOL6W2ba} zm4iRd!AElNyE*t!4nB~BdvfsJ9K1UR@65qF2wxGKWd(6iF-QTGgB+l0kP}o3a)B0r zJfJ2}5LE4~JX-DS(yCoun#H*(p6@u+%h?Gg`-QWU|m|CV^f?dTcD#o&e+_PRqeJGlU@h4 z&C~0X(&H0o?|TAzs?zCn2Xr)G{4mT*;}PP8!+{Y}g)XuI`na-28;)_#SeN#}kSO}v zdzlhVRAHReu||{G8qJU?g^Yr63hUBrN_(#reKN)y{Y{v6Gv@rbg0VCf`Z@Sv=s65K zX?_#t>(8$|O7wZ^venxoMa3;w6ZJlizp z+NxDVJGDV*GdZKFg}@fz1;GQF$J41bxjMBPrBmam7o)DAUJmR4t_F4j*8;nMZIF|l zomv_AH1PQ#OSDt7f}5PQeqg?(SLul+(uysaW-M8Sb(Uhi{rTN}$8^>Ds%et@ow=uRJGGAfs$7aGG4p-6^+Z3i9SZtqG4sHVXfSbWr$Kt6xa3|^(@EsUe3VAc? z3ix)^o#20m9z5feNsXqg!DuSa6HSe9MN`}ff1=;?8uYPfLgwvSm8V^sueNJ*Td#_=)sK*p*V$ zwjVyASTW)x4JTvAbF$mgX^MHu6^a=Pd}7MxO|h=0J^tZ|^oLwQ{Nfog_LA>4te3^wHOe2Z z&(jt^n6;PMg3#}T{(k5k3mv5guTJho|5jI*mhVDtI$cS8Mky)wY)p3G`4v0Q*DS$x zNfTciw_&~l=>G%c2Z4`;9WRn@jKQmU$pY9*{btAxf-G}x)P9>I`)pPgDOF;DTW20!JoweiQ%e+;ph@z2`$BdC9cx(zlz0Gs2WCqO}v9+$8$laKA#Q&jjmnxdFq zumxw2Kb@w%Y!}u=_R-qP$bYce58HM^_jb&?9X`r)t&MMub!l_ZJ|F#VM?AHQ^(3B- z^(1Uc2V$f{lN}wJsWh4@xfJ6uMvX;NO;~R+>%d;pq3z~9cm_R*J&vA4KF8W(9f+l9 z%E3C4(_Cwle#}?Ew)K@cJCe*ne(dPWgAZuG%*55&_+rQ~%uPOUU=1}Z(&-wU&ws*8 z@N1u$*_7_@(*0OF?S=iU@~8(kdx9Vj2^5Q_-$Rsm5c@kg_MFpVzZ~N!zW?zZ#)A(eJy^>CV9JG0 z&`z<2SF93>4I>v81~(=tA8L>fA3}!O^Dvgi6<|D#%}1Ta8oAMMT5i0Lak;ti4(gN} z9BVgnqxSZ6x)fA}xpVgo+IuSh19KpL$>(O?-j};S>?gaipHW*iHnUaG(LcTN=*ON+ z?hNp3icf-$xQaS#z0)2|y^Aqc&$_rJ9!(95_h_~1x}+7j5O@gN)0Y=S9>wE0_j{TOX7?Ad7F8}CUJq0JV@o`Jg6)q`B@(RRC#OQ0d_w|%5*a4ZVEQ^&-a zvK=whsjcGclGDe-ugI~juxG$0>yks*3w?9n=m6h|{CcQwB5ciLoqabB?no{ku`am* za{2Ik|C;VTI@cIm7hj)UKec_eDU)|Q$p;SFmt3j-g36SGoFFxEsfp-nDYUxVso1| z2yLbq-UWayzzaMtBcI!}Cd7FSYtuOD#i%Q&mjgS1tAU-swZJZ58|36zn^p!s4SYU` ziET%5-omyvt-!IRcL*~jS!_eX$;l_t#2lOx4LJY$3%dIjeusS*_EJps-<9#fncfG| zF_sJ>pO`b6FnOYhQHUoSa%nbvSmx@|%H(L`JhaV3o%V6cE3;CAJ#TGXR@UL2vRw-z z&i3F7BRV(9ZyfsYait^;yGY-K7)v_LsB>p`-$d9(amz5zc=Vajj`Jr~0sKvN%$V#L zAvgK-QLG>;tCFI3sc1KwrwNMiZomd0a`H56@YUt0pJ*cn5rh ze#%da<8{p%-Kg1+zcT2Pb!%YLhV+?H$FG-*+J2U>Dia3pwhykuAu@zvDU3`{~! zcLXtNS)EQ7gZe36;m7Sx=nF;@TQQd2-|2j(=Y(&z^!0vDI$W+KK5ji{!W#WCeVqx5 zvN6d$8#PM|YYk$p4y+aQG|9s^*h5MvZ;oW`G|p~^LZ1OT;?JU;`rjq_to{0XJ^FTK z+dhZg(>gPD8#dFkcf!vip64FO5vFJRJ7D-TH3FDyI2U*@@KeA8frkL^1Rf5|f&UFy z1r~rG2PQoV@T0&3fa!fH3fvD&G4>!Z#TUid{lE;k4ER3acY#L(Zv`F=d_M5qz_Wob z0KN;DY$yl*B{0R~7~u85Wx#ZC1;8noSquma?GTS~Lcp30L zXm~ zfo}%x0v-;$0C+R7ANYFUXMn@NbAg+HgTU7UlW&&+&jBXiE(e|syaU(+JPVlgdx2+U z`cPtH3hwIN%uYP~dW4 zvh8f((ZC7dV&GB0)!>*rF#?!;dlBlTz?9=x0uKWw8)gF!1*Uj}yuSa4$FY~-JY2KL!WHb&zS)%d%mKX#5IPqCIyrYP2O(Vj$mvysy;qn&cPSC`N1Nk&dTpKYU@_Ta+`?L|gT4~pS@&G{at zX6Rd{ZnapwRDIY~uNJ6#)E7-(+V+`#saC5^YL985dV%_-T4I(9_nIPVt$H*18`NoP zc+FF0y!tW~rKxtZgYZq)Up0M7<#}?0`}*k<%ZC*X8$NpSWwWlj*6ATBRb_=@iBj%x zT(6fYQ)oTqf_Ah#avqJsvR?{FeIi@8ezkasDL#9q;C^@YnfU{I6W&pYpGHnp*`yC=tqp zO5sAmDa;n;35$eA;a1@n!dhXoaKG@F@RabJ@QQFyct`j^_*^)yuX}_zR=iNWT)alS zNn9+3#M{LU;=SUd;#1;YaliPMm=r%1zZI=gku*vgFHMuKlx~z7q>!{)+9=&GJt6%b z>wQytU;0G)7OOp59xYFjr(>;)WWW4#dA)p}{FwZV{IYydejlqmE}vC2tf;(bO3}=s z`9<|bw-%{In~EMPda~&GBE|=Ckq<=-4CkZx`FtE7uSdb9d71YlQ`ZS6Cv1 zg;ns%UBY(ZVLcwYg;#|)g|~$x!l%M9!7SRup`rrMREd`%BIb#=h)wX#ZQ>o`J>rAn zzlu+b-Qug_pT)n5ed3qm2|Xr8NMohRl2f`$xI#0ICQ{|cRb@D>FNe;`a602*RtN5dND0cB z?Zw5>=?gw(t8sbqPb@vTu74u?L+j3LOV&e6y(^TEFC6f<(oL4~GgT*nwg1yQ;|P;{!BK&Vl@pki5A&ZWI8*q*i>S!FtICU%$TZ_ zUvbU#W0XnuN%o1#M2BP21czg?QeNY$YxcG%!H_TH^ZUGEA1;$J;wbs*xp4(x+$UbSJeZn|0VVu9YrFBIx(nKLLW{d(^`-J~Ds(!L- z?ct_yBoy)1F?*9Y+{Ek+D_g=Vmu7e*#O!zq)RqB3+!WjOOJsY*w*pxI0f0Re(C&cZHwG{;GXVFj%szeY)plSA-4++M06KN`U^lbFUjHiJbjO%{e|`?BC^LQBu54J zTPNj=+&`xGWd4yH(M2G#mGsf?)`-*`g@(S%a^&duC`378x-N*YnOQlqI}RD5K2n}7 zhQ6y&9}FUw(eK>oH*ZECi5mE4!1%sKm!tjmz>moJAY;nP(eJAc{)pTX$dEZSul^f4 z$nDS8!Ss2_&tZ_EkM`>aMrH0qNrnp9M?~LS8*;SIm7kY6JJ75bV;#4nMtW&p`u$K9 zXeYTbMg`m$vLy#o_aew`FgkPk4BJSCN^cp~l7aevW5|C2q92