From cb1283e76e77eddb15ad4f670540b1f383d0151e Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Thu, 3 Sep 2015 09:51:17 +0200 Subject: [PATCH] Update hydctr_init block - Add error output - Don't use sci_printf for error reporting - Improve documentation - Change default (example) values --- rpp/blocks/rpp_hydctr_init.slx | Bin 12453 -> 9736 bytes rpp/blocks/sfunction_hydctr_init.c | 29 ++++++--- rpp/blocks/tlc_c/sfunction_hydctr_init.tlc | 66 +++++++++++---------- rpp/demos/board_init_hydctr.slx | Bin 13660 -> 15319 bytes 4 files changed, 55 insertions(+), 40 deletions(-) diff --git a/rpp/blocks/rpp_hydctr_init.slx b/rpp/blocks/rpp_hydctr_init.slx index 814cb9f402551dac85fd306f87628412793ae191..a13b74a68b2abb036179c85385f22e0f37aebead 100644 GIT binary patch delta 9305 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 delta 12012 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 diff --git a/rpp/blocks/sfunction_hydctr_init.c b/rpp/blocks/sfunction_hydctr_init.c index 5e2b56a..219bea8 100644 --- a/rpp/blocks/sfunction_hydctr_init.c +++ b/rpp/blocks/sfunction_hydctr_init.c @@ -29,6 +29,7 @@ Mnemonic: BINIT Inputs: Outputs: + - { name: "ErrFlag", type: "bool" } Parameters: - { name: "Thermal1 SPI data (MCP6S93):", type: "uint16 vector of length 2" } @@ -48,19 +49,24 @@ Description: &desc | The format of block parameters depends on the SPI chip. The MCP6S93 needs two commands to be properly initialized – channel selection command and gain selection command. Block parameters for those chips - are vector of two 16 bit numbers, for example `[0x4000; 0x4100]`. - Each element of the vector stands for one command. + are vector of two 16 bit numbers, for example `[hex2dec('4000'); + hex2dex('4100')]`. Each element of the vector stands for one + command. For ADC Conditioning, six MCP6S93 are connected in daisy chain. One SPI transfer for these devices is 96 bits long and we need two transfers to fully configure the chips. Block parameter for this is a 2-by-6 matrix of 16 bit numbers. For example `[4000 4000 4000 4000 - 4000 4000; 4100 4100 4100 4100 4100 4100]`. Each row represents one - SPI transfer. + 4000 4000; 4100 4100 4100 4100 4100 4100]` (note: call to `hex2dec` + omitted for brevity). Each row represents one SPI transfer. The TPS65381 chip can be configured by a set of 16 bit commands. The - parameter is a arbitrary length vector of 16 bit numbers, for - example `[1234; 5678; 01010; 02020; 03030; 04040]`. + parameter is an arbitrary length vector of 16 bit numbers, for + example `[hex2dec('0600') hex2dec('0c00') hex2dec('af00') + hex2dec('4800')]`. + + If the initialization is successful, ErrFlag output is false. When + an error occurred, it is set to true. Help: *desc @@ -89,6 +95,11 @@ enum params { PARAM_COUNT }; +enum outputs { + OUT_ERRFLAG_ID, + OUT_COUNT +}; + #define THERMISTOR1_VEC_PARAM(S) ssGetSFcnParam(S, PARAM_THERMISTOR1_ID) #define THERMISTOR2_VEC_PARAM(S) ssGetSFcnParam(S, PARAM_THERMISTOR2_ID) #define ADCS_VEC_PARAM(S) ssGetSFcnParam(S, PARAM_ADC_SCALE_ID) @@ -125,12 +136,14 @@ static void mdlInitializeSizes(SimStruct *S) } /* - * Configure output ports: 0 + * Configure output ports: 1 */ - if (!ssSetNumOutputPorts(S, 0)) { + if (!ssSetNumOutputPorts(S, OUT_COUNT)) { return; } + rppAddOutputPort(S, OUT_ERRFLAG_ID, SS_BOOLEAN); + /* Set standard options for this block */ rppSetStandardOptions(S); } diff --git a/rpp/blocks/tlc_c/sfunction_hydctr_init.tlc b/rpp/blocks/tlc_c/sfunction_hydctr_init.tlc index 82886b8..293b550 100644 --- a/rpp/blocks/tlc_c/sfunction_hydctr_init.tlc +++ b/rpp/blocks/tlc_c/sfunction_hydctr_init.tlc @@ -26,7 +26,7 @@ %function BlockInstanceSetup(block, system) void %if EXISTS("rpp_hydctrinit_in_model") == 0 %assign ::rpp_hydctrinit_in_model = 1 - % + % %else % %endif @@ -47,38 +47,40 @@ %if !SLibCodeGenForSim() - #define SPI_TX_ERR() do { \ - rpp_sci_printk("ERROR: SPI transmission failed.\r\n"); \ - while (1); \ - } while(0) - - - /% Single-value devices %/ - %assign dev_id = ["SPIDEV_MCP6S93_TH1", "SPIDEV_MCP6S93_TH2", "SPIDEV_TPS65381_PWR", "SPIDEV_MCP6S93_SENSUP", "SPIDEV_MCP6S93_DAC"] - %assign par_name = ["thermistor1", "thermistor2", "powersupply", "sensorsupply", "dacloopback"] - - %foreach dev = SIZE(dev_id, 1) - %assign count = LibBlockParameterWidth(%) - %foreach idx = count - %assign val = LibBlockParameterValue(%, idx) - if (rpp_spi_transfer16(%, %, NULL) != SUCCESS) - SPI_TX_ERR(); - %endforeach - %endforeach - - /% Daisy chained device %/ - %assign size = LibBlockParameterDimensions(adcs) - %foreach command = size[0] - { - uint16_t data[%] = { - %foreach data = size[1] - cpu_to_be16(%), - %endforeach - }; - if (rpp_spi_transfer(SPIDEV_MCP6S93_6ADC, sizeof(data), &data, NULL) != SUCCESS) - SPI_TX_ERR(); - } + %assign err_flag = LibBlockOutputSignal(0, "", "", 0) + + rpp_spi_init(); + { + boolean_t err = FALSE; + uint16_t rx; + + /% Single-value devices %/ + %assign dev_id = ["SPIDEV_MCP6S93_TH1", "SPIDEV_MCP6S93_TH2", "SPIDEV_TPS65381_PWR", "SPIDEV_MCP6S93_SENSUP", "SPIDEV_MCP6S93_DAC"] + %assign par_name = ["thermistor1", "thermistor2", "powersupply", "sensorsupply", "dacloopback"] + + %foreach dev = SIZE(dev_id, 1) + %assign count = LibBlockParameterWidth(%) + %foreach idx = count + %assign val = LibBlockParameterValue(%, idx) + err |= (rpp_spi_transfer16(%, %, &rx) != SUCCESS); + %%rpp_sci_printf("% % -> 0x%04x\n", rx); + %endforeach + %endforeach + + /% Daisy chained device %/ + %assign size = LibBlockParameterDimensions(adcs) + %foreach command = size[0] + { + uint16_t data[%] = { + %foreach data = size[1] + cpu_to_be16(%), + %endforeach + }; + err |= (rpp_spi_transfer(SPIDEV_MCP6S93_6ADC, sizeof(data), &data, NULL) != SUCCESS); + } %endforeach + % = err; + } %endif %endfunction diff --git a/rpp/demos/board_init_hydctr.slx b/rpp/demos/board_init_hydctr.slx index decda7b1ee8534f7254544d4b1b1fc606de6489e..cf485350e0d83277fe1ac68d1c7122d216857b98 100644 GIT binary patch delta 14076 zcmV@6aWAK2mp&}I!EY!<0_F7G=F-nALL3CH9l!#v_|6_!rBs# zj{ti1-^1LgYsB&Kj7b z4FpsySSuVA*2A5*4t!J)iezL06>g5!F*=HI5NpspR7qhH`DVT5FPbp)@&pW@7n z%CDeCRp0kj-(+3NPw?~Y%|rfbsm#zS0chJF9${tuhG{FIYw;n}?n+bPAz`ve1?V>T zo_T66ua?({O=>bN2`TI8lFTTXQgZsz;-mM2;br!0J=038c{gZAXrLto;gySN(kzp| zfRwJ|A>O9ZzbTLx8`g()4t)fV(e)1dKl`k#&&#@5*5`EE&V+afP#n=Md<>egLFiyp%;Nr6)8fHDhL7850wrADg;DCYCt-Obg7{u zy@is{IBWk-WY}&jEp4a@0~)HhGe^J`rm0 za*vA&?+<4RiBK{yZ3%;y^SV%&7SYJ2JudJY@-7=jHc|$zV+cd><@W-mqHrF}g_v1e zj~1Sh;xgYd%mX)EIac^bv8-V>UvBI>K9fkB{Uk_|z|_f1(uFXwFeb9ylj?s?l8(KA zx=gAkiuxJ94?=RGaB8Sw$*T-el#8^zQj7pAlZA{d_ zB2ZmU;ayI?{??Ms7ilP7X5DIb=P4LH&TiBdG%i1SKGu~1M@Y!pY2 z3n?n{z^R*?o0SR%BzQ%=uJV80PNmaH5pD4d+2QaXRzW(HjT#smlf|`=^6>EJr`+VL z^rQFLS16}Y}%zkYdI-cQ*qoKQL}NOEna6c7_*kdS|n*zZG!L@W;! z$WcMeMVO1Ms+bNA4*I_pi%#9I3ES1@AC94GSNyZZU{x2)Ha|cA=7uB9kIqh8N%o}V zWYU_6$-fuHOeh@{B)K(HzArByl-W}9^OF>{szhaF@m^$MnahsmUa7zocJ2)!vrY!u z=lhGUG$oaklc5W`2x3@Rh!_}4Tr{x@)r;e2LEa9dj# zJ-7T5sfT=09X&m5AB_v}y94_Ce0-!Z7%W57b%di-1DaD4_8))2Z13dc#zwVE%+=T0 zON7AYwljRBUW`kB^V#t%p7@8YvZ- zUIQmsCJo{0U?_k58c!rfq0#7_Yne`jo;;M_Ek?Msr{uQK#aN`&N~R78?67#YvsRU< zNtBmBAeeo1VRY(Fdp`L#TRZXHyRlV!Isc8dt!=-cAi0d-ZLObaG8c^V z?>68(>lL!thf5G>=ggs$8W(9Wb)C{29(h|oK+2?W*+_bj7zOu5S>gbpUrsU-0z(?F~gGC)39l`wWbUDEn z>bbseaTU=~1-5&3Pn47(!q=|#jg7@lPutX<{yBo6#>cJF6hpZ|(3*OBtzR5FKijp? z>>nK14&>_!2?>4w>$;`5=cK&Al`A>#-;=AUsVRR9iA8*0%nVKFN|hpm>;@{_ImW9z z2?&_k3_X>5yfOY9kM|OKt-Ur@e!kEY0|%vY_sWHQ-PEYBUnR{%n60XOC;)OB*G9{> z2*ZfEbpJ_Z5EiI8?}eXiMbq*O_c7VU-EE7 z2WNlhslln6RqX@ku*N|_HBXlFQdI5ia-J+@N2_{!m%4a*vLq!X*|jBb*&Pwr`DA4+ ztSY^f6@`iw2i2Lg=WXv(2)#T#y+HFb3X?Y?^^K zG&JO3vDPA%-+l&MT(v;XHb2k#`0?ZLdiIR#2$ynfTwJMB7kiO;8Rg*Mpr)>FOU-88 zdF%r;NF3z*5XO=ut1Wtn8umG854ko`!*b>2xeHhBE|rF0Oyd?7oTy=GVvjba>Un=` zZEX#NE>hFbkU~_|)Uxa9xEUE4dzbwny^A$HckbNjb&-Ui+S}W?(Uurfh?1%*IVl;L zp`|5mmDr2Fxu(}27aN-R``by?#vssl{TwPYxeRN=eBnvQ-pLde5~Isud)UX>0h~4+*QKKJ(hg z8~*j-gAZF)1`8RPn4Ym9f*CtHI-qdr9-a+J07Cc4S~jpf`!fuoF;Y{(7nXmQmlei5 z#=f2dKx_Qwfdc`44kSFhn<3A}A%$!f3q8=GhT(r1>&u`yPewo6k}-=tcmc8uz}$$# zaa=Pk`o2Bi$$05fqVh*h-1?8%pxfD+%O9a(a*doLxM9X5YP*2GO#@UgPd zpYog5uT_) zJBYdtBM0OJQZs&o`UQUp49)rjC3)*sHU`sm{pEA~Rpx+*E~iz(cy3YA+3bGD!otF> z<_r1|2q!%im;{xMj)EqVG$bShf;>@v=;lTO0g-@;^_ujQWS0mz-bZ%sJ*qE6 z@68ist6%Ua)(vZ2+;HarRl~!RsZ3bC3RnQhj@Zt1#XtM@Cij2tY2j-3CWE?BmADVI z?HBar!^GcD7C0Q7oMzjT_$P*d zdMOP#3H-gdxHqOTJm)rCtcFC2($LUYeOd=GfcySORVClVYVoA`dg)_s*rvf>AB~eT zG7{3#I8&Z&H=chN+r=#)kw+iSw*!IYwKgIVOc=ZmK@nDm<@OqZ8tF!CBwyAsFf|0bzjtc*VuNl!EZt zP8GPVRu0c;OvNO-fk9N9Axk0%U^+>IyP-c%r_^f(?%?3SD;buM2&GvTUn z{`7zT*4+Lmkiq$hk=DnHsVUTeGt@+8^WXJO_$RdZbnB(dmokq2?KhT_}jZn zYirGeh4;NrPxkyRufSj=06~&`e0)$QrW=1*)l_pt-^z}cg8YJlRGJ_y#JTm^_`7>i$>qMO9Vi5s{J4jSKXikCr*d@oOYV^WbU&$~5)$Sx!OPnnB0% zy}xo*SePk2JzZg=r=x>0^|lB5FIhp|cfXH85L>fA3^5kyX96~J{p?6|C0BcE#R!F> z)^Qc~6V;D^R8aHr`J%DPwq!h}5JZ36J$hA`m*not4`8jf{-4hFAN>$6w^<=ZBO`ug9a&3_dncw5g|u zp{}kDY&$J=JU1Y2KxE+KT)Q@cz%>EOwAjV9*?SYvz4hs@3WWb{&Mn6WXWcI9=Nwuw zAtHht95$^l*fcdYl^h-Cvxa|JI62pRENdnbJOHArOX|dVB^`+Cxaj_VBhc_?n-~;T zU0tt&3c?TGM`RZl(?ftYN$5-wn*#{~ZWQQu(08gMs;gzkYXdGILJsnFf`3n){*i)A zk5~D+xVm~LFi{}s+@u4x1wa)+vOayHsd>EKIE)CTgOLNZ4*KGpJHmh5{CR7uy5#NK z^e(AS=;6rMsi|?G?sN0@0=d{Hn+C&NlUZF z$H$LUc=7p6(4}dTVSlzF#1BvPB@c}yvFbN4pK&U{o!tL$(MVQaOQ0E7N z#irEEYkln2`@B3DV6J~2`5jtd>uQ5CwnIyh> z6H{9&|0*SgUqOKjs7PuC1`Uv4KrXhWX5#)ER-jJKAO;dSk6M4+a#U*f0CDaHVtvV{ z|5mv;$T#2_jvx>O0ud1vMXH3pnh2^qYhW1y5q?brr(T=Has=&dM0Pm%=*^Hr=;-KT zVq;0Y-0)_@g$_XMhQIs$Zjtx*Z2&(N6&14NNEc?rxei zV@chi@J7`l_hNsdGmIRrqGD)j8r9vc2fRoNTVg|>nP^c1cY|q@=KbbklRmMgZRZnJ&kIRv@z8Mvm`e4vnZ;M04f+ zmY_7}&wJyi8$1Wu0!%|f?&zh7v=b-?ur$oOs5|L7>Fy2!RCk3U8|_smh52wws=dSm5%o1`Sb0r)>nid)%guAi|P zS$7e>_d4sPy2$g9>FiN!b_gIw$rv zr_iZVp0m>p;lRNtfu?-+cnZXGrcLD@uc6@CN){IE$uD0Tf(?2psBZ`O@$;y=*%ya% z^xX0>dsCr2_N^}(K$|#PTkR&12W8#{tSo*h7cEP*e)pZ^vM5ras`JCSm5u)-+$0>*3KIn;SP?DGZX$(YCxrg5X&-WfH#3471Axh7XiQRMO-rn zz&Ug9Pl=BfAsO?XDP)j^o=kLaufdt)^mk0{I8oPC$_V`v08w&wF4(be1)7UydPswj zg_*hWVfk!H=*cxW9A2%k4xC{)lr$_Xtb2cp43yvBD{`}A)w^UgQw|RUg)Y*Z8NJF% zR*2W`lHuKS*-JJ4o2|zB3Xwpi<>clz$@Hq{87XHQWR;a&AP@*HZf;G_F9;s4sSy8= zAa3zkt9NaPfp!X~1}@BgbqE7A%$>=QBabsATVR+&k8o37TeE8NM{8w(i`9S|{N`sl zHR-`6R)2hh`MN~}*jT%TpKr;Ev)y{T>z*Fr_vg?IgZW8RTk&wd=Z1S1<6ML!{)>ls z|NGhADT$(c_zCvhITr{xwAA!ei{UoU{smA=0|XQR000O8i)uPYAfFn<0U-bY<&~3R z5G#K+H?_N!u`Su-8E+ij(!-8*uVt%5d0dsLDHlva64n%{fTSP$>u)yzz5$T(W_NEs zOl0Zc-RM5uc%A?E>(=i)Qy#G}_@&!BIO=w2;D#Ox*1vRf`)vZY-teV z*8tXG$KiID#MBdwQ*G`JdI$YeL-_)@pexFu8>ywDOB%)VkU@hzhphwRm$2uDrapf; zzkU2Wb>q&QhdY_s)#O?&egEtWrbH$y*^m zK+FZAvwYiOA5h=#b|wtEN=eCI`;hv(bNoS;@=Mo+LGBKqDo*kky+twIo*&}xdK~fG z2aj&U6r*Z#D5{e7fNYFLq9$}j5vpc;gGu<_DoTfy90mx@`baQ z)>B>1my0C8&)orh==3xhlh@hg`jYwdng#Tl2J3hO^QT`Jftoyzyn7aS;Y)=2rYO_> zl1w{noA@kvIv7og_)M5;`5JOP*5@kGD$DP(22G=(8$;)GQ-SuwHO^9KlxR|p#4blw znIXL}0h#FzzMh?e9RAcf{)B)3sy}+Y)8m7qZz_*k-Gy2iai~7!)drmC8&FFE85c(8 z3yT<5$JCCZNa8#TBUWmSoXFR771!|h%!5%*fuQ1!L0^14s^P9ETW{hPK#(8MfmPs{ z>a0vrX!`Bqb?1ki@)4v8byDwRA2f6C855k zj9gmIGTdF$XX@9IUWdd(Z9AP*Qr5@k;xz^{8r3EJQ~#q7?j!vFw_3X2!f<;D)F9-w zq`*XK@Y~fYqH(>H4=|HH{?z$!d~|m3@mqBuQrl88C*{A!VX$KB841Xm@>EOKjP~8m zBQd>V5!Ck$v}*Cs8|Z&RuCw$o3)zZMZ}fI4xKnrVUqAZs&%-1Re_Y2u+me7Kpsf=v zmiK8oG+Rzgw!7}&`1H8<>G-VQHC!h$UK2<-uVOu$di9Y+SB1dMG1>!DSrbN z6c8Eju|wxTI8)PYM^0!2d~ZR5byMjfkg(g}f^(Q3MH*7n1?vEm)rfhFgE&JiiQn8T z2L=d6PD~>!Fyp9GSGHeU2a%6<;5#?MS&oa zF?|&kZ5&d<**|}TJe4I&TM0oj@uL`Awlij)vr%*{qE>Ja1(&lOR=|ll%$KHA%P{mu z#3&6g>*FM{02CdN9g)o#vk)jeNaE970OK$tQ5AiDsGITU!n}yCHLHRQBAI4@I>^_1 zY)K?k0hImG;7>hLe!FsFik?kR+c^Q*MVl}lB`fgG9QJ>sc69lNTpS zy(UqdrZIVZCAphLYiw>nwTN~*M_)(xM5)e!@3MnOxvX$^s4XeAkd_#xv@!Us23?JC}a;lzNI1ZovG z;Ba+b79O0bJJS z`L}-)bMNOM*^cRP&0t+p&(kzmiiWzx z`2C2)?nW9wBgYXyS?Z-95}TkX@RGB&aQZ;!28rIP7NAWAxB#7tp4VE~0_wsSq7RlL zcx!-85-#H;U}cZAwo?PnyMchK(vavX^gVwuRT^`r!f|MXrDVH1;4Fe#G~k7QZO^t8 za9Qz>e7KGL*B}ioVCF;L!I4X$|kqEHZ23 z7V7~_J%H|O5Mbwt?Iz(%0ORbHQ(4OZOAa+^$Qyf5dhe1jk5Q?X1HFg!se67A07-wK zMmj5b<$_if4&Sd@f0ohW7#nsUyo8DHnmaQ5pE~2I!{AOG-r~D7%r<*hLq3cgza-TUsdWI^o|dDdIl#8gHjaps8?pY18yBO)Z$Dg&zWUjle3mJ zaY7%c$9SCPRCdL9oGm(}p{xod+(~}~3szdh@G)A3enH1o0hjERdg$~NVt*yT6gVIw zzJwUFnUPmqx?+LypFZd_!zBXgjepes{+qkp;JOK@TT5Xue35Y4pXqPo2uoamixCPh z>#x23=f6S~OvRVe7A!^;3)7dAT_`D~s`QB#DV?|*`Vxo16y|&y4ls5>Q(u3|UbOdi zp&c1sUtrcZ^uw`Uii8YG!=bnsIO(ZTs`ZQHgkj(&9ANSMeFC$^m^JPhNn&HK3QxD8g2keZ8BLs769lHl z4n#Z4&!%#rTBThIb@LG?Jji@=*-Bf6*v32@@){=kE)#1^87ww`!DM+k@XZ7)b)Llf z&~g(z??s9AqOH9Ow>vqvf$4%ulHZAdvL%fQIDgg8a(&Or>X_;xOD}1dX6@E%sok)N zTNPl|>bP?3$S5+SF!U)2(#0$z4)ndpJC zneb}ZQvXb?&6!6><7L)K-iClP=Z%Q_bO~g<6o9PHcrJG36a~Woy?EULkCMy9X|7fo ziiXjM#n5ZMXX$|yf?Nv;1DE505%Y(og~iV3*4@3C4Wamdx!{qU>K%YNOeN8uataUm z8mbLkI_A(H38x*NddCf&GNHS8Bg{1JaQdw022c}Vgp1JksfS68)fa422t}^64LTk& zD>PH@o5^*bv4{wvfFjLnFat0y5w#f$oI8ymxmQJGC>wGSBwHora-eTSOt*upZELlO zLNftz5$X$n;g*t+eP>}Cx()f;FcxljvNQG_rV-10d!#`sbm_;@Fz_aiK6vPuiMd)g zA-Fd?)MukNM9z5_)25lWS}~V_%O$j1A8I%Tdfx&+BfA@Ng9%in^i4>WP8$8eCXHq6 z(IAa%1uBq0m8XVSh473);mC#6X|SQ-Y;;yU+;(DrvD(<6&TvML!X)qrH_vG>c1RnU zPkGVY<#GGE^tob>%VQYPQNnP3nEDXS63j|JbBU+Hg6xakulykPiTFtL z{Vgqj&E#3%Wj{p6^#k)mDD7f@?M=}vUHU~5fHI*il2`XR?H3=CdxTUR z<_lBd$;Kg4Awtxwjaac^&ii{3#kl@f-e}SoP!({qlEK|S)cehyFtQH9C}ys`E^>3) z9tmVvYtFY~lp5Qrj12Xb(KK+lYj15DTU4oVct|_{}r5gG;!Cyjvt-KzTp;E{$F@o*7^n!)wya-&o}knLE%5aQ854=RI8{%)DNR6K@V9^^VuBbF zWCCDJ^o8Ocb19REmYl3fB%i^qd6#Z523m;A&kZ7=kkeo{1uo`MWm`ll>97uce;8d@ z=Cz1{kw@y!ShN-ULK^zQm8;@thf~XC6N5s6f~{+r0(USrD-G-gVCZ1jqF&*uMc!ABvG;2C8y9DZy3RUSC)=bf^Zj* zXTp4(yjiT*+;A1;EfQk$$Xwn9NhA#;RR7``x3pl&CKY@a(AS;N*%$!^xe-oyo0Q7v z32P#Xbx|`<13bbVli{_xxam%3672zIaPqi^6 zu({rd#dFHXV#l~XTAibujokKm+JKwl>i==S0d*Z>OsEx1LQSFj3@SW<7FkZz&h*9% z<E(%5N2DmEa=SF2hA+gA^B`O>!);drGn< zQIjmoBzp*wDx;NuC`s&IQ$;4(W3tEujnhTKP@XT+6D>$TfNP3n!qQf7eOhp!ci<7t z$Sba`Ijm78%L(q96O?D2)1ujmHrprj#qScl?<&bjOM_Nn{W`NIcXgM6vQjX@(-m-u z+Z7(GzUAriF7ZLigS92ttjjGU@Mfkb{ke2esj?RvSE4L`E1CLKg7n@7ilfcL&^K#g zZ3g)nK~#0jHeJgJZ<1~5EJi~g+*9gx2f~Lm3B!)8p_{)Do-PMMPI58uQAGJWEa-^S zbuCI43-t2tAK-$cx9kV=(to+xEExK0Tz$E9Bu;5*rJ~gXOV9oh|KSmT zF(m`8Gu`gQL3h-~;44)n(;yz`*(E!5-ZGPb#qu71#=j^#r!8eirp)VDJyemdM>gFI zCC+x}u6#;413EkEOsFa6(t_{hE1?(;QC1eCcRt10#UbU zG!&)wNT5$;!7VA@vOw-L(hD0MZ(Y1UtpBycxPC_Gb))+P0>EIKh&Hy1pA zb}k|BhOa=9jz%My*sl2J96|_lz_B3F}Lh^O+)n4$6ZHw&XM%^}zyr+-PjJ~wX zQeI#Ywe1s30$3mFj?&eX3_0XpyE8F?(*N~jCLSl9a?h9XbY+%ICCKa-^f9OBw}Ffj z=$Q{55o^@f4lr6Ia>6H$qcL$eFrx~4uzN@Sa%k?IXO#PrP1jw*Pp!{NiyK6LCAI&q z&;)Uth}cd7qRD*ZgET0S(eJbZk->sGO78bkwzF`@7&T=p6W}dlyYx_-78bY#Ju~%8 zxEXn!dg&db$GtirJq9WnwKk6;MD3^)_gHAbc*_35XToaZ0ao~TYewJhD&Ki0kt;P?RZO}swrjo}$Oj~6? z^2I$2Jbrv=*HUrtp=I4?#KnF8Ej#fpX1>UHT!&6X^c+5eYFi}8X>#g+RGKlUM4DkT zn%0by2ZOWg@r+`KsCnqWIe7Z6lf`hB1)VHOpr=4b2e;!% zBf7E{fk&C~v|nSo)R4;kw7`64!b8hb<7^)zc8-TxwcPd5fAzt|p!fASlw=W0a z3)V+o5qb6~FZJmT4u}af=b{mS&91E;XtYO}4`$Bq@Wz=wXjBM)suvc&p`WH2E;1fw zcQurz6LbbHDZGFasA8coNkj~=Q(DP0B}%PL|Kq7mTHFMGB^dI;iQ`D@suY0_zY~@ARaP4Gn4R~Qv>!?|sD1^OhDsiU7mI{O ztD@F)#k!olNy=m?3Lb9DPC{3DLXlgF)qCTVkxErK-Xwr7Gqg>uO${H#!IjFL0Y%_- zxKc_zAOhRmqNSy@3I7)Y91I9evN^lcy^Xoaaw<5l}Ht9`iD9_(rle$|p;?ZvU$ zvaEJIt3A`&k8AD8w%)-qzD*Ivx4HTP=8zFPAy9ncxh`{q%6jb}Eg z%kE$X4j`AVjw~=#Hp~@OYs#?zO&^jF|Jf=5w#zn+6>LUdCF7*8@q-&~w{|SvRs^MY zek8kpF#0);-|n2zk^H06>wWB7s|4f4S4yOdhpDP+QwAfm6U!-;5fR*UVFq_1n90(u z(;bXJ&`0<%!NsdE`pvowEr8T2g+sID1b71eR~{xiaeCA<>NBx_^ftW=a0+(snRyA= zI-=fy)EYZnpB&DoP0B>UYWJGyGeaZTh?4bxwHZE#ySZgb_krPtWE2|@c&_^Dz+G#} zE@W}#@qac8ar#!)?FU8lNw?zayZboEYH2LTiQZ(Fh{xF5GGQ8 zI!!=F;Oz~j`eZqms_U+nCWU6IxkEd>TbwYUJ^D9 z#7d{@TWK9u_b%X+fLAJZPm7&|IJlk8ieWX~Es%BvOkYx17;*#j;RcKBgkrVN3b8QnV6RokAsgAX4*ba0Wl z10S?(LBLTJWm|D7duvU2G_CD`YT>peJb(YKMFM2-xYr2X_m*&V&1y@u+@>Ud*Z4IF z3JbrLAvu>u6}1Uy);E$2lVQNWypE8S4^8E_U7uEkg<;^*a z){MsFkL%LP5u8rt$V%e@u71OR1@#-xN4Cooh7Yv6uJ(TV!ikKl$#n;v9o}(8T{~`Z zBRBk|)){1@Dmmf5g)B;#Dv1D;+#@a+-a8KcblRTv!II=nu}kt;Iv-o=-D3Jmi%Of> z)8s{umy>LF^#@YhP5jGI=L4zkM}#kHIgMqYcH*z+!bo8+cJes=As&~1Q3ci0iaO5u z7E`AWY7aVJJI5!Vf9mv3KEXd9KlSm!sS6Q^w_|^pw11bo`et7+V;wd>m!Z zRv+o#V{)wP-O+>r)#F6$vM-i)8;bY&0`D0kb%AK4n)u8YYW9{OR z5shCc4V<^Yl~0+Jg;m~vbl36Fes96k!s}T&vC6sg=Ph}Kf^kg+9KgS*p=l~>7&R0I zmG7|h=wc_#_WL*HjN!ibv;w|rYDMYs9QnRTL!tRrzEa?@{*FlP$@0>pXjMVaXYbBu zE{lO)#i9>tPbvyQv`gH%ToY4mtiQB1C!p|eIm?ex_$2Tm7rrik*0BUnC$Wq|nx3K) zP`O`qcwz+H0Tl$@x@OkOW!>>m8L5I;3PxOfQ@O<8K{ zKT|yDWrEpWGREKUDc-lyRM=4X=@t+Qfvl0`q3lJN&K+%a1ZKw6gXX2_s~N8Ie51T^ z9Iryo{({gIaWxM!o!{uOOLKde{s9B(}~*4v@}N-pHqpM)(&`hcN} zyDm+$2LZP`@_S-LERsMxJP>lkE~v+eS%w58l)9#r zhhy|g&icqC`UVz(4!)@yehb6xC2>V1dwSz8&lSpl=^rU_|3Qi50pDrG(wR=KV4~j> zq`8EH8agSdgj#3i>maGp#pqp{>x#T|J{6Kbv4gXdlx4HB7wU2$&$L={k z!%v@&s^H($TF3Fpr)oCpF77P+pAUlECYC+(+B@i}_T?CPNJSlM#w9QL*1LH3{V;Ex zHkD+5qv)#|f$;{#D}sRo_x|gKzVEOyd5--*C`aPC zku9rgPXGR2ERFfk|MKnoN`LOc7m&DQw?nO1>DHrDQ;tWj=@+sx*5b2qP$L>dp{W+{ zlM|1)ei-f~U->6;)F|0jy2hcL5xv{(v<-la+NRg6 zZH`Zyv`yr)2Y0nTthTK|-!#E9YXw@Tu!E&#&lgN$YK9Bn$WA}&8ansn7!~*l{B!aV zKb=}s`DaV5kVI;Sq}o>Qg4z1~r!a~CR{d>)&pn--{fPyCEBWMyGIRMkx8Uj_@4@#B z>H~%}xqQ%c@csV*vp_L@0tD!O<0_NEGmr{gcTkC`6953i6_Z;uIvgOM8pHu1008Bc u000>P000000003100000gBFvqG(`ftH+5u delta 12453 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 -- 2.39.2